Windows Forms - очень хороший, стабильный и развивается. Низкий порог вхождения. Но только если не надо делать "красиво". А пользователи и бизнес хотят красиво. Если компы типа DevExpress то еще и быстро и красиво.
WP - лучше и в свое время очень инновативно. Если надо красиво и без платных компонентов. Но без них никак тк МС на него позабило и хочет чтобы все перешли на MAUI. Некоторые дизайнерские вещи очень просто на WPF и полная Ж на формах.
- Avalonia UI - с компонентами еще полная Ж. Визуально тоже. Надо кучу пилить напильником чтобы оно выглядело нормально. Если хотите без заморочек, надо брать XPF. https://avaloniaui.net/xpf Там в самом низу цены :)
- MAUI - ну хз :) Для десктопа пока еще не тянет как замена всему выше. В последний раз тестил 1.5 года назад. Лагает + проблема с доступом к классическим windows API.
Flutter - модно и популярно для мобайл. Знакомые делали. Не без проблем, но будут использовать дальше.
Но вообще если у вас что-то простое и среднее, то пишут на чем есть. Те если компания на .Net, то берут MAUI
Если сложное, то пилят под каждую платформу отдельно.
Николай Богданов, с этой области идет попиксельный захват экрана одной железкой :) Соответственно пользователь как правило может изменить масштабирование экрана (и это нормально), но переконфить железку каждый раз никто не будет.
Ну не хочется переписывать код чтобы в один момент понять что технология является кактусом ))
У меня собственно есть потоковые данные и Rx уже используется и в общем работает нормально.
Оттуда и вопрос )
Ну в платформах написаны:
Tizen, Windows Forms, Windows Presentation Framework, Windows Universal Platform, Xamarin Android, Xamarin Forms, Xamarin iOS, Xamarin Mac.
Интересно насколько оно хорошо работает.
Плюс не хочется, как сказано в видео. иметь 2 MVVM фреймворка одновременно.
LiptonOlolo, лучше делать как он, а вообще лучше: Console.WriteLine("X1 = {0}", dblSmth);
Когда вы пишете все в одном WriteLine вы нарушаете SOLID: форматирование и вычисление идет в одной строке.
В качестве примера могу сказать что там тип double и он скорее всего будет форматировать количество точек после запятой чтобы не видеть 4.99999999999... Плюс скорее всего он захочет увидеть результат вырадения как double перед форматированиемс строку.
Сергей Мурин, примеров нет. Я долго искал и нашел только что выше давал. Я обычно делаю скрытый столбец и туда пишу primary key из базы. Потом ставлю тип выделения через
DataGridViewSelectionMode Enum
И делаю в презентере поле SelectedRow/etc, похожий ивент (CurrentCellChanged/итд) тоже кажется есть. Но я без ивентов делал. Выбирал полный объект строки и через по его ИД искал объект в базе и менял его. Те пользователь уже изменил вид, вам нужно только обновить конкретную строку модели и презентера.
Опять же там есть сфокусированная и выбранная строка/тд. Я не уверен, но кажется изменение dataSource сбрасывает выделенную строку, те ее надо будет запоминать и снова ставить.
Ну таски по-умолчанию использую thread pool.
А как отлавливать ненужные объекты в этой штуке я даже не представляю. Живые примеры такого для систем с больше чем 16 процессорами есть? В синхронизацию не упрется?
Провайлер мы включали. Память съедается временными результатами (да, они нужны), просто мы их используем один раз и больше они не нужны. Так что GC в общем-то прав что все удаляет. Просто он делает это слишком манически.
Под "нечего" понимается что Таск, грубо говоря, возвращает дефолтное значение. Хотя в обычном случае делал бы что-то секунд 20.
Ну Console.SetOut это и есть по сути Dependency Injection дляWriteLine. Даешь ему StreamWriter и или файл и он пишет туда. Читается как строка в тесте.
Просто я смотрел, вроде во всяких Moq ничего готового не сделали. Может и не нужно никому...
Михаил: Ну тк получается конечный автомат, а большинство видят их в первый и последний раз в универе... довольно мало применений ) Я вот писал кликеры для игрушек (парсеры тоже, но сейчас все с API), для такого размера городить настоящий ООП не имело смысла.
Те у меня 15 известных состояний, как я туда попал не важно, известные дальнейшие шаги захардкодены, опросил мир и пошел дальше по дереву. Просто и сердито.
Хотя сейчас такая концепция зайдет разве что на raspberry pi, на C# диодиками помигать ))
Дмитрий Ковальский: В switch - можно т.к. в C# нет классического "fallthrough". Грубо говоря в других языках break не обязателен. И goto в C# не позволит вам прыгать куда хочется. Сениор вас похвалит т.к. альтернатива как правило 10 вложенных if-ов которые совершенно невозможно читать.
Тимофей: .Net хранит строки в юникоде. С этим ничего нельзя сделать. Можно перекодировать Encoding.Convert(). Но вам видимо надо писать в файл в cp866. Просто ставьте кодировку в StringWriter.
new StreamWriter(@"file.txt", false, System.Text.Encoding.GetEncoding(866).
globuzer: Ну основа это Markdown и на выходе вы тоже получите MD. Просто смысл Rmd что вы инлайните команды R и они запускаются. Т.е. вы меняете данные, то вам просто нужно запустить knitr заново и все картинки обновятся и тд.
WP - лучше и в свое время очень инновативно. Если надо красиво и без платных компонентов. Но без них никак тк МС на него позабило и хочет чтобы все перешли на MAUI. Некоторые дизайнерские вещи очень просто на WPF и полная Ж на формах.
- Avalonia UI - с компонентами еще полная Ж. Визуально тоже. Надо кучу пилить напильником чтобы оно выглядело нормально. Если хотите без заморочек, надо брать XPF. https://avaloniaui.net/xpf Там в самом низу цены :)
- MAUI - ну хз :) Для десктопа пока еще не тянет как замена всему выше. В последний раз тестил 1.5 года назад. Лагает + проблема с доступом к классическим windows API.
Flutter - модно и популярно для мобайл. Знакомые делали. Не без проблем, но будут использовать дальше.
Но вообще если у вас что-то простое и среднее, то пишут на чем есть. Те если компания на .Net, то берут MAUI
Если сложное, то пилят под каждую платформу отдельно.