DEV306 ASP.NET Portal Starter Kit Under The Hood Gunther Beersaerts Technical Specialist Microsoft Corporation.

Slides:



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

Power BI Sites and Mobile BI. What You Will Learn Sharing and Collaboration Introducing Power BI Exploring Power BI Features and Services Partner Opportunities.
DEV392: Extending SharePoint Products And Technologies Through Web Parts And ASP.NET Clint Covington, Program Manager Data And Developer Services - Office.
Microsoft ASP.NET Security Venkat Chilakala Support Professional Microsoft Corporation.
ASP.NET 2.0 Chapter 6 Securing the ASP.NET Application.
OFC324 Microsoft Project Server: Putting Enterprise Project Management (EPM) To Work Sam Brooks
Feeds Computer Applications to Medicine NSF REU at University of Virginia July 27, 2006 Paul Lee.
Microsoft ® ASP.NET: Designing and Developing a Line-of-Business Web Application.
Punit Shah Technical Lead | Microsoft
DAT304 Leveraging XML and HTTP with Sql Server Irwin Dolobowsky Program Manager Webdata Group.
ASP.NET: Designing and Developing a Line-of-Business Web Application Ammar Abuthuraya Developer & Platform Lead Microsoft ® Corporation.
WSS 3.0 Architecture and Enhancements Ashvini Shahane Member – Synergetics Research Lab.
DBA230 Introducing SQL Server 2000 Reporting Services Jason Carlson Product Unit Manager SQL Server Microsoft Corporation.
DEV317 Integrating Extensible Business Graphics into Enterprise Applications using Visio 2003 Mai-lan Tomsen Bukovec Program Manager.
OFC 322 Building Office Research Web Services: Exposing Corporate Data Through Office Brian Jones Program Manager Authoring Services Martin Sawicki Lead.
A Close Look Inside the SharePoint Engine Randy Williams, MVP MOSS Synergy Corporate Technologies
Session 11: Security with ASP.NET
An Introduction to ASP.NET Ed Dunhill blogs.msdn.com/edunhill SLIDE7.
DotNetNuke Portal Private Assembly Development Stan Schultes Stan Schultes Enterprise architect / application developer Enterprise architect / application.
© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/3 Securing a Microsoft ASP.NET Web Application.
DEV402 Extending the ASP.NET Runtime Jurgen Postelmans Microsoft Regional Director BeLux U2U.
DAT305 Boost Your Data-Driven Application Development Using SQL Server Centric.NET Code Generator Pascal Belaud Microsoft France.
Exploiting New Capabilities for Search And Organization Kerem Karatal DAT307 Lead Program Manager Microsoft Corporation.
OFC 303 Advanced Word XML: Customer-Defined Schemas Brian Jones Program Manager Authoring Services.
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.
Microsoft SharePoint Server 2010 for the Microsoft ASP.NET Developer Yaroslav Pentsarskyy
OFC290 Information Rights Management in Microsoft Office 2003 Lauren Antonoff Group Program Manager.
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.
The.NET Runtime and IIS Presented by Chris Dickey – cdickey.net consulting
Module 11: Securing a Microsoft ASP.NET Web Application.
Slide 1 ASP Authentication There are basically three authentication modes Windows Passport Forms There are others through WCF You choose an authentication.
Module 7: Creating a Microsoft ASP.NET Web Application.
Name Microsoft Student Partner Overview of the Visual Studio 2005 Express Products.
MBL206 A First Look at the Microsoft Location Server (MLS) Steve Lombardi Technical Product Manager MapPoint Business Unit Microsoft Corporation.
EBZ 321 Extending CMS 2002 Publishing Processes Scott Fynn Microsoft Consulting Services National Practices.
DEV303 ASP.NET: Leveraging Visual Studio.NET For Web Projects Tony Goodhew Product Manager Microsoft Corp.
DAT 332 SQL Server 2000 Data Transformation Services (DTS) Best Practices Euan Garden Product Unit Manager SQL Server Development Microsoft Corporation.
DEV330 Visual Studio.NET IDE Tips and Tricks Billy Hollis Author / consultant.
SVR330 Introduction to The Microsoft Office Project 2003 Software Development Kit (SDK) Bob Walker IW Product Technical Specialist - EPM EPG Microsoft.
MSG331 Exchange Server 2000/2003 Software Development Kit Susan Hill Lead Programmer Writer Microsoft Corporation.
Web Content Management with MOSS 2007 Patrick Tisseghem
DAT300 SQL Server Notification Services: Application Development Ken Henderson Technical Lead, SQL Server Support Microsoft Corporation
MBL 305 ASP.NET Mobile Controls: Best Practices Gökşin Bakir CSA Yage Ltd. Microsoft Regional Director.
DEV395 No Touch Deployment for Windows Forms Jamie Cool Program Manager.NET Client Microsoft Corporation.
DBA331 Managing a Microsoft SQL Server 2000 Reporting Services Implementation Brian Welcker Group Program Manager SQL Server Microsoft Corporation.
Windows Forms in Visual Studio 2005: An in-depth look at key features Name: Joe Stegman Title: Lead Program Manager Session code.
EBIZ302 Jupiter Business Process Automation and Web Services David Fong Program Manager.
DEV332 Programming for the Middle Tier in Visual Basic.NET Billy Hollis Author / Consultant.
OFC311 Developing Microsoft Office InfoPath 2003 Solutions: Technical Drilldown Part 1 Tudor Toma Group Program Manager Office Microsoft Corporation.
Ken Casada Developer Evangelist Microsoft Switzerland Visual Studio LightSwitch.
Introduction to SQL Server 2000 Reporting Services Jeff Dumas Technical Specialist Microsoft Corporation
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.
Developing Custom ASP.NET Providers For Membership And Role Manager Stefan Schackow PRS404 Program Manager – Web Platform and Tools Microsoft Corporation.
Custom Authentication Providers For DotNetNuke v5.0 Stan Schultes – Sarasota, FL Florida Community Leader
1 Copyright © 2008, Oracle. All rights reserved. Repository Basics.
© 2004 by The McGraw-Hill Companies, Inc. All rights reserved. McGraw-Hill/Irwin Programming the Web Using ASP.Net Chapter 6: The User Interface (UI) Dave.
Agenda Introduction Security flow for a request Authentication
Building Custom Modules
DotNetNuke® Web Application Framework
Building Custom Modules
ASP.NET Module Subtitle.
Data Driven ASP.NET Web Forms Applications Deep Dive
ASP.NET 4.0 State Management Improvements – Deep Dive
Serpil TOK, Zeki BAYRAM. Eastern MediterraneanUniversity Famagusta
Building Business Applications in LightSwitch
Microsoft Dynamics.
Windows Forms in Visual Studio 2005: An in-depth look at key features
Presentation transcript:

