Как я совместно использую DAL и BLL через несколько приложений.NET?

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

0_target_a: file.txt
        echo "this is target_a"
        touch $@

target_b: 0_target_a
        echo "executing target_b"
        touch 0_$@

Т.е. определение правила для цели 0_target_a и обновление touch соответственно даст вам поведение, которое вы хотели, так как make теперь понимает правило, связь между целью и файлом 0_target_a и знать, когда его не нужно переделывать как зависимость target_b. Теперь, если вы все еще хотите иметь автономный target_a, который бы генерировал файл 0_target_a, вы можете определить его следующим образом:

[111 ]

Поскольку мы знаем, что эта цель на самом деле не создает сам файл, мы можем приложить немного усилий, чтобы найти его результат (target_a), а также предотвратить конфликты, если такой файл будет создан, объявив его как фальшивый. [1123 ]

На самом деле вы, возможно, захотите дать вашему target_b такое же лечение, как и в других случаях (опять же, make не имеет h информация для понимания связи между target_b и 0_target_b) make target_b всегда переделывается, даже если файл уже создан.

Весь файл make будет выглядеть так:

[112 ]

Если это повторяющаяся тема по всему файлу, вы также можете выразить отношение во второй и третьей строке, задав правило статического шаблона:

target_a target_b: %:  0_%

Это определяет правило, которое является любой целью ( первый '%' без чего-либо еще) имеет обязательное условие префикса 0_, за которым следует имя цели (0_%, 0_ плюс основа, которая в данном случае является целевым именем во всей его полноте в соответствии с предыдущим %) , и делает это правило применимым к целям target_a и target_a. Это правило не имеет рецепта и, следовательно, описывает только целевые / обязательные отношения между ними.

Другими словами, это означает то же самое, что и полные примеры строк 2 и 3 вместе взятых.

6
задан Community 23 May 2017 в 12:19
поделиться

5 ответов

для этого я рекомендовал бы создать Решение для Visual Studio, которое содержит несколько Проектов. Ваш DAL содержался бы в рамках его собственного проекта затем для других проектов, которые должны использовать ту функциональность, создать Ссылку проекта назад к проекту DAL.

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

9
ответ дан 8 December 2019 в 13:51
поделиться

идея adamalex является звуковой. в зависимости от Вашей установки другой привилегированный подход должен взять общие отдельные проекты, скомпилировать и затем иметь Ваши другие проекты, ссылаются, это скомпилировало dll. Вам решать, если они ссылаются на последнюю сборку этого dll или определенную версию ее. возможно, Вы не хотите некоторые проекты, имеющие необходимость поддерживать на высоком уровне все время.

3
ответ дан 8 December 2019 в 13:51
поделиться

Я рекомендовал бы создать новое решение для Visual Studio, которое содержит несколько проектов. Для разделения DAL/BLL я рекомендовал бы использовать библиотеку классов. Создание этой абстракции позволяет Вам переносить его другими проектами как веб-сервис WCF, например, и выставлять его открыто не только системы.NET - но и потенциально другие системы.

После того как Вы создали их проект (проекты) библиотеки классов, можно добавить ссылку на них в других проектах и использовать их. Это поможет сохранить четкое разделение проблем.

1
ответ дан 8 December 2019 в 13:51
поделиться

Возможно, можно использовать веб-сервисы для централизации доступа к базе данных / логика...

Как замечено в ответах из ссылки (SOA / WebServices / Дистанционная работа)

2
ответ дан 8 December 2019 в 13:51
поделиться

Я предложил бы, чтобы Вы посмотрели на CSLA.Net. Это позволяет Вам создавать свои бизнес-объекты, которые легко поддерживают несколько интерфейсов (asp.net, wpf, Silverlight, и т.д.). Я не знаю то, что Вы создаете, но CSLA поддерживает это очень хорошо.

У меня есть дека слайда места подачи питания, которая может помочь получить Вас идущий с CSLA.

Дека слайда CSLA

2
ответ дан 8 December 2019 в 13:51
поделиться
Другие вопросы по тегам:

Похожие вопросы: