Developer Focus – CRM Solution Manager Review

I’ve been using the CRM Solution Manager for a few months now and I thought I’d provide some insights on the product in case you are considering making the investment.

What is it the CRM Solution Manager?

CRM Solution Manager is a productivity tool for CRM Developer that integrates with Visual Studio and Dynamics CRM. The idea is for a CRM developer who writes plugins, custom workflow activities, JavaScript and HTML web resources to be able to do his/her development and manage deployments of the development components to CRM all from Visual Studio in a user friendly way.

The product comes as a Visual Studio Extension file (.vsix) and currently supports Visual Studio 2010, 2012, 2013 and 2015, that means it very likely supports the version you are currently using (I really hope so!). There is a free 30 day trial available to try.

After the installation, when you run Visual Studio, you are presented with a screen to log onto CRM:


When the connection is completed, you can create your projects (Class Libraries for plugins and custom workflow activities, and Empty Web project for web resources). Once your projects are created, the fun can start.

Plugins and Custom Workflow Activities Development

For server side development, the tool brings a lot to the table.

If you have a class library project not linked to CRM or not containing anything at related to CRM, right clicking on the project will give you the possibility to either add the Plugin Assembly to CRM or create Proxy Classes.


For a Plugin Assembly that’s already linked to CRM, you get a menu that give you the ability do a little more:


  • Build and Publish: This will build the Project, and update or publish the Plugin Assembly in your the CRM Organization you are connected to
  • Add Proxy Classes to Project: This will open a window for you to selected the entities you want to generate proxy classes for, as well as other settings such as the path (folder in which you want the classes to be created/updates), and which naming convention you want to use for your entities and fields (Display Names or Schema/Logical names)


  • Edit Plugin Assembly Details: Allows changes to Plugins Assembly details such as Location, Isolation Mode. Also gives the ability to configure ILMerge for merging multiple assembles at build time. This is helpful if you are used to creating ILMerge post-build event all the time.


  • Edit Plugins and Steps: This will give you a screen that looks very similar to the Plugin Registration Tool with options to add plugins, register/edit/disable steps, add and edit plugin images etc. Basically you get the same content as the Plugins Registration Tool directly from Visual Studio


  • Download all linked Items from CRM: This option will force a download of all the items that are linked to CRM. In this case, we are talking about the Proxy Classes that were generated using the feature described above.
  • Update all items: This will update CRM with the content of the project, in this case, it will update the plugin assembly using the latest build

Worth nothing, all the configuration (linked items to CRM, CRM connection etc.) is saved in an Xml file that resides in your solution root folder. If you need and want to carry your CRM Solution Manager configuration across multiple environments and for multiple developers, make sure you include it in your source control (it is not done automatically).

Client-Side (JavaScript/HTML) Development

The experience is very similar with to what we get on the server side. Right clicking on the right button will give you a CRM option with a few options.


  • Add Items to Project: Given that it is a web project in this case, the items that can be added to the project are a bit different than what we had in the Plugin project. You can select a CRM Solution, and from there you can download the Charts, Images, JavaScript, Sitemap, Web Files (HTML), as well as generate JavaScript and TypeScript Intellisense files for selected entities.


  • The other options are similar to what we had in the section above:
    • Downloading all linked items from CRM will update all web resources by getting the latest version from CRM
    • Update all items will update CRM with the items in your Visual Studio project
  • Worth noting, individual web resource files in the VS project are linked to their CRM counterpart which means you can publish single web resources by right clicking on them in the VS project and selecting Publish file to CRM


Wrap-up

The Good

  • The product is really not too intrusive. It doesn’t add any project creation template that your solution becomes dependant on. It doesn’t create any additional cumbersome toolbox that you need to open to manage your CRM related operations (no point intended)
  • It is a HUGE productivity booster. One can easily get used to having proxy classes easily regenerated on demand, as well as JavaScript Intellisence. One can also really get used to deploying web resources and plugin assembly without opening CRM or the plugin registration tool
  • The support team is very reactive, I have received an answer to all my inquiries within a day
  • The product is being actively maintained and updated to support the latest versions of Dynamics CRM and Visual Studio

The Bad

  • If you are using CRM Solution Manager for specific things (e.g. creating Proxy classes and Option Set Enumerators), it means one of two things. Either all of your developers need to be equipped with the add-on in case the classes need to be regenerated  or the entire team dependent on one person to regenerate the entities classes when required. If you are the only developer on the project, it will work well for you. However if you are a consultant and need to hand-off the code when you are done, you may not want to us it to generate the proxy classes as people who will maintain the code might not have it to generate identical classes in the future.
  • The price point is a bit high. At $209.95 US per license (with volume pricing available), it is almost as expensive as some of the excellent and proven productivity tools such as Resharper ($300), Coderush ($250). That makes your development environment a bit expensive to set up. Pricey also considering there are free tools like the CRM Developer Toolkit (for which we are still waiting for a new version for VS2015, CRM 2015/2016), some of the tools in the XRM Toolbox and also the CRM Developer Extension developed by fellow CRM MVP Jason Latimer. The latter is a must try, the feature set is impressive and extremely complete! I haven’t had a chance to work with it yet but I will make sure to review it once I do.

All in all, I would recommend the CRM Solution Manager if you are an Organization with Dynamics CRM deployed internally with multiple developers writing code that targets the platform. If you are a solution integrator or a consulting shop, make sure you don’t create too much of a dependency with the tool, because your clients won’t necessarily have access to the add-on.

Hope this help!

For further questions and assistance with your CRM Development tools and environment, or other Dynamics CRM related inquiry, feel free to reach out to us!

 

Advertisements

Dynamics CRM – What Options for Editable Grids?

I have yet to be on a Dynamics CRM project where no one mentions or asks about the possibility to edit information directly from a grid or a sub-grid. In the interest of saving time when I’m recommending solutions to my clients, I thought I’d build a grid to gather the options and additional information when available.

Product Name & URL Supported CRM Versions Cost Comment(s) and Links
Sparkle XRM Framework CRM 2011 CRM 2013

CRM 2015

CRM Online

Open Source Library OK. It’s not fair to call this an Editable Grid per say. Sparkle XRM is an Open Source development library to help build complex visual components for Dynamics CRM. It is initiative from MVP Scott Durow. With strong developer, you can leverage Sparkle to build your own editable grid. See how it can be done here.
AbleBridge EditAble Grid CRM Online CRM 2015

CRM 2013

Not public Out of the few products that I have tested and seen in action, it is easily the best one out there. It is also the most expensive. I guess it’s true when they say you get what you pay for. You can read my product review from last year. Editable Grid official overview
PowerObject Power Grid CRM Online CRM 2015

CRM 2013

1$ per CRM user per month MSDynamicsWorld article on PowerGrid.
Sonoma Partners Editable Grid for CRM 2013 CRM 2013 Free Anything that’s free, I happy about! That being said, it is a bit tricky to configure when you are not a bit technical. See configuration here.
MTC’s Super Grid CRM 2011 CRM 2013

CRM 2015

CRM Online

Org License : $1000 + User License : $15 per user Last I used this (about a 1.5 year ago). MTC was transitioning away from its Silverlight controls and implementing an HTML/JavaScript based editable Grid. It wasn’t perfect, but it did the job. It works by adding an HTML5 graphical UI “overlay”, to CRM standard or custom Views. What bothers me is that there is not an advanced view configurator. It does come with an API to perform these advance operations such as color coding rows/cells, hide columns, make fields required etc., so that is a good consolation prize.
BusiPlanIT’s free customizable editable Grid CRM 2013 CRM 2015

CRM Online

One grid for free – Pay for more than one. This is a great free add-on. I would pay for it. If your needs are simple and you just need to edit records inline for one record time, go for it. You need to contact BusiPlanIT for pricing information if you need more than one grid.

Obviously, there is always the possibility to build an editable grid yourself using JavaScript libraries of your choice. It’s just a matter of how much time you need and want to invest versus creating a dependency to an add-on. Eternal debate.

I thought I should also mention the availability of the Immersive Excel experience with CRM Online (2015 Update 1). Though it can be used to perform inline editing on list views, it is really meant to to do quick analysis right from CRM Online. There is plenty of articles on the subject out there. Check out Inogic’s article here.

Hope this helps!

 

Synchronize CRM Online Data with Skyvia

I just discovered an interesting tool, thought I’d share a quick review.

Skyvia is a cloud data integration solution. It has connectors to a few data sources and is able to move data from one cloud based source to another based on configuration and schedule. Oh I forgot to mention, it’s FREE J

As a test, I configured it to connect to my Dynamics CRM Online sandbox organization and my Zoho CRM organization:

Once my connections are created and validated, I create and design a package to transfer contacts from Dynamics CRM Online to Zoho CRM:

As you can see on the screenshot above, Skyvia gives you the ability to create synchronization tasks (1) and also to schedule the execution your packages (2). The package can also be ran manually.

The tool can be very handy especially if you have simple synchronization needs between CRM and other systems. The supported data sources are Dynamics CRM Online, MySQL, PostgreSQL, SQL Server, Salesforce.com, Zoho CRM, Sugar CRM. Obviously such a tool does not replace the need for more complete and mature data integration products such as Scribe and SSIS connectors, but it provides an easy way to achieve simple data integration between multiple cloud based systems. Works perfectly for me demos! And it’s free (at least for now).

CRM Dev Tool for Chrome

A few days ago, Sonoma Partners released a very nice Development Tool. It comes as a Google Chrome extension and it’s compatible with CRM 2011 UR11+ and with CRM 2013. It’s a nice productivity booster for CRM developers so I thought I’d share it. Here are some of the highlights:

  • View Current User Information (domain name, user Id)
  • Form information (entity name, Id, type code and some nice features like show the hidden attributes on a form)
  • Execute Fetch XML statement and view the results

How to use it?

  • Using Google Chrome, install the app from the web store
  • Navigate to a record in CRM 2013 or 2011 UR 12+
  • Press F12 to open the Chrome DevTools Panel
  • Click the CRM DevTools tab on the far right

You can read all the details about the tool on Sonoma’s blog post.

Enjoy!

SSIS Tools for Dynamics CRM

ETL is an everyday subject in medium to large enterprise ERP or CRM project implementations. When it comes to Dynamics CRM, there are many different ways to insert, update and delete data. Using Microsoft’s SQL Server Integration Services (SSIS) is a good solution because of its cost (included in the SQL Server suite), development environment familiarity (Visual Studio, SQL Server Management Studio).

The problem with Dynamics CRM in this context is that its database is not supposed to be accessed directly to read, create, modify or delete data (read operations are OK using Filtered Views). These operations must be done via the application’s API. Fortunately, there are third party tools that provide a “bridge” between SSIS and CRM through custom SSIS components. These tools transform their SSIS components into MS CRM API calls in the background, allowing to perform ETL by using Microsoft’s recommended and supported approach.

Here are some tools that I’ve seen or heard of that will help do your MSCRM data processing with SSIS:

  • Kingsway Soft’s SSIS Integration Toolkit for Microsoft Dynamics CRM
    • Notes
      • Supports CRM 3.0, 4.0, 2011, 2013 and Online
      • Comes with 4 major components: Connection Manger, Source Component, Destination Component, Option Set Mapping Component
    • Pricing Information
      • Free Developer License
      • Single Server Perpetual License @ USD $1295
      • Single Server One Year License @ USD $695
      • Single Server Annual Maintenance and Upgrade @ USD $295
      • Enterprise License – Contact for details
  • RSSBus‘s Dynamics CRM SSIS Components
    • Notes
      • Supports CRM 4.0, 2011 and Online (presumably 2013 as well but no official word on that on their website)
      • Free 30 day trial available
    • Pricing Information
      • Full SSIS Component Subscription (multiple workstation, Royalty-Free distrubiton) @ USD $999
      • Single Machine License @ USD $359
  • Team4 SSIS Connector for Microsoft CRM
    • Notes
      • Supports CRM 4.0, 2011
      • It looks like the product hasn’t been updated in a while given the lack of update on the website
    • Pricing Information
      • Connector is Licenses per server @ EUR 4600
  • CozyRoc Dynamics CRM Source and Destination Components
    • Notes
      • Mature product
      • The web site doesn’t mention support for CRM 2013 (it is supported though)
    • Pricing Information
      • Varies based on the Components you buy
      • Between $400 and $2500
  • Devart’s SSIS Data FlowDevart’s SSIS Data Flow Components
    • Notes
      • Devart has a large portfolio of data integration products
    • Pricing Information
      • Single License @ USD $249.99

 

