title: Asp.Net development approach for scheduling resources for dates
body: <p>I've recently started a small asp.net c# project for scheduling resources for dates. The specific task at hand is to allow me to assign workers to jobs on certain days for a number of hours. Basically so I can check who is working on what, how much time has been spent on jobs etc.</p>
  
  <p>I would like to check with the community on the standard approach for handling this type of scenario and get some feedback on my intended approach outlined bdlow. In particular I am interested in what UI controls that suit this application &amp; db structure.</p>
  
  <p>Here is what I have planned to do but it seems like it is a bit cumbersum and I'm hoping there is a simpler way I have missed.</p>
  
  <p><strong>Database Structure</strong><br />
  Table: Job, with columns: Id, JobNumber, Description, HoursAllocated<br />
  Table: Employee, with columns: Id, Name<br />
  Table: EmployeeJob: JobId, EmployeeId, Date, Hours
  <br />
  <br />
  <strong>UI</strong><br />
  For scheduling employees for jobs/dates I was looking to dynamically create a DataTable which has a row for each job, and add in a column for each day for say the next 3 months. When adding the date column I would check for any EmpployeeJob records and add in the hours for that day. The datatable would be bound to a DataGrid in the UI and the user could scroll across the grid looking at who was working on what and when.</p>
  
  <p><strong>Concerns with current approach</strong><br />
  I have run some quick tests and this approach seems quite slow. I have looked into specific scheduling asp.net controls, but nothing seems to be ideal and I would like to use the standard controls for simplicity.</p>
  
  <p>My tests showed building the DataTable for around 500 jobs, 3 months and only a couple of test scheduled employees took too long at around 10 seconds. This led me consider storing the calendar dates into the database too, but it seems a little overkill and something else to maintain or fill ahead with data for the future. I was using an entity data model and accessing tables through linq from code behind.</p>
  
  <p>What's the development approach/data structure/controls you would use for scheduling employees for jobs?</p>