I am using FluentNHibernate in my solution. The recommended folder structure from fluentnhibernate documenation is like this:
Entities folder, under which we have POCO classes of the business model. Mappings folder, under which we have the mappings to our data model.
I assume that these two folders would go into a business layer project called "BusinessModel"? See below:
BuessinessModel
|_ Entities
|- Student.cs
|- Course.cs
|- Faculty.cs
|_ Mappings
|- Mappings.cs
And maybe create another project called "DataAccess" which references the BusinessModel project for the data access layer to do the CRUD?
What's the best practice? Any architect there? Thanks.
AK: I read your post at n-layered architecture - BLL, DAL and interfaces. What is best practice? .
Let me quote yours
Taking a "Person" as an example: think about the different data operations associated with a person (Getting all the data for a single person, a collection of shallow data for many persons, CRUD operations, searching, etc) - then design interfaces along logical groupings.
I am trying to understand this. So, you are saying that
In the BLL project, we have this Person class.
Also in the BLL project, we have an interface which declares all data operation methods we will need for the Person object.
Then in the DAL project, we have concrete implementation of the interface we define in BLL.
Does this sound correct to you? Thanks.
While it's dangerous to go blindly applying the same architecture to every solution / project; my standard / default approach would be something like this:
High Level
Your Specifics
Other Notes