Developers overview

Eneta portal is built on SharePoint Server using standard features and publishing infrastructure. Publishing infrastructure provides powerful web engine with some SEO features. Some features like creating content through browser using layouts and on-page editing are not used because of complexity of output mark-up. All parts of portal are standard: master and layout pages, web parts, user controls, etc. During development we have always trying to keep close to SharePoint architecture and technical design so we have good chance to keep the count of integration problems small. Portal is deployed using deployment package that contains definitions for all features, modules, custom actions etc.

Separation of layers

Right now portal has two separate layers: user interface and business logic layer. All business logic is implemented in Common project. Also data manipulation and data modification operations are defined in this project. For each module there is repository class that provides functionalities specific to module. User interface components access all data through those repositories and in ideal world they should not be aware of SharePoint objects at all.

To move data between UI and BL/data layer there are DTO (Data Transfer Object) classes defined in Common project.

NB! Although it may seem more correct to call these classes as business classes they are still DTO-s because they implement only simpler operations leaving most complexities to repositories. In the future we will separate also BL and data layers better than it is done today.

DTO classes are returned by repositories. This way we keep web parts and user controls using simple and clean objects and we don’t need to duplicate SharePoint data layer specific code to  all modules we have.

Structure of solution

Right now we have separate projects for common functionalities and portal modules. Each module has separate projects for functionalities and SharePoint definitions.

NB! We are planning to change solution structure in the future so we have less projects to maintain and deploy.

Project called Site is the project where portal design, content types, site columns and page layouts are defined. Currently all projects are built using WSPBuilder features but we plan to move to Visual Studio 2010 SharePoint projects in near future. Until migrations to SharePoint 2010 are in progress we will not change the structure of solution.

Authentication

Portal uses SharePoint 2010 claims-based authentication with custom Windows Live ID authentication provider. It is possible to write your own custom authentication provider and make it use same profile store as Live ID provider does. Before getting Live ID authentication work you have to register your application in Live ID Azure service. If you don’t have this service available you still can develop because it is easy to make portal support also NTLM authentication.

Deployment

Eneta portal uses deployment script for deployments that are made from zero. Deployment script creates new site collection with subsites, deploys solutions and activates features in correct order.  This script makes also modifications to sites configuration enabling anonymous access and so on. Deployment script is available only for SharePoint 2010 and it is using SharePoint 2010 PowerShell commands. This script was initially written to simplify deployment testing but it turned out to be very good tool also for live deployments.

Last edited Feb 7, 2011 at 7:15 AM by gpeipman, version 1

Comments

No comments yet.