DEV306 ASP.NET Portal Starter Kit Under The Hood Gunther Beersaerts Technical Specialist Microsoft Corporation

ASP.net Starter Kits Portal Architecture Portal Modules Extending the Portal Portal Configuration Portal Security Resources Agenda

ASP.NET Starter Kits Five ASP.NET sample apps Free downloadable Community Reports Time Tracker Commerce Portal Share common code practices Community Reports Time Tracker Commerce Portal

Sample Portal application Pluggable framework 10 basic portal modules Extendable with custom portal modules Online Administration XML based definition of portal layout Roles-based security Mobile support using ASP.NET Mobile Controls Available in VB.NET and C# VS and SDK (WebMatrix) ASP.NET Starter Kits Portal Starter Kit

Walk-Through demo demo

ASP.net Starter Kits Portal Architecture Portal Modules Extending the Portal Portal Configuration Portal Security Resources Agenda

Data Access Layer Portal Architecture N-Tier Business Logic Layer Data Store Presentation Layer Business Objects Mobile UI Desktop UI Data Objects SQL Server

Portal Directory Structure - Web.Config - Global.asax - 3.ASPX Pages - 3.ASCX User Controls - PortalCfg.xml + Class + /Admin/ + /Components/ + /Data/ + /DesktopModules/ + /MobileModules/ + /SourceViewer/ + /Bin/ + /Docs/ + /Images/

Portal Architecture Default.aspx DesktopDefault.aspx MobileDefault.aspx DesktopPortal Banner.ascx SignIn.ascx *.ascx Data Access Classes Database PortalCfg.xml

