База данных, управляемая приложением asp.net MVC - PullRequest
2 голосов
/ 03 февраля 2011

У меня есть приложение CRUD, написанное на классическом ASP (не .net), которое передает (маршрутизирует) запросы страниц на соответствующие серверы с помощью библиотеки loadbalancer.

Работает так:

  1. Кто-то запрашивает www.mywebsite.com/products

  2. В папке products есть index.asp, который перенаправляет запрос на:

    http://www1.mywebsite.com/products
    

    или

    http://www2.mywebsite.com/products
    

    на основе логики балансировки нагрузки.

Другой сценарий:

  1. Кто-то запрашивает www.mywebsite.com/products/details

  2. В подпапке details в папке products есть index.asp, который перенаправляет запрос на:

    http://www1.mywebsite.com/products/details
    

    или

    http://www2.mywebsite.com/products/details
    

    на основе логики балансировки нагрузки

Основная проблема с приложением - всякий раз, когда я добавляю новую страницу, мне нужно создать папку и index.asp страницу для перенаправления страницы.

У нас есть база данных CMS, которая содержит детали всех страниц. Поэтому я хочу создать приложение MVC для замены существующего приложения Classic ASP.

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

Буду признателен за любую помощь.

Ответы [ 3 ]

3 голосов
/ 03 февраля 2011

Вам не нужно переходить на ASP.NET MVC только для перезаписи URL.

IIS 7 имеет встроенный модуль перезаписи URL, а ASP.NET 4 также включает маршрутизацию.

В любом случае, если вынапример, в Codeplex для проектов ASP.NET MVC вы найдете множество из них, управляемых базой данных.

Вам не нужно создавать отдельные маршруты для каждого отдельного элемента.Подумайте о концепции строк запросов (? Id = 15 & day = monday).Перезапись URL почти такая же.

Обновление

Я видел, что вы говорите о классическом ASP.

Встроенный модуль перезаписи URL в IIS 7 также отлично работает с классическим ASP.Если у вас более старая версия IIS, вам нужен сторонний модуль перезаписи ISAPI .

В любом случае, переключите его на ASP.NET MVC;)

0 голосов
/ 03 февраля 2011

Маршрутизация Asp.net MVC в вашем перенесенном приложении

На основе запросов, которые вы показали здесь, вы можете отсортировать все по стандартному маршруту:

{controller}/{action}/{id}

В вашем случае вы 'у меня есть ProductsController со всеми необходимыми действиями.

Приложение балансировки нагрузки

Но наличие приложения Asp.net MVC - это только одна часть.Это приложение будет работать на обоих серверах с балансировкой нагрузки.Все перенаправления должны быть сделаны до того, как они попадут в приложение MVC.

Если вы намерены продолжать использовать ту же DLL-библиотеку loadbalancer, вы можете создать другое приложение MVC Asp.net только с одним определением маршрута:

{*path}

и один контроллер и действие, которое делает все это:

public Load: Controller
{
    public ActionResult Balance(path)
    {
        // decide for web server and attach path to subdomain
    }
}

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

Альтернатива балансировки нагрузки

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

http://www.iis.net/download/webfarmframework

0 голосов
/ 03 февраля 2011

MVC очень хорошо подходит для решения вашей проблемы с маршрутизацией.Как и ASP.NET 4.

Однако проблема в том, что вы недостаточно знаете, чтобы задать точный вопрос.Поэтому вы путаетесь с маршрутизацией в MVC.

Поэтому я бы предложил прочитать учебник для болельщиков.Вы можете скачать PDF бесплатно.Чтобы сделать шаг вперед, прочитайте книгу Стивена Сандерсонса о MVC 2 (или MVC3 через пару месяцев).

Если вы будете следовать учебному пособию для начинающих и учебному пособию Стивена Сандерсона, это даст вам лучшее представление о том, какработает.

Короче говоря, вот как работает MVC:

В MVC вы забываете о файлах и папках.

Вместо этого у вас есть контроллеры и действия.Маршруты сопоставляют запросы с нужным контроллером и действием.

Код в действиях затем решает, какое представление заполнить данными (из базы данных или где-либо еще, это не имеет значения).Представления - это просто шаблоны, которые говорят, что делать и какие данные отображать.

Контроллеры запрашивают у модели данные, которые им нужны.

Т.е. доступ к данным осуществляется в модели аккуратно отделенным от пользовательского интерфейса.

M: Модель V: Представления C: Контроллер

Возможно, приведенное вышебессмысленно для тебя.Это ОЧЕНЬ другое мышление по сравнению с классическим ASP.

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

Когда вы будете готовы, мы все равно будем здесь, чтобы помочь с более точными вопросами.

...