Intro to SharePoint for Developers


Published on

From devLInk 2010 in Nashville, TN.

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
  • In the beginning there was custom code. Every new project started out the same way.I am a firm believer in frameworksPlatform is a framework on steroids….we’ll talk about the Much Other Stuff
  • If it is just a 5-page brochure site with static text, SharePoint may not be for you.If it is simply a CMS solution for a public-facing web site, DNN may be a better toolSharepoint scalesSome people adopt it just because of the authentication integration with AD and security trimmingSome got it in the door through a requirement for a blogOthers just needed a simple workflow application over documents in a library
  • Compare to facebook apps, iGoogle gadgets, Vista gadgets
  • Key factor in user adoption and acceptance!
  • One partner said if his client won’t use SharePoint for a web project, he walks away…..that’s hard coreSame vocabulary
  • Collaboration – Blogs, wikis, discussions, check-in/check-out
  • Centralized knowledge managementTargetable to all levels of your organization
  • EAI - Popular at the turn of the millennium, but on the decline with the advent of SOAData is shared between the disparate systems…sometimes creating redundancy and latency….multiple versions of the truth…Which system is the system of record?
  • With SharePoint you get a service-oriented architecture and connectors via Business Connectivity ServicesYou end up with a single version of the truth and one portal to go to for all of your data mining
  • DV web part – put a plug for Vanessa’s sessionInfopath – story of SSG
  • Compare to BlackBerry, Windows Mobile or iPhoneCompare to facebook or twitter
  • Stats above from survey of 258 companies who are already using sharepointFrom 2008 SharePoint ReportAt the Microsoft-sponsored SharePoint Conference 2008, Bill Gates shared that Microsoft hadlicensed more than 100 Million seats to the platform and generated more than $US 1 Billionfrom that. To be sure, many of those seats fall under enterprise license agreements and may notreflect actual usage, but even if a fraction of those users actually logs into SharePoint each day,clearly it makes for the most significant – and fastest growing – information platform on themarket today.Number of seats is projected to grow by 25% each year.
  • Before frameworks and platforms, there was custom code. Every new project started out the same way.
  • Intro to SharePoint for Developers

    1. 1. Introduction toSharePoint Development<br />for .NET developers<br />
    2. 2. About me<br />Rob Wilson – MCT, SharePoint MCTS/MCITP<br />Gold Partner in Evansville, IN<br />SharePoint 2003 20072010<br />Email:<br />Twitter: @theRobManDotNet<br />Blog(s):<br /><br /><br />
    3. 3. Agenda<br />
    4. 4. The SharePoint Platform<br />SharePoint Foundation 2010 (f.k.a. WSS 3.0)<br />SharePoint Server 2010 (f.k.a. MOSS 2007)<br />Which edition is right for me?<br />Why should I develop on a platform?<br />
    5. 5. Why Platforms?<br />Platform<br />Significant cost reduction and standardization.<br />10-15% of the effort. Lost projects because of one-time costs.<br />Business Apps<br />Much Other Stuff<br />RAD<br />Custom Code<br />MVC Framework<br />SEO Friendly<br />Business Apps<br />Business Apps<br />Standards-Based<br />Search<br />RAD<br />Separation of Roles<br />Error Handling<br />SEO Friendly<br />Uniformity<br />Standards-Based<br />Search<br />Content Management<br />Separation of Roles<br />Administration Area<br />Content Management<br />Administration Area<br />Uniformity <br />Error Handling<br />Error Handling<br />Menus<br />Menus<br />Menus (Menu Control)<br />Authorization<br />Authorization<br />Authorization<br />Authentication<br />Authentication<br />Authentication<br />
    6. 6. When the requirements call for it<br />Not a brochure site<br />Authentication and search required<br />Does not have to be a large-scale project<br />No-brainer for most intranets<br />
    7. 7. When you need self-service<br />Web Parts (re-usability)<br />Subscriptions and alerts<br />RSS<br />Recycle Bin<br />My Site<br />Connecting with peers<br />Publishing<br />
    8. 8. When you need personalization/socialization<br />From a webmaster’s perspective<br />Targeted content<br />From a visitor’s perspective<br />Ability to customize look and feel<br />Tagging and newsfeeds<br />Organizational chart and peer suggestions<br />
    9. 9. When you need workflow<br />Based on Workflow Foundation<br />In addition:<br />SharePoint front-end<br />Document libraries and task lists<br />Workflow history lists<br />
    10. 10. When you want flexible development options<br />Web Parts<br />Object model<br />Client object model (managed code, JavaScript, SilverLight)<br />Web services<br />Separation of development roles<br />GUI expert, workflow developer, reports and queries, event handlers<br />Varying levels of experience on a project team<br />
    11. 11. When you want focus on the business requirements<br />Do not worry about how someone will find your application or how it integrates with the security model<br />Eliminate the headache of external content repositories<br />
    12. 12. When you want consistency in your support footprint<br />Common user interface<br />Vocabulary<br />Standardized code base<br />
    13. 13. When you want to take advantage of the inherent features of the platform<br />Collaboration<br />Portal<br />Content Management<br />Search<br />Business Intelligence<br />Forms and Business Processes<br />
    14. 14. When you want to offset the cost of development<br />More time spent in the planning and design stages should surface more out-of-the-box features [that should save time later]<br />Out-of-the-box features should reduce the cost of custom software development<br />Developer focus should shift immediately to the business needs and extending the out-of-the-box features<br />
    15. 15. When you need SOA<br />Rest API expose SharePoint content<br />Use the object model to create your own web services/WCFs<br />
    16. 16. When you need composite applications<br />Dashboards, Mash-ups<br />Business Connectivity Services<br />All levels of your organization<br />
    17. 17. When you need composite applications<br />ERP<br />Before SharePoint<br />CRM<br />Legacy Systems<br />Middleware<br />
    18. 18. When you need composite applications<br />ERP<br />SharePoint<br />CRM<br />Legacy Systems<br />
    19. 19. When you need Single Sign On<br />Multiple built-in authentication options<br />Support for third-party authentication providers<br />Built-in SSO provider<br />Manages credentials for other apps on your intranet<br />
    20. 20. When you need off-line support of your data<br />Office Integration<br />Importing/exporting lists from/to excel<br />Linked tables with Access<br />Calendar/Task List integration with Outlook<br />Groove/SharePoint Workspace<br />
    21. 21. When you need auditing and retention policies<br />Log just the events you need for what lists are of interest to you<br />Develop auditing reports using SSRS<br />Develop/customize workflows for content retention and disposal<br />
    22. 22. When you need to equip your power users<br />SharePoint Designer<br />Custom queries with Data View Web Part<br />Simple workflows<br />InfoPath<br />Simple forms – really! <br />
    23. 23. When your culture allows for it<br />User acceptance is key<br />Large implementations are going to take a team of both IT and line of business users<br />Will likely require a paradigm shift (point is to share, not hoard)<br />Small, quick wins where possible<br />
    24. 24. When a development community is important to you<br />Blogs and forums<br />Community video tutorials<br />User Groups<br />CodePlex<br />Commercial/Open Source Features and Web Parts<br />
    25. 25. When you can no longer resist<br />Up to 92% satisfaction rating in the categories of functionality, end user experience, total cost of ownership and end user acceptance<br />Up to 59% of all companies are projected to have SharePoint or an equivalent platform by the end of this 2008 and that number was projected to increase 19% between 2009 and 2011<br />
    26. 26. When you want to build your resume<br /> 2,800 jobs (JUL 2010)<br /> 1,000+ jobs (JUL 2010)<br /> ~500 jobs (JUL 2010)<br />
    27. 27. Alternatives<br />Free Bulletin<br />Board<br />Free Blog Host<br />JavaScript Menu Builder<br />Embedded Google Calendar<br />Spam-friendly form submission scripts<br />Coffee Cup Editor for CMS<br />
    28. 28.<br />Editions<br />
    29. 29. Overview of SharePoint Development Tools<br />InfoPath 2010<br />smtp4dev<br />
    30. 30. SharePoint Development Environment for .NET<br />SharePoint no longer required on development machine in some cases, but recommended<br />Virtual environment<br />64-bit is a must<br />RAM is your friend<br />Upcoming session at devLINK<br />
    31. 31. Visual Studio Solutions for SharePoint<br />Formerly 2 <br />Gaps filled with CodePlex add-ons<br />Now 14 OOB<br />
    32. 32. SharePoint Solution Architectures<br />* New Client Object Model exists for Managed .NET, Silverlight and ECMA Script<br />
    33. 33. Object Model – Server Architecture<br />
    34. 34. SPSite<br />SPWeb<br />SPList<br />SPField<br />SPItem<br />Object Model – Site Architecture<br />
    35. 35. Feature Activated<br />List Definition with Event Handler<br />Demo<br />
    36. 36.
    37. 37. Client Object Model<br />Demo<br />
    38. 38. Client Object Model Files<br />Managed Client (CLR based)<br />C:Program FilesCommon FilesMicrosoft SharedWeb Server Extensions14ISAPI<br />Microsoft.SharePoint.Client (281 kb)<br />Microsoft.SharePoint.Client.Runtime (145 kb)<br />FYI: Microsoft.SharePoint.dll is 15.3 mb<br />JavaScript Client<br />C:Program FilesCommon FilesMicrosoft SharedWeb Server Extensions14TemplateLayouts<br />SP.js (380 kb)<br />SP.Core.js (13 kb)<br />SP.Runtime.js (68 kb)<br />
    39. 39. Client Object Model Files<br />Silverlight Client<br />C:Program FilesCommon FilesMicrosoft SharedWeb Server Extensions14TemplateLayoutsClientBin<br />Microsoft.SharePoint.Client.Silverlight (262 kb)<br />Microsoft.SharePoint.Client.Silverlight.Runtime (138 kb)<br />
    40. 40. Client Object Model<br />Allows you to write SharePoint applications that run on different platforms w/o using web services<br />Traditional .NET, Web/JavaScript and Silverlight developers can use familiar syntax<br />
    41. 41. New Features<br />Ease of deployment<br />Publish and run if SharePoint on local host<br />Package and deploy if SharePoint remote<br />Debugging<br />Step through code if SharePoint on local host<br />Sandbox solutions<br />Allow applications to be deployed at the site collection level by a site collection administrator (as opposed to farm-level equivalent)<br />
    42. 42. New Features<br />Silverlight Web Part<br />Upload XAP file to a document library and reference it<br />
    43. 43. New Features<br />LINQ Support<br />No longer restricted to just CAML queriesif writing server-based code<br />Create strongly typed SharePoint objects using SPMetal utility<br />
    44. 44. New Features<br />Dialog framework<br />External Lists<br />Looks and behaves like a SharePoint list<br />Stored in SQL Server or some other data source<br />
    45. 45. For More Information<br />Hands On Labs:<br /><br />Or<br /> (you’re welcome!)<br />Developer Training Kit<br /><br />MSDN Training Videos<br /><br />