• На чем делать UI для Windows в 2022 году?

    @DanyByLuckyCraft
    Посмею выссказать свое мнение:
    1. win form - что то морально, устаревшие на мой взгляд.
    2. WPF - мне заходит (быстро,просто и сердито) - сравнение с MAUI ниже
    3. Немного о MAUI, писал приложение для курсача на нем. Много багов, слишком много багов. По факту это апдейт ксамарина, но с ксамарином, все проще. Большинство багов ксамарина в самом ксамарине пофикшено уже, а в MAUI нет.
    На счет кроссплатформенности. Очень странно работает, меня взбесило, то что такие елементы как EditText (EntryText - вроде), spinner (comboBox - вроде) и другие контролы с вводом на Android и IOS просто не имеют обводки или хоть какого дизайна. Я запускаю приложение и оно просто пустое, нажимаю на место, где должен быть эллемент и о чудо могу вводить туда текст. Пришлось обвести самому с помощью кастомного стиля, но теперь в дестопе у меня обводка по умолчанию + кастомная и они накладывались друг на друга. 10 дней подбирал версию nugate пакета, который бы запустился и под мобилу и под винду (для коннекта к БД). Не понятные приколы со сборкой, винда собирается и все нормально, а мобила нет. Методом тыка нашел место при загрузке странице в onCreated (не помню как функция инициализация страницы называется под MAUI) была проблема, там был создан лист, который через LINQ получал список из БД и сразу заполнялся. Просто разбив эту строку на две, сначало объявить а потом заполнить - мобила начала тоже собираться.

    В общем MAUI мне запомнился методом тыка, проблемами со сборкой мобилы с полностью рабочим кодом. И дикими танцами с бубном. Из минусов так же мало библиотечек кастомных для дизайна, да и в принципе готовых библиотечек. NUGATE некоторые крашаться под мобилой и приходится реально перебирать. Так например я накатывал EFTools делал edmx и после чего удалял tools ибо с ним мобила не собиралась. Версия EF у меня была тоже подобрана и многое другое.

    Поддержка майкрасофта, максимально на отвали отвечает просто все заявки на баги кидает в CHANGELOG и они висят там не скончаемое количество времени, по сотни одинаковых репортов (чекни гитхаб MAUI)

    4. К слову всех данных проблем у Xamarin нет, а ошибки гуглятся и быстрее решаются
    5. Avalonia - сам не использовал, но общаюсь с теми кто использует. По словам и на вид, она проще быстрее и удобнее. Нет всех проблем, описанных выше. MAUI - выглядит, как что то нечто сырое.

    Из минусов и MAUI и Avalonia попробуй найди внятную документацию. Правда с Avalonia стало уже гораздо проще.
    Ответ написан
    Комментировать
  • На чем делать UI для Windows в 2022 году?

    MAUI - это масштабное обновления xamarin-а по сути. ИМХО без поддержки Linux его кроссплатформенность мало чего стоит.
    WPF - это нативная технология при этом с WPF тебе доступны всякие сторонние и родные контролы. В том числе самые новые от WinUI 3.
    UWP превратился в WinUI 3
    Avalonia - кроссплатформа. "Как WPF но лучше", но без поддержки контролов от WPF или WinUI, но есть много свободных вполне неплохих. Да и система стилей достаточно удобная

    Если тебе не нравится Winforms из-за внешнего вида стандартных контролов, то всегда можно использовать сторонние.

    На втором месте наверное AvaloniaUI смущает что на нем каких то больших проектов.

    Есть много разных проектов, в том числе крупных и коммерческих, и от именитых компаний.
    https://avaloniaui.net/Showcase

    Так как программа небольшая я склоняюсь все быстро сделать на Windows Forms, в 2022 году кто то стартует на нем новые проекты?

    Если ты делаешь что-то небольшое и чисто для себя, и ты не умеешь работать с XAML и нет времени на освоение - нет причин не использовать Winforms. Да, он имеет проблемы с производительностью, да он не очень красивый, да винформы не очень легко поддерживать. Но является ли это реальной проблемой для вашего проекта?

    В общем вот мой топ-чарт:
    1. Если дёшево и сердито - Winforms (остальное - если нужен нормальный дизайн)
    2. Если кроссплатформу - Avalonia
    3. Если нужно на телефоны - MAUI (хотя Avalonia уже можно заставить работать на Android)
    4. Если хочется в новый дизайн винды - WinUI 3
    Ответ написан
    6 комментариев
  • На чем делать UI для Windows в 2022 году?

    Morpheus_God
    @Morpheus_God
    Вы выбираете инструмент а не инструмент вас.
    Если считаете, что ваш проект вполне будет жить в рамках WinForms, пишите на нем.
    Если думаете о перспективе роста и ваше ПО вдруг окажется на просторах Linux, то тут смотрите в сторону Avalonia.
    Жаль конечно, что MAUI не реализован на Linux.
    Я бы на UWP ничего не делал.
    Если надо быстро и работало, WinForms, хочется рюшечек, какого то сложного рендера тут WPF.
    Хотите в кроссплатформу и Linux - Avalonia.
    Ответ написан
    Комментировать
  • Какие плюсы в задержке выплаты зп самой компании?

    opium
    @opium
    Просто люблю качественно работать
    Никакой
    Работал в большом количестве организаций, видел с добрую сотню задержек, ни разу причиной не была какая то выгода работодателя, обычно это либо форс мажор, человеческая ошибка или нет денег, эти причины наверно покрывают 95 процентов задержек
    Ответ написан
    Комментировать
  • Где выгоднее жить программисту, в Москве или Новосибирске?

    DmitriyEntelis
    @DmitriyEntelis
    Думаю за деньги
    Поддержу Максим
    Если устраиваться fulltime в офис - то только Москва.
    Да, аренда дороже, квартира с приличным ремонтом в паре минут от метро будет стоить ~30-35, но карьерный рост достаточно быстр и даже если Вы просядете в деньгах в первые полгода, потом это все окупится.

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

    Я например люблю вкусно пожрать.
    В моем родном городе мест где вкусно кормят штук 5 - ходить в них по кругу надоедает крайне быстро.
    В МСК они открываются и закрываются быстрее чем я успеваю в них ходить :)

    Театры, кино, выставки, профильные конференции итд - всего море.
    Ответ написан
    Комментировать
  • Можно-ли скачать видео с YouTube используя DevTools?

    Есть такая «секретная» ссылка: www.youtube.com/get_video_info?video_id=XXXXXX
    Вместо XXXXXX подставьте хэш видео, который в ссылке на ролик, типа youtu.be/BWCiWZtrWXU после слеша.

    По этой (первой) ссылке вернутся URL-encoded данные. Распакуйте их и возьмите параметр url_encoded_fmt_stream_map. Его значение опять надо распаковать как URL-параметры. И из результата вытащить параметр url – это ссылка на единый скачивабельный видеофайл.

    Например, в консоли браузера:
    function getUrlParams(search) {
        let hashes = search.slice(search.indexOf('?') + 1).split('&')
        let params = {}
        hashes.map(hash => {
            let [key, val] = hash.split('=')
            params[key] = decodeURIComponent(val)
        })
    
        return params
    }
    var s = '------'; // здесь длиннющая строка из ответа /get_video_info
    var a = getUrlParams(s);
    var b = getUrlParams(a.url_encoded_fmt_stream_map);
    console.log(b.url); // эту ссылку открываем в браузере - это скачиваемый видеофайл


    Очень надеюсь, что вы покопаетесь в этих данных более подробно, разберётесь, как получать прямые ссылки на скачиваемые файлы во всех форматах и размерах, которые предлагает YouTube, и напишете короткий материал на Хабр по результатам, а также опубликуете gist с рабочим кодом для консоли браузера.
    Ответ написан
    3 комментария
  • ASP .NET Core база данных в linux?

    petermzg
    @petermzg
    Самый лучший программист
    Так все варианты приемлемы, применяйте тот, что нравится:
    1. SQL Server 2017/2019 на linux
    2. Удаленно к Azure SQL Database, или иным подобным
    3. Postgresql, Oracle, MySQL и т.д.
    Ответ написан
    3 комментария
  • C# код каких проектов или пакетов посмотреть для развития?

    @asdz
    Вот здесь можешь посмотреть и что-то найти Примеры кода от разработчиков
    Еще тут: DDD.Enterprise.Example
    eShopOnWeb
    eShopOnContainers
    в гитхабе поискать
    Ответ написан
    Комментировать
  • Учить jQuery в 2019?

    In4in
    @In4in
    °•× JavaScript Developer ^_^ ו°
    Альтернатива сейчас это фреймворки по типу React, Angular, Vue
    А отзывы такие вследствие того, что большинство методов jQuery уже реализованы как нативные.

    Тем не менее, jQuery все еще лидер как самая простая и документированная либа для работы с DOM. И никуда она не денется..
    Ответ написан
    2 комментария
  • C# стоимость обработки исключений?

    mindtester
    @mindtester Куратор тега C#
    http://iczin.su/hexagram_48
    в общем случае, все сводится к стройности логики обработки ошибок. возможно вам стоит прочитать эту статью
    https://habr.com/ru/post/339606/
    у автора ряд публикаций, в тч он достаточно активно пишет и о C#
    https://habr.com/ru/users/marshinov/posts/
    Ответ написан
    1 комментарий
  • С# стоимость приведения типа?

    @kttotto
    пофиг на чем писать
    Для ссылочных типов, в рантайме, это почти ничего не стоит. Основная проверка привидения происходит на стадии компиляции.
    По сути при таком приведении нет необходимости создавать новый объект, перемещать его в памяти. Просто ссылка entity, теперь будет указывать на объект MyType, но доступ к интерфейсу будет другой.
    В рантайме можно упасть с ошибкой привидения, если Вы в object положили MyType1, а привести пытаетесь к MyType2, интерфейсы совпадать не будут и ясно, что вызывать будет нечего.

    PS: Посмотрел поиском, это все написано в MSDN
    Операция приведения между ссылочными типами не меняет тип времени выполнения базового объекта; изменяется только тип значения, который используется в качестве ссылки на этот объект.
    Ответ написан
    6 комментариев
  • С# стоимость приведения типа?

    AlexanderYudakov
    @AlexanderYudakov
    C#, 1С, Android, TypeScript
    Говорят, стоимость высокая.
    https://switch-case.ru/73228064
    Ответ написан
    2 комментария
  • C# передать параметр в Win32Api функцию?

    @none7
    Во первых эти массивы должны размещаться в самой структуре, а не управляемые ссылки на них. Странно уже то, что маршалинг исключение не выплюнул. Должно быть как то так:
    struct SET_DISK_ATTRIBUTES
    {
        public uint Version;
        public bool Persist;
        [MarshalAs(UnmanagedType.ByValArray, SizeConst = 3)]
        public byte[] Reserved1;
        public ulong Attributes;
        public ulong AttributesMask;
        [MarshalAs(UnmanagedType.ByValArray, SizeConst = 4)]
        public uint[] Reserved2;
    };

    Во вторых Вы забыли скопировать структуру в память и передаете функции DeviceIoControl не инициализированный мусор. Так же можно добавить перегруженный метод DeviceIoControl принимающий ref SET_DISK_ATTRIBUTES вместо IntPtr и не возится с динамической памятью. Пока структура является локальной переменной синхронного метода, GC её никуда не утащит.
    Ответ написан
    Комментировать
  • Как транслировать потокое видео с экрана компьютера на веб-страницу?

    ayazer
    @ayazer
    Sr. Software Engineer
    вы переизобрели MJPEG. он используется во всяких системах видеонаблюдения т.к. из-за минимального кол-ва сжатия дает хорошие стопкадры. главный недостаток - по той-же причине потребляет огромное кол-во трафика (реально огромное, видео на 5-10 минут с фпс 20+ в этом формате будет занимать пару гб). Выше в комментариях советовали использвать вебртс. Так вот, на всякий случай - он тут нахрен не нужен. Но обратить внимание на H.264 который там используется можно. Что видео в mjpeg, что h.264 можно просто и без лишних телодвижений открыть в браузере как стрим. А нативная поддержка видеокодека в браузере будет работать быстрее чем рендер кадров джаваскриптом.
    Ответ написан
    4 комментария
  • Как транслировать потокое видео с экрана компьютера на веб-страницу?

    @mefutu
    Задумывался об этой теме.
    Для начала вам правильно подсказывают про webrtc- проект с открытым исходным кодом, который разработала компания Google..
    Потоковое видео удобней при условии что, пользователей будет много. А вот насколько сильно упадет ваш костыль с jpeg - неизвестно, особенно если вам вдруг резко потребуется увеличить FPS/качество картинки...

    P.s Стабильнее видео передавать через webrtc, а вот уже обрабатывать нажатия клавиш посредством обычных запрос/ответ.
    Ответ написан
    Комментировать