Riverside CMS goes API first

The Riverside CMS roadmap for 2018 Q4; our plans for an API first, open source, ASP.NET Core CMS.

Posted
21 September 2018

Riverside Content Management System (CMS) has powered intranet and internet web sites since the late 1990s. Those of you with a development background might be interested to know that Riverside CMS began life as an Active Server Pages (ASP) application. Since the 1990s, technologies have changed rapidly and the CMS was migrated from ASP to ASP.NET Web Forms, then to ASP.NET Model View Controller (MVC) and finally to ASP.NET Core MVC. The latest version of the codebase can be deployed on Windows and Linux servers.

Building for the future

Right now, Riverside CMS is undergoing a major re-engineering that will place RESTful APIs at the heart of the system. This change in architecture will allow the front end user interface to be decoupled from the back end APIs, which will result in code that is easier to maintain and simpler to deploy. This is of particular importance when trying to keep abreast of fast changing legal regulations and search engine optimisation (SEO) guidelines - updates to the front end user interface can be deployed independently of the back end APIs. Furthermore, by implementing back end APIs, alternative front end clients could be developed for Riverside CMS, including Single Page Applications (SPAs) and mobile apps.

The re-engineering that is underway can be broken down into three parts:

  • Implement read only APIs for the retrieval of Riverside CMS page definitions and content
  • Implement APIs for authentication and authorisation
  • Implement create, read, update and delete (CRUD) APIs for CMS administration

Implement read only APIs

The build out of read only APIs for the retrieval of Riverside CMS page definitions is currently underway. In order to complete this task, the 20 or so different elements that can be added to a CMS page must be re-written so that their definitions and content can be retrieved via APIs. This task is almost complete, with two elements (feedback form and forum / comments) outstanding.

Once the read only APIs and a new ASP.NET MVC front end that consumes these APIs are ready, testing can begin to ensure that existing websites render correctly on the new platform. Performance is expected to be comparable with the old platform and some of the HTML markup in the front end will be modified to ensure stricter compliance with W3C validation rules and SEO guidelines.

Implement authentication and authorisation APIs

Once the read only APIs are built, the next major task is to build out APIs for authentication and authorisation. Once this work is complete, it will be possible to upgrade Riverside CMS websites in Production so that they are powered by the new APIs. However, website administration will still fall back to the legacy Riverside CMS administration system.

Implement administration APIs

The final piece of work is the re-engineering of the CMS administration system so that it, too, is API driven. With this final piece in place, Riverside CMS will be fully converted to an API first application.

Conclusion

We are approximately 1 week away from completing the read only APIs and conducting our first major tests. The authentication and authorisation APIs should follow 2-3 weeks after that, when we will be able to start porting existing Production websites to the new codebase so that they can take advantage of various SEO improvements. Following authentication and authorisation, it will take approximately 2 months to implement the full set of CRUD APIs required to support all CMS administration features.

Riverside CMS is an open source ASP.NET Core content management system. The code is available on GitHub here: https://github.com/riverside-internet/riverside-cms

Related articles

Check out these related stories.