Our business is looking to automating Dynamics CRM hosting. We've been looking at the options. At the moment, it seems like HMC/MPS would be useful. However, from the looks of it, the frameworks are nearing end of life and are also. HMC/MPS also seems to be based around exchange. Would it make sense to use HMC/MPS to provision CRM or is there another framework. Would we be better off talking directly with the Active Directory and CRM Deployment Service APIs?
I work for EMS-Cortex and this is what we do. Please have a look at our website www.ems-cortex.com and if you are interested get in touch.
Please remember HMC/MPS has been cancelled, and if you invest in it now you are investing in technology which will have disappeared in about 12 months.
Kind Regards
Daniel Thurston
Related
Recently Microsoft announced some changes to their Dynamics 365 Teams license. The people who have these licenses will not be able to access Sales Hub, Marketing Hub, custom model driven apps etc and will have their own app like Sales Team member app.
These dedicated apps have restrictions of only 15 custom entities.
This change will cause some of our clients a lot of problems. As per my understanding, the only option they will have is to buy the full Dynamics license.
Am I correct on above? If no then feel free to correct me. If yes then can anyone suggest a good alternative?
Yes, the new licensing model is quite confusing.
I suggest to check the updated licensing guide (if not already done)
https://go.microsoft.com/fwlink/p/?LinkId=866544
(if the link does not work, it is taken from here: https://learn.microsoft.com/en-us/dynamics365-release-plan/2020wave1/dynamics365-sales/license-enforcement-users-new-team-member-licenses)
Allthough this document is quite extensive, it is also recommended to talk with you MS Sales Rep (or anyone else who is responsible for you from MS side) to make sure all your needs are covered.
I know it's hard to, but how do you improve user experience in Dynamics CRM 2011?
How do you design your forms? Are your forms "full of iframes"? Do you hide all the fields then insert an iframe that hosts and exposes all the features?
Do you try to mimic the default style of Dynamics CRM in the iframes (so that it integrates better with the user interface)?
The Xrm.Page.data.entity.attributes allow installation of onChange() handlers. That's all as far as I know. How do you deliver good user experience by having almost no feedback from the user?
I hope these are common sense questions :)
Thank you in advance!
PS: I'm kind of new in Dynamics CRM development
and...
how do you make an autocomplete text-field?
You're going to constantly fight a battle between maintainability and customization. Sure, you can do lots of custom iframes, a javascript and everything else, but Dynamics CRM is a rapid application development platform. Making the most beautiful websites ever was not its intent. Allowing the people with the business knowledge to make changes and customization that are supported through multiple release cycles was. I would try to keep it as simple as possible.
As far as an autocomplete text field, use jquery to wire up some on change events and go from there.
With regards to mimicing the default style, I think you'll find the style guide in the SDK useful for matching particular colors and fonts, etc. You can find it in sdk\resources\styleguide:
As for improving the experience, I try not to fight what the CRM framework provides. I use the existing controls as much as possible and use supported javascript to smooth over the on-form details. If you have a specific requirement we can suggest solutions. The form events for onload, onsave, and onchange provide an acceptable level of feedback for almost all situations on a data form. What specific requirement do you have that requires more than those?
Hope that helps.
I am looking to automate the deployment process for CRM between different Environments eg.Development Env, Test Env and UAT.
I am wondering if there is existing tools(s) available on market to automate the deployment for me?
If NO, Is it possible to automate the CRM deployment between different environments and what is the best practics for doing that?
Thanks
Where I work we are currently working with the exact same issue. I spend quite some time initially looking for of-the-shelves products that could help us, but I have not found anything promising. Therefore we have undertaken the task ourselves.
Some guys from Microsoft made a short "whitepaper" on the subject which I found quite helpful. It can be found here at Deploying Microsoft Dynamics CRM 2011 and CRM Online Solutions from Development through Test and Production Environments.
I will not claim that we are using "best" practices, but we have chosen to try and script everything in PowerShell or through .net based CmdLets in our own PS-module. CRM server comes with a PowerShell snap-in that sports some basic functionality for creating/removing organizations, but you are more or less on your own when it comes to actually "deploying" CRM-customization, configuration data, users etc.
It would be interesting to know, which approach you choose (if any)? And if you have any specific question, please don't hesitate to ask!
How about this?
The xRM CI Framework is a set of tools that allows you to quickly and easily implement Continuous Integration for your Dynamics CRM solutions.
PowerShell and the XRMCI framework will serve you well for solution deployments, the downside being that for Standing or configuration data that cant be added to a solution (or for solution items that are currently buggy in CRM 2015 e.g. Case Creation Rules, SLA Items etc.). In this case, my client and I have created powershell C# CmdLets that use the SDK and API to create standing data such as Users, Teams, Memberships, Queue's, Case Creation Rules (although its unsupported, the API does allow it), and to configure mailboxes etc.
So in combination, the XRMCI framework, C#, and PowerShell can be used to automate a deployment of one environment to the next. The key is to take it slow, manually execute the scripts to begin with and build trust in the process, tweak and add more elements. Once that trust is achieved, move onto integrating it with TFS in as a CI/CD process.
As for best practice, my own research suggests that this is still a "he/she who dares" area with no real "best practice", in time the players such as Chef, Puppet, Octopus and Microsoft (with DSC) will contribute, but for now....
I've been trying to find a guide on how to get Team Foundation Server to turn on a lava lamp or traffic light to indicate the status of the build. I want to set up something that's visible right across the office so there's some peer pressure to encourage developers not to break the build; but I also want it to be fun.
There's a lot of examples for CruiseControl that use X.10 devices which seems like a good way to go. But I can't find anything similar for TFS. I'm sure that somebody must be doing this somewhere...?
Using X.10 has one problem in that it requires a serial port - but our TFS is completely virtualised in a data centre somewhere. Maybe there is some way to trigger the traffic light via an email?
Any advice appreciated. Thanks.
The TFS have got a nice API for getting the status of recent builds. You can use the API and design your own fun system.
Also take a look at:
TFS Build Monitor
TFS Build Light
At some point I had stumbled upon this youtube-video, where Martin Woodward presents Brian, the funky TFS-build bunny. Might be worth checking. It might also be worth checking this SO post.
The TFS API's are terrible they're a pain to do yourself. You could start with this open source project on Google Code: http://code.google.com/p/siren-of-shame/. That project is designed to work with a couple of different build servers, but everything is broken out, so you could start with the TFS 2010 project (TfsServices.csproj). Or if you don't want to do it all yourself that project is designed to work with a USB Siren that they sell (see http://www.sirenofshame.com/).
My organisation is in the final stages of acquiring CRM 4.0 for use as a general purpose software development platform. The company who is selling it to us has convinced upper management that CRM will solve all our productivity problems and make software development as easy as point and click. (They don't read Brooks.)
Having resigned to the fact that I can't stop CRM from being foisted upon us developers, I have been doing research on how to manage the complexities of large scale CRM development.
I have so far identified the following complexities that need to be addressed:
CRM seems wholly incompatible with basic configuration management practices.
Keeping the black box CRM database in bidirectional synchronisation with external LOB systems is both very hard and critical to project success.
What other complexities must I take into account when building a large scale CRM application?
What limitations does CRM have as a development platform?
Edit: This topic provided additional insight.
I've worked with MS CRM 3.0 and now 4.0 here's my take:
Whenever possible focus on standard best practices. Don't get overly confused by what CRM is doing or wants you to do.
Don't be afraid to break what's "supported" by MS. With some caveats on 2 major factors - will your company let you think outside the box to solve problems and do customizations/integrations that are not officially supported? - and are you comfortable enough with .Net, SQL, javascript etc to weave through their code and implement what you need?
I have sometimes banged me head 100 times trying to do something in a "supported" fashion when one small tweak to a js file here or a small db modification there gave me what I needed.
If constant data integration with other LOB apps is critical you should consider a 3rd party tool like Scribe (http://www.scribesoft.com/). It's not cheap but can basically get you 90% of the way when it comes to integrating with your other LOB apps.
As a general rule, MS CRM is great at contact management - doing things like tracking appointments, doing mail merges, etc. Could you use it as your core HR system - probably. Finance system - maybe a bit more difficult. The further you go from it's core competency of performing contact management the more custom work you'll have to do. The more custom work you have to do the more you should consider if MS CRM is the right solution to that problem.
I know you're likely well underway into your deployment of Dynamics CRM, but just a few quick tips:
I'd avoid making unsupported changes purely because it becomes too hard to track the changes eventually. Since Dynamics CRM allows developers to make C# Plugins and access to web services, it's usually unnecessary to make unsupported changes for anything non-trivial. Plus you run the roulette of having to hide changes from MS if you have to call their support. I know many people will include external javascript files (jquery, etc) and other somewhat benign changes, but try to mentally stop yourself when an unsupported edit involves anything non-visual.
Look into the phrase Microsoft Dynamics Xrm, there are several books on the subject that are excellent, http://www.thecrmbook.com/ is particularly good because it comes with some nice custom code to use with your CRM.
Source Control your customizations xml's and don't let people touch the database, also, Google Halan CRM tool, and use it for scripting out CRM customizations and javascript files. Easier than writing custom powershell scripts to do the same job.
Transaction Support
If your application require transaction support from the underlying platform, Dynamics CRM is not the correct choice. The reason is because currently Dynamics CRM SDK web service doesn't support transaction.
The reference thread is here : Does MSCRM web-service support database transactions?
Since you would like to utilize Dynamics CRM as a platform, that means all the business logic should utilize Dynamics CRM SDK Web Services as data access layer. But imagine without the transaction support and you're invoking a series of web service calls as a unit of work, and one of the web service calls fails. That means you potentially will encounter data integrity issue.
Configuration
Usually i create a custom entity called Configuration, which will store all the necessary related configuration for the current CRM application. After it has been created, you can use Dynamics CRM SDK Web Service to read all the necessary configurations from the Configuration custom entity