Tuesday, April 7, 2009

Preview into Azure Services

Microsoft has stormed into the Cloud Computing environment with its release of 'Azure Services' into the air. This blog provides a preview into Azure Services. The CTP version of Azure was launched in the PDC 2008. Ever since, it has caught the attention of many of the Organizations. Before we rip open Azure, we need to understand what the Cloud computing is all about. Why is there so much buzz around it?




Technically, Cloud computing encompasses any subscription-based or pay-per-use service that, in real time over the Internet, extends IT's existing capabilities.

In simple words, it is a service that allows you to host your application in their environment, provide you with the required hardwares, softwares and services on a subscription / pay per use basis. At the same time, they reduce the upfront investment on planning, purchase of hardware and basic softwares. Thus lowering the initial investment cost and turning it into maintenance cost.

Microsoft Azure is a cloud computing solution, that encompasses a number of servers (The count keeps increasing by 10,000 every month) bound together the 'Azure Fabric'. Azure takes care of all the updates/ maintenance for the server, data back up, logging and other tasks. This allows the user to keep focus on the business requirements and leave the scalability / availability / server maintenance tasks to Azure.

A number of services are provided on top of this fabric

  • .NET Services
  • SQL Services
  • LIVE Services
  • Sharepoint Services *
  • Dynamic CRM Services *

* These services are not available in the CTP version.

You can opt for the services that you require, thus you will be paying only for the services that you use. Some of the other advantages that Azure brings to the table are

  • Dynamic Provisioning
    • Increase/ decrease the resource used at run time
  • Lower cost
    • Pay as you grow. Will be billed only for resources used.
    • No Upfront cost on building / planning infrastructure
  • Reduced Administration Overhead
    • Easy and quick deployment for Azure hosted application
    • Server maintenance are already taken care of.
  • Developer benefits
    • Azure supports .NET, IIS, VS08
    • Does not require extensive training to gain expertise

From a developer perspective, the main advantage that Azure brings to the table is that, it allows the dev team to focus on the core business requirement and not on the administrative / extensibility or other hardware issues. Azure provides a platform for a host of the next generation applications.

Azure forms a platform for a new breed of application. But does that mean you need to jump into azure? Following are some of the key factors that needs to be considered before making any decisions. If these signatures exist on your application, then Azure definitely stays on the table.

  • Potential to grow many folds in terms of data / usage?
  • Use social networking type of application?
  • Use highly resource intensive functions from time to time?
  • Require a environment to test the market?
  • Require safe and secure mechanism to communicate (Internet service bus ) outside organizations network.
  • Want to lower the initial cost involved in infrastructure planning and purchase
  • Want to lower the administrative cost of maintaining the servers ( Data backups, audit, connectivity and other server issues)

Migrating an application to Azure does not mean that the investment made on the traditional on premise application will no longer be used. In fact Azure can work hand in hand with traditional application. The traditional application can be extended to move the resource intensive functions to the cloud.

Based on the customer requirement, a cloud application can be

  • Completely hosted in the cloud
  • A part of the application can be hosted in the cloud while the data resides on premise.
  • The application resides on Premise and the data stored on Azure.

Having said all this, we still have to understand that Azure as well as the cloud computing environment is still in a evolving stage. With all the advantages that cloud brings, it also brings a dependency to the service provider. Some of the common concerns that have bubbled up are the in terms of SLAs, maintenances charges etc which can change as times change.

Taking into consideration the Microsoft branding and the kind of investment that has been put into Azure, one thing is certain, Azure is here to stay. It is time to get the creative juices to make the best use of Azure.

SSIS Vs Talend Open Studio

From an initial evaluation of Talend Open Studio, open source ETL tools and comparison with Microsoft SQL Server Integration Services (SSIS) here are few quick points that were observed.

