Solved

Customizations and developer best practices


I have some specific questions about about how Acumatica developers manage customization projects, in particular those that involve custom C# classes and are developed using Visual Studio:  

  1. How do you manage your code repository and versioning for Acumatica customizations? Would you recommend using the built-in Azure DevOps tools in Visual Studio to manage Acumatica customization code?
     
  2. Do you have any advice for maintaining multiple different versions of a customization project that correspond to different Acumatica builds?
     
  3. What’s the best way to manage multiple development sandbox instances for multiple clients? Is this usually done on a virtual machine?
     
  4. Do you have any general advice for QA / testing specifically in Acumatica?  How would you set this up for a small team without a dedicated testing engineer?

Any insight or advice on these questions would be greatly appreciated!

icon

Best answer by Gabriel Michaud 5 May 2021, 18:50

View original

3 replies

Userlevel 7
Badge +17

Hi @rvoorheis74,

We are following as below mentioned and it may help to you. Please Review.
 

  1. How do you manage your code repository and versioning for Acumatica customizations? Would you recommend using the built-in Azure DevOps tools in Visual Studio to manage Acumatica customization code?

We are managing the Source code using the GIT Lab, Which will connect to Visual Studio to Pull and Push the code to GIT.

Also, we will use the Source Tree application, where we can Create the Branches like Master/Dev and etc. This app is very easy to use.

  1. Do you have any advice for maintaining multiple different versions of a customization project that correspond to different Acumatica builds?

Yes, For every Acumatica Version and Build we will maintain a separate Branch in GIT Lab

  1. What’s the best way to manage multiple development sandbox instances for multiple clients? Is this usually done on a virtual machine?

In my opinion, It's better to have Sandbox and Production instances.

-- This way, once development is completed, we can release to QA, and once we get signed off from QA then will release to UAT for Client testing in Sandbox instance. Once the client approved will move the Production instance.

  1. Do you have any general advice for QA / testing specifically in Acumatica?  How would you set this up for a small team without a dedicated testing engineer?​​​​​​​

-- it is better to involve the QA team along with the business analyst/Implementation consultants during the functional specs so that they easily understand in QA perspective and suggest if we miss anything.

-- Once the approach is confirmed, then the QA team will work on the Test Cases and Scenarios document and share it with the client.

-- Client will review and approve OR suggests if we miss anything from a business point of view.

-- Once Dev completed, the QA team will takeup and execute the Test cases and scenarios (Testing will become easy as they already familiar with funcationlity)

 

Userlevel 7
Badge +10

How do you manage your code repository and versioning for Acumatica customizations? Would you recommend using the built-in Azure DevOps tools in Visual Studio to manage Acumatica customization code?

 

I use Git to store and version my code. You can use GitHub or Azure DevOps as repository if you feel more comfortable with that. The following resources are a good start to learn this workflow with Acumatica:

Do you have any advice for maintaining multiple different versions of a customization project that correspond to different Acumatica builds? (I’m thinking specifically about the case where a new Acumatica release contains breaking changes, but we still need to support a customization for older builds alongside the new one.) 

You can create a branch in your Git repository to track the version. There are different philosophies regarding Git branching -- I suggest the following article which lists a few strategies with pros/cons.

Git Best Practices - What is the best Git branching strategy?

What’s the best way to manage multiple development sandbox instances for multiple clients? Is this usually done on a virtual machine? 

I always have multiple acumatica instances on the same machine -- that's not a problem. Here's our testing VM: 

 

Do you have any general advice for QA / testing specifically in Acumatica?  How would you set this up for a small team without a dedicated testing engineer?

 

Acumatica has a test framework they use internally and that is made available to 3rd parties. A few links: 

Building these tests is a significant investment of time and I would recommend to focus on the most critical components that you want to test. As you add more developers you will want to consider having a dedicated person for automation testing.

Unit testing is now possible as well. See here for information. Writing testable code is a craft that needs to be learned, and Acumatica's design make it a bit difficult to do unit testing...

Userlevel 4
Badge +1

Hi rvoorheis74,

Test SDK Starting guide, make a “hello world” test in 30-120 mins.

https://github.com/AaronBeehoo/Acumatica-Test-SDK-Beginners-Guide/tree/master/ISVTestSDK
 


To install multiple versions of acumatica on the same local machine, you can use the following command to unpack the .msi download, then run ac.exe to install the site.

msiexec /a C:\AcumaticaInstallers\21.102.0070.msi /qb targetdir=C:\AcumaticaInstallers\21.102.0070



 

Reply


About Acumatica ERP system
Acumatica Cloud ERP provides the best business management solution for transforming your company to thrive in the new digital economy. Built on a future-proof platform with open architecture for rapid integrations, scalability, and ease of use, Acumatica delivers unparalleled value to small and midmarket organizations. Connected Business. Delivered.
© 2008 — 2024  Acumatica, Inc. All rights reserved