Нужна помощь с большим приложением ASP.NET - PullRequest
2 голосов
/ 18 октября 2010

У нас есть классическая ERP-версия ASP (очень большое приложение), которую мы хотим переписать с помощью ASP.NET.

Я ищу способ организации приложения, чтобы мы могли отделить каждую программу / веб-страницу (более 400) друг от друга.Каждая программа должна быть независимой, потому что многие разработчики будут работать над проектом в одно и то же время.

Кажется, Visual Studio создает DLL для каждой сборки, поэтому мне было интересно, если это хорошая идея, чтобы сделать огромное решение содин проект на DLL.

Пример.:

Customers.aspx + Customers.aspx.vb (скомпилировано) для представления

Customers.DLL для объекта объекта

CustomersManager.DLL для бизнес-логики

CustomersData.DLL для доступа к данным

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

Кажется ли это хорошим решением для крупномасштабного приложения?У кого-нибудь есть идея получше?

Спасибо

Ответы [ 3 ]

6 голосов
/ 18 октября 2010

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

Разделение приложения на отдельные библиотеки DLL представления / бизнес-логики / DAL имеет смысл для каждого модуля, но обычно не для каждой страницы.

Рассмотрим различные функциональные области вашего приложения, которые могут совместно использовать код и начать там (один набор проектов для каждого).

1 голос
/ 18 октября 2010

Мне кажется, это огромный неуправляемый кошмар.

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

Папки под корнем проекта могут помочь вам логически разделить вещи "/ Клиенты", "/ Заказы" и т. Д.

Если вы хотите сделать отдельные проекты для своих классов, это также делается довольно много. Имейте отдельный проект, содержащий все ваши объекты базы данных. Создайте еще один проект для Business Logic. Создайте несколько проектов Business Logic, если вам это нужно, «CustomerBO», «OrderBO» и т. Д.

Но управление более чем 1000 библиотек и связанных с ними веб-страниц ... это будет кошмар.

0 голосов
/ 18 октября 2010

Я думаю, что вопрос состоял в том, чтобы задавать вопрос о том, является ли наличие отдельной библиотеки DLL для каждого слоя каждой страницы хорошей архитектурой, а это не так, если ни по какой другой причине, кроме Visual Studio, скорее всего, не выползет остановка при попытке загрузить сотни отдельных проектов (мне страшно подумать, что это будет делать, и насколько невозможно будет поддерживать все эти библиотеки DLL). Теперь более разумным решением было бы иметь DLL для каждого слоя и отделить код каждой страницы в отдельный файл и использовать систему контроля версий. Это позволило бы разработчикам обмениваться кодом даже с худшими в своем роде системами контроля версий. Если ваша система управления исходным кодом имеет приличную поддержку ветвления / слияния (т.е. не SourceSafe), такую ​​как TFS, SVN, Git, вы на самом деле даже не беспокоитесь о людях, работающих над одним файлом одновременно, и тогда вы можете организовать свой код по функции, а не по странице , Я рискну догадаться по этому вопросу, что, вероятно, существует астрономическое количество дублированного кода, который можно упростить и упростить в обслуживании, нарушив жесткую связь с веб-кодом и повторно используя код. Может быть удивительно видеть, как много кода будет меньше. Вы можете сделать то же самое на стороне пользовательского интерфейса с разумным использованием пользовательских элементов управления для инкапсуляции общей функциональности. Кроме того, переходя с ASP на .NET, вы выбираете такие элементы, как элементы управления SiteMap, которые также должны уменьшить объем кода.

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