Подскажите пожалуйста архитектуру для использования в проекте Windows Form - PullRequest
1 голос
/ 09 ноября 2010

Я хочу, чтобы архитектура взаимодействовала с базой данных без написания избыточного кода для интерфейса ... то есть. код позади ...

Ответы [ 5 ]

3 голосов
/ 06 декабря 2010

Использование бизнес-объекта / интерфейса пользователя / бизнес-логики / архитектуры доступа к данным.

BO------UI
|       |
--------BL
|       |
--------DA
2 голосов
/ 09 ноября 2010

Отправной точкой является определение некоторых простых правил. Хорошее практическое правило - иметь как можно меньше кода в классе Form. Весь код в классе Form должен быть базовым отображением пользовательского интерфейса.

Мне лично нравится использовать шаблон DAO для организации логики доступа к моей базе данных. Этот шаблон аккуратно инкапсулирует код для доступа и хранения данных, поэтому его можно легко переключать и изменять. В зависимости от сложности базы данных у меня обычно будет 1 DAO на таблицу, но для простых баз данных может быть даже 1 DAO на базу.

MVC - это популярный способ разделения презентации и другой логики, но может быть излишним для простого проекта. Варианты использования также являются хорошим способом инкапсулировать логику и отделить ее от формы.

Пример того, как может выглядеть базовый фреймворк, см. Ниже (примечание: не завершено! Прочитайте полную статью по DAO, чтобы правильно ее реализовать). Смысл этого кода в том, чтобы показать, что в классе Form нет логики базы данных, это простая однострочная строка, когда кнопка нажата (или что-то еще), отображая пользовательский интерфейс в действие. Если вы решили переключиться с хранилища базы данных на хранилище файлов, было бы нетрудно написать класс FileMyDAO : IMyDAO, а затем вернуть фабрику. Обратите внимание, что ни один из кодов пользовательского интерфейса не изменится, если вы сделаете это!

public interface IMyDAO
{
  void InsertData(int data);
}

public class SqlMyDAO : IMyDAO
{
  public void InsertData(int data) { throw new NotImplementedException(); }
}

public class DAOFactory
{
  public static IMyDAO GetMyDAO() { return new SqlMyDAO(); }
}

public class MyForm : Form
{
  private void Button_Click(object sender, EventArgs e)
  {
    DAOFactory.GetMyDAO().InsertData(123);
  }
}
1 голос
/ 09 ноября 2010

Привязка данных - это то, что вы должны изучить.Это приведет вас к дальнейшему обучению, но вы обязательно узнаете необходимый персонал.

0 голосов
/ 29 ноября 2013

Там уже разработаны бесплатные архитектурные рамки, ожидающие использования .. проверьте ..

Nido Framework - более гибкий, но только для вашей серверной архитектуры

или

Ракетный каркас

0 голосов
/ 09 ноября 2010

приятель, вы можете использовать примитивную архитектуру:

BusinessObjectLayer BusinessLogicLayer DataAccessLayer UILayer

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...