What is SharePoint ?

November 5, 2009

Having been priviledged enough to attend the second SharePoint conference this year and given the opportunity to see both Bill Gates and Steve Ballmer deliver the keynotes at these two events, one point became very clear. What is SharePoint? I have known the answer to this for some time and pleasantly surprised when Steve Ballmer did not have an answer to this that impressed me. It took to long for him to get the point across and by the time he did I had lost my will to live.

The point being that the CEO of Microsoft did not have the words to properly define his best selling product, where do we as mere mortals and sales people even start with this concept that at every release seem to consume more and more functionality and products under the banner of SharePoint.

Well I’m pleased to say that Steve’s lieutenants did not have difficulty in bringing the point across. The answer is pretty simple really. It is an Information Operating System. This might make it easier to help identify the types of problems customers currently have and can be suitably resolved on the SharePoint Platform

SharePoint can be viewed in two primary dimensions:

SharePoint as a Product

One as a product where the opportunities are broadly speaking directly related product core features. An example of this might be Document Management, Records Management, Search etc. These types of solutions often find themselves competing with best of breed products, and when compared on this basis more often than not it seems to be a relatively costly competitor. Depending on your licensing arrangements in place.

The following often misleading concept is that of using SharePoint product features and finding that they have shortcomings. Primarily this could be attributed to the design principles of the product not to be a best of breed but to provide a stable platform for building these types of solutions on top of.

These gaps are filled by ISVs focusing on a variety of areas including disaster recovery, migration and functional enhancements such as CRM and Project Management to name but a few. Considering al of these elements when evaluating the suitability of SharePoint for your needs will help inform your decision.

When extending the scope of the implementation you may indeed find that better ROI can be achieved, the following section considers this viewpoint.

SharePoint as a Platform

When we see SharePoint as the Information Operating System the opportunities are endless. Consider the Windows Platform, can we truly begin to name the number of solutions built on it each with a specific need and each with a set of requirements defined by a segment of the market that created the demand. These applications all have one thing in common, without the capabilities of the Operating System it would be impossible to build these in a cost effective fashion as each product would have to build their own mechanism of instructing the hardware on the appropriate instructions.

When taking into account the common elements that the applications in your organisation currently have and how many those are duplicated. Not only on the same platform but also across other platforms. Now consider the time and effort it took to construct these application features and add to that the overhead of managing them on a daily basis. Considering these elements to inform the design of single platform for implementation of enterprise wide applications might yield more returns than can be imagined. Simple and easy, however we should not under estimate the time and effort to get to this “nirvana”.

It does help to take step back and define clearly the objectives , formulate a strategy and subsequently a migration plan. Keeping all implementations aligned with benefits realisation against a Clearly Defined Business Case.


How to write technical documentation

November 4, 2009

This is absolutely brilliant. If only we could all use this approach.

Jeff Moser has written an excellent article describing how the Advanced Encryption Standard works. He uses an very accessible paradigm – the cartoon. He layers the description starting with a simple overview and progressively getting into more and more detail. Because the story is layered, it is complete at each stage before more detail is added. The audience has the opportunity to leave when they know enough.

[From How to write technical documentation...]

SOA and Why it Matters

November 4, 2009

Services, clouds, and mashups: Why buy enterprise software?

In previous ZapFlashes, we talked about how the emergence of services at a range of disparate levels combined with evolutions in location- and platform-independent, on-demand, and variable provisioning enabled by clouds, and rich technologies to facilitate simple and rapid service composition will change the way companies conceive of, build, and manage applications.

Instead of an application as something that’s bought, customized, and integrated, the application itself is the instantaneous snapshot of how the various services are composed together to meet user needs. From this perspective, enterprise software is not what you buy, but what you do with what you have.

One outcome of this perspective on enterprise software is that companies can shift their spending from enterprise software licenses and maintenance (which eats up a significant chunk of IT budgets) to service development, consumption, and composition.

This is not just a philosophical difference. This is a real difference. While it is certainly true that services expose existing capabilities, and therefore you still need those existing capabilities when you build services, moving to SOA means that you are rewarded for exposing functionality you already have.

