3

Supporting Technology Knowledge Requirements

By Brian Wilson

In a memorable blog post, Joel Oleson (an ex-Microsoft employee and SharePoint evangelizer) related a story about a question he had been asked by a friend regarding what technologies he worked with in the software industry. Oleson initially responded “SharePoint,” but upon reflection, proceeded to explain and describe to his friend all the “hidden” or underlying technologies that must be understood to architect SharePoint solutions successfully. This post highlighted how difficult it must be for new and aspiring SharePoint architects to form a solid understanding and develop the required base level of knowledge to design and architect rock-solid SharePoint solutions.

The SharePoint platform is a cunning and deceptive beast. It shows you the “cheese,” draws you in, mesmerizes you, and then starts toying with you, like a cat does with a mouse. It spans and utilizes the breadth and depth of Microsoft (and partner) hardware and software technologies. No other technology is as far-reaching, wide-ranging, or has as many touch points as SharePoint.

What makes it even more interesting is that SharePoint is both an application and a platform. From the application perspective, SharePoint relies on a number of underlying hardware and software technologies (for example, the Windows Server operating system). From the platform perspective, SharePoint supports and encourages custom development on the SharePoint platform, regardless of whether it is developed by an internal development team, or a complex powerful tool developed by a third-party developer or Microsoft Partner.

Because SharePoint 2010 is that big, it is nearly impossible to be an “expert” in every area, and, as a result, many fields of expertise exist. SharePoint user experience design or development experts will differ greatly in their skill sets from a search expert, just as workflow experts will differ greatly from administration and infrastructure-focused experts, and so on.

Furthermore, each area of specialization within SharePoint 2010 requires an understanding and knowledge of the corresponding Microsoft and partner technologies. True experts understand not only the SharePoint 2010 feature, but also the complementary or specialist technologies available, the tradeoffs between them, and which to recommend to the customer.

Each specialty requires “in the field” or “real world” experience to master. The knowledge gained from on-the-job experience in real customer situations separates true experts from the theory-only or product-only based experts. It is all about making the best decision and recommending the best solution that will provide the best result (and hopefully the most value) to the customer. This requires a deep understanding of SharePoint 2010 areas, coupled with a broad and (depending on the area) in-depth knowledge of the complementary and supporting technologies.

This chapter provides an overview of the technologies that support and underpin SharePoint 2010, and the complementary Microsoft and third-party technologies that are commonly used to fill gaps, as well as extend or provide a specific capability or feature to enhance your SharePoint 2010 environment.

This chapter helps you to comprehend what technologies you should understand, actively research, and keep abreast of, based on your area of specialty. The sections in this chapter are grouped as follows:

  • Infrastructure technologies — This section covers the various infrastructure technologies common to most SharePoint 2010 deployments. This includes topics such as the Windows operating system, identity and access, software and hardware load balancing, farm communications and protocols, database, storage, and monitoring technologies, Internet Information Services (IIS), caching, compression and performance, and, finally, virtualization and backup technologies.
  • Development technologies — This section provides an overview of the common development technologies used in most SharePoint 2010 deployments. This includes an overview of the .NET Framework, common development tools, application life cycle management tools, and various code libraries used in SharePoint 2010 development projects.
  • Microsoft Office technologies — This section covers key Office technologies used in large enterprises. This includes the browser, the Microsoft Office 2010 suite, imaging and capture solutions, communications and virtual meeting services, and, finally, offline solutions.
  • Complementary third-party technologies — This section focuses on application extensions, as well as operational and administrative extensions.

images It is extremely important to note that although certain third-party technologies are discussed, the goal isn't to endorse or promote one product over another, but to point out specific use cases and features your business may not realize exist or require in your SharePoint 2010 environment. It is up to you or your business to perform the due diligence and research to determine the suitability of a product before deciding to purchase a particular product.

One last thing to point out about this chapter is that it is written to cover the supporting technology requirements. Though attempts have been made to not discuss overly technical areas, some areas of this chapter get slightly technical to explain key concepts to you. On the whole, the discussion in this chapter has been kept at a fairly high level.

INFRASTRUCTURE TECHNOLOGIES

Let's begin by having a look at the common SharePoint 2010 infrastructure technologies.

Windows Operating System

The Windows Server operating system provides the interface between hardware, virtualized hardware (or virtual machines), and software applications. The Windows operating system provides various features that directly support SharePoint 2010 deployments — for example, the capability to host websites using IIS, or, at a lower level, the capability to support various CPU architectures, drivers, hardware components, and various storage solutions. It automatically provides support for security, management, networking, and administrative features (such as diagnostic tools, as well as event logging and reporting tools).

Windows Server provides other more subtle, yet extremely valuable, capabilities. Most notable is the support for executing unmanaged and managed code, using the .NET Framework, and using the Common Language Runtime (CLR). Other useful features include the capability to host virtual SharePoint deployments using Hyper-V, BranchCache technology for optimization of access to files in regional or geographically dispersed locations.

images For more information on Window Server 2008 (R2) feature sets, see www.microsoft.com/windowsserver2008/en/us/overview.aspx.

SharePoint 2010 requires one of the following operating system versions to host SharePoint 2010 deployments:

  • 64-bit edition of Windows Server 2008 Standard, Enterprise, Data Center, or Web Server with Service Pack (SP) 2
  • 64-bit edition of Windows Server 2008 R2 Standard, Enterprise, Data Center, or Web Server, or the 64-bit edition of Windows Server 2008 R2 SP1 Standard, Enterprise, Data Center, or Web Server

The 64-bit operating system and hardware requirements are very important to the scalability of your SharePoint 2010 environment, because this environment can support and use a much larger amount of RAM. Though it may seem simple, the move to 64-bit represents a significant achievement for the SharePoint 2010 product team!

images See the TechNet article, “Hardware and software requirements (SharePoint Server 2010)” at http://technet.microsoft.com/en-us/library/cc262485.aspx for more information about hardware and software requirements.

Identity and Access Management Technologies

It is important to understand the “identity flow” in SharePoint 2010, including the following:

  • The SharePoint 2010 identity architecture
  • How service accounts and users are authenticated, authorized, and managed
  • What systems these authentication and authorization systems interface with
  • The available authentication modes and models
  • The impact of the chosen authentication model on the development, infrastructure, and end users

“Identity flow” relates to how incoming page requests from users flow from the web front-end (WFE) servers to application servers (or service applications) and the database. It also involves calls to authenticate user accounts with directories (such as Active Directory), calls made within code on behalf of the user to render each web part on the page, and calls made to external systems (such as external databases and web services on different machines).

The SharePoint 2010 identity architecture is based on Windows Identity Foundation (WIF). SharePoint 2010 supports existing identity infrastructure, such as Active Directory, Lightweight Directory Access Protocol (LDAP), SQL, and Web Single Sign-On (SSO), as well as other identity-management systems. It supports multiple authentication methods per SharePoint web application. It enables automatic, secure identity delegation so that both the user identity and service identity that is available in the front end is propagated to the back-end services to use these identities.

It is important to understand the difference between authentication and authorization. Authentication is the process that systems use to securely validate a service and user accounts identity. Authorization occurs after the user has been securely identified. Authorization assesses the privileges of the service or the user account, and ascertains actions users are authorized to perform.

