Let's start with an FAQ
- Q: …on Azure, Amazon, Google-hosted scenarios
- 5. Q: …on (heaven forbid!) PHP, Ruby, nodejs servers
- Q: Will it work across all these platforms with one code base for the App / UI?
- Q: Will it work across all these platforms with one server API code base?
A: For DNN 7/8/neXt probably yes.
A: For cross-platform or cross-CMS probably no.
The Vision: Server Agnostic Applications
To get there the UI must really become independent of the server underneath. Any halfway implementation mixing server-rendered HTML with the JS-App will never reach the same broad audience as a properly separated system. Here's an example that won't make it (unless they refactor) ResponsiveFilemanager. It looks great - better than the simogeo/FileManager - but the core view is PHP rendered, making a DNN adaptation very "expensive" and parallel maintenance impossible.
Key Success Factor for Future Apps: Clear API
- have a consistent way of calling WebAPI endpoints - preferably REST
- use a common, consistent format - preferably JSON
- allow minimal configuration to address alternate WebApi endpoints (because urls will change a bit from system to system)
- clearly separate network-concerns from the core application (like authentication) - like our implementation of configuring $http in 2sxc to fit DNN
Basically developing a JS App this way will allow easy portability to other platforms and increase its adoption. In the same way any JS App developed this ways will be easy to port to DNN as well.
Key Success Factor for Future Server-Platforms: Api-Flexibility and Dev-Speed
Being able to deliver a WebApi for an existing JS application is key to the success of future servers. This means all layers of the stack OS (Windows/Azure/Linux), web service (IIS, Apache), dev-framework (Java, PHP, .net), implementation (WebApi, etc.) and Frameworks built on top of this (like DNN or the 2sxc-REST-Api)
Microsoft has been doing a good job here for about 2 years now with WebApi . And I love what they are doing with opening up, promoting AngularJS - this will provide another great boost.
How does DNN, 2sxc or custom 2sxc-App fit in this brave new world?
Surprisingly well - even DNN is extremely well prepared. The core question is how well is each part future-proof, based on the key success factors. This will be discussed in part 3 of my JS Rules! Series.
With love from Switzerland,