Thursday, July 10, 2008

Review: The NetCommunity Open Platform

Yesterday Blackbaud released The NetCommunity Open Platform (NCOP). It’s a comprehensive resource for developers that provides details about the NetCommunity API and other tools needed to get started creating custom parts.

It’s been pointed out in the past but is worth pointing out again that the NetCommunity API has been open although largely unsupported for some time now. As the NetCommunity product has matured so has the capabilities of its API. The NCOP represents a continuing effort by Blackbaud to formalize resources available to developers that want to build custom parts in NetCommunity. Before Labs and the NCOP developers had to rely upon on trial and error, other developers, a few limited tools released by Blackbaud and more recently on Blackbaud User Society in order to learn how to build custom parts.

Thanks to Michael Andrews and his team at Blackbaud for putting this resource together. It’s one of the better API documentations I have seen.

The NCOP also outlined some of the upcoming API changes for v5.5 which is slated for release soon. There is a lot of new stuff in there and as a developer I’m pretty excited about what I’ll be able to do when v5.5 is released.

For the non-technical readers this is where you can stop and send this link to your developer because we’re going to get in the weeds for a bit. Steve MacLaughlin has posted some more info in his blog about NCOP for those interested.

It looks like they have completely re-vamped the way the API is implemented. For those of you that just had visions of re-doing all of your current custom parts to work with this new model, relax! The good folks at Blackbaud still support the old API model so all your current stuff will still work. It also looks like they are going to just tag the old code with an ‘Obsolete’ warning when you build your project in Visual Studio. Backwards compatibility is key!

The new model will provide the foundation for more structured future growth of the API. There are now basically two properties you need to worry about that have everything under them, API and Content. The API property is used to access the platform methods, services and settings. The Content property is used to access the content of your custom part. You can read through the details on the v5.5 changes here.

The last component of the v5.5 changes I want to hit on is the formal addition of Custom Sever Controls. This is basically the ability to re-use some of the components of NetCommunity that already exist. This might include an ImageSelectButton that pops up the ImageLibrary and lets you choose an image to insert. It might also be PageLink selector or even a QueryPicker. As I understand it there were ways (unsupported) to accomplish some of this in the past but now that it’s in the API it’ll be much easier to do. What’s better than writing code that writes code? Writing code that re-uses code!

Those are the highlights I think. I have not had an opportunity to get my hands on the new 5.5 API so once I do I’ll probably be able to provide some better specifics on all the new features.

That’s it for this post. I know I keep promising another screen cast, those take a lot of time to create and I’m swamped right now but hopefully soon!


Brent Maxwell said...

I'm glad I've found this site.

I work for a non-profit that has chosen to use NetCommunity for our web site based on the fact that we use Raiser's Edge for our fundraising.

We've recently done a MASSIVE overhaul of our website to utilize the features of NetCommunity. For the most part, we've been very happy.

I have to disagree with you where you say "[NC API] is one of the better API documentations I have seen." While it does give a great tutorial and introduction to creating custom parts (it took me all of 15 minutes to create a custom RSS aggregator), I find the documentation on more advanced things, including custom services and custom server controls, to be lacking.

While I feel that the way that Blackbaud has implemented the API is phenomenal, allowing for a very easy and simple way to create custom parts in .NET, the documentation, in my mind, doesn't explore the whole range of features.

Like you said, the API has until recently been unsupported, and I know it takes time, but I hope Blackbaud will speed up their efforts to improve the API documentation.

Garrett said...

I'm glad you are enjoying the site.
I do agree with you that there is room for improvement in the API documentation. When I started developing 2 years ago in NetCommunity there wasn't much at all so some of my excitement about the most recent move to better support the API is relative.

thanks for contributing :D