DotNetNuke Extension Development Best Practices Mitchel Sellers Microsoft C# MVP, MCITP.

Slides:



Advertisements
Similar presentations
Patrick J. Santry Microsoft ASP.NET MVP wwwCoder.com.
Advertisements

Mitchel Sellers, CEO IowaComputerGurus Inc.. Active in the DotNetNuke eco system for about 6 years Author of Professional DotNetNuke Module Programming.
Business Development Suit Presented by Thomas Mathews.
Jason Kergosien President A Primer Presented by Fort Worth Web Designers.
Mitchel Sellers, CEO IowaComputerGurus Inc..  Active in the DotNetNuke eco system for about 3 years  Active in the.NET world since inception  Author.
Randy Williams, MOSS MVP Senior Consultant Synergy Corporate Technologies.
ECM RFP 101 Presented by: Carol Mitchell C.M. Mitchell Consulting.
Mitchel Sellers, CEO IowaComputerGurus Inc..  Active in the DotNetNuke eco system for about 3 years  Author of Professional DotNetNuke Module Programming.
Objective Understand web-based digital media production methods, software, and hardware. Course Weight : 10%
Microsoft Patterns and Practices SharePoint Guidance Robert L. Bogue MS MVP, MCSE, MCSA: Security
Leveraging Enterprise Library in Your Applications Keith Elder Quicken Loans Manager, Sr. Software Engineer Microsoft MVP Keith a t keithelder dot net.
Microsoft SharePoint 2013 SharePoint 2013 as a Developer Platform
Chapter 7 Managing Data Sources. ASP.NET 2.0, Third Edition2.
Localization Roadmap Content Localization in DNN neXt Sebastian Leupold.
Developing an ASP.NET Application and using the Mobile Internet Toolkit Bart Vande Ghinste Developer Consultant Microsoft Belux.
Presented by…. Group 2 1. Programming language 2Introduction.
Windows.Net Programming Series Preview. Course Schedule CourseDate Microsoft.Net Fundamentals 01/13/2014 Microsoft Windows/Web Fundamentals 01/20/2014.
CMS Confusion….You only need one ! November 2012 Chris Schofield
DYNAMICS CRM AS AN xRM DEVELOPMENT PLATFORM Jim Novak Solution Architect Celedon Partners, LLC
Discovering 10232A – Designing and Developing Microsoft SharePoint Server 2010 Applications Robert Bogue.
Governing your users with the new SharePoint 2010 UI.
A Close Look Inside the SharePoint Engine Randy Williams, MVP MOSS Synergy Corporate Technologies
DNN Performance & Scalability Planning, Evaluating & Improving : Part 2.
DEV334 Creating Application Starting Points & Sharing Best Practices with Enterprise Templates Marc Gusmano Director of Emerging Technologies The Information.
DotNetNuke v4 on ASP.NET v2 Stan Schultes Stan Schultes Enterprise architect / application developer Enterprise architect / application developer Conference.
Database Design for DNN Developers Sebastian Leupold.
Introduction to DotNetNuke Scott McCulloch DotNetNuke Core Team
DNN Performance & Scalability Planning, Evaluating & Improving : Part 1.
DotNetNuke Portal Private Assembly Development Stan Schultes Stan Schultes Enterprise architect / application developer Enterprise architect / application.
V0.1 BlackBerry HTML5/WebWorks Applications for the BlackBerry ® PlayBook™ Tablet BlackBerry Academic Program Module 5 - Writing HTML5/WebWorks API Extensions.
Basic Developer Knowledge That Every SharePoint Admin Must Have Randy Williams, MVP MOSS Synergy Corporate Technologies
Microsoft SharePoint Server 2010 for the Microsoft ASP.NET Developer Yaroslav Pentsarskyy
DotNetNuke v3 Overview Stan Schultes Stan Schultes Enterprise architect / application developer Enterprise architect / application developer Conference.
Dudok de Wit David.  Documents management in a deskless company  SharePoint Online as a solution  Redesigning the documentary organization  Interoperability.
DAY 14: MICROSOFT ACCESS – CHAPTER 1 Madhuri Siddula October 1, 2015.
GOAL User Interactive Web Interface Update Pages by Club Officers Two Level of Authentication.
T8. Open Source Tools That are Changing the Content Technology Landscape Gilbane San Francisco 2010.
Presented by Vishy Grandhi.  Architecture (Week 1) ◦ Development Environments ◦ Model driven architecture ◦ Licensing and configuration  AOT (Week 2)
Plug-in Architectures Presented by Truc Nguyen. What’s a plug-in? “a type of program that tightly integrates with a larger application to add a special.
1 Object-Oriented Analysis and Design with the Unified Process Figure 13-1 Implementation discipline activities.
Vista Sidebar Gadgets Steve Marx Technical Evangelist Microsoft Corporation.
Mr. Justin “JET” Turner CSCI 3000 – Fall 2015 CRN Section A – TR 9:30-10:45 CRN – Section B – TR 5:30-6:45.
Writing Better C# Using C# 6 By: Mitchel Sellers.
Understanding Web-Based Digital Media Production Methods, Software, and Hardware Objective
DotNetNuke® Web Application Framework Michael Washington Socaldug.org – Buena Park, CA
Introduction to Core Database Concepts Getting started with Databases and Structure Query Language (SQL)
Introduction to ASP.NET development. Background ASP released in 1996 ASP supported for a minimum 10 years from Windows 8 release ASP.Net 1.0 released.
Diagnosing Problems DAD5 © Copyright 2011 Mitchel Sellers – May Not Be Reused without Permission.
Custom Authentication Providers For DotNetNuke v5.0 Stan Schultes – Sarasota, FL Florida Community Leader
Basics Components of Web Design & Development Basics, Components, Design and Development.
Thinking of Drupal 8? Get started with the resources.
DotNetNuke v4 on ASP.NET v2 Stan Schultes Stan Schultes Enterprise architect / application developer Enterprise architect / application developer Conference.
Microsoft Training and Certification Guide
Introduction The concept of a web framework originates from the basic idea that every web application obtains its foundations from a similar set of guidelines.
DotNetNuke Portal – Custom Module Development
DotNetNuke v4 Web Portals
Building Custom Modules
DotNetNuke v4 Overview Stan Schultes
DotNetNuke® Web Application Framework
Building Custom Modules
Jon Galloway | Tech Evangelist Christopher Harrison | Head Geek
Advanced Module Development
Should I Transition to .NET Core? Will it hurt?
A Quick Overview of ASP.NET Core 1.0
Lecture 1: Multi-tier Architecture Overview
Objective Understand web-based digital media production methods, software, and hardware. Course Weight : 10%
AMGA Web Interface Vincenzo Milazzo
2010 Microsoft BI Conference
TN19-TCI: Integration and API management using TIBCO Cloud™ Integration
Presentation transcript:

