Adventures in ASP.Net


Lately, Aaron and I have been hacking on a Synthesys product that uses an ASP.Net Web Service to act as a sort of a proxy between two remote client applications. It’s been a long and interesting road, especially since until recently the product was something we only used internally and hacked on occassionally.

So the poor web service has been bounced from Apache+mod-mono on Linux to XSP on Linux to IIS6 on Windows 2003 Server (the horror!), and now I’m secretly porting it back to XSP2 on Linux.

The exerpeince has been as interesting and educational as it has been frustrating. Both Aaron and I have used PHP pretty exclusively in the web sphere and Visual Studio.Net (C# & VB.Net) on the client side. Here are some things we ran into:

  • Don’t try to learn ASP.Net using Linux+XSP unless you start from a working example.
  • Don’t assume anything from PHP applies to ASP.Net.
  • Every feature you need in Mono is currently in Subversion. You can check it out, build it from source, and use it, but by the time its officially released you’ll find you need something new from Subversion.
  • For help with Mono check Monologue, Google, mailing lists, and the official web site. Answers to your questions/problems are evenly divided between these sources.
  • IIS6 is evil, Visual Studio.Net is mysterious and tempermental, but they’re still easier to learn ASP.Net in than Linux+Mono+XSP+MonoDevelop. (Although MonoDevelop does rock.)
  • PHP may have its critics, but its still the easiest platform to write web applications in from start to production deployment. (I’m not saying PHP is the best for every job; I’m just defending my old loyal friend from detractors.)
  • Debugging a web service thats passing messages between multiple clients is going to be hell no matter what platform you’re using.
  • Good old fashioned logging is the most useful debugging tool. (Just the most annoying to implement.)