SharePoint Server 2010 a ASP.NET Developer PlatformIvan SandersSharePoint MVP, Architect DeveloperDimension Solutions inc.ivan@dimension-si.com
AgendaSharePoint BasicsPackaging and DeploymentCommon ArtifactsRemote ApplicationsDemoInfoPath FormList DefinitionsEvent ReceiversWork Flow
SharePoint Basics
Why SharePoint?SharePoint.NETCustom DevelopmentData StorageData StorageOut of the BoxPresentationPresentationSecuritySecurityClusteringClusteringAPI’sAPI’sOffice IntegrationOffice IntegrationFeaturesFeaturesCustom
SharePoint TerminologyTimer JobWeb PartLayout PageElevated PrivilegesCAMLFarmSafe ControlContent TypeSite ColumnDeclarative WorkflowFeatureSTSADMSite CollectionApplication PagePersisted ObjectSite DefinitionSolution PackageScopeEvent ReceiverContent DatabaseList DefinitionCentral AdministrationPublishing PageThemeWeb ApplicationONETList InstanceList ViewFeature ReceiverTeam SiteField ControlClient Object Model
SharePoint ArchitectureServer FarmDatabasesSolutionsService ApplicationsAlternate AccessMonitoringSecurityPoliciesWeb ApplicationProvidersFile TypesService ConnectionsThrottlingManagedPathsQuotasPermissionsSite CollectionTemplatesWeb PartsFeaturesUserSolutionsContent TypesSite ColumnsContentDatabaseWebFeaturesListsViewsWorkflowsThemesLayoutsAlerts
Server FarmsServer FarmA collection of SharePoint role servers and a SQL database serverServers can perform one or more functions (web front end, search, application, etc.)Farm-level features are managed via Central AdministrationCustom code can be deployed at the Farm level and managed centrallySolution Packages allow custom code to be automatically deployed across the farm Web Front EndsApplicationDatabase
Web Applications and Site CollectionsWeb application = IIS Virtual ServerEach web application may be assigned its own app poolWeb applications may utilize multiple service applicationsSite collections reside within web applicationsSite collection functionality derived from underlying site definitionSpecial site collection types include My Sites, Shared Services Provider, Publishing WebPortalHRFinanceMarketingMySitesCentral Administration
Packaging and Deployment
Solution PackagesSolution Packages are “bundles” of functionality deployed to the farm or site collection (sandbox)May contain one or more Features, assemblies, pages, controls, and other artifactsSharePoint framework handles installation and configuration of solution items automatically across entire farmAutomated packaging and deployment in Visual Studio 2010
Sandbox SolutionsTrusted solutions which run in isolated processLoad balanced executionUploaded to solution directory in site collectionAdministratively controlled via quotasCan be automatically disabledSubset of OM functionalityAbility to use trusted proxy for restricted operationsMyWebPart.dllRuntimeFull Object ModelSubset Object ModelProxy
FeaturesA ‘Feature’ is a defined set of functionality encapsulated within a specific formatFeatures are the basic building block of WSS v3 and MOSS developmentFeatures may be comprised of any combination of code, including web parts, workflows, and site definitionsFeatures may be deployed manually or automatically on a local or global basisFeatures are heavily dependent on CAML
Packaging and DeploymentDEMO
Common Tools Common ArtifactsDEMO
SharePoint 2010 DevelopmentDevelopment on Windows 7 or Vista x64Visual Studio 2010 SupportSharePoint ExplorerSharePoint Project and Item TemplatesVisual Designers for Common ScenariosF5 DebuggingPackaging Support (.wsp)Developer DashboardSandbox SolutionsClient Object ModelSilverlight.NETECMA Script
Windows 7 Development DesktopDEMO
Web PartsWeb Parts are a specific type of server control that inherit from System.Web.UI.WebPartWeb Parts contain discreet functionality that is exposed to the user in the context of a Web Part PageClassic Web Parts do not have an IDE; Visual Web Parts host ASP.NET User ControlsWeb Parts execute in the context of the current userWeb Parts may be deployed individually or in conjunction with other artifacts
Building an InfoPath FormDEMO
List Elements, Types and ViewsLists are virtual data repositories for unstructured contentFields defined by associated content types and user-defined columnsCommon lists types included OOTBCustom list types may be created in UI or codeList data is stored in the content database associated with the site collectionMaximum limit for list items is 30M+Be aware of performance implications and throttling when storing/retrieving large amounts of list dataLists have associated views defined in UI or CAMLCustom field types may be created programmatically
Event ReceiversEvent Receivers are handler assemblies that respond to events on specific objects (Webs, Lists, Features, etc.) Event receivers override built-in methods:Adding/AddedUpdating/UpdatedActivated/DeactivatedInstalling/UninstallingEvent Receivers have no UI or user feedback mechanismEvent Receivers must run with Full Trust in the GACCodeItem AddingCreating a List Definition and Attaching an Event ReceiverContentDatabaseCodeItem Added
Creating a List Definition and Attaching an Event ReceiverDEMO
.NET framework versionSharePoint 2010 has a dependency on .NET 3.5Workflows in SharePoint Server 2010 are *not* WF 4.0 Workflows.NET Framework release schedule doesn’t align with SharePoint Server 2010Would have delayed SharePoint Server 2010 significantly to take a dependency on WF 4.0
WorkflowSharePoint Workflow inherits and builds upon Windows Workflow Foundation (WF)Simple workflows can be created in SharePoint Designer, advanced workflows require Visual StudioTwo types of workflow – Sequential and State MachineUser interaction provided via InfoPath forms or custom ASPX pagesWorkflows are tied directly to lists and list itemsBuilt-in history, tasks, and tracking mechanisms
SPD Workflow ImportNEW!SPD has a new reusable declarative Workflow templateOnce deployed it can be saved to a template (.wsp)Template can be imported into Visual Studio 2010 and modifiedDeploy PackageSave to File SystemCreate New ProjectImport WSPFile systemWSP
SPD Workflow Export and Visual Studio 2010DEMO
Q & A
Who can you trust??The blogs I trust through all of the noise.Maurice Prather	http://www.bluedoglimited.com/default.aspxAndrew Connell	http://www.andrewconnell.com/blogSpence Harbarhttp://www.harbar.netJim DuncanHeather Solomon	http://www.heathersolomon.com/blogTodd Klindthttp://www.toddklindt.com/default.aspxTodd Baginskihttp://www.toddbaginski.com/blogTodd Bleekerhttp://bit.ly/edlSm5Jan Tielenshttp://weblogs.asp.net/janPatrick Tisseghemhttp://www.u2u.info/Blogs/Patrick/default.aspxWictorWilenhttp://www.wictorwilen.seTed Patissonhttp://blog.tedpattison.net/default.aspxLars Fastruphttp://www.fastrup.netCarstenKeutmannhttp://keutmann.blogspot.comKeith Richie	http://blog.krichie.comBill Baer	http://blogs.technet.com/b/wbaer

