I'm going to rebuilt an existing moderate-scale web-app to be used for a supply-chain-management web-solution. The core would be around some Item\Site combination-records, Organization\User management, display Organization specific data (a dashboard with 2 levels of Grid) and a Drilldown which has some complex calculations for Item transactions and a robust Grid to show multiple level of totals, sub-totals, etc...
In past, I had developed it using ASP.Net 2.0 and ADO.Net, the backend is SQL-Server. I'm suppose to migrate this web-solution to a full fiedge ASP.Net v3.5 based MVC architecture and integrate other pieces like Membership API, Validation-framework, etc... its going to be a complete re-design. The performance and scalability (i.e. handle millions of records, perform quick calculations, quick-response-time, etc..) are the two main priorities. In addition simplicity and long-term maintenance and periodic upgrades at any level are also to be considered.
I was wondering which of the following two would make a robust DAL which meets my above mentioned requirements:
- L2S (LINQ to SQL) or EF (Entity Framework)
I've been searching a lot and based on that I'd like to verify my understanding:
- Is L2S like Win98 - strong, stable, simple and performing and -
- Is EF something like WinXP - better then win98, also stable in a way but somewhat more layers so might have a diff in performance and simplicity compared to L2S
I don't think we're going to involve 'multiple-databases' in our development, SQL-Server will stay. Also, I don't think we'll need to actually map multiple-tables to an Entity, etc... Generally, we'll have one to one mapping for our DB-tables to Entities (i.e. User, Org, etc..) and for some complex cases - like the dashboard fetches records from multiple tables (most probably we'll need to use a stored-procedure and/or a DB VIEW). The Drilldown page fetches data from a single table but has many calculations so again we're planning to usa a stored-procedure which will provide us a formatted table (but this table might not look like the ones already present in DB)
So, thats some tricky mapping but apart from that we need to keep things simple, consider performance and scalability. Oh! and last but not the least - we've a tight deadline so its a kind of 'fast-track' development.
Simple, fast, scalable & performing - thats what we need!
Thanks in advance - please guide me.
PS: Ref links: http://www.infoq.com/presentations/ORM-LINQ-Entity-Framework-Eric-Nelson
Discuss - http://social.msdn.microsoft.com/Forums/en-US/adodotnetentityframework/thread/dc83097e-9c70-4970-93e2-dbc8636eb321 Short - http://www.davidhayden.com/blog/dave/archive/2007/04/29/ADONETEntityFrameworkWhenToUseItVsLinqToSQL.aspx Details - http://blogs.msdn.com/wriju/archive/2009/03/08/choosing-between-ado-net-entity-framework-and-linq-to-entity.aspx List - http://blogs.msdn.com/wriju/archive/2009/01/05/choosing-between-linq-to-sql-and-entity-framework.aspx