I’m super excited today to announce the release of Plato 2.0.
Plato 2.0 introduces multi-tenancy support, an improved set-up & configuration experience, easier theme customization, improved performance & dozens of smaller improvements.
What is Plato
Plato is the only fully integrated platform designed to help businesses connect & stay engaged with users to gather feedback, provide support & deliver better products. Plato offers everything needed to provide a simple, branded product support site. You can get started with your own Plato site in about 2 minutes by signing up via the web site @ https://plato.instantasp.co.uk/
To learn more about each of the major new features introduced in our 2.0 release please see our full release notes below. To simply grab the Plato 2.0 update scroll to the very bottom of this post and download the appropriate package.
Multi Tenancy Support
Plato 2.0 introduces multi-tenancy support allowing you to create several completely unique Plato sites from a single Plato installation. This is helpful if you have several products and wish to create a unique Plato support site for each product.
Each tenant or site can of course have its own unique theme, URL, data & enabled set of features. A single installation of Plato can now support multiple independent, isolated tenants.
Within the code tenant isolation is achieved by providing each tenant which its own independent dependency injection scope so all registered services are isolated and unique to that tenant. Data for each tenant is either stored in a separate SQL Server database or within the same SQL Server database using a unique table prefix.
As you would expect the Plato host instance can manage all created tenants as shown below...
You can of course also create new tenants via the Plato dashboard as shown below….
Or of course edit existing tenants...
It's worth noting that tenants you create cannot act as hosts for other tenants. For example if you create a new Plato tenant and then enable the Plato.Tenants features within this tenant you will not see any tenant management options appear within the Plato dashboard. Only the host or default instance of Plato can currently create & manage tenants.
As it now takes seconds to create new Plato sites, we also wanted to make it easier to configure new Plato sites. To compliment the new multi-tenancy support we have also introduced a new setup assistant, this setup assistant will be displayed when you first login to a new Plato 2.0 site.
The setup assistant will walk you through a series of steps to help you more quickly configure a new Plato tenant or site. The new set-up assistant also allows you to enable multiple features at once – no need to enable features one by one anymore.
You can see below the new message you will see the very first time you visit your Plato site...
Once you login you will be taken directly to the set-up assistant within Plato dashboard as shown below...
Notice the setup assistant provides a series of steps you can walk through to configure your Plato installation. You can expand each step to see the recommended actions.
As you complete steps they will turn green to indicate they are complete as shown below...
Once you've finished with the setup assistiant you can choose to finish setup to permanently hide the set-up assistant as shown below...
Once finish setup the setup assistant will no longer be displayed. You can see below we have just finished the setup process and we are presented with the administrator dashboard...
And at the end of the setup assistance you should have a fully configured Plato site as shown below...
We hope the new setup assistance saves you some time when configuring your Plato site.
To make it even easier to visually customize new Plato tenants or sites we have revamped the Plato theme CSS file introducing colour variables. You can now change 3 variables via the theme.css file to give Plato a completely unique primary or accent colour throughout. Changing the default Plato blue to your corporate colour should take about 10 seconds. You can see we've highlighted the 3 primary color variables below...
Improved Theme Editor
We have also improved the existing Plato.Theming module adding code folding, syntax highlighting & and an improved editor for editing theme files. The new editor provides a more familiar experience when working with layout and CSS files. You can see we are editing the _layout.cshtml file via the new editor below...
- Improved performance avoiding unnecessary DNS lookups for API requests.
- Optimized several areas of the Plato host to ensure tenants do not impact performance
- Improved how route tables are constructed (simpler approach less code)
Why go from Plato 1.1.3 right to Plato 2.0.0?
- Fixed issue with login & registration links not working immediately after initial set-up
- Fixed issue with Plato.Categories.Roles that could cause a “Object plato_CategoryRoles already exists” warning when enabling features in a certain order.
- Fixed issue that would show certain modules needed updating even when you had the latest version already installed.
We decided to bump the major version number as we have made a number of large architectural & API changes to the Plato 2.0 core to achieve the new multi-tenancy support. These changes could break existing clients depending on our code and as such we have opted to bump to a new major version to indicate these breaking changes.
We sincerely hope you find the improvements in the Plato 2.0 update useful. As always please don’t hesitate to post your questions, report any issues or suggest your ideas for future versions of Plato. We look forward to bringing you further updates.
Optionally provide your comments to help us improve this blog entry...
Thank you for your feedback!