Wrapping Your Head Around the SharePoint Beast Mark Rackley – Solutions Architect Email: firstname.lastname@example.org Blog: http://www.sharepointhillbilly.com Twitter: http://www.twitter.com/mrackley
Presentation Outline What can SharePoint do for me? SharePoint Overview Logical Architecture & Taxonomy Governance Path to development nirvana The Importance of Community Avoiding Beginner Hurdles 2
Denial – “They aren’t really going to make me learn this. They’ll forget all about it in the next few months and move onto something new.”
Anger – “This is SO stupid! I can’t believe they are making me learn this! It’s impossible!”
Bargaining – “Okay.. How about this, I’ll do support 24/7 for the rest of my life, just don’t make me learn this!”
Depression – “It’s hopeless. I’ll never learn this. I wonder if McDonald’s is hiring?”
Acceptance – “Well, it looks like I have no choice… maybe it won’t be that bad? Hey! At least it will look good on my resume?”
What IS SharePoint? A File Share? Content Management? Workflow Engine? Collaboration Portal? A silver bullet for all your business processes? The cure for cancer?
SharePoint is a PLATFORM “A ‘platform’ is a system that can be programmed and therefore customized by outside developers — users — and in that way, adapted to countless needs and niches that the platform’s original developers could not have possibly contemplated, much less had time to accommodate.” - Marc Andreessen, Netscape
Terminology Timer Job (Remember when a Web Application was a Web Application) Farm Elevated Privileges Safe Control CAML Feature Site Column Declarative Workflow STSADM Application Page Site Collection Persisted Object Content Type Site Definition List Definition Solution Package Scope Content Database List Instance Event Receiver Central Administration ONET Publishing Page Web Application Theme List View Feature Receiver Team Site Field Control Client Object Model
Server Farms A collection of SharePoint role servers and a SQL database server Servers can perform one or more functions (web front end, search, application, etc.) Farm-level features are managed via Central Administration Custom code can be deployed at the Farm level and managed centrally Solution Packages allow custom code to be automatically deployed across the farm Server Farm Web Front Ends Application Database
Plan Your Logical Architecture & Taxonomy!! Where do you want to be in 2 years? How many farms? sites? Ensure you have the ability to expand Take into account licensing costs How are users going to connect? ISA? F5? SSL? FBA? Plan… Plan… Plan… 21
Governance What is this thing everyone talks about? Get executive buy-in Set up committee As few IT people as possible, but led by IT Make sure decision makers from important departments play key role Document policies Determine correct level of control Too much will frustrate users Too little will render sites unusable Enforce Policies 23
Information Architecture GUIDANCE: MICROSOFT OFFICE SHAREPOINT SERVER 2007 INFORMATION ARCHITECTURE http://www.microsoft.com/industry/healthcare/technology/hpo/knowledgeworker/moss2007informationarchitecture.aspx 25 Microsoft Office SharePoint 2007 Information Architecture describes how to plan and design an information architecture and provides step-by-step instructions showing how to configure Microsoft® Office SharePoint® Server 2007 with these settings.
Path To Development Nirvana (Well… maybe you won’t want to kill yourself anymore) End Users Create sites Work with lists & Document Libraries Use basic web parts Manage content Add users Manage simple workflows http://www.endusersharepoint.com 27
Path To SharePoint Developer Admins Be End User Configure SharePoint farm Use Central Admin Use STSADM Deploy Features Add Workflows to Lists Configure Search Be familiar with all out of the box web parts Know 12 Hive structure and what’s in there 28
What About Solution Architects? Be able to use all the acronyms appropriately Fake everything else (I’m kidding of course) 30
SharePoint Designer… if you can’t say anything nice… SharePoint Designer (SPD) The Good Don’t have to develop on the server SPD Workflows Developing Branding Data View Web Parts The Bad SPD Workflows Un-Ghosting The Ugly Possible to break a site collection Be careful modifying default aspx files Migration & Restores DisconnectWorkflows Maintenance Don’t tell your boss what you have to do CONCLUSION - Don’t give End Users Access! Don’t connect to Production Server unless you fully understand the ramifications. 33
jQuery(The cause of, and the answer to, all your SharePoint Problems) No deployment necessary Put .js files in Document Library (or deploy to file system) Place code in CEWP (of in MP, IF you deploy the MP) Missing piece of SharePoint Out of the Box? Do complicated joins of data for reporting Graphical awesomeness with multitude of free libraries
jQuery(The cause of, and the answer to, all your SharePoint Problems) SPServices jQuery library for accessing SharePoint’s Web Services Executes as authenticated user But be careful with jQuery Executed on the Client computer, not the server Can cause performance issues I wrote a couple of intro blogs for jQuery in SharePoint http://www.sharepointhillbilly.com
Cracking open Visual Studio Dev on VM Free VHD from Microsoft (time bombed) 2007 - http://www.microsoft.com/downloads/details.aspx?familyid=67F93DCB-ADA8-4DB5-A47B-DF17E14B2C74&displaylang=en 2010 - http://www.microsoft.com/downloads/details.aspx?FamilyID=0c51819b-3d40-435c-a103-a5481fe0a0d2&displaylang=en Build your own if possible Windows Server 2003 / 2008 SQL Server 2005 / 2008 MOSS 2007 (Don’t do basic install!) Office SharePoint Designer Visual Studio SDK’s etc.. 36
Custom Development Web Part Development Learn File Structure and XML files purpose 37
Development Tools… (There’s an App For that) Web Part Development cont. STSDev from http://codeplex.com Creates structure and XML files for you – avoids typos in XML Great build options: 38
More Development Goodness Dev/QA Farm Have One or Both! Should be as identical to production as possible 80/20 Rule If it doesn’t make sense to do in SharePoint DON’T DO IT in SharePoint Packages? We don’t need no stinking Packages! Oh wait.. Yes we do… Create Deployable Solutions wherever possible If 50% of deployment is packages you are ahead of 90% of the companies out there 39
Solution Packages .WSP file (WSS Solution Package) Easily Deploy and Retract Files SharePoint manages deploying to multiple WFEs Deployed with STSADM #1 Best Practice For Developers!
Solution Packages Contains two things All necessary files Instructions for handling those files What Can be deployed? Assemblies Any file to SharePoint Root Custom Code Access Security Policies Web Part definitions and resources
Deployment Create detailed deployment scripts for admins Test scripts in QA environment 47
Free Tools… Custom Development / Deployment STSDev WSP Builder SPServices Access SharePoint Web Services using jQuery http://spservices.codeplex.com Don’t forget to check CodePlex!
Free Tools Rock Internet Information Services (IIS) 6.0 Resource Kit Tools http://www.microsoft.com/downloads/details.aspx?FamilyID=56fc92ee-a71a-4c73-b628-ade629c89499&displaylang=en Metabase Explorer to fix port conflicts Fiddler – Web Debugging Proxy http://www.fiddler2.com/Fiddler2/version.asp Performance Tuning, inspect session data, etc Application Pool Manager http://www.harbar.net/articles/APM.aspx IIS Reset usually not necessary, recycle app pools is much quicker SQL to CAML Converter http://www.spsprofessional.com/sqlcaml.aspx 49
A Word (or two) About Community Don’t leave home without it! 50
Some Handy Tips.. Edit default pages in SharePoint 2007? &ToolPaneView=2 See web parts on a page &Contents=1 Don’t put content IN CEWP, Link to file in doc library instead Reusable Versioned and in recycle bin 52
A Little Knowledge is a Dangerous Thing Site Collections Make sure you want it to be a top level site; non-trivial to move to sub-site All content for site-collection & sub-sites in same content database All list data for every site in content database is in same table Metadata Use Content Types and Site Columns! Document Libraries Avoid Sub-Folders unless structure is well defined Use Metadata when possible Be aware of Versioning! 53
Trying to make your life easier SSL (Secure Sockets Layer) Create Site Collection as SSL with self signed certificate if don’t have certificate yet Consider use wildcard cert – use of SAN (Subject Alternate Name) certificate will mean buying whole new certificate if you add servers Service Accounts Basic install uses logged in user as service account Should not be obvious Locked out account will bring down farm Site Templates Master Pages and Themes must exist on target site 10mb Size Limit??? stsadm.exe -o setproperty -pn max-template-document-size -pv 500000 54