SlideShare ist ein Scribd-Unternehmen logo
1 von 27
Bruce Chapman
iFinity Software

BUILDING A MOBILE
APPLICATION FOR DOTNETNUKE
Presentation Agenda
   Brief Introduction to Mobile Applications +
    DotNetNuke
   Demonstrate how to build a Mobile Application
    that uses Service Layer of DotNetNuke to
    interact
     – Understanding the Service Layer
     – Building Service Endpoints
   Example Application : “Dnn Dash” – allows
    access to the Dashboard of any 6.2+
    DotNetNuke site
     – Building Mobile Application
Mobile Applications
   Purpose built (device specific) Mobile
    Applications are a superior way to deliver a
    mobile experience
   Html 5 can provide a rich experience, but cannot
    match purpose built at this point
   The theme of Mobile App vs Mobile Site is
    currently a hot topic of debate
Html 5 vs Native Apps


     Html 5                          Native App

               Conclusion
 • Write once – run anywhere           • App per platform
               •Choose
 • Server-side code easily according to require lengthy
                                    • May
   changed     requirements           release process
 • Sandboxed, no access to           • Full access to device
   features  •Services     layer   may features – camera, GPS
                                       be largely
 •                                   • In-device discovery +
     No App Store Presence in either case
                the same               purchase
 • Speed dependent on
   connection                          • Faster + more stable
 • Direct monetization more            • Monetization by app or in-
   difficult                             app purchase easy
Mobile Applications and DotNetNuke
   DotNetNuke 6.2 introduced the Services
    Layer, which exposes key DNN API
    features
   DNN Services layer is easily extended for
    module specific purposes
   An entire new field of DotNetNuke
    application development has been
    created
Mobile Application Types
   Corporate development : customising
    apps for in-house use on mobile + tablet
    platforms
   Commercial development : new
    applications that provider web + mobile
    experience
   Open Source development : providing
    applications + back end processes
A Natural Fit : Mobile + Cloud
Building a DotNetNuke Mobile Application
Understanding the Service Layer
   6.2 – Uses the MVC Service Layer
   7.0 – Uses the Web API for the Services Layer
   Two aspects to layer:
     – Built-in DNN API
     – Extension for Third-party modules
   Provides authentication based on DotNetNuke
    user accounts and profiles
   Provides simple pattern to design service
    endpoints
   Flexibility in format (Json/Xml/others)
Extending the Service Layer
   2 Basic Components to API Extensions
     1. Controller
         Definition of Methods and layer on top of
           business logic
         Inherits from DnnController


    2. RouteMapper
        Defines what Urls map to which
         Controller methods
        Inherits from IServiceRouteMapper
Example Service Layer Call




 Url   to call:
http://example.com/DesktopModules/DnnDash/API/Dash/Ping
Deconstructing Services Layer Url
http://example.com/DesktopModules/DnnDash/API/Dash/Ping
   http://example.com => domain name
   /DesktopModules => fixed part of Url, denotes module Url
   /DnnDash => specifies module
   /API => fixed, denotes services layer
   /Dash => specifies controller [ DashController ]
   /Ping => method name [ Public string Ping() ]


   NOTE: /DesktopModules/DnnDash doesn‟t
    necessarily have to exist
RouteMapper registers Url Routes




   MapRoute configures what Urls will work:
    – “DnnDash”  /DesktopModules/DnnDash
    – “{controller}/{action}”  Class/Method
          /API/Dash/Ping  DashController.Ping()


   No other configuration required
Services Layer Demonstration
Services Authentication
   Authentication:
     – Identifying & Authorising User accounts
     – Preventing Unauthorised Access
     – Avoiding opening exploitable holes
     – Providing „context‟ for current user within
       service calls
   Web-browser based services call use cookie-
    based authentication (ie AJAX calls)
   Mobile devices use digest authentication to
    provide authentication
     – Username/password pair provided with each
       call
Services Authentication cont.
   Services methods access level can be marked
    with:
     – AllowAnonymous – no authentication
     – RequiresHost – if true, must be SuperUser
     – StaticRoles – named DotNetNuke roles
   All „regular‟ DNN objects are available in context
    for service calls:
     – Portal Settings (current portal, alias, settings)
     – UserInfo (authenticated user)
Tips for Writing Services
   Use RESTful method / parameter naming
    principles
   Stick to common return format in project
    (Json/Xml/String – whatever)
   Plan for infrequent service calls in Application
    Design
   Be frugal with data going backwards and
    forwards – this may require custom serializing of
    objects
Installing Services with your Module
   A service-only module only has an Assembly
   Install with ordinary Module install package
   DotNetNuke manifest file used to specify
    configuration and safe uninstall