A Day in The Life of the Portal… - or - Let’s start with Loading Settings

PortalSettings() Keeping Track... Application_BeginRequest() PortalSettings()... Dim DesktopTabs As New ArrayList() Dim MobileTabs As New ArrayList() Dim ActiveTab As New TabSettings() TabStripDetails() class TabSettings() class... Dim Modules As New ArrayList() New PortalSettings(tabIndex, tabId) ModuleSettings()

PortalSettings() Application_BeginRequest Executes on each web request Obtains current TabIndex and TabId from querystring Stored in Application’s Context object  available to all pages Sub Application_BeginRequest(...) ' Add the PortalSettings object to the context Context.Items.Add("PortalSettings", New PortalSettings(tabIndex, tabId)) End Sub

PortalSettings() PortalSettings() Class Encapsulates all settings and configuration settings required to execute the current tab view Public Fields: Public PortalId As Integer Public PortalName As String Public AlwaysShowEditButton As Boolean Public DesktopTabs As New ArrayList Public MobileTabs As New ArrayList Public ActiveTab As New TabSettings

PortalSettings() TabStripDetails PortalSettings Class instantiate DesktopTabs and MobileTabs fields ArrayLists Type Contain TabStripDetails instances: Public Class TabStripDetails Public TabId As Integer Public TabName As String Public TabOrder As Integer Public AuthorizedRoles As String End Class

PortalSettings Class exposes ‘ActiveTab’ public field Instance of TabSettings() Class Public Class TabSettings Public TabIndex As Integer Public TabId As Integer Public TabName As String Public TabOrder As Integer Public MobileTabName As String Public AuthorizedRoles As String Public ShowMobile As Boolean Public Modules As New ArrayList() End Class PortalSettings() TabSettings

TabSettings Class exposes Modules public field ArrayLists Type Contain ModuleSettings instances PortalSettings() ModuleSettings Public Class ModuleSettings Implements IComparable Public ModuleId As Integer Public ModuleDefId As Integer Public TabId As Integer Public CacheTime As Integer Public ModuleOrder As Integer Public PaneName As String Public ModuleTitle As String Public AuthorizedEditRoles As String Public ShowMobile As Boolean Public DesktopSrc As String Public MobileSrc As String End Class

Retrieving PortalSettings() demo demo

A Day in The Life of the Portal… - or - Let’s show some UI

DesktopDefault.aspx Tab Strip Mapped to DesktopPortalBanner.ascx UC Up to Three columns LeftPane ContentPane RightPane Page_Init Event Handler Dynamically populate the columns with User Controls (= Modules) using: Page.LoadControl(string srcFile) method Retrieves PortalSettings instance from HTTPContext

DesktopPortalBanner.ascx Goal = Display Tabs DataList Page_Load Event Handler Dynamically populate DataList Retrieves PortalSettings instance from HTTPContext

DesktopDefault.aspx DesktopPortalBanner.ascx demo demo

ASP.net Starter Kits Portal Architecture Portal Modules Extending the Portal Portal Configuration Portal Security Resources Agenda

Module Architecture Implemented as User Controls (*.ascx) Inherit PortalModuleControl() base class Defines additional custom methods and properties specific to portals Example Properties: PortalId, ModuleId, IsEditable, ModuleConfiguration [Optional] Use DesktopModuleTitle.ascx helper control to provide consistent UI Render title Edit Link [Optional] Use seperate data object

demo demo TechEd Attendees Module Write User Control (.ascx) Inherit from PortalModuleControl() Consume XML Web Service Add module to Portal Framework

ASP.net Starter Kits Portal Architecture Portal Modules Extending the Portal Portal Configuration Portal Security Resources Agenda

Extending the Portal Stylesheet customization Consistent look across the Portal Single CSS stylesheet: “ASPNETPortal.css” Direct Code modification Custom Module Development ASP.NET Portal Starter Kit

demo demo Custom TechEd Stylesheet Customize ASPNETPortal.css

Building Portal Modules Example Announcements.ascx Desktop Module User Control AnnouncementsDB.vb Component encapsulating data access EditAnnouncements.aspx Edit page for portal module that enables adding/editing/deleting announcements

