Sofia, Bulgaria | 9-10 October ASP.NET: Developing Portal UI With Web Parts Goksin Bakir Yage Ltd Microsoft Regional Director, MEA Goksin Bakir Yage Ltd.

Slides:



Advertisements
Similar presentations
Malek Kemmou Technology Architect, Application Platform Microsoft Middle East and Africa Overview of ASP.NET 2.0.
Advertisements

Sofia, Bulgaria | 9-10 October Developing An Advanced ASP.NET Server Control With Rich Design-Time Goksin Bakir Yage Ltd Microsoft Regional Director, MEA.
Module 1: Introduction to SQL Server Reporting Services.
ASP.NET 2.0: Advanced Server Controls and Web Parts with ASP.NET 2.0 Sam Spencer Program Manager Web Platform and Tools Microsoft DEV414.
Microsoft Dynamics AX 2009 Integration and Development with.NET Framework Enterprise Portal.
SharePoint 2013 Catalog Sites Brian Culver ● SharePoint Saturday DFW ● March 7, 2015 Build a SharePoint 2013 Search Driven.
DEV392: Extending SharePoint Products And Technologies Through Web Parts And ASP.NET Clint Covington, Program Manager Data And Developer Services - Office.
Anatomy of an ASP.NET Page. Slide 2 My Version of the Big Picture (1) ASP Worker (Engine) Your application Runs Server Other applications User 1User 2.
Web Development Using ASP.NET CA – 240 Kashif Jalal Welcome to week – 1.1 of…
27. to 28. March 2007 | Geneva, Switzerland. Fabrice Romelard ilem SA Level 200.
Chris J.T. Auld Director – Strategy and Innovation Intergen MSDN Regional Director.
Performed by:Gidi Getter Svetlana Klinovsky Supervised by:Viktor Kulikov 08/03/2009.
Membership, Role Manager and Profile Membership, Role Manager and Profile Matt Gibbs ASP.NET Development Manager.
Microsoft Office SharePoint Server Business Intelligence Tom Rizzo Director, Microsoft Office SharePoint Server
1 Agenda Overview Review Roles Lists Libraries Columns.
 Mark Friedman Architect Developer Division Microsoft Corporation.
