Towards More ReUse in SharePoint

Trying to enhance the ReUse in your daily work, Microsoft Practices has developed what is so called SharePoint Guidance or Developing Applications for SharePoint 2010. This guidance has a ready code for you to ReUse.

What is it?

The SharePoint Guidance Library is a collection of reusable
code-based utilities that address common challenges in application development
for the SharePoint platform.

 

What is there to ReUse?

 

ReUse

Description

List aggregation within a site collection

Effective use of feature partitioning for reliable
  solution deployment.

Using query objects to retrieve data from multiple lists.

Using the model-view-presenter pattern in a Web Part to
  isolate business logic from the presentation layer and the underlying data
  source.

Using constructor injection patterns to isolate business
  logic from dependencies.

Using an exception shielding pattern to stop unhandled Web
  Part errors from preventing the host page from loading.

The Application Setting Manager

The Application Setting Manager is a set of utility
  classes that you can use to store and retrieve configuration settings for
  your SharePoint applications.

The SharePoint Logger

The SharePoint Logger is a reusable component that you can
  use to write messages to the Windows event logs and the ULS trace log.

The Service Locator

Pattern allows you to request an implementation of an
  interface without knowing the details of the implementation. As such, you can
  replace dependencies with alternative implementations or mock implementations
  without editing or recompiling your code.

Model-View-Presenter (MVP)

Pattern allows you to isolate the business logic in your
  application from the user interface. As such, you can test the business logic
  in isolation. You can also make the business logic easier to understand and
  maintain by removing user interface–specific implementation details.

Repository

Pattern allows you to isolate the data access code in your
  application from the business logic. You can use the Repository pattern to
  wrap any data source, such as a database or a SharePoint list. This allows
  you to test the data access code in isolation and to substitute the data
  access implementation to unit test your business logic.

Configuration

You can use the following mechanisms to manage
  configuration information within the SharePoint environment:


  •   Web.config.

  •   Hierarchical object store
     

  •   Property bags.

  •   Lists.

List aggregation with supplemental data from a CRM
  system

Creating, deploying, and registering a full-trust proxy.

Consuming a full-trust proxy from sandboxed code.

Deploying pages and client-side scripts to the sandbox
  environment.

Launching pages as modal dialogs from the sandbox
  environment.

Interaction with external data from sandboxed Web Parts

Creating and consuming external lists from a sandboxed
  solution.

Creating and managing external content types in the
  Business Data Connectivity (BDC) service application.

Configuring the Secure Store Service (SSS) to enable
  sandboxed code to impersonate credentials for external data sources.

Deployment of declarative workflows with custom
  full-trust activities and custom sandboxed actions

Creating and deploying full-trust workflow activities.

Creating and deploying sandboxed workflow actions.

Consuming custom activities and sandboxed actions from a
  declarative workflow.

Aggregation of data from multiple site collections
  using a timer job

Creating, deploying, and registering a timer job.

Managing configuration data for timer jobs.

Deploying custom application pages to the central
  administration Web site.

Modeling application data with standard SharePoint
  Lists

Modeling data with lists, including many-to-many
  relationships.

Using Lookup fields and list relationships.

Using LINQ to SharePoint for list access.

Modeling application data with an external data source
  and consuming the data in SharePoint

Connecting to a database with Business Connectivity
  Services (BCS).

Modeling many-to-many relationships with BCS.

Using the BCS API to access external data.

Using the Business Data Web Parts to access external data.

Representing associations between entities using stored
  procedures.

Integrating to external data sources using a .NET
  Connectivity Assembly.

Using rich internet application (RIA) with SharePoint

Using the Client-Side Object Model (CSOM) from Silverlight
  and JavaScript.

Using REST Services from Silverlight and JavaScript.

Using the Model-View-ViewModel pattern with Silverlight.

Accessing non-SharePoint services using Silverlight.

Accessing binary data with Silverlight.

Accessing SharePoint Web Services from Silverlight.