Какие компоненты использовать для реструктуризации веб-сайта ASP.Net - PullRequest
0 голосов
/ 06 марта 2010

Мне поручено реструктурировать существующий веб-сайт ASP.Net 2.0.Текущее решение имеет 3 проекта;Веб-интерфейс, проект бизнес-уровня и проект уровня данных.

Уровень данных использует некоторый класс вспомогательных SQL-функций и хранимые процедуры для возврата DataTable.

Бизнес-уровень передает DataTable, я не вижу большой бизнес-логики.

Веб-сайт пользовательского интерфейса очень занят DataGrids.

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

Часть, которая меня больше всего смущает, - это уровень данных.
Что мне следует использовать для этогочасть, Entity Framework или создать мои собственные классы, которые представляют мою базу данных или логические объекты?Скорость разработки также является проблемой, она должна быть достаточно быстрой и гибкой или отсоединенной для улучшений.

Я пытался идти по маршруту MVC, но кривая обучения пока слишком крута для разработчиков.Итак, это должны быть веб-формы.: - (

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

Я ищу предложения и рекомендации.

Ответы [ 5 ]

2 голосов
/ 06 марта 2010

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

Почему?Разве не имеет смысла начинать с предположения, что все должно идти в одном проекте, пока вы не сможете четко определить классы, которые нужно разделить?

Особенно, если вы используете что-то вродеEntity Framework, nHibernate или LINQ to SQL - эти библиотеки являются вашим DAL.

Приложение, которое я в настоящее время возглавляю, состоит из 7 проектов (не включая проекты модульного тестирования), но мы не сделали этого.создавайте проекты до тех пор, пока у нас не появится конкретная функциональность, в которой была убедительная, легко формулируемая потребность в другом проекте.Различие важно - не «ты думаешь, что должно», а «оно должно , или некоторые вещи становятся очень трудными или невозможными».В противном случае вы строите дороги в никуда и прогнозируете, что они будут удовлетворять транспортные потребности через 100 лет.

0 голосов
/ 06 марта 2010

Вам было поручено изменить архитектуру решения - почему именно?Это должно быть движущей силой вашей новой архитектуры (по крайней мере, в определенной степени).

Итак, две части этого ответа: материал более высокого уровня, затем особенности вашего вопроса.

Каковы нефункциональные требования?(также известный как «способности» http://en.wikipedia.org/wiki/Ilities) или, по крайней мере, их относительный приоритет?
Они должны стимулировать любые архитектурные усилия. Мы проектируем скорость, доступность, ремонтопригодность (например)?

Относительно вашей специфики: как вы говорите, не похоже, что на уровне логики происходит много логики. Просто проход через DataTables звучит нормально для краткосрочного ограниченного использования, но не будет практичным в долгосрочной перспективе. Если выпросто проталкиваете данные (отчеты) для отображения, тогда это здорово, я думаю.

Я никогда не использовал Entity Framework, nHibernate или LINQ to SQL лично, но любой из них должен работать.пространство зависимостей (блокировка поставщика, лицензирование и т. д.) - это имеет значение.

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

Использование корпоративных библиотек - это хорошо, нет смысла заново изобретать колесо, если вам это не нужно.

Относительно spПуть развития: взгляните на то, что вам нужно делать с вашим DAL.Для любой новой технологии сначала создайте прототип, исходя из ваших самых сложных функций.Это должно помочь вам определить, возможно ли это, учитывая ваши временные ограничения.

0 голосов
/ 06 марта 2010

Я рекомендую вам NHibernate или LINQ to Sql. Оба интересные и мощные. ADO.NET Entity Framework также хорош.

0 голосов
/ 06 марта 2010

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

Вы можете как-нибудь изменить свой код, если у вас мало времени.

Для уровня данных вы должны проверить http://www.ormbattle.net Я закончил тем, что купил LLBLGEN Pro, так как он независим от сервера.

0 голосов
/ 06 марта 2010

Я бы переосмыслил MVC.Любой веб-разработчик должен иметь представление о стандартных функциях HTML, к которым MVC возвращается.Как разработчик веб-форм, я начал работать с MVC через пару дней, и я не вернусь!

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