Here, we treat and express SharePoint as a development platform. This includes the fact that the
applications developed on top of SharePoint must run in some kind of runtime environment. Having
this in mind this lets you recognize SharePoint as an application server platform, too. It is, however, not
an isolated piece of software. It is built on top of a broad range of interconnected technologies. One of
these technologies is ASP.NET, a platform for creating web applications, and another is the .NET
Framework, the underlying application platform, which consists of both developer capabilities and a
runtime environment. SharePoint adds a bunch of functionality to these basic platforms. Applications
designed for SharePoint are always built using the .NET Framework and quite often ASP.NET. They also
make use of several services provided exclusively by SharePoint.
For developers, a deep knowledge of ASP.NET is essential. If you already have this, you’ll have a
head start into learning SharePoint development. Unless your organization is forcing you to use
SharePoint, you might be struggling with the question of whether to use SharePoint as an application
platform or stay with the ASP.NET platform. While ASP.NET is versatile and allows you to create
powerful applications, there are some reasons that make SharePoint a viable alternative.
SharePoint is a technology that lets users create their own web applications without having to
understand classic web site development. With SharePoint, rather than having to seek out a developer,
users can now just talk to the database and server administrators, and start creating and deploying sites
themselves. SharePoint provides various templates and features for modifying and customizing almost
everything, from simple layout to the data structure held in lists. For the user, SharePoint acts like an
application. Several tools accompany it, including Central Administration, SharePoint Designer, and the
default site settings dialogs.
Developers can do even more with the SharePoint platform. SharePoint is extensible in many ways,
and this extensibility gives developers access to almost all the internal modules. You can extend
SharePoint whenever a user cannot achieve a specific task with the embedded functions. Whether you
need to make a slight modification or a large-scale one, such as adding an application page, you can
extend the platform endlessly.
So, SharePoint is powerful both as an application platform and a developer platform. You can
understand it in greater depth by looking at its main parts:
• SharePoint Foundation: Along with the other foundations, including Windows Communication
Foundation (WCF), Windows Presentation Foundation (WPF), and Windows Identity Foundation
(WIF), SharePoint bundles a collection of class libraries, runtime environments, tools, and
support applications. The various tools address different roles, such as power users being
supported by SharePoint Designer.
• SharePoint Server 2010: This is a product built on top of SharePoint Foundation that delivers a
basic stack of features required to create an intranet- or Internet-aware application with little to
no coding effort. It’s a classic 20:80 ratio between effort and effect. Using SharePoint Server, you
can create 80 percent of what an average site requires with 20 percent of the usual cost.
Using SharePoint as a development platform primarily involves SharePoint Foundation. However,
you can develop on SharePoint Server as well. SharePoint became such a success worldwide because it
allows you to reduce the risk of software project drastically by using it. SharePoint products provide what
you need either out of the box or by extending the platform by coding.
SharePoint Applications
Ordinary users will be able to do lot of things with SharePoint by themselves (e.g., creating web sites,
modifying the look and feel, adding certain features, and entering data), and developers equipped with
at least basic SharePoint knowledge will be able to customize SharePoint further. This includes things
such as adding a new menu item in site menus, creating Web Parts, adding code that invokes custom
actions, and creating workflows beyond the built-in three-state limit.
Imagine that you’re supposed to write a web-based application using ASP.NET, IIS, and SQL Server
(as you may have done many times). Instead, you can use SharePoint Foundation to create your
application, and you’ll still have ASP.NET, IIS, and SQL Server at your disposal. Considering SharePoint
as a development platform can only strengthen your development portfolio.

Figure 1 illustrates a general overview of SharePoint and its related technologies.
The figure shows what a SharePoint application typically includes and how it relates to the Windows
Server components. Users interact with some UI, the behavior is controlled by some business logic, and
data is stored somewhere. Some development tools are used to empower both developers and power
users. Additionally, SharePoint allows you to define three different roles: users, administrators, and
developers. As you can see, the developer role spans all parts and is indeed the most demanding.
SharePoint is a platform that supports all of the following:
• The ability for administrators to maintain any installation, from a single server to a hierarchical
farm
• A built-in way to work with data, including schemas created by end users
• The ability to create and execute business logic, including workflows
• A basic, easy-to-use UI, along with sophisticated customization features
• Visual Studio 2010 and a set of development tools that support everything from simple
customization to huge team-based projects
While the developer support is not SharePoint specific, the other features are enhancements of the
existing infrastructure.
This is an important factor in considering SharePoint as a development platform.