Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
20 / 19 / 9
Регистрация: 06.02.2015
Сообщений: 382
.NET 4.x

Зависимости в классах

19.02.2017, 20:12. Показов 1083. Ответов 6

Студворк — интернет-сервис помощи студентам
Вот есть у меня такая проблема.
Есть 3 проекта(условно: dal, bissnes, ui)
У меня в первом есть класс с данными.
Во втором я провожу манипуляции над этим классом.
В третьем дёргаю методы из второго для получения результата.

Студия выдала мне следующее "Ошибка CS0012 Тип "TypeA" определен в сборке, на которую нет ссылки. Следует добавить ссылку на сборку "dal". UI"

То есть, там ссылки с первого проекта есть во втором, а у третьего на втором. То есть там все проекты, сейчас, связанны последовательно. Что я не так то сделал. Я думал именно так нужно разграничевать и распределять ответственности по проектам и классам, а так к выходит что мне нужно все библиотеки, которые участвуют в работе, в дочерних проектах, подключить в UI проект...
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
19.02.2017, 20:12
Ответы с готовыми решениями:

Определить какие из имён встречаются во всех классах, только в некоторых классах, не встречаются ни в одном
1. Заданный имена девочек . Определить , какие из этих имён встречаются во всех классах данной параллели , которые есть только в некоторых...

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

Заданы имена девочек. Определить, какие встречаются во всех классах, которые есть только в некоторых классах и какие не встречаются
Заданы имена девочек. Определить, какие из этих имен встречаются во всех классах данной параллели, которые есть только в некоторых классах...

6
Администратор
Эксперт .NET
 Аватар для OwenGlendower
18298 / 14222 / 5368
Регистрация: 17.03.2014
Сообщений: 28,898
Записей в блоге: 1
20.02.2017, 08:04
DarkOrk, значит код из проект bissnes возвращает в ui данные используя классы из dal. И поэтому требуется ссылка на него. Как иначе ui проект будет знать как выглядят эти типы? Чтобы такого не происходило придется в проекте bissnes делать типы повторяющие типы из dal.
0
20 / 19 / 9
Регистрация: 06.02.2015
Сообщений: 382
24.02.2017, 18:38  [ТС]
OwenGlendower, ну да. в принципе согласен с вами.

Ну тогда такой вопрос, в продолжение, а как же тогда правильно организовать это разделение на, условно, 3 ступени - дал, бизнел, юАЙ ?
То есть, нам нужно в каждом проекте создавать новый класс который будет в точности повторять предыдущий? что даже на слух не удобно для стартовой реализации и дальнейшего развития и масштабирования.
или есть какие-то стандартные шаблоны и паттерны для решения этого?
Объясните, кто знает. Как организовывается разбития проекта по слоям?
Какие шаблоны проектирования для каких, часто возникающих задач, лучше применять?

и доп вопрос, частично по теме.
Кликните здесь для просмотра всего текста

если использовать ЕФ для работы с БД. и Индентити ЕФ-а для авторизации и вообще работы с пользователем. (ну и с условием использования нашей "3х ступенчатой архитектуры". Нужно же выносить "классы коннекторы" в дал. Обработку и методы в "бизнес лэер" ну и в "юАЙ" оставить только дёрганье этого добра из бизнеса?
или в случае с индентити можно (и нужно) его полностью оставлять в "юАЙ" слое?
0
20 / 19 / 9
Регистрация: 06.02.2015
Сообщений: 382
27.02.2017, 21:25  [ТС]
Надеюсь модер на меня не обидеться что я флужу.

Ну где толковые отцы, с бородами по колено, а?
0
Эксперт .NETАвтор FAQ
 Аватар для Storm23
10427 / 5157 / 1825
Регистрация: 11.01.2015
Сообщений: 6,226
Записей в блоге: 34
27.02.2017, 23:13
Цитата Сообщение от DarkOrk Посмотреть сообщение
а как же тогда правильно организовать это разделение на, условно, 3 ступени - дал, бизнел, юАЙ ?
Смотрите, есть такое понятие доменная модель. Это объекты которые отображают предметную область.
Так вот, эти объекты общие для всех слоев многослойной архитектуры. Многослойная архитектура не говорят о том, что в слоях должны быть разные объекты. Деление на уровни является функциональным. То есть уровень DAL знает где и как брать объекты, и как их сохранять. BL знает как объекты взаимодействуют друг с другом. А UI умеет эти объекты отображать. Но объекты у них - общие.
Картинка все объясняет:


При этом, слои могут оперировать объектами разных типов. Это может понадобится, либо для уменьшения связности, либо для удобства либо по другим причинам. Но сама концепция DAL-BL-UI совсем этого не требует.
1
20 / 19 / 9
Регистрация: 06.02.2015
Сообщений: 382
28.02.2017, 00:56  [ТС]
Ок. Где при таком порядке вещей живёт "доменная модель"?
Это отдельная библиотека сущностей? или как и где она должна быть организована?
0
Эксперт .NETАвтор FAQ
 Аватар для Storm23
10427 / 5157 / 1825
Регистрация: 11.01.2015
Сообщений: 6,226
Записей в блоге: 34
28.02.2017, 02:52
Цитата Сообщение от DarkOrk Посмотреть сообщение
Это отдельная библиотека сущностей?
Именно.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
28.02.2017, 02:52
Помогаю со студенческими работами здесь

какие из этих имен встречаются во всех классах данной параллели которые есть только в некоторых классах и какие из этих имен не встречаются ни в одном
Помогите написать программу: заданы имена девочек определить какие из этих имен встречаются во всех классах данной параллели которые есть...

Как получить коэффициенты в обратной зависимости зависимости от удаления от точки
Здравствуйте. Есть некая точка p(px, py, pz). Она лежит на треугольнике (в т.ч. может лежать в одном из его узлов) с вершинами v1,...

Подробнее о классах
Извините если я не туда зашел. Я например хочу освоить на хорошем уровне классы. Ну в дальнейшем для написания начальных уровней игр, ну то...

Ошибка в классах
Пишет ошибку error C2259: Matrix: невозможно создать экземпляр абстрактного класса Что это значит? выкладываю код в котором...

Наследование в классах
#include <stdlib.h> #include <conio.h> #include<math.h> class B{ int a; public: B() { }; B(int x) { a=x; } void...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru