Thursday, June 4, 2015

Possible Developer Toolkit Replacement?

If you aren't already familiar with the CRM Developer Toolkit it was some Visual Studio tooling that shipped with the CRM 2011 and 2013 SDKs. It gave developers some templates for plug-ins and custom workflows to use as jump start as well as some other tools to be more productive. Much to many developer's dismay Microsoft stopped shipping this with CRM 2015. If you used it in the past you know the Developer Toolkit never really "supported" Visual Studio 2013 (and won't support 2015) and arguably could have implemented some features a bit differently but I think was still valuable.

I did a post a while back on creating your own templating functionality using an open source project called SideWaffle. I started making my own templates for the different CRM projects a developer might need to work with, fully intending on distributing them in some manner to make people's lives a bit easier. I'm hoping to get some feedback on what I've come up with :)

Current Templates:
  • Plug-in Project/Items
  • Plug-in Unit Test Project/Items
  • Custom Workflow Assembly Project/Items
  • Custom Workflow Assembly Unit Test Project/Items
  • Console Application w/ Simplified Connection Project
  • Web Resource Project/Items
Future Templates:
  • Xamarin iOS
  • Xamarin Android
  • Suggestions???
Functionality:
  • Choose SDK version and auto install assemblies from NuGet
  • Auto add key file
  • Light weight item templates
  • Unit test projects wire themselves up to project being tested
  • Visual Studio or NUnit testing support
Have a look:


Then I got to thinking another tool I really liked was fellow MVP Gayan Perera's Web Resource Linker/Publisher. I used this all the time but wish it had a few more features. So I started creating an enhanced version to build into the Visual Studio tooling I'm working on. It combines the functionality of being able to deploy a web resource(s) directly as from Visual Studio as well as being able to grab a file from CRM and bring it into your project like the Developer Toolkit did.  

Features:
  • Toggle between multiple projects and CRM organizations
  • Deploy multiple files at once
  • Pull files from CRM into project
  • Prompt to save unsaved files before deploying
  • Easy visualization of mappings
Future:
  • Create new web resource from Visual Studio
  • Open web resource in CRM
  • Suggestions???
Still a work in progress:


I'd also like to build in functionality to handle auto deploying plug-ins and workflow assemblies like the Developer Toolkit did. I'm not sure what this would look like yet. Maybe rebuilding the plug-in registration tool to some extent and saving the settings (like the Developer Toolkit did) or maybe something else. Eventually this tooling (or a separate project) might include some code analyzers and code refactorings built on top of the .NET Compiler Platform specific to CRM to help developers be more productive and lessen the barrier to entry for people just getting started. 

The intent will be to put everything on GitHub in a couple weeks so people could contribute or make suggestions. Then eventually I'd like to distribute this through the Visual Studio Gallery so the update process can be managed through Visual Studio. At a minimum this will support Visual Studio 2012, 2013, and 2015, I'm still considering 2010.

I'd love to hear any comments, opinions, suggestions, etc...