Writing a Mobile Application
   „DnnDash‟ application on Windows Phone
   Reads installed DotNetNuke dashboard
    components for display on mobile devices
   Uses DnnDash services layer to send back Xml
    of dashboard information
   Host-level access required to run
   DnnDash module/phone app available from
    dnndash.com
Accessing Services from Windows Phone
   Uses System.Net.HttpWebRequest
     – Asynchronous method
     – Check Http status code to monitor correct
       authentication (401 returned when not
       authenticated)
   Each call from the device provides user
    authentication username/password pair
   Uses Xml from Service call to create UI
DNN Dash Phone App Demo
Authenticating Phone User
   Username/Password supplied
    with each call
   Defaults to Digest
    Authentication –
    Username/password not
    plaintext
Requesting Data from Service
   Mobile requests data using Asynchronous Web
    Request.
   Response body is read from
    Response.GetResponseStream()
   Once response is received, conversion to the
    response format
   Example uses both Xml and Json responses
Posting Data to a service
   Posting is much the same as retrieving data
   Post generally means changing server state
   Posts should be idempotent
   Failure should allow for re-submit without losing
    client state
Considerations for Mobile App Design
   Store-posted apps can have lead-times for
    changes in design
   DotNetNuke modules can be changed + patched
    immediately
   Therefore, introduce flexibility into design that is
    data-driven, side-stepping requirements to re-
    release mobile clients
Conclusions
   Mobile Internet usage will soon overtake fixed
    line, if it hasn‟t already
   Hardware sales growth in mobile devices
    outstrips desktop computing
   DotNetNuke provides a perfect bridge between
    mobile devices and your data, especially if you
    want to put it in the cloud
   Building modules for the services layer is simple
    and fast
   Mobile Apps are the next big thing in
    DotNetNuke
Questions
   Dnn Dash application code available from
    http://dnndashservice.codeplex.com/


   Slides available at
    http://www.slideshare.net/brchapman

Weitere ähnliche Inhalte

Was ist angesagt?

InterConnect 2015 1930 - Top practices to ensure a successful IBM Business Pr...
InterConnect 2015 1930 - Top practices to ensure a successful IBM Business Pr...InterConnect 2015 1930 - Top practices to ensure a successful IBM Business Pr...
InterConnect 2015 1930 - Top practices to ensure a successful IBM Business Pr...Brian Petrini
 
InterConnect 2017 HBP-2884-IBM BPM upgrade and migration made easy
InterConnect 2017 HBP-2884-IBM BPM upgrade and migration made easyInterConnect 2017 HBP-2884-IBM BPM upgrade and migration made easy
InterConnect 2017 HBP-2884-IBM BPM upgrade and migration made easyBrian Petrini
 
Impact 2012 1640 - BPM Design considerations when optimizing business process...
Impact 2012 1640 - BPM Design considerations when optimizing business process...Impact 2012 1640 - BPM Design considerations when optimizing business process...
Impact 2012 1640 - BPM Design considerations when optimizing business process...Brian Petrini
 
Dot Net Training Dot Net35
Dot Net Training Dot Net35Dot Net Training Dot Net35
Dot Net Training Dot Net35Subodh Pushpak
 
New Single Sign-on Options for IBM Lotus Notes & Domino (We4IT)
New Single Sign-on Options for IBM Lotus Notes & Domino (We4IT)New Single Sign-on Options for IBM Lotus Notes & Domino (We4IT)
New Single Sign-on Options for IBM Lotus Notes & Domino (We4IT)We4IT Group
 
Dot Net Training Wcf Dot Net35
Dot Net Training Wcf Dot Net35Dot Net Training Wcf Dot Net35
Dot Net Training Wcf Dot Net35Subodh Pushpak
 
Impact 2008 1994A - Exposing services people want to consume: a model-driven ...
Impact 2008 1994A - Exposing services people want to consume: a model-driven ...Impact 2008 1994A - Exposing services people want to consume: a model-driven ...
Impact 2008 1994A - Exposing services people want to consume: a model-driven ...Brian Petrini
 
Impact 2013 2971 - Fundamental integration and service patterns
Impact 2013 2971 - Fundamental integration and service patternsImpact 2013 2971 - Fundamental integration and service patterns
Impact 2013 2971 - Fundamental integration and service patternsBrian Petrini
 
MQ Light for Bluemix - IBM Interconnect 2015 session AME4183
MQ Light for Bluemix - IBM Interconnect 2015 session AME4183MQ Light for Bluemix - IBM Interconnect 2015 session AME4183
MQ Light for Bluemix - IBM Interconnect 2015 session AME4183Robert Nicholson
 
Ims soa tm and db solutions evgeni oct 2011
Ims soa tm and db solutions evgeni oct 2011Ims soa tm and db solutions evgeni oct 2011
Ims soa tm and db solutions evgeni oct 2011evgeni77
 
