Contenu connexe Similaire à Dnn as a SaaS Platform (20) Dnn as a SaaS Platform1. #DNNConnect2019
DNN as a SaaS Platform
Lets strip down to the bare-bones
Mandeep Singh
www.mandeeps.com | mandeeps@me.com
1-844-Mandeeps | 1-855-DotNetNuke
3. #DNNConnect2019
Why use DNN as a SaaS Platform?
• Extremely capable web application framework
• Extensible
• Theming Engine
• Security
• Authentication & Authorization
• Caching
• URL Rewriting & SEO
• Web API
• Multi-Tenant
• Single Codebase, Multiple Sites
4. #DNNConnect2019
Shortcomings
• Database Isolation
• Cannot isolate multi-tenant data across multiple databases
• Bloated & Tightly Coupled
• Performance == Feature
• Designer Nightmare
• Resource Intensive == $$
• Single Codebase & Security
• Scheduler
5. #DNNConnect2019
Blank Page in Stock DNN 9.3.2
• Performance Implications (Unauthenticated)
• 15 (1.1MB) JavaScript Requests
• 7 (263KB) StyleSheet Requests
• Performance Implications (Authenticated)
• 64 (4.4MB) JavaScript Requests
• 22 (342KB) StyleSheet Requests
• Performance w/CRM & Minification (Unauthenticated)
• 5 (724KB) JavaScript Requests
• 1 (220KB) StyleSheet Request
• Performance w/CRM & Minification (Authenticated)
• 35 (3.8MB) JavaScript Requests
• 8 (295KB) StyleSheet Request
6. #DNNConnect2019
Blank Page in Stock DNN 9.3.2
• Frontend Development Nightmare
• Need to override, learn, investigate, and troubleshoot across 86 different
resources
• DNN Theme & Control Panel is Pivotal
8. #DNNConnect2019
Barebone Install - DNN 9.3.2
• Clean Theme w/Single Stylesheet
• Remove All Stylesheets by deleting them
See: https://www.dnnsoftware.com/wiki/dotnetnuke-stylesheets-explained
• Remove Copyright
• UPDATE HostSettings SET SettingValue = 'N' WHERE SettingName = 'Copyright’
• Remove PopUps (jQuery / jQuery UI / Migrate)
• UPDATE PortalSettings SET SettingValue='False' WHERE SettingName =
'EnablePopUps’
• Disable Scheduler
• UPDATE HostSettings Set SettingValue=‘0’ WHERE SettingName =
‘SchedulerMode’
9. #DNNConnect2019
Barebone Install - DNN 9.3.2
• Clean Control Panel
• Inherit ControlPanelBase
• Change Control Panel
• UPDATE HostSettings
SET SettingValue='DesktopModules/admin/Dnn.PersonaBar/UserControls/PersonaBarContainer.ascx’
WHERE SettingName='ControlPanel'
10. #DNNConnect2019
Tightly Coupled / Bloated
• dnnCore.js
• Injected by PageBase
• dnn.DragDrop.js (jQuery & other dependencies)
• Injected by Skin
• Remove w/Custom Code
• Preferably in Theme.ascx