Coffeehouse Post

Single Post Permalink

View Thread: C# biggest awesome
  • User profile image

    I have to agree that Java does have a huge amount of community code that you don't find for .Net. However, in my limited experience with working on a Java project, I found the following:

    We needed the ability to consume a web service in Java (create stubs from WSDL at compile time given a web service URL), and for a test service I used ServiceHost .Net 4.0. It took me literally 20 minutes tops to create the service in .Net that exposed a simple Hello World method.

    Then I searched around for a way to consume the web service in Java, and initially settled on Axis2. After a huge amount of effort and hair-pulling, we discovered that the reason things just didn't work was because there was a bug in the Axis2 OSGi bundle and some dependencies were not properly included (Eclipse tries hard to make it easy to manage dependencies and versioning but when things go wrong...). The whole point of an OSGi bundle is to be a self-contained bundle that can resolve all dependencies.

    Eventually we gave up on Axis2 and went to CXF. After we got that figured out and the project in Eclipse configured to automatically pull in the WSDL and create the stubs at compile time, things started to work better. However the amount of code that was automatically generated from the WSDL was mind-boggling. Not that it really matters but compare to what you get with WCF. Also using the service in Java is not straight-forward, as the structures you exposed in the service are wrapped in special classes.

    So what is my point? Well, at least in my experience, .Net contains a lot of functionality that you need 3rd-party support for in Java. WCF is light-years ahead of similar functionality in Java, and you don't need to depend on external libraries that are potentially quite buggy and unsupported. If our whole project was in .Net 4.0, it would have been a breeze since we would have been able to use WCF from start to end.

    I'm not saying this is true in all cases, just that .Net is quite complete and at least from my experience one doesn't need to rely so much on community supplied functionality.