I know about various technique (but not knowledge) Like Code Generator, ORMs etc, I want to know which is the best approach where the schema of database can be changed (big changes) during development period, like add column to Table, add table to DB, change Type of Column etc. I am currently working on a project in this schema changed every day I am using manual process to create BLL, BOL and DAL but I am facing problem to manage these layers after changing the schema of DB. Please advise me how can make this easy?
- which technique I have to use Code generator, ORM, Manual approach or any other?
- performance also be good.
That is not about programming but about project management. Management / client must understand that changing data schema so often will have very big impact on the development time. It is absolutely not important which technology will you use because even with good code generation tool you can end up with 4+ hours per day fixing broken code by missing properties, new properties, different entities etc. Make sure that you show the amount of time spend on this activity. Show it regularly. Once management sees that from 20MD you spend 10MD on changing your data access layer (= no business value added for 10MD) they will do something with that.
From technology point of view you can use anything that generates classes for you:
Or you can do the more complex way with NHibernate where you will manually try to remap new schema to your existing entities.
Edit:
Depending on the type and complexity of the application you can also check ASP.NET Dynamic Data or MVC Scaffolding.