How to develope a Microsoft Dynamics solution with multiple teams? - tfs

Let me start with telling that I'm not a Microsoft Dynamics CRM specialist. I only have experience with developing .NET solutions without CRM or SharePoint and some experience how to use continues deployment of TFS to release custom applications. But for a current assignment I start with developing for Microsoft Dynamics CRM and I'm not alone.
Here we work with 2 scrum teams. Both have their own Microsoft Dynamics CRM 2016 environment and we use TFS to save our source code. Only source code, no configuration of CRM. When we release software, we need to manually merge the CRM configurations into a third environment (integration environment). This takes a lot of time and everything needs to be tested again.
I've searched on the internet and find a lot of content about customizing CRM but not how to work with multiple teams and get an automatic release pipeline for the changes both in code as in CRM.
Does anyone knows what the best practices is to develop a CRM solution with multiple teams and how to make a continues release pipeline to get the C# code and the CRM configuration automatically to the test, acceptation and production environments?

What I have done was to use the solution packager. The scrum teams would develop against their CRM instances and in a specific solutions.
They can then (either automatically using scripts and the CRM API or manually) export the solution and extract it to a version control friendly format.
This can then be committed to the version control system and then (using an automated build) get repackaged and versioned and ultimately deployed to a integration CRM instance as a managed package.
The use of managed vs un-managed packages is a bit more lengthy topic though

Related

TFS With Jira - Any tools?

I'm looking at integrating TFS with JIRA. I Want to run my test cases in TFS but when i raise bugs i want them to automatically update on the JIRA board. Is there anything out there that can make this possible?
Also would it automatically block the test case and link the bug in JIRA with it?
There is no such kind of build in feature or extension. However, you could raise bugs in TFS/Azure DevOps first when you run your test cases. Then synchronize your bugs with issues in Jira. It's not able to directly link the bug in JIRA with TFS test cases.
You could choose to use TFS4JIRA Azure DevOps integration.
TFS4JIRA is migration, integration and synchronization tool, which
bridges TFS / Azure DevOps and Jira (Server/DC/Cloud). Integrate
Azure DevOps with TFS4JIRA, to view your project or issue-associated
Azure DevOps check-ins in Jira, as well as synchronize changes made to
the issues and integrate Azure Jira work items.
Create your individual TFS4JIRA sync profiles and define the project collections which you want to work with.
Map your issue types, work item types, fields, values.
Hierarchy and subtasks synchronisation supported.
Enable your profile and, voila! – the synchronizer is making sure that Jira and Azure DevOps exchange information in the background.
If you already have some bug/issue work items in JIRA and want to import them to TFS on-premise server. There is an extension named Jira to Azure DevOps/TFS work item migration tool. It is used to Azure DevOps work item migration tool lets you export data from Jira and import it as work items in Azure DevOps or Microsoft Team Foundation Server. Here is the download page.

TFS local vs cloud

I just started with Team Foundation server and read different tutorials then tried it on default cloud server. As there is mentioned that we can only use team foundation server FREE up to 5 members. That is why I want to setup TFS on my server.
Please suggest me should I go for it ?
Is there any advantages of using TFS on cloud instead using it on my own local server?
Also is there any GOOD tutorial to setup TFS on my machine and enable it for my other team members remotely ? ( I am following this ) .
Zauk
TF Service is a nice way to get up and running quickly, without worrying about infrastructure, backups, etc. What you lose is some customization, lab management, and SSRS reporting, more info:
So which one to use is depending on your situation.
For tutorial on Install TFS
Just take a look on my 2 Guides about installing TFS 2012 and 2010, you will find step-by-step tutorial that explain to you exactly what you should do and how to verify every steps before moving to the next one, they have videos and documents with every detail steps needed.
I recommended to have a look on the whole sections because sometimes service accounts used for configuring different TFS components are very important.
TFS 2012 Guide
TFS 2010 Guide

Best Practices for TFS and MVC projects - deploying changes only

I have several websites that I manage for a company and they want me to transition to TFS. As part of their policy, I can only deploy files that have changed since the last deployment. I.e. if a view has changed then it gets deployed, if it has not changed then it not part of the deployment package. They use automated tools for the deployments.
Currently I use a custom tool I wrote that hooks into my local source provider (Vault Pro) and finds all the changes from a given date and copies those files to a zip file.
How can I accomplish something similar with Team Foundation Server?
TFS provides you with an SDK that you could use to query it from code. Here's the documentation of the client API.

Is it possible to set up continuous integration for MS dynamics crm 2011?

