So I’ve spent some time now working on Giftory for Windows. Not nearly as much time as I should have… but some time nevertheless.
I must admit, C# is a pretty nice language and .net is a pretty nice framework. It helps that I did some work in VB6 a few years back, so the whole visual development thing is familiar to me.
So the first big issue I dealt with in developing the Windows version was creating the data and linking it to UI elements.
On the Mac, we’ve had Core Data and bindings for years. I figured Windows MUST have something equivalent.
Spent some time looking… bindings was easy enough… but Core Data… not so much.
Eventually I came to understand that the closest thing Windows has to Core Data is the Entity Framework. Now Entity Framework isn’t so bad… except that, unlike Core Data, Entity Framework is intimately tied into using a database. Core Data, on the other hand, is storage mechanism agnostic.
I don’t DO databases.
With Core Data, you design your data objects and their relationships, and Core Data handles the setup for you. While I read that the 2010 version of Visual Studio will do just that, 2010 was still in beta when I started this project. Honestly I can’t believe that Microsoft was that far behind Apple for an object-graph management and persistence framework. But apparently Steve Jobs was right when he described how revolutionary it was when he first unveiled it years ago.
Now that I’ve spent some time in Entity Framework, I would say it’s a pretty decent system. It was harder than Core Data to just pick up and run with without reading a ton of documentation first, primarily because it required way too much of an understanding of databases. But once your database is set up, it’s pretty usable, and integrates very well with data binding.
I remember with Core Data I just read a little bit, started experimenting, and even though I didn’t fully understand what I was dealing with, when things SEEMED to work, I banged on them a little more to be comfortable that I had it right… and ran with it. With Entity Framework I seem to have more confidence that things are going to work as expected and the data integrity is safe. Not sure why, though.
Too bad Visual Studio 2010 wasn’t available a year ago. Would have saved me a lot of time and trouble.
So now that I’m considerably behind schedule for getting the Windows version done well in time for this holiday season, we’ll see just how rapid this rapid application development system is.
I will say this, getting Giftory for Windows to the same state as Giftory for Mac version 1.0 has taken considerably less code in Windows than it did on the Mac. So maybe I’ll actually make this release afterall!