Работа с MVC 2.0 и моделью в отдельной сборке - PullRequest
4 голосов
/ 03 сентября 2010

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

Я бы хотел настроить решение следующим образом:

  • Предоставьте веб-интерфейс с использованием проекта MVC 2.0.
  • Использование проекта классов Linq to SQL для сохранения данных.
  • У меня есть два отдельных модуля кода, которым потребуется доступ к вышеупомянутой модели Linq to SQL - поэтому я не смогу включить свою модель Linq to SQL непосредственно в сам проект MVC.
  • Также у меня есть слой Business Logic перед моим проектом Linq to SQL.

Мои вопросы:

  • Как настроить часть Model моего приложения MVC так, чтобы она указывала на мой проект Linq to SQL через мой BLL?
  • Как выполнить проверку веб-приложения? Могу ли я использовать проверку модели MVC 2.0? Если нет, каковы альтернативы?
  • Наконец (и немного в стороне). Что такое модель представления и чем она отличается от модели?

Так много вопросов. Но это - захватывающая новая технология и проблемы доступа к данным, все остальное, с чем я столкнулся очень быстро, и я думаю, что MVC 2.0 - это фантастика.

Спасибо за любые указатели, которые вы можете предоставить.

Ответы [ 2 ]

4 голосов
/ 03 сентября 2010

Как настроить часть Model моего приложения MVC так, чтобы она указывала на мой проект Linq to SQL через мой BLL?

Обычно для этого вы используете шаблон репозитория.Ваш контроллер имеет ссылку на ваш репозиторий - репозиторий возвращает ваши доменные объекты из вашей базы данных.Приложение MVC не знает, что LINQ to SQL существует.

Как выполнить проверку веб-приложения?Могу ли я использовать проверку модели MVC 2.0?Если нет, каковы альтернативы?

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

Наконец (и немного в стороне) - Что такое ViewModel и чем он отличаетсяот модели?

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

Вот ссылка для просмотра моделей моделей .

Надеюсь, это поможет.

1 голос
/ 03 сентября 2010
  1. Вы можете добавить ссылку на объекты, представленные в вашей сборке BLL, и использовать их в качестве своих моделей.

  2. Если вы хотите добавить проверку к генерируемым классам, используйте классы собеседников .

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

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

ViewModels будет полезен в вашем случае также потому, что вы хотите, чтобы ваши модели находились в отдельной сборке.Вы можете применить DataAnnotations к свойствам ViewModel для проверки.Вы должны сделать «необработанные» модели бизнес-объектов внутренними свойствами ваших ViewModels и предоставить открытые методы для извлечения и сохранения данных.

...