ASP.NET MVC: где вы собираете модель представления для представления?

Изнутри и снаружи это уровни нашего приложения MVC:

  1. MS SQL / Таблицы / Представления / Сохраненные процессы
  2. Entity Framework 4.1 (ORM) с генерацией POCO
  3. Репозиторий
  4. Служба (получить) и функции управления (сохранить)
  5. Маршрутизация -> Контроллер -> Razor View
  6. (клиент) JQuery Ajax с Knockout.js (MVVM)

Все в порядке, пока мне не понадобится создать единую модель просмотра для шаг 5 для подачи как представления Razor, так и заголовка JSON / Knockout ViewModel:

  • , который включает все параметры раскрывающегося списка и варианты для полей ниже
  • Items - массив всего, что мы отправляем клиенту, который становится ViewModel

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

Кажется излишним создавать отдельные службы для каждого представления. Например, viewModel для редактирования адреса и отдельный viewModel для редактирования объекта недвижимости, у которого также есть адрес. У нас может быть дюжина форм, которые редактируют один и тот же адрес POCO.

Чтобы упростить ответ на этот вопрос, не является ли разрешение Контроллеру прямым доступом к репозиториям ненадежной абстракцией? Добавляет ли C ++ 11 спецификатор ограничения C99? Если нет, то почему? restrict - это функция C99, которой в последнее время уделяется много внимания, позволяя компилятору выполнять оптимизацию указателей "только для фортрана". Это то же самое ключевое слово, объявленное ...

restrict - это функция C99, которой в последнее время уделяется много внимания, позволяя компилятору выполнять оптимизацию указателей "только для фортрана". Это то же самое ключевое слово, объявленное недавно Microsoft в качестве основы спецификации C ++ AMP.

Действительно ли это ключевое слово содержится в FCD? Если нет, то есть ли конкретная причина, по которой он был пропущен?

30
задан Daniel Moth 14 February 2012 в 02:07
поделиться