March 10, 2007 10:54 PM
by Ed Kisinger
The SDK consists of two different types of libraries, Implementation and the Interface. I love this API, they developed it for ease of use and scalability for future functionality in mind. The Implementation assemblies are not publicly expose and undocumented (protecting the developer from himself ;) ). The Interface assemblies are the interface to the implementation assemblies. There are several benefits to having the SDK architecture this way.
This API architecture style follows very much inline with how MS did the Team Foundation Server Object Model.
The SDK allows the develop to tap into any area of MOA2007:
The SDK is packed full of samples and the documentation is right on.
I know, I know.... Accounting software is extremely boring but as my partner in crime Ed B has pointed out to me numerous time "This software is essential to business" and accounting software only has the minimal functionally in accordance with accounting needs but business never works great with "out of the box" functionality, sure it works but we want the software to match the process of the business. Being able to add value to accounting software with ease via a powerful API is exciting, the possibilities are endless and there is much money to be made with add-on's. This is a great API for ISV's and "Micro" ISV's.
The Interface assemblies in the SDK are versioned. I dig this. Let me break this down. Since we are programming to the interface and not the implementation, MS can change stuff up in the implementation assemblies and it will not break my production code. But what if they need to change some stuff up in both layers to add new functionality that they want to expose to the developers. In this case they would develop a new Interface assembly and note it as "IwhateverV2". As a SDK consumer I can use this new interface assembly or I can not, and my code will work just fine. To get a some of this new functionality exposed in the new Interface I can upcast my return Interface to the new object. Currently there are 2 versions of the interfaces in MOA2007, all the new Interfaces are appended with V2, which makes it very easy to keep track of what's what. For example: when MOA2007 was Small Business Accounting we had IAccountFactory now that it is Office Accounting we have IAccountFactoryV2. We can still use the old if we want. The rule of thumb is, If you are creating a new project with MOA2007 then use the V2 interfaces, If you already have production code and are writing new code or doing maintenance coding for the same project you will probably want to upcast to the new interface version.
Ed B and I will be developing some good examples using this SDK over the next few weeks to share with the community. We are very excited about MOA2007.
a@href@title, b, blockquote@cite, em, i, strike, strong, sub, sup, u
Ed Blankenship is a Product Manager at Microsoft for Visual Studio Online. I am an author of a few books, former Microsoft MVP of the Year, and former ALM consultant. I hold Office Hours each week if you are interested in chatting.
Managed Windows Shared Hosting by OrcsWeb
Site design by Jeremy Kratz