Enterprise Reporting with Reporting Services SQL Server 2005 Donald Farmer Group Program Manager Microsoft Corporation.
Microsoft Office System UK Developers Conference Radisson Edwardian, Heathrow 29 th & 30 th June 2005.
OFC406 Windows SharePoint Services (version 3) Development 2: ASP.NET, Web Parts, Master Pages, Field Types, and More Ted Pattison Researcher and Trainer.
1 Developing Rules Driven Workflows in Windows Workflow Foundation Jurgen Willis COM318 Program Manager Microsoft Corporation.
Tutorial: Introduction to ASP.NET Internet Technologies and Web Application 4 th February 2010.
Sofia, Bulgaria | 9-10 October Large-Scale Client Script Development in ASP.NET "Atlas“ Tools, Tips, And Techniques Hristo Deshev telerik Hristo Deshev.
Overview of Previous Lesson(s) Over View  ASP.NET Pages  Modular in nature and divided into the core sections  Page directives  Code Section  Page.
© Minder Chen, ASP.NET 2.0: Introduction - 1 ASP.NET 2.0 Minder Chen, Ph.D. Framework Base Class Library ADO.NET: Data & XML.
© 2006 IBM Corporation IBM WebSphere Portlet Factory Architecture.
Tutorial 121 Creating a New Web Forms Page You will find that creating Web Forms is similar to creating traditional Windows applications in Visual Basic.
Sofia, Bulgaria | 9-10 October Developing Custom ASP.NET Providers For Membership And Role Manager Goksin Bakir Yage Ltd Microsoft Regional Director, MEA.
Microsoft SharePoint Server 2010 for the Microsoft ASP.NET Developer Yaroslav Pentsarskyy
SharePoint 2010 Search Architecture The Connector Framework Enhancing the Search User Interface Creating Custom Ranking Models.
Module 10 Administering and Configuring SharePoint Search.
What’s new in Kentico CMS 5.0 Michal Neuwirth Product Manager Kentico Software.
Overview of Previous Lesson(s) Over View  SDI programs  The Application Wizard can generate single-document interface (SDI) applications that work.
Server Control Tips & Tricks Presented by: Patrick Hynds Microsoft Regional Director CriticalSites CTO MCSD, MCSE+I, MCDBA, MCSA, MCP+Site Builder, MCT.
What’s New for Web Developers in ASP.NET and Visual Studio 2008 Kate Gregory Microsoft Regional Director
Slide 1 ASP Authentication There are basically three authentication modes Windows Passport Forms There are others through WCF You choose an authentication.
Anatomy of an ASP.NET Page. Slide 2 Compiling an ASP.NET Page An ASP.NET page is compiled when it is rendered for the first time A page is compiled to.
Building Secure Web Applications With ASP.Net MVC.
Module 1: Working with ASP.NET. Overview Introducing ASP.NET Creating Web Forms Adding ASP.NET Code to a Page Handling Page Events Discussion: ASP vs.
WEB428 ASP.NET 2.0: Advanced Server Controls and Web Parts with ASP.NET 2.0 Andres Sanabria Program Manager Web Platform and Tools Team Microsoft Corporation.
Beginning ASP.NET (Part 3).NET 2.0 Core Libraries Tuc Goodwin.
VITALE, CATURANO & COMPANY LTD Microsoft SharePoint Web Part Development Overview VITALE, CATURANO & COMPANY LTD SharePoint Developer Series – Web Part.
Building a real-world, Internet- scale stock trading application Naveen Prabhu Quadwave Consulting Pvt. Ltd.
Solutions using Microsoft Content Management Server 2002 Connector for SharePoint Technologies Sue Corke Mark Harrison Microsoft UK.
Extending the Operations Dashboard
Microsoft ® Official Course Developing a Publishing Site for Web Content Microsoft SharePoint 2013 SharePoint Practice.
Module 9 User Profiles and Social Networking. Module Overview Configuring User Profiles Implementing SharePoint 2010 Social Networking Features.
Peter Peng. Agenda Introducing A simple example More complex examples (in part 2) Developing (in part 3)
Overview of Previous Lesson(s) Over View  ASP is a technology that enables scripts in web pages to be executed by an Internet server.  ASP.NET is a.
Extending SharePoint through Web Parts and ASP.NET 최승현 대리 한국마이크로소프트.
Copyright © 2006 Pilothouse Consulting Inc. All rights reserved. Web Parts Overview Web parts in SharePoint 2007 “Hello World” web part Typical deployment.
Svetlin Nakov Telerik Corporation
Business Data Integration with MOSS 2007 Naveedullah Khan PMP, MCAD.NET Senior Consultant.
Developing Custom ASP.NET Providers For Membership And Role Manager Stefan Schackow PRS404 Program Manager – Web Platform and Tools Microsoft Corporation.
ASP.NET Architecture Mike Taulty Developer & Platform Group Microsoft Ltd
Windows Vista Configuration MCTS : Internet Explorer 7.0.
Vinod Unny Enterprise InfoTech Microsoft Regional Director, North India
Building rich web applications with ASP.NET AJAX Mike Ormond Developer & Platform Evangelism Group, Microsoft Ltd Developer & Platform Evangelism Group,
ArcGIS for Server Security: Advanced
Developing GIS WebParts in SharePoint
DotNetNuke® Web Application Framework
Beyond the BDC\BCS Model
Business Connectivity Services in SharePoint 2010 and Office 2010
Build Windows 10 UWP MVVM Apps with Prism
Matt Gibbs ASP.NET Development Manager
Power BI Security Best Practices
Anatomy of an ASP.NET Page
ASP.NET 4.0 State Management Improvements – Deep Dive
SharePoint 2007 Developer Overview Collaboration BI Features
MS Confidential : SharePoint 2010 Developer Workshop (Beta1)
Presentation transcript:

Sofia, Bulgaria | 9-10 October ASP.NET: Developing Portal UI With Web Parts Goksin Bakir Yage Ltd Microsoft Regional Director, MEA Goksin Bakir Yage Ltd Microsoft Regional Director, MEA

Sofia, Bulgaria | 9-10 October Agenda ●Web Part Lifecycle ●Extending Personalization ●Connections ●Securing your Infrastructure ●Managing Personalized Data ●Web Part Lifecycle ●Extending Personalization ●Connections ●Securing your Infrastructure ●Managing Personalized Data

