Julie Lerman's DevLife

DevLife Part I [May 2005 - March 2007]

My Links

Blog Stats

News

A blog for DevSource.com.

This blog was originally part of the blogs.ziffdavis.com site from May 2005 through June 2007 when the blog was moved to the Movable Type blog engine and hosted at blog.devsource.com/devlife.
The original blog was eventually shut down and I was given the posts so that I could host them on my own site.


Archives

Playing in the land of Drag 'n Drop

I needed to write a small app to manage some data for a client. Naturally, I began in front of my whiteboard mapping out the app, the flow, the classes. Then it hit me - I was totally over-architecting this thing. I decided that since I would be the only user of the app, I was going to take advantage of the opportunity to see what it was like to drag and drop my way to an application. Having spent as much time as I did on the whiteboard still was helpful because I had to tackle some difficult relationships between the data, so I was very organized when I headed into drag & drop land.

The interesting thing about going this route is that it made me head back to a totally data driven design. If I was going to drag DataGridViews onto a Windows Form and then bind it to the database, I had to start with designing tables in the database and the relationships between them. This was painful for me, because I was not allowing myself to create classes and a data access layer and all of the goods I'm used to working with.

Once I got the hang of creating the datasources and untangling things if I changed my mind and deleted the DataGridView (but all of the datasources, schemas, etc that I created stuck around), I went to town. Admittedly, I'm not done yet because I got waylayed by a boatload of other projects. But what I have done so far is dealt with all of the base data that I need to track - the lists. In the long run, I will need to combine data from these lists (things like clients, products, categories, locations, etc) into contracts. I was amazed at how much I could accomplish without having to dig in and actually write some code. And it was a lot of fun. Like playing a game. Not that I can truly achieve my goal with no coding (nor would I want to try!)

The real advantage to this exercise, I think is that now I have a better concept of this territory of Visual Studio. I spend most of my time in the class libraries and have been very unfamiliar with a lot of the new controls and much of this type of directy databinding functionality. I also see the kind of trouble someone who is a newbie can still get into using these wizard tools. For example, I forgot to create a primary key on one of my tables and couldn't, for the life of me, figure out how to get the datasource wizard to automatically build the Update/Add/Delete commands. With the primary key in place - it just works. Without it, it just doesn't.

And you certainly hit limitions quickly enough. For example, a number of these grids have drop down lists. I wanted to be able to dynamically add items to the lists and make sure there were not duplicates. I definitely had to get into some entertaining coding for this. So I wonder what happens when someone who is a newbie with creative ideas gets totally stuck. Back to Access?

And don't think I managed to stop myself from writing *some* data access code. Of course, I had to let myself do some coding while I was working on this.

Anyway, I'm looking forward to wrapping up the app - I know that there will still be a bunch of real coding involved, but it's been fun using the draggy droppy tools where I can - and, considering what I can achieve with them, I'm pretty impressed however I don't foresee having another excuse to play with this level of Visual Studio any time soon.

posted on Sunday, December 03, 2006 10:06 PM