Whereas traditional enterprise software applications penalize legacy because of the inherent cost of integrating with it, moving to SOA inherently rewards legacy because you don’t need to build twice what you already have. In this vein, if you already have what you need because you bought it from a vendor, keep it – but don’t spend more money on that same functionality. Rather, spend money exposing and consuming it to meet new needs. This is the purview of good enterprise architecture, not good enterprise software.

When you ask these people to show you their enterprise software, they’ll simply point at their collection of Services, Cloud-based applications, and composition infrastructure.
The resultant combination of legacy service exposure, third-party service consumption, and the cloud (x-as-a-service) has motivated the thinking that if you don’t already have a single-vendor enterprise software suite, you probably don’t need one.

We’ve had first-hand experience with new companies that have started and grown operations to multiple millions of dollars without buying a penny of enterprise software. Likewise, we’ve seen billion-dollar companies dump existing enterprise software investments or start divisions and operations in new countries without extending their existing enterprise software licenses. When you ask these people to show you their enterprise software, they’ll simply point at their collection of services, cloud-based applications, and composition infrastructure.

Some might insist that cloud-based applications and so-called software-as-a-service (SaaS) applications are simply monolithic enterprise software applications deployed using someone else’s infrastructure. While that might have been the case for the application service provider (ASP) and SaaS applications of the past, that is not the case anymore. Whole ecosystems of loosely-coupled service offerings have evolved in the past decade to value-add these environments, which look more like catalogs of service capabilities and less like monolithic applications.