Sofia, Bulgaria | 9-10 October Components ●WebPartManager ●WebPartZones and Web Parts ●CatalogZones and CatalogParts ●EditorZones and EditorParts ●Web Part connections ●Web Part personalization ●Custom Web Parts ●WebPartManager ●WebPartZones and Web Parts ●CatalogZones and CatalogParts ●EditorZones and EditorParts ●Web Part connections ●Web Part personalization ●Custom Web Parts

Sofia, Bulgaria | 9-10 October Web Parts ●Framework for building portal-style apps ●Patterned after SharePoint Portal Server ●System.Web.UI.WebControls.WebParts ●Rich UIs with minimal code ●Edit page layout using drag-and-drop ●Edit appearance and behavior and more ●Seamless personalization ●Intercommunication ("connections") ●Framework for building portal-style apps ●Patterned after SharePoint Portal Server ●System.Web.UI.WebControls.WebParts ●Rich UIs with minimal code ●Edit page layout using drag-and-drop ●Edit appearance and behavior and more ●Seamless personalization ●Intercommunication ("connections")

Sofia, Bulgaria | 9-10 October The WebPartManager Control ●Orchestrates operation of Web Parts ●Maintains list of Web Parts and zones ●Manages page state (e.g., display mode) and fires events when page state changes ●Facilitates communication between Web Parts ●Manages personalization and much more ●One instance per page; no UI ●Orchestrates operation of Web Parts ●Maintains list of Web Parts and zones ●Manages page state (e.g., display mode) and fires events when page state changes ●Facilitates communication between Web Parts ●Manages personalization and much more ●One instance per page; no UI

Sofia, Bulgaria | 9-10 October The WebPartZone Control ●Defines zones on a Web Parts page ●Defines default layout and appearance of Web Parts within each zone ●Defines zones on a Web Parts page ●Defines default layout and appearance of Web Parts within each zone <asp:WebPartZone ID="WeatherZone" RunAt="server" DragHighlightColor="244,198,96" RunAt="server">

Sofia, Bulgaria | 9-10 October Web Part Zones Zone 1Zone 2

Sofia, Bulgaria | 9-10 October Web Part Chrome ●Title bar and border surrounding Web Part ●Look defined by WebPartZone properties ●Title bar and border surrounding Web Part ●Look defined by WebPartZone properties Title BarMinimize VerbClose Verb Verbs MenuBorder Verbs Button

Sofia, Bulgaria | 9-10 October Web Parts ●Controls defined in a WebPartZone ●Web controls, user controls, custom controls ●Controls that don't implement IWebPart are internally wrapped in GenericWebParts ●Adds properties: Title, Description, etc. ●Controls defined in a WebPartZone ●Web controls, user controls, custom controls ●Controls that don't implement IWebPart are internally wrapped in GenericWebParts ●Adds properties: Title, Description, etc.

Sofia, Bulgaria | 9-10 October Web Parts Search Web Part Stocks Web Part News Web Part Weather Web Part Calendar Web Part

Sofia, Bulgaria | 9-10 October Web Parts

Sofia, Bulgaria | 9-10 October Know The Web Part Life Cycle To Do The Right Thing At The Right Time

Sofia, Bulgaria | 9-10 October ●PreInit ●Init ●InitComplete ●LoadViewState ●Load ●LoadComplete ●PreRender ●SaveStateComplete ●Render ●PreInit ●Init ●InitComplete ●LoadViewState ●Load ●LoadComplete ●PreRender ●SaveStateComplete ●Render Web Part Lifecycle ●WebZones register with the WebPartManager ●Static WebParts are loaded ●Dynamic WebParts and connections are loaded ●Personalization data applied to Web Pars ●Web Part connections are activated ●Extract & save personalization data

Sofia, Bulgaria | 9-10 October Web Part Lifecycle Common developer scenarios ActionAfterBeforeSuggested Add WebZoneWebPartManager initialized Personalization data is applied Page.Init Add Static Web PartZones registeredPersonalization data is applied Page.Init Add Dynamic Web Part Personalization data is applied Personalization data is saved Add ConnectionsDynamic Web Part loaded Connections are activated Page.InitComplete Page.Load

Sofia, Bulgaria | 9-10 October Externally Defined Web Parts And Connections

Sofia, Bulgaria | 9-10 October Web Parts Personalization Is Extensible At Many Levels

