Deutsch
Germany.ruФорумы → Архив Досок→ Программирование

Наши проекты

1309  1 2 все
AlexNek патриот15.09.20 12:03
AlexNek
NEW 15.09.20 12:03 

Как то получилось что выкладывается код в ветках для обсуждения.

Поэтому сделал отдельно ветку только для этих целей.

#1 
AlexNek патриот15.09.20 12:19
AlexNek
NEW 15.09.20 12:19 
в ответ AlexNek 15.09.20 12:03, Последний раз изменено 15.09.20 12:29 (AlexNek)

https://foren.germany.ru/showmessage.pl?Number=37041076&Bo...


Ну всё что Вы привели это как-бы "старая технология", в контролах ВПФ для отрисовки используют грубо говоря специальный ХАМЛ с базовыми элементами

Вот начало только нашел

https://www.wpftutorial.net/HowToCreateACustomControl.html

вот пример как неправильно делать свой контрол

https://www.codeproject.com/articles/17830/creating-and-co...

вот правильный путь, но там нет ничего полезного хммм

https://www.c-sharpcorner.com/UploadFile/41e70f/controlscu...

Вот немного больше, но примитивно

https://stackoverflow.com/questions/38842082/create-a-cust...


Всё нужно собирать по крупицам....

#2 
uscheswoi_82 постоялец16.09.20 17:06
NEW 16.09.20 17:06 
в ответ AlexNek 15.09.20 12:19, Последний раз изменено 16.09.20 17:07 (uscheswoi_82)

1)Нужно всё рисовать https://docs.microsoft.com/ru-ru/dotnet/api/system.drawing... и https://docs.microsoft.com/ru-ru/dotnet/api/system.windows...

2)Прежде чем рисовать нужно вычислять высоту и ширину текста https://docs.microsoft.com/ru-ru/dotnet/api/system.drawing..., всё не нужноке отсекать (допустим можно даже при изменение ширины колонки то что не вместилось показывать точки "...")

3)Нужно реализовать свою прокрутку https://www.codeproject.com/Articles/624997/Enhanced-Scrol... и https://gamedev.stackexchange.com/questions/86591/how-to-m...

4)Допилить вот это https://foren.germany.ru/showmessage.pl?Number=37041076&Bo... (drag-drop и resize что на C#)

5)Нужно уметь менять колонки местами https://professorweb.ru/my/csharp/charp_theory/level4/4_6...., т.е. если пункт 4. будет работать при drag drop поменять местами.

6)Не использовать LINQ(?!)

Если я кому-то отвечаю, это не значит что я ему симпатизирую, каждый остаётся при своём мнение
#3 
AlexNek патриот16.09.20 17:37
AlexNek
NEW 16.09.20 17:37 
в ответ uscheswoi_82 16.09.20 17:06, Последний раз изменено 16.09.20 17:49 (AlexNek)

Вы смотрите явно не туда.

При прямой отрисовке у вас не будет ТЕМ, как минимум.

Загрузите демки: DexEx, Exceed, Telerik и прочее и гляньте. У всех именно так как я приводил ссылки


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

Задача довольно сложная поэтому и нет бесплатных решений.

#4 
uscheswoi_82 постоялец16.09.20 18:27
NEW 16.09.20 18:27 
в ответ AlexNek 16.09.20 17:37

Я запустил Xceed WPF, исследовал эту программу спомощью Spy++ https://docs.microsoft.com/ru-ru/visualstudio/debugger/int..., Spy++ не показывает что-то дочерние окна, складывается впечатление что разработчики Xceed WPF полностью рисуют элементы.

Если я кому-то отвечаю, это не значит что я ему симпатизирую, каждый остаётся при своём мнение
#5 
AlexNek патриот16.09.20 19:39
AlexNek
NEW 16.09.20 19:39 
в ответ uscheswoi_82 16.09.20 18:27

для WPF snoop

#6 
AlexNek патриот16.09.20 22:10
AlexNek
NEW 16.09.20 22:10 
в ответ uscheswoi_82 16.09.20 18:27

Вот еще пример почему надо делать правильно.

Для вывода в колонку просто текста

<dxg:GridColumn FieldName="Name" ReadOnly="True"/>

А теперь с изображением. Без какой либо переделки самого грида

<dxg:GridColumn FieldName="Name" ReadOnly="True">
   <dxg:GridColumn.CellTemplate>
       <DataTemplate>
           <StackPanel Orientation="Horizontal">
               <Image Source="{Binding Path=RowData.Row.Image}" Width="16" Height="16"
               <TextBlock Text="{Binding Path=RowData.Row.Name}"/>
           </StackPanel>
      </DataTemplate>
   </dxg:GridColumn.CellTemplate>
</dxg:GridColumn>


