Products

Solutions

Resources

Partners

Community

About

New Community Website

Ordinarily, you'd be at the right spot, but we've recently launched a brand new community website... For the community, by the community.

Yay... Take Me to the Community!

The Community Blog is a personal opinion of community members and by no means the official standpoint of DNN Corp or DNN Platform. This is a place to express personal thoughts about DNNPlatform, the community and its ecosystem. Do you have useful information that you would like to share with the DNN Community in a featured article or blog? If so, please contact .

The use of the Community Blog is covered by our Community Blog Guidelines - please read before commenting or posting.


JS Rules! #1 - WordPress.com now with JS/WebApi Architecture like 2sxc

The future of the internet is not on the server. The fight around php vs. asp vs. mvc-on-the-server is suddenly irrelevant, because the future for online-systems is JavaScript-Based. What really got me excited is that WordPress.com just redid their entire system to also go this way. Since we just spent around 100 days refactoring 2sxc into this architecture, I will write a bit about this, beginning with some background why and hows…

WordPress.com: Welcome to the Club!

We strongly believe that the future of UI development is pure JavaScript - and paid a high price to pursue this vision (ca. 100 days of free work). So what really got me excited is to see that even WordPress.com has just done the same move and gone all JavaScript. Now just to be clear: I wouldn't want to use WordPress for anything that exceeds a common blog. But the plain fact that this very popular Platform has decided to use this architecture is another piece of proof that the server side is becoming obsolete. So for WordPress.com this means no more PHP for the UIs (replaced by WebAPIs mostly based on node.js). 

Server-Side Application-Rendering is Dead on All Platforms

We Microsofties used to believe that we're great because we have this cool server-side technology called ASP.net which takes care of HTML rendering for us. We knew we're better than PHP or Java Server Pages. We created cool server-side applications which merged database records with html, handled clicks and view-changes and pages and more. Our system even had really awesome server side controls. This led to the development of many awesome server-side standalone components like charts-tools, login-dialogs and more. We were happy and fairly efficient. 

Then the world changed, giving us AJAX, mobile devices cloud-services and complexity. Our customers didn't want to wait for page reloads, they wanted a feeling which "just worked" on the page itself at decreasing cost. They didn't want to think in pages any more, they just wanted it to "flow". That's when server-side model faltered - for asp.net but also for php, ruby, etc. All were badly equipped for it. Some systems were less bad than others - interestingly the unsophisticated systems were better because they didn't abstract so much. But they too just delay the inevitable, namely: the demise of Server Generated Uis.

The Demise of Server Generated User Interfaces

Image courtsy to
Remember Telnet-style applications in which the server generated the UI and sent it across the wire? This "server generates the screen and sends it" was replaced by client-based software exchanging just the data with the server in the 90s. This is over now. 

"Now server-based web UI rendering is going the way of Telnet applications... 

...with big emphasis on going."

 

The Future is JavaScript-Apps on the Client + a Small Server Api

How does this work? Well basically every UI will be client-side rendered and switching between dialogs will mostly be handled by the JS stack. Separating the concerns we'll have:

  1. An HTML-page hosting the JavaScript app. This page will commonly be either static (like the admin-UI in 2sxc 8) or served by a CMS (like a typical 2sxc-app placed on a normal page on DNN).
  2. The JS-App which runs in the browser, contains all kinds of views and services and makes sure the UI looks and responds the way it should - and retrieves/saves data through a JSON-WebAPI
  3. A web server hosting the parts of the JS-App like the HTML-Views, the JS-code, some JS-libraries and assets like logos and CSS - in our case this is usually something in the /Portals/…/2sxc/Your-App-Name-Here/dist
  4. A web-api delivering data to the JS-App - very often also on the same web server (in our DNN case this is so) - for example in 2sxc it's in /Portals/…/2sxc/Your-App-Name-Here/api

Server Programming is Only 90% Dead

