SharePoint Saturday Boston 2/27/10 - Whats New For Developers In SharePoint 2010


Published on

SharePoint 2010 offers developers a unique and well deserved set of tools to aid in the development of SharePoint 2010 solutions. In this session we’ll cover improvements in the UI and the toolsets themselves, from PowerShell as a powerful scripting interface to the API, the Developer Dashboard, the SharePoint Toolkit in Visual Studio 2010, and more.

Published in: Technology, Sports
  • Be the first to comment

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

SharePoint Saturday Boston 2/27/10 - Whats New For Developers In SharePoint 2010

  1. 1. What’s New for Developers in SharePoint 2010Geoff Varosky<br />
  2. 2. About Me<br />Geoff Varosky MCP, MCTS<br />Senior Solutions Developer for Grace-Hunt, LLC.<br />Blog:<br />Email:<br />Twitter: @gvaro<br />
  3. 3. About Grace-Hunt<br />Founded in 2004<br />Based in Hudson, MA<br />Presence in North East, Mid Atlantic, and South East Regions<br />Microsoft Gold Partner<br />Specializing in SharePoint and Dynamics (CRM, SL, GP, NAV) Consulting, Implementation, and Integration<br />Web:<br />Twitter: @gvaro<br />Email:<br />Blog:<br />Company:<br />
  4. 4. SharePoint Saturday Boston<br />Twitter: @gvaro<br />Email:<br />Blog:<br />Company:<br />
  5. 5. History…<br />Twitter: @gvaro<br />Email:<br />Blog:<br />Company:<br />
  6. 6. History<br />In the beginning…<br />Twitter: @gvaro<br />Email:<br />Blog:<br />Company:<br />
  7. 7. History<br />In the beginning…<br />SharePoint Team Services / SPS 2001<br />Visual Studio<br />SDK<br />API<br />Not much else, only a handful of books and blogs, and some 3rd party tools<br />Twitter: @gvaro<br />Email:<br />Blog:<br />Company:<br />
  8. 8. History<br />Then back in ‘03<br />Twitter: @gvaro<br />Email:<br />Blog:<br />Company:<br />
  9. 9. History<br />Then back in ‘03<br />WSS v2 and SPS 2003<br />SDKs<br />Visual Studio<br />API<br />Lots more books and blogs<br />Many more 3rd Party Tools to Assist Developers<br />Twitter: @gvaro<br />Email:<br />Blog:<br />Company:<br />
  10. 10. History<br />Then in ’07<br />Twitter: @gvaro<br />Email:<br />Blog:<br />Company:<br />
  11. 11. History<br />Then in ’07<br />WSS v3 and MOSS 2007 SDKs<br />API<br />Lots more books and blogs<br />Many ManyMany more 3rd Party Tools to Assist Developers<br />WSP Builder<br />STSDev<br />VSeWSS<br />SharePoint Manager<br />SharePoint Solution Installer<br />etc.<br />Features + Solution Packages<br />Twitter: @gvaro<br />Email:<br />Blog:<br />Company:<br />
  12. 12. History<br />Then here comes 2010 – Paydirt!<br />Twitter: @gvaro<br />Email:<br />Blog:<br />Company:<br />
  13. 13. History<br />Then here comes 2010 – Paydirt!<br />SDKs<br />API Enhancements<br />New Ways of Accessing Data<br />REST APIs, Client OM, LINQ to SharePoint<br />Native Support in VS2010 for SharePoint<br />Packaging, Deployment, Debugging<br />PowerShell (SP 2010 Management Console)<br />Developer Dashboard<br />Sandboxed Solutions<br />Major SPD 2010 Enhancements<br />Twitter: @gvaro<br />Email:<br />Blog:<br />Company:<br />
  14. 14. Development<br />Environment<br />Twitter: @gvaro<br />Email:<br />Blog:<br />Company:<br />
  15. 15. SharePoint “Developer Edition”<br />Just for developers<br />No longer required to develop on a server<br />Install and run SharePoint 2010 (Foundation or Server) on Desktop systems (Vista SP1+, Windows 7)<br />Required to follow install guide instructions in SDK<br />64-bit System is required<br />Not supported for production deployments<br />Only for Standalone Installations<br />Can be disabled via Group Policy<br />Twitter: @gvaro<br />Email:<br />Blog:<br />Company:<br />
  16. 16. SPD 2010<br />Twitter: @gvaro<br />Email:<br />Blog:<br />Company:<br />
  17. 17. SharePoint Designer 2010<br /><ul><li>BCS Designer
  18. 18. MAJOR improvement over BDC
  19. 19.
  20. 20. Ability to package up solutions directly into WSPs
  21. 21. Add Custom Actions to the Ribbon and List Item Menus
  22. 22.
  23. 23. Can import workflow design from Visio 2010, and export to Visual Studio 2010
  24. 24. Reusable Workflows
  25. 25. Improved Page Editing and Workflow Designer
  26. 26. “Save Site as Template” Creates WSP</li></ul>Twitter: @gvaro<br />Email:<br />Blog:<br />Company:<br />
  27. 27. SharePoint Designer 2010<br /><ul><li>BCS
  28. 28. There’s a Session on this!
  29. 29. “Entities & Me, the BCS”
  30. 30. Adam Macaulay
  31. 31. 1pm – 2:15pm
  32. 32. Rhode Island Room
  33. 33. …Ask him to sing the song from Blues Clues…
  34. 34. Don’t tell him I told you to ask!</li></ul>Twitter: @gvaro<br />Email:<br />Blog:<br />Company:<br />
  35. 35. Demo<br />SharePoint Designer 2010<br />Twitter: @gvaro<br />Email:<br />Blog:<br />Company:<br />
  36. 36. Visual Studio<br />2010<br />Twitter: @gvaro<br />Email:<br />Blog:<br />Company:<br />
  37. 37. Visual Studio 2010 & SharePoint Toolkit<br />Integrated debugging<br />Project and Item Templates<br />Required x64 and Local SharePoint Instance<br />Visual Designers<br />BCS Designer<br />Web Part Designer<br />Workflow Designer<br />Workflows<br />Site level workflows<br />Templates for Initiation and Association forms<br />Import WSP packages generated in SharePoint Designer<br />Twitter: @gvaro<br />Email:<br />Blog:<br />Company:<br />
  38. 38. Visual Studio 2010 & SharePoint Toolkit<br />Twitter: @gvaro<br />Email:<br />Blog:<br />Company:<br />
  39. 39. Visual Studio 2010 & SharePoint Toolkit<br />Twitter: @gvaro<br />Email:<br />Blog:<br />Company:<br />
  40. 40. Visual Studio 2010 & SharePoint Toolkit<br />Package and Deploy Solutions Natively<br />TFS Integration<br />Extensibility for Development of SP Artifacts<br />BCS Support<br />Twitter: @gvaro<br />Email:<br />Blog:<br />Company:<br />
  41. 41. Visual Studio 2010 & SharePoint Toolkit<br />WSP Importing*<br />Wizard for selecting WSP<br />Declarative elements can be selected for import<br />Modified and extended from there<br />*Cannot export back to SharePoint Designer<br />Twitter: @gvaro<br />Email:<br />Blog:<br />Company:<br />
  42. 42. Visual Studio 2010 & SharePoint Toolkit<br />SharePoint Project System<br />Project Commands<br />Package, Retract & Deploy Solutions<br />Project level properties<br />Site URL, Sandboxed<br />Features and Packaging Nodes<br />Mapped Folders<br />Items and Files have specific SharePoint properties<br />Twitter: @gvaro<br />Email:<br />Blog:<br />Company:<br />
  43. 43. Visual Studio 2010 & SharePoint Toolkit<br />SharePoint Explorer<br />Tree-View of SharePoint Site and Artifacts<br />Site Collection, Sites, Lists, Fields, Content Types, etc.<br />Can view properties of these items<br />Add connections to different site collections<br />Twitter: @gvaro<br />Email:<br />Blog:<br />Company:<br />
  44. 44. Visual Studio 2010 & SharePoint Toolkit<br />Extensibility<br />Server Explorer Extensions<br />Deployment Extensions<br />Packaging Validation Rules<br />MS Build Extensibility<br />Twitter: @gvaro<br />Email:<br />Blog:<br />Company:<br />
  45. 45. Demo<br />Visual Studio 2010<br />Twitter: @gvaro<br />Email:<br />Blog:<br />Company:<br />
  46. 46. Developer<br />Dashboard<br />Twitter: @gvaro<br />Email:<br />Blog:<br />Company:<br />
  47. 47. Developer Dashboard<br /> Powerful interface to debug and/or monitor page performance<br />Twitter: @gvaro<br />Email:<br />Blog:<br />Company:<br />
  48. 48. Developer Dashboard<br />Turning it on...<br />STSADM<br />stsadm –o setproperty –pn developer-dashboard –pv “OnDemand “<br />stsadm –o setproperty –pn developer-dashboard –pv “On”<br />PowerShell (Beta 1)<br />(Get-SPFarm).PerformanceMonitor.DeveloperDashboardLevel = "OnDemand"<br />(Get-SPFarm).PerformanceMonitor.DeveloperDashboardLevel = "On"<br />Twitter: @gvaro<br />Email:<br />Blog:<br />Company:<br />
  49. 49. Developer Dashboard<br />Turning it off...<br />STSADM<br />stsadm –o setproperty –pn developer-dashboard –pv “Off”<br />PowerShell (Beta 1)<br />(Get-SPFarm).PerformanceMonitor.DeveloperDashboardLevel = "Off"<br />Twitter: @gvaro<br />Email:<br />Blog:<br />Company:<br />
  50. 50. Developer Dashboard<br />Complete Request/Response Timing Information on page load for all operations performed<br />Request (GET:http://sp2010dev-01:80/Pages/default.aspx) (1475.21 ms) <br />BeginRequestHandler (0.07 ms)<br />PostAuthenticateRequestHandler (0.06 ms)<br />PostResolveRequestCacheHandler (1117.62 ms) <br />GetWebPartPageContent (1114.78 ms) <br />GetFileAndMetaInfo (1114.32 ms)<br />EnsureListItemsData (157.10 ms)<br />PortalSiteMapDataSource: Determining Starting Node (0.01 ms)<br />Add WebParts (0.82 ms) <br />Press Releases (0.59 ms)<br />ToolBarMenuButton.CreateChildControls for PersonalActions (0.17 ms)<br />ToolBarMenuButton.CreateChildControls for SiteActions (0.62 ms)<br />SearchBoxEx.OnLoad (0.15 ms)<br />SPPageStateControl:OnLoad (0.20 ms)<br />Activate web part connections (0.13 ms)<br />DataBindingDataFormWebPart (Press Releases) (141.31 ms) <br />CBQ Query and Process Data (140.61 ms) <br />GetSiteData (22.16 ms)<br />GetSiteData#1 (25.84 ms)<br />DataBindingDataFormWebPart () (0.45 ms)<br />DataBinding DataFormWebPart ()#1 (0.29 ms)<br />SPPageStateControl:OnPreRender (0.91 ms)<br />Render Ribbon. (3.14 ms)<br />Render WebPart Zone TopZone (0.39 ms) <br />Render WebPart Press Releases (0.35 ms) <br />Xslt Transform (0.12 ms)<br />Twitter: @gvaro<br />Email:<br />Blog:<br />Company:<br />
  51. 51. Developer Dashboard<br />Basic Statistics of the page load process<br />Twitter: @gvaro<br />Email:<br />Blog:<br />Company:<br />
  52. 52. Developer Dashboard<br />Inspection of SQL Queries<br />Twitter: @gvaro<br />Email:<br />Blog:<br />Company:<br />
  53. 53. Developer Dashboard<br />Inspection of <br />SPRequest Objects<br />Twitter: @gvaro<br />Email:<br />Blog:<br />Company:<br />
  54. 54. Developer Dashboard<br />Additional Information on…<br /><ul><li>Service Calls
  55. 55. Asserts and Critical Events
  56. 56. Web Parts Events Offsets</li></ul>More Information on my blog<br /><ul><li>
  57. 57. Programmatically enabling/disabling DD
  58. 58. Beta 2 PowerShell commands
  59. 59. Additional API configuration
  60. 60. (Extensions)</li></ul>Twitter: @gvaro<br />Email:<br />Blog:<br />Company:<br />
  61. 61. PowerShell<br />Twitter: @gvaro<br />Email:<br />Blog:<br />Company:<br />
  62. 62. PowerShell<br />SharePoint 2010 Management Console<br />Command environment allows for scripting<br />Leverage the API directly<br />More flexible, extensible, faster, and powerful than STSADM<br />Snap-in for PowerShell for SharePoint Administration<br />Hundreds of cmdlets available OOTB<br />Can tweak options that cannot be done in the UI<br />Twitter: @gvaro<br />Email:<br />Blog:<br />Company:<br />
  63. 63. Demo<br />Using PowerShell to Enable <br />the Developer Dashboard<br />Twitter: @gvaro<br />Email:<br />Blog:<br />Company:<br />
  64. 64. PowerShell<br />CMDLETS<br />Get-help <cmdlet><br />Get-help <cmdlet> -detailed<br />Get-Command Get-SP*<br />Get and Set<br />Get retrieves information<br />Set changes information<br />Twitter: @gvaro<br />Email:<br />Blog:<br />Company:<br />
  65. 65. PowerShell<br />For More Information…<br />Windows PowerShell for SharePoint 2010 Administrator<br /><br />PowerShell CHM for SharePoint 2010<br /><br />Global SharePoint Users Group Meeting From 2/2<br />Paul Schaeflein Talking about PWS in 2010! <br /><br />Twitter: @gvaro<br />Email:<br />Blog:<br />Company:<br />
  66. 66. Sandboxed<br />Solutions<br />Twitter: @gvaro<br />Email:<br />Blog:<br />Company:<br />
  67. 67. Sandboxed Solutions<br /><ul><li>Restrictions can be placed on them
  68. 68. Memory, CPU, SQL, Exceptions, Handles, Threads, etc.
  69. 69. Protects Farms by running solutions within a separate process
  70. 70. Restricted by .NET Code Access Security Policy
  71. 71. Allows Site Admins to deploy 3rd party Solutions without worrying about harming the farm
  72. 72. Exposes a subset of the Microsoft.SharePoint namespace
  73. 73. Deployment in Site Collection Solution Gallery
  74. 74. Managed and Monitored in Central Administration
  75. 75. Visual Studio 2010 Required to Build Solutions</li></ul>Twitter: @gvaro<br />Email:<br />Blog:<br />Company:<br />
  76. 76. Sandboxed Solutions<br />Supported Solutions<br /><ul><li>Content Types
  77. 77. Site Columns
  78. 78. Custom Actions
  79. 79. Declarative Workflows
  80. 80. Event and Feature Receivers
  81. 81. InfoPath Forms Services
  82. 82. JavaScript, AJAX, jQuery, Silverlight
  83. 83. List Definitions
  84. 84. Non-visual Web Parts
  85. 85. Site Pages</li></ul>Twitter: @gvaro<br />Email:<br />Blog:<br />Company:<br />
  86. 86. Sandboxed Solutions<br />Separate Processes<br /><ul><li>User Code Service
  87. 87. SPUCHostProcess.exe
  88. 88. Sandbox Worker Process
  89. 89. SPUCWorkerProcess.exe
  90. 90. Sandbox Worker Process Proxy
  91. 91. SPUCWorkerProcessProxy.exe</li></ul>Twitter: @gvaro<br />Email:<br />Blog:<br />Company:<br />
  92. 92. Sandboxed Solutions<br />What is available from the Microsoft.SharePoint Namespace<br />Microsoft.SharePointExcept<br /><ul><li>SPSite constructor
  93. 93. SPSecurity object
  94. 94. SPWorkItem and SPWorkItemCollection objects
  95. 95. SPAlertCollection.Addmethod
  96. 96. SPAlertTemplateCollection.Add method
  97. 97. SPUserSolution and SPUserSolutionCollection objects
  98. 98. SPTransformUtilities</li></ul>Microsoft.SharePoint.Navigation<br />Microsoft.SharePoint.UtilitiesExcept<br /><ul><li>SPUtility.SendEmail method
  99. 99. SPUtility.GetNTFullNameandEmailFromLogin method</li></ul>Microsoft.SharePoint.Workflow<br />Microsoft.SharePoint.WebPartPagesExcept<br /><ul><li>SPWebPartManager object
  100. 100. SPWebPartConnection object
  101. 101. WebPartZone object
  102. 102. WebPartPage object
  103. 103. ToolPane object
  104. 104. ToolPart object</li></ul>Twitter: @gvaro<br />Email:<br />Blog:<br />Company:<br />
  105. 105. Sandboxed Solutions<br />If you are running SharePoint on a DC, you will need to run the following PowerShell script to enable Sandboxed Solutions…<br />$acl = Get-Acl HKLM:SystemCurrentControlSetControlComputerName$person = [System.Security.Principal.NTAccount]"Users" $access = [System.Security.AccessControl.RegistryRights]::FullControl$inheritance = [System.Security.AccessControl.InheritanceFlags]"ContainerInherit, ObjectInherit" $propagation = [System.Security.AccessControl.PropagationFlags]::None $type = [System.Security.AccessControl.AccessControlType]::Allow $rule = New-Object System.Security.AccessControl.RegistryAccessRule($person, $access, $inheritance, $propagation, $type) $acl.AddAccessRule($rule) Set-Acl HKLM:SystemCurrentControlSetControlComputerName $acl<br />…and then make sure the User Code service is running in Central Admin<br />Twitter: @gvaro<br />Email:<br />Blog:<br />Company:<br />
  106. 106. Sandboxed Solutions<br /><ul><li>All Sandboxed Solutions Follow a Point System
  107. 107. Managed via Quota Templates in Central Admin
  108. 108. Hit allocation, you get an error in the Web part
  109. 109. ~1 day until you can use the web parts again
  110. 110. Site admins can monitor via Solutions gallery</li></ul>Twitter: @gvaro<br />Email:<br />Blog:<br />Company:<br />
  111. 111. Sandboxed Solutions<br />Default Resource Measurements<br />AbnormalProcessTerminationCount: 1<br />CPUExecutionTime: 3600 <br />CriticalExceptionCount: 3600 <br />InvocationCount: 100 <br />PercentProcessorTime: 85 <br />ProcessCPUCycles: 100000000000 <br />ProcessHandleCount:10000 <br />ProcessIOBytes: 10000000 <br />ProcessThreadCount: 10000 <br />ProcessVirtualBytes: 100000000 <br />SharePointDatabaseQueryCount: 20 <br />SharePointDatabaseQueryTime: 120 <br />UnhandledExceptionCount: 50 <br />UnresponsiveprocessCount: 2<br />Twitter: @gvaro<br />Email:<br />Blog:<br />Company:<br />
  112. 112. Sandboxed Solutions<br />Additional Resources<br />SahilMalik’s Blog Series on Sandboxed Solutions<br /><br /><br />Channel 9<br /><br />Twitter: @gvaro<br />Email:<br />Blog:<br />Company:<br />
  113. 113. Sandboxed Solutions<br />There’s a session on this!<br />“SharePoint 2010 Sandboxed Solutions”<br />Srini Sistla<br />10:45am – 12pm<br />Rhode Island Room<br />Followed up promptly by PIZZA (Thanks AvePoint!)<br />Twitter: @gvaro<br />Email:<br />Blog:<br />Company:<br />
  114. 114. Demo<br />Sandboxed Solutions<br />Twitter: @gvaro<br />Email:<br />Blog:<br />Company:<br />
  115. 115. SharePoint API<br />Twitter: @gvaro<br />Email:<br />Blog:<br />Company:<br />
  116. 116. API<br />Client Object Model<br />Simple API to perform CRUD and Management of Data in SharePoint<br />.NET<br />Microsoft.SharePoint.Client<br />Microsoft.SharePoint.Client.Runtime<br />Silverlight<br />Microsoft.SharePoint.Client.Silverlight<br />Microsoft.SharePoint.Client.Silverlight.Runtime<br />JavaScript<br />SP.js<br />SP.Core.js<br />SP.Runtime.js<br />Twitter: @gvaro<br />Email:<br />Blog:<br />Company:<br />
  117. 117. API<br />Client Object Model<br />Offers a familiar and consistent object model across multiple development platforms to interact with SharePoint.<br />Utilizes JSON and XML<br />Connects to Client.svc, rather than Web Services for interaction<br />Commands are batched automagically for performance considerations<br />Twitter: @gvaro<br />Email:<br />Blog:<br />Company:<br />
  118. 118. API<br />Client Object Model<br />There’s another session on it!<br />Here…<br />Today…<br />Right now actually in the Rhode Island Room!<br />Twitter: @gvaro<br />Email:<br />Blog:<br />Company:<br />
  119. 119. API<br />LINQ to SharePoint<br />Entity Based Programming<br />Strong Types and Intellisense<br />Supports List Joining<br />Join Lists based on Lookup Fields<br />Multiple Lists<br />Twitter: @gvaro<br />Email:<br />Blog:<br />Company:<br />
  120. 120. API<br />LINQ to SharePoint<br />There’s a session on this too!<br />“Developing with LINQ to SharePoint 2010”<br />Steven M. Fowler<br />2:30p – 3:45p in the Rhode Island room<br />Twitter: @gvaro<br />Email:<br />Blog:<br />Company:<br />
  121. 121. Resources<br />My Blog<br /><br />More information<br /><br />SharePoint Development Wiki<br /><br />Microsoft SharePoint 2010 SDK<br /><br />Twitter: @gvaro<br />Email:<br />Blog:<br />Company:<br />
  122. 122. Q&A<br />Twitter: @gvaro<br />Email:<br />Blog:<br />Company:<br />
  123. 123. About Me<br />Geoff Varosky MCP, MCTS<br />Senior Solutions Developer for Grace-Hunt, LLC.<br />Company:<br />Blog:<br />Email:<br />Twitter: @gvaro<br />