TFS 2010 to Microsoft Dynamics AX 2009 Integration

Friday, July 30. 2010

Integrating TFS2010 with Microsoft Dynamics AX 2009 is not as easy as one might hope. There are quite a few prerequisites you need to worry about, but once you have everything in place you can just sit back and enjoy the development.

Step 1: Set-up AOS development instance on every development machine.

Unlike MorphX VCS where you can develop and check-in using clients only, in order to set up TFS VCS with AX you need to have AOS development instance installed on every development machine. This one is easy, just choose the predefined development instance from the AX2009 installation menu and let the setup do the rest.

MorpX VCS vs. TFS2010 VCS

Step 2: Set-up Team (ID) Server.

If you want to use VCS with AX you need to install the Team (ID) Server somewhere on you network. Team (ID) Server is responsible for assigning a unique ID to new AX objects in the multi-development environment. Team (ID) Server setup can be found on the AX2009 setup disk in the additional tools menu.

Step 3: Add appropriate users and computers to the Dynamics Team Server Users group on the Team (ID) Server.

Step 4: Install VS 2008 SP1 on every development machine.

Step 5: Install Team Explorer 2008 on every development machine.

Step 6: Install VS 2008 SP1 forward compatibility update for TFS 2010.

Forward compatibility update will actually enable Team Explorer 2008 to establish connection with the TFS 2010. Below is the forward compatibility update download link. Installation should be straightforward.

http://www.microsoft.com/downloads/details.aspx?FamilyID=CF13EA45-D17B-4EDC-8E6C-6C5B208EC54D&displaylang=en

Step 7: Connect to the TFS 2010 and create a new project using Team Explorer 2008.

Step 8: Assign developers (users) to the created the TFS 2010 project.

Step 9: Set-up version control parameters on each development machine.

In order to setup AX2009 to use TFS2010 go to Tools->DevTools->VerControl -> Setup -> Paramters. The Repository folder may be different and depends on the actual development machine. To setup the Team Server settings go to Tools -> DevTools -> VerControl -> Setup -> SystemSettings. Below are the version control setup screenshots.

Step 10: Enjoy TFS2010 enabled AX2009 development!

Note: You can find additional information in Team Foundation Server Version Control Setup Whitepaper for Microsoft Dynamics AX 2009.pdf and Team Server (ID Server) Setup Whitepaper for Microsoft Dynamics AX 2009.pdf documents available from Microsoft.

The Benefits of Offshore Development and Local Project Management

Friday, March 5. 2010

Here's another link to help out the Merit Solutions' Development Team:

Last week, we started a series to emphasize the benefits of offshore development combined with local project management. We call it a Hybrid Development Model, which allows us to deliver the highest quality development services to our clients at a fraction of the cost by providing the cost benefits of offshore development services, while affording them the convenience and peace of mind of working directly with a US-based firm.

Check out the Development Matters Blog for our two previous posts (three benefits total so far).

The Benefits of Offshore Development and Local Project Management: Location
The Benefits of Offshore Development and Local Project Management: Scalable Resources

New Microsoft Dynamics Development Blog: Development Matters

Tuesday, January 13. 2009

Merit Solutions has decided to publish a new Microsoft Dynamics Development blog, "Development Matters: Dynamics Development News that Matters". Be sure to check back frequently for news on Microsoft Dynamics and Custom Application Development. The first two posts of the new blog include:

Layers in Dynamics AX 2009
Layers are a hierarchy of levels in the application source code that enable you to make modifications and additions without interfering with the application objects in the next lower level. When you make an object modification on one level, the modification overshadows the object on a lower level. You could, for example, decide to add e-mail information to a standard form. The addition would be saved on your level only. The revised form replaces the standard form. However, you can always return to the original form at the next lower level by removing the new form.

Advanced Lot Management Part 1: Installation
Merit Solutions Advanced Lot Management (ALM) is the application that allows efficient control of lot tracked materials (raw or finished goods) within Microsoft Dynamics GP (versions 9 and 10.0). ALM is focused on two pieces of information: Lot Status and Expiration Date. This information affects when and how material can be used. Learn how to install the ALM application

Microsoft Virtual PC 2007 in Testing Microsoft Dynamics – Part II

Friday, October 24. 2008

The Fourth Step – Doing Some Real Stuff

Regardless of whether or not you have completed steps 1 and 2 (and assuming that you have installed Microsoft Virtual PC 2007), you are now ready for some real stuff. Let’s create the first virtual HD:


Continue reading "Microsoft Virtual PC 2007 in Testing Microsoft Dynamics – Part II"

Dynamics AX Offshore Development, Local Delivery

Wednesday, October 15. 2008