We are just beginning development and implementation for dynamics crm 2011 on premises. Is it possible to implement automation for code check-in to promote code from development to test systems? It looks like this would involve export/import of unmanaged solutions containing the development code that was checked in. I have not been able to find APIs around this functionality.
If that is not possible, how close can you get? It looks like there are APIs to automate the uploading of web resources and plug-ins (e.g. webresourceutility in the sdk), but the web resources still need to be manually linked to the form they are to be used on (in the case of javascript etc). Has anyone made progress in automating parts of their CRM environments?
for reference, we're using vs 2010 & tfs 2010 using MSuild for current continuous integration.
We have a few techniques that provides us a very solid CI structure.
Plugins
All our Plugins are CI Compiled on Check-In
All plugin code we write has self-registration details as part of the component.
We have written a tool which plays the Plugins to the database, uninstalling the old ones first based on the self-registration
details.
Solution
We have an unmanaged solution in a Customisation organisation which
is clean and contains no data. Development is conducted out of this
organisation. It has entities, forms, Jscript, Views, Icons, Roles,
etc.
This Customisation database has all the solutions we've imported from 3rd parties, and customisations are made into our solution which is the final import into a destination organisation.
The Solution is exported as managed and unmanaged and saved into
TFS
We store the JScript and SSRS RDLs in TFS and have a custom tool
which plays these into the customisation database before it is
exported.
We also have a SiteMap unmanaged Solution which is exported as unmanaged (to ensure we get a final resultant Sitemap we are after)
Deployment
We have a UI and Command Line driven tool which does the following :-
Targets a particular Organisation
Imports the Customisation managed solution into a selected environment. e.g. TEST. Additionally imports the unmanaged Sitemap.
Uninstalls the existing solution which was there (we update the solution.xml file giving it a name based on date/time when we import)
Installs/Uninstalls the Plugin Code
Installs any custom SQL scripts (for RDLs)
Re-enables Duplicate Detection Rules
Plays in certain meta-data we store under source control. e.g. Custom Report entity we built which has attachments and XML configuration.
It isn't entirely perfect, but via command line we refresh TEST and all the Developer PCs nightly. It takes about 1 hour to install and then uninstall the old solution per organisation.
We use CI extensively for Dynamics CRM. For managing solutions, I would recommend using a "clean" Dynamics CRM implementation which will be the master for your solutions and also for your "domain data". See http://msdn.microsoft.com/en-us/library/microsoft.crm.sdk.messages.importsolutionrequest.aspx for importing solutions. Also check out - http://msdn.microsoft.com/en-us/library/hh547388.aspx

Setup for Team Foundation and ClearCase with TFS Integration Tool

I want to do daily migration of TFS changes to a ClearCase system. I was going to try out TFS Integration tools but I can't get any of the toolset pieces to work. What are the requirements to run this app? I have VS 2010, TFS 2010 and Sharepoint 2010 installed. The assemblies it's trying to load don't seem to be present in VS2010 and I don't if it requires VS 2008 or not. Anyone ever had this running? I'm migrating from TFS to CC. Not the other way around.
Update:
I've been using this tool to sync TFS 2010 changes back into a UCM ClearCase implementation at the client. It has been going poorly. The tool should be clearly marked as Beta or even Alpha. A peek into the code reveal around 100 TODO's and "This needs to be fixed". I have spent a good deal of time trying to iron out some of the issues and have made progress. My suggestion is before using this tool on mission critical projects, spend at least 3-4 weeks evaluating it in your environment. When it works, it works pretty well with moving changes.
I don't know much about how to access TFS2010 elements, besides "check an individual project for pre & postbuild steps either by loading the project in visual studio or manually reading the project file".
If you need Sharepoint assembly, this technote describes the requirements.
And I don't think an automatic import utility exists (from TFS2010 to ClearCase 7.1.x), as this technote mentions:
Change request (RFE) RATLC01005874 had been submitted requesting a conversion utility to export source code from Microsoft Team Foundation Version Control (TFVC) to ClearCase;
however, the decision was made by Product Management to exclude the requested feature from future upgrades and releases due to the significant architectural changes required to implement the solution.
The right approach is to manage to list the content of relevant labels for a given scope, and make a clearfsimport into a ClearCase view, with a full label applied right after it.
You don't need TFS (server), VS or SharePoint installed. You will need a SQL server for the core platform. Then you will need the various assemblies for TFS, which you can get by installing the Team Explorer component (it's on the TFS install media).
We decided to go with the TFS Integration Platform. It allows us to sync TFS work items back into ClearCase when ever we want. It provides the level of integration we needed to keep the traceability. The TFS to CC integration is bleeding edge, but it works enough for what we need. (Syncing work items and user check ins.)

Resources