A C# plugin for Eclipse

A C# plugin for Eclipse has been released. Microsoft must be in two minds about

this. On one hand they absolutely need to nurture the development community if

.NET and C# are to take off, on the other, they want to sell as many copies of

Visual Studio .NET as possible.

This can only be a good thing for the platform – an alternative (and free) IDE will be an effective way to attract those who are on the fence to at least evaluate .NET. I’ll be posting my own thoughts on it in the near future…

Worthy of further study: Webwork

Worthy of further study:

Webwork is an MVC framework along the lines of struts, but smaller and cleaner, with less servlet-specificness.

Xindice is a native XML database that allows the use of XPath for queries.

Kodo is a JDO implementation that makes persistence look really easy.

Sitemesh is a dynamic decoration framework for HTML pages.

Lucene is a java based document indexing system and full text search engine.

While trawling through some legacy

While trawling through some legacy web application code today, a paraphase of Greenspun’s tenth rule of programming occurred: “Any sufficiently complex 3-tier application will start to resemble an ad-hoc, buggy, poorly implemented version of an existing open source framework.”

Original quote: “Any sufficiently complicated C or Fortran program contains an ad hoc informally-specified bug-ridden slow implementation of half of Common Lisp.”

Been tussling with classloaders and

Been tussling with classloaders and SAX parsers this morning. Class.forName is essentially broken when using modern app. servers with multiple classloaders. Fixed that by using Thread.getCurrentThread().getContextClassloader(). Unfortunately this then broke JUnit with a ClassCastException when using the reloading classloader. Had to add a fallback to the bootstrap classloader to cover both bases.

The implementation of SAX shipped with Java 1.4.0_01 no longer uses class.forName(), which should make life easier.