IBM WebSphere Liberty and Docker Deep Dive
IBM WebSphere Liberty and Docker Deep DiveIBM WebSphere Liberty and Docker Deep Dive
IBM WebSphere Liberty and Docker Deep DiveDavid Currie
 
Impact 2010 1162 - How to say less, yet communicate more, in solution designs...
Impact 2010 1162 - How to say less, yet communicate more, in solution designs...Impact 2010 1162 - How to say less, yet communicate more, in solution designs...
Impact 2010 1162 - How to say less, yet communicate more, in solution designs...Brian Petrini
 
Innovating with Cisco Contact Center Architectures
Innovating with Cisco Contact Center ArchitecturesInnovating with Cisco Contact Center Architectures
Innovating with Cisco Contact Center ArchitecturesCisco Canada
 
Lab jam websphere message broker labs
Lab jam   websphere message broker labsLab jam   websphere message broker labs
Lab jam websphere message broker labsEng Binary
 
AD201: IBM Domino Application Development Today And Tomorrow
AD201: IBM Domino Application Development Today And TomorrowAD201: IBM Domino Application Development Today And Tomorrow
AD201: IBM Domino Application Development Today And TomorrowMartin Donnelly
 
Open Mic "Notes Federated Login"
Open Mic "Notes Federated Login"Open Mic "Notes Federated Login"
Open Mic "Notes Federated Login"Ranjit Rai
 
Connect2016 - 1172 Shipping domino
Connect2016 - 1172 Shipping dominoConnect2016 - 1172 Shipping domino
Connect2016 - 1172 Shipping dominoMatteo Bisi
 
Mobile crm installation & configuration details
Mobile crm   installation & configuration detailsMobile crm   installation & configuration details
Mobile crm installation & configuration detailsArbind Tiwari
 

Was ist angesagt? (19)

InterConnect 2015 1930 - Top practices to ensure a successful IBM Business Pr...
InterConnect 2015 1930 - Top practices to ensure a successful IBM Business Pr...InterConnect 2015 1930 - Top practices to ensure a successful IBM Business Pr...
InterConnect 2015 1930 - Top practices to ensure a successful IBM Business Pr...
 
InterConnect 2017 HBP-2884-IBM BPM upgrade and migration made easy
InterConnect 2017 HBP-2884-IBM BPM upgrade and migration made easyInterConnect 2017 HBP-2884-IBM BPM upgrade and migration made easy
InterConnect 2017 HBP-2884-IBM BPM upgrade and migration made easy
 
Impact 2012 1640 - BPM Design considerations when optimizing business process...
Impact 2012 1640 - BPM Design considerations when optimizing business process...Impact 2012 1640 - BPM Design considerations when optimizing business process...
Impact 2012 1640 - BPM Design considerations when optimizing business process...
 
Dot Net Training Dot Net35
Dot Net Training Dot Net35Dot Net Training Dot Net35
Dot Net Training Dot Net35
 
Silverlight Training
Silverlight TrainingSilverlight Training
Silverlight Training
 
New Single Sign-on Options for IBM Lotus Notes & Domino (We4IT)
New Single Sign-on Options for IBM Lotus Notes & Domino (We4IT)New Single Sign-on Options for IBM Lotus Notes & Domino (We4IT)
New Single Sign-on Options for IBM Lotus Notes & Domino (We4IT)
 
Dot Net Training Wcf Dot Net35
Dot Net Training Wcf Dot Net35Dot Net Training Wcf Dot Net35
Dot Net Training Wcf Dot Net35
 
Impact 2008 1994A - Exposing services people want to consume: a model-driven ...
Impact 2008 1994A - Exposing services people want to consume: a model-driven ...Impact 2008 1994A - Exposing services people want to consume: a model-driven ...
Impact 2008 1994A - Exposing services people want to consume: a model-driven ...
 
Impact 2013 2971 - Fundamental integration and service patterns
Impact 2013 2971 - Fundamental integration and service patternsImpact 2013 2971 - Fundamental integration and service patterns
Impact 2013 2971 - Fundamental integration and service patterns
 
MQ Light for Bluemix - IBM Interconnect 2015 session AME4183
MQ Light for Bluemix - IBM Interconnect 2015 session AME4183MQ Light for Bluemix - IBM Interconnect 2015 session AME4183
MQ Light for Bluemix - IBM Interconnect 2015 session AME4183
 
Ims soa tm and db solutions evgeni oct 2011
Ims soa tm and db solutions evgeni oct 2011Ims soa tm and db solutions evgeni oct 2011
Ims soa tm and db solutions evgeni oct 2011
 
IBM WebSphere Liberty and Docker Deep Dive
IBM WebSphere Liberty and Docker Deep DiveIBM WebSphere Liberty and Docker Deep Dive
IBM WebSphere Liberty and Docker Deep Dive
 