Cheers!

Why Integrate Dynamics CRM with BPM Tools?

I came across this article a few days ago about integration between Dynamics CRM and Business Process Management (BPM) tools. As much as I believe there is a case to be made on integration between CRM and BPM tools, I felt like the examples/scenario presented in that article weren’t strong enough.

For example, if we take the scenario were “once a lead record has been created, it is assigned to the appropriate owner on the sales team, and that person can take the necessary steps to nurture the lead towards an opportunity“, it is simple enough to be handled directly in Dynamics CRM. Same for a case management solution, when a “case has been created in Dynamics CRM with all of its details,” how do we “ensure that the proper support team member receives it, handles it according to defined steps, possibly escalates it, and ensures that it is completed accurately in an optimal manner?“. From these simple lines, depending on the specs, Dynamics CRM offers enough with its Windows Workflow Foundation based workflow engine. In the CRM integration context, the different BPM products out there are essentially about managing workflows with a third party software that does what CRM Workflows (WF) can do and more.

So why would one use a BPM tool when CRM already offers some workflow capabilities? Here are a few reasons that I think are key to help deciders make a sound decision on whether to invest in a BPM tool to integrate with CRM or not…

Workflow Complexity

When building very complex and long workflows, the Microsoft Dynamics CRM workflow editor is very limited and it can become very frustrating and reduce productivity:

  • The user interface is sometimes slow to respond (especially when there is a lot of custom code)
  • You can only go (I think) 5 or 6 levels deep and create child WF if you want to go deeper
  • It’s not easy to read at all

BPM tools often provide a better workflow design experience by using visual editors, either custom built or on top of other applications (e.g. MS Visio, MS Visual Studio etc.). That makes the workflows easier to build and to read. It also takes away the “levels” issue, removing the need to create child workflows when you have more than 5 deepness levels.

Workflow Systems Integration/Complex Workflow Operations

If you need your workflows to talk to other systems (web service calls, external connectors etc.) or just to perform some more complicated operations (retrieve multiple, bulk delete/update etc.), it’s all possible in CRM by creating custom workflow activities (.NET Code). These would have the logic within them to make the necessary web services/external calls/complex operations. Some BPM tools provide with the ability to integrate web services calls or make complex operations with simple configuration (no code). A few good reasons to use a BPM tools in this context would be:

  • You don’t have the Dynamics CRM expertise in house to build the custom pieces (custom workflow activities)
  • You have so many different external calls/integration to do within the workflow that it’ll create too much custom code resulting in more difficult debugging and costly maintenance in the future

Workflow Version Management

Depending on what the WF does, you may need to keep a detailed history of WF execution, including which version of WFs have been triggered for specific records. Also what CRM is lacking is a workflow “live update” feature. Say you trigger a WF on record A and it gets to some wait mode. At which point you update the WF in the CRM solution. Well, the version of the WF that is executing against record A is still the “old version” of the WF and you cannot change that. Some BPM tools have this feature built in.

Workflow Looping Mechanism

CRM Workflows don’t really allow looping. You can create a mechanism where a WF keeps calling itself as a child but that has a very negative impact on performance and eventually, CRM kills the loop thinking it’s an infinite loop (managing resource consumption). BPM tools have the capability to use loops sometimes very easily and with a much lover impact on system performance. Something to think about if you have plenty of WF in waiting and looping mode in your system at the same time.

These are a few elements that can help you decide if you want and/or need to use a BPM tool with your CRM. From my experience, depending on what you are building, BPM add-ons can be costly so before going down that road, it is important to assess the need and selected the right solution based on these needs. On the flip side, if what you really need is  a BPM tool to manage your workflow/processes, do you really need CRM? Food for thoughts… There are plenty of options out there, including AgileXRM, K2, PNMSoft and many more. They all come with different features so just checking them out is an interesting exercise!

Cheers!