Come on Microsoft, where is my linker???

During the past 7 years, all .net developers somehow had to face the problems of users with no .net framework installed. We all faced it, we all dealt with it, and we all hate it!

.Net framework itself is a COM component actually, and COM is a technology that has roots in OLE which goes back to 1995. Even though some parts of the .net framework require other software to be installed in the OS, not all parts have this requirement. So in theory, the whole framework can be redistributed as a native dll. In practice, MS wants us to install the runtime.

There are companies like RemoteSoft and Xenocode who sell products that package necessary parts of the framework along with the actual software written in C#, VB.NET ,etc, compile the whole thing to native code and deploy it as a single package. This is great! This is what we all want. A single file just like in the old days.

Unfortunately, MS does not give us a tool for this. Well, we have NGen of course, but it solves a part of the problem, the whole thing still requires a separate tool, and these tools are expensive. VmWare now has thinapp, which used to be thininstall, and their prices and licencing is also way out of my reach. If I wanted to develop a small widget that’ll just sit in the taskbar, why should I force users to download a 23 MB runtime for it? Why should not I be able to use C# for all my work, without being afraid of deployment blues.

Since there are companies who does this, this is doable. I guess there are also legal problems if I wanted to do this, becouse I’d be distributing parts of framework in some form, which probably requires permission from MS.

This is one neat feature that I’d love to see. Come on MS, give my linker!!!

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s