How to Build an Angular SPA Module

How to Build an Angular SPA Module

How to build an Angular SPA module Torsten Weggen Indisoftware GmbH Twitter: @weggetor #DNNConnect2016 Please support our valuable sponsors #DNNConnect2016 About me This is not! where I come from! #DNNConnect2016 Coming from Hamburg in Northern Germany! #DNNConnect2016 We are more the rough guys … Between liver and spleen Christmas stress ? You can have this! #DNNConnect2016 And we love our lawns ! Holy lawn. (St. Pauli soccer club) #DNNConnect2016 Now lets start! Agenda #DNNConnect2016 Agenda • Get in touch with Angular JS • Standard SPA app vs. DNN SPA module • Using JS libraries • A look at the different layers of a DNN SPA module • Injecting information (Settings, Localization etc) • Angular modules, directives, controller • Bootstrapping Angular • Routing • Samples #DNNConnect2016 Get in touch with AngularJS • Javascript Framework by Google (http://angularjs.org) • Used on 0.5 % of ALL Websites (https://w3techs.com/technologies/details/js-angularjs/all/all) • Lots of code samples, modules, extensions (eg. http://ngmodules.org/ , GitHub) • New version 2 (RC) using Typescript • Great course to start: (https://www.codeschool.com/courses/shaping-up-with-angular-js) • John Papa is the style guru (https://github.com/johnpapa/angular-styleguide) #DNNConnect2016 Using Javascript Libraries • Use DNN Javascript libraries ! • Create a package for every Angular component you use! • Reusage in different modules • No multiple loading of libs (DNN controls injection of scripts) • See https://github.com/EngageSoftware/DNN-JavaScript-Libraries • Demo #DNNConnect2016 SPA Architecture - Classic ASP.NET MVC / Node.js HTML5 / AngularJS / more JS Libs #DNNConnect2016 SPA Architecture - DNN #DNNConnect2016 Have a look at the BBAngularConnect module Demo: Sample Module BBAngularConnect #DNNConnect2016 Different layers of SPA module – DAL 2 Data Access Layer (DAL 2, with PetaPoco) • methods for CRUD Operations to the Database • Definition of Entity POCOs #DNNConnect2016 Different layers of SPA module – WebAPI Webservice Layer (WebAPI) • RouteMapper.cs – defining the standard route • StoryController.cs – WebAPI methods > http://dnn8.local/desktopmodules/bbangularconnect/API/story/new #DNNConnect2016 Different layers of SPA module – HTML/CSS View Control (SPA->Plain Html) • Including CSS and JS files • ng-view is where the content is rendered #DNNConnect2016 Different layers of SPA module – HTML/CSS View Control (SPA->Plain Html) #DNNConnect2016 Different layers of SPA module – JSON TokenProvider – Generate JSON • Problem: Providing Localization, Settings etc. needs extra AJAX call. • Solution: • Sample all needed Data • convert to JSON • Inject in View.html via Token See code ! #DNNConnect2016 Different layers of SPA module – Angular App Angular app class • Instantiating our module • Registerung other module with DI #DNNConnect2016 Different layers of SPA module – Service Service class • Invoking Ajax calls • Returning results as promises #DNNConnect2016 Different layers of SPA module – Angular Directive(s) Directive dnnLabel • Encapsulating Html and functionality as own tag or attribute #DNNConnect2016 Different layers of SPA module – Angular Routing Angular Routing • Defining the different „pages“ of the application • Using # - Url (no page reload) • Defining template + controller per page #DNNConnect2016 Different layers of SPA module – Angular Controller Angular Controller • Business logic • Defining viewmodel variables • Querying and sending data via service • Decorating the „scope“ with variables and functions See code ! #DNNConnect2016 Different layers of SPA module – Templates Dynamically loaded HTML templates #DNNConnect2016 Adding some functionality Extending the Edit form with star rating Demo ! #DNNConnect2016 Real world samples Samples ! #DNNConnect2016 Thank you Questions? Please remember to evaluate the session online #DNNConnect2016 Contact me if you have questions! Torsten Weggen Indisoftware GmbH Email: [email protected] Twitter: @weggetor #DNNConnect2016.

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    28 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us