Impact 2010 1162 - How to say less, yet communicate more, in solution designs...
Impact 2010 1162 - How to say less, yet communicate more, in solution designs...Impact 2010 1162 - How to say less, yet communicate more, in solution designs...
Impact 2010 1162 - How to say less, yet communicate more, in solution designs...
 
Innovating with Cisco Contact Center Architectures
Innovating with Cisco Contact Center ArchitecturesInnovating with Cisco Contact Center Architectures
Innovating with Cisco Contact Center Architectures
 
Lab jam websphere message broker labs
Lab jam   websphere message broker labsLab jam   websphere message broker labs
Lab jam websphere message broker labs
 
AD201: IBM Domino Application Development Today And Tomorrow
AD201: IBM Domino Application Development Today And TomorrowAD201: IBM Domino Application Development Today And Tomorrow
AD201: IBM Domino Application Development Today And Tomorrow
 
Open Mic "Notes Federated Login"
Open Mic "Notes Federated Login"Open Mic "Notes Federated Login"
Open Mic "Notes Federated Login"
 
Connect2016 - 1172 Shipping domino
Connect2016 - 1172 Shipping dominoConnect2016 - 1172 Shipping domino
Connect2016 - 1172 Shipping domino
 
Mobile crm installation & configuration details
Mobile crm   installation & configuration detailsMobile crm   installation & configuration details
Mobile crm installation & configuration details
 

Andere mochten auch

DotNetNuke Urls - Best practice for administrators, editors and developers
DotNetNuke Urls - Best practice for administrators, editors and developersDotNetNuke Urls - Best practice for administrators, editors and developers
DotNetNuke Urls - Best practice for administrators, editors and developersbrchapman
 
Building a mobile application for dot netnuke
Building a mobile application for dot netnukeBuilding a mobile application for dot netnuke
Building a mobile application for dot netnukebrchapman
 
Dnn connect dnnmobi-slides
Dnn connect dnnmobi-slidesDnn connect dnnmobi-slides
Dnn connect dnnmobi-slidesashishpd
 
DNN Connect - Mobile Development With Xamarin
DNN Connect - Mobile Development With XamarinDNN Connect - Mobile Development With Xamarin
DNN Connect - Mobile Development With XamarinMark Allan
 
Add Mobile Device Dimensions to Your Web Analytics with 51Degrees and DNN
Add Mobile Device Dimensions to Your Web Analytics with 51Degrees and DNNAdd Mobile Device Dimensions to Your Web Analytics with 51Degrees and DNN
Add Mobile Device Dimensions to Your Web Analytics with 51Degrees and DNNDNN
 
Mobile App Development Using Appcelerator and DNN WebAPIs
Mobile App Development Using Appcelerator and DNN WebAPIsMobile App Development Using Appcelerator and DNN WebAPIs
Mobile App Development Using Appcelerator and DNN WebAPIsDNN
 
Dn nfor mobile_download_en
Dn nfor mobile_download_enDn nfor mobile_download_en
Dn nfor mobile_download_enmbeatrizoliveira
 
DNN Web API For Mobile
DNN Web API For MobileDNN Web API For Mobile
DNN Web API For Mobileashishpd
 
CMS DotNetNuke : avantages pour les professionnels du web
CMS DotNetNuke : avantages pour les professionnels du webCMS DotNetNuke : avantages pour les professionnels du web
CMS DotNetNuke : avantages pour les professionnels du webI-business Solutions
 
World Bank/GFDRR contributions to exposure modeling for global risk modeling ...
World Bank/GFDRR contributions to exposure modeling for global risk modeling ...World Bank/GFDRR contributions to exposure modeling for global risk modeling ...
World Bank/GFDRR contributions to exposure modeling for global risk modeling ...Global Risk Forum GRFDavos
 
DotNetNuke on Azure Cloud Servers
DotNetNuke on Azure Cloud ServersDotNetNuke on Azure Cloud Servers
DotNetNuke on Azure Cloud Serversbrchapman
 
Building DotNetNuke Modules
Building DotNetNuke ModulesBuilding DotNetNuke Modules
Building DotNetNuke ModulesEngage Software
 
The Power of Data in the Automotive Industry (CDK User Event)
The Power of Data in the Automotive Industry (CDK User Event)The Power of Data in the Automotive Industry (CDK User Event)
The Power of Data in the Automotive Industry (CDK User Event)Eslam Ahmed Hussein
 
ADP Dealer Services Automotive Digital Advertising Managed Service Solutions
ADP Dealer Services Automotive Digital Advertising Managed Service SolutionsADP Dealer Services Automotive Digital Advertising Managed Service Solutions
ADP Dealer Services Automotive Digital Advertising Managed Service SolutionsRalph Paglia
 