Для snoop удобно пользовать сtrl+shift + мышкой возить по элементам

#7 
uscheswoi_82 постоялец16.09.20 23:50
NEW 16.09.20 23:50 
в ответ AlexNek 16.09.20 22:10

Я с net выше 3.5 и с wpf слез, мне купили как-то давным давно Expression Studio и Expression Studio 2, я немного им занимался, потом немного занимался asp net mvc/razor 2017/2019, потом забросил, разочаровало что в Blend убрали 3D. Сейчас на VS 2008 SP1 сижу, он на виртуалке установлен, но Expression Studio не установлен, без Blend всё сложно, в VS2008 в проекте wpf я события не вижу, события ввиде атрибутов нужно в ручную самому в тэги вводить. Я попытаюсь установить ещё раз VS 2019 CE но только чуть позже.

Если я кому-то отвечаю, это не значит что я ему симпатизирую, каждый остаётся при своём мнение
#8 
daduda местный житель17.09.20 08:18
daduda
NEW 17.09.20 08:18 
в ответ uscheswoi_82 16.09.20 23:50

Никогда не видел проектов на дот нете на WPF.


легаси проекты на c# это только winforms, так как они начинались во времена, когда wpf не было..


Специализированные решения для Enterprise Mobility - там Winforms only


Новые проекты - вспомогательные утилитки уровня отобразить данные из Oracle в гриде - тоже только winforms.


Потому что во первых так проще, во вторых обычно шарп программисты с wpf не работали.


Если кто-то найдется "слишком умный" и запилит ынтырпрайс на WPF, то он получит по шапке сверху.


Обычно такой самодеятельностью занимаются фраера - Oracle APEX или C#/WPF вместо повсеместных WinForms.


Результата не будет, деньги кассированы. Потом приходится переписывать на то, что "как у всех".


Зато мультимедийность, да.

#9 
AlexNek патриот17.09.20 13:11
AlexNek
NEW 17.09.20 13:11 
в ответ uscheswoi_82 16.09.20 23:50
но только чуть позже.

ну и замечательно. Тут никто с секундомером не стоит. Делайте только тогда когда самочувствие позволяет.

Не знаю только насколько blend поможет, отдельные части да можно посмотреть/добавить/изменить. Но вот всё в целом у меня не получается хммм

#10 
AlexNek патриот17.09.20 13:17
AlexNek
NEW 17.09.20 13:17 
в ответ daduda 17.09.20 08:18
Никогда не видел проектов на дот нете на WPF.

Странно, но они там есть смущ


Новые проекты - вспомогательные утилитки уровня отобразить данные из Oracle в гриде - тоже только winforms.

Ну когда из деревни в город переберетесь возможно увидите.

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


во вторых обычно шарп программисты с wpf не работали.

тогда сложно назвать их шарп программистами спок

#11 
daduda местный житель17.09.20 13:32
daduda
NEW 17.09.20 13:32 
в ответ AlexNek 17.09.20 13:17

И в деревне и в городе проектов на WPF крайне мало. На indeed. Фактически это мертвая библиотека, которую никто не хочет изучать и использовать.


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


Я спрашивал немцев, почему они до сих пор используют WinForms, а не WPF. Если коротко - WPF ist überflüssig

#12 
AlexNek патриот17.09.20 14:35
AlexNek
NEW 17.09.20 14:35 
в ответ daduda 17.09.20 13:32, Последний раз изменено 17.09.20 15:17 (AlexNek)

https://www.c-sharpcorner.com/article/what-is-the-future-o...

https://blog.submain.com/death-winforms-greatly-exaggerate...

https://medium.com/coderes/why-is-winform-still-not-dead-s...


Открывайте плиз новую тему, а не засирайте эту, если winforms вам еще интересен

Открывайте плиз новую тему, а не засирайте эту

Открывайте плиз новую тему, а не засирайте эту

Открывайте плиз новую тему, а не засирайте эту - Специально для непонятливых

#13 
daduda местный житель17.09.20 15:15
daduda
NEW 17.09.20 15:15 
в ответ AlexNek 17.09.20 14:35, Последний раз изменено 18.09.20 10:52 (daduda)

Пожалуй лучшее обьяснение . И на русском.


И да, что за бред - сегодня не нужно учить WinForms? Простите, но каждый немецкий ацуби гуек начинает делать на формочках Windows. Из этого следует указанное выше - любой шарп программист автоматом знает "уже умерший и никому не нужный" WinForms.


Для изучения и притаскивания в проект новой сущности - WPF нужны веские причины. Какие именно? Порхающие бабочки на формах с 50 полями ввода? Ну, ОК. Ради них уже можно и нужно учить тоже "уже умершую" библиотеку.


