Governance Configure Customise Code

986 views

Published on

Techniques and things to watch out for when configuring, customising and coding on your SharePoint environment

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
986
On SlideShare
0
From Embeds
0
Number of Embeds
4
Actions
Shares
0
Downloads
12
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide
  • Most common cause of SharePoint problems that I fix are due to configuration changes.Examples including changing DB permissions and changing zone of website in IE e.g. SharePoint admin did not know a change had occurred but they got the calls that it was broken.
  • Launce site using integrated auth.Show changing Basic auth via IIS direct.Refresh site and show basic auth promptThen open CA, auth provider.Setting is not changed in CA, when you hit ok it will overwrite.Hence CA was out of sync with IIS. Also doing it via IIS would mean you’d have to do it on every WFE instead of CA setting it on all for you.
  • Sometimes customisation isn’t pretty.Even customisations via the browser can break things.
  • Show customising content types and getting two display names which are the same for usersShow branding demo using SPD and note customisation warning.Talk about wrapping up using tool such as SPSource + WSPBuilder to deploy instead hence create rapid but deploy properly.
  • Run SPDisposeCheck on exe.Open up a wsp (rename to cab) , then run on DLL.For dev audience could do more detail on wsp’s + feature stapling.
  • Governance Configure Customise Code

    1. 1. Configure, Customise, Code<br />Elaine van Bergen<br />OBS<br />Architect<br />
    2. 2. Definitions<br /><ul><li> ConfigureChanging settings within the environment at a high level such as SharePoint Farm, Server or DB.
    3. 3. CustomiseModifying the environment without writing code that requires compilation
    4. 4. Code Modifying the environment through compiled code</li></li></ul><li>Common Roles<br /><ul><li> System Administration
    5. 5. SharePoint Administrators
    6. 6. Site Administrators
    7. 7. Developers
    8. 8. End Users</li></li></ul><li>Environments<br /><ul><li> Function
    9. 9. Dev (multiple)
    10. 10. Test
    11. 11. Staging*
    12. 12. Production
    13. 13. DR
    14. 14. Desktop
    15. 15. Others</li></li></ul><li>Server Roles<br /><ul><li> Web Front End
    16. 16. Serves pages
    17. 17. Database
    18. 18. Stores Content
    19. 19. Index
    20. 20. Crawling</li></li></ul><li>Configure<br />6.<br />
    21. 21. Educate the technical team<br /><ul><li> Get to know your system administrator and DBA
    22. 22. Changing settings, can easily break SharePoint
    23. 23. Generally not even be SharePoint specific, think database, office, security, internet explorer</li></li></ul><li>Configure the right way<br /><ul><li> Always use SharePoint UI’s for changing settings e.g. central administration not IIS
    24. 24. Consider the database as off limits until you have read the necessary white papers from Microsoft.
    25. 25. IT and the business need to work together on settings changes</li></li></ul><li>9.<br />Demo<br />
    26. 26. Minimize the risk<br /><ul><li> Ensure test strategy is defined
    27. 27. This needs to involve the key stakeholders and key business functions
    28. 28. Push changes through the test environment first</li></li></ul><li>Repeatable Process<br /><ul><li> Avoid “This problem only happens on production”
    29. 29. Document
    30. 30. Script
    31. 31. Use a tool to synchronise </li></li></ul><li>Customise<br />12.<br />
    32. 32. Common types of customisation<br /><ul><li> Web parts
    33. 33. Content Types
    34. 34. Branding
    35. 35. Workflow</li></ul>These are not as harmless as they sound<br />
    36. 36. Web parts<br /><ul><li> Content Queries – Large queries
    37. 37. XSLT – Incorrect syntax
    38. 38. RSS – Malicious feeds, internet access
    39. 39. Page Viewer – Malicious content
    40. 40. Consider what web parts are appropriate</li></li></ul><li>Content types<br /><ul><li> Changes may not propagate as expected
    41. 41. Adding fields work well
    42. 42. Fields with the same display name
    43. 43. Fields with different internal names in locations</li></li></ul><li>Branding<br /><ul><li> Rapid development is possible using tools like SharePoint designer
    44. 44. Changes may break the entire site
    45. 45. Think about different sorts of sites
    46. 46. Meeting workspaces
    47. 47. Search
    48. 48. Back-up and rollback strategy
    49. 49. Move between system environments</li></li></ul><li>Workflow<br /><ul><li> How will this be tested
    50. 50. Loops, annoying test emails, deleting information
    51. 51. Deployment strategy</li></li></ul><li>18.<br />Demo<br />
    52. 52. Solution<br /><ul><li> Control using security and policy but need to preserve the goal
    53. 53. Educate the users
    54. 54. Provide a training playpen
    55. 55. Customisations should go via a test server too
    56. 56. Monitor the system
    57. 57. Have a backup and rollback strategy</li></li></ul><li>Code<br />20.<br />
    58. 58. Code<br /><ul><li> Why are you writing code ?
    59. 59. Negotiate first, code second
    60. 60. Code sources:
    61. 61. Buy
    62. 62. Download
    63. 63. Develop
    64. 64. Do you have a support strategy ?</li></li></ul><li>Develop the right way<br /><ul><li> SharePoint code is just .Net code but has it’s own best practises
    65. 65. Traps for new players
    66. 66. Memory management
    67. 67. Excessive database round tripping
    68. 68. Forgetting about scale
    69. 69. Forgetting about security</li></li></ul><li>Common symptoms of memory leaks<br /><ul><li> Frequent recycles of application pool, especially during peak usage
    70. 70. Application crashes that appear as heap corruption in the debugger
    71. 71. High memory use for Microsoft Internet Information Services (IIS) worker processes
    72. 72. Poor system and application performance</li></li></ul><li>Getting memory right is hard<br />using(SPSite site = new SPSite(&quot;http://server&quot;)){<br />using(SPWeb web = site.OpenWeb()){...}}<br />using( SPWeb web = SPControl.GetContextWeb(HttpContext.Current)) { ... }<br />using (SPWeb web = new SPSite(SPContext.Current.Web.Url).OpenWeb()) { ...}<br />But SPDispose check helps<br />
    73. 73. Testing conditions<br /><ul><li> Does will it work with the following:
    74. 74. Large number of sites and lists
    75. 75. 2000+ items in a folder
    76. 76. Multiple web servers
    77. 77. Alternative access mappings
    78. 78. Does it work for different users
    79. 79. Reader
    80. 80. Contributor</li></li></ul><li>Package<br /><ul><li> Create features and bundle into solution (WSP) to deploy
    81. 81. WSP’s automatically get deployed to all servers in the farm
    82. 82. WSP’s can do more than just deploy web parts and files
    83. 83. Staple your features if needed on site creation </li></li></ul><li>27.<br />Demo<br />
    84. 84. Acceptance Checklist<br /><ul><li> Packaging
    85. 85. Coding standards
    86. 86. SPDisposeCheck
    87. 87. Supported/Upgradable
    88. 88. Load + Performance test
    89. 89. Security test
    90. 90. Accessibility</li></li></ul><li>Questions ?<br />Elaine van Bergen<br />@laneyvb on twitter<br />http://laneyvb.blogspot.com<br />29.<br />

    ×