What’s New for Devs


Published on

Published in: Technology
  • Be the first to comment

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

No notes for slide
  • This diagram displays how the transport mechanism worksManage client OM = .NET / SilverlightAll communication goes through the client.svc WCF serviceMicrosoft implemented the client OM by decorating the core SharePoint OM with attributes if it was “client aware”[ClientCallableType(Name=“Web”,[…]),[…]]public class SPWeb {}Then a code gen tool generates the client OM assemblies and JavaScriptThis ensures that there’s fidelity between all the client OM’s and the server equiv
  • Now that pages are the topic of discussion, master pages and a little branding fits in too. SharePoint 2010 ships with a number of master pages. Important topics to discuss on this slide is how application pages can now also make use of branded master pages, and how there is a default.master that ships the (non-fluent) v3 UI for backwards compatibility.
  • Generally you can do most things you can with full solutions, at least those within the context of a site collection. You cannot deploy files on disc or assemblies to the GAC.
  • This chronicles the process of using a custom "bugs" Web Part and solution in a particular site.The SPSite adminuploads a new solution package (*.wsp) into the Solution Gallery of the SPSite. The SPSite admin"activates" the solution.  This activates the features within the solution.  Web Part files are copied into the Web Part gallery.As part of the activation, solution is validated using the validation framework. Custom validator can be added for example to check that only solutions signed with certain key can be activated. Customers and partners can develop their own validators based on their needs.Some time later, a user decides to add a Web Part to their home page.  They go into Web Part edit mode, and click "Add a Web Part".  They notice the additional Web Part options, and click Add. SharePoint now checks to see if the bugs.dll file, which backs this Web Part, is installed into the assembly cache.  It is not. The assembly is faulted into the assembly cache; it is extracted and copied from the solution file to temporary folder in disk and loaded to memory (disk is cleaned immediately). Now the Web Part is about to be used. It is loaded into Sandbox Code service host.Processes deliver the Web Part to be executed to the service.
  • Resource monitors keep sandbox solutions from over taxing the server.The SUM of all resource measures is the number applied to the quota.The MAX of all resource measures is used to determine if the sandbox should be turned off for a given solution one day.
  • %
  • What’s New for Devs

    1. 1. What’s New for Devs<br />Mohamed Yehia<br />
    2. 2. About the Speaker<br />Technical Architect<br />MCP since 2001, MCAD, MCSD, MCTS<br />Egypt SharePoint User Group Lead<br />SharePoint4Arabs Co-Founder<br />A SharePoint Friend since 2004<br />
    3. 3. Outline<br />Technology Stack<br />Developer Productivity<br />Platform Improvements<br />List Improvements<br />Data Access Technologies<br />UI Improvements<br />Sandbox Solutions<br />
    4. 4. SharePoint Technology Stack<br />
    5. 5. Developer Platform<br />Workstation : Windows 7 or Vista SP1<br />64 bit OS only<br />Not supported on production<br />SharePoint Foundation or SharePoint Server<br />Single Server Install<br />
    6. 6. Developer Tools<br />Dev Life with SP 2007<br />VS is Limited<br />Edit CAML files<br />Understanding RootFiles directory of WSS<br />Manual edits to manifest.xml file<br />WSP packaging nightmare<br />
    7. 7. Developer Tools<br />Dev Life with SP 2010<br />End to End Development Story<br />Visual Studio 2010<br />SharePoint Designer 2010<br />Developer Dashboard<br />
    8. 8. Visual Studio 2010<br />Instant Debugging<br />SharePoint Project<br />Project Items<br />Feature Designer<br />Workflow Designer<br />Server Explorer<br />Package Designer<br />Package Explorer<br />Import WSP<br />Import from SharePoint Designer 2010<br />Team Foundation Server Support<br />
    9. 9. SharePoint Designer 2010<br />No code tool for SharePoint<br />Free for creating and editing SharePoint artifacts<br />New Tools <br />BDC Entities<br />List Schema<br />Custom Actions<br />Task / Approval Designer<br />Improved Tools <br />Workflow Designer<br />Page Editor<br />SharePoint Designer work can be imported in Visual Studio 2010<br />
    10. 10. Developer Dashboard<br />stsadm -o setproperty -pn developer-dashboard -pvondemand<br />Quick Debug or Monitor Page Performance<br />
    11. 11. demo<br /> SP Dev Life in 2010<br />
    12. 12. List Improvements<br />Large List Support (50M items)<br />Relationships with Cascade or Block<br />Validation Rules<br />Excel Like Formula<br />Fields and Items<br />List Query Throttling<br />XSLT Views<br />
    13. 13. XSLT Views for Lists<br />Replaces CAML for Views<br />Better Performance<br />Easier edit in SPD<br />Simpler Coding Experience<br />XSLT-based views are now default<br />SharePoint Lists<br />External Lists<br />
    14. 14. Events Improvements<br />New Events<br />ListAdding & ListAdded<br />ListDeleting & ListDeleted<br />Synchronous “after” events<br />More User Interface Control <br />Custom error pages<br />
    15. 15. DEMO<br />Relational Lists<br />Validation <br />List Events<br />
    16. 16. Accessing Data<br />LINQ for SharePoint<br />Client Object Model<br />ECMA Script<br />Silverlight OM<br />.Net OM<br />REST APIs<br />
    17. 17. LINQ for SharePoint<br />Strong Types<br />LINQ Queries<br />Reference Assemblies<br />Microsoft.SharePoint.Linq<br />SPMetal code generation utility<br />Can modify list data<br />
    18. 18. demo<br />LINQ for SharePoint<br />
    19. 19. Client Object Model<br />Major request to increase web services<br />Client OM is<br />Simple API<br />an abstraction layer to return results as recognizable SharePoint objects<br />Consistent developer experience across platforms<br />.NET<br />ECMAScript<br />Silverlight<br />
    20. 20. Using the Client Object Model<br />ECMAScriptControlsand Logic<br />Browser<br />Server OM<br />JSON Response<br />ECMAScript OM<br />Client.svc<br />XML Request<br />Proxy<br />XML Request<br />Proxy<br />Contentdatabase<br />JSON Response<br />Managed OM<br />Managed Client<br />Managed Controls and Logic<br />SharePoint Server<br />
    21. 21. demo<br />Client Object Model<br />
    22. 22. REST APIs<br />
    23. 23. UI Enhancements<br />CSS<br />Split into multiple files, only download what’s necessary for the page<br />Javascript<br />Script On Demand allows delaying JavaScript download until it’s needed<br />Debug versions of files show clear JavaScript before optimizing<br />
    24. 24. UI Enhancements<br />Pages Everywhere<br />Edit Like in Word<br />Well-Formed XHTML 1.0<br />Cross-Browser (IE, Firefox, better support for Safari)<br />WCAG 2.0 AA<br />CSS<br />Split into multiple files, only download what’s necessary for the page<br />Javascript<br />Script On Demand allows delaying JavaScript download until it’s needed<br />Debug versions of files show clear JavaScript before optimizing<br />
    25. 25. Master Pages<br />Page must derive from Microsoft.SharePoint.WebControls.LayoutsPageBase<br />
    26. 26. Ribbon and Dialog Framework<br />Client Site Custom Actions in Ribbon<br />Context Sensitive Ribbon<br />The Ribbon<br />Status Bar<br />Notification Area<br />
    27. 27. Ribbon and Dialog Framework<br />Replaceable SharePoint OOB forms<br />Open as Web Page or as Dialog<br />Client Site Custom Actions in Ribbon<br />Context Sensitive Ribbon<br />
    28. 28. Ribbon and Dialog Framework<br />Dialog Framework<br />
    29. 29. demo<br />Dialog Framework<br />
    30. 30. Silverlight in SP2010<br />Office Web Applications<br />Silverlight Web Part<br />Simple way to upload<br />Silverlight CLR compatible <br />Client Object Model<br />Call SharePoint API’s<br />
    31. 31. Built on BDC from MOSS<br />Brings LOB Data Into SharePoint<br />SharePoint List with External Data<br />Read / Write<br />SharePoint Foundation<br />Office Apps<br />Client Runtime<br />Offline Operations<br />Cache<br />Design Tools<br />SharePoint<br />Visual Studio 2010<br />Enterprise<br />Search<br />Development<br />Platform<br />Business Intelligence<br />Enterprise content mgmt<br />Collaboration social<br />SharePoint Designer 2010<br />ECT Store<br />Runtime<br />Security<br />Solution Packaging<br />Out of the box UI<br />Web 2.0<br />DB<br />WCF<br />Web Service<br />.NET LOB<br />Business Connectivity Services<br />
    32. 32. Workflow Improvements<br />Visual Studio 2010 Initiation and Association Forms<br />New Workflow Design Surface in SPD<br />Import SPD Workflows into Visual Studio<br />Build SPD Actions in Visual Studio <br />Visio 2010 Workflow Design<br />Browser Based Visualization<br />Control Where Service Runs<br />Site Workflows<br />List Workflow Event Receivers<br />Pluggable Workflow Services<br />Approval Designer<br />
    33. 33. demo<br />Workflow in VS 2010<br />
    34. 34. Sandbox Solutions<br />SharePoint 2007<br />No proper hosting model defined<br />Hard to control what is being done in custom code<br />SP 2010<br />Allow a subset of ‘full’ solution features<br />Code executes in sandbox <br />Are deployed by a Site Collection administrator<br />Stored in the Solution Gallery<br />
    35. 35. Sandboxed Solution Elements<br />Web Parts<br />Lists<br />List Templates<br />Custom Actions<br />Workflows<br />Event Receivers<br />Content Types<br />Site Columns<br />…<br />
    36. 36. Sandboxed Solutions Process<br />2<br />1<br />5<br />6<br />7<br />4<br />3<br />Per-WFE AssemblyCache<br />RootSPWeb of SPSite<br />&lt;siteguid&gt;company.intranet.webpart.wspcompany.intranet.dll<br />Solution gallery<br />Web Part gallery<br />Sandboxed Code Serice<br />WebParts.wsp<br />
    37. 37. Sandbox Solution Monitoring<br />Site collection quotas specify the warning and hard limits for number of resources that can be used per day<br />Can be load balanced or executed on dedicated SharePoint Servers<br />Restrict the solutions that are allowed to run<br />Install with a farm level feature<br />[GuidAttribute(&quot;34805697-1FC4-4b66-AF09-AB48AC0F9D97&quot;)]<br />publicclassPublisherValidator:SPSolutionValidator{<br />[Persisted]<br />List&lt;string&gt;_allowedPublishers;<br />publicoverridevoidValidateSolution(<br />SPSolutionValidationProperties properties){<br />}<br />publicoverridevoidValidateAssembly(<br />SPSolutionValidationPropertiesproperties,<br />SPSolutionFileassembly){<br />}<br />}<br />
    38. 38. demo<br />Sandbox Solutions<br />
    39. 39. SharePoint Services Applications<br />
    40. 40. Upgrade Your Code<br />SharePoint 2007 code that runs within IIS should work without recompilation<br />Anything<br />Recompile<br />Binding Redirect<br />Deprecated APIs<br />Compiler Warnings<br />No future investment<br />Path issues (14 hive)<br />
    41. 41. Keep Up with the Race<br />IIS 7.0<br />Javascript<br />jQuery<br />AJAX<br />XSLT<br />Powershell<br />LINQ<br />WCF<br />WF<br />Silverlight<br />
    42. 42. Learn More<br />MSDN (http://MSSharePointDeveloper.com)<br />TechNet (http://MSSharePointITPro.com)<br />Twitter Search #SP2010<br />
    43. 43. Egypt SharePoint User Group<br />www.sharepointgroups.org/egysug<br />
    44. 44. SharePoint4Arabs<br />www.sharepoint4arabs.com<br />
    45. 45. Thanks<br />http://www.sharepoint4arabs.com/mohamedyehia<br />@mohdyehia<br />myehia@live.com<br />
    46. 46. Coming Sessions<br />December 5th<br />sponsored by dotnetworkgroup<br />Ain Shams University<br />December 19th<br />Stay tuned to EgySUG site<br />