Overview
Over the last 25 years since the World Wide Web was first created, the web has undergone dramatic change. Web pages started out as static documents with rudimentary styling and graphics. During the first decade of web development, frameworks like Active Server Pages and ColdFusion added server side programming to enable the development of rich web applications. JavaScript was added to enable simple browser interactions, but was generally considered too slow and limited for serious web application development.
Over the following decade, the web went through another major growth spurt as developers pushed JavaScript to its limits and beyond. Browsers continued to advance to drive client-side performance and capability. In addition, the development and refinement of AJAX techniques made it possible to deliver even richer browser experiences than were previously possible.
In the last 5 years we have seen an explosion of Single Page Application (SPA) frameworks like Angular, Backbone, Ember, Aurelia and more. These frameworks leverage JavaScript and AJAX to enable the development of rich web applications with desktop application like performance.
DNN SPA
In DNN 8, we are working to enhance the platform by embracing modern web development techniques. In CTP 1 we provided the framework enhancements necessary for building modules using the ASP.Net Model View Controller framework. MVC modules embrace a convention over configuration approach that simplifies module development. This approach also makes it easier to build modules which use modern development techniques like dependency injection and unit testing throughout.
I am happy to announce the release of DNN 8 CTP 2. In CTP 2 we focused on enabling the development of pure SPA modules. There have been many blog posts on DNNSoftware discussing how to develop modules for DNN using SPA frameworks. Unfortunately, virtually every previous approach relied on the use of Razor scripts or ASCXs to host the SPA app. This adds an extra layer of complexity to SPA development.
In CTP 2, SPA modules will become first class citizens that don’t rely on RazorHost or an ASCX page for bootstrapping your module. DNN 8 will allow you to take pure HTML, CSS and JavaScript and package them as a standard module. If you add a little server side WebAPI code, then you can create full featured SPA modules very quickly and with minimal friction.
In order to allow developers to take advantage of some DNN features when building SPA modules, we also added TokenReplace API support. This will allow developers to access common tokens like Users, PortalSettings, ModuleSettings and the like and have those automatically rendered inline. In addition we created new tokens that you can use to render JavaScript and CSS references. These tokens integrate with existing JavaScript library APIs as well as the Client Resource Framework. Finally we added a token for accessing resource strings and another for creating lightweight Module Action Menu items.
Secure Web Services
CTP 2 doesn’t stop with just SPA modules. Ever since we added the Web Service Framework to DNN, we have wanted to have the ability to create secure web services that could be accessed from outside of your DNN installation. In prior DNN versions, modules could access DNN web services securely, but if you wanted to consume a web service from a mobile application or another website, you were forced to roll your own security framework.
In this build, we have enabled the use of a new HMAC attribute. This attribute, along with new user settings allow for a lightweight option for securing web services over HTTP. Once your web service is built using this attribute, you will be able to authenticate every user. When combined with the existing Authorization attributes, you will have full control over who can access your API. This is a good start for securing web services, but it just the first access security option we will deliver in DNN 8.
Summary
There are still many features left to be developed for DNN 8, but we think CTP 2 includes many useful developer focused features. Future builds will finish fleshing out these initial developer features and will include many user oriented features as well. Charles Nurse and Cathal Connolly will be following up over the next couple of days with more in depth posts on how to use the MVC, SPA and HMAC features delivered in CTP 1 & 2.
As usual you can download CTP 2 on CodePlex.