Introduction to DotNetNuke
Embed Size (px)
Transcript of Introduction to DotNetNuke
Introduction toDotNetNukeAgus Kurniawan, MVP (C#)firstname.lastname@example.orgSoftware Architect PT. Astra International TbkGroup Leader of .NET Mobile - INDC
AgendaHistoryDotnetNuke overviewMore Features!Core ExtensibilitySkinningModule Development
A Little HistoryDeveloped by Vertigo Software to showcase ASP.NET 1.0VB.Net/C#Dynamic Site Layout using User ControlsPortal Module ImplementationPortal Configuration using Sql ServerRole-Based SecurityGreat Starting Point!
IBUYSPY - ProblemsSupport/Enhancements No longer being worked on!Missing FeaturesMultiple CommunitiesPortal ManagementHierarchical Site Layout (Menu)CustomizationModule Development Graphical ChangesCore Extensibility
The DotNetNuke ProjectStarted by Shaun Walker of Perpetual Motion Interactive Systems Inc. in Jan. 2002 as an extension to IBuySpy, initially called IBuySpy Workshop.Now consists of 30 core team developers.Large community support, ASP.NET forums.Written in VB.NETOpen Source license.10,000 to over 50,000 lines of code
Timeline01/1/2002 - IBS Release12/24/2002 Released on ASP.Net forumsShaun Walker Perpetual Motion (Canada)IBuySpy Workshop3/15/2003 5/15/2003Re-branded as DotNetNuke (1.05 1.08)Private AssembliesIncluded Menu9/1/2003 DNN 1.10 (x)Core team formed world-wideStable release with some security patches
Timeline (cont.)3/23/2004 DNN 2.0Complete Re-Write 1500+ Source Control Transactions/MonthProvider Pattern for Data Access http://msdn.microsoft.com/library/en-us/dnaspnet/html/asp02182004.asp Skinning Engine6/4/2004 DNN 2.1Providers for Scheduler/Logging/RichTextCrucial bug fixes
Timeline (cont.)The FutureMulti-Lingual (2.2)Friendly Urls (2.2)Search (2.?)Client API (2.?)www.dotnetnuke.com (roadmap)
Completing the Portal ImplementationMultiple Portals per InstallationExtended Basic FeaturesUser Membership, Role Membership, Content AuthoringImplement Advanced FeaturesSearch Engine Optimization, Banner Advertising, Affiliate Relationship Management, and Hosting
Portal Architecture1 Installation (1DB/Web)Hostlenders.yourcompany.comdealers.yourcompany.combuyers.yourcompany.com
Provider Patterna provider is simply a contract between an API and the Business Logic/Data Abstraction Layer.Whidbey Pattern for ExtensibilityBuild new core features using this Pattern!Modules built using this pattern as well!
Portal Architecture for Data AccessAbstract Base ClassConfigAccessDataProviderSqlDataProviderOracleDataProvider
Provider Pattern EverywhereData ProviderRich Text ProviderLogging ProviderScheduler ProviderAuthentication (Soon?)Everywhere customization *may* occur!
The Skinning Process
SetupDesign HTML in any editorNote: Normal Design as you would design any website
ReplaceMark sections to inject module (ContentPane, LeftPane)Mark dynamic functionality based on Skin Objects ([Title], [Menu], [Login])You can write your own Skin Objects!
PackPack up all files into a Zip
SetupInstall through File Manager as Skin PackageNote: You can apply at Host, Portal, Page
Further NotesYou can write your own Skin Objects (e.g. replacement menus)Container Packages are the content around a ModuleYou can write Skins as ASCX to skip conversion Process
More InformationSkinning Guide (/Documentation)Skinning Contest (http://www.dotnetnuke.com/contest )Skin Object Example (/DesktopModules/PageTitle/)Free/Buy Skins (http://www.dnnskins.com, http://www.xd.com.au, http://www.snowcovered.com )
What are Modules?Written in .NET code, C#, VB.NETPromotes code reuse.Allows you to extend DotNetNuke.Customizable (using the module container)Compiled assemblies.
Development ProcessSetupInitial Project Creation in Visual Studio(Developer)
SetupCreate a new Class Project (/DesktopModules)Compilation Path (../../bin/)Name Project Appropriately (CompanyName.Module)Reference DotNetNuke Project
DevelopAdd User Controls to ProjectUser Controls must Implement PortalModuleControlDevelop as Normal Register Controls through Portal for Debugging
PackWrite Xml Manifest File (Skin.Xml)Package into Zip FileDistribute
DeployInstall to your portal through File ManagerAdd to any page (Module will appear in list now)
More InformationModule Developers Guide (/Documentation)www.solpart.com (Menu Updates, Menu Module, and Skins)www.smcculloch.net (Sample Modules/CodeSmith Templates)www.dotnetnuke.dk (Tutorials/Dev Environment)www.dnnjungle.com (Tutorials/VS.NET Enterprise Templates)www.webhost4life.com / www.pureportals.com(DotNetNuke hosting / Free DotNetNuke Portals)
ConclusionOpen Source Application with Strong Development CommunityExtensible through Provider PatternCustomizable through Skinning & ModulesOff the Shelf Portal Application at the right price!
www.DotNetNuke.comSpecial Thanks to: Scott McCullochDotNetNuke Core Teamwww.smcculloch.net email@example.com Jon HenningDotNetNuke Core Team www.solpart.com firstname.lastname@example.org
Maybe architecture diagram?Solution to the Dead-End* provides an "off-the-shelf" portal software product which contains all of the key features required to operate a functional portal website. consists of a mature core portal framework that provides a solid foundation of building block services that developers can leverage to create a robust web application.
Talk about History SportsManager Version 1 to Version 2
Maybe Demo of new Modules, Site Management, EtcFirst Step was to complete IBuySpyFocus on re-architecting the solution removed IBS architecture
Rainbow built more and more features in Core, DNN looked towards extensibilityDemo?Demo?