Wrapping Your Head Around the
          SharePoint Beast

Mark Rackley – Solutions Architect /
SharePoint Practice Lead / Developer
Email: mrackley@gmail.com
Blog: http://www.sharepointhillbilly.com
Twitter: @mrackley
My introduction to SharePoint
Session Outline
•   Why SharePoint?
•   What is SharePoint?
•   SharePoint Overview
•   What is SharePoint Development?
•   Steps to becoming a SharePoint Developer
•   The SharePoint Community


3
Learning SharePoint
5 Stages of Learning SP Dev
•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?”

7
Why SharePoint as a development Platform?




8
Why SharePoint?

         .NET            SharePoint
      Data Storage         Data Storage
      Presentation         Presentation
        Security             Security
       Clustering           Clustering
          API’s                API’s
    Office Integration   Office Integration
        Features             Features



9                           Source: http://www.sharepointcowboy.com
What IS SharePoint?

• A File Share?
• Content Management System?
• Workflow Engine?
• Collaboration Portal?
• A silver bullet for all your business
  processes?
• The cure for cancer?
SharePoint – What it is
SharePoint – The Instructions
Terminology

       (Remember when a Web Application was a Web Application)
Farm
             Elevated Privileges                                        Safe Control
                                        CAML
  Site Column                                             Feature           Declarative Workflow
             STSADM
Site Collection                        Persisted Object     Application Page
                                    Content Type          Site Definition     List Definition
       Solution Package
                                                                    Scope
Content Database                                                                List Instance
                                     Event Receiver
                                                           Central Administration
  Publishing Page                                                                          ONET
                         Web Application
                                                                        Theme
 List View                         Feature Receiver
          Field Control                                       Team Site
                                   Client Object Model
SharePoint Overview
SharePoint Overview
SharePoint Has a Farm…
Server Farms
• A collection of SharePoint role     Server Farm
  servers and a SQL database          Web Front
  server                              Ends

• Servers can perform one or more
  functions (web front end, search,
  application, etc.)
• Farm-level features are managed     Application
  via Central Administration
• Custom code can be deployed at
  the Farm level and managed
  centrally
• Solution Packages allow custom      Database
  code to be automatically deployed
  across the farm
SharePoint Overview
SharePoint Overview
SharePoint Overview




               Source: http://www.sharepointcowboy.com
Planning and architecture for
        SharePoint Server 2010

                   http://technet.microsoft.com/
                   en-us/library/cc261834.aspx
                   • Technical diagrams
                   • Planning worksheets
                   • Video demos
                   • Planning for sites and
                      solutions
                   • Planning for server farms
                      and environments
                   • Capacity Planning


21
Logical Architecture Diagram




22
23
Path To SharePoint Developer




24
Path To SharePoint Developer
           •   Create sites
End User   •   Work with lists & Document Libraries
           •   Use basic web parts
           •   Manage content
           •   Add users
           •   Manage simple workflows




           http://www.nothingbutsharepoint.com
Path To SharePoint Developer
     •   Configure SharePoint farm
     •   Use Central Admin
     •   STSADM / PowerShell
     •   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
Path To SharePoint Developer
     •   Know how & WHEN to use SharePoint Designer
     •   Be .NET developer
     •   Know XSLT, CAML, XML, JavaScript, jQuery, and other
         acronyms
     •   Be familiar with SharePoint Object Model
     •   Be familiar with SharePoint Web Services
     •   Be able to debug
     •   Be able to Package
Path To SharePoint Developer
     •   Be able to use all the
         acronyms appropriately
     •   Fake everything else
Path To SharePoint Developer

• Know the Basics!
  – Content Types
  – Site Columns
  – Lists
  – Workflows
  – Permissions
  – Calculated Columns
  – Out of the box Web Parts
What IS SharePoint Development?




      Gifted .NET Developer != SharePoint Developer
30
Development Options




31
Development Options

     • Out of the box features
        – Custom Views
        – Web Parts
        – Attend some End User Sessions!




32
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
        –   Data Views on External data sources
     • The Bad
        – SPD Workflows
        – Un-Ghosting
     • The Ugly
        – Possible to break a site collection
             • Be careful modifying default aspx files
        – Migration & Restores
             • Disconnect Workflows

33
Development Options
• JavaScript / jQuery
     – No deployment necessary
         • Put .js files in Document Library (or deploy to file system)
         • Reference scripts in CEWP or with ScriptLinks in Custom Actions
     – Missing piece of SharePoint Out of the Box?
         • Do complicated joins of data for reporting
         • Graphical awesomeness with multitude of free libraries
     – 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


 A Dummies Guide to SharePoint and jQuery
     http://bit.ly/jQueryForDummies
34
Visual Studio Development
• Develop on a farm
     –   Event Receivers
     –   Custom Web Parts
     –   Workflows
     –   Custom Actions
     –   Package XML
