Skip to content

About

An open source portal framework for Microsoft Power Platform, built on Dataverse.

Topics

Resources

Stars

114 stars

Watchers

0 watching

Forks

Repository files navigation

xRM Portals Community Edition

Build

Work on this project has resumed on an informal basis after a six-year hiatus, out of personal interest.

The code in this repo requires substantial updates to be considered up to date and secure, and should only be used for hobby and research purposes for the foreseeable future.

The dev branch is used for active development and is undergoing substantial modernization to improve usability, adopt current standards, and replace insecure libraries. Test coverage will vary, and the branch is not guaranteed to compile or run without errors.

See Modernization progress for completed milestones and remaining work.

AI coding tools will be used extensively, with human oversight.

The main branch is considered the official release version and eventually will be updated with the changes made in the dev branch.


xRM Portals Community Edition is a fork of the open source release of Portal Capabilities for Microsoft Dynamics 365 version 8.3. It continues from the announced one-time release of Portals source code made available on the Microsoft Download Center under the MIT license.

xRM Portals Community Edition enables portal deployments for Dynamics 365 online and on-premises environments, and allows developers to customize the code to suit their specific business needs.

Objectives

xRM Portals Community Edition allows for an intermediary migration path from Adxstudio Portals 7, to this open source version of portals, towards upgrading to Microsoft Power Pages.

New portal implementations should use Microsoft Power Pages. This project is intended only for maintaining or migrating existing deployments and is not recommended for new portal development.

Additional scenarios for using this project may emerge in the future as the renewed development initiative matures.

Modernization progress

Modernization is underway on dev. The work so far establishes a newer build baseline, updates dependencies incrementally, and fixes compatibility and runtime issues while retaining the existing ASP.NET MVC application.

Completed milestones:

  • Build baseline: All projects target .NET Framework 4.8.1, with GitHub Actions configured to restore and build the solution in Debug and Release.
  • CRM connectivity: Added Dataverse ServiceClient and on-premises CrmServiceClient connection options, updated CRM SDK dependencies, and documented client and base-solution selection.
  • Dependency updates: Updated ASP.NET MVC, Razor, Web Pages, ASP.NET Identity, Newtonsoft.Json, HtmlAgilityPack, DotLiquid and FluentScheduler, among others. Removed unused dependencies, including SharpZipLib and Bond, replaced BouncyCastle's sole use with System.Formats.Asn1 for chat authentication public-key export, and added a build check to prevent SharpZipLib from being reintroduced accidentally.
  • Legacy cleanup: Removed the entity list OData feed, Windows Live ID authentication, Azure Cloud Services (classic) hosting, page/file tracking and Microsoft-internal telemetry integrations. See upgrade guidance for deployment impacts.
  • Runtime fixes: Addressed sign-in page output caching and return URL issues, Azure Blob Storage attachment handling, and search indexing in environments that also contain Power Pages enhanced-model tables.

Modernization is ongoing, and the scope and direction may evolve as work progresses. Compatibility, stability and readiness for broader use are still being assessed.

See the Unreleased changelog for individual changes.

Analyzer work remaining

  • Add modern .NET analyzers to replace the removed legacy FxCop analysis.
  • Replace the removed StyleCop rules with .editorconfig conventions and actively maintained analyzers where needed.
  • Establish an analyzer warning baseline and enforce it in continuous integration.

Disclaimers

This project is licensed under the MIT license, which provides access to the source code free of charge and without warranty of any kind.

This project only contains the source code for the portal web application and its dependent class libraries. The associated Dynamics 365 solutions and their components are distributed separately.

Building

To build the project, install Git and Visual Studio 2026 with the ASP.NET and web development workload and the .NET Framework 4.8.1 development tools.

For the current development version, clone the dev branch:

git clone --branch dev https://github.com/amervitz/xRM-Portals-Community-Edition.git
cd xRM-Portals-Community-Edition

Open Solutions\Portals\Portals.sln in Visual Studio, restore NuGet packages, and build the Portals solution or the MasterPortal project.

GitHub Actions restores packages and builds Debug and Release for pull requests and pushes to dev. Runtime validation requires a configured portal and CRM environment.

Deployment

