650 likes | 983 Views
Introduction to SharePoint + SharePoint Development. Matt Smith MVP – SharePoint Server. Who Am I?. MOSS Consultant/ Customisation Specialist MCTS – WSS/MOSS, MVP - SharePoint Server 8 years in Collaboration, Document Mgmt, KM space With Intergen :
E N D
Introduction to SharePoint + SharePoint Development Matt Smith MVP – SharePoint Server
Who Am I? • MOSS Consultant/Customisation Specialist • MCTS – WSS/MOSS, MVP - SharePoint Server • 8 years in Collaboration, Document Mgmt, KM space • With Intergen: • Delivered one of NZ’s largest SharePoint solutions on time/budget • Key member of team building Microsoft’s Visual Studio Extensions for SharePoint 1.3 • Obsessive SharePoint Lover and Community Evangelist • http://blog.mattsmith.co.nz (on hiatus)
Who Are You? • Heard of SharePoint? • Using SharePoint? • 2007 or Earlier? • WSS or MOSS? • End Users, Developers, IT Pros, or Managers?
Agenda • Chapter One: Introduction to SharePoint • What is SharePoint? • Why SharePoint? • SharePoint Architecture • Demo: Building up a SharePoint Site • Chapter Two: Introduction to SharePoint Development • Tools for Development • Why Develop on SharePoint? • Development Basics • Demo: Developing for SharePoint with VSeWSS 1.3
Ungenda + Assumptions • Not Covering: • SharePoint Administration • SharePoint Designer • 250 – 400 Level concepts incl MOSS • Licensing Issues • “The Fluffy Stuff” • Assumptions: • 100 Level – Not Much! • Basic .NET skills for the dev stuff • You enjoy bad jokes
What is SharePoint? • A Documentation Management System? • A Web Content Management System? • A Collaboration + Content Sharing Toolkit? • A Development Platform? • An Application Framework? • An Intranet, Portal + Mashup Server? • A Knowledge Management System? • Facebook for the Enterprise? • A Business Intelligence Engine?
SharePoint Can Be… • A Documentation Management System • A Web Content Management System • A Collaboration + Content Sharing Toolkit • A Development Platform • An Application Framework • An Intranet, Portal + Mashup Server • A Knowledge Management System • Facebook for the Enterprise • A Business Intelligence Engine
SharePoint Is… • A web-based application frameworkthat can be rapidly leveraged to build powerful collaboration, content and knowledge sharing solutions • The “build” part doesn’t just mean .NET development • Building a web site in the browser with your own data and lists • Building a business process Workflow, or custom web page in SharePoint Designer • Building powerful customisations in Visual Studio • Either way, it still needs to be built…
SharePoint Is Not: • An out-of-the-box product • Software without planning • The answer to your organisational problems (in and of itself) • A solution for absolutely everything + everyone • An IT system • An industry standard (though it sure seems like it!)
Have your pie (WSS)… Docs/tasks/calendars, blogs, wikis, e-mail integration, project management “lite”, Outlook integration, offline docs/lists Collaboration Platform ServicesWorkspaces, Mgmt, Security, Storage, Topology, Site Model
Platform ServicesWorkspaces, Mgmt, Security, Storage, Topology, Site Model … and eat it too (MOSS) Docs/tasks/calendars, blogs, wikis, e-mail integration, project management “lite”, Outlook integration, offline docs/lists Server-based Excel spreadsheets and data visualization, Report Center, BI Web Parts, KPIs/Dashboards Business Intelligence Collaboration Enterprise Portal template, Site Directory, My Sites, social networking, privacy control Rich and Web forms based front-ends, LOB actions, enterprise SSO BusinessForms Portal Content Management Search Integrated document management, records management, and Web content management with policies and workflow Enterprise scalability, contextual relevance, rich people and business data search
Performance Point Server Search Server Project Server IIS, SQL, ASP.NET, Workflow Foundation
In the Enterprise and Beyond... Performance Point Server Microsoft Dynamics CRM + Navision Oracle, SQL, ODBC, Web Services, REST, … Search Server Other Document Management Systems Project Server Client Apps, especially Explorer + Office IIS, SQL, ASP.NET, Workflow Foundation
Site Collection /sites/Main Root Site / Site /Div1 Site /Div2 Site /D2A Site Architecture/Topology Farm Web Application http://x.com:1 Web Application http://x.com:2 Site Collection /sites/Marketing Site Collection /sites/Development Root Site / Root Site / Site /Div1 Site /Div2 Site /Div1 Site /D1A Site /D1B One Configuration DB per Farm >= 1 Content DB per Web App/Site Coll
What’s in a SharePoint Site? • Lists of data – like shared Access databases, extensible • Libraries – like Lists but with documents (columns = meta-data) • Pages and Web Part Pages • Styles, Themes and Master Pages • Custom ASPX pages and other functionality • Galleries and shared resources • Navigation Links • Settings • Other Sites...
Hey! You promised Demo Driven. More PowerPoint? or Demos?
Requirements: Invercargill DNUG Site • Home page with logo and welcome message • Announcements supporting RSS + alerts, latest on home page • Upcoming events list, calendar view, attendee counts, sync with Outlook • Useful links list on homepage with easy data entry • Store DNUG resource docs with multiple upload + versioning • Editable database of possible topics by topic area (filterable) • Discussion board with conversation management • Survey to request feedback • Search engine on all the above • For Robert: • Wiki for DNUG charter development/collaboration • Admin task list (sync with Outlook Tasks)
Typical Aucklanders! • What if Auckland DNUG wants in? • Server admin templates (.stp) – easy, limited • Site admin templates (.wsp) – requires developer, powerful • Many pre-built business solutions are provided this way (e.g. “Fantastic 40”) • Community Kit for SharePoint (CKS): UGE!
For End Users... • Personalisation • Desktop integration • Can own the content • Web 2.0 is SharePoint (!) • Can and should contribute to design – rapid turnaround • Collaboration and knowledge sharing is a philosophy – requires change management and buy-in from all involved
For IT Pros and Power Users... • Work smarter, not harder • Appear agile to the business • Easy to develop POCs • Create powerful functionality with no-code • Reduce reliance on your devs and IT for simple “glorified database” solutions
For Businesses... • Encouraging sharing of organisational content • Significant improvements in 07 - extensibility + integration • Powerful base collaboration/ intranet functionality at low cost • Flexible and customisable • Scalable road map – small steps • Ubiquity – fastest growing server platform ever – resources/user groups/best practices • Microsoft are very committed to this platform
Calls to Action • Install WSS or MOSS (demo VMs) and play • Sandbox vs Production! • Download the “Fantastic 40” and CKS projects • Online learning resources, labs, web casts • Read a book (SharePoint best practices) • Try using it within your organisation for collaboration – it sells itself • Engage an expert (http://www.intergen.co.nz) !
The Stuff No-one Tells Us - CSFs • Don’t expect your developers to be SharePoint rock stars overnight – leads to failed projects and “ScarePoint” views • The technology is the easy bit – here’s the hard stuff: • Planning (!= Next, Next, Finish) • Information architecture and taxonomy – avoiding silos • Change management and cultural issues • Balancing IT control/compliance with user empowerment • Governance • Get findability right and you’re off to a good start • Take small steps
Resources • http://blog.mattsmith.co.nz • Essential Resources • Microsoft: MSDN WSS Portal, MSDN MOSS Portal, TechNet WSS Portal, TechNet MOSS Portal, MSDN WSS SDK, MSDN MOSS SDK, GearUp, Office Online, Developer Intro Portal • Community: SharePointPedia, SP Community Portal • Other Portals: wssdemo.com, WSS FAQ, SPS FAQ • Forums: SharePointU, MSDN, TechNet • Aggregate Blogs: MVPs, MS Individuals, MS Teams
SharePoint “Development” Techniques • WSS is inherently customisable/flexible • New breed of “solution developers” – the line is blurred! • Main techniques: • Direct customisation in the browser (including effectively modifying the database schema and other traditional “dev” tasks) • SharePoint Designer • Visual Studio • Main drivers for Visual Studio: performance, repeatability, power + control
Minimal Development Setup • A VM with minimum 2GB RAM (best – Hyper V, 4GB, Quad Core) • Server 2003/2008 with WSS/MOSS installed (IIS + SQL Express) • Visual Studio 2008 (preferably) • WSS + MOSS SDK • Visual Studio Extensions for SharePoint 1.3 CTP! • SharePoint Designer • Shortcuts: 12 Hive/VirtualDirectories in Toolbar, STSADM in Path • Tools: WSPBuilder/STSDev, U2U Query Builder, SharePoint Manager, ...
Matt’s Toolkit (Partial) • Build and Packaging Tools • STSDEV • AppPool Recycle Utility • Solution Installer • CAML/Search Tools • U2U Query Builder • YACQT • Search Service Tool • CAML.NET • LINQ to SharePoint • Visual Studio Optimisations • AC's CodeRush Tools • SPDevMod • Content/Config Replication • Content Deploy Wizard • CMP Package Explorer • Cross Site Configurator • SPS Tips Utility Pack • In-SharePoint Tools • SP Features • Smart Tools • SP Config Store • Enhanced CQWP • Testing Tools • Test Data Population • Imtech Test Content • Inspection Tools • SharePoint Manager • SharePoint Inspector • SP Explorer Client (IE) • Governance/Manageabilty • SP Governance Tools • Reporting Framework • MS Asset Inventory • MS Monitoring Kit • SP Admin Toolkit • STSADM Tools • AC’s STSADM • Imtech STSADM • Gary LP’s STSADM • STSADM Win • Planning/Design Tools • MS Capacity Planning • Visio Shapes • Logging Tools • SP Logging Spy • SPTraceView • General Tools • SharePoint Toolbox • SharePoint SUSHI • .NET Essentials • Fiddler • Reflector • Sysinternals
Integration Points • Everything you can do in the browser is exposed programatically via the Object Model (Microsoft.SharePoint) • A lot of content “provisioning” also occurs via XML linked to Features • Large number of web services also exposed – easy to build composite apps • RSS feeds • SharePoint plays nice in your SOA or can be a focus of it
What Do You Build for WSS? • Processes • Event Receivers • Workflows + Activities • Timer Jobs • Branding Elements • Master Pages • Themes + Custom CSS • Security • User/Role Providers • Provisioning • Site Definitions • Features + Receivers • Provisioning Assemblies • UI Enhancements • Web Parts • Custom ASPX Pages • View Definitions • Custom Actions/Buttons • Navigation Providers • Site Metadata • Site Columns • Content Types • List Definitions • Custom Field Types • Services • Web + WCF Services
What Do You Build for MOSS? • Records Management • “Workflow” Policies • Routing rules • Web Content Management • Page Layouts • Custom Deployment Jobs • Business Data Catalog • Custom UI components • Entity Web services • Custom Actions • InfoPath Forms Services • Custom forms • Business Intelligence • Excel worksheets • .NET User Defined Functions • SQL Server Analysis Services cubes • SQL Server Reporting Services reports • Search Components • Custom Web Parts • iFilters/Protocol Handlers • People/Personalization • Privacy-aware Web Parts • User profile import code
Visual Studio Extensions for WSS 1.3 • Microsoft’s tool for helping developers build SharePoint solutions • 1.3 in CTP, built by Intergen for Microsoft (Wellington + Matt!) • Major Improvements over previous versions: • 64-bit support • Quick Deploy for productive builds (copy to GAC/copy to BIN) • Separate deployment commands (Package, Retract, Deploy) • Element renaming and WSP cleanup support • Command-line builds • Resolve deployment conflicts dialog • …
Hey! You promised Demo Driven. More PowerPoint? or Demos?
Important Stuff I’ve Glazed Over • Web Solution Packages (WSPs) • Site ASPX Pages (per-site) vs Application ASPX Pages (shared) • Customised (unghosted) vsUncustomised (ghosted) pages • CAML • STSADM • How WSS works with IIS + SQL • Content Types
For Developers... • SP gives us a powerful platform, data store and provisioning engine (deploy functionality to multiple sites) • Work smarter, not harder • Focus on business value in your software • Re-use, adapt, customise • Leverage existing skills • Extend reach of your software • SharePoint skills in hot demand
Calls to Action • Install WSS or MOSS (demo VMs), VSeWSS, and cut some code • Dedicate time to learning SharePoint development properly • Online learning resources, hands-on-labs, web casts • Read a book • Attend a training course (http://www.knowledgecue.com) • Get certified: 70-541 (WSS), 70-542 (MOSS) • Engage an expert (http://www.intergen.co.nz) !