Building Custom Modules

Slides:



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

Designing, Deploying and Managing Workflow in SharePoint Sites Steve Heaney Product Development Manager OBS
DEV392: Extending SharePoint Products And Technologies Through Web Parts And ASP.NET Clint Covington, Program Manager Data And Developer Services - Office.
Web Development in Microsoft Visual Studio Slide 2 Lecture Overview Introduce Visual Studio 2013 Create a first ASP.NET application.
Microsoft SharePoint 2013 SharePoint 2013 as a Developer Platform
DEV450 Visual Studio: Best Practices For Debugging Managed Applications Habib Heydarian Scott Nonnenberg Program Managers Microsoft Corporation.
VMware vCenter Server Module 4.
Winter Consolidated Server Deployment Guide for Hosted Messaging and Collaboration version 3.5 Philippe Maurent Principal Consultant Microsoft.
Enterprise Reporting with Reporting Services SQL Server 2005 Donald Farmer Group Program Manager Microsoft Corporation.
WSS 3.0 Architecture and Enhancements Ashvini Shahane Member – Synergetics Research Lab.
WEB329 ASP.NET: A Lap Around the New Enhancements for Web Developers in Microsoft Visual Studio 2005 Omar Khan Lead Program Manager Web Platform and Tools.

DotNetNuke v4 on ASP.NET v2 Stan Schultes Stan Schultes Enterprise architect / application developer Enterprise architect / application developer Conference.
Introduction to DotNetNuke Scott McCulloch DotNetNuke Core Team
DotNetNuke Portal Private Assembly Development Stan Schultes Stan Schultes Enterprise architect / application developer Enterprise architect / application.
Web Programming: Client/Server Applications Server sends the web pages to the client. –built into Visual Studio for development purposes Client displays.
Slide 2 The Microsoft Office Project 2003 Software Development Kit Jim Corbin Programmer Writer Office Developer Documentation Microsoft Corporation Uma.
DEV325 Deploying Visual Studio.NET Applications Billy Hollis Author / Consultant.
DotNetNuke v3 Overview Stan Schultes Stan Schultes Enterprise architect / application developer Enterprise architect / application developer Conference.
DEV339 Best Practices for Debugging Visual Studio.NET Applications Keith Pleas Architect, Guided Design
Slide 1.NET Development for Project 2003 Samples from the Project 2003 SDK Jim Corbin Programmer Writer Office Developer Documentation Microsoft Corporation.
What’s new in Kentico CMS 5.0 Michal Neuwirth Product Manager Kentico Software.
Page 1 © 2001, Epicentric - All Rights Reserved Epicentric Modular Web Services Alan Kropp Web Services Architect WSRP Technical Committee – March 18,
Name Microsoft Student Partner Overview of the Visual Studio 2005 Express Products.
Module 2: Using Microsoft Visual Studio.NET. Overview Overview of Visual Studio.NET Creating an ASP.NET Web Application Project.
VITALE, CATURANO & COMPANY LTD Microsoft SharePoint Web Part Development Overview VITALE, CATURANO & COMPANY LTD SharePoint Developer Series – Web Part.
DEV303 ASP.NET: Leveraging Visual Studio.NET For Web Projects Tony Goodhew Product Manager Microsoft Corp.
Michael Hofer Senior Consultant Microsoft Corporation.
Nik Kalyani Co-founder DotNetNuke Corporation WUX312.
Web Access. Overview  Purpose  Prerequisites  Install Components  Enable Virtual Directories  IIS Configuration & Security  Troubleshooting.
Connect with life Vedant Kulshreshtha Technology Solutions Professional – SharePoint | Microsoft India
DotNetNuke Extension Development Best Practices Mitchel Sellers Microsoft C# MVP, MCITP.
Workflow in Microsoft Office SharePoint Server Jessica Gruber Consultant Microsoft Corporation.
DotNetNuke Portal Management Stan Schultes Stan Schultes Enterprise architect / application developer Enterprise architect / application developer Conference.
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.
DotNetNuke v4 Overview Stan Schultes Stan Schultes Enterprise architect / application developer Enterprise architect / application developer Conference.
Custom Authentication Providers For DotNetNuke v5.0 Stan Schultes – Sarasota, FL Florida Community Leader
DotNetNuke v4 – Intro to In Depth Tool Shed & Tackle Box.
THE NEW MOBILE WORKSPACE Enable Business Applications on Mobile Devices hopTo Work “I am amazed to see how easily hopTo transforms the user interface of.
ASP.NET 2.0 Mohammed Abdelhadi Developer.NET Evangelist Microsoft Corporation.
DotNetNuke v4 on ASP.NET v2 Stan Schultes Stan Schultes Enterprise architect / application developer Enterprise architect / application developer Conference.
SharePoint 101 – An Overview of SharePoint 2010, 2013 and Office 365
How to be a SharePoint Developer
DotNetNuke Portal – Custom Module Development
Internet Made Easy! Make sure all your information is always up to date and instantly available to all your clients.
Demand Management and Workflow
INF230 Basics in C# Programming
Cms Full-featured Flexible Web Content Management System for All Your Needs.
DotNetNuke v4 Web Portals
DotNetNuke v4 Overview Stan Schultes
Introduction to ASP.NET 2.0
Developing GIS WebParts in SharePoint
DotNetNuke® Web Application Framework
Building Custom Modules
Jon Galloway | Tech Evangelist Christopher Harrison | Head Geek
Advanced Module Development
Microsoft Dynamics.
Module 1: Getting Started
Principles of report writing
Web Development in Microsoft Visual Studio 2013
ASP.NET Module Subtitle.
What's New in Visual Studio 2005
Visual Studio 2010 SharePoint Development Tools Overview
AIMS Equipment & Automation monitoring solution
Share What You Have Learned EP Session
TechEd /23/2019 9:23 AM © 2013 Microsoft Corporation. All rights reserved. Microsoft, Windows, and other product names are or may be registered trademarks.
Windows Forms in Visual Studio 2005: An in-depth look at key features
Introduction to ASP.NET Parts 1 & 2
Mark Quirk Head of Technology Developer & Platform Group
MS Confidential : SharePoint 2010 Developer Workshop (Beta1)
Presentation transcript:

