web
You’re offline. This is a read only version of the page.
close
Skip to main content

Notifications

Announcements

No record found.

Community site session details

Community site session details

Session Id :
Microsoft Dynamics CRM (Archived)

Introductory questions from a seasoned .Net developer

(0) ShareShare
ReportReport
Posted on by

Hi,

I've been tasked with doing some work with Dynamics CRM and have a few questions that I need clarity on, any help is much appreciated.

1. Adding functionality like performing some action when a new client etc is added, can this ONLY be done by writing a server side installable add-in (no doubt coded in .Net in some way)?

2. For users who have their Dynamics CRM hosted by some 3rd party hosting firm, is it normal practice for the hosting firm to allow users to add server side add-ons? or is there concern about system stability etc?

3. For a user who do use hosting (assuming its no issue to incorporate add-ins) what is the process such a user does? do they login to the CRM and somehow upload an assembly or something? can the non-tech user do such installs or is that process more complex, more involved?

Many thanks

Korp.

*This post is locked for comments

I have the same question (0)
  • Suggested answer
    Aiden Kaskela Profile Picture
    19,696 on at

    Hi Korp,

    I'm a C# developer and have been working with CRM for for nearly 10 years so I hope I can help clarify a little:

    1. Adding functionality like performing some action when a new client etc is added, can this ONLY be done by writing a server side installable add-in (no doubt coded in .Net in some way)?

    AFK: You can build custom plugins for CRM that function similar to a database trigger. .Net is the way to go here. It doesn't need to be an installable, you can register a .Net assembly and you configure your plugin to run with the right triggers.

    2. For users who have their Dynamics CRM hosted by some 3rd party hosting firm, is it normal practice for the hosting firm to allow users to add server side add-ons? or is there concern about system stability etc?

    AFK: It's typical for any CRM instance to be available for customizations or installing 3rd party solutions. CRM has a robust community and there are tons of great, free add-ons. Some hosting partners may have limitations but they'd be in the minority.

    3. For a user who do use hosting (assuming its no issue to incorporate add-ins) what is the process such a user does? do they login to the CRM and somehow upload an assembly or something? can the non-tech user do such installs or is that process more complex, more involved?

    AFK: To install an add-on from a 3rd party, it's as easy as uploading a zip file to CRM. Anybody can do it (and you can set up security roles within CRM to ensure only authorized users have the ability to do it.

    I hope this was helpful, and I'll be happy to expand on any of the answers or answer more. If this was helpful, I'd appreciate if you would mark this as the verified answer.

    Thanks,

     Aiden

    EDIT: In response 2, changed from "Some hosting partners may have concerns" to "Some hosting partners may have limitations"

  • Community Member Profile Picture
    on at

    Hi Aiden,

    Many thanks for that helpful reply, its greatly appreciated.

    So at a more technical level, to create a Dyanmics plug-in would one use some special Visual Studio project template? (I'm just downloading the SDK as I write this).

    Once the plug-in was coded/built can it be tested to any degree locally - on the developer's machine?

    Assuming the output of the build was an assembly DLL, would one just be able to upload that or must it be packaged as a ZIP (which you mentioned)?

    I assume Dynamics expects that assembly (DLL) to adhere to certain rules or be coded with certain attributes, does it do that? does it insist that any plug-in assembly adheres to some model like this?

    I also assume that Dynamics leverages AppDomains in some way so that a bad plug-in can't cause system instability, is this true?

    If I did create a bad/buggy plug-in that causes an AppDomain to fail does that mean the user's CRM system is unavailable or does it continue and simply lose the functionality that the plug-in was providing?

    Once again, thanks!

  • Verified answer
    Aiden Kaskela Profile Picture
    19,696 on at

    Thanks Korp, happy to help!

    So at a more technical level, to create a Dyanmics plug-in would one use some special Visual Studio project template? (I'm just downloading the SDK as I write this).

    AFK: You don't need a special template, but you need to reference the CRM SDK and your plugin class file needs to implement IPlugin. CRM will recognize it as a valid plugin and you can reference it later in your configuration.

    Once the plug-in was coded/built can it be tested to any degree locally - on the developer's machine?

    AFK: To be honest, it's a real pain to troubleshoot plugins running in CRM. I try to test my logic as much as possible in a test application and then troubleshoot as needed once its deployed to the CRM server.

    Assuming the output of the build was an assembly DLL, would one just be able to upload that or must it be packaged as a ZIP (which you mentioned)?

    AFK: If you're developing plugins, you can register a .dll directly to CRM through the CRM Plugin Registration Utility. If your project needs more than one .dll, you need to merge them in ILMerge so you end up with a single assembly, then you can register that to CRM. The zip files are for Solutions that can be distributed to other CRM organizations. If you wanted to share the plugin you built as a stand-alone add-on, you would create a new solution with the necessary components, export it as a zip file and distribut the zip.

    I assume Dynamics expects that assembly (DLL) to adhere to certain rules or be coded with certain attributes, does it do that? does it insist that any plug-in assembly adheres to some model like this?

    AFK: Your assembly has to be signed, and it should be able to run in a partial trust environment to be fully compatible with CRM Online. It can access an external web service by name, but not IP address. Little things like that. There's also a 2 minute timeout for plugins and workflows.

    I also assume that Dynamics leverages AppDomains in some way so that a bad plug-in can't cause system instability, is this true?

    AFK: I think that depends on your hosting partner. The plugins should be registered in "isolation", or sandbox mode, to minimize this. If your plugins are really intensive then it absolutely can slow down your CRM.

    If I did create a bad/buggy plug-in that causes an AppDomain to fail does that mean the user's CRM system is unavailable or does it continue and simply lose the functionality that the plug-in was providing?

    AFK: If your plugin is causing problems then it will usually throw a Business Process exception and the rest of the system will continue on. That's the goal with sandbox mode, is that there's some protection around your custom code so if something inside goes haywire it can be terminated gracefully.

    Hope this helps :)

    Aiden

  • Community Member Profile Picture
    on at

    Very helpful Aiden, thanks.

    I saw earlier that there are app in a Microsoft "CRM app store" are these related? can one create such an app for their users?

    We'll be creating and testing the plugin locally but will be delivering this functionality eventually to multiple customers.

    Thanks

  • Suggested answer
    Aiden Kaskela Profile Picture
    19,696 on at

    Hi Korp,

    There are a few ways to distribute your solution, it largely depends on cost and amount of configuration required.

    If it's a free and easy to use solution you could put it on GitHub or make it available on your own website like I'm doing (cheap plug: CrmSnapshot.com, www.cobalt.net/cobaltintelligentquery ).

    If you want to charge per download then you could put it on the CRM App Store. I'm pretty sure that's affiliated with Microsoft but it's run by another company. They charge per download and a share of the revenue so I avoid it.

    If your solution is more expensive, you typically go through a sales process and either you install it on their CRM or give them the solutions and an authorization key to unlock the functionality.

    Aiden

  • Community Member Profile Picture
    on at

    Quick question for you Aiden, I'm curious as to whether these guys:

    http://www.tamaracinc.com/

    are OK with 3rd parties installing Dynamics plug-ins?

    I'll be asking them myself but since you've got a lot of experience in this area, I thought I'd ask.

    Many thanks.

  • Aiden Kaskela Profile Picture
    19,696 on at

    I'm not familiar with them. It looks like they offer a tailored solution on top of CRM, but that's independent of hosting. Whomever is hosting the CRM would be the one who's concerned with what you put in the CRM. I've got to think any CRM host would let you install add-ons.

    You could use CRM Online and have MS host it in 'the cloud' so you don't need to worry about the hardware or server setup, or I've also user a company specializing in hosting CRM like xRM.com.

  • Community Member Profile Picture
    on at

    Yes, these guys have sold a hosted "solution" that's implemented using Dynamics. The trouble is that they (it seems) don't offer any means for 3rd parties to extend the system (or the underlying Dynamics system).

    Thus customers are unaware that although their using Dynamics they are unable to leverage the extensibility features.

    The customer in our case has already begin to use Tamarac and we're exploring how we can add server side functionality for them (plug-in etc).

    Looks to me like we can't its all controlled by Tamarac, huge restriction!

    Thanks again,

    Korp.

    PS: Incidentally - could you show me (or point to a doc/video) that show how a Dynamics user logged into a cloud instance of Dynamics via a browser - would upload/add a plug-in? I'm assuming they can do this through the web interface?

  • Aiden Kaskela Profile Picture
    19,696 on at

    Hi Korp,

    I would be shocked if they locked down the solutions. You can get to it in the top ribbon by going to Settings -> Customizations -> Solutions. If you can't get there, I would absolutely tell them that customizing CRM is one of the biggest draws and you need it available.

    To register a plugin for development, you want to do that through the MSFT plug-in registration tool at msdn.microsoft.com/.../gg309580.aspx

    Thanks,

     Aiden

  • Community Member Profile Picture
    on at

    Once again, many thanks Aiden.

    I'm now pursuing an unrelated challenge - namely how to get REST or SOAP access to a locally hosted Dynamics installtion. We're considering a simple polling app that can "query" (a locally hosted - not cloud/web) Dynamics installation.

    Does Dynamics 2015 expose such an API capability?

    Perhaps this should be a separate question really....

Under review

Thank you for your reply! To ensure a great experience for everyone, your content is awaiting approval by our Community Managers. Please check back later.

Helpful resources

Quick Links

Responsible AI policies

As AI tools become more common, we’re introducing a Responsible AI Use…

Neeraj Kumar – Community Spotlight

We are honored to recognize Neeraj Kumar as our Community Spotlight honoree for…

Leaderboard > 🔒一 Microsoft Dynamics CRM (Archived)

#1
SA-08121319-0 Profile Picture

SA-08121319-0 4

#1
Calum MacFarlane Profile Picture

Calum MacFarlane 4

#3
Alex Fun Wei Jie Profile Picture

Alex Fun Wei Jie 2

Last 30 days Overall leaderboard

Featured topics

Product updates

Dynamics 365 release plans