SoCalCodeCamp SharePoint Server 2010 a Developer Platform

  • 1.
    SharePoint Server 2010a ASP.NET Developer PlatformIvan SandersSharePoint MVP, Architect DeveloperDimension Solutions inc.ivan@dimension-si.com
  • 3.
    AgendaSharePoint BasicsPackaging andDeploymentCommon ArtifactsRemote ApplicationsDemoInfoPath FormList DefinitionsEvent ReceiversWork Flow
  • 4.
  • 5.
    Why SharePoint?SharePoint.NETCustom DevelopmentDataStorageData StorageOut of the BoxPresentationPresentationSecuritySecurityClusteringClusteringAPI’sAPI’sOffice IntegrationOffice IntegrationFeaturesFeaturesCustom
  • 6.
    SharePoint TerminologyTimer JobWebPartLayout PageElevated PrivilegesCAMLFarmSafe ControlContent TypeSite ColumnDeclarative WorkflowFeatureSTSADMSite CollectionApplication PagePersisted ObjectSite DefinitionSolution PackageScopeEvent ReceiverContent DatabaseList DefinitionCentral AdministrationPublishing PageThemeWeb ApplicationONETList InstanceList ViewFeature ReceiverTeam SiteField ControlClient Object Model
  • 7.
    SharePoint ArchitectureServer FarmDatabasesSolutionsServiceApplicationsAlternate AccessMonitoringSecurityPoliciesWeb ApplicationProvidersFile TypesService ConnectionsThrottlingManagedPathsQuotasPermissionsSite CollectionTemplatesWeb PartsFeaturesUserSolutionsContent TypesSite ColumnsContentDatabaseWebFeaturesListsViewsWorkflowsThemesLayoutsAlerts
  • 8.
    Server FarmsServer FarmAcollection of SharePoint role servers and a SQL database serverServers can perform one or more functions (web front end, search, application, etc.)Farm-level features are managed via Central AdministrationCustom code can be deployed at the Farm level and managed centrallySolution Packages allow custom code to be automatically deployed across the farm Web Front EndsApplicationDatabase
  • 9.
    Web Applications andSite CollectionsWeb application = IIS Virtual ServerEach web application may be assigned its own app poolWeb applications may utilize multiple service applicationsSite collections reside within web applicationsSite collection functionality derived from underlying site definitionSpecial site collection types include My Sites, Shared Services Provider, Publishing WebPortalHRFinanceMarketingMySitesCentral Administration
  • 10.
  • 11.
    Solution PackagesSolution Packagesare “bundles” of functionality deployed to the farm or site collection (sandbox)May contain one or more Features, assemblies, pages, controls, and other artifactsSharePoint framework handles installation and configuration of solution items automatically across entire farmAutomated packaging and deployment in Visual Studio 2010
  • 12.
    Sandbox SolutionsTrusted solutionswhich run in isolated processLoad balanced executionUploaded to solution directory in site collectionAdministratively controlled via quotasCan be automatically disabledSubset of OM functionalityAbility to use trusted proxy for restricted operationsMyWebPart.dllRuntimeFull Object ModelSubset Object ModelProxy
  • 13.
    FeaturesA ‘Feature’ isa defined set of functionality encapsulated within a specific formatFeatures are the basic building block of WSS v3 and MOSS developmentFeatures may be comprised of any combination of code, including web parts, workflows, and site definitionsFeatures may be deployed manually or automatically on a local or global basisFeatures are heavily dependent on CAML
  • 14.
  • 15.
    Common Tools CommonArtifactsDEMO
  • 16.
    SharePoint 2010 DevelopmentDevelopmenton Windows 7 or Vista x64Visual Studio 2010 SupportSharePoint ExplorerSharePoint Project and Item TemplatesVisual Designers for Common ScenariosF5 DebuggingPackaging Support (.wsp)Developer DashboardSandbox SolutionsClient Object ModelSilverlight.NETECMA Script
  • 17.
  • 18.
    Web PartsWeb Partsare a specific type of server control that inherit from System.Web.UI.WebPartWeb Parts contain discreet functionality that is exposed to the user in the context of a Web Part PageClassic Web Parts do not have an IDE; Visual Web Parts host ASP.NET User ControlsWeb Parts execute in the context of the current userWeb Parts may be deployed individually or in conjunction with other artifacts
  • 19.
  • 20.
    List Elements, Typesand ViewsLists are virtual data repositories for unstructured contentFields defined by associated content types and user-defined columnsCommon lists types included OOTBCustom list types may be created in UI or codeList data is stored in the content database associated with the site collectionMaximum limit for list items is 30M+Be aware of performance implications and throttling when storing/retrieving large amounts of list dataLists have associated views defined in UI or CAMLCustom field types may be created programmatically
  • 21.
    Event ReceiversEvent Receiversare handler assemblies that respond to events on specific objects (Webs, Lists, Features, etc.) Event receivers override built-in methods:Adding/AddedUpdating/UpdatedActivated/DeactivatedInstalling/UninstallingEvent Receivers have no UI or user feedback mechanismEvent Receivers must run with Full Trust in the GACCodeItem AddingCreating a List Definition and Attaching an Event ReceiverContentDatabaseCodeItem Added
  • 22.
    Creating a ListDefinition and Attaching an Event ReceiverDEMO
  • 23.
    .NET framework versionSharePoint2010 has a dependency on .NET 3.5Workflows in SharePoint Server 2010 are *not* WF 4.0 Workflows.NET Framework release schedule doesn’t align with SharePoint Server 2010Would have delayed SharePoint Server 2010 significantly to take a dependency on WF 4.0
  • 24.
    WorkflowSharePoint Workflow inheritsand builds upon Windows Workflow Foundation (WF)Simple workflows can be created in SharePoint Designer, advanced workflows require Visual StudioTwo types of workflow – Sequential and State MachineUser interaction provided via InfoPath forms or custom ASPX pagesWorkflows are tied directly to lists and list itemsBuilt-in history, tasks, and tracking mechanisms
  • 25.
    SPD Workflow ImportNEW!SPDhas a new reusable declarative Workflow templateOnce deployed it can be saved to a template (.wsp)Template can be imported into Visual Studio 2010 and modifiedDeploy PackageSave to File SystemCreate New ProjectImport WSPFile systemWSP
  • 26.
    SPD Workflow Exportand Visual Studio 2010DEMO
  • 27.
  • 28.
    Who can youtrust??The blogs I trust through all of the noise.Maurice Prather http://www.bluedoglimited.com/default.aspxAndrew Connell http://www.andrewconnell.com/blogSpence Harbarhttp://www.harbar.netJim DuncanHeather Solomon http://www.heathersolomon.com/blogTodd Klindthttp://www.toddklindt.com/default.aspxTodd Baginskihttp://www.toddbaginski.com/blogTodd Bleekerhttp://bit.ly/edlSm5Jan Tielenshttp://weblogs.asp.net/janPatrick Tisseghemhttp://www.u2u.info/Blogs/Patrick/default.aspxWictorWilenhttp://www.wictorwilen.seTed Patissonhttp://blog.tedpattison.net/default.aspxLars Fastruphttp://www.fastrup.netCarstenKeutmannhttp://keutmann.blogspot.comKeith Richie http://blog.krichie.comBill Baer http://blogs.technet.com/b/wbaer