none
What are the advantages/ disadvantages of using .Net?

    Question

  • To understand the usability of .net better.. pls suggest me what are the advantages/ disadvantages of using .Net?

     

    Regards,
    Tiya

    Sunday, September 12, 2010 7:00 AM

Answers

  • This could be a start... Usually when you're asking for advantages and disadvantages you'd supply something to compare it to... 

     

    Advantages:

    - Newest technology from MS for app development
    - Supports fully managed, but also a hyrid mix of managed and native through P/Invoke and Managed/Unmaged C++, which means that its easier to write code that doesn't have lots of memory leaks
    - WPF and WCF are the new way of buildign UI's and Communicating between processes and systems
    - Fully integrated IDE available
    - Linux and Mac support through 3rd parties (Mono)
    - Many languages available, both dynamic (IronPython and IronRuby) and static (C#, VB.NET, C++), both object oriented (C#, VB.NET, C++) and functional (F#)

    Disadvantages

    - Multi platform support isn't available from MS and isn't available straight after installing Visual Studio
    - Managed code can be slower than native code

    • Marked as answer by SamAgain Monday, September 20, 2010 9:25 AM
    Sunday, September 12, 2010 9:44 AM
  • There are two more disadvantages, you should be aware of.

    • .Net is very easy to reverse engineer. If you do not obfuscate your code, you may as well publish the source code.
    • The footprint of your application can be huge if it requires a version of .Net, which is not already on the computer and therefore has to be installed first.

     


    Everything should be made as simple as possible, but not simpler. Any fool can write code that a computer can understand. Good programmers write code that humans understand.
    • Marked as answer by SamAgain Monday, September 20, 2010 9:24 AM
    Tuesday, September 14, 2010 9:25 AM
  • For me, the most important reason is that lots of code that you had to write in the past, is now already available in the framework. Thus, you don't have to worry about:

     

    1. Memory handling, allocating it etc
    2. Lots of functionality already in there, such as easy to use timers, lists, threads, etc

    I used to write C++, and there you had to do all this "dull" development yourself, for every project again and again. With the .NET Framework, you are fully up to speed. And, when using WPF as a client, you can use the very, very powerful data binding which makes it even easier to customize the UI to all the needs of your clients.

    I also thought that performance of the .NET Framework was worse than for example C++. But, then I did a case study on the performance of bitmap editing using C# or C++ (MFC), and it seemed that the .NET Framework was at least as fast as C++.

     


    Geert van Horrik - CatenaLogic
    Visit my blog: http://blog.catenalogic.com

    Looking for a way to deploy your updates to all your clients? Try Updater!
    • Marked as answer by SamAgain Monday, September 20, 2010 9:25 AM
    Sunday, September 12, 2010 10:54 AM
  • Hi,

    Advantages

    1. Less time to produce product
    2. Less Complexity.
    3. Easily to access complex O.S functions
    4. Easily to build Data Oriented Project ; Support huge DB functions.
    5. Managed
    6. Support Both Windows and Web Application.
    7. Easy to create Dynamic sites.

    Disadvantages

    1. Not suitable for High End Application
    2. Low performance compare to C,C++.
    3. Unavailability of build in methods.
    4. .NET framework is free to download but Code Editor is costly.
    5. Only few O.S supports .NET.
    Thanks
    Dheeraj PK http://dheerajpk.spaces.live.com/default.aspx

    I tend to disagree on a few of your disadvantages. First, there are a number of great examples where .NET has been used to build high end applications. The fact that most of the Visual Studio 2010 UI has been built using WPF should be a clue. There are other examples of this. Though they might not have been built purely in .NET, it has been put to good use where it's biggest strengths are.

    I don't really understand your "unavailability of built-in methods"... Do you mean that the Base Class Library isn't extensive yet? Compared to which other platform are we talking about here. This doesn't match with your advantage of how easy it is to call into unmanaged dlls using either P/Invoke or a Managed C++ wrapper.

    About the cost of the IDE, There is SharpDevelop (which is free), there are the Express Editions (Which are free), the compiler itself is free, so any text editor with syntax highlighting could do. It feels like not too long ago I used HomeSite for most of my development, though there are big advantages in using the full blown Visual Studio product. There's also free plug-ins for Eclipse (http://emonic.sourceforge.net/).

    Low performance is debatable. If performance is a key factor, C++ can often be made more performant at the cost of maintainability. Heck, even C# can be made more performant when you start using unsafe constructs on frozen parts of the managed heap. Many of the claims on performance are actually due to people not exactly knowing what they're doing. Or they are in specific applications.

    • Marked as answer by SamAgain Monday, September 20, 2010 9:23 AM
    Thursday, September 16, 2010 1:00 PM
  •  

    About performance,

    .NET has the good behaviour to detect and use the technology that is on the user machine, While when writing unmanaged code you often have to write code that target low technology machine to ensure that every user can run the code without any problem.

    Of course you can do technology detection in unmanaged code and make some code for all possible hardware environnement, but it usualy end up being a lot of code ... And you cannot possibly have a different computer with every possible hardware environnement to test your application.

    For this reason, a .NET  application will often have better performance than an unmanage one if run on good computer

    • Marked as answer by SamAgain Monday, September 20, 2010 9:24 AM
    Thursday, September 16, 2010 2:45 PM
  • also, think at no more worry about memory leak
    • Marked as answer by SamAgain Monday, September 20, 2010 9:24 AM
    Thursday, September 16, 2010 2:48 PM

All replies

  • This could be a start... Usually when you're asking for advantages and disadvantages you'd supply something to compare it to... 

     

    Advantages:

    - Newest technology from MS for app development
    - Supports fully managed, but also a hyrid mix of managed and native through P/Invoke and Managed/Unmaged C++, which means that its easier to write code that doesn't have lots of memory leaks
    - WPF and WCF are the new way of buildign UI's and Communicating between processes and systems
    - Fully integrated IDE available
    - Linux and Mac support through 3rd parties (Mono)
    - Many languages available, both dynamic (IronPython and IronRuby) and static (C#, VB.NET, C++), both object oriented (C#, VB.NET, C++) and functional (F#)

    Disadvantages

    - Multi platform support isn't available from MS and isn't available straight after installing Visual Studio
    - Managed code can be slower than native code

    • Marked as answer by SamAgain Monday, September 20, 2010 9:25 AM
    Sunday, September 12, 2010 9:44 AM
  • For me, the most important reason is that lots of code that you had to write in the past, is now already available in the framework. Thus, you don't have to worry about:

     

    1. Memory handling, allocating it etc
    2. Lots of functionality already in there, such as easy to use timers, lists, threads, etc

    I used to write C++, and there you had to do all this "dull" development yourself, for every project again and again. With the .NET Framework, you are fully up to speed. And, when using WPF as a client, you can use the very, very powerful data binding which makes it even easier to customize the UI to all the needs of your clients.

    I also thought that performance of the .NET Framework was worse than for example C++. But, then I did a case study on the performance of bitmap editing using C# or C++ (MFC), and it seemed that the .NET Framework was at least as fast as C++.

     


    Geert van Horrik - CatenaLogic
    Visit my blog: http://blog.catenalogic.com

    Looking for a way to deploy your updates to all your clients? Try Updater!
    • Marked as answer by SamAgain Monday, September 20, 2010 9:25 AM
    Sunday, September 12, 2010 10:54 AM
  • There are two more disadvantages, you should be aware of.

    • .Net is very easy to reverse engineer. If you do not obfuscate your code, you may as well publish the source code.
    • The footprint of your application can be huge if it requires a version of .Net, which is not already on the computer and therefore has to be installed first.

     


    Everything should be made as simple as possible, but not simpler. Any fool can write code that a computer can understand. Good programmers write code that humans understand.
    • Marked as answer by SamAgain Monday, September 20, 2010 9:24 AM
    Tuesday, September 14, 2010 9:25 AM
  • Hi,

    Advantages

    1. Less time to produce product
    2. Less Complexity.
    3. Easily to access complex O.S functions
    4. Easily to build Data Oriented Project ; Support huge DB functions.
    5. Managed
    6. Support Both Windows and Web Application.
    7. Easy to create Dynamic sites.

    Disadvantages

    1. Not suitable for High End Application
    2. Low performance compare to C,C++.
    3. Unavailability of build in methods.
    4. .NET framework is free to download but Code Editor is costly.
    5. Only few O.S supports .NET.
    Thanks
    Dheeraj PK http://dheerajpk.spaces.live.com/default.aspx
    Thursday, September 16, 2010 7:46 AM
  • Hi,

    Advantages

    1. Less time to produce product
    2. Less Complexity.
    3. Easily to access complex O.S functions
    4. Easily to build Data Oriented Project ; Support huge DB functions.
    5. Managed
    6. Support Both Windows and Web Application.
    7. Easy to create Dynamic sites.

    Disadvantages

    1. Not suitable for High End Application
    2. Low performance compare to C,C++.
    3. Unavailability of build in methods.
    4. .NET framework is free to download but Code Editor is costly.
    5. Only few O.S supports .NET.
    Thanks
    Dheeraj PK http://dheerajpk.spaces.live.com/default.aspx

    I tend to disagree on a few of your disadvantages. First, there are a number of great examples where .NET has been used to build high end applications. The fact that most of the Visual Studio 2010 UI has been built using WPF should be a clue. There are other examples of this. Though they might not have been built purely in .NET, it has been put to good use where it's biggest strengths are.

    I don't really understand your "unavailability of built-in methods"... Do you mean that the Base Class Library isn't extensive yet? Compared to which other platform are we talking about here. This doesn't match with your advantage of how easy it is to call into unmanaged dlls using either P/Invoke or a Managed C++ wrapper.

    About the cost of the IDE, There is SharpDevelop (which is free), there are the Express Editions (Which are free), the compiler itself is free, so any text editor with syntax highlighting could do. It feels like not too long ago I used HomeSite for most of my development, though there are big advantages in using the full blown Visual Studio product. There's also free plug-ins for Eclipse (http://emonic.sourceforge.net/).

    Low performance is debatable. If performance is a key factor, C++ can often be made more performant at the cost of maintainability. Heck, even C# can be made more performant when you start using unsafe constructs on frozen parts of the managed heap. Many of the claims on performance are actually due to people not exactly knowing what they're doing. Or they are in specific applications.

    • Marked as answer by SamAgain Monday, September 20, 2010 9:23 AM
    Thursday, September 16, 2010 1:00 PM
  •  

    About performance,

    .NET has the good behaviour to detect and use the technology that is on the user machine, While when writing unmanaged code you often have to write code that target low technology machine to ensure that every user can run the code without any problem.

    Of course you can do technology detection in unmanaged code and make some code for all possible hardware environnement, but it usualy end up being a lot of code ... And you cannot possibly have a different computer with every possible hardware environnement to test your application.

    For this reason, a .NET  application will often have better performance than an unmanage one if run on good computer

    • Marked as answer by SamAgain Monday, September 20, 2010 9:24 AM
    Thursday, September 16, 2010 2:45 PM
  • also, think at no more worry about memory leak
    • Marked as answer by SamAgain Monday, September 20, 2010 9:24 AM
    Thursday, September 16, 2010 2:48 PM