DotNetNuke CMS: benefits for web professionals
DotNetNuke CMS: benefits for web professionalsDotNetNuke CMS: benefits for web professionals
DotNetNuke CMS: benefits for web professionalsI-business Solutions
 
DNN Connect 2014 - Enterprise Ecommerce and DotNetNuke
DNN Connect 2014 - Enterprise Ecommerce and DotNetNukeDNN Connect 2014 - Enterprise Ecommerce and DotNetNuke
DNN Connect 2014 - Enterprise Ecommerce and DotNetNukeThomas Stensitzki
 
Dot Net Nuke Presentation
Dot Net Nuke PresentationDot Net Nuke Presentation
Dot Net Nuke PresentationTony Cosentino
 
DotNetNuke: Be Like Bamboo
DotNetNuke: Be Like BambooDotNetNuke: Be Like Bamboo
DotNetNuke: Be Like BambooWill Strohl
 
Payroll outsourcing services
Payroll outsourcing servicesPayroll outsourcing services
Payroll outsourcing servicesSupriya Singh
 
ADP - Payroll Outsourcing Benefits
ADP - Payroll Outsourcing BenefitsADP - Payroll Outsourcing Benefits
ADP - Payroll Outsourcing BenefitsADP India
 

Andere mochten auch (20)

DotNetNuke Urls - Best practice for administrators, editors and developers
DotNetNuke Urls - Best practice for administrators, editors and developersDotNetNuke Urls - Best practice for administrators, editors and developers
DotNetNuke Urls - Best practice for administrators, editors and developers
 
Building a mobile application for dot netnuke
Building a mobile application for dot netnukeBuilding a mobile application for dot netnuke
Building a mobile application for dot netnuke
 
Dnn connect dnnmobi-slides
Dnn connect dnnmobi-slidesDnn connect dnnmobi-slides
Dnn connect dnnmobi-slides
 
DNN Connect - Mobile Development With Xamarin
DNN Connect - Mobile Development With XamarinDNN Connect - Mobile Development With Xamarin
DNN Connect - Mobile Development With Xamarin
 
Add Mobile Device Dimensions to Your Web Analytics with 51Degrees and DNN
Add Mobile Device Dimensions to Your Web Analytics with 51Degrees and DNNAdd Mobile Device Dimensions to Your Web Analytics with 51Degrees and DNN
Add Mobile Device Dimensions to Your Web Analytics with 51Degrees and DNN
 
Mobile App Development Using Appcelerator and DNN WebAPIs
Mobile App Development Using Appcelerator and DNN WebAPIsMobile App Development Using Appcelerator and DNN WebAPIs
Mobile App Development Using Appcelerator and DNN WebAPIs
 
Dn nfor mobile_download_en
Dn nfor mobile_download_enDn nfor mobile_download_en
Dn nfor mobile_download_en
 
DNN Web API For Mobile
DNN Web API For MobileDNN Web API For Mobile
DNN Web API For Mobile
 
CMS DotNetNuke : avantages pour les professionnels du web
CMS DotNetNuke : avantages pour les professionnels du webCMS DotNetNuke : avantages pour les professionnels du web
CMS DotNetNuke : avantages pour les professionnels du web
 
World Bank/GFDRR contributions to exposure modeling for global risk modeling ...
World Bank/GFDRR contributions to exposure modeling for global risk modeling ...World Bank/GFDRR contributions to exposure modeling for global risk modeling ...
World Bank/GFDRR contributions to exposure modeling for global risk modeling ...
 
DotNetNuke on Azure Cloud Servers
DotNetNuke on Azure Cloud ServersDotNetNuke on Azure Cloud Servers
DotNetNuke on Azure Cloud Servers
 
Building DotNetNuke Modules
Building DotNetNuke ModulesBuilding DotNetNuke Modules
Building DotNetNuke Modules
 
The Power of Data in the Automotive Industry (CDK User Event)
The Power of Data in the Automotive Industry (CDK User Event)The Power of Data in the Automotive Industry (CDK User Event)
The Power of Data in the Automotive Industry (CDK User Event)
 
ADP Dealer Services Automotive Digital Advertising Managed Service Solutions
ADP Dealer Services Automotive Digital Advertising Managed Service SolutionsADP Dealer Services Automotive Digital Advertising Managed Service Solutions
ADP Dealer Services Automotive Digital Advertising Managed Service Solutions
 
DotNetNuke CMS: benefits for web professionals
DotNetNuke CMS: benefits for web professionalsDotNetNuke CMS: benefits for web professionals
DotNetNuke CMS: benefits for web professionals
 
DNN Connect 2014 - Enterprise Ecommerce and DotNetNuke
DNN Connect 2014 - Enterprise Ecommerce and DotNetNukeDNN Connect 2014 - Enterprise Ecommerce and DotNetNuke
DNN Connect 2014 - Enterprise Ecommerce and DotNetNuke
 