DotNetNuke Extension Development Best Practices Mitchel Sellers Microsoft C# MVP, MCITP

About Mitchel  DotNetNuke Core Team Member  Microsoft C# MVP  Microsoft Certified Professiona  CEO of IowaComputerGurus  Blog:  Modules:

Agenda  Source of Recommendations  Module Architecture/Packaging  Being a Good DNN Citizen o Basics o Controls o Entities o Interfaces o User Interface  Security & Data Isolation

Source of Recommendations  No Existing All Encompassing Best Practice Guide  DNN “Secure Module” guide o Covers mostly standard.NET guidance o Not specific enough, or current  ICG DNN Module Best Practices Guide o Proven practices used in our business o Based on concept of “playing well”

Module Architecture  Web Application Project (WAP) o Compiled Module o Non-Source  Module Folder Naming o Consistency o /DesktopModules is shared o /CompanyName/ModuleName  Manifest Naming

Module Packaging  Package for Minimum Supported DNN Version  Ensure.dnn file Limits Versions o 4.x Use [MatchRegex] o 5.x Use  Ensure Package Names Unique to Business  Ensure to register any dependencies o DNN 5.x class name, or package name o DNN 4.x class name

Being a Good DNN Citizen  Support {objectQualifier} and {databaseOwner}  Support localization of all static text elements  Use NVARCHAR for all database columns for international character support  Avoid modifying the web.config if possible

Good DNN Citizen (Controls)  Utilize common DNN Elements o LabelControl.ascx o TextEditor.ascx o UrlControl.ascx o SectionHead.ascx o DotNetNuke Web Controls Assembly (Pager, Profile Editor, etc.)  Provide a consistent, familiar process, improves usability

DNN Controls Examples

Good DNN Citizen (Entities)  Utilize DNN API Entities for Data Manipulation o DotNetNuke.Entities.Portals o DotNetNuke.Entities.Tabs o DotNetNuke.Entities.Users o DotNetNuke.Entities.Modules o DotNetNuke.Security.Roles  Reduces exposure to risks with DNN upgrades and breaking DB changes

Good DNN Citizen (Interfaces)  Implement Consistent Interfaces for Interaction o IPortable – Import/Export o ISearchable – Core Search Integration o IActionable – Module Actions o IUpgradable – Upgrading Modules  Not always the 100% solution o IPortable designed for module content only, but can be “modified”

Good Citizen (UI)  Ensure all ASP.NET Validators Have Validation Group  Use standard DotNetNuke CSS Classes o Normal – Regular Text o NormalRed – Error Text o SubHead – Labels o Head – Section heading

Security and Data Isolation  Properly Tie Data o PortalId, ModuleId, TabModuleId? Which one o Auto-Cleanup?  DotNetNuke PortalSecurity Object o Input Filter (FilterFlag.NoScripting, FilterFlag.NoMarkup) objSecurity.InputFilter(“TextToFilter”, FilterFlag.NoMarkup)  Respect Host File Types o This.PortalSettings.HostSettings("FileExtensions")

Resources/Contact   Blog:  Company:  ICG DNN Dev Best Practices:  DotNetNuke Securing Modules: