After a very short private preview program, Microsoft has just made the source code for the Dynamics 365 Portals available on the Microsoft Download Center. We’ve already reviewed the topic on the podcast but this milestone is quite significant to deserve another discussion.
One-off release of portal source code is available for download. If you’d like to contribute, head off to the community edition. If you crave some official training, Dynamics Learning Portal is the place.
It’s the full source code of the Microsoft Portals version 8.3 as of July 2017, released under MIT license. The downloads contains:
- Microsoft Portals solutions. Portals run entirely “off” the Dynamics 365 Customer Engagement deployment and will need a number of solutions installed in your organization instance.
- The source code. Visual Studio solution, some libraries that couldn’t be added via nuget, some docs and samples.
- The deployment instructions for the source code.
The drop comes with some strings attached:
- It’s unsupported. Do not call Microsoft if your code does not compile or if it’s just wiped out your entire Dynamics 365 instance.
- It’s a one time release. Do not expect Microsoft to maintain this code or release any future versions of it.
- Portal solutions distributed as part of the release are managed. The solutions are not just web resources and schema changes, there are also plugins and workflow custom actions that do not have the source code included. I’m not quite sure what to make out of it yet and how does it impact future compatibility.
I can think of quite a few audiences who would benefit from the code release:
- Existing customers who use Adxstudio 7.0 or prior versions. These were left in limbo when Microsoft cut off all future developments of that “branch” and imposed some restrictions on Adxstudio portals support.
- Dynamics 365 customers with unique portal requirements that cannot be satisfied by the Microsoft version. Think integrations with third-parties, payment gateways, micro services.
- Customers in the restricted environments with the stern security demands making it impossible to go with either Dynamics 365 Online or Microsoft portals.
- ISVs who can offer additional value with custom components.
- VARs who can no longer feel restrained when discussing solution architectures and portal opportunities with their prospects and customers.
- Consultants who can now offer migration, support, and training services around rejuvenated portal community.
- Microsoft Azure accounting team raking in fees from the cloud deployments of the private portals.
- Curious developers who would like to peek “under the hood”. Portal source code is a great research resource to see how things should be done. And how they shouldn’t be done.
- Curious developers who graduated from “peeking” to contributing to the open source. Great opportunity to take part in the community efforts.
- Commercial water cooler suppliers, soft drinks vendors, and local pizza joints who would benefit from the increased consumption by the developers engaged in the heated discussions while consuming obscene quantities of the said beverages and pepperoni slices.
First of all, kudos to the portal team because it’s hard to underestimate the skills required to navigate both the technical and legal complexities of the public source code release at Microsoft, even for the company routinely releasing the entire .NET as an open source. Heck, we are still waiting for the open source version of the Microsoft Dynamics 365 Developer Toolkit so that we can make it work with the latest two releases of Visual Studio.
We probably will never know the full story behind this one-off release but I couldn’t resist the opportunity to speculate.
Hosted-only shared portal model comes with some incredible challenges to provide a solid extensibility model, both flexible and safe. There are many obstacles and challenges including technical – what extensibility model to offer and how to package the extensions, devops – how to provide the private deployment facilities while maintaining SLAs for everyone, security – how to guarantee safety in the shared environment, support – how to provide for generic baseline support with tons of custom code deployed, and legal – how to address concerns of corporate customers around arbitrary code deployment and execution without opting for the revenue killing “one customer – one enviroment” model?
Add to that the exciting but turbulent times for Dynamics 365 platform with so many new features, capabilities, and requirements. The last thing we’d want is a solution rushed through just to appease some customers and then deprecated and killed couple years later because it was poorely thought through, turned out to be utterly uncompetitive, useless, and generally dead on arrival. Dynamics-cough-Marketing.
The entire Dynamics 365 ecosystem has been evolving as a rapid release environment which routinely takes away one of the most precious resources – time.
With the source code release, the portal team bought some time to properly design a sustainable extensibility model
Microsoft was also risking a revolt in the existing customer base of Adxstudio 7.0 portals, who has just until recently paid over $10K for the portal license. These customers havw invested a lot of money and resources into extending and developing their portals and wanted some clear upgrade path that would see them moving forward. With the source code release Microsoft has shifted the responsibility of upgrading and maintaining the existing Adxstudio portals to the customers.
Did Microsoft just wash their hands on Adxstudio customers with the source code release?
First of all, Adxstudio version 7.0.0018 or higher is still supported (read the article to understand the preconditions and the channels). And let’s be honest, customers and consultants who heavily customised the portals have always had sufficient skills and resources to deliver those customizations and, by proxy, to maintain the code base. Calling support in the environments with the mix of Microsoft and proprietary source code has always been a challenging exercise with volatile results.
Larger organizations have always been more or less self-sufficient when it comes to the portal extensions. Code release simply extends these capabilities without placing Microsoft in awkward position of eternally supporting legacy products by the virtue of sitting on the compiled code base without a suitable license model.
As I mentioned before, the situations is less clear about the extensions that are part of managed portal solutions, how complex is the functionality delivered by the plugins, is it critical or not, and whether it’d be feasible and permissible to replicate it [in the open source] – I’m sure these questions will be answered in due course.
Source code itself and a number of accompanying libraries is released under MIT license which is arguably one of the most permissive open source licenses. Do what you want with it, in other words.
Some of the included packages use different licenses, BSD, Apache, and Microsoft’s own Public License (Ms-PL). Pay attention to those, especially if you are in the corporate land or if you plan to release commercial products based on or around the released source code.
Call to action
Download, read instructions, play with it, and send your tips to email@example.com.
As far as source code is concerned, Adoxio, the phoenix business after the Microsoft’s acquisition of Adxstudio, has already put their hand up as a custodian of the publicly available source code, a.k.a. xRM Portals Community Edition.
Some may object but let’s be honest, with their expertise Adoxio is in a unique position to both ensure reasonable quality of the code and provide ongoing enhancements contributed by the community and Adoxio themselves. I do hope that one of the first developments will be a clear migration path for Adxstudio 7.0 owners to the whatever version we now have as open source. If you would like to contribute, go ahead, fork the project, do you craft and then submit a pull request.
Last but not least, if you would like to get up to speed with the portal extensibility using that source code (and portals in general), check out Dynamics Learning Portal for the upcoming Develop Dynamics 365 Portals courses. The curriculum is currently being updated to include self-deployment and extensibility scenarios, with new coding exercises to keep your brains busy and your hands dirty. First in-person class will be in New Zealand in October. If you cannot make it down under or prefer to get some portal wisdom in your pyjamas, virtual deliveries will start in November in PDT and HKT timezones.
If you can’t wait that long, teach yourself, listen to the community, organize your private training, or attend one of the portal training classes during D365UG Summit or eXtreme365 (details TBD for that one).