• Remote development
     –   Client Object Model
     –   Web Services / REST
     –   Integration with legacy systems / web sites
     –   Batch processing



35
Cracking open Visual Studio
• Virtual Machines
     – Virtual Box or VMWare Player
     – 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 / SharePoint 2010(Don’t do basic install!)
        •   Office
        •   SharePoint Designer
        •   Visual Studio
36      •   SDK’s etc..
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
Debugging

• Event Logs
     – Admin Tools->Computer Management-> Event
       Viewer




39
Debugging

• SharePoint Logs
     – C:Program FilesCommon FilesMicrosoft
       ShareWeb Server Extensions12LOGS
     – Can write to logs when writing custom code




40
Debugging – Visual Studio




41
Deployment




42
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!
Free Tools…
• Custom Development / Deployment
   – STSDev
   – WSP Builder
• SPServices
   – Access SharePoint Web Services using jQuery
   – http://spservices.codeplex.com
• Fiddler – Web Debugging Proxy
      • http://www.fiddler2.com/Fiddler2/version.asp
      • Performance Tuning, inspect session data, etc

• Don’t forget to check CodePlex
Tips when asking for help
           • Try to find the answer yourself first
               – Google it with Bing
               – MSDN Forums
               – SharePoint Stack Exchange
           • Ask on Twitter #SPHelp
           • Use the correct terminology
           • Don’t abuse the experts (or make
             direct eye contact)
           • Give the full story with relevant
             background
           • Don’t tell the person helping you
             they are wrong or that their solution
             doesn’t work (unless they are of
             course)
The SharePoint Community
A Word (or two) About
          Community
        Don’t leave home without it!




47
To Avoid SharePoint Fail…




48    Image Source: http://theroosterstrikes.files.wordpress.com
You Gotta Drink the Kool-Aid!
       • Join the
         Community
       • Read Blogs
       • Read Books
       • Setup a Virtual
         Machine
       • Start a blog
       • Attend events
       • DON’T BE
         AFRAID TO DO
         SOMETHING!

49
                           Image Source: http://www.irvinehousingblog.com
Mark Rackley
     • Email: mrackley@gmail.com
     • Blog:
       http://www.sharepointhillbilly.com
     • Twitter: @mrackley




50