So to be fair - the server still needs a few developers - mainly for creating the engines in the background like the DNN system and database or the EAV-system (Entity-Attribute-Value) which powers 2sxc. It's also still needed for server-side work like image-resizing or for special data-retrieval. But compare it to common tasks we used to do like:

  1. Creating application UI - I'm 100% convinced that it's over
  2. Creating forms for user input - just as convinced - 100% it's over
  3. Document management - the storage-component still needs some code, UI will be 100% JS
  4. Content-Page rendering (the user-view of a web site) - not yet over, but two trends are killing it as of now - especially since Google can now index content created in JS on the client (I'll write more about that later)
  5. Security relevant operations - yes, this still needs the server

Want to know more?

I'll write a bit more about this in the next few days, till then you may want to check out my blogs about

Love from Switzerland (yep, I'm back :)



Daniel Mettler grew up in the jungles of Indonesia and is founder and CEO of 2sic internet solutions in Switzerland and Liechtenstein, an 20-head web specialist with over 800 DNN projects since 1999. He is also chief architect of 2sxc (see forge), an open source module for creating attractive content and DNN Apps.



Read more posts by Daniel Mettler

Comments

Shaun Walker
I blogged about this trend in 2012 - http://weblogs.asp.net/sbwalker/microsoft-declares-the-future-of-asp-net-is-web-api and I got quite a bit of backlash at the time. One interesting comment from that blog is that "one Microsoft PM even went as far as to say that if we look 3-4 years into the future, that all ASP.NET web applications will be developed using the Web API approach"... as here we are 3.5 years later and the prediction has largely come true, as JS/WebApi architectures are now being used for the majority of greenfield web applications. One thing that I would have to disagree with however is the statement that "server-side application rendering is dead". Enterprise businesses are very slow to adopt new technologies, and I continue to see very large customers utilize server-side rendering for both existing and new projects. This is because they have a very significant investment in server-side architecture from both an IP and resource perspective and they want to continue to leverage those investments for as long as they can. Technology is a pendulum that is constantly swinging from the server to the client and back again. We have seen the industry shift numerous times in the past few decades, and we should expect to see the same trend in the future.
Shaun Walker Wednesday, November 25, 2015 11:03 PM (link)
Daniel Mettler
@Shaun thanks. I also think that server-side has a few years to go, but what I found extremely appealing when we reworked 2sxc is that I can start doing JS on parts of my application without having to rewrite everything. I believe this will cause many new extensions to existing enterprise tools to go with JS, while the old parts continue the old way. For example, there are still about 10 dialogs in 2sxc which we haven't converted yet - simply for resource reasons. We'll do them some time in the future. Such a partial-migration is my most likely scenario for the next 5 years.
Daniel Mettler Tuesday, December 1, 2015 9:38 AM (link)
Will Strohl
I have to agree with the JS rendering... you can easily add a services layer on top of existing server-side IP to allow you to easily leverage contemporary technologies and client expectations, without having to get rid of your existing investments. I don't see server-side only approaches sticking around for very much longer (which is to say past 3-5 years). Client-side expectations simply continue to rise more and more. I have to agree that server-side rendering is going to die away. This is of course all based upon anecdotal evidence I've seen myself.
Will Strohl Thursday, December 3, 2015 10:56 AM (link)
Harry -
This is a handy reference & might be worth of a blog post ;)

https://github.com/oneuijs/You-Dont-Need-jQuery
Harry - Friday, December 11, 2015 3:24 PM (link)
Daniel Mettler
@MWD - great tip!
Daniel Mettler Tuesday, December 22, 2015 2:14 AM (link)

Comment Form

Only registered users may post comments.

NewsArchives


Aderson Oliveira (22)
Alec Whittington (11)
Alessandra Daniels (3)
Alex Shirley (10)
Andrew Hoefling (3)
Andrew Nurse (30)
Andy Tryba (1)
Anthony Glenwright (5)
Antonio Chagoury (28)
Ash Prasad (37)
Ben Schmidt (1)
Benjamin Hermann (25)
Benoit Sarton (9)
Beth Firebaugh (12)
Bill Walker (36)
Bob Kruger (5)
Bogdan Litescu (1)
Brian Dukes (2)
Brice Snow (1)
Bruce Chapman (20)
Bryan Andrews (1)
cathal connolly (55)
Charles Nurse (163)
Chris Hammond (213)
Chris Paterra (55)
Clint Patterson (108)
Cuong Dang (21)
Daniel Bartholomew (2)
Daniel Mettler (181)
Daniel Valadas (48)
Dave Buckner (2)
David Poindexter (12)
David Rodriguez (3)
Dennis Shiao (1)
Doug Howell (11)
Erik van Ballegoij (30)
Ernst Peter Tamminga (80)
Francisco Perez Andres (17)
Geoff Barlow (12)
George Alatrash (12)
Gifford Watkins (3)
Gilles Le Pigocher (3)
Ian Robinson (7)
Israel Martinez (17)
Jan Blomquist (2)
Jan Jonas (3)
Jaspreet Bhatia (1)
Jenni Merrifield (6)
Joe Brinkman (274)
John Mitchell (1)
Jon Henning (14)
Jonathan Sheely (4)
Jordan Coopersmith (1)
Joseph Craig (2)
Kan Ma (1)
Keivan Beigi (3)
Kelly Ford (4)
Ken Grierson (10)
Kevin Schreiner (6)
Leigh Pointer (31)
Lorraine Young (60)
Malik Khan (1)
Matt Rutledge (2)
Matthias Schlomann (16)
Mauricio Márquez (5)
Michael Doxsey (7)
Michael Tobisch (3)
Michael Washington (202)
Miguel Gatmaytan (3)
Mike Horton (19)
Mitchel Sellers (40)
Nathan Rover (3)
Navin V Nagiah (14)
Néstor Sánchez (31)
Nik Kalyani (14)
Oliver Hine (1)
Patricio F. Salinas (1)
Patrick Ryan (1)
Peter Donker (54)
Philip Beadle (135)
Philipp Becker (4)
Richard Dumas (22)
Robert J Collins (5)
Roger Selwyn (8)
Ruben Lopez (1)
Ryan Martinez (1)
Sacha Trauwaen (1)
Salar Golestanian (4)
Sanjay Mehrotra (9)
Scott McCulloch (1)
Scott Schlesier (11)
Scott Wilkinson (3)
Scott Willhite (97)
Sebastian Leupold (80)
Shaun Walker (237)
Shawn Mehaffie (17)
Stefan Cullmann (12)
Stefan Kamphuis (12)
Steve Fabian (31)
Steven Fisher (1)
Tony Henrich (3)
Torsten Weggen (3)
Tycho de Waard (4)
Vicenç Masanas (27)
Vincent Nguyen (3)
Vitaly Kozadayev (6)
Will Morgenweck (40)
Will Strohl (180)
William Severance (5)
What is Liquid Content?
Find Out
What is Liquid Content?
Find Out
What is Liquid Content?
Find Out