locked
one benefit of .net over java RRS feed

  • Question

  • i had gone to a inteview last month,one question asked to me .it is tell me the one benefit of .net over java.can anyone help me.
    Sunday, September 30, 2007 6:08 AM

All replies


  • The benefits of .NET

    In an economic climate where IT Directors are having to rigorously justify their investments and where businesses are looking for clear evidence of positive ROI and improved competitiveness before sanctioning expenditure, developers are having to deliver faster, better, cheaper development in order to keep their customers. Microsoft's launch of the Visual Studio NET framework and Visual Studio tool set, which radically cuts the time and cost of systems development, could not have been more timely, nor more welcome.

    The benefits of .NET

    The .NET environment allows today's architects, analysts and developers to spend more time and effort focusing on their clients' business issues and less time wrestling with the limitations of the technology itself. This alone is good news for IT Directors. Furthermore, .NET is at its best when it is being deployed against new business processes which take full advantage of today's interconnected world.

    .NET is exceptional at building transactional, interactive web sites using ASP.NET. It allows the architect to design rich and complex interfaces within a browser environment and it can deliver these without the programmer having to make extensive use of client side or server side scripts. This means that many internal business systems can now be rolled out targeting browser front ends.
     
    .NET is excellent for web service based applications, both as a consumer and provider of web services.
     
    .NET's ability to use the same code across all environments, server, internet, desktop and mobile device makes the targeting of multiple devices a relatively simple matter and the integration of mobile devices with central systems, for example, a far less daunting task than with previous or alternative development environments.

    Although it is easy to produce interactive, transactional web sites with .NET, the drag and drop nature of the tool, linked with the event-driven model (familiar to VB Programmers) also means that prototype applications can quickly become production applications.

    Faster, better, cheaper development

    .NET delivers:

    Faster development of applications that work for businesses
     
    Faster performance for interactive transactional internet applications
     
    Flexibility to use developers across different target solutions, thanks to their use of the same development environment, APIs (or objects) and languages.
     

    .NET delivers:

    Easy deployment of the end solutions, (in developer jargon, "the end of DLL hell").
    One development environment that targets all platforms: from services on the server or client to console applications, internet applications, ASP.NET components, web services, enterprise transactional components, GUI components, Windows applications, Pocket PC applications and Smart-Phone Applications.

    Abstraction from low level programming, greater architectural choice, full Object Orientation
     
    Choice of language, depending upon internal skills (VB, C# or C++)
     
    Scalable architectures
     
    Built-in support for XML and Web Services. Plus the intrinsic capability to build and use XML and Web Services, making .NET a future-proofed platform
     
    Ability to choose architectures that are robust, reliable and secure
     
    Security features integrated within the frameworks
     
    The .NET framework is to be embedded into the next release of SQL Server, and the next release of MS Office

    .NET delivers

    cheaper development - significantly less time is needed to develop applications within .NET compared with previous languages
     
    cheaper deployment - deployment can be done through the browser. Conflicts with other suppliers' code are rare and there are no DLL conflicts as with Windows API programs
     
    cheaper maintenance - if you are writing an ASP.NET solution, all you need is a Windows Server, running IIS. No additional costs are required (unlike J2EE, where you need the server and operating system, and an application server to run the application)

    Implications for systems architects

    With all these advantages, one can't help but wonder if there is a corresponding downside to .NET? In creating c# and vb.net Microsoft have substantially eased the learning curve for programmers wishing to use NET. However, for the system architect the situation is more complex. .NET has architectural possibilities that simply were not available in VB6. Understanding how to make best use of these is a challenge both for them and for designers: how should code be written to maximise its portability from web server to handheld? When should entity classes be used instead of typed datasets? What data access strategy should be employed for different components?

     The power and flexibility of .NET means that architects are offered a much wider range of options than before. The existence of such choices is exciting, and yet the challenge remains of gaining the understanding and experience required to make informed decisions. It not only takes time and real world development experience to use .NET. but also when developing in .NET the importance of using an experienced systems architect is far greater than before, if the full potential of the environment is to be realised. .

    NET versus J2EE

    There are three main areas that need to be considered when comparing .NET and Java: the languages, (and the way in which the languages run), the enterprise architectures delivered with the languages, and the way the development is carried out. Considering all these together, I can only come to one conclusion: I would choose .NET over Java, since it allows me to deliver business benefit more quickly.

    1. Java and .NET are both part of an evolution in the way software is now being developed. When you look at the basic fundamentals of Java and .NET as actual languages and also at the way in which they work, there is little difference: both have runtimes and class libraries and both are true object-oriented implementations. I enjoy programming in both languages, and both will be here for a long time to come. The passage of time will show that just as machine code and assembly language are rarely used by today's developers, the 3GL languages, Pascal, Fortran, C, C++ will be confined in the future to specialist niche areas
     
    2. Over and above the languages, Java and .NET are complex to grasp, unless you have been programming in an object-oriented fashion for years. When you look at Java application servers, and the set of choices offered by J2EE with Entity Beans, Session Beans, or J2ME with its different profiles, there is a bewildering set of options to consider. At present, however, although it has a complex set of options, .NET is cleaner, it has one framework to develop internet sites, rather than three: java servlets, JSP and STUTS, and overall, compared to J2EE, it has a relatively simple set of architectural choices, while still offering challenges for the Enterprise Architect
     
    3. It is only when you examine the way developers work that you see where Microsoft's investment in producing an outstanding development toolset - Visual Studio.NET - has really paid off. The toolset allows the developer to produce solutions quickly. Personally, I consider the .NET development environment to be a major improvement over previous versions and better than any of the Java toolsets I have seen or used. Although there are a large number of programs written with VB6, C++ (and the MFC), embedded Visual Tools, and Visual Interdev, these must now be considered legacy applications. I would recommend that you do all new developments using Visual Studio .NET 2005 – one tool for all solutions rather than four for different types of solution

    Conclusion

    As a business analyst, solution developer and leader of large development teams who has developed in C++, Java, Smalltalk, PowerBuilder and VB, I feel confident that I can deliver faster, cheaper and greater business benefit using the .NET tool-set than using any other development environment. 


    Sunday, September 30, 2007 6:28 AM
  • The CLI and C# have many similarities to Sun's JVM and Java. They are strong competitors. Both are based on a virtual machine model that hides the details of the computer hardware on which their programs run. Both use their own intermediate byte-code, Microsoft calling theirs Common Intermediate Language (CIL; formerly MSIL) and Sun Java bytecode. On .NET, the byte-code is always compiled JIT, although the ngen.exe utility can be used to pre-JIT the code into a cached native image; with Java the byte-code is either interpreted, compiled in advance, or compiled JIT. Both provide extensive class libraries that address many common programming requirements, and both address many security issues that are present in other approaches. The namespaces provided in the .NET Framework closely resemble the platform packages in Java EE API Specification both in style and invocation.

    .NET in its complete form (Microsoft's implementation) is currently only fully available on Windows platforms and partially available on Linux and Mac,[11][12][13] whereas Java is fully available on nearly all platforms.[14] .NET was built from the ground-up to support multiple programming languages while targeting Microsoft Windows; the Java platform was initially built to support only the Java language on many operating system platforms under the slogan, "Write once, run anywhere." Support for many programming languages has been added to the Java platform[15].

    Microsoft's implementation of .NET is closed source, whereas Sun's reference implementation of Java is becoming open source (including the class library, the compiler, the virtual machine, and the various tools associated with the Java Platform).[16]

    However, the third-party Mono project is developing an open source implementation of subsets of the .NET Framework, including the Common Language Runtime, for the Linux, Solaris, Mac OS, and Windows platforms. The current version supports version 2.0 of .NET,[17] .

    Sunday, September 30, 2007 6:37 AM
  • open source  quality of java is advantage over .net not a disadvantage.
    Sunday, September 30, 2007 7:48 AM
  • SIMPLY SAYING ...

     

    RAD is the greatest Advantage of Dot Net Over JAVA ....

    Sunday, September 30, 2007 9:03 AM
  • The best advantage is the IDE of the .net that we get in visual studio... Java still dosent have a pure IDE... I mean there are 3rd party applications like Elipse, that you can use in Java.. but the IDE of .Net that is VS is very strong and good...

    This is the biggest advantage...
    Sunday, September 30, 2007 9:12 AM
  • on my view...,.NET is much better in building UIs. Java on the other hand is portable....also It all depends on what kind of application you're talking about. Is it a web app, standalone/desktop app, do you need to run it on multiple platforms etc. Note that you can get .NET to run on other platforms too..
    Also, cost is an important factor. Java is an open source backed technology whereas .NET is not.
    Sunday, September 30, 2007 10:13 AM
  • in layman terms,

    .Net is compatible with all compilers, cos it is converted to MS Intermediate Language

    Sunday, September 30, 2007 10:44 AM
  • LANGUAGE INTEROPERABILTY - the abilty to access the components developed in one language from another language(where both the languages comply to the Common Language Specification)
    Sunday, September 30, 2007 3:00 PM