Talend Open Studio is an Open Source ETL Tool. The Tool is based off of Java and Perl. The tool presents us with wide range of ETL elements like

  1. Data connectivity (supports wide range of data connectivity from mySQL to Teradata supports all the widely used ODBC drivers) while SSIS has a generic ODBC connection manager, using which one can connect to data sources.
  2. Supports Java/Perl scripts while SSIS supports Microsoft VB .NET / C# scripts (with SQL 2008).
  3. Developer support from the Talend Forums and Tool Documentation while SSIS comes with MSDN Books Online, hands on labs, screen casts and webcasts, as well as TechNet forums from Microsoft.

Coming to the various components/elements of the tool here's a very high level overview,

Microsoft SSIS

Elements

Control Flow

Containers:- For Each Loop, For Loop, Sequence Containers, etc.

Tasks:- Execute SQL Task, Execute Package Task, Data Flow Task, Script Task, etc

Data Flow

Source:- ODBC, Excel, Flat Files, XML, etc

Transformations:- Aggregate, Sort, Lookup, Slowly Changing Dimension Fuzzy lookup fuzzy grouping, etc.

Destinations:- ODBC, Excel, Flat Files, XML, etc

Event Handlers

Error Handling and Logging Mechanisms:- Event Logging, Checkpoints, Error Handling

Variables

Global and local scoped variables

Configuration Files


Talend OpenStudio

Tasks/Elements

Business Intelligence components

Supports Slowly Changing Dimensions, Supports MDX queries

Business Components

Supports Microsoft AX

Custom Code

Allows Custom Java code (like Script Task/Script Components in SSIS)

Data Quality

Adding Surrogate Keys, Lookup (Fuzzy, Inteval)

Database Component

Similar to DataFlow Container, Inputs, Outputs

Database Utilities Components

Create Tables, ParseRecordset

ELT Component

Aggregates, Filter rows/columns

File Component

All File Operations

Internet Component

FTP, RSS, Mails, Mom, Web services, Sockets, XML RPC, Files

Logs & Errors Components

Error Handlers and loggers, Job Kill,

Misc Group Components

Miscellaneous Components

Orchestration Components

Job Sequencing

Processing Components

Aggregations, Mapping, Transformations, Filtering, Denormalizations

System Components

Operating System level tasks

XML Components

All XML operations

Variables

Supports creations and usage of variables

Conclusion

In overall perspective, we save on licensing cost associated with Microsoft SQL Server Integration Services over Talend Open Studio, but we lose out on several other aspects like,

  • Unified BI toolset offered from Microsoft in the form of MS BI toolset which includes Integration Services, Reporting Services, and Analysis Services when purchasing a single license of Microsoft SQL Server 2005/2008.
  • Developer support from online communities for MS BI.
  • Online Trainings in the form of Webcasts/ Virtual Labs/ Hands on labs etc.

Tuesday, February 24, 2009

Migrating traditional web applications to Silverlight

The move from ASP.net to Silverlight is primarily driven by two factors – leverage the powerful user interface authoring features supported by Silverlight and the client side computing capabilities that it offers. Most companies have significant inventory of traditional HTML based applications. There is always a need in such companies to rapidly leverage the rich user experience of Silverlight while not having to undertake a potentially huge rewrite effort.

WHAT LIES BENEATH A SILVERLIGHT APPLICATION
Silverlight or WPF everywhere is a plug in that is delivered through a browser. It is built on the current, updated graphical subsystem from Microsoft – Windows Presentation Foundation (WPF) and integrates multimedia, graphics, animations and interactivity into a single run time environment. A Silverlight application is compiled into a self sustained package that is delivered by a host web application to a client. This execution model allows Silverlight packages to deliver the power of desktop computing over a browser. This also allows capability to build connected applications that are a step up from asp.net and Ajax applications.

The runtime allows the host application to interact with this package. HTML Bridge is a technology in Silverlight that enables you to access the HTML Document Object Model (DOM) from managed code, and to call managed code from JavaScript. This feature, called HTML Bridge, allows the Silverlight package to interact with the host web application.

CHOOSING AN IDEAL MIGRATION SOLUTION
Migration of an asp.net application to Silverlight is not necessarily a line by line code conversion. It involves revamping the user experience to unleash the power of Silverlight and also re architecting the application to leverage the client computing capabilities. There should be an analysis and assessment phase followed up by development and testing.

