So, I've been designing a new application here at the Port. The functionality I'm enabling consists of a pretty complicated business process involving conversations with a variety of legacy/back-end systems. I've been feeling like I really need to get this one “right“ for a couple of reasons. First, This new functionality represents a central part of our business here. Second it's the first time .NET code is going to be involved in operational aspects (versus mostly front-end stuff like queries via the web etc). It could represent the future model for everything we do here on the windows side of the house.
I would consider my current implementations here service-oriented, but this really boils down to each application having local service dlls... Not-really SOA in the true sense of the acronym. So, like I said, I've put myself under a lot of pressure to do things right. I've got a pretty good handle on how to do most of what I need to do, except for two big issues:
- DataSets vs. Custom Entities
- Web Services (WSE/ASMX) vs. Remoting for behind-the-firewall cross-application domain communication
Now. Here's the direction I'm going in, and I'm going to periodically post about the process of implementing this. DonXML has really convinced me to go the route of Custom Entities and this was backed up by some discussion on DNR. What convinced me here was Michèle Leroux Bustamante's question “Isn't that just a defacto agreement, that DataSets are bad? ” (Benjamin Mitchell and John Bristowe with special appearance by Michele Leroux Bustamante @ 1:09:20) So, Custom Entities it is. Specifically, I'm interested to know if I'll miss the rich feature set of DataSets, and I'm curious to know if DataBinding is any more difficult without my trusty typed DataSet.
As to issue #2, I'm going to jump into using WSE. I am a bit reluctant, however. Don't get me wrong, ASMX rocks, and we rely heavily on it for a number or apps here, but is there a big payoff behind the firewall? Folks like Clemens and Dare again have helped convince me that there is a payoff, but none the less, I'll be curious about performance, ease of use, and overall cost/benefit in terms of re-use.
So, look for more posts on this topic as I dig in to this stuff.
-Brendan