On Sat, Jul 02, 2005 at 11:48:37PM -0700, Dakota Jack wrote:
} What is your basis for your assessment of .NET and Struts?  What sort
} of problem are you talking about/

My assessment is based on my own development experience with both, plus
lurking on this list for a few years. I will reiterate that I am not
interested in converting Java/Struts developers to C#/.NET developers; I
want Java and Struts to be the best they can be, and that knowing the
competition is a step toward that.

I posted something fairly in-depth about the advantages of C#-the-language
over Java-the-language. Check the archives for the last couple of days. A
few of those advantages have to do with the .NET runtime itself (in
particular, 1) properties being first-class reflectable objects, just like
methods and members, rather than derived from the JavaBeans get/set naming
convention, and 2) events and delegate (method pointer) types being
first-class reflectable objects rather than using interfaces for handlers).
For now, Java has the advantages of generics and anonymous inner classes
over C#, but the next version of C# (due out this year, and what I'm
hearing about the betas leads me to believe that it will actually be out
this year) supports both of those and simplifies a few other common idioms
(iteration, in particular).

I have not done any comparison of .NET vs. Java performance, nor have I
compared their garbage collection strategies or threading models. They seem
to be pretty similar, and they can be expected to maintain very similar
performance profiles since the optimization techniques for such things are
old in academia and well-published. Their different choices of performance
tradeoffs may eventually effect their usefulness for particular purposes,
at which point it may be appropriate to choose one or the other based on
one's specific application.

The APIs (system libraries and extension libraries) considered part of
either Java or .NET are pretty similar. Java has a much larger set of
third-party free libraries (in good part thanks to Apache's Jakarta
project), but many of those are being ported to .NET. On the other hand,
there are many commercially-licensed components for .NET, and there are
likely to be more, simply because it is in the Microsoft world. I don't
have exact (or meaningful) figures on this, so take it with a grain of
salt. Anecdotally, I can say that in a previous project I sought a
particular ASP.NET control and found dozens of candidates, commercial and
otherwise, and the one that best suited our application was commercial. (We
bought it, we used it, their tech support was excellent (including
accepting patches from me), and it did what we needed.)

Comparing JSP and Struts to ASP.NET turns up sharp corners in both. It's
very easy to encapsulate functionality in a custom tag in ASP.NET, much
harder to do so for JSP. Struts abstracts away the specifics of the
generated HTML (both outgoing HTML and incoming form data), which supports
the MVC model; ASP.NET requires a bit more hoop-jumping to do so.
Validation, both server-side and client-side, is far easier in ASP.NET than
with Struts. ASP.NET has almost no configuration required other than the
.aspx/.ascx (equivalent to .jsp) files themselves, whereas Struts requires
a configuration file that grows increasingly complicated as the site grows
larger (though, to its credit, it does centralize the transition graph of
the site). Neither Struts nor ASP.NET cares much about business objects,
but both can deal with them just like any other object. Finally, while
ASP.NET scales well from a single page to an entire site, Struts doesn't
really shine until you get to at least 5-10 separate forms/pages.

I hope this is a useful answer to your question.

--Greg


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to