Webcast Q&A - 2

Q) I have built an exe out of my .net 2.0 application. Do I need .net framework on the deployment machines? Even if it is yes, can I make it independent to run on windows platform without .net framework because I don't want to install .net framework just for this single exe to run. My client has 200 machines and he cannot install .net framework in the all machines, the plan is he just calls the exe from the shared network path.

Yes – you will need .NET framework on the target (deployment) machine to run your .NET exe. What OS is there on your client machines? In most likely hood installing the framework should not be an issue as they can do it through sms updates. If you want multiple clients to access your application without having to install anything on the client machines, I would recommend going for a different architecture e.g. an intranet application – thereby running the app on a server and having the client machines access the functionality through the browser. If you are concerned about the richness of the User Interface – you can probably look at other new techniques like Silverlight or XBAP. If you do not want to use .NET 3.0, the same can be done by using the Click-once technique (read here), but again these would need the framework to be installed on the client (except in case of Silverlight – where you will need to install the Silverlight runtime which is about only 1.5 MB in size).


Q) Like ildasm for MSIL code what tool can be used for COM components.

MSIL is an intermediate way of representing code in High Level Language. The MSIL is embedded into the PE file as text, so tools like ILDASM and Reflector can parse that information and read it. Whereas COM components (dlls) are regular binary files stored in PE file format. The contents are not readable. However there are certain tools that allow you to extract different types of information from a COM dll e.g.

OLE/COM viewer allows you to read the information about the Interfaces and methods exposed from the COM dll or typelib; It is a part of the Win platform SDK and you can search for it by the name of the exe file oleview.exe. For more information read http://msdn2.microsoft.com/en-us/library/d0kh9f4c(VS.80).aspx

Dumpbin allows you to extract all sorts of information from a dll/exe – search for dumpbin.exe on your machine – it is again a part of the Win platform SDK and also ships with Visual Studio

You can use tools that read the PE file format to gather more details from a COM dll e.g. PE Explorer

All these would need indepth understanding of the binary file format and COM technology.


Q) What is/are the basic thing(s) that we require to execute a .Net application on client machine?

Install the corresponding version of the .NET framework on the client. You cannot install individual components of the .NET framework separately. The .NET framework is free and can be downloaded from:

.NET framework 1.1

.NET framework 2.0

.NET framework 3.0

.NET framework 3.5 Beta 2


Q) Has the .Net framework has been implemented using COM technology?

COM is a technology that was designed to help build distributed applications and address dll deployment issues. It is a native technology (i.e. COM applications are written using pre-.NET concepts). Just like .NET does make use of native stuff internally, it would also make use of the COM technology in some areas. But it would be wrong to say that .NET framework is built entirely on COM. .NET is a paradigm shift in terms of architecture and programming concepts.