360 likes | 546 Views
SharePoint User Group Melbourne May 2007. Ishai Sagi, SharePoint MVP Senior Consultant Ishai.Sagi@uniqueworld.net Blog: www.sharepoint-tips.com. SharePoint Software Architecture. The good, the bad and the ugly of SharePoint. What Kind of a Beast is SharePoint?.
E N D
SharePoint User Group Melbourne May 2007 Ishai Sagi, SharePoint MVPSenior ConsultantIshai.Sagi@uniqueworld.netBlog: www.sharepoint-tips.com
SharePoint Software Architecture The good, the bad and the ugly of SharePoint
What Kind of a Beast is SharePoint? A parable if I may?Loosely adapted with permissions from “The Sanity Point” blog
A group of three blind men encountered an elephant and his trainer. "We have never met an elephant before," the men said. "May we touch it so that we may know what an elephant is?" "Of course!" The trainer said, and the men approached the elephant.
The first man walked into the side of the elephant, felt up, and down, and side to side and exclaimed "I have encountered a wall. An elephant is a large, warm wall!"
The second man had walked up to the elephant's leg. He said "Are you crazy? This is no wall, but round, and sturdy, like a tree trunk, or a pillar. An elephant is a kind of tree!"
The third had encountered the trunk and said "You are both wrong. An elephant is a large serpent, like a python, but without bones!"
The trainer intervened: "Gentlemen, you are each right, in your own way, but also all of you are totally wrong. An elephant is neither wall, nor tree, nor serpent, or even bottle brush. “
What is an Elephant? “It is a vast creature of many parts, some of which resemble the familiar things you have perceived. But to truly understand the elephant you must expand your perception, and approach not just the piece you are familiar with, but the entire animal."
What does that have to do with anything? • SharePoint is big • Anyone working with SharePoint approaches it from a different perspective: • Is it a database? • Is it a development platform? • Is it a dashboard platform? • Is it a collaboration platform? • Is it an enterprise data and BI platform? • Is it a workflow engine? • Is it a web forms generator?
What is SharePoint?The answer is Yes to All. SharePoint is all of these things, but is not specialized SharePoint does some things better than others There are some pitfalls you may trip into if you treat SharePoint as a thing it is not
The Good, the Bad and the Ugly • The good – • Best practices (the do’s) • Things made easy • The bad – • Worst practices (the don’ts) • Things that need improvement • The Ugly – • workarounds (the might-do’s)
The Good Best practices in SharePoint Software Architecture
SharePoint is Great for: • Storing documents as part of the system • Searching document contents, list items and sites • Managing security in a very flexible way, out of the box • Creating custom lists, surveys and other collaboration tools
SharePoint as an Object Oriented Database • Use sites and lists in your design, and treat them as objects • Get rid of the “Tables” and Foreign Keys way of thinking
SharePoint as an easy security driven application • Use built in granular security features to set security on objects in your system • Empower users, not developers or administrators to set up security • Think loosely coupled
The BDC – It’s here! • A great way to integrate data from external sources into SharePoint • Add actions to entities to create data manipulation applications that are integrated into SharePoint
User Power! • Train users to use SharePoint, and let them create their own solutions • Review users’ solutions, and add customization only if worth the cost
Business Analysts – Have Fun! • Start with a workshop • Show the users how to create lists, and unleash them!
Plan ahead – Content Types & Site Columns • If you are planning a solution using SharePoint, make sure you define the content types first. This will allow easier search, aggregation and change control • Site columns are a very effective way to have a master list, and looking into it from sub sites
Workflows are easy! • Try SharePoint designer workflows – easy ad hoc workflow for the entire family! • Workflow development is easy in Visual Studio to do more complex stuff
Data Views are Easy! Build XSLT data views in SharePoint Designer to quickly and easily display data from various sources
The Bad Worst practices in SharePoint software architecture
Scalability as a database • Don’t use SharePoint as a data store if you foresee the data growing into the tens of thousands (document library supports 10 million, but views support 2,000) • Never do a lookup allowing multiple selection into a list of thousands (at least until a fix is released)
Deep Hierarchy Navigation • Big sites are hard to find your way through • Remember! There was a reason why you wanted to get rid of the file share • Don’t assume that search will solve all navigation problems
The BDC – Almost there! • Usually requires experience to implement • Does not allow multi select
Instability of custom code • Workflow and event handlers can be problematic to stabilize and maintain • CPU intensive actions like creating web sites, and RAM intensive actions like uploading big documents may cause custom code to break
Business Analysts – beware! • The ominous “Report” • Cascading drop downs • Complex Validation logic
The Ugly Workarounds that work, but are not pretty…
Work around scalability • Plan an archiving solution from the beginning – prevent big lists and libraries • You may want to develop your own custom controls to handle big data
Workaround Stability • When creating a workflow or event handler, plan for the worst. • Assume the user will want to start over • Assume the event handler will fail, and you will need to make it do it’s job again
Workaround Field Validation • You can create your own custom field controls, with custom navigation • You can even develop a complex field control for a BDC multi-valued field…
Use SharePoint as a Development Platform when: • Your solution requires a lot of collaboration functionality • Your solution requires managing and storing documents in a secure environment, with search • The system needs to be flexible, and the users need to be able to manage it • Time is of the essence, and security requirements are more then you want to develop
Don’t use SharePoint when • Users expect high performance when creating objects (like sites) • Complex real-time reporting is essential • Volume is expected to exceed the one thousand in each list • Maintaining data structure, and relationships is critical
Great links SharePoint Tips & Tricks (my blog)www.sharepoint-tips.com The SharePoint Tips Utility Pack (my pet open source project for SharePoint people)www.codeplex.com/spstipsutilitypack My SharePoint Nested Tasks projectwww.codeplex.com/spsnestedtasks The Sanity Point – Your (Share)Point of View http://tinyurl.com/2ofmdw