Sofia, Bulgaria | 9-10 October Extending Personalization Override existing providers ●Implement custom load and save logic ●Encryption, query string, caching ●Use the data store from the base class ●Existing providers ●SQL Personalization Provider in the box ●Access provider available via the Web ●Implement custom load and save logic ●Encryption, query string, caching ●Use the data store from the base class ●Existing providers ●SQL Personalization Provider in the box ●Access provider available via the Web protected override void LoadPersonalizationBlobs(...) { // custom logic here (i.e. decrypt data) // custom logic here (i.e. decrypt data) base.LoadPersonalizationBlobs(..) base.LoadPersonalizationBlobs(..)} protected override void SavePersonalizationBlob(...) { // custom logic here (i.e. encrypt data) // custom logic here (i.e. encrypt data) base.SavePersonalizationBlob(..) base.SavePersonalizationBlob(..)}

Sofia, Bulgaria | 9-10 October Extending Personalization Override provider base class ●Support different data store ●Web Service, XML, Oracle ●Integrate to an existing application ●Only need to manage the storage of the personalization blob ●Support different data store ●Web Service, XML, Oracle ●Integrate to an existing application ●Only need to manage the storage of the personalization blob public abstract class PersonalizationProvider : ProviderBase { protected abstract void LoadPersonalizationBlobs(...); protected abstract void LoadPersonalizationBlobs(...); protected abstract void SavePersonalizationBlob(...); protected abstract void SavePersonalizationBlob(...); public abstract int ResetState(...); public abstract int ResetState(...); public abstract PersonalizationStateInfoCollection FindState(...); public abstract PersonalizationStateInfoCollection FindState(...);}

Sofia, Bulgaria | 9-10 October Extending Personalization Override personalization engine ●Take ownership of the personalization process ●Save and restore personalizable property values (diff & merge) ●Supporting the personalization Interfaces ●Track Web Part dirty state ●Use when previous options do not work ●Take ownership of the personalization process ●Save and restore personalizable property values (diff & merge) ●Supporting the personalization Interfaces ●Track Web Part dirty state ●Use when previous options do not work public class WebPartPersonalization { protected virtual PersonalizationScope Load(); protected virtual PersonalizationScope Load(); protected virtual void ApplyPersonalizationState(WebPart webPart); protected virtual void ApplyPersonalizationState(WebPart webPart); protected virtual void ExtractPersonalizationState(WebPart webPart); protected virtual void ExtractPersonalizationState(WebPart webPart); protected virtual void Save(); protected virtual void Save();} Extending Personalization Override personalization engine

Sofia, Bulgaria | 9-10 October Creating A Web Site Content Management Application

Sofia, Bulgaria | 9-10 October Changing Connection Behavior At Runtime

Sofia, Bulgaria | 9-10 October Connections Disable connection point ●Must be defined at compile time but can be disabled at runtime ●Can not create new connections ●Existing connections will display an error ●Must be defined at compile time but can be disabled at runtime ●Can not create new connections ●Existing connections will display an error public class SampleConsumer : WebPart { [ConnectionConsumerAttribute(“Data”, typeof(ExtendedConnectionPoint))] [ConnectionConsumerAttribute(“Data”, typeof(ExtendedConnectionPoint))] public void GetProviderInterface(ProviderInterface provider); public void GetProviderInterface(ProviderInterface provider);} public class ExtendedConnectionPoint : ConsumerConnectionPoint { public override bool GetEnabled(Control control) { public override bool GetEnabled(Control control) { // enable logic here (i.e. disable if SQL Server is down) // enable logic here (i.e. disable if SQL Server is down) }}

Sofia, Bulgaria | 9-10 October

Providing Rich Information Via Connections

Sofia, Bulgaria | 9-10 October Portals Have Unique Security Considerations

Sofia, Bulgaria | 9-10 October Securing Your Infrastructure Restrict contents of uploaded page ●Use the PageParserFilter feature ●Disallow code ●Restrict server controls ●Limit the number of controls on the page ●Enforce page base type and page directives ●All checks are performed at parse time ●Use the PageParserFilter feature ●Disallow code ●Restrict server controls ●Limit the number of controls on the page ●Enforce page base type and page directives ●All checks are performed at parse time public abstract class PageParserFilter { public virtual bool AllowCode { get; } public virtual bool AllowCode { get; } public virtual bool AllowControl(Type controlType, ControlBuilder builder); public virtual bool AllowControl(Type controlType, ControlBuilder builder); public virtual int NumberOfControlsAllowed { get; } public virtual int NumberOfControlsAllowed { get; } public virtual bool AllowBaseType(Type baseType); public virtual bool AllowBaseType(Type baseType); public virtual void PreprocessDirective(string name, IDictionary attributes); public virtual void PreprocessDirective(string name, IDictionary attributes);}

Sofia, Bulgaria | 9-10 October Securing Your Infrastructure Restrict Web Parts at runtime ●Based on the Web Part type and/or AuthorizationFilter property ●Example : Filter by user role ●Applies to all web parts on the page ●The personalized data is not disposed ●Subscribe to AuthorizeWebPart event or override IsAuthorized method ●Based on the Web Part type and/or AuthorizationFilter property ●Example : Filter by user role ●Applies to all web parts on the page ●The personalized data is not disposed ●Subscribe to AuthorizeWebPart event or override IsAuthorized method public abstract class WebPartManager { public virtual bool IsAuthorized(Type type, string path, public virtual bool IsAuthorized(Type type, string path, string authorizationFilter, bool isShared); string authorizationFilter, bool isShared); }

Sofia, Bulgaria | 9-10 October

Implementing Secure Import/Export

Sofia, Bulgaria | 9-10 October Portal Users Need Self Management Tools

Sofia, Bulgaria | 9-10 October Managing Personalized Data Page level ●PersonalizationAdministration class ●High level APIs to manage all data ●Works at the page level, not web part level ●Works with any Personalization Provider ●Self management tool must enforce security ●PersonalizationAdministration class ●High level APIs to manage all data ●Works at the page level, not web part level ●Works with any Personalization Provider ●Self management tool must enforce security public static class PersonalizationAdministration { public static int GetCountOfUserState(string usernameToMatch); public static int GetCountOfUserState(string usernameToMatch); public static PersonalizationStateInfoCollection FindUserState ( public static PersonalizationStateInfoCollection FindUserState ( string pathToMatch, string usernameToMatch); string pathToMatch, string usernameToMatch); public static bool ResetUserState(string path, string username); public static bool ResetUserState(string path, string username); public static int ResetInactiveUserState(DateTime userInactiveSinceDate); public static int ResetInactiveUserState(DateTime userInactiveSinceDate);}

Sofia, Bulgaria | 9-10 October Managing Personalized Data Web Part level ●Run target page within management page ●Attach to an event in the target page ●Based on Web Part lifecycle ●Execute code within event handler ●Example: call WebPartManager APIs like DeleteWebPart() or CloseWebPart() ●Target page will save personalized data ●Run target page within management page ●Attach to an event in the target page ●Based on Web Part lifecycle ●Execute code within event handler ●Example: call WebPartManager APIs like DeleteWebPart() or CloseWebPart() ●Target page will save personalized data

Sofia, Bulgaria | 9-10 October Creating An Admin Page

Sofia, Bulgaria | 9-10 October Call To Action ●Use Web Part control to empower user customization of their site ●Work with the Web Part Lifecycle ●Use the Web Part control set when building Module User Interfaces ●Use Web Part control to empower user customization of their site ●Work with the Web Part Lifecycle ●Use the Web Part control set when building Module User Interfaces

Sofia, Bulgaria | 9-10 October Community Resources ●INETA MEA ! ● ●mea.ineta.org ●ASP.NET Web Site - ●MSDN dev center ●ASP.NT Forums ●Channel 9 tag ●INETA MEA ! ● ●mea.ineta.org ●ASP.NET Web Site - ●MSDN dev center ●ASP.NT Forums ●Channel 9 tag -

Sofia, Bulgaria | 9-10 October Call To Action ●Use Web Part control to empower user customization of their site ●Work with the Web Part Lifecycle ●Use the Web Part control set when building Module User Interfaces ●Use Web Part control to empower user customization of their site ●Work with the Web Part Lifecycle ●Use the Web Part control set when building Module User Interfaces

Sofia, Bulgaria | 9-10 October Community Resources ●INETA MEA ! ● ●mea.ineta.org ●ASP.NET Web Site - ●MSDN dev center ●ASP.NT Forums - x x ●Channel 9 tag ●INETA MEA ! ● ●mea.ineta.org ●ASP.NET Web Site - ●MSDN dev center ●ASP.NT Forums - x x ●Channel 9 tag -

Sofia, Bulgaria | 9-10 October Please fill out the survey forms! They are the key to amazing prizes that you can get at the end of each day Thank you!

Sofia, Bulgaria | 9-10 October