Deliberating over various disconnected data architectures, chosing one, and then pouring all of my attention into making it work has been an awakening experience to me. Disconnected Data Love. This distributed architecture is a beautiful thing and makes new areas of development in Rich Client and Mobile applications possible in my future. The data model has many flavors and can use a wide range of technologies: ADO.NET DataSets, Business Objects, CSLA, ORMapping, Extensible Database File System approaches like Base4.NET, etc. But at the end of the day you have to build a product. You have to pick an approach and go with it. Picking it is the hard part. (Actually, building a disconnected data model regardless of what approach you chose is definitely tricky, but the decision is still hard!)
So in my first Smart Client application I am going with ADO.NET 2.0 DataSets. I've investigated every technology I listed above, and I get the DataSet approach. I can use it to build my app and deliver a great product to my company in the shortest amount of time.
Part of my decision was based on available resources to study and anchor my approach. There were not many working examples out there, granted, but the DevDays 2004 IssueVision Smart Client application from Vertigo Software had all of the functionality and with the source that was enough to get me on my way. I re-watched all of the IssueVision Smart Client Track videos on the DVD, studied the source, ran the app over and over again. And things started to make sense to me. I liked it.
I'll be blogging on the details. This post is to describe the decision of going with the ADO.NET DataSet model. One point I'll make now is that ADO.NET 2.0 makes this model a much more productive approach than attempting to make it work with ADO.NET 1.0.