Dot Net Nuke Presentation
Dot Net Nuke PresentationDot Net Nuke Presentation
Dot Net Nuke Presentation
 
DotNetNuke: Be Like Bamboo
DotNetNuke: Be Like BambooDotNetNuke: Be Like Bamboo
DotNetNuke: Be Like Bamboo
 
Payroll outsourcing services
Payroll outsourcing servicesPayroll outsourcing services
Payroll outsourcing services
 
ADP - Payroll Outsourcing Benefits
ADP - Payroll Outsourcing BenefitsADP - Payroll Outsourcing Benefits
ADP - Payroll Outsourcing Benefits
 

Ähnlich wie Building a mobile application for dot netnuke v3

Azure Mobile Services for Cross Platform Mobile Apps
Azure Mobile Services for Cross Platform Mobile AppsAzure Mobile Services for Cross Platform Mobile Apps
Azure Mobile Services for Cross Platform Mobile AppsWinWire Technologies Inc
 
Connecting Xamarin Apps with IBM Worklight in Bluemix
Connecting Xamarin Apps with IBM Worklight in BluemixConnecting Xamarin Apps with IBM Worklight in Bluemix
Connecting Xamarin Apps with IBM Worklight in BluemixIBM
 
Building a chat app with windows azure mobile
Building a chat app with windows azure mobileBuilding a chat app with windows azure mobile
Building a chat app with windows azure mobileFlavius-Radu Demian
 
NexGen Software Inc
NexGen Software IncNexGen Software Inc
NexGen Software Incpervinder
 
Faster and more efficient processes by combining BPM and Mobile – yes we can!
Faster and more efficient processes by combining BPM and Mobile – yes we can!Faster and more efficient processes by combining BPM and Mobile – yes we can!
Faster and more efficient processes by combining BPM and Mobile – yes we can!Sebastian Faulhaber
 
VMworld 2013: Cloud Service Automation with NSX and vCloud Automation Center
VMworld 2013: Cloud Service Automation with NSX and vCloud Automation Center VMworld 2013: Cloud Service Automation with NSX and vCloud Automation Center
VMworld 2013: Cloud Service Automation with NSX and vCloud Automation Center VMworld
 
Convertigo Mobility Platform | Mobile Application Development for Enterprises...
Convertigo Mobility Platform | Mobile Application Development for Enterprises...Convertigo Mobility Platform | Mobile Application Development for Enterprises...
Convertigo Mobility Platform | Mobile Application Development for Enterprises...Convertigo | MADP & MBaaS
 
Presentation technical deep dive of horizon 6 and mirage 5
Presentation   technical deep dive of horizon 6 and mirage 5Presentation   technical deep dive of horizon 6 and mirage 5
Presentation technical deep dive of horizon 6 and mirage 5solarisyougood
 
Online bus pass registration
Online bus pass registrationOnline bus pass registration
Online bus pass registrationYesu Raj
 
Fanug - Pragmatic Windows Phone Developer
Fanug - Pragmatic Windows Phone DeveloperFanug - Pragmatic Windows Phone Developer
Fanug - Pragmatic Windows Phone DeveloperSam Basu
 
Architecting Microservices in .Net
Architecting Microservices in .NetArchitecting Microservices in .Net
Architecting Microservices in .NetRichard Banks
 
Microsoft Windows Azure Platform Appfabric for Technical Decision Makers
Microsoft Windows Azure Platform Appfabric for Technical Decision MakersMicrosoft Windows Azure Platform Appfabric for Technical Decision Makers
Microsoft Windows Azure Platform Appfabric for Technical Decision MakersMicrosoft Private Cloud
 
WP7 & Azure
WP7 & AzureWP7 & Azure
WP7 & AzureSam Basu
 
Pervasive Web Application Architecture
Pervasive Web Application ArchitecturePervasive Web Application Architecture
Pervasive Web Application ArchitectureUC San Diego
 
Soa architect summit mobile 2013_mar [compatibility mode]
Soa architect summit mobile 2013_mar [compatibility mode]Soa architect summit mobile 2013_mar [compatibility mode]
Soa architect summit mobile 2013_mar [compatibility mode]Sreeni Pamidala
 
Azure Mobile Services per Windows Phone e smartphones
Azure Mobile Services per Windows Phone e smartphonesAzure Mobile Services per Windows Phone e smartphones
Azure Mobile Services per Windows Phone e smartphonesMarco Parenzan
 

Ähnlich wie Building a mobile application for dot netnuke v3 (20)

Azure Mobile Services for Cross Platform Mobile Apps
Azure Mobile Services for Cross Platform Mobile AppsAzure Mobile Services for Cross Platform Mobile Apps
Azure Mobile Services for Cross Platform Mobile Apps
 