Building Custom Modules For DotNetNuke v5.0 Stan Schultes – Sarasota, FL Florida Community Leader http://www.vbnetexpert.com stan@vbnetexpert.com Book due March 2009 (Wrox): Professional DotNetNuke 5: Open Source Web Application Framework for ASP.NET This talk will begin with a quick technical overview of DotNetNuke, and a discussion of why you might build a custom DNN module. Demos will include how to install the DNN portal on a development machine, and how to install a custom module into the portal. Then we'll dive into setting up Visual Studio 2008 for module development and demonstrate how to install a module source package and run it in design mode. Finally, we'll walk through the process of developing a custom module using the sample module to provide details, and we'll see some development tips & tricks along the way. This is a 300-level session - some experience with DotNetNuke will be assumed. © 2005 Stan Schultes and VBNetExpert.com. All rights reserved. This presentation is for informational purposes only - no warranties, express or implied, are included in this summary.

Audience Experience Who is using DNN in production today? Who has seen DNN v5? Used it? Who has done DNN module development? © 2005 Stan Schultes and VBNetExpert.com. All rights reserved. This presentation is for informational purposes only - no warranties, express or implied, are included in this summary.

Agenda Level 300 DNN Technical Overview Why Custom Module Development? Visual Studio Environment Setup, Design Mode DNN Architecture, Development Overview Custom Module Project Setup Create Database Objects Build Data and Business Objects Layer Create User Controls Package Modules for Deployment Module Development Concepts Developing & Debug, Tips & Tricks, More Info Level 300

DNN Technical Overview DotNetNuke is a “Live CMS” Modular, extensible, framework application Dynamically loaded user controls Provider model allows pluggable services Module loader mechanism allows easy extensibility Major Components: Portals = web sites (unique URLs) Pages = portal organizational units Modules = information containers Online configuration & content mgmt by role Many portals per DNN install Framework app –a dynamically generated application with a provider structure for plumbing (data access, membership, scheduler, logging, exceptions, etc.) Modular construction – modules plug in easily through an install/uninstall interface. You can deploy your portals with whatever modular options you want. Portals: Parent Portals are sites which have a unique URL ( ie. www.domain.com ) associated to them. Child Portals are subhosts of your Hosting Provider account. Essentially this means a directory is created on the web server which allows the site to be accessed through a URL address which includes a Parent domain name as well as the directory name ( ie. www.domain.com/directory ). Provider model: data access, membership, html editor, search, scheduling, logging, friendly urls

Why Custom Module Development? Adding functionality to DNN: Install Custom Modules Build Custom Modules Change Providers Modify the DNN Core Custom Modules are pluggable extensions to core DNN functionality Easily modify existing modules as a starting point Key concept: Reuse core code without changing it DNN is an application development platform Tons of pluggable, flexible infrastructure is provided DNN Providers: data, membership, search, friendly URLs, HTML editor, logging, exceptions, scheduling… © 2005 Stan Schultes and VBNetExpert.com. All rights reserved. This presentation is for informational purposes only - no warranties, express or implied, are included in this summary.

Visual Studio Environment Setup DNN v5 developer prerequisites: Vista, Server 2003/2008, Windows XP Visual Studio 2008/2005, .NET FW v2.0-3.5 SQL Server 2005/2008 (Express or Dev) IIS, SMTP Install DNN Starter Kit (for project templates) Configure DNN (use Install Package) and test Consider portal tags: objectQualifier, databaseOwner © 2005 Stan Schultes and VBNetExpert.com. All rights reserved. This presentation is for informational purposes only - no warranties, express or implied, are included in this summary.

DNN v5 in Design Mode Install module source package Edit project file for URL Open solution and check references Create new module project Project templates from Starter Kit Run database scripts & test Add module definitions & test Host  Module Definitions Run in Design mode: Set project to Debug mode Site web.config: <compilation debug=true> Tools  Attach to Process (ASP.NET worker process)

Demo Visual Studio 2008 in Design Mode All standard modules are now separate projects Custom Module: WROX.Suggestion