There are also key business objectives that need to be met while selecting an optimal migration solution. The most prominent being
• Time to market
• Integration with existing applications in the enterprise
• Seamless user experience
• Turnaround time for changes

An assessment of the existing applications in the enterprise is of key importance, as it needs to be fully understood from a functional and technical perspective, to provide a complete migration strategy.

Based on the results of the assessment there are three ways to port a web application to Silverlight:

--> POWER CONTROLS: SILVERLIGHT CONTROLS HOSTED IN SINGLE ASP.NET PAGE
Here specific controls are ported to Silverlight and hosted within the asp.net web page. The application will continue to remain asp.net while specific functionalities alone are ported to Silverlight.
Key examples are Stock tickers, weather widgets etc.

--> SEPARATE APPLICATIONS WITH TOUCH POINTS
In this type of integration Silverlight and asp.net applications both exist in parallel and with limited interactivity. The two applications will have navigational touch points. The user moves from one application to the other based on his selection.

--> HYBRID: ASP.NET PAGES HOSTED WITHIN A SILVERLIGHT HOSTING ENVIRONMENT
If the destination technology is Silverlight, this is the recommended alternative to a total rewrite. In this approach, we build a hosting environment that is capable of delivering asp.net and Silverlight pages. The asp.net application is iteratively migrated to Silverlight.

For most corporates with significant inventory in traditional HTML web applications option 3 - building a hybrid hosting environment is the best option. This allows for the shortest time to market delivering the maximum impact to the user. The singular hosting environment ensures that the user experience is seamless and not that of a mash up of two disparate applications and technologies.

The hybrid hosting environment delivers the following key benefits:
 The application will be immediately Silverlight – maximize end user experience by leveraging powerful features like animations, vector graphics, advanced typography, 3D drawing, adaptive documents etc.
 Multi-content hosting – migrate only the necessary content to Silverlight.
 Migrate iteratively – identify and migrate few pages at a time. Evolution, not revolution is the mantra.
 Backward compatibility – Allow content to remain in the preferred technology. Reports and other ‘preferably HTML’ content can continue to exist in HTML form.

EVOLVING AN APPLICATION TO SILVERLIGHT
EVOLUTION VS REVOLUTION
Revolution is a jump to the next generation technology in one big undertaking. Cut over takes place quickly and on a large scale: the entire entity is transformed. Evolution is to take incremental steps to the next generation over a longer period. It reduces risk and upheaval. And it allows for assessment of options and planning accordingly. Evolution tends to deliver superior performance over the long-term. Evolution means stepping from the current to the next generation. The steps are incremental, over a period of time.




Building a hybrid hosting environment also allows for backward compatibility with predecessor products and processes. This allows the entities to exist in preferred form and technology while being a singular unit. This allows revolutionary goals to be achieved through an evolutionary process.

MIGRATION METHODOLOGY
Based on the technical and business drivers at play, we suggest the following migration methodology to the desired destination solution.


At a high level the migration methodology needs to involve the following steps




Fig: iterative development methodology

--> Assessment

a. User experience finalization
b. Identifying the migration candidates

In this phase a thorough assessment of the existing applications is done. A validation of the architecture based on the assessment is done.

The primary tasks completed will be user experience finalization and identifying the migration candidates. The outputs of this task are wire frames or mockups, and guidelines for the user experience.

Also as part of the identifying the migration candidates a list of items to be eventually migrated is identified. Also a priority on which the migration has to be performed is identified. Using these two artifacts a high level iterative migration plan is drawn up. An outline of the destination product, with the details of its constituent applications is also drawn up.