Want to build a website and capture lead data? No problem — just get the right service from Salesforce.com or your provider of choice and compose it using web services or REST or your standards-based approach of choice. And you didn’t incur thousands or millions of dollars to do that. [From You'll be far better off in a future without enterprise software | Dana Gardner’s BriefingsDirect | ZDNet.com]

The Scoop: SharePoint 2010 Records Management

November 4, 2009

What is Records Management The session began with a brief description of what records management is and what constitutes a record. Wikipedia defines records management as “the practice of maintaining the records of an organization from the time they are created up to their eventual disposal.

This may include classifying, storing, securing, and destruction (or in some cases, archival preservation) or records.” The time that an organization considers information to be relevant or valuable is on a per case basis.

Although not always the case, a primary driving factor in records management is compliance with legal standards. A document or email becomes an item of record when it contains information about the running of the business, contains information that must be retained with statutory requirements or contains information about an employee or a potential employee.

Because judicial bodies can classify records as potential evidence in lawsuits, it is very important to include RM with your SharePoint deployments.

How SharePoint 2010 Improves on ERM
In Place Records Management
One of the new industry trends is the idea of in-place records management rather than a central repository of documents that requires a routing service. In this method, the documents stay in the current location, and they are classified as business records.

This will allow the document to gain the appropriate security, retention and disposition without ever having to be routed to a centrally managed location.

This saves IT resources and will more than likely decrease time spent during eDiscovery. New in SharePoint 2010 is the adoption of this technique, which will surely be a good choice for many organizations looking into RM.

Updates to Records Center
The live demo showed off the new slick, AJAX-friendly UI on top of the new Records Center site. For some organizations, the dedicated records center repository is more ideal, so Microsoft has given the site a major face-lift.

Not only is it a lot easier to submit a record (as seen below by the large “Submit a Record” button), but the overall layout of the site is cleaner. You can also search for document IDs right on the main page.

During the demo Darrin Bishop showed us how he created new content types with information rights management (IRM) configured. He was able to very quickly set up retention stages for multiple scenarios relating to documents.

One stage created was one that would delete all previous drafts of a document 3 years after the document was created. Another was a stage that would move the document to the recycle bin after a lifecycle of 7 years.

Auditing, barcodes and labels have been retained from the features seen in SharePoint 2007.

SharePoint 2010 – Records Management

The big push in this release is for greater adoption from end users themselves. The Records Center site has been redesigned so that it is easier for a records manager to maintain the order of the site. The RM configuration page displays step-by-step instructions to guide the user in how to properly setup the hierarchy.

Content Organizer
The routing rules from 2007 have been replaced by the content organizer, which is actually a new SharePoint feature available in all document libraries. The content organizer is used to route documents to the right folder based on content types and any other metadata that you require. The takeaway here is that folders have been given a whole “new” spin in SharePoint 2010.

Changes to Folders
Folders have no functionality in 2007, and the standard best practice is to avoid them in most situations and use metadata columns instead. For 2010, folders will now be able to act as true parents to any child objects below it.

The idea now is to set metadata at the folder level, so that the child objects can inherit that information. So as this may not be new to anyone familiar with other popular DMS/CMS solutions, this is a completely different approach from Microsoft that is already being applauded.

Compliance Details
Another new feature is that every document in SharePoint 2010 now has a “compliance details” option on the context menu. This allows you to check out all the relevant settings that have been applied to a specific business record.

This looks like a great feature that will easily allow administrators to make sure that specific documents are inheriting the right policies and retention settings.

As with most context menus in SharePoint 2010, you won’t have to leave the page to see this information, and you’ll even be able to change the exemption and/or hold status based on what you see here.

SharePoint 2010 Compliance Details

These new and improved features all come together to help attain a higher efficiency when relating to eDiscovery, which is the process of discovering electronically stored data. Because there is a set of Federal rules (Federal Rules of Civil Procedure) that govern the request of information in litigation, it is very important to be able to produce electronic data when requested in a court of law.

It is also important that the data is accompanied along with the metadata that was associated with it in the system.

In SharePoint 2010, content types are now service-based rather than being tied to a site or site collection. Content types will automatically be available in all sites throughout the farm, so there is no need to deploy content types to separate site collections.

Since records are tied to content types, the time required to get a records management solution up and running in SharePoint has been greatly reduced across the board.

New in SharePoint 2010
In-place Records Management
Document Sets
Persistent Document IDs
Content Organizer
Compliance Details Menu Option
Improved in SharePoint 2010
Record Center Site Definition
Record Center Management Interface
Document Routing
Information Policies
We are only scratching the surface here for what will eventually be in the RTM version of 2010, but this was a good overview of what’s to come.

Support for in-place RM within all libraries is a major plus if you are looking for SharePoint 2010 to be your solution. Not only does this reduce IT overhead, but it allows your end users to live in the appropriate libraries for all relevant information. They won’t have to leave the confines of their collaborative environment to find a business record that relates to their project.

But for organizations that rely on dedicated librarians, the existing records center site from 2007 has been greatly enhanced visually and structurally.

We are still in early beta stages with 2010, so some of this information is subject to change. But enough has been shown here to prove that Microsoft is not putting RM on the back burner with the new release.

About the Author Mike Ferrara is an independent consultant and editor with SharePointReviews.com. He specializes in document and content management systems including SharePoint and the Autonomy/Interwoven family of products. [From The Scoop: SharePoint 2010 Records Management]

Product Driven Development – Reduce the Cost of Implementation

October 21, 2009

So we now have a strategy, or have a strategy for defining one, and we have a project, all things being equal we are good to go. Maybe not. Before you go down the road of no return it might be worth evaluating how consultancy can be used to add value up front rather than at the tail end of delivery when things have gone, well lets just say not so well.

Through my various engagements at Microsoft and various other client projects have implemented a delivery framework targeted at product development paradigms. The Framework in concept is addresses the need for a structured approach to solution delivery harnessing the platform (product) features.

The framework enables teams to collaboratively develop application on the platform and through the application of process and technology I was able to create an environment that support the following aspects of delivery that is not natively supported by products that allows for runtime configuration aimed at power users:

·      Configuration Management

·    Automated Infrastructure Deployments

·    Continuous Integration

·    Integrated Unit Testing

·    Automated User Interface Testing framework.

The Framework delivers the following benefits:

·       Provides the opportunity for deployment artefacts to be created, maintained and continuously regression tested throughout the development lifecycle de-risking final deployments.

·       Enables the use of a modular approach to delivery and facilitates the reuse of artefacts between projects and deployments, enabling the organisation to create IPR.

·       Efficiency of resource through the capability of rapid team mobilisation using a standard framework ultimately reducing cost.

·       Time to Market (TTM) is reduced through the application of well established processes and practices.·       Collectively the Framework aim to maximise profits through reuse and productivity.

Below is the Project Delivery Outline and it identifies Composition and elements that requires focussed effort in terms of delivery.


When we look at how the functional components are developed and the quality controls are put in place the following diagram depicts the process that forms the foundation for the framework.


In broad terms the framework has proved its worth in terms of simply reducing the Cost of Implementation whilst promoting quality controls. Please feel free to contact me should any of the objectives in the article align with what you may want to achieve in your Project, Programme or more importantly Organisation.

SharePoint 2010 the Long and Short of it.

October 20, 2009

Been really hard for me to drag myself to
Vegas for a week of sunshine and getting to see the new line up Microsoft has
installed for us in its new release of SharePoint 2010.

Publish InfoPath 2007 Form as PDF Programmatically C#

December 19, 2008

Simple way to publish a Infopath Form to PDF using C# and VSTA

Clients require the following download:

namespace Template_Test








/// Internal Startup


void InternalStartup()


EventManager.FormEvents.Submit += new



/// Form Submit Event




void FormEvents_Submit(object sender, SubmitEventArgs e)



string fileName = string.Format(@”{0}\{1}.pdf”, System.Environment.GetFolderPath(System.Environment.SpecialFolder.ApplicationData), “TestFile”);




this.CurrentView.Export(fileName, ExportFormat.Pdf);


string base64 = ConvertPDFtoBinary(fileName);







/// Store the File Data in the current xml structure as base64


string containing base64 data

void StoreFileData(string base64)


XPathNavigator navigator = this.MainDataSource.CreateNavigator();

XPathNavigator field = navigator.SelectSingleNode(“//my:assetTracking/my:fileStorage”, this.NamespaceManager);






/// Check if the “nil” attribute exists on this node


Node to check

void DeleteNil(XPathNavigator node)


if (node.MoveToAttribute(“nil”, “http://www.w3.org/2001/XMLSchema-instance”))




/// Convert PDF file to Binary string base64


Name of the file


string ConvertPDFtoBinary(string fileName)


System.IO.FileInfo fileInfo = new System.IO.FileInfo(fileName);

byte[] buffer = new

using (System.IO.FileStream fileStream = fileInfo.OpenRead())


fileStream.Read(buffer, 0, buffer.Length);


return System.Convert.ToBase64String(buffer);



/// Convert Binary base64 string back to a file and save in application data



/// This is simply a test method to prove the concept


void ConvertBinaryToPDF()


XPathNavigator navigator = this.MainDataSource.CreateNavigator();

XPathNavigator field = navigator.SelectSingleNode(“//my:something/my:fileStorage”, this.NamespaceManager);

string base64 = (field.Value as

if (base64 is


byte[] buffer = System.Convert.FromBase64String(base64);

using (FileStream fileStream = new
FileStream(string.Format(@”{0}\{1}.pdf”, System.Environment.GetFolderPath(System.Environment.SpecialFolder.ApplicationData), “TestFileFromBinary”), FileMode.CreateNew))


fileStream.Write(buffer, 0, buffer.Length);







Development Tools and Techniques for Working with Code in Windows SharePoint Services 3.0

July 26, 2007

Currently a Program Manager on assignment at MCS Reading we created a solution using Web Parts on Windows SharePoint Services v3. The assumption is that the platform would provide us with a good starting point. However it was easier

Windows SharePoint Services Database Mirroring MOSS

July 6, 2007

Ever wondered what the Microsoft formal documentation says about mirroring. They have recently made an internal version of the documentation public.

http://go.microsoft.com/fwlink/?LinkId=83725&clcid=0×409 < ?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

Smart Tags Communicating with the Custom Task Pane using Windows Communications Foundation (WCF)

March 20, 2007

Next Page »