2/15/2012 - Wrapping Your Head Around the SharePoint Beast

  • 1.
    Wrapping Your HeadAround the SharePoint Beast Mark Rackley – Solutions Architect / SharePoint Practice Lead / Developer Email: mrackley@gmail.com Blog: http://www.sharepointhillbilly.com Twitter: @mrackley
  • 2.
  • 3.
    Session Outline • Why SharePoint? • What is SharePoint? • SharePoint Overview • What is SharePoint Development? • Steps to becoming a SharePoint Developer • The SharePoint Community 3
  • 6.
  • 7.
    5 Stages ofLearning SP Dev •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?” 7
  • 8.
    Why SharePoint asa development Platform? 8
  • 9.
    Why SharePoint? .NET SharePoint Data Storage Data Storage Presentation Presentation Security Security Clustering Clustering API’s API’s Office Integration Office Integration Features Features 9 Source: http://www.sharepointcowboy.com
  • 10.
    What IS SharePoint? •A File Share? • Content Management System? • Workflow Engine? • Collaboration Portal? • A silver bullet for all your business processes? • The cure for cancer?
  • 11.
  • 12.
    SharePoint – TheInstructions
  • 13.
    Terminology (Remember when a Web Application was a Web Application) Farm Elevated Privileges Safe Control CAML Site Column Feature Declarative Workflow STSADM Site Collection Persisted Object Application Page Content Type Site Definition List Definition Solution Package Scope Content Database List Instance Event Receiver Central Administration Publishing Page ONET Web Application Theme List View Feature Receiver Field Control Team Site Client Object Model
  • 14.
  • 15.
  • 16.
  • 17.
    Server Farms • Acollection of SharePoint role Server Farm servers and a SQL database Web Front server Ends • Servers can perform one or more functions (web front end, search, application, etc.) • Farm-level features are managed Application via Central Administration • Custom code can be deployed at the Farm level and managed centrally • Solution Packages allow custom Database code to be automatically deployed across the farm
  • 18.
  • 19.
  • 20.
    SharePoint Overview Source: http://www.sharepointcowboy.com
  • 21.
    Planning and architecturefor SharePoint Server 2010 http://technet.microsoft.com/ en-us/library/cc261834.aspx • Technical diagrams • Planning worksheets • Video demos • Planning for sites and solutions • Planning for server farms and environments • Capacity Planning 21
  • 22.
  • 23.
  • 24.
    Path To SharePointDeveloper 24
  • 25.
    Path To SharePointDeveloper • Create sites End User • Work with lists & Document Libraries • Use basic web parts • Manage content • Add users • Manage simple workflows http://www.nothingbutsharepoint.com
  • 26.
    Path To SharePointDeveloper • Configure SharePoint farm • Use Central Admin • STSADM / PowerShell • 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
  • 27.
    Path To SharePointDeveloper • Know how & WHEN to use SharePoint Designer • Be .NET developer • Know XSLT, CAML, XML, JavaScript, jQuery, and other acronyms • Be familiar with SharePoint Object Model • Be familiar with SharePoint Web Services • Be able to debug • Be able to Package
  • 28.
    Path To SharePointDeveloper • Be able to use all the acronyms appropriately • Fake everything else
  • 29.
    Path To SharePointDeveloper • Know the Basics! – Content Types – Site Columns – Lists – Workflows – Permissions – Calculated Columns – Out of the box Web Parts
  • 30.
    What IS SharePointDevelopment? Gifted .NET Developer != SharePoint Developer 30
  • 31.
  • 32.
    Development Options • Out of the box features – Custom Views – Web Parts – Attend some End User Sessions! 32
  • 33.
    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 – Data Views on External data sources • The Bad – SPD Workflows – Un-Ghosting • The Ugly – Possible to break a site collection • Be careful modifying default aspx files – Migration & Restores • Disconnect Workflows 33
  • 34.
    Development Options • JavaScript/ jQuery – No deployment necessary • Put .js files in Document Library (or deploy to file system) • Reference scripts in CEWP or with ScriptLinks in Custom Actions – Missing piece of SharePoint Out of the Box? • Do complicated joins of data for reporting • Graphical awesomeness with multitude of free libraries – 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 A Dummies Guide to SharePoint and jQuery http://bit.ly/jQueryForDummies 34
  • 35.
    Visual Studio Development •Develop on a farm – Event Receivers – Custom Web Parts – Workflows – Custom Actions – Package XML • Remote development – Client Object Model – Web Services / REST – Integration with legacy systems / web sites – Batch processing 35
  • 36.
    Cracking open VisualStudio • Virtual Machines – Virtual Box or VMWare Player – 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 / SharePoint 2010(Don’t do basic install!) • Office • SharePoint Designer • Visual Studio 36 • SDK’s etc..
  • 37.
    Custom Development • Web Part Development – Learn File Structure and XML files purpose 37
  • 38.
    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
  • 39.
    Debugging • Event Logs – Admin Tools->Computer Management-> Event Viewer 39
  • 40.
    Debugging • SharePoint Logs – C:Program FilesCommon FilesMicrosoft ShareWeb Server Extensions12LOGS – Can write to logs when writing custom code 40
  • 41.
  • 42.
  • 43.
    Solution Packages • .WSPfile (WSS Solution Package) • Easily Deploy and Retract Files • SharePoint manages deploying to multiple WFEs • Deployed with STSADM • #1 Best Practice For Developers!
  • 44.
    Free Tools… • CustomDevelopment / Deployment – STSDev – WSP Builder • SPServices – Access SharePoint Web Services using jQuery – http://spservices.codeplex.com • Fiddler – Web Debugging Proxy • http://www.fiddler2.com/Fiddler2/version.asp • Performance Tuning, inspect session data, etc • Don’t forget to check CodePlex
  • 45.
    Tips when askingfor help • Try to find the answer yourself first – Google it with Bing – MSDN Forums – SharePoint Stack Exchange • Ask on Twitter #SPHelp • Use the correct terminology • Don’t abuse the experts (or make direct eye contact) • Give the full story with relevant background • Don’t tell the person helping you they are wrong or that their solution doesn’t work (unless they are of course)
  • 46.
  • 47.
    A Word (ortwo) About Community Don’t leave home without it! 47
  • 48.
    To Avoid SharePointFail… 48 Image Source: http://theroosterstrikes.files.wordpress.com
  • 49.
    You Gotta Drinkthe Kool-Aid! • Join the Community • Read Blogs • Read Books • Setup a Virtual Machine • Start a blog • Attend events • DON’T BE AFRAID TO DO SOMETHING! 49 Image Source: http://www.irvinehousingblog.com
  • 50.
    Mark Rackley • Email: mrackley@gmail.com • Blog: http://www.sharepointhillbilly.com • Twitter: @mrackley 50

Editor's Notes

  • #44 The SharePoint Server has gained a lot of popularity with the release of Microsoft Office SharePoint Server 2007. With the inclusion of document management and enterprise search capabilities, as well as Records Center and Excel Services modules, more and more companies are turning toward SharePoint in search of solutions to their business problems. With this growth comes big opening for business opportunities, but those who don’t have the right training approach stand to lose out on a customer’s or internal business units satisfaction.Some of the SharePoint environment roles are often defined as IT related, and information workers are often overlooked.Lack of training is the number one