Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

SharePoint Developer Education Day Palo Alto


Published on

This is the deck from my day-long presentation to some NorCal .NET developer UGs

Published in: Business, Technology
  • City Real Estate Europe -

    عقار -

    حكايات نواعم -
    Are you sure you want to  Yes  No
    Your message goes here

SharePoint Developer Education Day Palo Alto

  1. SharePoint for Developers Lynn Langit Developer Evangelist Microsoft
  2. About me Foundations of SQL Server 2005 Business Intelligence (APress) SharePoint Architect SharePoint Instructor MSDN Developer Evangelist
  3. What Will We Cover? <ul><li>SharePoint Developer Platform </li></ul><ul><ul><li>Dev setup, tools, templates </li></ul></ul><ul><li>Container Objects & Metadata </li></ul><ul><ul><li>Templates, sites, collections, pages, content types </li></ul></ul><ul><li>User Objects </li></ul><ul><ul><li>Web parts, Lists, Libraries, Workflows, InfoPath </li></ul></ul><ul><li>Data & Security </li></ul><ul><ul><li>SSP, BDC, Excel Services </li></ul></ul>
  4. Schedule <ul><li>Session 1- 9 am to 10 am </li></ul><ul><li>Session 2 – 10:15 to 12 </li></ul><ul><li>Lunch – 12 to 1pm </li></ul><ul><li>Session 3 – 1 pm to 2:15 pm </li></ul><ul><li>Session 4 – 2:30 to 4:00 pm </li></ul><ul><li>Giveaways & Wrap Up </li></ul>
  5. Convergence SharePoint Portal Server 2001 SharePoint Team Services “v1” Content Management Server 2002 SharePoint Portal Server 2003 Windows SharePoint Services “v2” Windows SharePoint Services v3 Office SharePoint Server 2007
  6. Portals for everyone
  7. 2007 Office System Capabilities Fundamentals Enterprise Content Management Business Intelligence Communication and Collaboration Individual Impact
  8. SharePoint Functional Architecture Operating System Services Platform Services Applications and Services Collaboration Portal Search Content Management Business Processes Business Intelligence Shared Services Security Site Model Extensibility Deployment Management Storage ASP . NET Database Services Search Services Workflow Services
  9. ECM in SharePoint Server 2007 ECM Components Records Management Web Content Management Forms Management Document Management User Interface Microsoft Office Web browsers 3 rd -party apps Unified Stora ge Architecture Unified Services Workflow Metadata Policies Search Security IRM Collab Library Svcs .
  10. Portal Development Areas Portal Sites People and Expertise Search My Site Targeting and Personalization Profile Store Improvements
  11. Search Customization Enterprise search Top results on first page Revamped ranking engine
  12. What is SharePoint?
  13. SharePoint Developer Environment <ul><li>Within SharePoint </li></ul><ul><ul><li>Re-use existing items </li></ul></ul><ul><ul><li>Change default items </li></ul></ul><ul><ul><li>Extend default items </li></ul></ul><ul><ul><li>Re-use customized items </li></ul></ul><ul><ul><li>Wire-ups – data, forms, workflows, more </li></ul></ul>
  14. SharePoint as a developer platform
  15. <ul><li>Windows Server 2003 or 2008 </li></ul><ul><ul><li>IIS 6.0 or 7.0 </li></ul></ul><ul><ul><li>WSS 3.0 </li></ul></ul><ul><li>Database </li></ul><ul><ul><li>SQL WMSDE or SQL Server </li></ul></ul><ul><li>SharePoint Server </li></ul><ul><li>(Usually) Virtual Server or PC </li></ul><ul><li>(Usually) Office Professional 2007 </li></ul><ul><li>(Usually) Visual Studio 2005 or 2008 </li></ul>SPS Developer Environment
  16. <ul><li>Part of the Office Suite </li></ul><ul><li>ASP.NET 2.0 support </li></ul><ul><ul><li>Tool for Web designers for ASP.NET 2.0 </li></ul></ul><ul><ul><li>Great design and development experience with Expression Web and Visual Studio 2005 </li></ul></ul><ul><ul><li>Deep support for popular data technologies, such as XML, XSLT and RSS </li></ul></ul><ul><li>Built-in ASP.NET development server </li></ul>SPS Designer Developer Environment
  17. SharePoint Designer HTML Controls <ul><li>standard HTML controls </li></ul><ul><li>Form Controls </li></ul>
  18. SharePoint Designer ASP.NET 2.0 Controls <ul><li>Standard </li></ul><ul><li>Data </li></ul><ul><li>Validation </li></ul><ul><li>Navigation </li></ul><ul><li>Login </li></ul><ul><li>Web Parts </li></ul>
  19. SharePoint Designer SharePoint Controls <ul><li>Data View Controls </li></ul><ul><li>Server Controls based on current site </li></ul><ul><li>Page Fields (publishing) </li></ul><ul><li>Content Fields (publishing) </li></ul>
  20. SharePoint Designer Editing a SharePoint site <ul><li>Open site </li></ul><ul><li>Enter credentials </li></ul><ul><li>Work with pages & content! </li></ul>
  21. Working with SharePoint Designer
  22. VS and SPS <ul><li>Downloads </li></ul><ul><ul><li>.NET framework 3.0 </li></ul></ul><ul><ul><li>VSTO (version 2) </li></ul></ul><ul><ul><li>Visual Studio 2005/8 Designer for Windows Workflow Foundation </li></ul></ul><ul><ul><li>Windows SharePoint Services 3.0 Tools: Visual Studio 2005/8 Extensions </li></ul></ul><ul><ul><li>WSS SDK </li></ul></ul><ul><ul><li>Enterprise Content Management (ECM) Starter Kit (template for SharePoint workflows) </li></ul></ul><ul><ul><ul><li>Included in SharePoint SDK </li></ul></ul></ul>
  23. VS and SPS – other resources <ul><li>Downloads </li></ul><ul><ul><li>CodePlex </li></ul></ul><ul><ul><ul><li>Community Kit </li></ul></ul></ul><ul><ul><ul><li>Forms-authentication toolkit </li></ul></ul></ul><ul><ul><ul><li>LINQ to CAML </li></ul></ul></ul><ul><ul><li>MSDN </li></ul></ul><ul><ul><ul><li>Web Service documentation </li></ul></ul></ul><ul><ul><ul><li>Fantastic 40, more… </li></ul></ul></ul><ul><li>Blogs </li></ul><ul><ul><li>SharePoint Team Blog </li></ul></ul><ul><ul><li>Lynn’s blog </li></ul></ul>
  24. Working inside Visual Studio
  25. 15 minute break
  26. What Will We Cover?
  27. What are the fantastic 40?
  28. SPS Sites & Templates are… <ul><li>Containers for UI (web pages which contain web parts) </li></ul><ul><li>Containers for business logic (workflows) </li></ul><ul><li>Containers for data display (internal and external) </li></ul><ul><li>Containers for groups of sites (collections) </li></ul><ul><li>Automatically added to navigation </li></ul><ul><li>Automatically security trimmed </li></ul>
  29. SPS Pages are… <ul><li>Containers for UI (web pages which contain web parts) </li></ul><ul><li>Containers for business logic (workflows) </li></ul><ul><li>Containers for data display (internal and external) </li></ul><ul><li>ASP.NET 2.0 compatible </li></ul><ul><li>Automatically added to navigation </li></ul>
  30. Sites, Site Collections, Templates
  31. What is a Content Type? <ul><li>Information about content </li></ul><ul><li>Metadata (columns) </li></ul><ul><li>Strongly typed </li></ul><ul><ul><li>inheritable </li></ul></ul><ul><li>Defined using XML </li></ul><ul><ul><li>Site admin tools or programmatically </li></ul></ul><ul><li>Available globally </li></ul>
  32. Why use Content Types? <ul><li>Reusable – multiple libraries </li></ul><ul><li>Inheritable – from base types </li></ul><ul><li>Strongly typed </li></ul><ul><li>Securable </li></ul><ul><li>Scoped to the site </li></ul><ul><li>Can be based on internal or external data </li></ul><ul><li>Supports standard taxonomy implementation </li></ul>
  33. Profile Properties <ul><li>A special kind of content type </li></ul><ul><li>Extendable </li></ul><ul><li>Mapped to Active Directory (LDAP) – default provider </li></ul>
  34. Working with Content Types
  35. 1-hr lunch break
  36. What Will We Cover?
  37. What is a Web Part? <ul><li>UI for SharePoint or ASP.NET 2.0 page </li></ul><ul><li>Reusable ‘chunk’ of content </li></ul><ul><ul><li>Like a ‘smart ‘.ascx’ file </li></ul></ul><ul><li>Displays XML, formats via XSLT </li></ul>
  38. Lists – the core web part type <ul><li>Rows and Columns of strongly typed data </li></ul><ul><li>Most basic web part </li></ul><ul><li>Can create, customize, extend, create from Excel </li></ul><ul><li>Views not Folders – expose Metadata intelligently </li></ul>
  39. Libraries – specialty web parts <ul><li>Libraries vs. Lists </li></ul><ul><li>Library characteristics </li></ul><ul><ul><li>Metadata </li></ul></ul><ul><ul><li>Views </li></ul></ul><ul><li>Documents </li></ul><ul><li>Pictures </li></ul><ul><li>Forms </li></ul>
  40. 3 types of libraries in SharePoint
  41. Libraries - advanced <ul><li>Base document type(s) </li></ul><ul><li>Custom metadata </li></ul><ul><ul><li>Content Types </li></ul></ul><ul><ul><li>Re-package library as content type (feature) </li></ul></ul><ul><li>Permissions </li></ul><ul><ul><li>Menu options </li></ul></ul><ul><li>Workflow </li></ul>
  42. Customizing libraries inside of SharePoint
  43. Why use Web Parts? <ul><li>Reusable – multiple sites, pages, libraries </li></ul><ul><li>Inheritable – from base types </li></ul><ul><li>Strongly typed </li></ul><ul><li>Securable </li></ul><ul><ul><li>Security-trimmed by default </li></ul></ul><ul><li>Customizable by authorized users </li></ul><ul><ul><li>Public properties </li></ul></ul><ul><ul><li>Connectable (can pass data for filtering) </li></ul></ul>
  44. How end users use Web Parts? <ul><li>Customize on page </li></ul><ul><ul><li>Simple or Advanced properties </li></ul></ul><ul><li>Add to page from gallery </li></ul><ul><ul><li>Simple or Advanced view </li></ul></ul><ul><li>Create pages or sites from templates </li></ul><ul><ul><li>Templates can include web parts </li></ul></ul>
  45. Web Parts in action
  46. How to get Web Parts? <ul><li>Download – free or purchase </li></ul><ul><li>Customize existing from within SharePoint </li></ul><ul><li>Create from with SharePoint </li></ul><ul><li>Create using SharePoint Designer </li></ul><ul><li>Create using Visual Studio </li></ul>
  47. Using Visual Studio for Web Part Development <ul><li>Use ASP.NET template </li></ul><ul><li>Use Toolbox section for Web Parts </li></ul><ul><ul><li>WebPartManager or SharePointWebPartManager </li></ul></ul><ul><ul><li>WebPartZone </li></ul></ul><ul><ul><li>More </li></ul></ul>
  48. How to create Web Parts in Visual Studio
  49. Typical Deployment steps <ul><li>Create web part </li></ul><ul><li>Copy to in or GAC </li></ul><ul><li>Set Web.config trust level </li></ul><ul><li>Add Web.config entry for SafeControls </li></ul><ul><li>Add .webpart file (gallery browsing) </li></ul><ul><li>Test webpart on a page </li></ul>
  50. What’s a Feature? <ul><li>Reusable chunk of content for SharePoint </li></ul><ul><li>Can be scoped to site or subset of site </li></ul><ul><li>Examples </li></ul><ul><ul><li>Content Type </li></ul></ul><ul><ul><li>List </li></ul></ul><ul><ul><li>Workflow </li></ul></ul><ul><ul><li>Web part </li></ul></ul>
  51. How to implement features <ul><li>add subfolder with a Feature definition within Features setup directory </li></ul><ul><li>includes Feature.xml </li></ul><ul><ul><li>defines the base properties of the Feature & lists elements bound to it </li></ul></ul><ul><li>Work with features </li></ul><ul><ul><li>Via SharePoint UI </li></ul></ul><ul><ul><li>Using Stsadm.exe </li></ul></ul><ul><ul><li>Using the SharePoint object model </li></ul></ul>
  52. Deploying Web Parts as Features
  53. What is InfoPath? <ul><li>RAD form-design application </li></ul><ul><ul><li>Data binding options </li></ul></ul><ul><ul><li>Included controls </li></ul></ul><ul><ul><li>Sophisticated security </li></ul></ul><ul><ul><ul><li>Integration w/ Active Directory and more </li></ul></ul></ul><ul><li>Included with Office xxx version </li></ul><ul><li>Based on XML – embeddable in ASP.NET </li></ul><ul><li>Many deployment options </li></ul>
  54. Using & Customize InfoPath forms
  55. How do I create a Form? <ul><li>Customize a sample </li></ul><ul><li>Based on a XSD schema </li></ul><ul><li>Based on a relational data source </li></ul><ul><li>Based on a web service </li></ul><ul><li>Using Visual Studio </li></ul>
  56. Create a Form – using various methods
  57. Form deployment <ul><li>File (shared folder) </li></ul><ul><li>Web site </li></ul><ul><li>SharePoint library </li></ul><ul><li>Other </li></ul>
  58. Form deployment
  59. Forms Services in SharePoint <ul><li>Configuring the SSP </li></ul><ul><ul><li>Shared Services Provider </li></ul></ul><ul><li>Security considerations </li></ul><ul><li>Deploying the form </li></ul><ul><li>Using the form via SharePoint libraries </li></ul>
  60. Deploying to forms services
  61. Advanced capabilities <ul><li>Tablet (ink) support </li></ul><ul><li>Digital signatures </li></ul><ul><li>Attachments </li></ul><ul><li>SharePoint workflows </li></ul>
  62. What is a Workflow? <ul><li>Unit of Business Logic </li></ul><ul><ul><li>Contains Activities </li></ul></ul><ul><ul><li>Contains cancel & fault handlers </li></ul></ul><ul><li>Based on Windows Workflow in .NET 3.0 </li></ul><ul><li>Visually Designed </li></ul><ul><ul><li>XOML – uncompiled –OR-- </li></ul></ul><ul><ul><li>.NET language - compiled </li></ul></ul>
  63. Why use Workflows? <ul><li>Reusable – multiple sites, pages, libraries </li></ul><ul><li>Inheritable – from base workflows </li></ul><ul><li>Visually documented </li></ul><ul><li>Capture business logic </li></ul><ul><li>Customizable by authorized users </li></ul><ul><ul><li>Public properties </li></ul></ul>
  64. How end users use Workflows? <ul><li>Automatic invocation –OR- </li></ul><ul><ul><li>Office, i.e. Word, etc… </li></ul></ul><ul><ul><li>SharePoint document library </li></ul></ul><ul><li>Manual invocation </li></ul><ul><li>Can associate multiple workflows with single document or library </li></ul>
  65. Workflows in action
  66. How to get Workflows? <ul><li>Download – free or purchase </li></ul><ul><li>Customize existing from within SharePoint </li></ul><ul><li>Create from with SharePoint </li></ul><ul><li>Create using SharePoint Designer </li></ul><ul><li>Create using Visual Studio </li></ul>
  67. Limits of SharePoint Designer for Workflow Development I <ul><li>Workflow is associated to one list or library only </li></ul><ul><ul><li>Can NOT package as a feature </li></ul></ul><ul><li>Sequential Workflows only </li></ul><ul><ul><li>Designing State Machine Workflows not supported </li></ul></ul>
  68. Limits of SharePoint Designer for Workflow Development II <ul><li>Designing custom Activities not supported </li></ul><ul><ul><li>Debugging not supported </li></ul></ul><ul><li>Does not support all form types, i.e. InfoPath, etc… </li></ul><ul><li>Uses XOML – no code behind (beside) </li></ul>
  69. Using SharePoint Designer for Workflow Development <ul><li>Customize existing SharePoint workflows </li></ul><ul><li>Create new workflows </li></ul><ul><ul><li>Use Workflow Designer Wizard </li></ul></ul><ul><li>Creates XOML file </li></ul>
  70. Creating Workflows in SharePoint Designer
  71. Using Visual Studio for Workflow Development <ul><li>Workflow templates </li></ul><ul><li>Visual Studio templates </li></ul><ul><ul><li>Sequence or State Machine (Library or Console application) </li></ul></ul><ul><ul><li>SharePoint Sequence or State Machine Library </li></ul></ul><ul><ul><li>Activity Library </li></ul></ul>
  72. State Machine vs. Sequential? <ul><li>Sequential == known, one-way flow, i.e. A, then B, then C, etc… </li></ul><ul><ul><li>Machine processes </li></ul></ul><ul><li>State == states, looping possible, i.e. meal is ordered, meal is cooked, meal is sent back, meal is updated </li></ul><ul><ul><li>Human processes </li></ul></ul>
  73. Workflows in Visual Studio I <ul><li>Code-behind workflows in C# or VB.NET </li></ul><ul><ul><li>Both sequential or state workflows </li></ul></ul><ul><ul><li>Can include workflow modifications </li></ul></ul><ul><ul><li>Can use custom activities </li></ul></ul><ul><ul><li>Debugging available </li></ul></ul>
  74. Workflows in Visual Studio II <ul><li>Workflows as templates </li></ul><ul><ul><li>Can be bound to multiple locations </li></ul></ul><ul><li>Can use any form type </li></ul><ul><ul><li>ASP forms, InfoPath, etc… </li></ul></ul><ul><li>Packaged as a feature </li></ul>
  75. How to create Workflows in Visual Studio
  76. 15 minute break
  77. What Will We Cover?
  78. What is the BDC? <ul><li>Shared Service for MOSS allowing back-end data to be used in MOSS sites </li></ul><ul><ul><li>No code integration </li></ul></ul><ul><ul><li>XML metadata file </li></ul></ul><ul><ul><li>Application Definition File (ADF) </li></ul></ul><ul><li>MOSS designed to integrate </li></ul><ul><ul><li>Web parts, lists, search and more </li></ul></ul>
  79. Why use the BDC? <ul><li>RAD – no code connections to data sources </li></ul><ul><li>Back-end data can be integrated into MOSS sites </li></ul><ul><li>Strongly typed </li></ul><ul><li>Securable </li></ul><ul><li>Scoped to the site </li></ul>
  80. What does it look like?
  81. Using BDC content from AdventureWorks 2000
  82. What is an ADF? <ul><li>Metadata about data source </li></ul><ul><li>Similar to, but not the same as, an XSD schema </li></ul><ul><li>Required, formal structure </li></ul><ul><ul><li>Includes sophisticated security model (for example 5 methods of authentication supported and checkAccess() for security trimming) </li></ul></ul><ul><li>Samples on MSDN </li></ul>
  83. Create the ADF – hard way <ul><li>Manual XML </li></ul><ul><ul><li>copy BdcMetadata.XSD from < Root >Program FilesMicrosoft Office Servers12.0Bin to your working folder </li></ul></ul><ul><ul><li>Then point the SchemaLocation attribute in the XML file to the schema location </li></ul></ul><ul><ul><li>The use VS Intellisense </li></ul></ul>
  84. Create the ADF – easy way <ul><li>Download a free ADF generator tool, such as Todd Baginski’s tool at </li></ul><ul><ul><li>Connect to your data source </li></ul></ul><ul><ul><li>Generate the ADF </li></ul></ul><ul><ul><li>Review the ADF for correctness </li></ul></ul>
  85. Create an ADF for the BDC
  86. Configure the BDC <ul><li>Configure the SSP for the site </li></ul><ul><li>Use the ADF file to set up the BDC connection </li></ul><ul><li>Use a web part to test </li></ul>
  87. Configure the ADF for the BDC
  88. BDC in MOSS <ul><li>Works with web parts </li></ul><ul><li>Works with lists & user profiles(i.e. add meta data) </li></ul><ul><li>Works with custom search (i.e. search for meta data) </li></ul><ul><li>Works with actions (i.e. update source data, etc…) </li></ul>
  89. Working with BDC data in MOSS
  90. Session Summary <ul><li>Understand the new paradigm </li></ul><ul><li>Use libraries not folders </li></ul><ul><ul><li>Taxonomies / metadata is key </li></ul></ul><ul><ul><li>Exploit views </li></ul></ul><ul><li>Educate end users </li></ul><ul><li>Explore SharePoint itself first, then SPD, then VS </li></ul>
  91. Lynn Langit Developer Evangelist Microsoft Corporation