SharePoint is a miracle from Microsoft. It's an extensible platform consisting of tools you can build your own web applications and portals with. It’s a collaborative application, it's a Framework, it's a platform, and it's everything you can make with ASP.NET. It is possible to create a professional application in less than a minute using SharePoint. There is no need to design a database or write ASP.NET code. Fabulous, amazing, fantastic!
WSS vs. MOSS
Windows SharePoint Services 3.0 (WSS) is a free edition of SharePoint with the core functionality available as a part of the Windows Server 2003 Operating System, while Microsoft Office SharePoint Server 2007 (MOSS) is a full featured SharePoint edition for enterprise content management. MOSS has the same features of WSS, with more functionality like Excel Services, Forms Services, and Business Data Catalog (BDC).
Depending upon your needs, you can deploy SharePoint on a single-server, or scale out onto multiple servers. A SharePoint server farm is a set of one or more web servers and a database server known as a Configuration Database. The name of the configuration database is held in the Registry on the local server at:
Web Server Extensions\12.0\Secure\ConfigDB.
A SharePoint Web Application is an IIS website that has been configured to run a SharePoint site. When you create a new Web Application with SharePoint, it creates a new database named a Content Database.
Site and Site Collection
A SharePoint Site is a container for content. Every site must be provisioned (created) within an existing Web Application. However, it cannot be an independent entity within a Web Application, and it must be created inside the scope of a Site Collection. A SharePoint Site Collection is a container of SharePoint Sites, and requires a Top-Level Site.
Lists and Libraries
Everything stored in SharePoint is in some form of a list. They are similar to tables in a database; they can contain a variety of content, and also provide Views of information stored in them. Document Libraries are document storage, but they also store the document's metadata and version history. SharePoint stores Lists and Libraries content in the Content Database.
A Site Column is a reusable column definition that can be used across multiple lists. Once you have created a site column, you can use it to create Lists or Libraries. You can update a Site Column in a single place, and it affects all the lists where the Site Column has been used.
SharePoint Content Type is a flexible and reusable type definition in SharePoint that defines the item template in SharePoint Lists and Libraries. We can define columns of items or document types or document templates and even workflows in different sets of Content Types, then associate them to a list or library simultaneously.
Web Part and Web Part Page
Web Part technology is one of the most powerful aspects of SharePoint. Web Parts are the main user interface elements in SharePoint, and they are similar to ASP.NET controls. Web Part Pages are extensible HTML-based pages that are containers of Web Parts. Users are able to customize (change the shared view to all users) or personalize (changes are seen by only the user who made them) the pages. A Web Part page must be created within the context of a document library.
The SharePoint Workflow is built on the Microsoft Windows Workflow Foundation (WF) that is part of the .NET Framework 3.0, 3.5. SharePoint adds extra functionalities to WF to cover its needs like CreateTaskActivity, History List… that are human-oriented in nature like document review and document approval.
It’s a fact that SharePoint is a development platform and you can extend it the way you want with Web Part Framework, Event Handlers, Workflows, and Web Services. We can access the Content Database and the Configuration Database with the SharePoint API or SharePoint Web Services. The main classes of the SharePoint API exist in the Microsoft.SharePoint.dll assembly. Some of the class names in the SharePoint object model are based on old SharePoint terms like SPSite that means Site Collection, or SPWeb that means Site.
Collaborative Application Markup Language (CAML) is a language based on XML, and is used to query lists, and helps in creating and customizing sites. Example:
<FieldRef Name="Customer" />
<FieldRef Name="OrderName" />
Features provide a mechanism for defining site elements and adding them to a target site or site collection through a process known as Feature Activation. We can define Page Templates, Event Handlers, Web Parts, and Workflows with Features. It consists of a folder created within the SharePoint special path, and it contains one or more XML files that contain CAML. Each feature directory contains a manifest file named feature.xml that defines the high-level attributes of the feature.
A very robust aspect of SharePoint is Security. Security in SharePoint is based on the ASP.NET security model, and is hierarchical, and you can inherit an object's users and groups from its parent, or define it independently. Records in lists and documents in libraries could inherit from a parent list and a library, or they could have their own privileges and permissions.
SharePoint Form Services is a set of services that we can use to host and view InfoPath forms on SharePoint, and we can access them via the web browser. In real world, it’s important for a customer to see actual forms they are comfortable with and they are seeing every day.
SharePoint Excel Services is a set of services that we can use to distribute Excel spreadsheets broadly, and we can access them via the web browser. The Excel client is perhaps the most used tool for data analysis and reporting. Whether the data originates in Excel or in some back-end system, users find a way to get it into Excel so that they can manipulate it, analyze it, and format the data and their findings for printing and sharing more broadly. We can use it for business intelligence (BI) dashboards. Also, it has the Excel Calculation Server (ECS) that we can use as a calculation engine everywhere.
The Business Data Catalog (BDC) is a connector that allows you to access data held in back-end line-of-business (LOB) applications, and we can surface that data in multiple places within our site collections. With BDC, we can use database tables and data in SharePoint lists, and integrate a SharePoint application with legacy applications.