SharePoint 2010 supports a variety of authentication modes, including the following:

  • Windows (NTLM, Kerberos, Anonymous, Basic, and Digest)
  • Forms-based authentication (LDAP, SQL Server database of a custom-developed membership and role provider)
  • The newly introduced token-based or claims-based authentication mechanism

THE DOUBLE-HOP AUTHENTICATION ISSUE

The double-hop issue occurs when a web server is required to impersonate the caller when connecting to resources located on another server. The first hop is from the user's web browser to the web server, and the second hop from the web server to the server containing the resources you are trying to connect. Out-of-the-box examples include Excel Services, RSS feeds, reporting services, and use of external data sources. Implementing claims-based authentication or Kerberos helps to overcome these issues.

There are a number of identity and access areas to research and understand, including the following:

As with any software system, it is critical that all specialists understand identity and access technologies. Poor implementations make it easier for hackers (both internal and external) to gain access to valuable assets in your SharePoint 2010 environments.

Load-Balancing Technologies

Load-balancing technologies improve the scalability and availability of “mission-critical” services in your business. Load-balancing technologies work by distributing incoming requests over a number of servers to ensure that no individual server is overworked.

This technology is especially suited to “stateless” web applications where each client request made to SharePoint 2010 is a separate transaction. Load-balancing technologies can be grouped into software-based, hardware-based, and “internal” (or built-in) load balancing.

The common software load-balancing technologies include the following:

  • Network Load Balancing (NLB) — NLB is a feature of Windows Server 2008 that enables you to distribute TCP/IP requests over multiple systems to optimize resource utilization, decrease computing time, and ensure system availability. It works by implementing a network load-balancing cluster using Windows Network Load Balancing Manager to configure a “cluster IP” that is represented to users via a specific URL, such as http://intranet.contoso.com. One of key issues related to using this technology is the level of intelligence built in to differentiate between servers that are up, and those that are up, but have “hung” or have become incredibly slow.
  • DNS Round-Robin — The DNS Round-Robin option involves utilizing Domain Name System (DNS) to send requests in a “round robin” fashion to enlisted servers. As stated on TechNet, Microsoft did not recommend this technology for SharePoint 2007, and the same applies for SharePoint 2010. One of the reasons why it is not as performant as other technologies is that it requires making changes in DNS whenever a server needs to be taken out of (or put into) rotation. Once the change is made, it isn't immediate. All DNS support, TTL (Time To Live), and the new settings may not have had time to propagate throughout the organization.

Other software technologies are sometimes used in specific scenarios, but not necessarily with the main purpose of load balancing. These include Microsoft Intelligent Application Gateway (IAG) and Microsoft Internet Security and Acceleration Server (ISA) servers. These have been renamed to Microsoft Forefront Unified Access Gateway and Microsoft Forefront Threat Management Gateway, respectively. Both of these products provide load-balancing features.

Hardware load balancing offloads the compute requirements from the WFEs in your farms. It works using hardware (such as a router or a switch box) to direct website traffic between the WFE servers. Hardware load balancing is extremely useful in large farm scenarios, regardless of whether intelligent traffic balancing is required.

Hardware-based devices may provide other features such as caching, compression, and detailed machine up/down detection features to automatically route traffic to responsive servers. Examples of hardware load-balancing technologies include network appliances, switches, and routers from companies such as F5 Networks “BIG-IP” and Cisco.

images Joel Oleson posted a detailed blog discussing various load-balancing options entitled, “Deciding between NLB vs. Hardware Load Balancing,” at www.sharepointjoel.com/Lists/Posts/Post.aspx?ID=209.

Farm Communications and Protocols

It is important for SharePoint architects to understand what protocols underpin farm communications in SharePoint 2010. It helps you implement SharePoint 2010 farms that are secure and “locked-down” by default. It also helps you troubleshoot issues that may be blocking or preventing SharePoint from working. And, finally, it helps you design optimal, performant, and secure solutions for your customers and business.

Farm communication can be categorized into the following three types:

  • Inter-server communication — This describes traffic that occurs between servers inside a SharePoint 2010 farm, and includes traffic to SQL Server.
  • Extra-server communication — Extra-server communication refers traffic to other servers in your environment. These typically include traffic to Active Directory, domain controllers, DNS, search indexing operations of external content sources, and retrieval of business data from Business Data Connectivity Services. It also includes calls to services hosted outside your environment, such as cloud-based Azure services.
  • Client-server communication — Client-server communication refers to all communication between the SharePoint 2010 farm and clients, such as Office 2010, browsers, SharePoint Designer, and mobile clients.

All SharePoint 2010 farm communication takes place over defined protocols at different layers of the TCIP/IP model. This model specifies groups of protocols at different layers, such as the Link, Internet, Transport, and Application layers.

From a SharePoint perspective, the Application layer is where most of the protocols that are used by SharePoint can be placed. These include common protocols such as Remote Procedure Call (RPC), Simple Message Transport Protocol (SMTP), Server Message Block (SMB), DNS, File Transfer Protocol (FTP), WebDav, LDAP, and HTTP, as well as specific or proprietary protocols developed by Microsoft and used by SharePoint 2010.

images SharePoint 2010 makes use of a number of proprietary protocols. These protocols are thoroughly documented and available to download. Check out MSDN at www.microsoft.com/downloads/en/details.aspx?displaylang=en&FamilyID=5e94ad07-902c-422f-aadd-ff2bba9e540a.

If you are wondering why these protocols are important, they describe SharePoint 2010 processes and mechanisms used to deliver SharePoint 2010 Features. This protocol documentation is invaluable in diagnosing complex environmental issues relating to SharePoint 2010 features.

Database Technologies