--> Infrastructure development
a. Develop Hosting framework
i. Build host shell and utilities
ii. Develop integration enablers and utilities
In this phase the infrastructure to enable the iterative migration is developed. First based on the output from the previous Assessment phase, a detailed design is drawn out for these components, followed by development. Here the following deliverables are built
1. A hosting framework
2. Utilities and enablers for integration
3. Common services
--> Service Orientation
This task can happen in parallel with the Infrastructure development. All the data access and business logic that needs to be accessed by both Silverlight and asp.net application is exposed as services. This includes
1. Legacy services(COM+ etc)
2. Common business logic
3. Data access methods
--> Iterative Development
a. Source Code Development
b. Changes to framework
In this phase the actual migration happens. Here based on the priority drawn up in Assessment phase, a set of items are taken up for migration. Detailed design is performed and development is done. If the set of tasks needs an update to the framework, that too is done here.
--> Deployment
a. Testing and stabilization
b. Production deployment

The application is tested and stabilized and deployed to production. 

Monday, February 9, 2009

Building Highly Testable Web Applications With ASP.Net MVC

Web applications are notorious when it comes to testability. The problem is further compounded when applications have a complex user interface. Recently we did an architecture consulting for one of our clients in the financial industry for a web based application which is part of their core product offering. The product is an enterprise solution which supports multiple client configurations. The application is built on classic ASP and COM relying on the main database of the product for storage apart from a centralized file storage system.
One of the key challenges faced by the application was testability. With code and markup being tightly coupled, what some ASP.Net developers derisively call as spaghetti code, it was close to impossible to write functional unit test cases for the application. The most likely solution was migration of the application to ASP.Net with clear separation of code from markup. However past experience told us that this works well only if the pages are fairly simple and complex pages often resulted in bloated code behind files which are hard to test and maintain. This lead us to consider ASP.Net MVC as a suitable solution approach.
In the world of web applications adoption of MVC pattern opens up possibilities like never before. It is common practice to have minimal code in the code behind and move the operation logic in its entirety to controllers with the ability to support multiple views. This enables clear separation of view from the presentation logic and thereby creating opportunities for testing the application which hitherto didn’t exist. Typically a test double is hooked up with the controllers and one could proceed with testing well before the look and feel of the user interface gets finalized.
The folks at Microsoft foresaw this and introduced the ASP.Net MVC framework as an alternative approach to the traditional web forms based development model. ASP.Net MVC paves way for building applications which follow test driven development (TDD). Controllers could be unit tested outside the ASP.Net process itself and any unit testing framework could be leveraged for this purpose.
There are other benefits as well such as ASP.Net MVC comes with a powerful URL routing mechanism. No longer are requests made to specific web pages with an extension. For example, the URL MyServer.com/Orders/Status/1234 would replace MyServer.com/Orders/ Status.aspx?id =1234. Note the difference: ASP.Net MVC URLs follows a more RESTful style compared to the old web forms model.
Few points that need to be kept in mind before making key decisions:
1) ASP.Net MVC ushers in a radical change in the underlying framework. Pages no longer receive requests; instead requests are routed to controller classes which manage the views. It is quite possible to support other higher level frameworks on top of MVC, for instance building a composite user interface with Composite Web application block with an MVC approach is possible.
2) ASP.Net MVC as a framework addresses building user interfaces in a fundamentally different way. However when it comes to strategies for authentication, session management, use of providers, authorization, localization, caching etc there are no changes. An interesting implication is parts of an application rebuilt with ASP.Net MVC can coexist with rest of the application still using the web form post back model making a strong case for migration.
3) ASP.Net MVC introduces more elements in the projects than one would normally have. It is typical for a complex web page to be broken into multiple views and controllers. In a sense, few tightly coupled larger components are broken up into several loosely coupled parts. Sometimes this is viewed as a disadvantage.
4) One does really need to think in terms of MVC to realize the benefits, and better design skills can make a telling difference. ASP.Net MVC applications are typically high on design.

