|
Как разделить проекты: UI (WPF) и библиотеку (C#, C++)?
|
|||
---|---|---|---|
#18+
Сейчас у меня морда UI и библиотека (обработка данных) выполнены как два проекта внутри одного решения в VS, и все решение находится в SVN. Я хочу полностью отделить библиотеку от UI, поскольку она будет также использоваться в других приложениях, над ней работают другие люди и у нее независимые требования. А проект с UI (и другие проекты) должны эту библиотеку как-то подсасывать, но без исходников - просто как одну из внешних библиотек. Может мне кто-то подсказать, как это сделать? Это должно быть два отдельных решения в VS? Я работал всегда на Яве, поэтому прошу прощения за примитивные вопросы - ссылки или ключевых слов будет достаточно. Спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.01.2013, 14:02 |
|
Как разделить проекты: UI (WPF) и библиотеку (C#, C++)?
|
|||
---|---|---|---|
#18+
MVVM ... |
|||
:
Нравится:
Не нравится:
|
|||
24.01.2013, 14:08 |
|
Как разделить проекты: UI (WPF) и библиотеку (C#, C++)?
|
|||
---|---|---|---|
#18+
Местный король ДелфейMVVM Это на уровне внутреннего дизайна. А меня интересует на уровне структуры проектов. Ну допустим, речь идет не об UI, а нескольких библиотек, которые сейчас разрабатываются вместе, а надо их разделить. Но они используют друг друга. Соответственно, как надо оформить проекты или решения для каждой библиотеки. Соответственно, вопросы: что должен генерировать проект (какой артефакт)? как потом засосать этот артефакт в другой проект без построения и без исходников (из SVN)? (В Яве я могу использовать maven.) ... |
|||
:
Нравится:
Не нравится:
|
|||
24.01.2013, 14:16 |
|
Как разделить проекты: UI (WPF) и библиотеку (C#, C++)?
|
|||
---|---|---|---|
#18+
svnvНо они используют друг друга. Вынести объявления общих типов в отдельную сборку; прорефакторить контракты классов библиотек с выделением общих частей, вынесением этих частей в интерфейсы и абстрактные классы, всё это хозяйство (интерфейсы/абстр. классы) также в отдельную сборку. svnvкак потом засосать этот артефакт в другой проект без построения и без исходников Без исходников - как обычный референс на сборку библиотеки. Без построения - это как? на рантайме? Тогда см. здесь или здесь . Только вышеописанный рефакторинг всё равно придется произвести. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.01.2013, 14:50 |
|
Как разделить проекты: UI (WPF) и библиотеку (C#, C++)?
|
|||
---|---|---|---|
#18+
так бы сразу и сказали. про nuget слышали? делаете свой кастомный нугет репозиторий http://docs.nuget.org/docs/creating-packages/hosting-your-own-nuget-feeds ... |
|||
:
Нравится:
Не нравится:
|
|||
24.01.2013, 19:16 |
|
Как разделить проекты: UI (WPF) и библиотеку (C#, C++)?
|
|||
---|---|---|---|
#18+
Я сделал по народно-крестьянски. Отделил полностью проект с библиотекой и сделал так, что он генерирует DLL. Потому эту DLL вручную копирую во второй проект и другие проекты, где эта библиотека используется. Делю на него ссылку. И все работает. В будущем буду решать как сделать это правильно. Чтобы не надо было библиотеку при каждом изменении вручную копировать во все проекты, где она используется. Возможно, NuGet подойдет, но там разбираться надо. Я так понял, что нужен центральный репозитарий пакетов. Ну и надо еще понять, как библиотечный DLL автоматически вместе с конечным EXE в дистрибутив вкладывать (вместе с другими ресурсами). ... |
|||
:
Нравится:
Не нравится:
|
|||
24.01.2013, 22:11 |
|
Как разделить проекты: UI (WPF) и библиотеку (C#, C++)?
|
|||
---|---|---|---|
#18+
мне нужно часть кода сделать независимым от основного проекта. В основном проекте куча классов Все они собираются в общий exe. Мне нужно что бы один класс был отдельной dll что бы не пересобирать весь проект а только этот класс. Но этот класс использует классы и метод общей сборки. Свой класс то можно отдельно скомпилировать в dll Но будет ли он видеть классы основной сборки и что нужно сделать для этого? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.01.2018, 20:13 |
|
Как разделить проекты: UI (WPF) и библиотеку (C#, C++)?
|
|||
---|---|---|---|
#18+
pistoletov74В основном проекте куча классов Все они собираются в общий exe. если у вас в одной квартире беспорядок, то вторая квартира в придачу не поможет. - почему классы не распределены по папкам? pistoletov74Но этот класс использует классы и метод общей сборки Придётся наводить порядок и свести все вызовы к обособленному (после "развода") классу к минимуму. Начните с MVVM или вы этот топик не читали? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.01.2018, 21:14 |
|
Как разделить проекты: UI (WPF) и библиотеку (C#, C++)?
|
|||
---|---|---|---|
#18+
задача немного не такая...я пишу только определенный класс (формирование pdf отчета) Сам основной код пишут другие ребята. И к порядку их приручать не моя забота. Мой класс лежит в своей отдельной папочке. За Данными обращаюсь в в основной код. Сейчас просто отдаю им исходник и они пересобирают весь проект. Все классы в один exe. Мое желание - выделить dll со своим классом что бы она подтягивалась основным приложением. Так не надо весь код перекомпилировать и доступа к моим исходниками у других не будет. Моя либа то будет видна из основного приложения ...но буду ли я видеть классы из общего exeшника... ... |
|||
:
Нравится:
Не нравится:
|
|||
13.01.2018, 21:59 |
|
Как разделить проекты: UI (WPF) и библиотеку (C#, C++)?
|
|||
---|---|---|---|
#18+
pistoletov74, классы (или интерфейсы) из общего exeшника, что использует Ваша либа и сам exeшник, необходимо вынести в отдельный(е) проект(ы)/сборку(и)/пакет(ы). Тогда Вы сможете "выделить dll со своим классом". Но такие вещи в первую очередь надо обсуждать с командой, а не на форуме. P.S.: а исходники следует хранить в системе контроля версий и доступ к ним должен быть у всех Ваших коллег. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.01.2018, 11:52 |
|
Как разделить проекты: UI (WPF) и библиотеку (C#, C++)?
|
|||
---|---|---|---|
#18+
pistoletov74Сейчас просто отдаю им исходник и они пересобирают весь проект. Все классы в один exe. Мое желание - выделить dll со своим классом что бы она подтягивалась основным приложением. Так не надо весь код перекомпилировать и доступа к моим исходниками у других не будет. Моя либа то будет видна из основного приложения ...но буду ли я видеть классы из общего exeшника... Логики нету. Надо длл - делайте. Но желание спрятать код от друих странное само по себе. Поставьте tortoise и топик будет исчерпан. pistoletov74но буду ли я видеть классы из общего exeшника... Циркулярные ссылки туда обратно плохо. Если только потренироваться за счет работодателя, делайте. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.01.2018, 12:10 |
|
Как разделить проекты: UI (WPF) и библиотеку (C#, C++)?
|
|||
---|---|---|---|
#18+
Petro123Циркулярные Как вызвать параметр в dll из exe ... |
|||
:
Нравится:
Не нравится:
|
|||
14.01.2018, 12:15 |
|
Как разделить проекты: UI (WPF) и библиотеку (C#, C++)?
|
|||
---|---|---|---|
#18+
В результате, старый проект, без показаний и обоснований был разбит на 4 дллки и один ехе. ДЛЛки больше кроме этого проекта не использовались. Налицо - оверхед. Удачи! ... |
|||
:
Нравится:
Не нравится:
|
|||
14.01.2018, 12:22 |
|
Как разделить проекты: UI (WPF) и библиотеку (C#, C++)?
|
|||
---|---|---|---|
#18+
Petro123Логики нету. Надо длл - делайте. Но желание спрятать код от друих странное само по себе. Поставьте tortoise и топик будет исчерпан. если бы мог остальных убедить работать с git вообще проблем не было бы. Мой код всегда свежий лежит на гит но им это неудобно..присылайте исходник тогда мы соберем и отдадим заказчику. Вроде и не старперы но вот желания учиться ноль... а зачем tortouise? - Visual Studio Отлично дружит с Git Я хочу только оперативности - внес изменения в свою либу и не ожидая основной сборки либа ушла к заказчику. А не ожидать друг друга . Может есть еще концепты так сказать для "изолированной разработки"..к сожалению приходится и с таким работать. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.01.2018, 12:38 |
|
Как разделить проекты: UI (WPF) и библиотеку (C#, C++)?
|
|||
---|---|---|---|
#18+
Проблема расписана, варианты решения указаны: c# circular reference problem ... |
|||
:
Нравится:
Не нравится:
|
|||
14.01.2018, 12:41 |
|
Как разделить проекты: UI (WPF) и библиотеку (C#, C++)?
|
|||
---|---|---|---|
#18+
pistoletov74Вроде и не старперы но вот желания учиться ноль...да. Тогда изучай длл. Но и помни слово оверхед. pistoletov74зачем tortouise? Просто пример. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.01.2018, 12:46 |
|
Как разделить проекты: UI (WPF) и библиотеку (C#, C++)?
|
|||
---|---|---|---|
#18+
pistoletov74Petro123Логики нету. Надо длл - делайте. Но желание спрятать код от друих странное само по себе. Поставьте tortoise и топик будет исчерпан. если бы мог остальных убедить работать с git вообще проблем не было бы. Мой код всегда свежий лежит на гит но им это неудобно..присылайте исходник тогда мы соберем и отдадим заказчику. Вроде и не старперы но вот желания учиться ноль... а зачем tortouise? - Visual Studio Отлично дружит с Git Я хочу только оперативности - внес изменения в свою либу и не ожидая основной сборки либа ушла к заказчику. А не ожидать друг друга . Может есть еще концепты так сказать для "изолированной разработки"..к сожалению приходится и с таким работать. Оформляете так называемы proposal (предложение), где расписываете текущую реальность с её проблемами, потребности и предлагаете свои варианты решения. Рассылаете письмом, собираете какое-то время комментарии. Потом организуете совещание, где определяете план действий. Если не находите поддержки, то как вариант "изолированной разработки" - это избавляетесь от зависимостей от "классов exeшника", создаёте свой Git репозиторий, свой NuGet репозиторий, и свой CI pipeline в TFS, или Teamcity, или Jenkins. В результате будет так: внесли изменения, push, прошли тесты, билд агент собрал новую версию пакета и опубликовал её, заказчик увидел и обновил. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.01.2018, 12:53 |
|
Как разделить проекты: UI (WPF) и библиотеку (C#, C++)?
|
|||
---|---|---|---|
#18+
pistoletov74Мой код всегда свежий лежит на гит но им это неудобно..присылайте исходник тогда мы соберем и отдадим заказчику.Неудобно что конретно делать? Оформите как NuGet-пакет. Им надо будет нажать Update в Visual Studio и собрать проект. Так им будет удобно? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.01.2018, 12:57 |
|
Как разделить проекты: UI (WPF) и библиотеку (C#, C++)?
|
|||
---|---|---|---|
#18+
skyANApistoletov74Мой код всегда свежий лежит на гит но им это неудобно..присылайте исходник тогда мы соберем и отдадим заказчику.Неудобно что конретно делать? Оформите как NuGet-пакет. Им надо будет нажать Update в Visual Studio и собрать проект. Так им будет удобно? неудобно разбираться с системой контроля версий. Можно конечно NuGet репозиторий поднять где-то. Но думаю вариант присылания dll по почте им будет понятней и удобней. Завтра засяду за разделение. Спасибо всем за совету. Постараюсь к минимум свести обращения за данными к основному коду. Пусть передается параметрами в мой класс все что нужно. парни, в этом проекте странностей очень много..но это будет офтоп если описывать все.Спасибо за советы. Разработка когда все враги-). Заказчик например не дает доступ в корпоративную свою закрытую сеть. Раньше на флешке носили исходники теперь хоть на емейл согласились. Речь не идет о правильном решении как автоматическая сборка и сразу снепшот у заказчика. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.01.2018, 13:05 |
|
Как разделить проекты: UI (WPF) и библиотеку (C#, C++)?
|
|||
---|---|---|---|
#18+
pistoletov74парни, в этом проекте странностей очень много..но это будет офтоп если описывать всеПравильно, от того, что Вы свои претензии будете выссказывать тут, а не на работе, ничего не изменится pistoletov74Спасибо за советыДа не за что. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.01.2018, 13:10 |
|
|
start [/forum/topic.php?fid=20&msg=38123176&tid=1399536]: |
0ms |
get settings: |
9ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
44ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
52ms |
get tp. blocked users: |
1ms |
others: | 299ms |
total: | 432ms |
0 / 0 |