As you probably already know, SharePoint 2010 is an application that is heavily reliant on database technologies to host farm configuration and site content. As described on TechNet (in an article at (http://technet.microsoft.com/en-us/library/cc262485.aspx), SharePoint 2010 hardware and software requirements indicate that the following versions of SQL Server are supported:

  • The 64-bit edition of Microsoft SQL Server 2008 with SP1, plus Cumulative Update 2 (CU2). Microsoft does not recommend CU3 or CU4 for SharePoint 2010, but CU5 and onward are supported and recommended.
  • The 64-bit edition of Microsoft SQL Server 2005 with SP3, plus CU3.

Following are some of the key databases technologies that you should understand:

  • SQL Server core constructs — SharePoint 2010's application or business logic uses various SQL Server constructs, such as tables, stored procedures, Transact-SQL (T-SQL) language, functions, and indexes, to manage, store, and retrieve SharePoint data. IT professionals are often tasked with improving the performance of your SharePoint 2010 environment. Tuning your database (within the Microsoft support constraints) can really improve overall farm performance. From a development perspective, it is sometimes necessary to look in your development databases to gain a deeper insight into how SharePoint features work under the hood.
  • SQL Server auditing — SQL Server Audit enables businesses to track and log events that occur on the system (for example, detecting changes made to database objects/stored procedures). This feature is often required to meet government or various industry compliance requirements. See http://msdn.microsoft.com/en-us/library/cc280386.aspx for more information.
  • Transparent data encryption — Transparent data encryption performs real-time I/O encryption and decryption of data and log files of both the communication channel and physical media, without requiring any change to SharePoint. By default, data stored in SQL Server is unencrypted. If someone steals a content backup, your content could be at risk. If enabled, this feature helps protect your important SharePoint content. The beauty of this feature is that it is transparent to applications, including SharePoint 2010. See http://msdn.microsoft.com/en-us/library/bb934049.aspx for more information.
  • Backup compression — SQL Backup compression reduces the amount of I/O and storage required to write backups to the backup device. The size of your content database will affect the length of time required to successfully back up. Backup compression can help ensure backups are completed within the allotted time available for this maintenance operation. For more information, see http://technet.microsoft.com/en-us/library/bb964719.aspx.
  • Remote BLOB storage — Remote BLOB storage enables administrators to store binary large object (BLOB) data outside of SQL Server, in a way that is transparent to SharePoint. This reduces the amount of disk space and expensive storage required for your SQL Servers. As the growth of content databases reaches into the multi-terabyte range, organizations begin to seek options to reduce the cost of expensive (tier 1) storage by offloading content (stored as BLOBs) within the database to cheaper file storage. See http://technet.microsoft.com/en-us/library/ee748638.aspx for more information.
  • SQL Server resource governor — SQL Server 2008 enables you to specify limits and control the resource consumption of incoming requests. For example, Microsoft recommends that you limit the amount of SQL Server resources used by web servers targeted by the search crawl components. See http://technet.microsoft.com/en-us/library/cc298801.aspx for more information.
  • SQL database mirroring — SQL database mirroring provides increased availability to your SharePoint 2010 farm. It enables you to bring a standby copy of your database online. See http://technet.microsoft.com/en-us/library/ms189852.aspx for more information.
  • Failover clustering — Failover clustering enables seamless failover between server nodes in your SQL Server cluster in the event of a host failure. See http://msdn.microsoft.com/en-us/library/ms189134.aspx for more information.
  • SQL log shipping — Log shipping enables you maintain a separate copy of your databases on a secondary server, thereby providing a standby copy of your data. Log shipping backs up the transaction logs on the primary server, copies them, and restores the log backup on the secondary server. SQL Server log shipping is useful in SharePoint disaster recovery scenarios. See http://msdn.microsoft.com/en-us/library/ms187103.aspx for more information.
  • Database snapshots — Database snapshots are read-only, static views of a database. Snapshots are useful especially when combined with content deployment features of SharePoint 2010. See http://msdn.microsoft.com/en-us/library/ms175158.aspx for more information.
  • SQL Server Reporting Services (SSRS) — SSRS enables businesses to develop SQL Server reports using data from a variety of sources in your environment. These reports can be displayed in SharePoint 2010. See http://msdn.microsoft.com/en-us/library/ms159106.aspx for more information.
  • PowerPivot for Excel and SharePoint — PowerPivot for Excel is a data analysis add-in for Microsoft Excel that enables users to analyze massive quantities of data. PowerPivot for SharePoint enables these users to host these workbooks in SharePoint 2010. See www.microsoft.com/sqlserver/2008/en/us/powerpivot.aspx for more information.
  • SQL Server Analysis Services (SSAS) — SharePoint 2010 provides deep support for consuming and mining data held in SSAS in business intelligence (BI) dashboards, scorecards, and key performance indicators (KPIs) in SharePoint 2010. See http://technet.microsoft.com/en-us/library/ff696762.aspx for more information.

images For more information, see a Microsoft whitepaper written by one of the authors of this book, Bill Baer, entitled “SQL Server 2008 R2 and SharePoint 2010 Products: Better Together,” at http://go.microsoft.com/fwlink/?LinkID=187264.

Storage Technologies

Storage technologies require a deep understanding, not only of SharePoint and SQL Server, but also of the underlying hardware infrastructure. The choices made at this level ripple all the way back up to influence overall capacity and performance of your SharePoint 2010 environment.

images Chapter 17 provides detailed guidance on planning your storage for your SharePoint 2010 environment. Additionally, TechNet provides a great in-depth article on storage and SQL Server capacity planning at http://technet.microsoft.com/en-us/library/cc298801.aspx.

Monitoring Technologies

Monitoring technologies play a very important role in the maintenance and continued performance your SharePoint 2010 environment. They continually evaluate, analyze, and repair problems, and escalate problems for your attention.

Monitoring technologies can be categorized into two major groups — those that are provided by SharePoint, and those provided by specialist products as part of a larger enterprise monitoring solution. SharePoint 2010 provides a number of monitoring features, including the following:

  • Unified Logging Service — The diagnostic logging feature captures information in SharePoint trace logs (located by default in the “14 hive”), Windows event logs, and the SharePoint logging database for each SharePoint Server in your farm. The level of detail captured can be set and controlled in the Central Administration images Monitoring images Configure Diagnostic Logging page. This page enables you to specify exactly what services (and elements within each service) to log.
  • Health and Usage Data Collection service — This service collates data using specific monitoring timer jobs. It pulls together information from a wide range of sources — such as event logs, timer service information, performance counters, site collection and sub-site metrics, search usage, and other sources. This information is written to the unified logging database, and can then be used to create custom reports, web analysis reports, and administrative reports.
  • SharePoint Health Analyzer — The SharePoint Health Analyzer runs checks (by using predefined health rules) on servers in the farm. Any failures are written to the Health Reports list in SharePoint 2010 and to the Windows Events log.

images For more information, see the TechNet article, “Monitoring Overview,” at http://technet.microsoft.com/en-us/library/ee748636.aspx.

Medium to large enterprises primarily use specialized enterprise monitoring solutions. In the Microsoft world, the Microsoft System Center product suite is one of the technologies used. One of its products, System Center Operations Manager (SCOM) 2007 R2, provides support to monitor your SharePoint 2010 environments, as well as providing specific “management packs” that enable service and support teams to manage SharePoint technologies.

One of the especially great features is its capability to provide you with an “aerial photograph” or diagram view of your SharePoint 2010 environments, and the capability to “zoom” into specific areas of concern. Figure 3-1 shows a diagram view from TechNet.

images

FIGURE 3-1: System Center Operations Manager 2007 R2 — Diagram View

Internet Information Services

IIS can be described as the bedrock of SharePoint Server 2010. Although SharePoint 2010 does a great job of automatically configuring IIS to host web applications and services on various servers in your farm, this doesn't absolve you of your responsibility to understand how SharePoint uses the features of IIS. In fact, it is crucial for you, regardless whether you are a developer or an IT pro, to understand IIS.

First of all, IIS is provided as a feature of the Windows Server operating system. Windows Server 2008 provides IIS 7.0, and Windows Server 2008 R2 provides IIS 7.5. IIS 7.0 and 7.5 use a modular architecture that offers greater flexibility, a much higher level of componentization, increased extensibility, and improved ASP.NET integration.

The components of IIS perform various functions for application and web server roles in IIS 7.0 and IIS 7.5 (for example, listening for requests made to the server). These components include protocol listeners, services, and the Windows Process Activation Service (WAS).

Following are some of key features (as summarized from the IIS Learning website at learn.iis.net):

  • Protocol listeners — Protocol listeners listen for protocol-specific requests and route them to IIS for processing. For example, when SharePoint web pages are requested, the HTTP listener picks up the request, processes it, and returns a response.
  • HyperText Transfer Protocol Stack (HTTP.sys) — HTTP.sys is a protocol listener that processes HTTP and HTTPS requests. HTTP.sys is part of the networking subsystem of the operating system, and is implemented as a kernel-mode device driver. This a major improvement from IIS 6.0, which was a user-mode driver.

    images Kernel-mode and user-mode are terms used to describe the level of access to execute code on a computer (via the CPU). Code running in kernel-mode is allowed to execute in the unrestricted mode, whereas user mode code must make system calls to request the kernel to perform operations on its behalf. System calls take time, and can degrade performance. This is one of the reasons HTTP.sys is integrated at such a low level. The HTTP.sys kernel-mode driver forwards the request directly to the correct worker process (w3wp.exe).

  • Listener adapters — Listener adapters allow listeners to connect to WAS. Listener adapters are Windows services that receive messages on specific network protocols, and communicate with WAS to route incoming messages to the correct worker process.
  • World Wide Web Publishing Service (WWW Service) — This process no longer manages worker processes as it did in IIS 6.0. The WWW Service is the listener adapter for the HTTP listener. It is primarily responsible for configuring HTTP.sys, updating HTTP.sys when a configuration changes, and notifying WAS when a request enters the request queue.
  • Windows Process Activation Service (WAS) — This service manages the protocol listeners configuration (using listening adapters), application pool configuration, and worker processes for both HTTP and non-HTTP requests. When a protocol listener picks up a client request, WAS determines whether or not a worker process is running. If one is available, the request is passed to the worker process. If not, it starts a worker process and then passes the requests. WAS supports the running of applications with different protocols in the same application pool.
  • Windows Communication Foundation (WCF) — WCF, a technology used heavily in SharePoint 2010, can function both as a protocol listener and listener adapter. WCF makes use of the WAS service to host services that do not communicate with HTTP network protocols.
  • IIS 7 modules — IIS 7.0 uses the new IIS architecture to componentize or modularize features of IIS. This enables you to control what modules you want on the server, and to replace existing modules and add new modules. The modules provided by IIS can be grouped into HTTP, security, content, compression, caching, logging and diagnostics, managed, and managed support categories.
  • IIS 7 request processing — IIS 7.0 and ASP.NET request pipelines combine to process requests using an integrated approach. In previous versions of IIS, tasks would go through a process in both the IIS and ASP.NET pipeline. IIS 7.0 eliminates this duplication.
  • IIS 7 application pools — Application pools allow you to provide separate process boundaries. If one application crashes, applications running in other process boundaries will not fail. Two application pool modes are supported: classic and integrated. SharePoint 2010 uses integrated mode.

Figure 3-2 provides a high-level architectural view of an HTTP request, and Figure 3-3 illustrates the worker process (w3wp.exe).

images

FIGURE 3-2: Overview of an HTTP request

images

FIGURE 3-3: Overview of a HTTP request inside a worker process

images You should review the great, comprehensive learning material provided by the IIS team. Reagan Templin's article, “Introduction to IIS 7 Architecture,” provides an in-depth explanation of the IIS 7.0 architecture. To read this article, and many other IIS learning articles, see http://learn.iis.net/page.aspx/101/introduction-to-iis-7-architecture/.

Caching, Compression, and Performance

SharePoint 2010 supports a number of compression and caching technologies to reduce database and network load, and to improve the end-user experience. These technologies exist as software within SharePoint, IIS, and Windows technologies, and as dedicated hardware and software products from specialist vendors. Key technologies include the following:

  • Disk-based BLOB caching (SharePoint 2010) — Disk-based BLOB caching enables SharePoint to maintain copies of large and frequently used files on the WFE. This reduces load on databases and speeds up performance by serving them directly from each WFE.
  • Maximum upload size (SharePoint 2010) — Limiting the maximum upload size, in effect, limits the impact, duration, and resource usage of large file uploads and downloads.
  • Page output caching (SharePoint 2010) — The page output cache stores the rendered output of a page, as well as different versions of the cached page, based on permissions of the users who are requesting the page. This setting is configurable via cache profiles within the site collection, and requires that publishing Features be turned on.
  • Object caching (SharePoint 2010) — The object cache stores objects in memory on the WFE. This reduces the amount of traffic between the SQL database and each WFE. This increases the rendering of pages (that make use of these cached objects) and speed at which pages are returned to the browser. This setting is configurable within the site collection, and requires that publishing Features be turned on.
  • Bit-rate throttling (IIS) — Bit-rate throttling limits the speed at which types of data (such as audio and video files) are served between WFEs and client computers. This feature helps protect network performance, while still providing a full video and audio end-user experience.
  • HTTP compression in IIS 7 (IIS) — IIS provides features to reduce the consumption of bandwidth available to your network by reducing or compressing responses sent across the wire. A downside to this feature is that it consumes significant CPU time and memory.

Specialist vendors (such as Riverbed, F5 Networks, Cisco, and Juniper) provide hardware and software compression and caching technologies that help reduce the cost of network transport of pages and files across your local area networks (LANs) and wide area networks (WANs), thereby improving the end-user experience and productivity.

These technologies can be broadly grouped into WAN optimization and web acceleration. The cost of these technologies varies greatly. As a result, investment in these technologies typically forms part of a much larger strategy across a number of systems and office locations in your organization.

Virtualization Technologies

In the past couple of years, virtualization technologies have increasingly become the modus operandi for IT departments deploying servers into their environments. This is partly as a result of the following:

  • The maturity of hypervisor, infrastructure, and management technologies
  • An effort by businesses to reduce operation costs in trying economic times
  • The increased trust, understanding, and confidence of key business decision makers in virtualization technologies

Virtualization technologies are used heavily by developers and IT professionals to host 64-bit SharePoint environments in an isolated environment. Although SharePoint 2010 now makes it possible to install on a Windows 7 machine, this feature is not recommended. This is because it does not allow you to restore your development environment to a previously known “good” state, and it does not enable you to isolate different customer projects on completely separate development environments.

images Chapter 23 provides detailed guidance on virtualized deployments of your SharePoint 2010 environment.

Backup

Backing up SharePoint 2010 involves careful planning, design, deployment, and operation of backup and recovery solutions. Therefore, this forms a major part of your SharePoint 2010 infrastructure and business continuity management design.

SharePoint 2010 and SQL Server provide tools to assist in the back up of your environment. Microsoft and third-party vendors provide technologies to support your environment (for example, Microsoft System Center Data Protection Manager). These tools enable you to back up all databases hosted by SQL Server, except the configuration database. At this point, Microsoft only supports backup and restoration of the configuration database using Data Protection Manager (DPM). Specialist infrastructure vendors provide in-depth and wide-scale backup technologies that support various systems in your environment. The big players include specific components to integrate SharePoint into their solutions. Key features include being able to back up server physical or virtual operating systems to tape libraries (thereby requiring tape library management), as well as utilizing advanced granular and consolidated machine backup support. Examples of backup vendors include Symantec NetBackup, AvePoint, and Quest.

images Chapter 21 provides detailed guidance on planning backup, recoverability, and availability of your SharePoint 2010 environment.

A subtle (often forgotten) requirement is the storing of your backups in an offsite and secure location. If your data center is destroyed by fire, would you be able to recover your data to a new server environment from your backups?

DEVELOPMENT TECHNOLOGIES

This section covers the common SharePoint 2010 development technologies.

.NET Framework

The .NET framework is a software development platform and software framework. It consists of the Common Language Runtime (CLR) and an extensive class library. Together, the base class library and the CLR make up the .NET Framework. The CLR provides important services such as security, memory management, and exception handling.

images

FIGURE 3-4: The.NET Framework stack

.NET supports several programming languages, including C#, VB.NET, and C++. The .NET base class library is available to all the programming languages supported by .NET.

As you now know, SharePoint 2010 is built on top of Windows Server and IIS. These technologies host and support the .NET Framework, and, in particular, the ASP.NET platform to build and support dynamic websites.

As shown in Figure 3-4, the .NET Framework stack consists of software technologies released as part of the .NET Framework versions over a period of time.

Although all technologies in the framework are very important and should be understood, the following technologies should stand out from a SharePoint 2010 perspective:

  • Active Server Pages (ASP.NET) — ASP.NET is a web development framework that includes a number of features to make it easy to build dynamic websites. It enables you to use a language (for example, C# or VB.NET) along with base classes of the .NET Framework to develop your website. SharePoint 2010 is completely built on top of the ASP.NET platform.
  • ActiveX Data Object (ADO.NET) — ADO.NET provides consistent set of base classes to access data stored in various relational database systems. It uses .NET Framework data providers to connect to databases, execute commands, and retrieve results. SharePoint 2010 uses ADO.NET to communicate with databases in the SharePoint 2010 environment.
  • Windows Communication Foundation (WCF) — WCF is a framework for building connected, service-oriented applications. Using WCF, you can send data as asynchronous messages from one service endpoint to another. Endpoints can be hosted in IIS, or can be a service hosted directly in an application. It supports simple to complex messages in XML format. SharePoint 2010 makes extensive use of the support provided by WCF.
  • Windows Workflow Foundation (WF) — WF is a technology that enables you to build workflows within .NET applications. It provides a set of APIs, an in-process workflow engine, and a workflow designer to implement long-running workflows. SharePoint 2010 uses the Visual Studio 2010 Workflow Designer and the WF runtime engine. (For more information, see http://msdn.microsoft.com/en-us/library/ms195750.aspx.)
  • ADO.NET Entity Framework (EF) — The ADO.NET EF is an object relational mapping (ORM) framework for the .NET Framework. It enables developers to write better code by abstracting the relational schema of the data in the database from the business logic represented to the application. In layman's terms, it allows you to write business logic code using concepts natural to the business domain, rather than specific to the underlying database technology. (For more information, see http://msdn.microsoft.com/en-us/data/aa937709.)
  • Language Integrated Query (LINQ) — LINQ is a .NET Framework capability that adds native data-querying capabilities to .NET languages such as C# and VB.NET. SharePoint 2010 provides a LINQ-to-SharePoint provider. This provider translates queries into Collaborative Application Markup Language (CAML) queries. (For more information, see http://msdn.microsoft.com/en-us/library/ee535491.aspx.)

With the exception of SharePoint 2003 (where the SharePoint product team decided to build its own ASPX parser), SharePoint technologies on average tend to lag in their adoption of new features of the .NET platform by one release. This is a good thing, because it provides time to iron out and fix bugs in newly released .NET capabilities, and time for the SharePoint and Office product teams to think about how best (or if) to use these features in future versions of SharePoint 2010. For example, SharePoint 2010 is based on .NET Framework 3.5, and not 4.0.

Development Tools

Microsoft Visual Studio 2010 is a powerful, integrated, and mature development environment that caters to the full development life cycle of customizations produced for your SharePoint 2010 farm. It provides a number of starting-point solution templates to begin development of SharePoint customizations, combined with deployment packaging tools to create Windows solution packages required by SharePoint to deploy fully and partially trusted assemblies and artifacts to your various environments.

Microsoft Visual Studio 2010 provides significant new support for the full application development life cycle. This includes features to plan and track your project, design functionality, code development tools (write, unit test, debug, analyze, and profile), build, testing (manual and automated tests, performance and stress tests), and deployment into virtual environments for further testing.

images MSDN provides detailed articles on the Visual Studio application life cycle management at http://msdn.microsoft.com/en-us/library/fda2bad5.aspx.

SharePoint Designer 2010 is a WYSIWYG (what-you-see-is-what-you-get) tool that enables power users to configure elements of SharePoint sites. Although you could argue that this is not a true development tool, it does provide a deep level of support for customizing sites without requiring any code to be written. It's great for small changes, tweaks, modifications, and extensions to existing site features. Additionally, SharePoint Designer 2010 changes are scoped automatically to a single site collection, and not your entire farm.

Great developers are backed by an even greater set of tools to support their productivity in the production of quality code and business solutions. Table 3-1 provides a list of useful tools to improve the quality and productivity of developers in your business.

TABLE 3-1: Developer Utilities

TOOL DESCRIPTION
Code Reflection and .NET Reflector The .NET Framework supports the capability to “reflect” compiled assemblies to view the contained code and methods. This is an invaluable tool to work out how SharePoint performs certain actions. Think of it as an additional form of documentation that may not be present in MSDN or TechNet. This tool was previously developed by Lutz Roeder, but was sold to Red Gate. See www.red-gate.com for more information.
Fiddler Fiddler is a web debugging proxy that logs all HTTP(S) traffic between your computer and the Internet. From a SharePoint perspective, it allows you to inspect traffic between your browser and SharePoint server, whether on your development machine or in production. This often helps to identify issues related to authentication, and issues related to caching. Do not install this on production servers. Install only on your client computer. See www.fiddler2.com for more information.
Code Performance Profiling and Measurement Red Gate provides a great tool that is capable of diagnosing code performance bottlenecks and identifying poor-performing code. For more information, see www.red-gate.com.
Network Monitor Network Monitor enables you to detect and troubleshoot problems on LANs. This includes identifying network traffic patterns between client-server applications.
File Monitor and Process Monitor File Monitor is a tool created by Mark Russinovich and Bryce Cogswell to help you manage, troubleshoot, and diagnose issues occurring on Windows systems and applications. For more information, see www.sysinternals.com.
Debug View for Windows Debug View for Windows is an application that lets you monitor and catch debug output from your SharePoint development environment, without the need of a debugger. It is especially useful in code-development and debugging scenarios when you want to monitor various aspects of your code through output of debug statements. For more information, see http://download.sysinternals.com/Files/DebugView.zip. and http://technet.microsoft.com/en-us/sysinternals/bb896647.
Unit testing and mocking tools Various tools exist to assist in generating and performing automated testing of code and user interfaces. These include Visual Studio 2010 testing tools, Microsoft Pex and Moles Visual Studio 2010 Power Tools framework, nUnit, as well as external solutions from providers such as TypeMock. For more information, see http://research.microsoft.com/en-us/projects/pex/ and www.typemock.com.
SDKs and community kits Microsoft typically provides downloadable software development kits (SDKs) that include source code examples and documentation relating to implementation of a particular product. Microsoft provides SDKs for SharePoint 2010 Foundation and SharePoint Server 2010. These are available to download at the Microsoft Download Center. For more information, see www.microsoft.com/download/en/default.aspx.
Community Kit Community Kit for SharePoint: Development Tools Edition provides additional features to assist and improve your productivity in developing solutions for SharePoint 2010. These are available at http://cksdev.codeplex.com/.
Microsoft SharePoint Practices Group (SPG) Microsoft has commissioned the release of a series of SharePoint code patterns and practices that have been reviewed by a number of SharePoint heavyweights within Microsoft and in the community. This information and associated download material is available to view at http://msdn.microsoft.com/en-us/library/ff770300.aspx. Additionally, the SharePoint Practices Group provides support and a series of hands-on labs (HOLs) at http://spg.codeplex.com.
Windows PowerShell tools and third-party commandlets Windows PowerShell GUI is a graphical user interface and script editor for Microsoft Windows PowerShell. For more information, see www.powergui.org.

As described on MSDN, Windows PowerShell commandlets (cmdlets) are lightweight commands that can be executed in a Windows PowerShell environment within the context of automation scripts. SharePoint Server 2010 provides many Windows PowerShell commands. See the TechNet article, “Windows PowerShell for SharePoint Server 2010,” at http://technet.microsoft.com/en-us/library/ee662539.aspx for more information.

A number of third-party Windows PowerShell cmdlets are available for SharePoint 2010. The most well-known are available from Gary Lapointe's blog. For more information, see http://blog.falchionconsulting.com/index.php/stsadmpowershell-commands/. Ensure that you test and understand what the Windows PowerShell command does before running it in your production environment.

Style and source code analysis A number of tools are available to analyze and enforce high-quality code. These can be grouped into two categories — those that analyze as the developer enters code, and those that are performed either after the developer compiles code, or as a post-build step.

Jetbrains.com provides a well-known tool called ReSharper that analyzes code as it is entered.

Microsoft provides Visual Studio Code Analysis, FxCop, and StyleCop. Without going into too much detail, these enforce code writing, comment, and style standards based on design guidelines and best practices. They also report on code that does not implement or adhere to good development practices. For more information, see MSDN for design guidelines for class library developers at http://msdn.microsoft.com/en-us/library/czefa0ke(vs.71).aspx and “Code Analysis for Managed Code Overview” at http://msdn.microsoft.com/en-us/library/3z0aeatx.aspx.

Other useful utilities So many tools can improve your daily productivity. Tools that you may find useful are NotePad++, ULSViewer and Search Coder, SharePoint Manager 2010, and U2U CAML Builder.

images Chapter 17 provides an in-depth look at the use of these in the SharePoint 2010 development and testing process.

Application Life Cycle Management Tools

The phrase application life cycle refers to the process of developing software, from inception, design, development, testing, to deployment, and continuing into maintenance and ongoing support activities. It includes the project management activities related to managing and tracking the progress of activities (such as tasks, work items, bugs, and issues) throughout the life cycle of the software development project.

Microsoft Team Foundation Server 2010 is recommended for SharePoint 2010 projects to manage the application life cycle. Team Foundation Server provides the following “must-have” features:

  • Methodology or process templates — Team Foundation Server 2010 supports various agile and waterfall methodologies through the use of process templates. Team Foundation Server provides out-of-the-box process templates, including Microsoft Solutions Framework (MSF) for Agile Software Development and MSF for CMMI Process Improvement. A number of third-party templates can be used. Examples of these include SCRUM and Kanban.
  • Source code management — Team Foundation Server enables development teams to work on the same code project at the same time. It includes features such as check-ins, code branching, merging, shelving, labeling, concurrent check-outs, check-in policies, and the association of check-ins to work items.
  • Work item tracking — Work items consist of requirements, tasks, bugs, issues, and test cases. Team Foundation Server enables flexibility for how these work items are managed via an extensible work item tracking system. This tracking system controls the states a work item can be in, and how the state transitions should occur. This results in better documentation, commenting, visibility of the history of issues, productivity, and discipline for the members of the project team.
  • Build automation — Team Foundation Server provides great build management tools. Build management refers to automatic creation and processing of new builds based on updates to code projects. Team Foundation Server supports manual builds, continuous integration, rolling builds, gated check-in, and scheduled builds. For example, it's possible to schedule a nightly build, deploy this build to a virtual machine, and run a series of tests ready to be analyzed in the morning.
  • Project management and reporting — Team Foundation Server 2010 provides reports and dashboards for you to use to assess and report on various aspects of your project's progress. For example, if you have implemented the agile process templates, it is possible to track the progress of the iteration backlog and plan items for the next sprint.

It is important for your project manager and technical lead to be sufficiently skilled in the configuration, optimization, and use of Team Foundation Server 2010. For example, if the customer is demanding an update on your team's progress, can your project manager instantly generate a report to provide an update? If your developers haven't been updating their work items, or your testers haven't been logging and tracking defects, you won't have the data to show your customer. If you don't have the data, you will struggle to report on any part of your team's progress. Team Foundation Server won't solve bad management, bad judgment, and bad developer habits or traits. Therefore, it is up to your project manager and technical lead to instill discipline and structure in your team.

Team Foundation Server can turn invisible progress into visible progress that can be measured and reported on. It reduces inefficiencies, and improves productivity in your application life cycle. Finally, it assists in the improved discipline and maturity of the “software manufacturing process” of your team, resulting in higher quality and time savings.

Code Libraries

SharePoint 2010 takes advantage of a number of code libraries. At a high level, these include the .NET base and Framework class libraries, expansive frameworks such as WCF, Workflow Foundation (WF), Workflow Presentation Foundation (WPF), and Windows CardSpace within the .NET Framework. For more information on these, review the extensive articles available on MSDN.

SharePoint 2010 is a true application development platform. SharePoint 2010 provides extensive server-side and client-side object models and code libraries, impressive integration and support for developing and packaging solutions using Visual Studio 2010, and custom solution deployment management tools for deploying fully trusted solutions across servers in your SharePoint 2010 farm.

images Sandboxed solutions (user solutions) is a new feature in SharePoint 2010 that enables site collection owners to host custom managed code (partially trusted) solutions within site collections. Under the hood, SharePoint 2010 isolates, manages compute resources, and distributes the load of hosting these to specifically configured servers. Sandboxed solutions only have access to a subset of the APIs, while fully trusted solutions have complete access to the SharePoint object model.

The SharePoint 2010 server-side object model can be largely grouped into two categories — objects that support SharePoint 2010 Features, and objects that provide site administration via code.

images MSDN provides a great article detailing the server and site architecture from an object model perspective at http://msdn.microsoft.com/en-us/library/ms473633.aspx.

SharePoint 2010 supports the development of rich client applications that access SharePoint content without requiring assembly-based code. It is a completely new category of application, not previously supported directly by SharePoint 2010. SharePoint 2010 provides three sets of client object models to support common SharePoint “companion” solutions. These support development of .NET GUI applications, rich client Rich Internet Application (RIA) using Silverlight, and ECMAScript (JavaScript, JScript).

images See MSDN at http://msdn.microsoft.com/en-us/library/ee857094.aspx for a detailed overview of the client-side object model, including examples and use cases.

One final important technology that has come to the forefront in recent years in SharePoint 2010 UI development is an independent (not developed by Microsoft) framework called jQuery. jQuery is a JavaScript library that provides an array of features that can take your UI development to the next level. Although it is possible for site collection owners to host the JavaScript files in the Style Library, you should implement a wider strategy and set of best practices that your organization should adhere to. Consider packaging and deploying these to the file system of your WFEs to reduce load and improve performance of all consumers of these JavaScript libraries.

images For more information, see www.jquery.com.

A number of other important third-party code libraries can improve the productivity and reduce the cost of custom solutions. These range in diversity from independent component vendors (such as Telerik, ComponentOne, DivElements, and Infragistics) that sell fantastic code libraries and components, to “free” solutions developed and released to sites (such as CodePlex, MSDN code gallery projects, and SourceForge).

When deciding whether to use these third-party code libraries, consider these key points:

  • Software licensing agreement — Review and understand under what licensing agreement the code library was released, and what the implications are for using or changing the library to meet your requirements. Consider what environments — developer, testing, user acceptance testing (UAT), pre-production, and production — the license covers. Not understanding software licensing for a particular code library can expose your business to lawsuits and unexpected costs.
  • Quality — Do not (repeat, do not) jump on the bandwagon of latest fads. Make mature software design decisions by assessing the quality of a third-party code library. What may appear as a life-saver or amazing UI component can result in sleepless nights, and can actually be a life-killer in terms of debugging, fixing, and supporting third-party code on behalf of your business or customer. Do not make promises to the business unless you are 100 percent certain the third-party code library can deliver what it promised to deliver. Prototype first, then commit.
  • Widespread adoption — Consider and review the level of adoption and recommendations from the SharePoint and development communities. Being one of the first implies you may need to fix the bugs that others will not have encountered in the third-party code library, and lead to frustration and unexpected development and testing costs. A seasoned architect is not the first to eat the food at the table, no matter how good it looks or smells!
  • Code Library Maturity (CLM) — Judge the maturity of the code library. How many versions have been produced? What is the frequency of change? If open source-based, how many contributors support the project? Is it well documented? Are release notes available for each release? Are code examples available to assist your development team?
  • Supportability — If there is bug that breaks your production solution, who will fix it, how long will it take, and how much will it cost your business? Does the third-party code library provide original code, or has it been obfuscated or compiled into a format that requires third-party support? Does your business need a support agreement and contract in place to receive support in acceptable timeframes?

Finally, consider and govern what code libraries are supported in your production environment. Although it may not be possible to completely stop site collection owners from using third-party code libraries, at least ensure that you have a framework in place for managing the introduction and acceptance of third-party code libraries to protect the uptime of key solutions in your production environment, and your business from exposure to lawsuits.

MICROSOFT OFFICE TECHNOLOGIES

This section covers the common Microsoft Office technologies.

Browser

Microsoft SharePoint 2010 supports a variety of browsers in today's marketplace. This includes versions of Internet Explorer (IE), Firefox, and Safari.

images See the TechNet article, “Plan Browser Support (SharePoint Server 2010)” at http://technet.microsoft.com/en-us/library/cc263526.aspx for more information.

Microsoft Office System

Microsoft Office 2010 is the essential companion to SharePoint Foundation and Server 2010. It provides the best experience for users in your organization. Users are still able to work with sites in SharePoint 2010 using previous versions of Office, but some of the new features will not be available using previous versions of Office and SharePoint 2010.

images Microsoft has produced a whitepaper detailing the seamless and productive experience of using Office 2010 and SharePoint 2010 together. The whitepaper, “Business Productivity at Its Best,” is available at http://go.microsoft.com/fwlink/?LinkId=209803.

Imaging and Capture

As an architect, you will often face scenarios and projects that integrate imaging and capture technologies. Understanding this space helps an architect make the right calls when integrating these technologies.

The amount of correspondence a business can receive and send is staggering. Every day, businesses receive and send correspondence from a number of channels. Some of these may be paper-based correspondence either via snail mail or via drop points at retail branches. Others may be electronically submitted via fax, e-mailed to various correspondence e-mail aliases, or directly from a form on the company website.

Electronic imaging and capture solutions enable businesses to capture each piece of correspondence in an electronic format, classify the correspondence, and extract data from scanned documents, e-mails, and faxes — in some cases, automatically. Furthermore, advanced imaging and capture solutions may initiate business processes or workflows, and track the processing of correspondence to completion.

Depending on the volume of your business, these electronic documents may need to be stored in large storage solutions. They may need to be searchable. They may need to be declared as records and held for a period of time to comply with laws in the country of operation.

Large-volume scenarios typically use a combination of workflow, image, and capture solutions. Examples of companies providing these types of solutions include KnowledgeLake, Kofax, RightFax, Fujitsu, and EMC Captiva. In some cases, they provide their own workflow solutions, and, in other cases, they offer the capability to integrate or use your existing enterprise business workflow solution (such as K2, Nintex, Global 360, and others).

Communication and Virtual Meeting Services

Microsoft Lync (formally known as Office Communicator) provides a number of modern enterprise grade communication services. These include the capability to connect via business instant messaging (IM), audio calls, video calls, screen sharing, online presentations (internally and externally), and virtual whiteboards.

These services are designed to work with SharePoint 2010. Presence status of Lync is displayed from Microsoft Outlook, Office SharePoint, and Office applications.

Working Offline

Microsoft Office 2010 provides a new client called SharePoint WorkSpace 2010. SharePoint WorkSpace enables users to work with sites, libraries, and lists while offline. Changes made offline are synchronized with the server when the user is again online.

Although most businesses will use this feature to maintain copies of important project documentation, it does enable a new category of solution — the “mobile-warrior” solution. For example, a sales professional could take orders offline in SharePoint WorkSpace using offline sales order lists. Orders can either be synchronized immediately (via mobile data connection), or at a later time when he or she is back at the office.

images For completeness, Microsoft Outlook also provides offline features, such as the capability to maintain copies of document libraries offline. Third-party offline solutions are provided by companies such as Colligo.

COMPLEMENTARY THIRD-PARTY TECHNOLOGIES

There is a rich, diverse ecosystem of supporting complementary SharePoint 2010 technologies. These can be broadly categorized into applications that work with or extend the SharePoint 2010 end-user feature set, and those that improve the administration and operation of your SharePoint 2010 environment.

Literally thousands of solutions are available to extend and manage your SharePoint 2010 environment. These range from simple web parts to advanced in-depth tailor-made business solutions. Unfortunately, it is not possible to cover each individual extension or business solution in this section.

From an application perspective, examples include the following:

  • Workflow solutions — These are dedicated workflow products that provide advanced reporting, people and group management, extremely high volume (thousands to tens of thousands of simultaneous workflows), and enterprise-wide human-to-human and human-to-system workflows. Companies that provide these solutions include K2, Nintex, PNMSoft, and Global 360.
  • Replication and offline solutions — These include dedicated replication of content, libraries and lists, sites, and site collections to remote server farms either one-way or bi-directionally. Remote server farms could exist in the same office location, different office locations, branch offices in the same country, multiple countries, and to bandwidth-starved locations that rely on satellite time to connect and synchronize. Example scenarios include oil and gas, maritime, military, and other advanced file replication requirements. Companies that provide these types of solutions include Infonic, Repliweb, and Syntergy.
  • Content aggregation solutions — Content aggregation can occur within the same site collection, across a set of site collections, across an entire farm, or across multiple farms. SharePoint 2010 provides features to display aggregated views using CQWPs, and across site collections using Search Center. Additionally, it is possible to develop custom solutions to perform full-text SQL Query searches to return results. Companies that provide third-party solutions include Kwizcom and Bamboo Solutions.
  • Search solutions — A number of third-party search enhancements are available to extend the reach of your SharePoint 2010 search environment. Indexing Connectors exist for Documentum, Hummingbird DM, Interwoven, Exchange, and a number of other third-party content sources.
  • Business solutions — Literally hundreds or thousands of great web parts, custom lists and libraries, and extensions to enhance your SharePoint 2010 environment are available. Some of the main vendors in this space include Bamboo Solutions and Kwizcom.

From an administration and operations perspective, examples include the following:

  • Administration solutions — Administration solutions provide additional tooling to support the management, maintenance, and optimization of your SharePoint 2010 environment. A number of solutions are available to help you better administer your SharePoint 2010 environments. Companies offering solutions include Quest and AvePoint.
  • Migration solutions — Migration solutions provide the capability to move legacy content from your previous enterprise content management solution to SharePoint 2010. Migration solutions tend to vary greatly in feature sets provided, and legacy solution supported. A key capability for any migration solution is to write custom conversion extensions (using .NET code) to manipulate and massage content into a suitable SharePoint 2010 format. However, migrations are almost never out-of-the-box solutions. Also, you most likely don't want to add “legacy junk” to your new environment because that perpetuates the same problem of your original environment. For example, legacy intranet pages may require data massaging, and look-and-feel manipulation before they can be converted into SharePoint 2010 publishing pages. Companies offering solutions include MetaLogix, Tzunami, Quest, AvePoint, Idera, and Metavis.
  • Compliance solutions — Compliance solutions vary greatly, depending on the type of compliance required. This category covers auditing, accessibility, and adherence to government and industry regulations. Companies offering solutions include HiSoftware, AvePoint, Syntergy, and Quest.
  • Reporting solutions — SharePoint 2010 provides a fantastic improvement to the out-of-the-box traffic, inventory, and search reports. Third-party solutions extend the level and types of reports users and administrators can view. These include storage trending or report snapshots taken over time to track trends and reporting across site collections. Companies offering solutions include Nintex, AvePoint, and Quest.
  • Backup solutions — Backup and recovery solutions vary greatly in the types of features they provide, their resource utilization, the impact to servers operating in your SharePoint 2010 farm, and the level of available granularity that is offered. There are two types of backup vendors — those that are dedicated SharePoint backup vendors, and those that provide backup as part as much larger backup solution for many solutions in your enterprise. Both have their merits and pitfalls, and each offering should be investigated thoroughly. For better backup performance, ensure that any offering provides a 64-bit agent. Companies offering solutions include Symantec, IBM, CommVault, Quest, and AvePoint.
  • Storage optimization and archive solutions — SharePoint 2010 requires (if not demands) expensive tier 1 storage for your SQL databases. As your farm grows, so does the cost associated with hosting content. Storage optimization and archive solutions address the cost of using high-end storage. Companies offering solutions include Metalogix, AvePoint, Symantec, and Quest.
  • De-duplication solutions — De-duplication solutions help organizations eliminate duplicate or redundant information. These help customers understand their unstructured information stores, determine unnecessary information, organize, derive, and apply metadata, and migrate this to new structures in SharePoint 2010 site collections. Companies offering solutions include Active Navigation, CommVault, NetApp, and Symantec.

images You can find more information about each of the technologies and companies on their respective websites. Product listings, along with reviews and comments, are available on the listings at the community-based SharePoint Reviews website at www.sharepointreviews.com. Microsoft has released a new Microsoft Office 365 Marketplace at http://office365.pinpoint.microsoft.com/. This marketplace provides the capability to review and comment on the quality of products. You should participate with commenting and feedback because this helps ensure companies maintain high-quality products.

Additionally, following are a number of guidelines to improve your third-party product purchasing decision-making process:

  • Repeat the mantra, “Out-of-the-box, third-party, then custom development” — Always attempt to use the out-of-the-box features. If this feature does not exist or does not fully meet your needs, look at what third-party solutions are available. Consider custom development last. Economies of scale dictate that a third-party solution will typically be cheaper than a custom-developed solution. Invest wisely according to your budget, schedule, and available resources.
  • Insist on case studies and real-world references — Don't purchase a product based on the label, packaging, or promises on the tin. Ask for references, chat with other customers who have deployed the product, and ensure that you get independent (non-sales channel-based) advice before you purchase a large application or administration solution.
  • Understand your use cases first — This may seem obvious, but there have been many examples of customers purchasing expensive solutions that they end up rarely using. Understand the key use cases a third-party solution will solve. Quantify this in terms of cost. Purchase when you have a solid requirement that must be solved right away, rather than at some point in the future.
  • Involve the right people — Involve the right stakeholders in the purchase decision-making process, such as people administrating and managing your environment, or the end user who will be forced to use the feature every day, or the architect who has a deep understanding of your SharePoint deployment.
  • Be wary of late release-cycle purchases — Watch out for solutions purchased at the end of SharePoint 2010 life cycle. If you know the next version of SharePoint 2010 will be released 6 to 12 months later, think carefully about large third-party solution investments because this may lock you into the current version for longer than you want.
  • Understand available training options — A third-party product is only as good as the people who understand how to use it. This may require training for administrators, developers, power users, and end users.
  • Supportability — What support options does the third-party solution provide? How often are hot fixes and updates released? What Quality Assurance (QA) processes does the third-party solution use to ensure that hot fixes and patches of their product will not destroy your farm? Does the third-party provider have a good track record for support?
  • “Learnability” — This describes the frustration encountered with some third-party products that do not make it easy for administrators and developers to install and learn in development or test administration environments. Sometimes, this may be because of the prohibitive and restrictive licensing conditions levied by third-party providers for development, test, and pre-production environments. If administrators cannot verify an action of a third-party product in a non-production environment, they will struggle to develop confidence in the product. If developers cannot prototype features, it is likely they will look for an alternative solution.

SUMMARY

There are many infrastructure, development, Microsoft Office, and third-party technologies you, as a design professional or SharePoint architect, should understand.

When acquiring any technology, focus on purchasing a solution that delivers against your previously defined business requirements and core use cases. Ensure that you understand your core use cases before deciding on a particular technology or vendor solution.

Finally, making good, informed decisions at key decision points during the design, development, testing, deployment, and maintenance life cycle will result in a great deployment and experience using SharePoint 2010 and related technologies. This, however, requires an in-depth understanding of the supporting SharePoint 2010 technologies.

Chapter 4 discusses key design principles for successful SharePoint 2010 deployments.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
3.134.118.95