Are you considering a Dynamics AX 3.0 / 4.0 upgrade to AX 2009? Is Dynamics AX Offshore Development an option you are considering?

Offshore development companies have a distinct advantage over traditional software development companies: Microsoft Dynamics AX has been widely used in Europe for 10 years. However, offshore development companies can bring with them cultural divides, gaps in communication, and a lack of personal relationships.

Merit Solutions combines Microsoft Dynamics AX Offshore Development with local project management, implementation, and consulting. Access the cost savings of offshore development while working with a local team you can get to know and trust.

Contact Merit Solutions for any of your .NET and X++ integration needs.

Dynamics Software Development: Less Risky, Higher Quality

Thursday, October 2. 2008

Iterative, less risky, timely, higher quality Dynamics software development, why not?

Many times in postmortem software development projects, reviews uncover the same issue of requirements not being met at an adequate level. This has caused many software development companies to move towards a more agile approach in the software development life cycle for the Microsoft Dynamics family of products.

Internally, Merit Solutions' engineers are taking the lead in the adoption of this new approach. Increased communication has proven to be one of the keys for success, and even the shortest daily meetings (online, in person, or over the phone sometimes under five min long) are very productive and help prevent us from having “fires” on the projects. Our clients have already reacted positively to our continuous integration, shortened release schedule, transparency of the projects’ progress, test driven development and ability to address challenges while they are small. At the end, the outcome is a higher quality product, with more iterations that save time and money for our clients.

I have to mention that Construx resources have been very helpful in getting our team to become more flexible and meet every unique client requests. Even without being extreme, we have benefited greatly from the recommendations and guidance they have been providing in their training sessions and educational materials (one of their white papers, “Optimize Agile for Your Organization” is a great starting point for novices in this area).

Static fields and methods in .NET Remoting

Sunday, September 14. 2008

.NET Remoting is a very powerful way for writing distributed applications. What is also important to note is that it is very easy to use - users have a full comfort of working in local address space, but they are actually creating and using remote objects.

Object field contents are stored and methods are executed remotely. However, remote instances won't behave as you expected them to when you use static fields or methods in your remote class (one that ihnerits MarshallByRefObject). That's because static methods (and properties) are always executed locally. This actually means that non-static (object) and static (class) methods have different behavior, and you should keep this in mind when designing your remote class.

There is one curiosity regarding the static fields. It turns out that there are two copies of each of them - a local and a remote one! If you access the static field directly (if it is public), or via a static method or property, what you get is the value of the local copy. However, if you use a non-static method, it will be executed remotely and will thus return a remote value of the static field.

This may be a little bit confusing, so it is one more reason to be careful when you are considering the use of static data in your remote class.

VMware Workstation and MS VPC - The operation completed successfully!

Thursday, August 7. 2008

Recently the need has arisen to set up a virtual machine that will run a 64-bit version of Windows Vista on one of our servers.

Microsoft VPC 2007 with several running VM's was already installed, but unfortunately this version of VPC doesn't support 64-bit guest operating systems. So, we had to look for alternatives that would work with our current environment correctly.

There aren't so many virtualization products that will let a 64-bit guest enter the house so far. Actually, there are just two of them - Microsoft Hyper-V and VMware Workstation. The former is still not available as a separate product, but is a part of Windows Server 2008. The latter isn't free, but can be evaluated for 1 month, so I have decided to give it a try. However, it turned out that VMware Workstation and Microsoft VPC refuse to work together!

Actually, when MS VPC is started, VMware reports a strange error, saying "The operation has completed successfully". I know that it doesn't sound like an error message at all, but the real world seems a little bit more complicated. Fortunately, there is an exit.

One possible solution for this problem is to convert your VM's created by Microsoft VPC and run them with VMware. This can be achieved by using the Import option from VMware Workstation's File menu. An intuitive wizard will be shown so you can migrate easily.

However, note that some settings are not 100% replicated in the VMware clone (for example network settings), so you may need to spend some time configuring your new virtual machine to make it fully capable for its usual use. Another solution would be to identify the source of the collision and try to get rid of it. I haven't done much experiments, so you are encouraged to try to explore this and post your results here.

Microsoft Virtual PC 2007 in testing Microsoft Dynamics (Part I)

Friday, July 25. 2008

Having been heavily involved with testing Microsoft Dynamics custom products, I found Microsoft Virtual PC to be a must have tool. Not only because it saves a lot of money for not having to acquire different PCs in order to test products in different environments, but it also saves a lot of time. It just takes several simple rules to follow and knowing the functionalities that Microsoft Virtual PC has to offer.

What I will share are tips and tricks I gathered over the years, best practices, as well as other people’s advice.


