Grounding.co.za

Technology information for IT specialists
Welcome to Grounding.co.za Sign in | Join | Help
in Search

Neil's IW Space

Information Worker Blog's by Neil van Wyngaard

Windows Sharepoint Services 3.0 as a Solutions Platform

A lot of .NET developers still do not see the point behind using WSS 3.0 or MOSS 2007 as a development platform. I have therefore decided to write this blog to explain the benefits from the OS upwards to make it easier to understand. I do not claim that the Sharepoint platform is a solution for all kinds of development projects, but I have noticed that a lot of developers tend to ignore the benefits of what it has to offer and keep on re-inventing the wheel.

Below is a diagram outlining all the sub layers involved before we get to MOSS 2007 and the functionality it provides. I will start with the OS and work my way up to MOSS 2007.

WSS 3.0 Arch

OS (Operating System)

The only OS's that Sharepoint can use currently is either Windows 2003 server or Windows 2008 server. This is due to the fact that Sharepoint requires application pools that are only available with IIS 6 or IIS 7. There are however a lot of advantages that these OS's offer the developer that they take for granted.

Most developers focus on the desktop OS's like XP and Vista due to the fact that they develop on these platforms and miss the advantages that a Server OS has available as they almost never investigate these options. They always tend to re-develop what is already available due to ignorance.

I am therefore trying the educate and emphasis the built in advantages of these OS'S so that we can stop re-inventing the wheel so to speak. Below is a list of the advantages that Server 2003 and Server 2008 have to offer:

Windows Server 2003

  1. Easy to Deploy, Manage, and Use
  2. Secure Connected Infrastructure
  3. Enterprise-Class Reliability, Availability, Scalability, and Performance
  4. Lower TCO Through Consolidation and the Latest Technology
  5. Create Dynamic Intranet and Internet Web Sites
  6. Fast Development with Integrated Application Server
  7. Work Smarter By Turning Your File Server Into a Powerful Collaboration Server
  8. Automate Operations with Script-based and Policy-based Management Tools
  9. Increase Document Protection and Availability via Intelligent File Storage
  10. Easy to Find, Share, and Reuse XML Web Services

Below is a hyperlink with a lot more detailed information on the benefits mentioned above:

http://www.microsoft.com/windowsserver2003/evaluation/whyupgrade/top10best.mspx

Logo_Windows_NET_Server_2003

Windows Server 2008

  1. Server Manager and the Advanced Event Viewer
  2. Server Core
  3. Terminal Services Gateway
  4. Terminal Services RemoteApps
  5. Native IPv6 support
  6. Read Only Domain Controllers
  7. Hyper-V
  8. Network Access Protection (NAP)
  9. Secure Socket Tunneling Protocol (SSTP)
  10. Windows Advanced Firewall and Policy Based QoS

Below is a hyperlink with a lot more detailed information on the benefits mentioned above:

http://www.windowsnetworking.com/articles_tutorials/Windows-Server-2008-Top-10-Reasons-Upgrade.html 

windows2008logo_thumb

.NET Framework

Most developers are aware of what the .NET framework has to offer as they work with this on a daily basis. I therefore am not going to spend too much time on this section, but I do want to point out the advantages of the .NET framework 3.0 and the new features that to has to offer. Also keep in mind that WSS 3.0 has already created extensions on top of this platform and a lot of the development that is done at this level might not be required anymore depending on what is required.

The .NET FX 3.0 is a core requirement for installing WSS 3.0. The reason for this is that it integrates very tightly with some of the .NET extensions listed below, especially WWF.

Windows Workflow Foundation (WF):

Windows Workflow Foundation (WWF) is a Microsoft technology for defining, executing, and managing workflow's. This is used extensively by WSS 3.0 to run built-in workflow's that ship with the product, but also provides the ability of building new and custom workflow's. This can either be done using Visual Studio or SPD (Sharepoint Designer).

Windows Communication Foundation (WCF):

The WCF programming model unifies web services, .NET Remoting, distributed transactions, and message queues into a single service-oriented programming model for distributed computing. This removes the complexity of trying to manager each of these methods individually in the application and also creates a standard to manage these communication mechanisms.

Windows Presentation Foundation (WPF):

WPF is a consistent programming model for building solutions that enables the use of richer controls, design, and development in Windows programs. This now allows the developer to easily insert and use components such as video, animation, 2/3D graphics, and various kinds of documents into the application whist removing the complexity of trying to use API's directly like we did in the past.

Windows CardSpace (WCS):

WCS (originally called Info Card) helps people keep track of their digital identities as distinct information cards. This allows easier authentications on many web sites without the need to re-enter usernames and passwords or even credit card information. It is also encrypted and therefore a lot more secure.

Below is a hyperlink with a lot more detailed information on the benefits mentioned above:

http://www.c-sharpcorner.com/UploadFile/rahul4_saxena/DotNetFramework04182007043446AM/DotNetFramework.aspx 

