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.


Microsoft embracing and endorsing AngularJS

Developers following the true gospel of Microsoft have a tendency of using MSDN Magazine and Microsoft-Giveaways as their true source of information. This was the correct approach in the past when anything related to Mac or Linux was N/A (not applicable) for us true believers. This approach has kept many believers away from AngularJS...but not any more! 

BTW: While the PC had 95% market share and IE4 ruled, we were right in ignoring the trivial few percent of heathen Jobs-Witnesses and Thorwaldiens, who believed in the resurrection of design and command lines. By ignoring them, we saved lots of time and harrowing discussions - resulting in world peace...

...until it turned out that the others were right too!

Microsoft used to be the system. Now it's one of many. It used to control a majority of the client devices, then became arrogant like IBM did - before Microsoft took over. And now it learned the same hard lessons: others are taking over.

And so the pantheon of Microsoft-Excecutives held a bunch of board meetings and decided that the only way to manage such a poly-religious system is to find a culture experienced with such poly-theism. Some guy probably read the Ramayana from a free sample on his kindle Microsoft-Surface-RT, got enlightened and spoke:

"let's get an Indian guy to fix this!"

So they went and got Satya Nadella (సత్య నాదెళ్ల - I love these squiggly characters :). And oh-boy fix it he did!

Did you know Satya was actually running Microsoft "Cloud Operations" before becoming CEO? His systems couldn't compete if they only ran Microsoft-stuff. So they opened to run everything. Have you noticed how often node.js is mentioned on MSDN Magazine or on Azure-articles? There's even a dedicated node.js developer center for Azure!

And he extended this strategy to all of Microsoft. I love it :)!

So what does this mean?

Microsoft stopped trying to force a Microsoft-Lock-In solution on us. The future is open...and compatible. For example, Microsoft dropped the old XML preference against JSON. It also means that Microsoft isn't pretending to have the better DHTML, better AJAX, better Data-Binding any more, but that it's now promoting what works - not what binds you to them.

What works on the client - like node.js on the server? Is it the Microsoft-inspired knockoutJS? Or is it the Google-inspired AngularJS? It's ironic that Microsoft originally promoted JavaScript based development around 1997 - while pretending that Internet-Explorer was part of Windows, but then "forgot" all about it once they reached market dominance. Now Google is promoting the same thing - just without the vendor-lock-in.

Some great new AngularJS endorsements from Microsoft:

You'll notice the compact timing - as if a Microsoft internal directive was changed around the middle of this year saying:

"you can play with the cool kids now, no more promoting knockoutJS"

Why should we DNN-Disciples care?

We cannot learn all possible technologies - our time is too limited. We're actually forced to use similar technologies to become more effective as a community. Choosing the right technology is therefor crucial - also because our Open-Source contributions will be copied by others - and if our published "best-practice" examples used weak tool, then beginners will copy this - and fail on the market. So it's our responsibility to choose wisely. Not based on ideology like "Google's behind it" but based on criteria like "What works best" and "What has widespread adoption"

So I hope that - now that Microsoft has changed sides - you too will "see the light" :) and give AngularJS a try. I guarantee: if you start with AngularJS, you'll start to get excited after 30 minutes - and after the first 2 hours you'll be hooked :)

Material to get started with AngularJS and DNN

  1. If you want to read or learn more - check out my blog series about AngularJS
    1. JavaScript MVC 1.1 - You need a good JavaScript MVC Framework
    2. JavaScript MVC 1.2 - Why AngularJS beats the **** out of knockoutJS
    3. JavaScript MVC 1.3 - Views/Templates with knockoutJS and AngularJS
    4. JavaScript MVC 1.4 - Learn AngularJS Fundamentals in 1 Hour
    5. My JavaScript MVC 2x series on App-Views, App-Controllers, App-ViewModels and App-Initialization
  2. If you want to get your hands dirty right away, have fun with the following AngularJS Apps
    1. Media/Press releases App - see live, get App
    2. Simple FAQ Tutorial App - see demo, get App
    3. An simple contact form, built with various Angular best-practices - get App (may be a bit advanced for first steps)
    4. and other AngularJS Apps with WebAPI tutorials and more

With love from Switzerland,
Daniel 

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 600 DNN projects since 1999. He is also chief architect of 2sxc (2SexyContent - see forge), an open source module for creating attractive content and DNN Apps.

Comments

Rodney Joyce
Hi Daniel, thanks for the great series of articles.

I have build an Ionic Angular Mobile app (Android and IOs wrapped by Telerik AppBuilder) that uses my DNN site (PokerDIY) as a backend which is running on Azure. It's working well but the last piece of the puzzle if Authentication. There are so many different ways of handling this - what do you recommend is the best way of handling authentication with DotNetNuke, WebApi and Angular?

Thanks
Rodney Joyce Thursday, January 15, 2015 6:25 PM (link)
Rodney Joyce
Hmm - it looks like no one has really used DNN authentication for a mobile app
Rodney Joyce Saturday, January 24, 2015 8:12 PM (link)
tatiana golod
So, DNN decided to go the MVC way?
tatiana golod Tuesday, January 27, 2015 6:18 PM (link)
Daniel Mettler
@Rodney
This is a good question. Basically you could go "cheap" and just use the dnn login module. Only real drawbacks is "unsexy" + you'll have a page reload.

Alternately It should be easy to create a WebAPI for this...but...I'm guessing that you'll want to reload the page anyhow after authentication, because it's likely that some resources / scripts will have to load again. So probably the booring standard login would just work as well.
Daniel Mettler Friday, January 30, 2015 4:51 AM (link)
Daniel Mettler
@tatiana
Yes, MVC all the way. It's basically what 2sxc has been providing for a few years now, but the new thing is that skins (layouts) will also be MVC. This provides some architecture challenges. If you want to know more, read about it in the DNN Roadmap.

My recommendation is to already create MVC-style apps (for example using 2sxc), so you'll be ready for the transition.
Daniel Mettler Friday, January 30, 2015 4:52 AM (link)
Yura Lobodzets
You should try the AngularDNN module. Probably it save your time.
http://store.dnnsoftware.com/home/product-details/angulardnn
Yura Lobodzets Tuesday, June 21, 2016 5:07 AM (link)
Huyen Bui Van
Dear Members,
I have build a project in Angularjs base on DNN platform. I used one container control (.ascx) and others html file as part view, see : http://ang.didulich.net
Huyen Bui Van Wednesday, April 18, 2018 7:47 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