SharePoint Saturday NYC 1/30/10 - Whats New For Developers In Share Point 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 NYC 1/30/10 - Whats New For Developers In Share Point 2010

  1. 1. What’s New for Developers in SharePoint 2010Geoff Varosky<br />
  2. 2. PLEASE FILL OUT<br />YOUR EVALS? PLEASE?<br />Up for Grabs…<br />(3) 2010 Stickers<br />(2) Books<br />Twitter: @gvaro<br />Email:<br />Blog:<br />Company:<br />
  3. 3. About Me<br />Geoff Varosky MCP, MCTS<br />Senior Solutions Developer for Grace-Hunt, LLC.<br />Blog:<br />Email:<br />Twitter: @gvaro<br />
  4. 4. 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 />
  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. Demo<br />SharePoint Designer 2010<br />Twitter: @gvaro<br />Email:<br />Blog:<br />Company:<br />
  28. 28. Visual Studio<br />2010<br />Twitter: @gvaro<br />Email:<br />Blog:<br />Company:<br />
  29. 29. 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 />
  30. 30. Visual Studio 2010 & SharePoint Toolkit<br />Twitter: @gvaro<br />Email:<br />Blog:<br />Company:<br />
  31. 31. Visual Studio 2010 & SharePoint Toolkit<br />Twitter: @gvaro<br />Email:<br />Blog:<br />Company:<br />
  32. 32. 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 />
  33. 33. 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 />
  34. 34. 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 />
  35. 35. 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 />
  36. 36. 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 />
  37. 37. Demo<br />Visual Studio 2010<br />Twitter: @gvaro<br />Email:<br />Blog:<br />Company:<br />
  38. 38. Developer<br />Dashboard<br />Twitter: @gvaro<br />Email:<br />Blog:<br />Company:<br />
  39. 39. Developer Dashboard<br /> Powerful interface to debug and/or monitor page performance<br />Twitter: @gvaro<br />Email:<br />Blog:<br />Company:<br />
  40. 40. 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 = &quot;OnDemand&quot;<br />(Get-SPFarm).PerformanceMonitor.DeveloperDashboardLevel = &quot;On&quot;<br />Twitter: @gvaro<br />Email:<br />Blog:<br />Company:<br />
  41. 41. 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 = &quot;Off&quot;<br />Twitter: @gvaro<br />Email:<br />Blog:<br />Company:<br />
  42. 42. Developer Dashboard<br />Twitter: @gvaro<br />Email:<br />Blog:<br />Company:<br />
  43. 43. 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 />
  44. 44. Developer Dashboard<br />Basic Statistics of the page load process<br />Twitter: @gvaro<br />Email:<br />Blog:<br />Company:<br />
  45. 45. Developer Dashboard<br />Inspection of SQL Queries<br />Twitter: @gvaro<br />Email:<br />Blog:<br />Company:<br />
  46. 46. Developer Dashboard<br />Inspection of <br />SPRequest Objects<br />Twitter: @gvaro<br />Email:<br />Blog:<br />Company:<br />
  47. 47. Developer Dashboard<br />Additional Information on…<br /><ul><li>Service Calls
  48. 48. Asserts and Critical Events
  49. 49. Web Parts Events Offsets</li></ul>More Information on my blog<br /><ul><li>
  50. 50. Programmatically enabling/disabling DD
  51. 51. Beta 2 PowerShell commands
  52. 52. Additional API configuration
  53. 53. (Extensions)</li></ul>Twitter: @gvaro<br />Email:<br />Blog:<br />Company:<br />
  54. 54. PowerShell<br />Twitter: @gvaro<br />Email:<br />Blog:<br />Company:<br />
  55. 55. 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 />
  56. 56. Demo<br />Using PowerShell to Enable <br />the Developer Dashboard<br />Twitter: @gvaro<br />Email:<br />Blog:<br />Company:<br />
  57. 57. PowerShell<br />CMDLETS<br />Get-help &lt;cmdlet&gt;<br />Get-help &lt;cmdlet&gt; -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 />
  58. 58. 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 2/2<br />Paul Schaeflein Talking about PWS in 2010! <br /><br />Twitter: @gvaro<br />Email:<br />Blog:<br />Company:<br />
  59. 59. Sandboxed<br />Solutions<br />Twitter: @gvaro<br />Email:<br />Blog:<br />Company:<br />
  60. 60. Sandboxed Solutions<br /><ul><li>Restrictions can be placed on them
  61. 61. Memory, CPU, SQL, Exceptions, Handles, Threads, etc.
  62. 62. Protects Farms by running solutions within a separate process
  63. 63. Restricted by .NET Code Access Security Policy
  64. 64. Allows Site Admins to deploy 3rd party Solutions without worrying about harming the farm
  65. 65. Exposes a subset of the Microsoft.SharePoint namespace
  66. 66. Deployment in Site Collection Solution Gallery
  67. 67. Managed and Monitored in Central Administration
  68. 68. Visual Studio 2010 Required to Build Solutions</li></ul>Twitter: @gvaro<br />Email:<br />Blog:<br />Company:<br />
  69. 69. Sandboxed Solutions<br />Supported Solutions<br /><ul><li>Content Types
  70. 70. Site Columns
  71. 71. Custom Actions
  72. 72. Declarative Workflows
  73. 73. Event and Feature Receivers
  74. 74. InfoPath Forms Services
  75. 75. JavaScript, AJAX, jQuery, Silverlight
  76. 76. List Definitions
  77. 77. Non-visual Web Parts
  78. 78. Site Pages</li></ul>Twitter: @gvaro<br />Email:<br />Blog:<br />Company:<br />
  79. 79. Sandboxed Solutions<br />Separate Processes<br /><ul><li>User Code Service
  80. 80. SPUCHostProcess.exe
  81. 81. Sandbox Worker Process
  82. 82. SPUCWorkerProcess.exe
  83. 83. Sandbox Worker Process Proxy
  84. 84. SPUCWorkerProcessProxy.exe</li></ul>Twitter: @gvaro<br />Email:<br />Blog:<br />Company:<br />
  85. 85. Sandboxed Solutions<br />What is available from the Microsoft.SharePoint Namespace<br />Microsoft.SharePointExcept<br /><ul><li>SPSite constructor
  86. 86. SPSecurity object
  87. 87. SPWorkItem and SPWorkItemCollection objects
  88. 88. SPAlertCollection.Addmethod
  89. 89. SPAlertTemplateCollection.Add method
  90. 90. SPUserSolution and SPUserSolutionCollection objects
  91. 91. SPTransformUtilities</li></ul>Microsoft.SharePoint.Navigation<br />Microsoft.SharePoint.UtilitiesExcept<br /><ul><li>SPUtility.SendEmail method
  92. 92. SPUtility.GetNTFullNameandEmailFromLogin method</li></ul>Microsoft.SharePoint.Workflow<br />Microsoft.SharePoint.WebPartPagesExcept<br /><ul><li>SPWebPartManager object
  93. 93. SPWebPartConnection object
  94. 94. WebPartZone object
  95. 95. WebPartPage object
  96. 96. ToolPane object
  97. 97. ToolPart object</li></ul>Twitter: @gvaro<br />Email:<br />Blog:<br />Company:<br />
  98. 98. 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]&quot;Users&quot; $access = [System.Security.AccessControl.RegistryRights]::FullControl$inheritance = [System.Security.AccessControl.InheritanceFlags]&quot;ContainerInherit, ObjectInherit&quot; $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 />
  99. 99. Sandboxed Solutions<br /><ul><li>All Sandboxed Solutions Follow a Point System
  100. 100. Managed via Quota Templates in Central Admin
  101. 101. Hit allocation, you get an error in the Web part
  102. 102. ~1 day until you can use the web parts again
  103. 103. Site admins can monitor via Solutions gallery</li></ul>Twitter: @gvaro<br />Email:<br />Blog:<br />Company:<br />
  104. 104. 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 />
  105. 105. Sandboxed Solutions<br />Additional Resources<br />SahilMalik’s Blog Series on Sandboxed Solutions<br /><br /><br />Channel 9<br /><br />SharePoint 2010 Sandboxed Solutions session<br />Presented by SriniSistla<br />4PM today in Room 2 (this room)<br />Twitter: @gvaro<br />Email:<br />Blog:<br />Company:<br />
  106. 106. Demo<br />Sandboxed Solutions<br />Twitter: @gvaro<br />Email:<br />Blog:<br />Company:<br />
  107. 107. SharePoint API<br />Twitter: @gvaro<br />Email:<br />Blog:<br />Company:<br />
  108. 108. 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 />
  109. 109. 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 />
  110. 110. 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 />
  111. 111. 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 />
  112. 112. Q&AAsk The Experts Session @ 2:30PM in Room 2 (this room)<br />Twitter: @gvaro<br />Email:<br />Blog:<br />Company:<br />
  113. 113. 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 />
  114. 114. Speaking Schedule<br />SharePoint Saturday Boston<br />February 27th, 2010, Waltham, MA<br />What’s New for Developers in SharePoint 2010<br /><br />Registration open as of Wednesday, January 27th<br />Western Massachusetts Microsoft Technology Users Group<br />April 20th, 2010, Chicopee, MA<br />Creating Custom Actions within SharePoint<br /><br />