Советы по разработке приложения .Net Framework - PullRequest
5 голосов
/ 02 декабря 2010

Не могли бы вы дать мне несколько советов / рекомендаций при разработке, проектировании и реализации приложения .net framework с требованиями, приведенными ниже:

  1. Это будет аналитический инструмент, который будет извлекать данные из файлов, баз данных sql и может быть кубами. Таким образом, уровень данных должен быть в состоянии справиться с этим. Промежуточное программное обеспечение должно быть полностью независимым от других уровней, поэтому, вероятно, нужен контейнер IoC (какой вы бы порекомендовали)
  2. Он будет развернут в локальной сети
  3. Передний слой может быть приложением WPF или Silverlight в будущем (сейчас я концентрируюсь на Silverlight, но дело в том, что он изменится)
  4. В будущем должно быть легко настроить и улучшить его, не меняя большую часть кода, так как среда будет развернута для многих клиентов
  5. Мне нужен способ хранения информации о конфигурации, которая будет извлечена приложением при событиях загрузки приложения, чтобы настроить его внешний вид и внешний вид.

У меня есть два месяца, чтобы реализовать это и искать как можно больше советов.

Ответы [ 4 ]

5 голосов
/ 02 декабря 2010

SoC для начала

разбейте ваше приложение на несколько сборок, использующих IoC (интерфейсы + реализации):

  • сборка модели приложения - все остальные сборки будут ссылаться на эту, потому что этиклассы будут использоваться для межсетевого взаимодействия - в основном это будут просто презентационные сборки POCO
  • - ссылаются на модель приложения и бизнес-сервисы - это либо WPF, либо Silverlight, в любом случае используйте MVVM, чтобы упростить вашу жизнь при тестировании
  • сборка бизнес-служб - ссылается на модель приложения и сборку репозиториев данных
  • хранилища данных - они определяют репозитории, которые фактически получают данные из хранилищ

Тогда я бы создал тридополнительные:

  • поставщики файловых данных
  • поставщики баз данных
  • поставщики кубов

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

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

Какую библиотеку MVVM использовать

Поскольку вы упомянули время, я полагаю, вам будет трудно пойматьваш срок.При использовании MVVM (который я предложил использовать) я также предлагаю вам не использовать полноценную PRISM (также известную как Руководство по составным приложениям от P & P), а использовать MVVM Light Toolkit .Это займет у вас меньше времени, чтобы попасть на подножку.

Генерация кода

В местах, где это целесообразно, я предлагаю вам использовать T4 в полной мере.Я использую его для импорта вызовов хранимых процедур, чтобы избежать использования магических строк при вызове хранимых процедур (и с использованием их параметров).Проверьте мою запись в блоге об этом.

Технология / библиотека DAL

Не пишите свой собственный код доступа к данным, используя такие вещи, как SqlConnection / SqlConnectionфункциональность.Сегодня существует множество библиотек / технологий слоя доступа к данным, которые вы можете использовать, а не изобретать велосипед.Если вы знаете nHibernate, то используйте это.Если вы знаете EF, то используйте это.Если вы знаете что-нибудь еще, используйте это.Все, что предоставит / сгенерирует для вас как можно больше кода, уже протестировано и отлажено.

Итак, все сводится к:

DRY + YAGNI

aka Не повторяйся и Тебе это не понадобится = не перегружай свой код.

Проворные разработчики должны быть ленивыми

Они должны развиваться столько, сколько нужно, и не больше!TDD неявно обеспечивает этот процесс посредством шагов красного => green => рефакторинга.

2 голосов
/ 02 декабря 2010

Ознакомьтесь с Руководством по составным приложениям от группы Microsoft «Шаблоны и практики», оно может не совсем соответствовать тому, что вы делаете, но даст вам хорошие идеи.

2 голосов
/ 02 декабря 2010

Я бы порекомендовал использовать MVVM и Test Driven Development.MVVM обеспечит вам хорошее разделение между фронтальной и промежуточной программами, а TDD поможет контролировать хаос, возникающий при разработке любых нетривиальных приложений.

1 голос
/ 02 декабря 2010

С архитектурной точки зрения я настоятельно рекомендую взглянуть на Microsoft Руководство по архитектуре приложений .Поскольку вы уже используете стек технологий Microsoft, я хотел бы рассмотреть возможность использования Microsoft Unity для IoC.Вы указали, что ваш уровень представления может использовать WPF или Silverlight, поэтому обратите внимание на использование Windows Communication Foundation , так как вы будете несколько ограничены в Silverlight при взаимодействии с вашим уровнем данных.

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