For a change I’ll get off my Biztalk and BizUnit Soapbox and write about different things.
(1) First up is the Web Service Software Factory: Just downloaded it a couple of days ago and watched Don Smiths webcast. I must say its brilliant stuff. I’ve been using WSCF for a while but that just builds the ASMX facade (and does a pretty good job of it too). I’ve been looking for something that could go all the way down through the layers and into the database and it looks like i’ve finally found it. It was interesting the way we can either generate the business objects from the tables if we already had a database as well as generate database entities from the classes (he didnt actually show this but theres a menu option i need to explore). Its also good that we can collapse the code into a single project if needed instead of having 6 separate projects (although I prefer the latter). It’s use of Enterprise Library was also good.There was some controversy earlier about the patterns it uses, but IMO it does an excellent job and if you dont like the patterns, change the T4 templates and use whatever pattern rocks your boat!
(2) Next up is EasyObjects and MyGeneration : Very impressed with this too. It took hardly 3 minutes to generate all the CRUD stored procedures and the business tier AND use Enterprise Library. Decent stored procs and decent code. Wasnt too comfortable that the abstract business classes had an underscore to start their name, but im sure that can be changed in the template. The thing is CRUD is usually quite simple and it would be interesting to see how it works with custom stored procedures that act on more than one table. What happens to the class corresponding to this new composite SP in terms of the object model and its relationship to other classes? Does the design still remain valid OO (although some purists might argue that if we are generating from the db then we are hardly doing actual OO, rather we are in a data driven object world). Wonder what you folk think about this?
(3) Third up is SubSonic: I finished the introductory webcast to Subsonic just about 10 minutes ago and was nearly blown away by its simplicity. The BuildProvider with the classes all hiding in the background seemed rather like magic. I was on more comfortable ground with the class generator and batch class generators actually as that can be used to build an entire Domain layer or Business Logic layer. The scaffolding for “admin” screens is also really nifty. Since this is inspired by RAILS, i think i better start looking at Rails myself. It must be really something, just reading about it on blog articles at various sites and finding how people are going crazy over it. I have pinged the owners to see if we can get a strong named version of the ActionPack DLL so i can use it in my Biztalk projects when i need to call out to custom class libraries since BTS needs stuff to be strong named and placed in the GAC.
Im now rubbing my hands in glee. More toys for Christmas!! Now which shall I choose for my long term work? Since my immediate project is in .NET 1.1 and BTS 2004 , EasyObjects is the only one i can use. However, there are some other projects kicking off in .NET 2.0 /BTS 2006 as well, so i can move into the WSSF for the services and then use SubSonic for the general business+data components and possibly in the ASP.NET apps as well, although it will run into strong competition in this area (at least in my projects if not amongst the general populace) when the Web Client Factory is released. IMO, Subsonic is definitely more lightweight but it isnt a complete factory either. WCSF needs us to use workflow foundation for complex page flows so it seems more suited for the complex heavy hitting apps, but lets see how it turns out.
If you havent seen these tools in action, do check them out. The WSSF webcast is only an hour, EasyObjects takes a few mins and the Subsonic webcast is 20 mins.. In 2 hours you can have more options at your disposal than days of researching!! Enjoy!!