Гость
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Как разделить проекты: UI (WPF) и библиотеку (C#, C++)? / 21 сообщений из 21, страница 1 из 1
24.01.2013, 14:02
    #38123159
svnv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как разделить проекты: UI (WPF) и библиотеку (C#, C++)?
Сейчас у меня морда UI и библиотека (обработка данных) выполнены как два проекта внутри одного решения в VS, и все решение находится в SVN. Я хочу полностью отделить библиотеку от UI, поскольку она будет также использоваться в других приложениях, над ней работают другие люди и у нее независимые требования. А проект с UI (и другие проекты) должны эту библиотеку как-то подсасывать, но без исходников - просто как одну из внешних библиотек. Может мне кто-то подсказать, как это сделать? Это должно быть два отдельных решения в VS? Я работал всегда на Яве, поэтому прошу прощения за примитивные вопросы - ссылки или ключевых слов будет достаточно. Спасибо.
...
Рейтинг: 0 / 0
24.01.2013, 14:08
    #38123176
Местный король Делфей
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как разделить проекты: UI (WPF) и библиотеку (C#, C++)?
MVVM
...
Рейтинг: 0 / 0
24.01.2013, 14:16
    #38123194
svnv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как разделить проекты: UI (WPF) и библиотеку (C#, C++)?
Местный король ДелфейMVVM
Это на уровне внутреннего дизайна.

А меня интересует на уровне структуры проектов. Ну допустим, речь идет не об UI, а нескольких библиотек, которые сейчас разрабатываются вместе, а надо их разделить. Но они используют друг друга. Соответственно, как надо оформить проекты или решения для каждой библиотеки. Соответственно, вопросы: что должен генерировать проект (какой артефакт)? как потом засосать этот артефакт в другой проект без построения и без исходников (из SVN)?

(В Яве я могу использовать maven.)
...
Рейтинг: 0 / 0
24.01.2013, 14:50
    #38123268
Сон Веры Павловны
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как разделить проекты: UI (WPF) и библиотеку (C#, C++)?
svnvНо они используют друг друга.
Вынести объявления общих типов в отдельную сборку; прорефакторить контракты классов библиотек с выделением общих частей, вынесением этих частей в интерфейсы и абстрактные классы, всё это хозяйство (интерфейсы/абстр. классы) также в отдельную сборку.
svnvкак потом засосать этот артефакт в другой проект без построения и без исходников
Без исходников - как обычный референс на сборку библиотеки.
Без построения - это как? на рантайме? Тогда см. здесь или здесь . Только вышеописанный рефакторинг всё равно придется произвести.
...
Рейтинг: 0 / 0
24.01.2013, 19:16
    #38123772
Местный король Делфей
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как разделить проекты: UI (WPF) и библиотеку (C#, C++)?
так бы сразу и сказали. про nuget слышали?
делаете свой кастомный нугет репозиторий
http://docs.nuget.org/docs/creating-packages/hosting-your-own-nuget-feeds
...
Рейтинг: 0 / 0
24.01.2013, 22:11
    #38123912
svnv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как разделить проекты: UI (WPF) и библиотеку (C#, C++)?
Я сделал по народно-крестьянски. Отделил полностью проект с библиотекой и сделал так, что он генерирует DLL. Потому эту DLL вручную копирую во второй проект и другие проекты, где эта библиотека используется. Делю на него ссылку. И все работает.

В будущем буду решать как сделать это правильно. Чтобы не надо было библиотеку при каждом изменении вручную копировать во все проекты, где она используется. Возможно, NuGet подойдет, но там разбираться надо. Я так понял, что нужен центральный репозитарий пакетов.

Ну и надо еще понять, как библиотечный DLL автоматически вместе с конечным EXE в дистрибутив вкладывать (вместе с другими ресурсами).
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
13.01.2018, 20:13
    #39583774
pistoletov74
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как разделить проекты: UI (WPF) и библиотеку (C#, C++)?
мне нужно часть кода сделать независимым от основного проекта. В основном проекте куча классов Все они собираются в общий exe. Мне нужно что бы один класс был отдельной dll что бы не пересобирать весь проект а только этот класс. Но этот класс использует классы и метод общей сборки. Свой класс то можно отдельно скомпилировать в dll Но будет ли он видеть классы основной сборки и что нужно сделать для этого?
...
Рейтинг: 0 / 0
13.01.2018, 21:14
    #39583785
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как разделить проекты: UI (WPF) и библиотеку (C#, C++)?
pistoletov74В основном проекте куча классов Все они собираются в общий exe.
если у вас в одной квартире беспорядок, то вторая квартира в придачу не поможет.
- почему классы не распределены по папкам?
pistoletov74Но этот класс использует классы и метод общей сборки
Придётся наводить порядок и свести все вызовы к обособленному (после "развода") классу к минимуму.
Начните с MVVM или вы этот топик не читали?
...
Рейтинг: 0 / 0
13.01.2018, 21:59
    #39583794
pistoletov74
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как разделить проекты: UI (WPF) и библиотеку (C#, C++)?
задача немного не такая...я пишу только определенный класс (формирование pdf отчета) Сам основной код пишут другие ребята. И к порядку их приручать не моя забота. Мой класс лежит в своей отдельной папочке. За Данными обращаюсь в в основной код. Сейчас просто отдаю им исходник и они пересобирают весь проект. Все классы в один exe. Мое желание - выделить dll со своим классом что бы она подтягивалась основным приложением. Так не надо весь код перекомпилировать и доступа к моим исходниками у других не будет. Моя либа то будет видна из основного приложения ...но буду ли я видеть классы из общего exeшника...
...
Рейтинг: 0 / 0
14.01.2018, 11:52
    #39583878
skyANA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как разделить проекты: UI (WPF) и библиотеку (C#, C++)?
pistoletov74,

классы (или интерфейсы) из общего exeшника, что использует Ваша либа и сам exeшник, необходимо вынести в отдельный(е) проект(ы)/сборку(и)/пакет(ы).
Тогда Вы сможете "выделить dll со своим классом".

Но такие вещи в первую очередь надо обсуждать с командой, а не на форуме.

P.S.: а исходники следует хранить в системе контроля версий и доступ к ним должен быть у всех Ваших коллег.
...
Рейтинг: 0 / 0
14.01.2018, 12:10
    #39583880
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как разделить проекты: UI (WPF) и библиотеку (C#, C++)?
pistoletov74Сейчас просто отдаю им исходник и они пересобирают весь проект. Все классы в один exe. Мое желание - выделить dll со своим классом что бы она подтягивалась основным приложением. Так не надо весь код перекомпилировать и доступа к моим исходниками у других не будет. Моя либа то будет видна из основного приложения ...но буду ли я видеть классы из общего exeшника...
Логики нету. Надо длл - делайте.
Но желание спрятать код от друих странное само по себе.
Поставьте tortoise и топик будет исчерпан.

pistoletov74но буду ли я видеть классы из общего exeшника...
Циркулярные ссылки туда обратно плохо.
Если только потренироваться за счет работодателя, делайте.
...
Рейтинг: 0 / 0
14.01.2018, 12:15
    #39583882
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как разделить проекты: UI (WPF) и библиотеку (C#, C++)?
...
Рейтинг: 0 / 0
14.01.2018, 12:22
    #39583884
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как разделить проекты: UI (WPF) и библиотеку (C#, C++)?
В результате, старый проект, без показаний и обоснований был разбит на 4 дллки и один ехе.
ДЛЛки больше кроме этого проекта не использовались.
Налицо - оверхед.
Удачи!
...
Рейтинг: 0 / 0
14.01.2018, 12:38
    #39583888
pistoletov74
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как разделить проекты: UI (WPF) и библиотеку (C#, C++)?
Petro123Логики нету. Надо длл - делайте.
Но желание спрятать код от друих странное само по себе.
Поставьте tortoise и топик будет исчерпан.

если бы мог остальных убедить работать с git вообще проблем не было бы. Мой код всегда свежий лежит на гит но им это неудобно..присылайте исходник тогда мы соберем и отдадим заказчику. Вроде и не старперы но вот желания учиться ноль...
а зачем tortouise? - Visual Studio Отлично дружит с Git

Я хочу только оперативности - внес изменения в свою либу и не ожидая основной сборки либа ушла к заказчику. А не ожидать друг друга .
Может есть еще концепты так сказать для "изолированной разработки"..к сожалению приходится и с таким работать.
...
Рейтинг: 0 / 0
14.01.2018, 12:41
    #39583890
skyANA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как разделить проекты: UI (WPF) и библиотеку (C#, C++)?
Проблема расписана, варианты решения указаны: c# circular reference problem
...
Рейтинг: 0 / 0
14.01.2018, 12:46
    #39583891
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как разделить проекты: UI (WPF) и библиотеку (C#, C++)?
pistoletov74Вроде и не старперы но вот желания учиться ноль...да. Тогда изучай длл. Но и помни слово оверхед.

pistoletov74зачем tortouise?
Просто пример.
...
Рейтинг: 0 / 0
14.01.2018, 12:53
    #39583893
skyANA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как разделить проекты: UI (WPF) и библиотеку (C#, C++)?
pistoletov74Petro123Логики нету. Надо длл - делайте.
Но желание спрятать код от друих странное само по себе.
Поставьте tortoise и топик будет исчерпан.

если бы мог остальных убедить работать с git вообще проблем не было бы. Мой код всегда свежий лежит на гит но им это неудобно..присылайте исходник тогда мы соберем и отдадим заказчику. Вроде и не старперы но вот желания учиться ноль...
а зачем tortouise? - Visual Studio Отлично дружит с Git

Я хочу только оперативности - внес изменения в свою либу и не ожидая основной сборки либа ушла к заказчику. А не ожидать друг друга .
Может есть еще концепты так сказать для "изолированной разработки"..к сожалению приходится и с таким работать.
Оформляете так называемы proposal (предложение), где расписываете текущую реальность с её проблемами, потребности и предлагаете свои варианты решения.
Рассылаете письмом, собираете какое-то время комментарии. Потом организуете совещание, где определяете план действий.

Если не находите поддержки, то как вариант "изолированной разработки" - это избавляетесь от зависимостей от "классов exeшника", создаёте свой Git репозиторий, свой NuGet репозиторий, и свой CI pipeline в TFS, или Teamcity, или Jenkins.

В результате будет так: внесли изменения, push, прошли тесты, билд агент собрал новую версию пакета и опубликовал её, заказчик увидел и обновил.
...
Рейтинг: 0 / 0
14.01.2018, 12:57
    #39583894
skyANA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как разделить проекты: UI (WPF) и библиотеку (C#, C++)?
pistoletov74Мой код всегда свежий лежит на гит но им это неудобно..присылайте исходник тогда мы соберем и отдадим заказчику.Неудобно что конретно делать?

Оформите как NuGet-пакет. Им надо будет нажать Update в Visual Studio и собрать проект. Так им будет удобно?
...
Рейтинг: 0 / 0
14.01.2018, 13:05
    #39583897
pistoletov74
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как разделить проекты: UI (WPF) и библиотеку (C#, C++)?
skyANApistoletov74Мой код всегда свежий лежит на гит но им это неудобно..присылайте исходник тогда мы соберем и отдадим заказчику.Неудобно что конретно делать?

Оформите как NuGet-пакет. Им надо будет нажать Update в Visual Studio и собрать проект. Так им будет удобно?

неудобно разбираться с системой контроля версий. Можно конечно NuGet репозиторий поднять где-то. Но думаю вариант присылания dll по почте им будет понятней и удобней.
Завтра засяду за разделение. Спасибо всем за совету. Постараюсь к минимум свести обращения за данными к основному коду. Пусть передается параметрами в мой класс все что нужно.


парни, в этом проекте странностей очень много..но это будет офтоп если описывать все.Спасибо за советы. Разработка когда все враги-). Заказчик например не дает доступ в корпоративную свою закрытую сеть. Раньше на флешке носили исходники теперь хоть на емейл согласились. Речь не идет о правильном решении как автоматическая сборка и сразу снепшот у заказчика.
...
Рейтинг: 0 / 0
14.01.2018, 13:10
    #39583898
skyANA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как разделить проекты: UI (WPF) и библиотеку (C#, C++)?
pistoletov74парни, в этом проекте странностей очень много..но это будет офтоп если описывать всеПравильно, от того, что Вы свои претензии будете выссказывать тут, а не на работе, ничего не изменится

pistoletov74Спасибо за советыДа не за что.
...
Рейтинг: 0 / 0
14.01.2018, 13:24
    #39583903
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как разделить проекты: UI (WPF) и библиотеку (C#, C++)?
pistoletov74Разработка когда все враги-).))))
...
Рейтинг: 0 / 0
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Как разделить проекты: UI (WPF) и библиотеку (C#, C++)? / 21 сообщений из 21, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]