Since the key issues of our client revolved around testability and a maintainable codebase, ASP.Net MVC seemed to be a natural fit. However there were some concerns around ASP.Net MVC being a brand new framework in its beta version (a release candidate is available now). However such fears were unfounded for the following reasons:
1) ASP.Net MVC though it was a beta version came with an explicit go live license from Microsoft. Microsoft had experimented with several preview editions for almost a year, before deciding the bits for the beta edition. A "go live" license ensured backward compatibility in future versions.
2) Building web applications on MVC is an established norm, though it is new to ASP.Net. Frameworks like Ruby on Rails rely heavily on the MVC pattern. Even before ASP.Net MVC , third party solutions were available for building ASP.Net applications using MVC pattern. More notable among them is Monorail framework of Castle project. ASP.Net MVC works well with these third party solutions. For example ASP.Net MVC optionally lets users plug in MonoRail’s view engine.


Apart from suggesting the ASP.Net MVC approach, recommendations were made around strategies for session management, caching, storage, load balancing, use of third party controls & themes. All considerations applicable to ASP.Net applications hold good for applications built on ASP.Net MVC.
As with any new framework one can expect some churn, however the most recent cut of ASP.Net MVC is quite stable and without doubt a whole new way for building great web applications.

Monday, February 2, 2009

MSDE to SQL Express 2008 Migration

One of our Consulting engagements demanded for an MSDE to SQL Express 2008 database upgrade to occur at the time of the client application installation. So we proposed a solution for using SQL Management objects (in short SMO) to accomplish this task. SMO is defined as a collection of objects that are designed for programming all aspects of managing SQL Server. SMO are industry standard practice to provide an abstraction to the end user with the Databases. Here’s our experience with SQL Management Objects on this engagement.


Objectives:-
Our customer happens to be a giant in the retail industry. The customer had a Purchase Order Management Client application which was several releases old built on the .NET Framework 2.0 and SQL Server 2000 Microsoft Data Engine (MSDE). The client application uses a SQL Server 2000 Desktop Database Engine (MSDE) database to store most data, consisting of lookup data synchronized with the central server and worksheet data that are created and modified by the end user. The current security architecture of the application uses a SQL defined account. In order to support the latest release for the client application our development team decided to upgrade from MSDE to SQL Express 2008, since SQL Express 2008 had better security features than MSDE.

Challenges:-
The major challenges that we faced during this engagement was to come up with a strategy so that the end user/Technical support Staff had very minimal amount of task while performing this upgrade. So our strategies included,


  1. A silent installation script for installing SQL Express 2008 with a named instance
  2. When the application is upgraded, move the old worksheet data from the old MSDE instance to new SQL Express 2008 instance.
Silent Installation of SQL Express 2008
Few pre requisites for SQL Express 2008 installation are,


  1. .NET Framework 2.0 SP2 or higher
  2. Windows Installer 4.5

Since our new application was being built on .NET 3.5, we had to upgrade all the retailers’ machines with .NET Framework 3.5 SP1, but this does not ensure that we have Windows Installer 4.5 installed on the machine.
So we had to write a custom MS DOS batch script which checks for the Windows Installer 4.5 and proceed further with SQL Express installation.


Database Migration from MSDE to SQL Express 2008
Now comes the interesting part of the whole migration where, we had to come up with a strategy to migrate the existing database from MSDE to SQL Express 2008. To this the SQL Management Objects (or SMO) came in very handy for us to do the development.
Here is flow chart of actions that needs to be taken in order to migrate the database from MSDE to SQL Express 2008,



Here is the code snippet where we do the database migration from MSDE to SQL Express 2008.
First of all we must add the following references for SMO,
The Class diagram for the same is as below,
Class Constructor:-
The class constructor is being used to initialize the Server objects and to obtain a handler to the MSDE and SQL Express Instances.

Getting physical file names of the database in MSDE:-
This function gets all the physical files names of the database, a database can include several Data files and log files collections, The FileGroupCollection objects is a collection of all the data files associated with the database, while the LogFileCollection object as the name suggests has a collection of all the log files of the database. It becomes essential for us to obtain all the physical files of the database before migrating it to SQL Express 2008.



Detaching the database from MSDE and attaching it to SQL Express 2008
The Server object gives us methods to detach and attach a database; these methods are used as below:


We hope the information was useful. We will come up with such information more in the future.