Continue reading "Microsoft Virtual PC 2007 in testing Microsoft Dynamics (Part I)"

Dynamics GP Workflow Tips for DEX_ROW_TS

Wednesday, July 9. 2008

From the usability standpoint, workflow in Microsoft Dynamics GP can be used for maximizing efficiency by involving the right people at the right time. Microsoft Dynamics GP includes six workflows - and others can be built by Microsoft Dynamics partners. But from the developer's standpoint, it might make your software development project a little more challenging.

Around 70 tables of Microsoft Dynamics GP got a new field used for workflow which cannot be seen from Dexterity. The field is DEX_ROW_TS. The value of this Dex Row TimeStamp field is changed whenever the record is modified. I know that it looks guilelessly, but the DEX_ROW_ID field existed for ‘centuries’ and it didn’t bother anyone (and was helpful for all T-SQL code inside projects). However, the change was made.

The challenge is that the DEX_ROW_TS field is updated whenever the record is updated through the AFTER UPDATE trigger. So, if your product has the same type of trigger on the table which has this timestamp field it will be executed twice. Once for the original update, and once for the update of DEX_ROW_TS field. If your trigger is not there to update redundant or calculated data in other tables - but it updates the same table on which it was triggered - the loop of the trigger execution is insight.

There are a few ways to avoid the challenge caused by this approach of updating DEX_ROW_TS. Due to the compatibility of Microsoft Dynamics GP with SQL Server 2000, the solutions below are valid for SQL Server 2000 and newer versions:

  • Check the nested level of your trigger and execute the logic only if it’s not nested (see more about TRIGGER_NESTLEVEL() in SQL Server Books Online)
  • Check if DEX_ROW_TS column is updated by wrapping the trigger code into IF (NOT UPDATE (DEX_ROW_TS)) 
  • In one particular case we had to be sure that our trigger executed after the Microsoft Dynamics GP trigger which updates field DEX_ROW_TS - and that can be managed by using sp_settriggerorder

Based on the logic that should be achieved, different solutions might be suitable for overcoming the problem that has been discussed here. Any other ideas for avoiding this problem are more than welcome.

Microsoft Dynamics AX "How Do I" Videos

Thursday, July 3. 2008

The Microsoft Dynamics AX Developer Center has some "How Do I" Videos regarding Microsoft Dynamics AX and Enterprise Portal. These videos are designed for Microsoft Dynamics AX developers, from the novice to the professional.

These videos include a number of series (updated on a regular basis):

  • Form Series
  • Enterprise Portal Series
  • User Interface Series
  • Application Integration Framework (AIF) Series

Thanks to DaxGuy for originally pointing these out.

Dynamics Surestep for Software Development

Tuesday, July 1. 2008

With our team working as "backbone" support for all of our on-site consultants and many other partners, we still haven't seen complete utilization of the SureStep methodology with Dynamics GP in a way that we expected it to. On the other side, our Dynamics AX team and partners use it frequently for overall project management; even there, the development piece seems to be less defined and open to discrepancies.

In order to fulfill our clients' expectations for quality and timelines, we have been utilizing different methodologies so far (SureStep being one of them), and they depend mainly on the size of the project and the experience of the team members involved.

Has anybody used SureStep for any of their Dynamics GP, Dynamics AX or Dynamics CRM projects? We are especially interested in using it for managing larger engagements or working with another partner.

For those of you unfamiliar with SureStep, he is a good article on SureStep methodology. SureStep is available through PartnerSource.

Microsoft Virtual PC 2007 in testing Microsoft Dynamics products (introduction)

Wednesday, June 25. 2008

In the next couple of posts I will try to provide some insight on how one can utilize Microsoft Virtual PC 2007 for the purposes of testing Microsoft Dynamics products. I will try to share some of our best practices, tips and tricks.

In the next post I will go through the steps for preparing the environment for your VPC. After that, we will cover the steps for fine tuning the VPC. Finally, we will cover the tips and tricks I’ve gathered.

Meanwhile, for those of you already familiar with Microsoft Virtual PC, I recommend that you read this post by Kurt Shintaku. It contains several useful tricks.

Microsoft Dynamics Software Development

Friday, May 16. 2008

Merit Solutions Software Development has launched it's new site: http://development.meritsolutions.com

Merit Solutions specializes in customized software development services for Microsoft Dynamics Partners and Independent Software Vendors (ISVs). Our deep expertise in custom application development for the Microsoft Dynamics family of products allows us to deliver high-quality, cost effective solutions for Dynamics AX, Dynamics GP, Dynamics CRM, PerformancePoint Server Projects - and more.

Check out our Custom Software Development site.