SharePoint 101 - From the Beginning
Posted by Steven Fowler on 07/23/09 | SharePoint
SharePoint is the fastest growing server product in Microsoft history[i]. Developers with SharePoint skills are extremely marketable, even in a down economy. The gap between the number of organizations seeking SharePoint talent and the number of people with the skills to do the work is steadily growing.
If you are a .NET developer seeking to become a SharePoint Developer – the learning starts now.
This is the first article in a four-part series on SharePoint Development that aims to provide the .NET developer an introduction to the SharePoint technology stack.
At the conclusion of this series you will:
- Understand SharePoint technologies
- Become familiar with solution development tools
- Gain a better understanding of the skills needed to design, develop, and deploy SharePoint Web Parts
- Explore additional SharePoint opportunities
The observations and techniques in this article are based on my personal involvement with over a dozen medium- to large-scale deployments of SharePoint.
The History of SharePoint
Microsoft’s model has always been to provide the technology free, but license the product. SharePoint is no different in this regard.
A culmination of technologies acquired and developed by Microsoft in the late 90’s, SharePoint really broke into the market in 2001 with SharePoint Team Services (STS) -- the technology -- and SharePoint Portal Server 2001 (SPS) -- the licensed product.
As SharePoint gained momentum, with self-service site creation by users, we saw remarkable organic growth of the product. No longer did IT have to be engaged in order to give presence on a portal or to provide access to content management systems.
SharePoint Evolves – WSS and MOSS
In 2003, SharePoint was upgraded to the .NET framework and the licensed version remained SharePoint Portal Server 2003, but the SharePoint Team Services technology was changed to Windows SharePoint Services 2.0 (WSS) to better associate the technology with the OS for WSS came with Windows Server 2003.
Major improvements were made to Microsoft Office SharePoint Server 2007 (MOSS) while the technology remained WSS (version 3.0). The Portal brand was dropped as it was clear that the platform did more than ‘just’ deliver portal capability.
New Mantra “SharePoint is both a product and platform”
Moving forward I want you to memorize this thought “SharePoint is both a product and a platform”. SharePoint is a new development paradigm for Microsoft developers used to opening up Visual Studio and developing components, tools, and applications from scratch.
As a product, it is possible to install, configure, customize, deliver, and support SharePoint without ever writing a single line of code. There may be some projects where this will be true for you. Do not let your development biases steer you to a solution that is not best suited to the business requirements.
As a platform, it is possible to extend SharePoint with its rich framework of APIs. Nearly every aspect of SharePoint can be extended to meet unique business needs.
For the purposes of this article, we will refer to ‘SharePoint customizations’ as those changes that do not require code and ‘extending SharePoint’ as those changes that do.
SharePoint in the weeds
I encourage all developers to perform some level of SharePoint administration. This will provide helpful insight into the administrative functions, giving you a clear understanding of SharePoint speak – How can you create a custom Content Type if you do not know what it is?
Let’s cover some key SharePoint concepts:
- Site Columns
- Content Types
- Lists, List Views, List Templates
- Web Parts
- Master Pages and Page Layouts
- Site Templates
A Site Column is a reusable field definition that you can assign to Lists. It is the most granular entity in SharePoint. Site Columns are reusable and help maintain consistency of metadata across sites and Lists.
Site Column example :Suppose you define a Site Column named CustomerType. Users can add that column to their Lists and reference it in their Content Types. This ensures that the column has the same attributes wherever it is used. These can be thought of as database fields.
For developers,
Content Types are a core concept used throughout SharePoint and are designed to organize content in a more meaningful way. These can be thought of as database records.
A Content Type is a reusable collection of configurations for a certain category of content. Content Types are made up of one or more Site Columns and enable you to manage the metadata and behaviors of an artifact in a reusable way. Content Types can be derived (inherited) from other Content Types to build more complex categories of content.
All user-defined Content Types derive eventually from some SharePoint Content Type (document, folder, List, Page Layout, publishing, etc.). We say eventually because you could derive a custom Content Type from another custom Content Type that in turn is derived from a standard Content Type.
The ability to have derived Content Types and templates is a powerful feature of SharePoint.
For Users,
Lists are the core function of SharePoint upon which all other concepts are built.
You may hear that Lists represent information in the form of columns and rows much like database tables. I do not subscribe to this notion. The context of what goes into a List is determined by the Content Types associated with the List. This is where the database table concept breaks down.
In a traditional database table, you would never store Customers and Orders in the same table, but you can with a SharePoint List. When defining a List, SharePoint will generate the CRUD (create, read, update, delete) administration pages for you. This is what makes SharePoint so powerful. Once you define a List, SharePoint handles the rest for you. There are many types of Lists that come with SharePoint depending on whether you have WSS or MOSS.
In part two of our series we discuss Site Columns, Content Types and Lists in detail.
List Views define the way in which a List displays its information. List Views define columns, grouping, sorting, ordering, filtering, totals, and style of information about your List. Every custom List starts off with the “All Items” default view which displays attachments and title of all List items. You could alter this default view or create additional ones. It’s the views that are displayed within your Web Parts (more on this in a bit). Views are often created to target specific audiences for the information.
List Templates are the definition of General Settings, Permissions, Columns, Content Types, and Views by which List instances are created. List Templates can be saved from existing (instances of) Lists. Often you will create a custom List from an OOTB List Template, then save it to a custom List Template. In turn you could create an instance of the custom List, change, and save it as yet another List Template.
TIP: Create instances of the OOTB List Templates and familiarize yourself with the Site Columns and Content Types they utilize. The more you can master these, the more effective solution developer you’ll become.
Web Parts are server-side controls that run inside the context of Web Part Pages (aka Page Layouts) within a SharePoint site. Web Parts are usually bound to Lists and become the UI. SharePoint includes many OOTB Web Parts that you can use as soon as you have installed the product. In addition, you can build your own Web Parts and deploy them to the server. We’ll cover this in detail in Article 3.
Master Pages and Page Layouts dictate the overall look and feel of your SharePoint site. Master Pages are the same concept as in traditional ASP.NET development. Page Layouts host our Web Parts within Web Part zones. SharePoint has a number of Web Part page formats to choose from.
Site Templates are the definition of those Site Columns, Content Types, List instances, Web Parts, Web Part pages, Master Pages, and content present when the site is provisioned. Site Templates are categorized as Collaboration, Meetings, Enterprise, and Publishing. WSS comes with Blank, Team, Wiki, Blog, and various Workspace templates. MOSS comes with Collaboration, Publishing, Document Center, Record Center templates in addition to Search and My Sites.
Microsoft has Site Templates available for download from TechNet.
Tip: The most common Site Template is the OOTB Team Site which includes Shared Documents, Announcements, Calendar, Links, Tasks, and Team Discussion Lists.
What’s next?
In our next article, we’ll explore the SharePoint Development Environment where you’ll gain insight into SharePoint development tools and techniques. At the conclusion of Article 2, you’ll be able to:
- Perform site administration and configuration to support development
- Complete SharePoint Designer customizations
- Gain a greater appreciation of the skills required to extend SharePoint with Visual Studio 2008
About Steven Fowler
Steven Fowler is a published author processing a mix of advanced technology and strategic business acumen derived from 13 years of progressive project management, architecture and engineering experience.
Having extensive .NET Windows, Web and Mobile application design and development experience; he has effectively led and participated within cross functional teams in facilitating collaborative solutions that provide measurable business value. Steven is a Founder and Principal consultant at Fowler Consulting where his focus is delivering SharePoint based design, development and support services for clients including the United States Air Force, Verizon, McGraw Hill, Paychex.com and Raytheon. In his spare time he devotes energy to charity and philanthropy.
Contact | Follow Steven:
Website: http://www.steven-fowler.com
Email: steven.fowler@sharepointps.com
LinkedIn: http://www.linkedin.com/in/stevenmfowler
Blog: http://sharepointps.com/blog/
Twitter: stevenmfowler
SharePoint Training and "How to" become a SharePoint Developer
If you are an experienced .NET developer, consider SetFocus to train for the next step in your career and to network with companies seeking SharePoint developer talent. SetFocus offers a number of ways to learn SharePoint and become a SharePoint Developer.