Java v. .Net?
JEmLAC writes: "Fawcette's running an interesting piece (in conjuction with JavaOne) on a presentation by Gartner analyst Mark Driver concerning the emerging niches for Java/J2EE and .Net in the deployment of Web services. His take is that by 2005, they will be co-standards."
I'm currently in the middle of implementing a large scale, customized CRM system for a global company.
.Net because we needed a system wide platform to build all the customisations on. I would rather have used a more mature technology (Enterprise Java anyone) but MS was insisted upon us.
.Net all the right ups and books about it got me excited. It really does bring everything you need to build a web application into one platform. The problem ...
.Net because it "did everything".
They insisted on using MS technologies (server maintenace would be easier they said).
So we decided to use
When I first started to get into
There are far too many cracks that things fall through. All the little nitty gritty things that you don't want to become intimately involved with when building an enterprise system, do exactly that, force you to get intimately involved with the low level stuff.
If I wanted to do low level work I woulda used a custom built platform (combo of server scripting, php or asp, and my own server side binaries with all the funky stuff in it). But no, we chose to go
Yeah it did everything alright, just not completely.
For example, anyone tried printing the contents of a rich text box control? Why use a prepackage rich text box control if you have to right your own low level rtf parser to print? how furked up is that?
SOAP is the external interface of the web service. The idea is that you implement this interface using Java or the .NET framework.
Of course, a SOAP-compliant web service could be implemented through Perl, C, shell scripts, REXX or specially-trained gerbils, the client program using the web service shouldn't know (or care).
We are porting some java sites to asp.net, and have been very happy with the results. As to your comment 'rarely know why' - here is why we are doing it: 1) Cheaper hardware - replacing overpriced Sun and HP boxes 2) Very clean design/coding methodology - nice code separation 3) Performance - we are seeing 2-20x perf gains with ASP.net over Java equiv 4) Excellent error handling 5) Nice caching infrastucture 6) Data access layer that makes Java look like a beta product 7) Great integration of SOAP/XML 8) Good degugging
Overall, the platform has may advantages and is a pleasure to code in with the VS.Net IDE. We are not looking back.
Ah, but you fail to see how much faster it is to deploy SOAP based web services than CORBA/IIOP.
.NET or develop on a non-Windows platform, why not give Systinet's WASP web services a try (http://www.systinet.com)? The Lite version is free even for commercial use, and the C++ implementation is open-source. It automagically generates all the stub code for you from Java skeleton classes.
:)
.NET! (And they're not paying me for this post...)
If you are averse to
Go ahead and follow their hello world example, and time how long it takes you. Then go do it in CORBA and ONC/RPC.
The whole point of Web Services is true interoperability and abstraction of the transport, while still giving you the means to tweak the transport as necessary for your distributed apps.
It is much bigger than Microsoft, and much more than hype. WS hype is like XML hype. Yes XML is useful, though the hype can cloud judgement over what to use it for and what it will do.
Nuff said, web services rock. BTW WASP works great with
esac
The technique is called "Boxing" and it is how .NET enables the use of value native data types (i.e. ints, floats, bools etc) as actual objects. see example below
int testInt;
testInt.Parse("600");
testInt is a value type so theoretically isn't handled as an object (its placed on the stack, not the heap). But in order for us to use the Static methods of the int class we need to "Box" the int, so we can treat it like an object. THis is basically placing an object wrapper around a value type (i.e. dereferencing it in the heap etc).