xRM Portals Community Edition is a set of .NET class libraries and an ASP.NET web application called MasterPortal. After building the project, MasterPortal is run using conventional ASP.NET website hosting methods such as using IIS in on-premise environments, and Azure Web Apps in cloud environments.

The MasterPortal web application deployment is dependent upon schema (solutions) and data being installed in a Dynamics 365 instance. These components are downloaded from the Microsoft Download Center in the file MicrosoftDynamics365PortalsSolutions.exe. The components in this download have not been released under the MIT license and are not managed by the xRM Portals Community Edition project.

A full description of the deployment process is described in the file Self-hosted_Installation_Guide_for_Portals.pdf available for download on the Microsoft Download Center.

Upgrading an existing deployment

The original installation guide describes the 8.3 release. When deploying the current dev branch, use the build, connection and runtime requirements in this README and review the Unreleased changelog for changes that affect existing deployments.

The following legacy features have been removed to bring the project closer to the current Power Pages feature set, reduce reliance on obsolete components, and improve security and migration compatibility:

  • The entity list OData feed (/_odata) has been removed to align with Power Pages' data access features. Integrations that call it need an alternative data access path.
  • Web page and web file tracking has been removed to match Power Pages behavior. The Enable Tracking fields no longer cause the portal to create tracking records. Remove the asyncTrackingEnabled attribute from the adxstudio.xrm configuration section if it is present in your existing Web.config.
  • Windows Live ID Web Authentication has been removed as an obsolete authentication integration. Existing deployments using it need to configure another provider compatible with their Power Pages migration plans.
  • Azure Cloud Services (classic) hosting support has been removed as a retired hosting model. Use IIS or Azure App Service to host the web application.

CRM connection configuration

Set the OrganizationServiceType app setting in Web.config to ServiceClient to connect through the Dataverse client, or CrmServiceClient for Dynamics 365 on-premises. An omitted or blank setting retains the legacy OrganizationServiceProxy client. Supply an Xrm connection string for the selected client and choose the base portal solution with the PortalBaseSolution app setting.

Read the CRM connection configuration guide for the OrganizationServiceType and PortalBaseSolution app settings and the Xrm connection string.

System Requirements

The following requirements apply to the current dev branch and supersede older runtime and operating-system requirements in Self-hosted_Installation_Guide_for_Portals.pdf:

  • Use x64 Windows Server 2022 or 2025 for server hosting, or Windows 11 for local development, with a release and edition still supported by Microsoft. .NET Framework 4.8.1 must be installed; it is included with Windows Server 2025 and Windows 11 version 22H2 and later. Windows 10 versions 20H2 through 22H2 are also compatible with .NET Framework 4.8.1, but should only be used while the installed edition remains covered by Microsoft support or Extended Security Updates (download, system requirements).

  • For IIS hosting, enable the operating system's IIS 10.0 web server and ASP.NET 4.x features. These Windows versions provide a newer IIS version than the installation guide's IIS 7.5 prerequisite.

  • TLS 1.2 must remain enabled for outbound connections to Dataverse and authentication services. It is supported and enabled by default on the Windows versions above, so the older Windows 7 / Windows Server 2008 R2 enablement instructions are no longer needed (Windows TLS support).

  • The website must be set to run in 64-bit mode:

    IIS Application Pool:

    image

    Azure Web App:

    image

  • File system permissions need to be set for general functionality and search indexing to work. Refer to the File System Permissions wiki page for full instructions.

  • A machine key should be added to the web.config file to ensure cryptographic operations always use the same settings rather than using auto-generated encryption keys (e.g. when hosted a web farm or after application restarts). This can be accomplished using IIS Manager as described in the MSDN blog post Easiest way to generate MachineKey. Adxstudio Portals 7.x used the validation method SHA1 and the encryption method AES.

Support

Contact me on LinkedIn.

License

This project uses the MIT license.

Contributions

This project accepts community contributions through GitHub, following the inbound=outbound model as described in the GitHub Terms of Service:

Whenever you make a contribution to a repository containing notice of a license, you license your contribution under the same terms, and you agree that you have the right to license your contribution under those terms.

Please submit one pull request per issue so that we can easily identify and review the changes.

About

An open source portal framework for Microsoft Power Platform, built on Dataverse.

Topics

Resources

Stars

114 stars

Watchers

0 watching

Forks

Used by

Contributors

Languages

⌂ 换网址