I just ask to be conviced. What are the benefits ?
Note that I'm using C++, fox-toolkit for the interface and boost
libraries for some utilities.
So what are the benefits of the framework, compared with the obligation
to install it on every machine that need to execute the application.
Developer productivity generally. The .NET Framework has a *huge* set of
consistent APIs logically organised. A lot of the classes are high-level,
allowing for quick use, in fact many components do not require one line of
code, and are merely configured via XML-based configuration files. In
addition to that, you also have access to the lower level components as
well. So, for example, you could use Remoting to communicate between
machines which requires little more than a few configuration settings, or
you could use the TcpClient and TcpListener to give you high-level access to
the networking communications, or you could consume raw Sockets. This
combination of high-level and low-level access is one of the main things I
like about the Framework. Keep in mind that .NET low-level is fairly
high-level for C++, but with very little loss of flexibility and power.
In addition, C# has a simpler and cleaner syntax than C++, and is much
easier to write, read and debug. Finally, Garbage Collection. No more
dangling pointers or undeleted memory.
Let's be clear, I'm not anti-microsoft at all, but I have to say that
this framework is a pain in the a**.
If you're deploying across the Web, agreed. If you have control over the
PC's though (e.g. in a corporate environment), installing a .NET application
with the framework will take very little more time than a similar C++ app.