Tuesday, December 30, 2008

Purchase Order Management

One of our consulting engagements on Microsoft Business Intelligence Stack is with Purchase Order Management for a retail giant in apparels and home goods across the United States. When it comes to the Retail Industry, most people tend to think it as a Point of Sale (POS) solution. Apart from a POS application, the Retail industry also has to cater to the needs of the retail stores for their Order Management. In simple terms a Purchase Order Management System is a system which is used to manage the purchase orders. But what makes a purchase order (PO) a vital document is that, it is a document issued by a buyer to a seller, indicating the type, quantities and agreed prices for products or services the seller will provide to the buyer. Sending a PO to a supplier constitutes a legal offer to buy products or services. Acceptance of a PO by a seller usually forms a once-off contract between the buyer and seller so no contract exists until the PO is accepted. So this makes a PO, very critical document for any retailer.

The company has a Purchase Order Management application suite which is several releases old. This application suite has few client applications built over Microsoft .NET coupled with legacy systems like Mainframes and RS6000 for Retail shops to place orders from their retail outlets.

Our team proposed new application architecture to cater to the needs of the PO Systems, as there were several challenges with upgrading the application, i.e., any change one of the modules in the application involved end-to-end changes in all the layers of the application. The new architecture of the application is based on .NET 3.5, WCF, BizTalk, SharePoint, SQL Server 2008 BI Stack. Now let us discuss about the role of Microsoft BI stack in this engagement.

Scenario:-
As per the existing application architecture, the retail shops and merchandising agents have the flexibility to either fill out a worksheet using a thick client application and transmit them to the server, where the purchase orders are created and moved to the Mainframes, or, the retail shops could place their orders via the merchandising agents, in which case, there were two workflows, one being the Merchandising Agents using the application to fill out a form to generate a PO or, create the PO on the Mainframe. So these two types of the purchase orders are categorized as to Application generated and non application generated purchase orders.

Worksheets are created using the Client Application is stored in the form of an XML document in the SQL Server 2000 (Client Application) and DB2 (Mainframe and RS6000) databases.

Here’s the block diagram that shows the current workflow of Purchase Order (PO) Processing,


Objective:-
The scope of this engagement is widespread, and there are several teams working different modules of the engagement.
Here are few of the modules that we were involved in,

  1. Conversion from SQL Server 2000 MSDE to SQL Express 2008 for Client Applications.
  2. Implement Integrated Windows Authentication on the Client Application.
  3. Generate Statistics and Audit Reports for Application/Feature usage.
Conversion from SQL Server 2000 MSDE to SQL Express 2008 for client application
This task looks simple though but posted a numerous issues at the time of implementation, here are the few of the tasks that were carried out for the same,
  1. Silent installation script to install SQL Express 2008 pre requisites and resume installation on system restart.
  2. Silent installation batch script to install SQL Express 2008 with a named instance.

Implement Integrated Windows Authentication on the Client Application

Implementing integrated windows authentication was rather simple task. We had to create one LDAP group for the Retail shops/Merchandising Agents and one LDAP group for the administrative users and attach them to the corresponding roles to have data entry or administrative permissions. Thanks to Credential caching feature of Windows, this ensures integrated windows authentication on SQL Express 2008 even in a disconnected mode.


Generate Statistics and Audit Reports for Application/Feature usage

The Statistics and Audit Reports for Application usage is one of the major tasks that we were involved in. There are 3 different reports,

  1. A report to determine how many retail shops are using the client application. The selection criteria for this report is flexible to produce the result based on different combinations of divisions (for ex, apparels, home goods, etc), departments (ex, winter wear, men’s footwear, accessories, etc), retail shop and worksheet transmitter, this is also called the productivity report.
  2. A report that tells how many PO’s were created for individual departments also called as master report, with the division as selection criteria.
  3. An audit report that provides the audit information regarding use of the Lead Time Calculation (LTC) logic, that suggests optimal shipping dates, within the client application, in order to assess the level of use as well as the amount of manual adjustment that is performed after the logic has been applied in the client application. The weekly report illustrates by user the methods by which ship date and ladder plan information was supplied to the client application.

