views:

32

answers:

2

I am from a world where people dont want to come out of there comfort zone to learn new technologies and I am among them as an exception looking for something different. Since I am not getting any learning opportunities and hence decided to create an application. Here are my details.

I have to create a new web application for personnel use. A very very small one containing 20-30 tables with annual record intake of 10000 rows in each table. I will be applying all the constraints at database that are possible to keep data consistent.

At preset i am aware of only Untyped dataset and have good hands on it. But while creating this application which is more of data, validation checks driven and no or less focus given on UI what technology should I use: traditional one, typed dataset or Linq to Sql or Entity Framework.

I would be going with frequent database schema change(addition or removal of columns in a table). Less frequent table breakup and so.

This application will have a sole purpose of learning a new technology rather than going with traditional one that I am using for a long.

I have been studying about typed datasets, Linq to Sql. I have used little bit of Linq on Datasets and so have idea about linq. Read efficient enough about typed dataset to start with and 0% idea about entity framework but doesn't matters I can go for it also.

I can learn new technology doesn't matter how much time it will take.

What do you suggest what should I go for that can be scalable, will open the doors of huge source of learning that I can use in industry as well

+1  A: 

From the list of technologies you supply, it has to be Entity Framework. Here is why.

Typed / Untyped datasets just wholly bind your application to the database. You need more disconnection between persistence and logic than these give. I haven't seen datasets for a very long time.

Linq to Sql is reasonable, but Microsoft rolled their Linq to Sql team into the Entity Framework team. They are really pushing Entity Framework, which has benefits over and above Linq to Sql. One is that you can create your domain model in code and then auto-gen your database from it. This is a skill that is becoming reasonably valuable as more and more companies see the benefit of this type of technology. This is definitely a re-usable skill for you to learn.

Sohnee
@Sohnee: Entity Framework seems to be something very different from all the above technologies as you explained above. Do I need some additional tools for it other than visual studio.net
Shantanu Gupta
I mostly agree but be aware that EF is relatively new and you will want to use dotNet4 / VS2010.
Henk Holterman
@Shantanu: The required tools are part of VS (Express).
Henk Holterman
+2  A: 

Sounds as if you are after technologies in the area of the database access layer, the domain layer and object-relational mapping.

If true, that I'd suggest to look at NHibernate and fluent-nhibernate. In working with these you will have typed results (List<T> instead of DataSet) but also the opportunity to work with LINQ.

John
@John: You read my mind. This is something what I was looking for. I thought list are a part of Linq and never know that NHibernate is a part of .net. I always had an misunderstanding that it is a part of Java as I always heard hibernates in java only. That sounds very great to me
Shantanu Gupta
@Shantanu Gupta: Just to clarify: NHibernate is not part of .NET. It is an open-source product that implements a port of the Java-based Hibernate to .NET.
John
@John: Yes I read through the links given by you and come to know little bit about it. That was my first reaction and after that I saw your links. I need to study it to gather sufficient knowledge to proceed with it
Shantanu Gupta