2012-12-04 7 views
1

Я разрабатываю проект, в конечном итоге это будет веб-приложение. Но я стараюсь следовать своему родом многоуровневого подхода для бизнеса-объектов и доступа к данным, я создал следующие библиотеки классов проектов в одном холостом растворе:Многоуровневая архитектура и инкапсуляция

MyCompany.MyProject.Repository 
MyCompany.MyProject.Model 
MyCompany.MyProject.Service 

MyCompany.MyProject.Repository имеет ссылку к MyCompany.MyProject.Model MyCompany.MyProject.Service имеет ссылку на MyCompany.MyProject.Model и MyCompany.MyProject.Repository.

Эта небольшая каркасная платформа будет использоваться несколькими приложениями в будущем, и поэтому я создаю их отдельно для веб-приложения.

У меня есть два вопроса:

  1. Что касается наслоения приложения является таким подходом правильным, веб-приложение (или любым приложение, которое необходимо использовать мою структуру), нужно будет иметь все три библиотеки в это Каталог ящиков - правильно ли я это понимаю?

  2. Проект MyCompany.MyProject.Model содержит все мои бизнес-объекты. Что касается капсулирования - например у меня есть объект клиента:

    Открытый класс Customer

    Private _customerID Как Int32

    Public CustomerID Property() As Int32 Получить Вернуться _customerID Конец Получить Friend Set (значение ByVal Как Int32) _customerID = значение Конец Набор Конец недвижимости

    Конец Класс

Это, как я думаю, что идентификатор для объекта клиента должен подвергаться воздействию, из-за модификатор доступа друга на Комплексе идентификатор для клиента должен быть только в состоянии установить внутри фреймворк, и только читать извне веб-приложение или любое другое приложение, созданное в будущем. Но поскольку мой код находится в отдельных проектах библиотеки классов, MyCompany.MyProject.Repository, например, не может получить к нему доступ, хотя мои пространства имен следуют этому примеру.

Это не похоже на мое понимание инкапсуляции, что я здесь делаю неправильно?

Ваша помощь очень ценится.

спасибо.

ответ

0

Сценарий, который вы описали, относительно распространен. В этом случае я предпочитаю использовать сборки друзей. Они позволяют использовать внутренние (.net) или дружественные (VB) элементы. Вы можете найти дополнительную информацию о друзьях here.

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

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