Только вот своей "смерти " WinForms оставил кучу софта, который нужно подерживать. И кучу программистов, который его знают.


А вот WPF оставил... Демки с порхающими бабочками.. и больше ничего..


По вашим же ссылкам в комментариях люди говорят, что WPF более мертв, чем WinForms. Они живут не в "немецких деревнях", а в Америках. И там ощущаются проблемы с проектами на WPF.


Кроме того, вы различайте понятия "WPF умер" и "XAML умер".


Последнее неверно, на его базе созданы другие фреймворки, например UNO.


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


В ынтырпрайзе гораздо проще использовать WinForms. И для новых проектов тоже.

Ты посмотри на системные требования UNO для разработки.. Сейчас шарписты плюются от последних версий студии.


А на winforms можно разрабатывать даже без студии в sharpdevelop - его активно применяют в банках - ранорекс. Что гораздо быстрее.


С другой стороны софт на шарпе мы собираемся переписать на джаву изза дженкинса.


Угадайте с одного раза, почему ни моно, ни дотнеткоре не рассматривались как вариант создания кроссплатформенного ПО?


Типичная вакансия человека "со знаниями WPF"


Что как бе намекает на "ненужность" WPF


Такое ощущение, что в этой теме вы будете сами с собой тихо вести беседу.

#14 
MrSanders коренной житель19.09.20 08:54
NEW 19.09.20 08:54 
в ответ daduda 17.09.20 15:15
С другой стороны софт на шарпе мы собираемся переписать на джаву изза дженкинса.

А вот это не понял. Можно развернуть? Что такого вам понадобилось он дженкинса что аж переписывать надо?

#15 
uscheswoi_82 постоялец19.09.20 16:11
NEW 19.09.20 16:11 
в ответ daduda 17.09.20 15:15, Последний раз изменено 19.09.20 18:27 (uscheswoi_82)
Такое ощущение, что в этой теме вы будете сами с собой тихо вести беседу.

WPF себя очень хорошо чувствует в HMI/SCADA - https://habr.com/ru/post/248423/, это прям их нисша, на машинах которые вы ездиете, еду которую вы кушаете, это благодаря HMI/SCADA и WPF, целые города управляются WPF.


Есть такой Add-On: https://marketplace.visualstudio.com/items?itemName=Automa... и такой https://marketplace.visualstudio.com/items?itemName=vs-pub...

Если я кому-то отвечаю, это не значит что я ему симпатизирую, каждый остаётся при своём мнение
#16 
daduda местный житель19.09.20 20:18
daduda
NEW 19.09.20 20:18 
в ответ MrSanders 19.09.20 08:54

Кроссплатформенность дон нета - это миф. Об этом знает любой сеньор. Хочешь уволить неугодного джуна - прикажи ему переписать под линукс софт под Winforms.


Дженкинс он как бе под линукс. Поэтому то, что исполняется в CI/CD должно быть на Java.

#17 
daduda местный житель19.09.20 20:22
daduda
NEW 19.09.20 20:22 
в ответ uscheswoi_82 19.09.20 16:11, Последний раз изменено 20.09.20 07:51 (daduda)

ну дык. Я это и так знал.


WPF - это очень специализированная библиотека (или, если хотите - фреймворк)


Просто непонятна такая "фанатичность" тех немногих, кто ее использует.

#18 
MrSanders коренной житель20.09.20 16:32
NEW 20.09.20 16:32 
в ответ daduda 19.09.20 20:18
Дженкинс он как бе под линукс.

Ну, никто не мешает поставить его и на винду. Или именно под линукс компилировать надо было? Но тогда при чём тут дженкинс, если моно не тянет...

Может все мелкософтовские CLI утилитки просто жутко неудобно использовать? Или вы не знали что Дженкинс и под виндусями установить можно? Или ещё что-то?

Пока что причину "переписывать на Яву чтобы использовать Дженкинс" не понял.

#19 
daduda местный житель20.09.20 18:07
daduda
20.09.20 18:07 
в ответ MrSanders 20.09.20 16:32, Последний раз изменено 20.09.20 18:15 (daduda)

Я все таки рекомендую Вам послать бевербунг на аусбильдунгплатц в какой нибуть немецкий банк.


Там надеюсь тебя обучат Devops-у как части современной разработки.


Хинт: весь стек девопс тулинга эксплуатируется ИСКЛЮЧИТЕЛЬНО по Линукс. Ни один вменяемый банк не будет эксплуатировать это под Windows.


Если в одной из pipeline нужно вызвать тесты верхней части пирамиды - то там нужно вызывать кучу вспомогательных тулзов по подготовке фикстур. И все они должны эксплуатироваться под Линукс - то есть написаны на Питон или Ява.

#20 
1 2 все