Choosing a Development Tool


David MeegoOne of the great things about Microsoft Dynamics GP is the fact that there so many options available to integrate with or customise the application.

There is a range from full development environments, to tools for consultants to utilities for the end user.

The list includes Dexterity, Modifier, Visual Basic for Applications, eConnect, Visual Studio Tools, Web Services, Continuum, Integration Manager, Extender, ODBC.  So which is best to use... Well that answer depends on a number of variables. This was the topic that I co-presented with Mike LoPatriello at the Microsoft Dynamics GP Technical Airlift 2008 recently (follow the link for the session materials). 

Here are some points to think about:

  • Exactly what you are trying to achieve?
  • Do I need to modify the user interface?
  • Am I modifying a core (Dynamics.dic) or third party window?
  • Do I need to change the existing behaviour of the application?
  • Am I only extending the functionality without changing existing functionality?
  • Do I just need some additional fields stored against an object?
  • Am I only reading and writing data from an external application?
  • Does my table level integration need to be real-time?
  • Do I want to ensure that the business rules are still checked?
  • Which tool(s) can achieve this?
  • What tool(s) do I already have experience with?
  • Do I need to use more than one tool to achieve a hybrid solution?

As well as the materials from the Technical Airlift session, the following white papers are an excellent comparison of the various tools with their abilities, strengths and weaknesses.

Another great resource to look at is the Microsoft Dynamics GP Developer Center, many materials and links can be found from the Developer Center.

 

The following links are also an excellent reference:

Developer Documentation for Microsoft Dynamics GP 9.0 Secure Link (CustomerSource)

Developer Documentation for Microsoft Dynamics GP 9.0 Secure Link (PartnerSource)

Documentation for Developers for Microsoft Dynamics GP 10.0 Secure Link (CustomerSource)

Documentation for Developers for Microsoft Dynamics GP 10.0 Secure Link (PartnerSource)

Microsoft Dynamics GP Documentation for Developers (MSDN)

 

Download links for training materials for Dexterity can be found on the Dexterity Articles & Links page. You can also refer to the Dex - How to get started with Dexterity post for information on developing with Dexterity.

Links for Report Writer training materials can be found on the Report Writer Articles & Links page, and links for Modifier & VBA training materials can be found on the Modifier & VBA Articles & Links page.

If you want to work with Visual Studio and the Developer Toolkit, links for the tools and training materials can be found on the Developer Toolkit Articles & Links page.

Don't be afraid to consider working with more than one tool at the same time as each tool has advantages, disadvantages and limitations. Sometimes one tool can handle one aspect of your customisation better than another.  Have a look at Developing Outside of the Box post and the Hybrid tag for more information and examples. Sometimes a hybrid approach can be the most elegant solution.

Please post your thoughts or comments on choosing a development tool as comments.

David

30-Oct-2008: Added Developer Documentation links.

03-Nov-2008: Added links to training materials.

24-Apr-2008: Added link to the Dex - How to get started with Dexterity and Developing Outside of the Box posts.

21-Apr-2011: Added Link for Microsoft Dynamics GP 2010 White Paper: Choosing a Development Tool.

Comments (7)

  1. Felipe C says:

    This is a great tool. I have been looking for this solution for a long time. Thanks!

  2. I found some great reference pages on PartnerSource and CustomerSource today. They are the Developer

  3. Spalterpea says:

    Do any of the Development tools allow you to create Objects(Forms/Windows/Controls) during runtime using code?

  4. David Musgrave says:

    Hi Spalterpea

    Dexterity, VBA and Visual Studio Tools don't have the ability to create Forms, windows or controls on the fly.

    However, some clever development can fake this.  You can have generic windows with generic fields and just hide, show and move the fields as required.  This is exactly how the Extender product "creates" windows on the fly.

    David

  5. Spalterpea says:

    Hi Dave

    Thank you for your reply. 🙂

    Would you recommend using DEX or VS Tools.

    I recall Dex not being able to open more than one instance of a form/window at a time. If you created a set of generic windows you would be limited by the number of windows you could have.

    Does VS tools allow you to open multiple instances of the same window, each with it's own set of attributes?

  6. David Musgrave says:

    Hi Spalterpea

    Dexterity is still limited to a single instance of a form.  That's why Extender has 15 of each type of form.  Once you have one you can just duplicate the form and write code that will open the next available form.

    With Visual Studio Tools and a WinForm it should be possible to open more than one instance of a form, but I have not tested this.  It would be worth testing this with a prototype before spending much time going down this path.

    David

  7. FAC says:

    Hi David

    please could you help me with this, i am developing a web app for purchase order integration with web services

    but when i execute the examples i always get this error

    The request failed with HTTP status 401: Unauthorized.

    in all examples i get the error, always in the GetPolicyByOperation method

    [System.Web.Services.Protocols.SoapDocumentMethodAttribute("schemas.microsoft.com/.../GetPolicyByOperation", RequestNamespace="schemas.microsoft.com/.../01", ResponseNamespace="schemas.microsoft.com/.../01", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]

    Line 7883:        public Policy GetPolicyByOperation(string operation, [System.Xml.Serialization.XmlElementAttribute(Namespace="schemas.microsoft.com/.../01", IsNullable=true)] Context Context) {

    Line 7884:            object[] results = this.Invoke("GetPolicyByOperation", new object[] {

    Line 7885:                        operation,

    Line 7886:                        Context});

    do you know how to solve this?

    thanks a lot

Skip to main content