Friday, February 22, 2008

Post V: your NetCommunity development environment

This post is meant to illustrate some important consideration when you are setting up an environment to develop NetCommunity custom parts. There are many options here and each have their own benefits and drawbacks. I'm not recommending one method over another just pointing out some options and considerations.

What do we mean by a development environment? Well it's a separate instance of NetCommunity & The Raiser's Edge that is probably a snapshot of your production database. The idea being you want to re-create your production environment closely so you can develop against real data.

There are really two options Local development & Server development

Local Development: an instance of RE and NetCommunity installed locally on your computer.
  • Deployment is faster
  • Setup is a bit easier
  • De-bugging is a bit easier
  • Remote development is easier
  • There can be resource issues especially if you have large databases
  • Not the best representation of a server environment
  • You may need to run a server operating system
Server development: an instance of NetCommunity and RE are setup on a 'server' that is separate from where you develop
  • True representation of a production environment
  • Less resources are used
  • More Stable
  • Multiple people can develop on the same server
  • You can physically secure you development database
  • Deployment is a bit slower
  • Remote development would require a VPN or Terminal Service connection
A few additional points.

DO NOT setup local development up on a laptop if you are developing against real constituent data! It amazes me that companies are still getting burned because they put sensitive info on laptops that gets stolen.

A development server isn't a test server. I could write a whole post about test environments and I may do that but I don't recommend using your development environment for testing.

It doesn't' take a BEEFY server to run NetCommunity or RE for development purposes since the load is low. We use an old HP desktop with 4GB of RAM and about a 2.0Gig processor. That works fine for 1 developer. It has our entire database for RE and NetCommunity and it is secured in our server room.

Thats it for now, remember to subscribe to this blog with RSS if you enjoy reading.

Tuesday, February 5, 2008

Post IV: developer resources for NetCommuntiy Development

We’ve established some of the prerequisites to begin to develop custom parts within NetCommunity. As I said in the previous post there is a bit of a learning curve when you start to develop. While the APIs is pretty general and the concepts convey from one platform to another they are not all the same. It is going to take any developer without previous experience with the NetCommunity API some time to ramp up and get his/her head wrapped around it.

It’s important to keep in mind that currently Blackbaud Support doesn’t handle custom development. That being said there are several Blackbaud & non-Blackbaud resources out there that can help you help yourself.

The Blackbaud Wiki – This was recently launched by Blackbaud and is the best comprehensive resource for learning the technical ins and outs of NetCommunity development. You are going to need a .net background to understand most of this. There’s an intro along with some basics and full working samples. It’s a good resource and has the obvious benefit of being a Wiki so over time it will do nothing but improve. This should be your starting point. – It’s important to point out that this site isn’t affiliated with Blackbaud. It is however the largest community group on the internet for Blackbaud clients. The forum users are responsive, helpful & polite. The forum is well moderated. It's a great place to look for help when you get stuck and you will get stuck.

Blackbaud Support Forums – This is the official support forums for Blackbaud products.

Blackbaud Labs – Great place to see some screen casts of some of the stuff Shaun Sullivan and his team at Blackbaud are working on. Shaun does a great job of narrating these.

API Help Tools:
The Raiser's Edge Object MetaViewer - Sweet little utility file that comes with RE that can help you de-code the API. It's typically located here "C:\Program Files\Blackbaud\The Raisers Edge 7\Help\REMetaView.exe"

The Raiser's Edge API Help Files - There are two pretty good API CHM files that cover the API in some detail. They are located here;
"C:\Program Files\Blackbaud\The Raisers Edge 7\Help\RESolutions.chm"
"C:\Program Files\Blackbaud\The Raisers Edge 7\Help\reapi.chm"

Visual Studio 2005 Tools:
Custom Part Template - This is actually something I put together a while back. It's a pre-defined template for Visual Studio so you can create the basic framework for a custom part quickly. I posted it on the Wiki with instructions.

GhostDoc - Quick an easy way to comment & document your code. Just right click on a Sub or Function name and click 'Insert Comment'.

CodeSnippet Editor - A library of commonly used code snippets. You can also add your own. Very usefully for code you re-use in Visual Studio.

That's it for this post. Remember to subscribe with RSS to this blog. If you have any questions or want to see me cover a specific topic please drop me an email.