Monday, July 20, 2009

Getting started with Visual Studio Tools for Microsoft Dynamics GP -- Adventures of a Microsoft Dexterity developer

For the longest time I had been trapped in my own Microsoft Dexterity development shell and could not see why anyone would want to integrate to Dynamics GP with anything that is not Dexterity -- I am not referring to simple customizations here! After all, Dexterity is (and will continue being for years to come!) the native development environment of Dynamics GP. So, the next obvious question in my mind was, why couldn't .NET developers learn Dexterity? After all, we were here first! But, then I decided to spin the question around, why couldn't Dexterity developers learn .NET? Now, that's a challenge I like!!

In the next 2 weeks I will publish a set of articles showing Dexterity developers that it is possible to make a relatively smooth transition to .NET development with Visual Studio Tools for Microsoft Dynamics GP -- by far, the longest name for any Microsoft product, so we will shorten that to VST.

The similarities

What you will find as a Microsoft Dexterity developer transitioning to VST is that you can do a lot of the things you are able to do when building integrating applications: an integrating application can access the forms, windows, window fields, tables, and table fields in each dictionary. They can also access global variables, commands, procedures, and functions defined in each dictionary. So from a Dexterity developer's perspective you will be able to write the equivalent of triggers -- known as event registrations in VST -- on any resource in GP's dictionary or a third party dictionary. You will be able invoke existing global procedures and functions, form procedures, etc.

In addition, VST provides the ability to develop WinForms. WinForms included in an integrating application can use capabilities provided by VST to match the appearance of the core application widows. The appearance of the window as well as the various controls in the window can be customized, just like windows created in a Dexterity application. In fact, you can also set the famous Control Area for which Dexterity windows are widely known. Finally, with the latest release of VST, you can now access Dynamics GP tables without using any data access technology, like ADO.NET for example.

As I move through the articles, I will reference the equivalent Dexterity terminology where needed to ensure you keep track of the similarities.

The Differences

From a pure architecture perspective, Dexterity resources reside in a dictionary. With VST your compiled code will reside in an assembly. An assembly is a fundamental building block of any .NET Framework application. From a coding perspective, Visual Basic.NET (VB.NET) and C# (pronounced C-sharp) will serve as replacements to Sanscript.

In summary, assembly is to dictionary as Visual Studio is to Dexterity as C# or VB.NET are to Sanscript.

What you will need

The following are the ingredients for this series of articles:

1) A valid copy of Visual Studio 2008
2) An installed copy of Microsoft Dynamics GP v10 with the Fabrikam company
3) Microsoft .NET Framework 2.0 or grater.
4) Intermediate to advance knowledge of Microsoft Dexterity
5) Click here to download Visual Studio Tools SDK SP3 for Microsoft Dynamics GP 10.0. The SDK contains the components to build integrations. Once downloaded proceed to install.

What to expect from these articles

A big disclaimer goes out to all of you Dexterity developers who will hopefully follow these articles:

1) This is not a proclamation of independence from Dexterity, rather a way to show you how to achieve some of the same integration capabilities with VST. Dexterity is a good skill to have and in today's world will keep you rightfully and gainfully employed. After all, we are a specie in way to extinction and like Bigfoot (if you believe in such thing), very hard to find. But like all species in way to extinction, if you don't reinvent yourself or learn other skills you probably won't make it.

2) These articles will not show you how to code in C# or VB.NET, rather the integration mechanisms available with VST and how they are similar to what you currently do in Dexterity. As with any new programming language, you must have fairly good programming skills. The rest comes with a lot of reading, trying, frustrating yourself, and trying again, ah... and a good search engine -- similar to how you learned Dexterity in the first place.

3) All the code for these articles will be written in C# like any world class commercially available application -- no offense to VB.NET developers intended here -- however, I will make a big effort to insert VB code snippets along with the C# code.

Please stay tuned for the series... the first article goes out tomorrow!

Series Links

Jul 21, 2009. Getting Started with VST: "Hello World!" project - Click here
Jul 24, 2009. Getting Started with VST: "Hello World!" - The video - Click here
Jul 31, 2009. Getting Started with VST: WinForms and Controls - Part 1 - Click here
Aug 07, 2009. Getting Started with VST: WinForms and Controls - Part 2 - Click here

Until next post!

Mariano Gomez, MIS, MCP
Maximum Global Business, LLC


David Musgrave [MSFT] said...

How about "Menus for Visual Studio Tools for Microsoft Dynamics GP" as a great LONG product name?

This is a great series you are creating. Something that was on my wish list.


Mariano Gomez said...


Not a bad idea! A lot of things I would like to cover in the next 2 weeks, so I am sure I can fit it in.

Mariano Gomez, MVP

Laura said...

Mario -
This is great. Thank you for comparing Dexterity terminology to VST terminology (i.e. Dictionary = Assembly). I look forward to your future articles.

Md. Showkot Ali, MCT said...

As Information technology, surrounding environment changing with time, it is best to learn visual studio tools for GP Dynamics customization.

--------Md. Showkot Ali, MCT-Microsoft Dynamics GP, Dhaka, Bangladesh

a stone thrown from nowhere said...

Thank you very much for the informative article.
I had a Query, can we do customization of GP in Visual Studio 2010 ?
Thanks in advance.

Mariano Gomez said...

Yes, you can. Currently, you can only modify the forms with Modifier, but using DAG you can create an assembly of the modified forms to use in your VST project.


Sandip Jadhav said...

As usual you the man !!!
I am trying to use third party tools like GridControl or TextBox not able to use it in this template. Is it possible to add third party tools like ?
Even I created new project added all assembly, added new class rename it to GPAddIn, referenced all DLL. When I add my project.dll file Dynamics GP throw error.

In short my question how can I used third party tools in Dynamics GP Visual Studio Tools project.


Anonymous said...

Great posts and they have been very helpful in getting started.

I am working on some custom form development, and in the "control area" of the form I would like to put the username, company, and date, with the default blue background. This way the custom form matches all the standard GP forms.

Is there a common way to accomplish this, or a setting, or control that makes this simple?

Or do I have to code that for each form?

I am using VSTools, C#, GP 2010.

Raghu said...

Do we have any alternative for Dex Database triggers in dotnet sdk.
Like DB_ADD and DB_UPDATE and DB_DELETE. how can we achieve these from .net?