To generate these reports we have used SQL Server Integration Services (SSIS) as ETL tool and SQL Server Reporting Services (SSRS) for the reporting, coupled with ASP.NET 2.0 Website to host the reports and provide selection criteria.

The SSIS packages fetches PO’s from various data sources such as the SQL Server 2000 databases, Mainframe and RS6000 DB2 databases and as per the new architecture of the system, the master data will also be available in a SQL Server 2008 databases. But since there are divisions which are still running on the older version of the application suite, it is necessary to keep the data from the older system as is and provide a switch for the package to start fetching data from SQL Server 2008 databases when all of the divisions are migrated to new version.

The productivity report and the master report are straight forward. These reports count the number of PO’s generated using client application, Mainframes, and RS6000. After getting the count of PO’s these are then stored in the corresponding tables for the reports.

The audit report requires to read through the worksheet and PO XML documents stored in the database to check whether the LTC logic was used or not. SQL Server provides us with XQuery language, using which we can query xml data type. XQuery handles both typed and untyped data. After reading through the XML documents, the values of the required fields are stored in a table. This table contains all the line items of the worksheet, in which the LTC logic was switched on/off.

Apart from these reports there are other BI requirements in this application suite which are planned, for example, analyzing quarterly sales results and forecasting revenues, using SQL Server Analysis Service. Soon we will have more updates on this blog, with more data related to Microsoft BI technologies used in this engagement.

Monday, December 29, 2008

WCM Fundamentals

Web Content Management or WCM in short is one of the more interesting topics on MOSS. This blog aims to provide an overview of WCM, explain what is WCM, why is it special and more importantly, how is it useful for you.

So what is WCM in simple terms
WCM is a rich content authoring and management platform. It provides a set of controls and publishing features that allow the site owners to host content centric sites. It takes care of the site branding, publishing, content authoring, workflows etc. WCM forms a part of the Enterprise content management solution, which in turn forms a part of MOSS 2007. It also leverages the Office Word and Infopath.

In short it is a very scalable solution that separates the content and presentation, relieving the burden on the IT department.

To better understand the solution that WCM provides, we need to understand the problem first.

Managing a content centric web site is by no means a simple task. In most of the organization, it will be the IT team that will have access to add new pages, maintain the pages and keep the site running smoothly.

The content contributor has to undergo the overhead of approaching the IT staff for each and every change. This translates to longer process and higher cost of operation. Many a times the content will have to be edited a few times before it is correctly published.

This is where WCM comes into picture. WCM provides a platform. It defines the site branding, sets the templates, look and feel, authoring rules, publishing rules, workflows, various levels of securities etc.

The content contributor can now focus on his content alone and leave the development hassles aside. He simply submits his data. This will in turn validate the data, start the workflows, approval cycles and finally publish the content without the support of IT staff. The final content will be published in accordance with the look and feel of the rest of the site.

WCM incorporates all features in Microsoft content management server 2002 (MCMS). Microsoft has discontinued providing CMS as a separate product, but instead, it provides the enhanced version ( WCM ) along with MOSS 2007.
Some of the important features of the WCM are listed below.
  • Workflows
  • Search functionality
  • RSS facilities
  • Built in Caching mechanism 
  • Supports multiple devices 
  • Better Versioning mechanism
  • More events captured
  • Pluggable Authentication
  • Reusable Content
  • Web based management
Having said all this, Does this really make sense?

A content heavy web site will have frequent changes. New pages will be added by various contributors. Managing the new pages, recording the version history, validating data, format etc is a mammoth task. Creating a application to handle the same will cost a fortune. WCM automates most of the processes and brings the focus to what matters the most, the content. This way, the contributor will be able to focus more on the data and be able to publish the content in a quick efficient manner.

The process does not require support from the IT department as the contributor can himself manage the content online. Thus saving a lot of effort as well as money.

In short, WCM saves Time and Money. And that makes a lot of sense.