Robert McLaws: FunWithCoding.NET

Public Shared Function BrainDump(ByVal dotNet As String) As [Value]

News

<script type="text/javascript"><!-- google_ad_client = "pub-4330602465258980"; google_hints = "ASP.NET, VB.NET, C#, C#.NET, WindowsForms, .NET Framework, VS2005, Visual Studio, XAML, WinFX, Windows Workflow, WPF, WCF, Atlas, NetFX3, Visual Studio Orcas"; google_ad_width = 120; google_ad_height = 240; google_ad_format = "120x240_as"; google_ad_type = "text_image"; google_ad_channel ="4997399242"; google_color_border = "B6C9E7"; google_color_bg = "EFEFEF"; google_color_link = "0000FF"; google_color_text = "000000"; google_color_url = "002C99"; //--></script> <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>
<!--
-->

You should feel free to challenge me, disagree with me, or tell me I'm completely nuts in the comments section of each blog entry, but I reserve the right to delete any comment for any reason whatsoever. That said, I will most likely only delete abusive, profane, rude, or annonymous comments, so keep it polite, please.

Blogroll

Cool .NET Articles

My .NET Tools

My Builder.com Articles

My MSKB Articles

I Can't Have What I Want

I have determined why there aren't more quality processes in place in the community for server controls. It's because Microsoft makes it darn-near impossible to install controls in the intuitively simplest manner. In fact, the whole process is completely counterintuitive.

So, I have been testing out the code that I wrote last night, and it basically appears that I can't have anything that I wanted. Well, I take that back. I can add the assembly to the “Add References” dialog dynamically. That's about it. Here's what I can't have:

  • I can't create a library of custom installer functions, VS.NET and MSI are retarded. You can only have one installer class per assembly, and you can't just create installer functions and pass in a function name. If I'm in VS.NET, and I'm installing a VS.NET app, why can't I pass a VS.NET function as an entry point? Why do I have to write it in C++ to be able to accomplish what I want?
  • I can't automatically register the control in the toolbox, because VS.NET does not have a way for me to add toolbox tabs, or reference a tab by name. Therefore, there is no predictable way to ensure the control will get into the right tab. The way you access a new instance of VS.NET is pretty hokey too.
  • VS.NET's installer design time story really stinks. What smells even worse though is the outrageous expense for any other installer out there. It really sucks to be a small software developer these days, because the barriers to successful entry are so high. $1100 for a decent MSI builder is hardly a small hurdle.

So for now, you'll have to register ScrollingGrid in the toolbox yourself. When you do, you'll get this nifty little bugger in there:

 

How cool is THAT??!?!? :-D At least I got the icon I wanted.

Comments

Avonelle Lovhaug said:

I'm with you. I can't tell you how frustrated I am with trying to add some fairly simple features to my installation package. All I was trying to do yesterday was to pick up the virtual directory my application was installed in, and load a web page from my application after installation. I was finally able to figure it out, but the only way I could get it to work was to write the virtual directory name out to a config file, and then read it again when I was trying to load my web page. It works, but how dumb is that? Oh, and I am picking up the virtual directory name via an undocumented feature, so who knows if that will work in the future. I hope this stuff is improved in Whidbey.
# November 18, 2003 4:53 PM

Robert McLaws said:

I can't even install a sample web app with a component with the VS.NET deployment projects. Ugh, what gives?
# November 18, 2003 4:59 PM

Matt Berther said:

I got around your first point via something like this:

public class MyProjectInstaller : Installer
{
public MyProjectInstaller() : base()
{
this.Installers.Add(new XInstaller());
this.Installers.Add(new YInstaller());
}
}

Not sure if this is exactly what you're looking for, but it did the trick for me.

# November 18, 2003 5:02 PM

Matt Berther said:

Also, you might look at Installshield Express, which I use for my personal deployment projects. It's only $349 and provides everything except for custom dialogs.
# November 18, 2003 5:03 PM

Robert McLaws said:

Well, the point was being able to call the separate installers like functions, and pass separate data to them. Sure, i could just have one installer routince and slap 8 paramaters on them, but that negates the point of a reusable function.
# November 18, 2003 5:10 PM

Peter Parsons said:

You may want to take a look at this Installer:

http://www.activeinstall.com

It is cheaper and better.
# November 18, 2003 5:22 PM

Avonelle Lovhaug said:

I've considered buying a third party install package, but I've hesitated for the following reasons:
1) They generally seem to be pricey.
2) I generally cannot verify that these products (Install Shield, Wise, whatever) include the features that will be important to me. Almost all the development work I am doing is either ASP.NET applications or .NET Compact Framework apps. While I can find information on .NET CF support, there is usually not a lot of information about creating ASP.NET app installations.
If I am going to pay a lot of money for something, it had better include features that will help me with the kind of installations I need to create.
# November 18, 2003 5:49 PM

Robert McLaws said:

AMEN Avonelle!
# November 18, 2003 5:51 PM

Shannon J Hager said:

I may be in the minority here, but when I use a server control (or a code sample or anything related), I want it to come in a ZIP file, not an EXE, not an MSI. I do not want to install it, I want to copy and paste it into the directory I want to put it in as needed. I want to add it to the toolbox myself IF I want it there.
I can not tell you the number of times I've downloaded an application (like the ASP.Net start kits, for example, but there are innumerable others) or a piece of code or whatever and saw that it was an MSI and sent it straight to the ether with shift+delete, do not pass the recycle bin, do not collect $200. SharpReader, Firebird, the SnippetCompiler, those things come in a zip and I have control over them. That is how everything should come. For those who do want/need that control, offer an MSI.
# November 18, 2003 9:24 PM

Avonelle Lovhaug said:

Shannon - I don't think you are necessarily wrong. It just would be nice to have options - something you don't really have right now. Certainly in the case of server controls, it would be good to have the option to have the server control automatically register in the toolbox. The installation instructions required for third party controls right now can be quite lengthy, and there is no reason I can see why that can't be greatly shortened, except that the current tools make it too difficult to implement.
I'm not creating server controls that I'm reselling, so I admit that my concerns about installations are somewhat different from Robert's. For a list of the top 5 things that I think could be improved when creating web setups, look at: http://www.coolbits.nu/238.aspx .
# November 18, 2003 10:01 PM

I Can't Have What I Want said:

Pingback from  I Can't Have What I Want

# November 26, 2007 6:58 PM