Connecting Xamarin Apps with IBM Worklight in Bluemix
Connecting Xamarin Apps with IBM Worklight in BluemixConnecting Xamarin Apps with IBM Worklight in Bluemix
Connecting Xamarin Apps with IBM Worklight in Bluemix
 
Components of client server application
Components of client server applicationComponents of client server application
Components of client server application
 
Building a chat app with windows azure mobile
Building a chat app with windows azure mobileBuilding a chat app with windows azure mobile
Building a chat app with windows azure mobile
 
NexGen Software Inc
NexGen Software IncNexGen Software Inc
NexGen Software Inc
 
Chapter 6-Remoting
Chapter 6-RemotingChapter 6-Remoting
Chapter 6-Remoting
 
Faster and more efficient processes by combining BPM and Mobile – yes we can!
Faster and more efficient processes by combining BPM and Mobile – yes we can!Faster and more efficient processes by combining BPM and Mobile – yes we can!
Faster and more efficient processes by combining BPM and Mobile – yes we can!
 
VMworld 2013: Cloud Service Automation with NSX and vCloud Automation Center
VMworld 2013: Cloud Service Automation with NSX and vCloud Automation Center VMworld 2013: Cloud Service Automation with NSX and vCloud Automation Center
VMworld 2013: Cloud Service Automation with NSX and vCloud Automation Center
 
Convertigo Mobility Platform | Mobile Application Development for Enterprises...
Convertigo Mobility Platform | Mobile Application Development for Enterprises...Convertigo Mobility Platform | Mobile Application Development for Enterprises...
Convertigo Mobility Platform | Mobile Application Development for Enterprises...
 
Presentation technical deep dive of horizon 6 and mirage 5
Presentation   technical deep dive of horizon 6 and mirage 5Presentation   technical deep dive of horizon 6 and mirage 5
Presentation technical deep dive of horizon 6 and mirage 5
 
Online bus pass registration
Online bus pass registrationOnline bus pass registration
Online bus pass registration
 
Resumeupdated
ResumeupdatedResumeupdated
Resumeupdated
 
Resumeupdated
ResumeupdatedResumeupdated
Resumeupdated
 
Fanug - Pragmatic Windows Phone Developer
Fanug - Pragmatic Windows Phone DeveloperFanug - Pragmatic Windows Phone Developer
Fanug - Pragmatic Windows Phone Developer
 
Architecting Microservices in .Net
Architecting Microservices in .NetArchitecting Microservices in .Net
Architecting Microservices in .Net
 
Microsoft Windows Azure Platform Appfabric for Technical Decision Makers
Microsoft Windows Azure Platform Appfabric for Technical Decision MakersMicrosoft Windows Azure Platform Appfabric for Technical Decision Makers
Microsoft Windows Azure Platform Appfabric for Technical Decision Makers
 
WP7 & Azure
WP7 & AzureWP7 & Azure
WP7 & Azure
 
Pervasive Web Application Architecture
Pervasive Web Application ArchitecturePervasive Web Application Architecture
Pervasive Web Application Architecture
 
Soa architect summit mobile 2013_mar [compatibility mode]
Soa architect summit mobile 2013_mar [compatibility mode]Soa architect summit mobile 2013_mar [compatibility mode]
Soa architect summit mobile 2013_mar [compatibility mode]
 
Azure Mobile Services per Windows Phone e smartphones
Azure Mobile Services per Windows Phone e smartphonesAzure Mobile Services per Windows Phone e smartphones
Azure Mobile Services per Windows Phone e smartphones
 

