в .NET, какая модель программирования была бы хорошей для разработки прототипа, но затем допускающей повторное использование для производства (для бизнес-логики / уровни доступа к данным)

На земле.NET, каков был бы хороший подход для быстрой разработки прототипа понятия (т.е. разработка только на моем ПК), который мог затем быть расширен на продукт (пользователи через LAN/WAN), НО способом, что код модели/бизнес-логики и код уровня доступа к данным могут быть использованы как есть?

Одна мысль, например, я имел, чтобы сделать: (a) WinForms с бизнес-логикой и уровнем Entity Framework к SQL Server Express на моем ПК, затем (b) Переходят затем к ASP.net (использующий бизнес-логику / библиотека данных) с SQL Server / IIS

Какие-либо комментарии?Другие рекомендации?

6
задан Greg 15 May 2010 в 12:03
поделиться

2 ответа

Я бы рекомендовал попробовать многоуровневый подход:

  • поместить модель данных сущности и классы проверки в отдельную сборку
  • поместить дополнительную бизнес-логику в отдельную сборку бизнес-логики
  • поместить ваши сервисы (WCF или WCF Data Services) в их собственную сборку

Все эти базовые слои практически не зависят от того, что вы выберете в качестве технологии UI frontend. Вы можете сделать выбор здесь (например, Linq-to-SQL против Entity Framework для вашего доступа к данным; нужен ли вам слой сервисов на основе WCF, или ваше приложение использует прямой доступ к БД?) более или менее независимо от того, что вы положите поверх этого для слоя пользовательского интерфейса.

И поверх этих базовых сборок:

  • создайте свой UI либо как Winforms-приложение, либо как веб-приложение ASP.NET (Webforms или MVC) (или и то, и другое)

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

Постарайтесь поместить в эти сборки представления фронтенда только то, что специфично для каждой технологии UI (Winforms против ASP.NET). Все общие бизнес-правила, правила валидации, уровни доступа и обслуживания храните отдельно.

И снова: похоже, вы считаете, что "переход на ASP.NET" исключает использование WCF/WCF Data Services - вовсе нет ! Вы можете легко использовать данные из WCF-сервиса в приложении ASP.NET. Вы ничего не теряете, разделяя слои бизнеса и сервисов - они могут быть легко использованы как в Winforms, так и в ASP.NET приложениях!

6
ответ дан 17 December 2019 в 00:05
поделиться

Несколько комментариев:

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

Если цель состоит в том, чтобы получить обратную связь от предполагаемого клиента \ пользователя на ранних этапах, часто может быть хорошей идеей не создавать прототипы полных вертикальных срезов (например, UI -> Business -> DB), а работать с UI. макеты, которые можно использовать для изучения идей с пользователями. Макет гибкий и легко изменяемый, но не полностью функциональный, например. не имеет бизнес-логики или настойчивости. Такой подход позволяет пользователям получить некоторое представление о функциональности и принять участие в процессе проектирования и сбора требований. Моки можно будет быстро изменить по мере изменения требований, тем более, что нет бизнес-логики или кода базы данных, который нужно было бы изменить вместе с ним. Примером инструмента имитации пользовательского интерфейса является Balsamiq:

http: //www.balsamiq.com /

Если одной из общих целей прототипирования является исследование и изучение различных технологических решений, это может быть сделано отдельно от макетов пользовательского интерфейса и более абстрактным способом, т.е. исследование чистой технологии, а не ориентированное на удовлетворение конкретных потребностей. прототипа, который может сильно меняться. Мокапы пользовательского интерфейса могут сильно измениться благодаря обратной связи с пользователями, поэтому изучение технологии в качестве другого вида деятельности может упростить этот процесс, т. Е. Меньше взаимосвязи, поскольку на этапе раннего обнаружения все будет сильно меняться, и вам придется постоянно менять «бэкэнд». поскольку идеи пользовательского интерфейса развиваются так быстро, это замедлит вас.

Для ускорения темпов разработки программного обеспечения используйте сторонние библиотеки. Если вы используете базу данных для постоянства, посмотрите на решения ORM, которые могут значительно сократить работу, необходимую для разработки уровня доступа к данным, например. nHibernate. В зависимости от того, какую технологию пользовательского интерфейса вы используете, обратите внимание на сторонние библиотеки элементов управления.

В отрасли подход, который на протяжении многих лет в значительной степени заменил разработку, основанную на прототипах, звучит так: Agile. Он направлен на непосредственное удовлетворение меняющихся потребностей пользователей, всегда стремясь предоставить функции, но при этом сосредоточен на разработке высококачественного программного обеспечения с помощью таких методов, как TDD.

1
ответ дан 17 December 2019 в 00:05
поделиться
Другие вопросы по тегам:

Похожие вопросы: