Я начинаю новое приложение в WPF, и я хочу, чтобы у него была хорошая архитектура, чтобы он мог быть обслуживаемым. Я использую Entity Framework и то, что я планировал до сих пор.Архитектура WPF с бизнес-слоем и DAL
• View Layer: один проект (запуск) с начальным представлением и основными меню. Различные проекты для каждого типа вида, например, если у меня есть представления, связанные с книгами, тогда у меня будет проект под названием BooksView со всеми представлениями.
• Бизнес-уровень: один проект для каждого типа бизнес-класса, например BusinessBooks. У каждого из них будет репозиторий с конкретными операциями и любыми помощниками для выполнения вычислений, если это необходимо.
• Данные Асесс Слой: Он содержит папку с именем Entity Framework с DbContext и Т4 генерироваться классов и с классом по имени ContextCreator, который имеет следующий код:
public class ContextCreator : IDisposable
{
private MesaOperativaDB context;
public ContextCreator()
{
context = new MesaOperativaDB();
}
public MesaOperativaDB getContext()
{
return context;
}
public void Dispose()
{
context.Dispose();
}
}
Тогда вид будет использовать статическое хранилище любого проекта бизнес-уровня, который необходим, и это хранилище будет использовать класс выше, чтобы получить DbContext и использовать его как это:
public static List<Novedades> GetNovedades()
{
using (ContextCreator db = new ContextCreator())
{
IQueryable<Novedades> novedades = db.getContext().Set<Novedades>().AsQueryable();
return novedades.ToList();
}
}
Является ли такой подход ничего хорошего? Спасибо вам заранее, ребята.
Если это приложение на стороне клиента только тогда, это довольно хорошее разделение проблем – liquidsnake786