Project Description
This code is a community project that will add a timesheet to your SharePoint 2010 farm. The underlying data is stored in a seperate SQL Server database.

This add-in allows all versions of SharePoint 2010 to be used on all SharePoint 2010 farms that can capture and administer timesheets for a business. SPMetal has greatly improved application development when using SharePoint lists to store data in SP2010 however, due to the number of relational lists and the support for transactional CRUD operations I believe it is better to use SQL Server and store the data in relational tables. Custom connected web parts will allow users to enter their weekly timesheets. The solution allows for the use of BCS and External Content Type (ECT) in SP2010 for administration and reporting.

The data access technology choice is between Linq to SQL and using the Entity framework 4.0. As SharePoint 2010 supports .NET 3.5, a separate Visual studio project/business layer would be required. Additionally my take on these 2 competing Data access technologies is, if it's simple then use Linq to SQL, if it's complex and could change down the line use the entity framework. I choose to use LINQ to SharePoint as I am using 7 tables to store all my timesheet task related data. Below is the Entity Relationship Diagram (ERD) for the timesheet application.

Entity Relationship diagram used for storing timesheets

Last edited Apr 30, 2011 at 6:08 AM by paulbeck, version 4