Thursday, July 05, 2007

Getting Started with Microsoft Windows Desktop Development

My brother-in-law came to me with a request to help him get jump started in developing an application that has Quick Books integration. We are still discussing what development stack he should adopt for this project. His background is an Electrical Engineer with PERL and C/C++ experience. The application will run on Windows XP SP2 on a local area network (LAN). The application will have a GUI, its own data store, and need to support real-time events into Quick Books.

A project like this, while small in scope, is going to span a lot of technologies and concepts. For example:

  • C# development language
  • Windows GUI development (Windows Forms)
  • Database access (table creation, queries, backup/restore of data)
  • COM (Quick Books has a COM API for integration. They also appear to have a web service API [1]) and COM interoperability (going from .NET to ‘legacy’ COM)
  • Xml [2]
  • Version Control
  • Deployment

We are still evaluating what the technology stack will look like using PERL as the development language, but also wanted to assemble the necessary components for a Microsoft development stack.

Microsoft Visual C# 2005 Express Edition

Visual C# 2005 Express is the integrated development environment (IDE) for .NET C# development. It also includes the .NET framework 2.0 runtime (Microsoft’s answer to Java runtime). This IDE is mainly for developing applications for the Windows desktop. There are other versions available, but ignore them for now.

  1. Download Visual C# 2005 Express Edition: http://msdn.microsoft.com/vstudio/express/downloads/
  2. Download Visual C# 2005 SP1: http://msdn.microsoft.com/vstudio/express/downloads/

SQL Server Express SP2 Advanced Edition (includes SQL Management Studio)

SQL Server Express is the database engine and IDE for database management/development. It’s a fully functioning version of the enterprise class of SQL, just limited to a single CPU, 2GB RAM, etc…its supposed to run on the desktop. It will meet your database needs; the advanced edition simply includes SQL Reporting, SQL Integration Services, and the IDE all in one download.

  1. Download SQL Server Express SP2 Advanced Edition: http://go.microsoft.com/fwlink/?LinkId=65109

Optionally, you can download SQL examples from here. I’d probably recommend it if you have the disk space for it. However, the books online (hit [F1] from within SQL Server Management Studio) is a very good place to start.

SQL Server Express Samples

  1. Download SQL Server Samples: http://go.microsoft.com/fwlink/?linkid=65209

Online information

Intuit Quick Books SDK

You’ll need to register with Intuit to download the Quick Books SDK, but this will be required to get any sort of automatic import/export of data with QB. If your still looking to just write to a CSV file, and manually import (not a bad way to start to get an understanding of QB buckets) then you don’t need this. However, if you want to be able to enter data in a separate application and have it trigger data updates to QB, then you will need this SDK.

http://developers.intuit.com

[1] The web service API I am not familiar with. I’ll need to review and see what sort of constraints, if any, it will place on your application. Its possible that it might even allow you to use PERL to integrate with QB

[2] QB also uses XML messages for data exchange as their primary method when using the SDK. There may be some sort of CSV option, we’ll need to look for it.