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:
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.
Let's begin by having a look at the common SharePoint 2010 infrastructure technologies.
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.
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:
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!
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.
It is important to understand the “identity flow” in SharePoint 2010, including the following:
“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:
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 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:
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.
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.
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:
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.
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.
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:
Following are some of the key databases technologies that you should understand:
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 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.
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 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:
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.
For more information about SCOM, see www.microsoft.com/download/en/details.aspx?displaylang=en&id=4419.
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.
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):
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).
Figure 3-2 provides a high-level architectural view of an HTTP request, and Figure 3-3 illustrates the worker process (w3wp.exe).
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/.
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:
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.
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:
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.
Chapter 23 provides detailed guidance on virtualized deployments of your SharePoint 2010 environment.
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.
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?
This section covers the common SharePoint 2010 development technologies.
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.
.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:
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.
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.
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.
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. |
Chapter 17 provides an in-depth look at the use of these in the SharePoint 2010 development and testing process.
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:
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.
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.
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.
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).
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.
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:
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.
This section covers the common Microsoft Office technologies.
Microsoft SharePoint 2010 supports a variety of browsers in today's marketplace. This includes versions of Internet Explorer (IE), Firefox, and Safari.
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 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.
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.
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).
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.
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.
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.
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:
From an administration and operations perspective, examples include the following:
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:
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.
3.134.118.95