1. Extending Search Beyond In-House Development
Microsoft has an
extensive network of partners, consultants, developers, and software
vendors that support SharePoint 2010. In the summer of 2010, just after
the release of SharePoint 2010, Microsoft released that it had 390,000
partners worldwide supporting its vast array of software. Furthermore,
95% of Microsoft revenue at that time stemmed from partners. It is safe
to assume that no matter the feature needs of a company, there is
probably a Microsoft partner available that can assist to custom develop
or sell a pre-developed solution to meet the requirements.
Most third-party
enhancements are either solutions that meet back-end needs beyond the
user interface, or user-side features such as Web Parts. To review, Web
Parts are ASP.NET server controls, and act as the building blocks of
SharePoint. They allow users to modify the appearance, content, and
behavior of SharePoint directly from the browser. Web Parts allow for
interaction with pages and control the design of a page. These building
blocks provide all the individual bits of functionality users may
experience within a SharePoint environment. SharePoint 2010 comes with
over 75 Web Parts to meet the dynamic needs of organizations, but it
would be impossible for Microsoft to include Web Parts in SharePoint
2010 that meet every feature need for every organization using the
platform. When search user features beyond those included with the
platform are required, "custom search" Web Parts are needed.
Custom Web Parts can range
from adaptations of existing Web Parts to meet new business
requirements, to completely original Web Parts that are built from
scratch. Since the user experience in SharePoint flows through Web
Parts, application pages, and ASP.NET controls, all add-on solutions
will contain some combination of custom Web Parts. There are, however,
specific point solutions built to add one or more Web Parts to meet
specific feature needs. These range from free open source projects from
sites, such as CodePlex, individual purchasable Web Parts, such as those
offered by Bamboo Solutions, to broader packages of Web Parts, such as
those offered by SurfRay's Ontolica Search product.
In addition to custom Web
Parts that cater directly to user functionality, there are many other
solutions available that cater to back-end needs. These needs may range
from better metadata tagging and improved taxonomy, to more index- and
crawler-focused solutions such as iFilters and connectors. Although
portions of these solutions are composed of Web Parts, they also tie
into the underlying architecture and layers of SharePoint that the user
does not interface with directly. They nonetheless greatly affect how
users interact with content and navigate SharePoint.
2. CodePlex and Open Source
When faced with a need
beyond the out-of-the-box capabilities of a platform, it is common to
look to open source solutions. Open source software is that which
provides the end product's source materials. Generally, open source
software is provided at no cost in the public domain, leading to its
attractiveness as a first step for enhancements.
CodePlex is Microsoft's
open source project hosting web site. The site provides a medium for
people to request projects to be made by independent developers, share
their own developments with the public, find solutions already in the
works, and download solutions made by other people. The best part about
CodePlex is that all of the solutions and downloads are free. CodePlex
brings together programming hobbyists, professional developers who want
to share their skills, and those new to Microsoft technologies with a
problem to solve. The site provides a medium for these people to
collaborate on projects and distribute their work at no cost.
There is a vast range of
projects hosted through CodePlex, and the number is constantly growing.
At the end of 2010, CodePlex was hosting nearly 20,000 open source
projects for the Microsoft community. Projects are usually driven by a
need to add point solutions to Microsoft technologies prior to the need
being addressed by Microsoft. For example, MOSS 2007 did not include a
search refinement Web Part. Since the ability to refine search results
by managed properties was common to many other search technologies, and
widely popular on web sites, users began requesting the feature more and
more. Either by request, or on their own, someone began working on a
search refinement solution for MOSS 2007 to meet this need. The first
release (version 1.0) of this MOSS Faceted Search Web Part was in
September 2007, and it was downloaded several hundred times.
Over the course of the next
several months, the solution received several updates fixing bugs such
as security policy issues and XML formatting. In early 2008, the
programmer-released version 2.0 of the MOSS Faceted Search Web Part
brought many major fixes to the Web Part and extended its features. Bugs
such as malformed queries, security enhancements, and disappearing
functions were addressed. New features such as multi-thread processing,
facet icons, and the ability to exclude certain facets were added. In
addition to the Web Part, version 2.0 included guides to configuration
and styling. The solution became increasingly popular, with over 15,000
downloads. Version 2.5 was released in July 2008, about six months after
version 2.0. It was titled to be the first Enterprise release with
continued bug fixes and the new ability to be integrated with the
Enterprise Library, support for advanced search, support for language
refinements, enhanced error visualization, and support for "OR" queries.
In January 2009, the Web Part author uploaded version 3.0 of the
solution, but unfortunately the solution was not complete. A year later,
version 3.0 of the solution had still not been fixed, and the download
was eventually rolled back to version 2.5.
The development history
provides a perfect example of a project life cycle for a CodePlex
project. It brings to light the benefits and concerns for using open
source solutions. The solution was and still is free to anyone who would
like to use it. Organizations that experienced successful, bug-free
deployments of the Web Part had a chance to benefit from a search
navigation feature that was not included with SharePoint until the
release of SharePoint 2010. Development of the software was taken care
of for them at no cost, and they only needed to allocate resources for
its installation and configuration.
Organizations that implemented
one of the earlier releases of the MOSS Faceted Search Web Part needed
to be mindful of several bugs in the software. Since the solutions
available on CodePlex are open source, organizations that experienced
problems with the Web Part could not hold the developer accountable for
resolving issues. They could report bugs in the review section, or
message the author through the web site's messaging system, but did not
have a guarantee for action. As was seen with the 3.0 release, continued
development of CodePlex projects is not guaranteed, and organizations
need to be cautious of the software and version downloaded.
For some
organizations, using open source software available through CodePlex is
the best solution to custom development needs. Generally, organizations
that meet this profile have development resources in-house, and use open
source solutions as a jumpstart to in-house development. When properly
leveraged, some developers can build on open source software, and use it
to jump straight into the more advanced stages of development. This is a
common practice for consultants and system integrators with limited
solution development time lines. Companies may also not have budgets
allocated to software purchases beyond the base SharePoint 2010
platform. These companies can leverage CodePlex projects to enhance
their environment without additional software costs.
2.1. Getting the Most Out of Your Open Source Products
It is important to follow a
few best practices when using any open source solution, including those
available on CodePlex. Most importantly, never install open source
solutions directly into a live production environment. While it is never
recommended to test software in production without first deploying to a
development environment, the rule must be drastically stressed for open
source software. These solutions are not tested by Microsoft, and as a
result should not be blindly trusted to work without bugs. A proper QA
test cycle should always be done on open source solutions prior to
adding them into a production environment. Although they may be
time-consuming to resolve, problems resulting from software testing in
development do not necessarily stand as a detriment to an organization
as a whole. By contrast, if a major problem is first experienced in a
production environment, the consequences are significantly more severe.
Before installing a
download from CodePlex, read the reviews and discussions for the
release. These are comments added by others who have downloaded the
software. Reviews are generally comments about whether a user had a good
or bad experience with the solution and why. Discussions provide
insight into problems that may be experienced with the download so that
they can be avoided. Problems may be minor or avoidable, but these
discussions are generally the best knowledge base for getting ahead of
potential issues when testing. They may also provide insight into how to
make certain configurations.
At the end of 2010,
there were about 300 active CodePlex projects addressing needs in
SharePoint 2010. The most popular download is the SharePoint 2010
Manager, which adds a SharePoint object model explorer. It gives
administrators the ability to browse every site on a local SharePoint
2010 farm and view every managed property within the farm. It also
allows administrators to update properties and data in the SharePoint
object model directly from one consolidated explorer view through the
tool.
2.2. Additional Search Related Projects
Some additional
search-related projects include a Wildcard Search Web Part, which allows
for the wildcard syntax to be added implicitly to every query. The
SharePoint Google Directions Web Part (Figure 1)
allows for federated queries to Google Maps instead of the default
Google Web Search. This Web Part provides a query field in SharePoint
2010 for starting and ending directions, and when executed, the query is
executed through Google Maps and returns the results in a second
browser window.
The SharePoint 2010 Managed
Metadata Web Part creates a user navigation control from a Managed
Metadata column assigned to a list or library (Figure 2). This allows for user navigation of a term set related to a column in a list or library.
The SharePoint Outlook
Connector makes it easier to upload e-mails from Microsoft Outlook to
SharePoint, and attach SharePoint documents to an e-mail message (Figure 3).
This improves on the standard process, which requires users to save
e-mails to their desktops before uploading through the SharePoint user
interface. It also allows users to bypass the need to download
SharePoint documents to a local drive before attaching them to an
e-mail.
NOTE
The Web Parts mentioned in this section can be found at the following links.
http://wildcardsearch2010.codeplex.com/
http://gileshgoogdirections.codeplex.com/
http://metadatawebpart.codeplex.com/
http://spoutlookconnector.codeplex.com/
These projects provide a
general idea of the broad range of solutions that can be found on
CodePlex. As needs evolve, and SharePoint 2010 matures, many more
solutions and projects will appear on the site over time. While CodePlex
is not the only place to find open source solutions for SharePoint
2010, it does house the most abundant collection and is a good place to
start looking for solutions.