Plato 1.1.1

  • 4/9/2020 8:53:13 PM

  • About 6 minutes to read

26th March 2020 🙏

We are delighted today to announce the release of Plato 1.1.1. Plato 1.1.1 is the largest update for Plato since the initial 1.0 release back in September. This update introduces dozens of new features and hundreds of smaller fixes & improvements I’m excited to share below a list of all the major new features and improvements included within this release. I hope you enjoy something on the list 😃


Share files with your team

Our new Plato.Files module adds new file sharing capabilities into the Plato dashboard. We wanted to make it easier with Plato to share important assets related to your software projects securely with your team. After enabling the new Plato.Files modules you’ll notice a new “Files” option appears within your Plato dashboard. From the new Files > Manage page you can now see & download all the files uploaded by you or your team as shown below…


You can drill further into any file to update the file or to see further details…


As you would expect Plato.Files introduces a rich set of permissions and settings allowing Plato administrators to precisely control who can access or upload files, what type of files can be uploaded and how much space is available for users.


As with everything within Plato, Plato.Files has been built to be highly extensible and we plan soon to introduce some supporting modules that will compliment Plato.Files. For example, we want to add functionality that will allow your team to share files uploaded by your team privately with invited users either by a direct link or by email.

Share files with your users

To compliment the new private file sharing capabilities added into the Plato dashboard by Plato.Files we’ve also added the ability for you or your users to share files publicly or privately by attaching files to any entity within Plato. You can now attach files to any topic, doc, article, question, idea or issue within Plato. As with Plato.Files administrators can fully configure how uploads work for end users. To support file attachments for entities, we’ve introduced 6 new modules…

  • Plato.Discuss.Files
  • Plato.Docs.Files
  • Plato.Articles.Files
  • Plato.Questions.Files
  • Plato.Ideas.Files
  • Plato.Issues.Files

If you choose to enable one or more of these modules when composting or editing an entity within Plato you’ll notice a new “Files” panel appears alongside your content as shown below…


Role based security applies to all file attachments within Plato and attachments will only be accessible if you have the necessary roles & permissions to view the entity the file is associated with.

File attached to entities will appear at the bottom of the entity text as shown below...


Searching within files

If you enable the full text search option offered within Plato, Plato can also index and search the contents of specific file types uploaded by you or your users. By default the following file types will be indexed and searchable .ascx, .asm, .asp, .aspx, .bat, .c, .cmd, .cpp, .cxx, .def, .dic, .doc, .dot, .h, .hhc, .hpp, .htm, .html, .htw, .htx, .hxx, .ibq, .idl, .inc, .inf, .ini, .inx, .js, .log, .m3u, .mht, .obd, .obt, .odc, .pl, .pot, .ppt, .rc, .reg, .rtf, .stm, .txt, .url, .vbs, .wtx, .xlb, .xlc, .xls, .xlt, .xml.

You can of course extend the file types that will be indexed and searchable by Plato by installing additional iFilters within SQL Server. For example, to search the contents of PDF files you would need to install the Adobe PDF iFilter within your instance of SQL Server.

As you would expect if the user searches for a term that appears within a file and this file is attached to an entity within Plato the user would only see the search result if they have the necessary roles & permissions to view the entity the file is associated with.

New & Updated Activity Indicators

To make it easier for users to identify new content Plato 1.1.1 introduces a new visual indicator that will appear alongside titles for unread or updated topics, docs, articles, questions, ideas or issues.

You can see the new unread or updated indicater below...


To see the visual read indicators for any area within Plato you will need to enable one or more of the following modules introduced with Plato 1.1.1…

  • Plato.Discuss.New
  • Plato.Docs.New
  • Plato.Articles.New
  • Plato.Questions.New
  • Plato.Ideas.New
  • Plato.Issues.New

Asynchronous Uploads

As part of adding Plato.Files we’ve revamped all file uploading within Plato to be fully asynchronous and leverage chunk uploading to better support larger files.

Users will now also see a real progress bar during uploads that accurately represents the progress of the file upload. This visual feedback is especially helpful to users with slower connections or during larger file uploads.

When attaching files to entities you will see the following progress indicator…


Or when embedding images or files within the editor you will see the following progress indicator…


Tag Adapters

Tag adapters offer a new extensibility point within Plato 1.1.1 which now allow module authors to create modules that not only adapt views within Plato but can now also adapt any UI element or mark-up element within a Plato view. Tag adapters can be used to add new UI elements before or after any existing UI element or can alter existing UI elements adding attributes or changing styles.

For example, using the new tag adapter extensibility features module authors could create modules that visually adapt entity titles, entity text or user avatars. The “New” activity indicator introduced within Plato 1.1.1 detailed above leverages the new tag adapter extensibility points to add an unread or updated indicator alongside entity titles. You can see the code for this below...


View Filters

View filters within Plato work like action filters within ASP.NET MVC but instead of running before and after each controller action view filters execute before and after every view is executed within Plato. Our new tag adapter extensibility feature leverages view filters to add adapters to the current context before views are executed resulting in very minimal mark-up to accommodate for tag adapters.

View filters offer a powerful extensibility option within Plato but should be implemented carefully by module authors as they execute before and after every view executes. For this reason view filters must be minimal and high optimized to ensure they don’t have a performance impact.


Plato 1.1.1 introduces a new module to help identify performance issues within your Plato installation. Plato.Data.Tracing when enabled will now display a summary of database queries at the bottom of every Plato page. This summary shows timing information and highlights bottlenecks for every database query required to construct the Plato page you are viewing.

As Plato.Data.Tracing shows sensitive database information this module should not be enabled within production and will only work whilst Plato is set to development mode.

Leveraging our new Plato.Data.Tracing module we’ve also gone through every Plato page and optimized all database queries eliminating several unnecessary queries. On average we’ve reduced the number of database queries required to render each Plato page by a third saving between 3-9 queries per page.

Plato 1.1.1 also now introduces a new simple entity store which returns a very limited sub-set of entity data resulting in less network traffic between your web & database server. This simple entity store has been implemented in several areas to improve overall performance within Plato 1.1.1.

General Improvements

  • Improved all authorization checks when role-based security is enabled
  • Improved error handling and checks when creating search indexes
  • Refactored view invocation
  • User profile menu is now driven by navigation providers
  • Revamped web site - 😃


  • Fixed paging for Issues > Labels within the dashboard
  • Fixed issues with background tasks after upgrade to .NET Core 3.1
  • Fixed width issue with profile menu on smaller screens

That's It!

We sincerely hope you enjoy one or more of the improvements introduced with Plato 1.1.1. As always should you have any questions please don’t hesitate to contact us or share your questions or suggestions within our community .

Thank you to everyone who has submitted issues and provided feedback for Plato so far. We look forward to bringing you further updates very soon.

Can we improve this doc? Login or register to tell us how
Your Feedback
In this doc