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.


Our 1-2nd vision - how we made content-editing 10x faster in 2sxc 8.0

Our vision is to get things done in 1-2nd (one second :). Imagine a world where you don't feel remotely connected but just getting things done. For this to happen, interactions must be fast, immediate and efficient. So in keeping with this vision, we asked ourselves:  

  • What are the most time consuming interactions? 
  • How often do I do them? 
  • Which ones could we automate - or remove completely? 
  • What are missing actions - which I cannot do - but would save me a lot of time? 
  • What are the features in 2sxc which save time, but unknown to web designers - so don't currently benefit the end user? 

With this and more we went to work and basically reworked everything. The first thing you'll notice on 2sxc 8 is the speed - which is funny, because in 10 minutes you won't notice it any more, but curse about all other components which don't react as quickly. Here's a short list of our core improvements - if you're a module developer, you may want to try some in your module as well: 

  1. In-Page hover-edit-buttons in view mode - this is very important, because in the common "edit" mode dnn adds a lot of things to the page which need a lot of javascript (jquery) work in the browser, and really kills UI performance on longer pages. Since the Content-module is often used on long content-pages or even single-pagers, this was a real problem - and since our buttons only appear on mouse-over, they don't hurt the view-mode. 
  2. Super-fast light-box - here too we had to go our own way using a full-screen iframe and a semi-transparent background. This is very important because of the way dnn handles dialogs, save-actions and similar, which often do MULTIPLE full page-reloads (with everything inside including viewstate) just to finish a save-operation. 
  3. Refresh edited content in the page using AJAX - so after saving, the page does not reload in Content-mode (it does in app-mode for now). This is great in terms of speed, but even better when you remember all those times you had to scroll back to the right position to check the result… 
  4. ADAM (automatic digital assets manager) - this guy reduces image and document upload time to the desired 1-2nd - from originally at least 30 seconds (picking remote folders, selecting local folder, wait for upload, re-select the image, click ok… - all gone now :) 
  5. Plain HTML Edit-UI - so we're getting ready for a future without asp.net, without viewstate and without dnn the way it works in 7.x or even the upcoming 8.x. So actually our UI is a simple HTML-page (ui.html) which has ZERO server-side code. Since the ui doesn't load a dnn-page, it's really, really fast… 
  6. Dialog-Parameters in the fragment-identifier (#) instead of search (?) - this is really cool, because the browser doesn't re-request ui.html (with a search-param it would) and in addition to that, we can use a LOT of parameters (while the search-param is limited to about 1000 characters, depending on the browser) 
  7. Merged JS-Libraries - we use a special Grunt-job to merge all the js-libraries we need (like AngularJS, angular-translate, angular-switch and many more) into one single .min.js file. This has a massive impact on performance and is much more reliable than using client-dependency 
  8. Merged JS code - our entire application has about 10'000 lines of JS code, which are distributed in around 100 files. But the client only gets a merged, compacted and minified version of this - which means speed, speed, speed. 
  9. Minified JS - we noticed an extreme performance boost using minified JS, so again we use Grunt to minify our JS. There are different theories out there, but we believe it's really significant. 
  10. Merged and minified CSS 
  11. and before I forget it - doing it all in the browser using AngularJS is amazing - both from UI performance as well as developer speed (after an initial, steep learning curve...)

We also added many new features which make content-work more efficient, but I'll save those for another post...

Love from Switzerland, 


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

There are currently no comments, be the first to post one.

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