.NET Framework 3.5

WSS 3.0 (Windows Sharepoint Services)

Many people think of WSS 3.0 as a free piece of software that allows people to quickly build an intranet portal that will allow people to collaborate and this viewpoint is not incorrect. I on the other hand prefer to view WSS 3.0 as a logical extension of the .NET framework that allows developers to quickly build web based applications without the need of physically coding the web pages yourself.

If we had to sit back for a moment and analyse the logical steps that a developer would follow to build a web based application you will start to understand my viewpoint. Let's build a quick list:

  • Entities - developers would normally plan their entities using UML tools and then convert these into classes that will ultimately be compiled into assemblies. These assemblies will then be referenced in the web pages that will be created at a later stage.
  • Metadata - properties for these classes will also be designed to store and manipulate the data in question.
  • Database - structures will be modelled and created in the database to stored the data being manipulated
  • Connections - multiple connections will be created to stored and retrieve information from one or more databases
  • Security - this is always quite a complex component for developers to control and takes up a lot of time and effort. Quite often this component is not adequately covered.
  • Authentication - Logon screens need to be developed to control access to the web application.
  • Optimising - caching and threading is always difficult to code and the outcome is not always guaranteed.
  • Scalability - most developers code for a single server environment and scaling is quite often ignored completely.
  • Auditing - custom components need to be developed to create audit trails for the application.
  • Web page builds - this is a very time consuming process and very repetitive in nature.

These are just some of the issue that developers have to deal with and is by no means a complete picture of what is required. I am merely using some of them to illustrate my point.

Now that we have loosely defined the normal concerns that a web developer has to deal with, let's look at how WSS 3.0 can solve these problems:

  • Entities - these get created as "Content Types" in WSS and require no coding.
  • Metadata - these get created as "Site Columns" in WSS and get bound together as "Content Types". No coding.
  • Database - WSS automatically stores all metadata in its own database without the need to create additional structures. No coding
  • Connections - connections to the database handled by the WSS provisioning engine. No coding.
  • Security - this is handled by WSS through NTLM, Kerberos, SSO or "Forms Based" authentication. No coding
  • Authentication - this is done by IIS and WSS. No coding
  • Optimising - WSS has built in caching components that can be configured using the browser.
  • Scalability - the topology of WSS allows it to scale out into a farm configuration. All web pages are stored in the database as metadata and can therefore be rendered from any amount of WFE's.
  • Auditing - WSS has built in audit trails.
  • Web page builds - the provisioning engine of WSS creates web page on the fly without the need of coding them. The layouts can be controlled using the browser or SPD.

I hope you are starting to see how WSS is making the developers life so much easier and now we can truly to use RAD (Rapid Application Development).

Below is a list of the top 10 benefits of using WSS 3.0:

  1. Improve team productivity with easy-to-use collaborative tools
  2. Easily manage documents and help ensure integrity of content
  3. Get users up to speed quickly
  4. Deploy solutions tailored to your business processes
  5. Build a collaboration environment quickly and easily
  6. Reduce the complexity of securing business information
  7. Provide sophisticated controls for securing company resources
  8. Take file sharing to a new level with robust storage capabilities
  9. Easily scale your collaboration solution to meet business needs
  10. Provide a cost-effective foundation for building Web-based applications

Below is a hyperlink with a lot more detailed information on the benefits mentioned above:

http://technet.microsoft.com/en-us/windowsserver/sharepoint/bb684456.aspx

logo-wss

MOSS 2007 (Microsoft Office Sharepoint Server)

Even tough WSS 3.0 does all these wonderful things for us, there is a lot more than can be done. Microsoft has spent a lot of time and effort researching what applications business require and then went along and created a commercial product that make these available in the format of MOSS 2007. This is also an area were developers tend to re-invent the wheel by building applications that can be purchased for a fraction of the costs of what it would take to build them.

Keep in mind that MOSS 2007 is built on top of WSS 3.0 and therefore all the benefits discussed in the previous section also apply to MOSS 2007. WSS 3.0 is therefore a pre-requisite for MOSS 2007.

Let's take a look at the core areas that MOSS 2007 has to offer and were we can benefit from it out of a custom development perspective:

  • BI - MOSS allows us to build digital dashboards to display BI data using "Excel Services", connections to external databases (BDC), caching reports for reporting services and built-in KPI web parts. Quite often developers spend huge amounts of time developing presentations layers for there BI solutions and these are now available
  • Collaboration - MOSS is tightly integrated into MS Office and now allows user to share information like tasks, calendars, contacts and many more through Sharepoint with no need to develop additional applications. All documentation is now also stored in Sharepoint negating the need to email attachments too each other.
  • Portal - Sharepoint has the ability to created full blown Internet facing web sites with built-in CMS capabilities like publishing, approval workflow's, security and browser based editing of web pages.
  • Search - this allows users to find any information on their network. This includes content within Sharepoint, Databases, File Servers, Mail servers and many more. It even indexing the content inside the documents to allow users to search on that basis. Most web applications developed as stand alone solutions have very limited searching capabilities built in and normally rely only on the search capabilities built into IIS.
  • Content Management - built in workflow's and information management policies allow us to control how information is accessed, secured and archived without the need of developing these components.
  • Business Forms - this component allows us to create data entry forms to capture information like leave, expense claim data and many more. This information can then be directly written to any back end database without the need of developing a custom application to do so. These can also be attached to workflow's.

