в .net, какая модель программирования будет полезна для создания прототипов, но затем будет использоваться повторно для производства (для бизнес-логики / слоев доступа к данным) - PullRequest
6 голосов
/ 15 мая 2010

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

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

Есть комментарии? Другие предложения?

Ответы [ 2 ]

6 голосов
/ 15 мая 2010

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

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

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

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

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

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

Старайтесь размещать в этих сборках внешнего интерфейса только те материалы, которые характерны для каждой технологии пользовательского интерфейса (Winforms vs. ASP.NET). Храните все общие бизнес-правила, правила проверки, уровни доступа и обслуживания отдельно.

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

1 голос
/ 15 мая 2010

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

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

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

http://www.balsamiq.com/

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

С точки зрения ускорения темпов разработки программного обеспечения, используйте сторонние библиотеки. Если вы используете базу данных для постоянства, посмотрите на решения ORM, которые могут значительно сократить объем работы, необходимой для разработки уровня доступа к данным, например, NHibernate. В зависимости от используемой вами технологии пользовательского интерфейса обращайтесь к сторонним библиотекам управления.

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

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