Wednesday, 27 January 2016

Development Tools in Acumatica

Hi Everyone,

Today I want to speak about tools and application that Acumatica team uses during development.
  1. Development 
    1. Microsoft Visual Studio 2012+
    2. ReSharper from JetBrains for faster development
  2. Databases and SQL
    1. Microsoft Sql Server Express + Microsoft Sql Server Management Studio
    2. Microsoft Sql Server Profiler
    3. My Sql + SQLyog MySQL GUI for MySQL
  3. Performance
    1. DotTrace from JetBrains for performance testing
  4. Memory
    1. .Net Memory Profil for memory analysing
    2. Windbg for deep process dump analysing
  5. Sources
    1. Git + Stash for sours control and analysing
    2. SourseTree + GitExtension as GUI tools for Git.
  6. Documentation and Tracking
    1. Jira for bugs tracking
    2. Confluence for specification, features and documents traking
  7. Build and Installation
    1. WIX for generating Microsoft Installer
    2. Bamboo for managing builds
    3. Orca - for MSI package debugging.
  8. Tests
    1. Selenium Web Driver for running black box testing with browser.

Let me describe little bit more about some important tools that can help you as well.

Visual Studio
There is useful add-on to Visual Studio - "Attach To" - it adds one button like "Attach to IIS", that you can use to attach to all working processes with one click.


JetBrains Dot Trace Prefomance
This great application that can help you to investigate performance. Just attach it to the process and collect the results. It will show you the average time of the methods and if you have PDB files, you are able to analyze the code.

.Net Memory Profile
Another good app that can help you to understand what is happening on server side. You just need to launch the Acumatica application with the profiling and then you will be able to take snapshots of memory. Application can show you what is taking more memory than expected.

Windbg
Extremely powerful tool that is a part of Microsoft SDK tools, which can open and analyze process dumps files.

To use this tool you have to get two .DLL libraries from .Net Framework on machine where process dump has been created. After that you have to load tham into windbg tool with “.load” command.
  • .load c:\sos\sos.dll
  • .load c:\sos\mscordacwks.dll
Than you can launch system command .symfix to set symbol store path.
Then you can analyze all objects in memory with these commands:
  • !dumpheap –stat – all type form dump
  • !dumpheap -type System.Data.SqlClient.SqlConnection – specific types from dump
  • !do 000007feeeca24a0 – get values by specific address 
By exploring memory with this way you are able to get values of every object instance in the current process dump. This is helpful if you need to understand why program is not working correctly.


No comments: