One of the benefits of using VBA or VB6 (probably one of the very few benefits) is the ability to easily debug code. Not that it is too difficult to debug using .NET but there are a couple of tricks that you need to know. When using VBA from within RE7 you need to do very little other than set a break point where it is needed. Using VB6 plug-ins you used to be able to just run the project and start the document (until, that is Internet Explorer stopped supporting the running of these component directly).
In .NET it is not as straight forward. Either you have to create a little application that starts the form that you are using for plug-ins or for “VBA” style macros and event based customisations you need to ensure all your files are in the RE7 plugin or custom directory and attach Visual Studio to the RE7.exe process. This is done using the Tools menu item “Attach to Process”. In the list you find RE7.exe and as long as you are loading the same version of the file in RE7 as you have open in Visual Studio you are able to debug.
One of the problems with this is that it becomes slightly difficult to debug events that happen on opening of RE7 i.e. in the application start events. It is possible that you can be quick and start the Attach to Process item and select RE7 before the application has reached the custom code but it is a pain.
What is more it seemed to me that there must be a way of automating this process so that it would be much quicker. Well I got out my automation handbook and started to program (I don’t actually have an automation handbook). I put together the following macro which does the trick. I then assigned the shortcut CTRL-ALT P (you could assign whatever you like but this is one that I assigned previously to open up the attach to process window).
Dim dbg2 As EnvDTE80.Debugger2 = DTE.Debugger
Dim trans As EnvDTE80.Transport = dbg2.Transports.Item("Default")
Dim dbgeng(2) As EnvDTE80.Engine
dbgeng(0) = trans.Engines.Item("T-SQL")
dbgeng(1) = trans.Engines.Item("Managed (v2.0, v1.1, v1.0)")
Dim proc2 As EnvDTE80.Process2 = dbg2.GetProcesses(trans, My.Computer.Name).Item("RE7.exe")
Catch ex As System.Exception
This post is totally unrelated to The Raiser’s Edge and the API but in case others are having the same issue I wanted to describe how I fixed it. I have just spent the last several hours trying to get the progress bar to scroll in the marquee style. I had seen several posts referring to using a background worker to retrieve data from the database while the progress bar scrolled in the UI thread. It sounded like the right solution but it didn’t make a difference.
I read one post that helped. It said that before you instantiate your form you need to enable the visual styles.
When I ran my application all of a sudden not only was my progress bar scrolling nicely but all of a sudden I could see the graphical styles that I always had seen in Visual Studio but never experienced in my Winform applications.
If you recognise the title of this post then I was inspired by a BlackbaudKnowHow article of a similar name. In that article the author describes the differences between the three terms and how they relate to Blackbaud Enterprise CRM. This is a good overview and works well for Blackbaud Enterprise CRM. However it breaks down when talking about The Raiser’s Edge 7.
Continue reading Customizations, SDKs and API’s, Oh RE
When I wrote an article a while back about the setting up a non-production database, I thought that I had the registry and how Blackbaud use it well understood. Of course that was before Vista, Windows 7 and elevated admin rights.
Continue reading Some New (to me) Raiser’s Edge registry settings
I have been using Visual Studio 2010 for a short while now ever since the prospect of developing workflows for Enterprise CRM became a reality. One thing that I noticed when working with The Raiser’s Edge API however is that it is much faster to type out everything.
Continue reading Subtle changes in Visual Studio 2010 make Raiser’s Edge API less typing
Most people who regularly read this blog will hopefully (for their sake) never have to encounter this issue that has plagued me ever since I upgraded to Visual Studio 2005 (and then later Visual Studio 2008) and Vista (and then later Windows 7). Working with setup and deployment project is supposed to make life easier but I have had nothing but trouble with them.
Continue reading Visual Studio Setup and Deployment issue on Windows 7 and Vista Solved
I have been doing some preparation for my two Blackbaud conference sessions (in London and in Washington D.C.). Each year I present at the Blackbaud conferences I develop some new code to show. This year is no exception and without going into too much detail I am sure this will not disappoint those who are excited to see what can be done on the Infinity platform that The Raiser’s Edge platform code only ever dream of doing!
The SDK has some great integration with Visual Studio. For starters you are given very many template items to build your own components from. Intellisense works well in both the XML specs that you have to write and also in any corresponding .NET code. Continue reading Visual Studio and Blackbaud Enterprise CRM
OK so the title can be interpreted in many different ways but what is says in essential the truth.
I had a complaint from a client who was testing a plugin that I had created. She said that “deleting makes Raiser’s Edge go backwards and that the arrow keys were broken too”. Of course it took some probing for me to work out what she really meant but here is it is.
Continue reading In a .NET plugin “deleting makes Raiser’s Edge go backwards”
You may be interested in knowing how to install a plugin because you have just downloaded one and want to install it or you have just developed a plugin and want to deploy it. This article covers both.
Continue reading How to install a plugin
There are a lot of misconceptions about what the Raiser’s Edge API is and what it can be used for. A lot of organisations are put off by the fact that the API is expensive to purchase on top of the fact that they may have to cover the cost of development too.
Continue reading How to use the API on a shoestring