2016-10-28 6 views
1

Я работаю над назначением C#. Я должен создать свое приложение C# как 3 уровня, где слои должны быть реализованы в своих собственных пакетах. Чтобы решить эту проблему, я просто добавил папки в свой проект в Visual Studio. Правильно ли это?C# дизайн как 3 слоя и реализовать слой как .dll (библиотека)

Тогда я должен реализовать бизнес-логику как DLL (библиотека). Я сделал это, чтобы создать новый проект библиотеки классов в своем решении. То, что я прямо сейчас:

Screenshot of my Solution Explorer

Я не уверен, о том, как это сделать. Правильно ли это сделано? Если это так, я хочу знать, что делать сейчас. Насколько я знаю, мне нужно построить проект библиотеки классов, чтобы получить DLL-файл, который я могу добавить в качестве ссылки на другой проект. Но если я напишу свою бизнес-логику в проекте библиотеки классов, то что я должен написать в своем пакете BusinessLogic в основном проекте?

Если мой подход неправильный, пожалуйста, скажите мне, как это решить.

+0

Каждая DLL будет отдельным проектом библиотеки классов в Visual Studio. Использование папок просто организует файлы кода. Итак, вам нужны три библиотеки классов - по одному для каждого слоя. –

+0

Кажется, что идея задания состоит в том, чтобы научить вас разделять проблемы, три слоя должны быть слабо связаны, и каждый из слоев ориентирован на один аспект приложения. Например, в MVVM у вас есть контрольный уровень (где вы помещаете элементы управления пользовательского интерфейса), уровень модели представления (объекты привязываются к пользовательскому интерфейсу) и уровень модели (бизнес-логика, службы и т. Д.). Прежде чем вы начнете, я бы предложил потратить некоторое время на этап проектирования и решить, что добавить в каждый слой. Если вы хотите, вы можете создавать отдельные проекты для каждого из слоев. – brakeroo

+0

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

ответ

1

Для каждого уровня под вашим приложением вам нужна библиотека классов. Вы можете сделать так, как вы говорите, и скомпилировать класс для получения dll, затем добавьте DLL в качестве ссылки, однако для упрощения добавьте ссылку на проект для каждого из проектов библиотеки классов ... Затем компилятор позаботится о ссылках на DLL когда вы его строите.

+0

Я бы сказал, что «слои» - это абстрактная концепция, которая может быть достигнута любым из разных классов (определенных в разных пакетах по мере необходимости) для разных проектов dll (или даже приложений/процессов) - идея - это слои чтобы быть свободно связанными и сосредоточиться на определенных обязанностях, это будут модули, которые могут быть повторно использованы, проверены независимо, изменены, не затрагивая другие части системы и т. д. – brakeroo

+0

Я куплю ваш аргумент, однако в вопросе говорится: «Тогда мне нужно реализовать бизнес-логику как DLL (библиотека) ». подразумевая, что хотя бы один из слоев (уровень бизнес-логики) является отдельной библиотекой классов, я просто расширил это, чтобы подразумевать, что 3-й уровень (предположим, что это, вероятно, доступ к данным) снова является отдельной библиотекой классов, но, как вы отмечаете, Должно быть. – Theo

+0

Да, как бизнес-логика, так и уровни доступа к данным должны быть библиотеками классов, но прямо сейчас мне не нужно реализовывать уровень доступа к данным. Если посмотреть на ответы, то лучше всего создать проект для каждого уровня, поэтому я попытаюсь использовать этот подход. – qwerty

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

  • Нет связанных вопросов^_^