Welcome to the Minnesota SharePoint User Group February 13th, 2008 SharePoint Development Overview Neil Iversen http://www.sharepointmn.com Agenda • • • • • Introductions Part 1 Break Part 2 Q&A http://www.sharepointmn.com User Group Goal / Objectives Develop and support a local community focused on Microsoft SharePoint Technologies • • • • Educate user group members about SharePoint Technologies Transfer knowledge within the community Communicate best practices Introduce new products / solutions http://www.sharepointmn.com Introductions – MNSPUG Sponsors Inetium (www.inetium.com) • Technology consulting company • Microsoft Gold Certified Partner • Practice area focused on SharePoint New Horizons – Minnesota (www.newhorizonsmn.com) • Microsoft Gold Certified Partner • Training on many technologies Microsoft (www.microsoft.com) http://www.sharepointmn.com www.sharepointmn.com • • • • • • Website for user group SharePoint resource documents SharePoint resource links RSS Feeds Meeting Schedule Past User Group Presentations www.sharepointmn.com http://www.sharepointmn.com Upcoming Schedule • Next Meeting • March 12th 9:00 AM to 11:30 AM • Microsoft’s Bloomington Office • Topic: TBD – Check www.sharepointmn.com for updates! • Ongoing Schedule • 2nd Wednesday of every month • 9:00 to 11:30 am • Microsoft’s Bloomington Office http://www.sharepointmn.com Other Events • Minneapolis Office Developer Interest Group *New Thursday, February 21st 5:30 PM Microsoft Bloomington Office • SharePoint Server 2007: ECM (Enterprise Content Management) Thursday, March 13th 8:30 AM to Noon At New Horizons - Edina (see their site for more details) • SharePoint Server 2007: Branding Wednesday, March 19th 8:30 AM to Noon At New Horizons - Edina (see their site for more details) • SharePoint Server 2007: BI Deep Dive (Business Intelligence) Wednesday, March 26th 8:30 AM to Noon At New Horizons - Edina (see their site for more details) http://www.sharepointmn.com Other Events • Twin Cities MPA Free Lunch ‘n’ Learn February 29th 12:00 – 2:00 PM – Microsoft Bloomington Office Managing Resource Utilization using Microsoft Project Leveling RSVP at http://www.tcmpa.org The Official Industry Association for Microsoft Office Project http://www.sharepointmn.com Conferences • Microsoft Office SharePoint Conference 2008 – March 2-6, 2008 SOLD OUT Seattle, WA http://www.mssharepointconference.com/default.aspx • Tech Ed – Developers – June 3-6, 2008 Tech Ed – IT Professionals – June 10-13, 2008 http://www.microsoft.com/events/teched2007/default.mspx Orlando, Fl http://www.sharepointmn.com Blog Posts / News: SharePoint Team Blog: • New Visual Studio Extensions for WSS http://blogs.msdn.com/sharepoint/archive/2008/02/11/announcing-the-final-release-of-vsewss-1-1-andthe-upcoming-version-1-2.aspx • DoD Resource Kit for MOSS http://blogs.msdn.com/sharepoint/archive/2008/02/09/announcing-the-dod-5015-2-resource-kit-forsharepoint-server-2007.aspx • A bunch of new tools and best practices…. http://www.sharepointmn.com Overview • • • • • Introduction SharePoint Tools Common Scenarios When not to use SharePoint Q&A http://www.sharepointmn.com Introduction • Why Develop? – – – – Add new functionality Tailor existing features to specific needs Use Line of Business Data in SharePoint Create tighter integration between different systems • Who Can Develop? – Different levels of ‘development’: • Administrators - Configuration • Super (Duper?) Power Users - Customization • Developers - Development http://www.sharepointmn.com Introduction • Why present on Development to a Non-Developer Audience? – – – – Half the battle: Knowing what is possible Identify new uses for current technology Identity bad uses for current technology Many corporate decisions aren’t made by technical people • What Can I use to Develop? http://www.sharepointmn.com What Can I use to Develop? Core Toolset • Office Suite – SharePoint Designer – InfoPath – Excel • Visual Studio http://www.sharepointmn.com Core Technologies Core technologies common across SharePoint Customization/Development • Office Applications • HTML/XML/XSLT/Javascript – – – • Easiest way to alter SharePoint, Power User friendly Limited in size of potential change, deployment concerns, potential brittleness Examples: InfoPath, Excel, SharePoint Designer Can create powerful customizations, without deploying code Some specialized knowledge is usually required Examples: Master Pages, Content By Query, Search Results .NET – – – Extremely powerful, offers most functionality Also requires the most knowledge and infrastructure Examples: Web Parts, Workflows http://www.sharepointmn.com Difficulty – – – Getting Started With SharePoint Development • Understanding the environment • How to interact with SharePoint • Knowing SharePoint’s capabilities and limitations http://www.sharepointmn.com (Programatically) Reach out and Touch SharePoint • 3 Main Developer Access Methods (APIs) – SharePoint Object Model – SharePoint Web Services – Remote Procedure Calls (RPC) http://www.sharepointmn.com SharePoint Object Model • Nearly Complete Access – Can hit almost everything in SharePoint • Simple to Use – Much easier than other methods – Comfortable development paradigm • Widely Used – Support: Newsgroups, books, presentations… – Used internally to support various actions • Not Remoteable http://www.sharepointmn.com SharePoint Web Services • Provide a standardized way to access • Language Independant • Doesn’t support all operations – Different versions have different abilities • Needs some XML parsing http://www.sharepointmn.com Remote Procedure Calls • • • • • Most capable of the Remote Options (for Document Scenarios) Most dangerous as well Powers some Office Suite SharePoint integrations Difficult to use Poorly documented http://www.sharepointmn.com SharePoint is an ASP.NET Application • A really big, slightly scary, extremely complicated ASP.NET application • Core skillset from traditional development is still valid • Can actually run an ASP.NET app under SharePoint ASP 2.0 SharePoint SP SharePoint SP ASP Site 1 http://www.sharepointmn.com Site 2 App ASP App SharePoint as a Development Platform • Now we know a little ‘how’, what about ‘when’? – How do I know my project is a good fit for SharePoint? http://www.sharepointmn.com Key SharePoint Development Platform Scenarios Collaboration Document Centric Personalization http://www.sharepointmn.com Multiple LOB Systems SharePoint Search Collaboration Document Centric Personalization Personalization • General – – SharePoint knows who you are, except on the internet Creates an immediate context for the user • – Security first, tailor the view later Requirement for display based on individual or role • Profile can provide role information • MySites – Personal Location for users – Customize look and feel – Real value is in the user’s context • The Ubiquitous Web Part – – – – – Most common development activity…in V2 Supports ‘targeting’ to groups of users Easily store preferences: For all users, or a specific one Mix and Match with Web Part Connections No UI Editor for developers: SmartPart eases the pain http://www.sharepointmn.com Multiple LOB Systems SharePoint Search Demo – Using WebParts http://www.sharepointmn.com Collaboration Document Centric Personalization Personalization – What’d I see? • Web Parts – Out of the Box • • Content Editor Web Part – HTML Development URL Filter - Configuration – Custom • • SPWeb Property Setter - .NET WebPart or Code Product Class Provider - .NET WebPart http://www.sharepointmn.com Multiple LOB Systems SharePoint Search Collaboration Document Centric Personalization Multiple LOB Systems SharePoint Document Centric • General – Dealing with Documents – Capturing data both in and associated with Documents • Capturing Data – – – – Office Suite Uploads (files and Document Information Panel) InfoPath Forms (and Forms Services) – Allows .NET Code Custom Fields Integrate with the Office Suite directly • Documents as Business Objects – Policies: Routing and Expiration – Event Handlers: Fire on events and set metadata, permissions or run other code – External Applications: Interface with the documents in SharePoint http://www.sharepointmn.com Search Demo – Document Centric http://www.sharepointmn.com Collaboration Document Centric Personalization Document Centric – What’d I See? • Custom Field – .NET Code • Uses Object Model – Deployed to the Hive – XML/HTML • Uses JavaScript for on the fly rendering • Standard Windows Application – .NET Code • • • Standard WinForm Code Uses SharePoint Web Services Uses RPC for MetaData http://www.sharepointmn.com Multiple LOB Systems SharePoint Search Break http://www.sharepointmn.com Collaboration Document Centric Personalization Multiple LOB Systems SharePoint Collaboration • General – Multiple people need to work with the same files – Versioning and application integration make it easy – Routing becomes the biggest concern • Workflow – Out of the Box offers limited modifications – SharePoint Designer Workflows – Configuration and Custom Activities – Visual Studio Workflows – Harness the full power of .NET and the Object Model • Other Options – Mobile Views – Allow collaboration from anywhere – Extranet • ASP Forms Authentication – SharePoint Designer UI Changes • ASP Master Page • Content Pages • Direct Page Editing http://www.sharepointmn.com Search Demo – Collaboration http://www.sharepointmn.com Customizing the Mobile Display • Customizations stored \12\TEMPLATE\CONROLTEMPLATE\ • Pages can be customized by the template and section Title Contents Navigation Mobile_STS_HomePage_Title.ascx Mobile_STS_HomePage_Contents.ascx Mobile_STS_HomePage_Navigation.ascx Collaboration Document Centric Personalization Collaboration – What’d I See? • SharePoint Designer Custom Action – Windows Workflow Activity • .NET – ACTIONS File • XML – Authorized Types • Configuration • Subset of full Visual Studio functionality – Can also create Custom Conditions • “Is the Bike associated with this item in stock?” http://www.sharepointmn.com Multiple LOB Systems SharePoint Search Collaboration Document Centric Personalization Multiple LOB Systems SharePoint Multiple LOB Systems • General – – – – Data comes from multiple Line of Business (LOB) sources But who wants to go to multiple places to view it? Options needed for visualization of data Single source for Dashboard/Analytics • Customization – Business Data Catalog – XML Configuration • SQL Stored Procedures or Web Services can be used for advanced scenarios – DataViews – SharePoint Designer – Excel Services – Spreadsheets and limited logic available for consumption – 3rd Party WebParts (Dundas, …) • Development – Web Parts - .NET to access any ‘inaccessible’ data or do advanced updates/UI – SQL Server Reporting Services – PerformancePoint/Business Scorecard Manager http://www.sharepointmn.com Search Demo – LOB Data http://www.sharepointmn.com •CRM •AS/400 •Deep Internal Links Collaboration Document Centric Personalization LOB Systems – What’d I See? • Dashboard – Many different sources of information – Many different backends – Many different frontends • BDC – BDC itself is XML configurable – Configurable Pages for Database Records http://www.sharepointmn.com Multiple LOB Systems SharePoint Search Collaboration Document Centric Personalization Multiple LOB Systems SharePoint Search • General – Finding Data can be hard! • Customization/Configuration – – – – Search Center – XSLT Configuration Sources of Data: Extra file shares, databases through BDC Indexing Enhancements – Best Bets, Thesaurus, Word Stemming 3rd Party (Ontolica, …) • In Deep – – – – Programmatic Access – Object Model (3 ways), Web Services Use ASP.NET to simulate BDC Pages to ‘crawl’ a database IFilter – Add parsing support for a new filetype (like PDF) Custom Security Trimmer – Enhance ACL for files on Non-Supported sources http://www.sharepointmn.com Search Demo – Search http://www.sharepointmn.com Collaboration Document Centric Personalization Search – What’d I see? • SearchCenter – Search Tab – Configuration – Search Results – XSLT Customization • Search Application – .NET • Application Object Model or Web Services – Can perform SharePoint searches and retrieve resulting data http://www.sharepointmn.com Multiple LOB Systems SharePoint Search Administrator’s Development Administrator’s didn’t get left out! STSADM • New actions can be added (stsadm –o myaction) • Several community created actions PowerShell • Not really built for SharePoint administrators in mind • Full .NET access to SharePoint Object Model Custom applications and webparts can be deployed to Central Admin http://www.sharepointmn.com Demo – Administrator Tools http://www.sharepointmn.com Wow, these all sound so wonderful I bet deployment is a breeze! – Not Exactly – 2007 Projects are more complicated than ever • Depth of changes to core functionality • Number of servers touched by a project SharePoint 2007 Improves Deployment Experience – Solutions – Features Want More? – Minneapolis Office Developer Interest Group (MODIG) – Next Thursday – Feature Development in SharePoint (for Developers) http://www.sharepointmn.com When shouldn’t I use SharePoint? • Scaling/Sizing Concerns – Not a good place for CAD or large movies • SharePoint isn’t a high performance database – Don’t store all the transactions for your company • When a rewrite isn’t necessary – Hosting an ASP app under SharePoint might be all you need http://www.sharepointmn.com Review • SharePoint Toolset • SharePoint as a Development Platform Collaboration – Common Scenarios • • • • • • Personalization Document Centric Collaboration Multiple LOB Systems Search Administrators • When not to use SharePoint http://www.sharepointmn.com Document Centric Personalization Multiple LOB Systems SharePoint Search Q&A http://www.sharepointmn.com References • SharePoint Search Bench http://www.codeplex.com/SPSearchBench • SmartPart http://www.codeplex.com/smartpart • Andrew Connell’s Custom STSADM Commands http://www.andrewconnell.com/blog/articles/MossStsadmWcmCommands .aspx • Inetium Blogs http://blogs.inetium.com http://www.sharepointmn.com Thanks for coming! http://www.sharepointmn.com