The points mentioned above is only a brief summary of what can be done and you will have to do some more reading to understand to full benefit.

Below is a list of the top 10 benefits of using MOSS 2007

  1. Provide a simple, familiar, and consistent user experience.
  2. Boost employee productivity by simplifying everyday business activities.
  3. Help meet regulatory requirements through comprehensive control over content.
  4. Effectively manage and re-purpose content to gain increased business value.
  5. Simplify organization-wide access to both structured and unstructured information across disparate systems.
  6. Connect people with information and expertise.
  7. Accelerate shared business processes across organizational boundaries.
  8. Share business data without divulging sensitive information.
  9. Enable people to make better-informed decisions by presenting business-critical information in one central location.
  10. Provide a single, integrated platform to manage intranet, extranet, and Internet applications across the enterprise.

Below is a hyperlink with a lot more detailed information on the benefits mentioned above:

http://office.microsoft.com/en-us/sharepointserver/HA101655201033.aspx 

MOSS

Additional Applications built on Sharepoint

If you start analysing what the whole Sharepoint environment has to offer, you will come to the conclusion that it offers functionality that is required by many other applications that Microsoft has to offer. It therefore was only logical the Microsoft would start building their other applications to start running either on top of WSS 3.0 or using it's functionality.

Some of these applications include:

  • Project Server 2007
  • Microsoft CRM 4.0
  • Performance Point Server

Microsoft is making Sharepoint part of their fundamental building blocks going into the future and I envisage many more applications coming from Microsoft that will run on the WSS 3.0 provisioning engine.

Below are some links where more information can be found:

http://office.microsoft.com/en-us/performancepoint/FX101680481033.aspx

http://www.microsoft.com/dynamics/crm/default.mspx

http://office.microsoft.com/en-us/projectserver/FX100739841033.aspx

CRM 4.0 Per Point Server
 Project Server

Argument

Before I start my argument of why I think Sharepoint is a good platform for development, I would like to state that I do not believe that this is a solution for all application development projects. This is not built for applications with huge transactional volumes, but then not many applications require huge volumes.

Below is a list of points that I believe make Sharepoint a good development platform:

  • No need to develop your own web pages as the Sharepoint provisioning engine will create these for you.
  • No need to worry about the database structure as Sharepoint will stored the data for you in it's own meta base.
  • Sharepoint can be extended by writing your own web parts and application pages to build new solutions.
  • Business object and entities can be modelled and mapped using "Content Types".
  • This becomes the best workflow platform for manipulating business data.
  • MS Office is to most common desktop office application and seamlessly integrates into Sharepoint.
  • Built-in search engine makes incredibly easy to find information.

These are just some of the reasons why I think Sharepoint is a good development platform for business applications and there are hundreds more.

This then concludes the end of this blog. Please feel free to post comments, I would love to know what you think!

Referenced Articles

http://www.microsoft.com/windowsserver2003/evaluation/whyupgrade/top10best.mspx

http://www.windowsnetworking.com/articles_tutorials/Windows-Server-2008-Top-10-Reasons-Upgrade.html 

http://www.c-sharpcorner.com/UploadFile/rahul4_saxena/DotNetFramework04182007043446AM/DotNetFramework.aspx

http://technet.microsoft.com/en-us/windowsserver/sharepoint/bb684456.aspx

http://office.microsoft.com/en-us/sharepointserver/HA101655201033.aspx

Related Blogs

Differences between WSS and MOSS

Overview of the .NET Platform

MOSS - Enterprise Content Management Architecture 

SharePoint - The role of a Web Part vs using application pages

Comments

 

|| yeschandana || said:

My favorite links from the 4th week of October 2008

November 2, 2008 7:33 PM
 

YESChandana said:

My favorite links from the 4th week of October 2008

November 5, 2008 11:06 PM

About Neil

Neil van Wyngaard is a MCSE, MCSD, MCDBA, MCT, MCTS, MCITP, MCBMSS. Neil's core industry focus is CRM, ERP, EPM and ECM implementations in the enterprise environment. Core technology focus is based on SQL Server, Visual Studio, WSS, MOSS and OCS
Add to Technorati Favorites
Powered by Community Server (Commercial Edition), by Telligent Systems
Afrigator