Building a mobile application for dot netnuke v3

  • 1. Bruce Chapman iFinity Software BUILDING A MOBILE APPLICATION FOR DOTNETNUKE
  • 2. Presentation Agenda  Brief Introduction to Mobile Applications + DotNetNuke  Demonstrate how to build a Mobile Application that uses Service Layer of DotNetNuke to interact – Understanding the Service Layer – Building Service Endpoints  Example Application : “Dnn Dash” – allows access to the Dashboard of any 6.2+ DotNetNuke site – Building Mobile Application
  • 3. Mobile Applications  Purpose built (device specific) Mobile Applications are a superior way to deliver a mobile experience  Html 5 can provide a rich experience, but cannot match purpose built at this point  The theme of Mobile App vs Mobile Site is currently a hot topic of debate
  • 4. Html 5 vs Native Apps Html 5 Native App Conclusion • Write once – run anywhere • App per platform •Choose • Server-side code easily according to require lengthy • May changed requirements release process • Sandboxed, no access to • Full access to device features •Services layer may features – camera, GPS be largely • • In-device discovery + No App Store Presence in either case the same purchase • Speed dependent on connection • Faster + more stable • Direct monetization more • Monetization by app or in- difficult app purchase easy
  • 5. Mobile Applications and DotNetNuke  DotNetNuke 6.2 introduced the Services Layer, which exposes key DNN API features  DNN Services layer is easily extended for module specific purposes  An entire new field of DotNetNuke application development has been created
  • 6. Mobile Application Types  Corporate development : customising apps for in-house use on mobile + tablet platforms  Commercial development : new applications that provider web + mobile experience  Open Source development : providing applications + back end processes
  • 7. A Natural Fit : Mobile + Cloud
  • 8. Building a DotNetNuke Mobile Application
  • 9. Understanding the Service Layer  6.2 – Uses the MVC Service Layer  7.0 – Uses the Web API for the Services Layer  Two aspects to layer: – Built-in DNN API – Extension for Third-party modules  Provides authentication based on DotNetNuke user accounts and profiles  Provides simple pattern to design service endpoints  Flexibility in format (Json/Xml/others)
  • 10. Extending the Service Layer  2 Basic Components to API Extensions 1. Controller  Definition of Methods and layer on top of business logic  Inherits from DnnController 2. RouteMapper  Defines what Urls map to which Controller methods  Inherits from IServiceRouteMapper
  • 11. Example Service Layer Call  Url to call: http://example.com/DesktopModules/DnnDash/API/Dash/Ping
  • 12. Deconstructing Services Layer Url http://example.com/DesktopModules/DnnDash/API/Dash/Ping  http://example.com => domain name  /DesktopModules => fixed part of Url, denotes module Url  /DnnDash => specifies module  /API => fixed, denotes services layer  /Dash => specifies controller [ DashController ]  /Ping => method name [ Public string Ping() ]  NOTE: /DesktopModules/DnnDash doesn‟t necessarily have to exist
  • 13. RouteMapper registers Url Routes  MapRoute configures what Urls will work: – “DnnDash”  /DesktopModules/DnnDash – “{controller}/{action}”  Class/Method  /API/Dash/Ping  DashController.Ping()  No other configuration required
  • 15. Services Authentication  Authentication: – Identifying & Authorising User accounts – Preventing Unauthorised Access – Avoiding opening exploitable holes – Providing „context‟ for current user within service calls  Web-browser based services call use cookie- based authentication (ie AJAX calls)  Mobile devices use digest authentication to provide authentication – Username/password pair provided with each call
  • 16. Services Authentication cont.  Services methods access level can be marked with: – AllowAnonymous – no authentication – RequiresHost – if true, must be SuperUser – StaticRoles – named DotNetNuke roles  All „regular‟ DNN objects are available in context for service calls: – Portal Settings (current portal, alias, settings) – UserInfo (authenticated user)
  • 17. Tips for Writing Services  Use RESTful method / parameter naming principles  Stick to common return format in project (Json/Xml/String – whatever)  Plan for infrequent service calls in Application Design  Be frugal with data going backwards and forwards – this may require custom serializing of objects
  • 18. Installing Services with your Module  A service-only module only has an Assembly  Install with ordinary Module install package  DotNetNuke manifest file used to specify configuration and safe uninstall
  • 19. Writing a Mobile Application  „DnnDash‟ application on Windows Phone  Reads installed DotNetNuke dashboard components for display on mobile devices  Uses DnnDash services layer to send back Xml of dashboard information  Host-level access required to run  DnnDash module/phone app available from dnndash.com
  • 20. Accessing Services from Windows Phone  Uses System.Net.HttpWebRequest – Asynchronous method – Check Http status code to monitor correct authentication (401 returned when not authenticated)  Each call from the device provides user authentication username/password pair  Uses Xml from Service call to create UI
  • 21. DNN Dash Phone App Demo
  • 22. Authenticating Phone User  Username/Password supplied with each call  Defaults to Digest Authentication – Username/password not plaintext
  • 23. Requesting Data from Service  Mobile requests data using Asynchronous Web Request.  Response body is read from Response.GetResponseStream()  Once response is received, conversion to the response format  Example uses both Xml and Json responses
  • 24. Posting Data to a service  Posting is much the same as retrieving data  Post generally means changing server state  Posts should be idempotent  Failure should allow for re-submit without losing client state
  • 25. Considerations for Mobile App Design  Store-posted apps can have lead-times for changes in design  DotNetNuke modules can be changed + patched immediately  Therefore, introduce flexibility into design that is data-driven, side-stepping requirements to re- release mobile clients
  • 26. Conclusions  Mobile Internet usage will soon overtake fixed line, if it hasn‟t already  Hardware sales growth in mobile devices outstrips desktop computing  DotNetNuke provides a perfect bridge between mobile devices and your data, especially if you want to put it in the cloud  Building modules for the services layer is simple and fast  Mobile Apps are the next big thing in DotNetNuke
  • 27. Questions  Dnn Dash application code available from http://dnndashservice.codeplex.com/  Slides available at http://www.slideshare.net/brchapman