DotNetNuke Architecture Image from DotNetNuke Module Development Document

Module Development Overview Custom Modules consist of: Module container (provided by DNN) Dynamically loaded user controls (.ascx) Data layer components Development process: Project setup Build the data & business logic layers Create the user controls Package for installation Deployment Develop modules in any .NET language

Create Database Objects Tables and Stored Procedures Create tables manually Use an unique object prefix: WROX_Suggestion Generate SPs with code gen tools Test all SPs as you create them Fields typically included in database: ModuleID, ItemID, CreatedBy, CreatedDate Create DB scripts for quick drop/add during dev Build scripts for sample data Resources: Data Access & Module Dev guides CodeGen: CodeSmith, any O/R mapper © 2005 Stan Schultes and VBNetExpert.com. All rights reserved. This presentation is for informational purposes only - no warranties, express or implied, are included in this summary.

Build Data and Business Logic Layer Easiest starting point – rename existing module Project templates in Starter Kit CodeSmith templates (these are for DNN v3) Create the SPs, data classes, business objects Do other templates exist? Templates provide a jumpstart Add your UI, business logic, and other functionality Interfaces: IPortable, ISearchable, IHydratable IUpgradeable, IModuleControl, ISkinControl Resources: Data Access & Module Dev guides CodeSmith project setups: Project: CodeSmithDemo in DesktopModules folder Project: CodeSmithDemo in Desktopmodules\CodeSmithDemo\Providers\DataProviders (create last directory) After adding SqlDataProvider project, delete the DAAB reference and re-add Show generated code Tools  CodeSmith Explorer Run Stored Procedures template Use company object qualifier throughout Mutisource table connection string: Server=(local);Database=CMDev;Integrated Security=true; Run other templates and paste in code © 2005 Stan Schultes and VBNetExpert.com. All rights reserved. This presentation is for informational purposes only - no warranties, express or implied, are included in this summary.

Create User Controls Module Definitions – tables affected DesktopModules – module name & description ModuleDefinitions – multiple definitions possible ModuleControls – user controls by control key User Controls inherit from PortalModuleBase Typical controls: View, Edit, Settings IActionable – implement to create menu items EditURL, NavigateURL methods Localization and Styling Reusable DNN core controls Url, Url Tracking, Address, Dual List, Label, User, etc. Existing .aspx pages can be converted to .ascx

Package Modules for Deployment Traditional deployment unit is a zipfile including .dnn manifest file – name & location of all contained files with directory structure Required .ascx’s and .dll’s Resource files such as images Source code New Package Installer – ‘Extensions’ Module, container, skin, provider, language, etc. Compatible with old deployment zipfile Host  Module Definitions: edit a module Link at bottom: Create Package Creates zipfile in Host directory (\Portals\_default) © 2005 Stan Schultes and VBNetExpert.com. All rights reserved. This presentation is for informational purposes only - no warranties, express or implied, are included in this summary.

Demo Look at custom module: WROX.Suggestion Deployment package Jumpstart – creating a new module

Custom Module Project Setup Requires the DNN Starter Kit to be installed Create new project  Web  DNN Compiled Module Yes at the localhost\DotNetNuke_2 directory dialog Update Project Properties  Web  Urls Create Providers\DataProviders directory Add new project  Windows  Class Library Name it SqlDataProvider in DataProviders directory Manually move SqlDataProvider.vb from Components Rename projects Company.Modules.CustomModule Company.Modules.CustomModule.SqlDatProvider Reference DotNetNuke and MS DAAB Resources: Starter Kit documentation

Module Development Concepts Namespaces Portal data structures and methods Module settings – instance data cached in IIS Page navigation – EditURL, NavigateURL Users, Roles and Security Reusable core controls Localization – create resources for all strings Client API / AJAX / jQuery Exceptions and logging Inter-module communication

Developing and Debugging Debugging your module: attach to process w3wp.exe in Vista/Servers, aspnet_wp.exe in XP set a breakpoint in Page_Load Common troubleshooting Exception log: Admin  Event Viewer Read the error messages carefully Code flow through the portal core HTTPHandlers – Global.asax – Default.aspx – LoadSkin – InjectModule – module Page_Load © 2005 Stan Schultes and VBNetExpert.com. All rights reserved. This presentation is for informational purposes only - no warranties, express or implied, are included in this summary.

Tips & Tricks Be familiar with the standard modules Look for examples of calling core functions Start here rather than working from scratch Code generation tools can save a lot of time ObjectBrowser is your friend! Goal: modify DNN core only for critical bug fixes Switch providers to change core functions Useful documents: Module Dev Guide, Data Access, Localization, Membership, Skinning

More Information DotNetNuke home: http://www.dotnetnuke.com DNN forums Resources directory Gemini bug tracking DNN Documents Resource sites: http://www.adefwebserver.com/DotNetNukeHELP/ http://www.dnncreative.com http://www.dnn.com.au Search – there’s a lot of information out there

Contact Website: www.VBNetExpert.com Slide deck is available (DotNetNuke  Downloads) Email: stan@vbnetexpert.com Blog: StanSchultes.spaces.live.com