2011-01-03 3 views
1

Я новичок в MVC. Я хотел бы иметь свои объекты данных в отдельном проекте из моего основного проекта MVC. Могу ли я просто переместить ВСЕ классы и файлы из моей папки «models» в мой новый проект, а затем добавить ссылку на новый проект данных в моем проекте MVC? Как я смогу использовать модели, как в моих контроллерах (все еще в проекте MVC), так и в моих представлениях?MVC и отдельные проекты

+0

Mh, можете ли вы быть более конкретным относительно используемого языка программирования, используемой структуры и т. Д. Это помогает представить, чего вы хотите. Как ваш вопрос говорит, что я думаю, что можно «просто» создать все в таком порядке (я имею в виду, инстансов): -Модель (ничего не требуется) -View (требуется модель) -Controller (требуется модель и представление) Выполнение этого легко, я имею в виду, что вы можете просто установить указатель на модели и представления в конструкторе –

+0

Извините. Виноват. Я (неправильно) предположил, что MVC - вещь Microsoft. Извини за это. Я использую .net (4.0) в visual studio 2010 с C#. – Craig

+0

MVC - это шаблон проектирования, парадигма кодирования. ASP.NET MVC - это набор инструментов, который Microsoft обеспечивает для его выполнения. Обновил тэг для вас. :) – Sapph

ответ

2

Вы идете в правильном направлении. Фактически, для всех, кроме самых тривиальных проектов, мне нравится иметь мою модель в отдельной библиотеке классов. И затем, как вы упомянули, вы можете ссылаться на библиотеку классов из своего проекта MVC и использовать классы моделей. Преимущество в том, что, когда у вас будет готовая и отполированная модель в библиотеке классов, вы можете «открыть» любой уровень представления, например, ваш проект MVC или Windows Phone 7 или выставить через WCF.

Имейте в виду, что эти репозитории НЕ являются частью вашей модели. Они являются упорством, и они должны делать операции CRUD, простые и простые. Любые манипуляции должны идти в слое моделей.

0

Вы должны создавать библиотеки с инструментами, соответствующими вашей технологии внедрения. Например, с Java вы должны создать jar (s), содержащие модели. Вы помещаете банки на путь класса, в зависимости от того, какой проект (ы) использовали их; как только вы это сделаете, у вас есть доступ к библиотеке.

Это хорошая идея, если вы хотите повторно использовать объекты модели и бизнес-требования, которые они реализуют в более чем одном месте. Возможно, вы хотите, чтобы клиенты использовали ваш модельный API для реализации своих собственных клиентов, например.

Вы можете сохранить модельный слой в качестве своего собственного проекта или сохранить его в «основном» проекте и создать процессы сборки для создания желаемых артефактов. Вы не дали нам достаточно информации, чтобы дать жесткий ответ о том, какой лучший подход.

Я могу сказать следующее: большинство проектов начинаются со всех слоев внутри одного проекта. Если часть проекта становится значительно сложной, вы можете реорганизовать отдельные проекты. В некоторых проектах, которые я видел, веб-клиент достаточно сложный, чтобы быть его собственным проектом с собственной командой разработчиков (и собственными слоями MVC). В других проектах все стеки MVC были в одном проекте. Обратите внимание, что вам не нужно, чтобы M в MVC находился в отдельном проекте, чтобы следовать парадигме. Вам просто нужно справиться со всеми проблемами в правильном слое.

+0

Спасибо. Я просто делаю очень маленький учебный проект. Так что в реальной жизни я бы сохранил это как одно. Тем не менее, я хотел бы преобразовать старое веб-приложение в MVC. И у этого есть 2 интерфейса. Winforms и веб-приложение. В настоящее время я использую классический веб-сервис asp.net, который имеет bl и dl. Это будет преобразовано в инфраструктуру сущности в качестве уровня данных, а затем ссылку веб-службы на проект ef. На самом деле не уверен. Тогда мне, вероятно, придется иметь общий класс lib с объектами данных. На самом деле. Мне нужно подумать об этом. – Craig

Смежные вопросы