TechEd Session Module demo demo Add a database table Add SPROC’s Write Data Access component Write User Control (.ascx) Write Admin page Add module to Portal Framework

ASP.net Starter Kits Portal Architecture Portal Modules Extending the Portal Portal Configuration Portal Security Resources Agenda

Database Schema

Portal Configuration Drill-down GetSiteSettings Method Reads PortalCfg.xml from filesystem or Cache Configuration.vb Class encapsulates configuration settings Global.asax Uses configuration class to fetch config at beginning of each request and store/flow with request context Sub Application_BeginRequest(...)... ' Read the configuration info from the XML file ‘ or retrieve from Cache Dim config As Configuration = New Configuration() Context.Items.Add("SiteSettings", config.GetSiteSettings()) End Sub

PortalCfg.xsd

ASP.net Starter Kits Portal Architecture Portal Modules Extending the Portal Portal Configuration Portal Security Resources Agenda

Portal Authentication ASP.NET Portal Starter Kit supports two modes of application authentication: Forms based authentication Usernames/passwords stored in database Windows authentication NTLM challenge/response protocol Authentication mode controlled by web.config configuration file User.Identity.Name property encapsulates user name access

Portal Authorization Role based security used to control whether or not user has access rights Tabs/Modules maintain role ACL lists Users can be grouped within many roles Examples: Devs, Admins, VPs, Friends Role mappings stored within database Not tied to NT Domains/Active DS UserDB.GetRoles(User as String) stored in ‘ portalroles ’ Ticket + populate Context.User

DB Schema

Role Checks Current user’s role mappings set for request within Global.asax Application_AuthenticateRequest event Context.User = New GenericPrincipal(roles) Encrypted Http cookie caches DB role lookup User.IsInRole can be used to verify whether current user is in role Works from all pages, controls, classes If (User.IsInRole(“Admin”)) Then …

Windows Authentication demo demo

Portal Extension Idea’s Home Work Data Access Helper Block Centralize connection management Expose methods for CRUD operations Microsoft Data Access Application Block Download from msdn.microsoft.com/practices Role-based Authorization based on AD System.DirectoryServices Extend Modules Overwrite default Caching (0) Personalization on Module Level Personalization In Mobile Modules...

Summary ASP.NET Starter Kits Sample ASP.NET Applications Download Feel to reuse code – impress your boss! ASP.NET Portal Starter Kit Pluggable framework 10 basic portal modules Extendable with custom portal modules Forms/Windows Authentication + Roles-based Authorization Online Admin VB.NET and C# versions available

Resources ASP.net ASP.net Starter Kits Download the Portal kit here ASP.NET Portal Starter Kit Forum Hosting your Starter Kits and others Third party sites Feedback

Ask The Experts Get Your Questions Answered Check out Visual Studio.NET Booth Get your ASP.NET Questions answered Get your ASP.NET Portal Starter Kit Questions answered. C U there on Thu July 3 13:00h -15:00h

Community Resources Most Valuable Professional (MVP) Newsgroups Converse online with Microsoft Newsgroups, including Worldwide User Groups Meet and learn with your peers

evaluations evaluations

© 2003 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. MICROSOFT MAKES NO WARRANTIES, EXPRESS OR IMPLIED, IN THIS SUMMARY.

Boneyard slides

Multiple Device Support

Client Support ASP.NET Portal Starter Kit supports two broad categories of visiting clients: Desktop Browsers Internet Explorer, Netscape, Opera, etc Mobile Devices Pocket PC, WAP/WML Phones, iMode, etc Portal Module implementations are typically written for one client category Different screen real-estate requirements Separate desktop and mobile user controls share same classes and data model

Mobile Portal Modules Mobile Modules are implemented as ASP.NET User Controls (.ascx files) Use mobile internet toolkit server controls aka ASP.NET Mobile User Controls Inherit MobilePortalModuleControl custom control base class Defines additional custom methods and properties specific to portals Example Properties: PortalId, ModuleId, IsEditable, ModuleConfiguration Optionally use helper control to provide consistent UI

Building Mobile Modules Drill-down Default.aspx Master portal page that makes desktop vs. mobile device check MobileDefault.aspx Page responsible for dynamically loading and populating user controls for mobile devices Contacts.ascx Mobile Module User Control