Re[6]: .NET Core под Windows
От: okon  
Дата: 07.05.19 15:13
Оценка:
O>>что значит WPF поддерживается .net core, при этом работает только под Windows.
Q>Это значит, что хоть API и доступен на всех платформах, только реализация немного разная. А именно, выглядит как «throw new NotSupportedException();» на платформах, отличных от Windows.
А есть способ данный момент обеспечить WPF приложению нормальное завершение, например выдать сообщение пользователю что "В текущей ОС не поддерживается", вместо аварийного завершения.
И насколько долго оно планируется быть NotSupported интересно под Linux,MacOS.
”Жить стало лучше... но противнее. Люди которые ставят точку после слова лучше становятся сторонниками Путина, наши же сторонники делают акцент на слове противнее ( ложь, воровство, лицемерие, вражда )." (с) Борис Немцов
Re[7]: WPF
От: Qbit86 Кипр
Дата: 07.05.19 15:40
Оценка:
Здравствуйте, okon, Вы писали:

O>А есть способ данный момент обеспечить WPF приложению нормальное завершение, например выдать сообщение пользователю что "В текущей ОС не поддерживается", вместо аварийного завершения.


Я не ставил v3.0.0-preview5, не уверен даже, что на данный момент там была заявлена поддержка WPF. Помню только, что её обещали к релизу Core 3.0 осенью. Но API для проверки текущей OS есть.

O>И насколько долго оно планируется быть NotSupported интересно под Linux,MacOS.


WPF сильно завязан на Direct3D; так что с высокой вероятностью оно таким NotSupported будет всегда.
Глаза у меня добрые, но рубашка — смирительная!
Re[7]: .NET Core под Windows
От: Ночной Смотрящий Россия  
Дата: 07.05.19 16:40
Оценка:
Здравствуйте, okon, Вы писали:

O>А есть способ данный момент обеспечить WPF приложению нормальное завершение, например выдать сообщение пользователю что "В текущей ОС не поддерживается", вместо аварийного завершения.


Да.

O>И насколько долго оно планируется быть NotSupported интересно под Linux,MacOS.


Скорее всего навсегда.
... << RSDN@Home 1.3.17 alpha 5 rev. 62>>
Re[7]: Introducing .NET 5
От: Ночной Смотрящий Россия  
Дата: 07.05.19 16:40
Оценка:
Здравствуйте, okon, Вы писали:

MD>>WPF имеет более независимую от ОС вариацию, UWP. И вот она как раз уже не завязана на Win32 API и может быть портирована по сути автоматически на любое железо где есть .NET

O>Возможно, но мне казалось наоборот UWP более узкое применение чем WPF

Так и есть. Но есть https://github.com/Microsoft/xaml-standard, вот он кроссплатформенный.
... << RSDN@Home 1.3.17 alpha 5 rev. 62>>
Re[2]: Introducing .NET 5
От: Ночной Смотрящий Россия  
Дата: 07.05.19 16:43
Оценка: +3
Здравствуйте, BlackEric, Вы писали:

BE>Вывод из прочитанного: на .Net Core ничего переводить не спешим.


Странный вывод. Ты если еще не понял — FW мертв уже официально. Все, финита ля комедиа. Оставаться на мертвом фреймворке, который даже компилятор шарпа поддерживает не полностью? Ну, у каждого свои причуды.

BE> Ждем .net 5.


Зачем?

BE> Вот только не понятно что будет с .Net Standard.


Пока эволюционирует. Но версия 2.1 уже в FW не поддерживается, что характерно.
... << RSDN@Home 1.3.17 alpha 5 rev. 62>>
Re[6]: Introducing .NET 5
От: Ночной Смотрящий Россия  
Дата: 07.05.19 16:47
Оценка:
Здравствуйте, okon, Вы писали:

O>Так разве Wpf/Winforms поддерживаются в .Core3.0?


Да.

O>Просто не совсем понимаю что значит поддерживаются в .net core, но запускаются только под Windows.


А я не совсем понимаю что тебя в этом смущает.
... << RSDN@Home 1.3.17 alpha 5 rev. 62>>
Re[8]: WPF
От: Ночной Смотрящий Россия  
Дата: 07.05.19 18:07
Оценка:
Здравствуйте, Qbit86, Вы писали:

Q>WPF сильно завязан на Direct3D


Не завязан. Более того, ранние превьюшные версии работали без него. Проблема там в другом.
... << RSDN@Home 1.3.17 alpha 5 rev. 62>>
Re: Introducing .NET 5
От: VladCore  
Дата: 07.05.19 20:10
Оценка:
Здравствуйте, Jack128, Вы писали:

J>Всерьез взялись за AOT.


ВзяЛИСЬ? Кто? АОТ в моно давно. В core он есть?
Re: Introducing .NET 5
От: Masterspline  
Дата: 08.05.19 05:26
Оценка:
J>https://devblogs.microsoft.com/dotnet/introducing-net-5/

J>Основное:

J>Моно и коре унифицируют, оба будут юзать единый corefx.
J>Всерьез взялись за AOT.

.NET Core пошел по пути, которым Kotlin (JRE, Native, JS) идет уже несколько лет. Суть в том, чтобы иметь на уровне исходников частично общую кодовую базу для разных устройств (например, iOS, Android и бэкенд). GUI, разумеется будет везде свой.

Лично я больше доверяю JetBrains.
Re[3]: Introducing .NET 5
От: Kolesiki  
Дата: 08.05.19 14:18
Оценка: +1
Здравствуйте, karbofos42, Вы писали:

K>Здравствуйте, Kolesiki, Вы писали:

K>>Зачем вам сегодня переносимость? Кому, что и куда переносить? ЧТО переносить и чего нет в других платформах?

K>Под каждую платформу свою гениальную бизнес-логику переписывать отдельно на "правильном" языке?


Зависит от того, что ты пишешь и насколько твои трудозатраты на остальных платформах окупятся твоей компании!
В классе клиент-серверного ПО вообще никаких проблем нет: пишем простой вендосервис, rich-клиента под венду + пара web-страниц ограниченного клиента для ВСЕХ остальных мыслимых железяк.
Самостоятельное десктоп-приложение — я уже писал, оно по-любому будет КРИВЫМ под Макось, ГЕМОРОЙНЫМ под Линупс и незапускабельным под мобилы.

Чебурашки наивно полагают, что если в нескольких ОС есть общие вещи — типа файлы, кнопки, сокеты, окна... , то типа можно напрячься и сделать Один Большой Фрэймворк, на котором можно делать ВСЁ. Глупая ошибка зелёных подаванов! Дьявол кроется в мелочах — во всех этих tray, system-wide menu, Memory Mapped Files, task bar animation...
Так что этот говнофрэймворк .NET Core (как пример) будет лишь Наибольшим Общим Делителем всех платформ. А это уже минус юзабилити и всем тем милым сердцу уникальным штучкам, которые существуют в каждой ОС. Я могу стерпеть, если у меня не будет прогресс-бара на таск-бар кнопке, но если другой чел сделает нативное вендо-приложение, где он есть, я не буду долго размышлять: я всегда предпочту нативное ПО "универсальному". ПОТОМУ ЧТО Я — ЮЗЕР! Меня не колышат ТВОИ проблемы как программиста, что ты типа хочешь уменьшить свои личные затраты, написав "один раз для всего" — не выйдет! Любой нативный разработчик заткнёт за пояс твои программы, потому что будет использовать возможности родной ОС во весь рост. Кратко, "универсальным фрэймворком" ты уменьшаешь лишь личные затраты (до которых юзеру пофиг), автоматом проигрывая любому нативному ПО и без какой-либо гарантии успешности твоего ПО на любой из платформ. Ты готов играть в "многоплатформенность" по таким правилам?
Re[3]: Introducing .NET 5
От: Kolesiki  
Дата: 08.05.19 14:34
Оценка: -3
Здравствуйте, Ночной Смотрящий, Вы писали:

НС>Здравствуйте, BlackEric, Вы писали:

BE>>Вывод из прочитанного: на .Net Core ничего переводить не спешим.

НС>Странный вывод. Ты если еще не понял — FW мертв уже официально.


Не смеши мой дисковод! Нашёл кого хоронить... FW существует СЕМНАДЦАТЬ ЛЕТ, за которые написана куча ПО и создана полная инфраструктура.
То, что сонные клоуны очнулись и удивились, что их "многоплатформенный .NET" работает только на венде — это их проблемы, у самих .NET-программистов с этим проблем нет и не было! Вот ключевой момент, почему "официальные похороны FW" — тупой фарс мелкософта, не менее смешной, чем похороны Win7

У Core есть только один вариант стать "будущим": если завтра выкатят комплект "VS + Core", которые будут 1:1 компилять всё "старое" ПО под FW, включая WPF, WinForms и даже консоль. Не будет полной совместимости — сразу посылаются в зад. Нам не нужны обещания, какие-то кривые-сырые бетты, Кошмарин (прости господи) и прочая левота. У нас есть клиенты (далёкие от ИТ люди) и им фиолетовы микрософтовы "рассуждения в воздухе" о многоплатформенности, тырнете вещей... у них есть венда и всё должно работать. На игры в Core "поработай бесплатным бета-тестером микрософта" ресурсов нет, желания — тем более. Ну и чо вы тут хороните?? смешные вы, крестьянские дети.
Re[4]: Introducing .NET 5
От: Ночной Смотрящий Россия  
Дата: 08.05.19 14:44
Оценка:
Здравствуйте, Kolesiki, Вы писали:

K>Не смеши мой дисковод! Нашёл кого хоронить... FW существует СЕМНАДЦАТЬ ЛЕТ, за которые написана куча ПО и создана полная инфраструктура.


Тем не менее это факт.

K>У Core есть только один вариант стать "будущим": если завтра выкатят комплект "VS + Core", которые будут 1:1 компилять всё "старое" ПО под FW, включая WPF, WinForms и даже консоль.


Оно примерно так в 3.0 и будет.

K> Не будет полной совместимости — сразу посылаются в зад.


Ну посылай, толку то. Будешь сидеть на старых фреймворках и либах. Тебе даже C#8 в полном объеме не будет доступен.
... << RSDN@Home 1.3.17 alpha 5 rev. 62>>
Re[7]: Introducing .NET 5
От: Kolesiki  
Дата: 08.05.19 14:52
Оценка: -4
Здравствуйте, okon, Вы писали:

O>Возможно, но мне казалось наоборот UWP более узкое применение чем WPF, т.е. UWP это только Windows 10 + Windows 10 Mobile.


Молодец, отметил ключевой момент! Игры мелкософта с Core не могут проходить без настырного просовывания во все щели УбогоДесятки. Из-за этой поганой и разрушительной политики сама некрософт будет разрываться между "никто не мобирается писать сугубо под Win10" и "ну когда же мы засунем всем телеметрию по самые гланды и забудем про Win7!". И внутренние программисты M$ тоже прекрасно это понимают — кто как не прогеры лучше всех осведомлены о полном провале Win10 и вполне стабильном "мире Windows.NET".

Повангую: в Core ещё года три минимум будут портировать ГУЙню. Учитывая криворукость и низкопробность их индусов, портируют только WPF, да и тот с ошибками. А между прочим, WinForms никуда своих позиций не сдавал! Все эти три года нас будут отчаянно убеждать, что "время перелазить на Core". ...и тыкать во всякие Кошмарúны. Всё это будет проходить под продолжающимися попытками M$ похоронить себя под обломками EpicFail-10, на которую потрачено уже больше, чем на написание отдельной ОС.

Я не ретроград, я люблю "всё новое" но как программист с ответственностью перед клиентом (привет, хипстеры от .NET! ), обязан чётко понимать все риски перехода куда-либо, ОСОБЕННО в таких фундаментальных вещах, как целая платформа. Нет никакой совместимости Core и FW — это сказки. Как и сказки о "мы ща, мы все платформы накроем!" — пупок развяжется. Так что стратегия ближайших 5-10 лет: Win7, FW, WinForms/WPF. Даже MS SQL, позорно отхаченный под Win10-only, будет отрицательно влиять на продажи. Ох, мрачное же будущее ждёт этих танцоров!
Re[5]: Introducing .NET 5
От: Kolesiki  
Дата: 08.05.19 15:32
Оценка:
Здравствуйте, Ночной Смотрящий, Вы писали:

НС>Здравствуйте, Kolesiki, Вы писали:

K>>Не смеши мой дисковод! Нашёл кого хоронить... FW существует СЕМНАДЦАТЬ ЛЕТ, за которые написана куча ПО и создана полная инфраструктура.

НС>Тем не менее это факт.


Есть серьёзные события, коренным образом влияющие на индустрию, а есть разряда "Молдавия опять взвинтила цены на укроп". Вот похороны FW — это из поледнего.
Даже если MS выгонит вообще всех из отдела разработки FW, он у нас уже есть. Что может сделать убогая M$ с моими инструментами? Да ничего, как писал — так и буду писать! И тысячи других прогеров тоже не хотят танцевать на граблях Core, работая бесплатными бета-тестерами и теряя деньги на клиентах.

K>>У Core есть только один вариант стать "будущим": если завтра выкатят комплект "VS + Core", которые будут 1:1 компилять всё "старое" ПО под FW, включая WPF, WinForms и даже консоль.


НС>Оно примерно так в 3.0 и будет.


БУДЕТ, но не сегодня же! А переходить просят уже сейчас — "вот, смотрите, мы уже сканпеляли хелловорлд!". Извини, даже не смешно. Вот когда будет полная поддержка (хотя бы WPF) — тогда можно начать разговор (не переход!) о том, "а нафик нам вообще обздались ваши идеи?".
Технологии в мире ИТ — они ж не только "смотрите, ЧТО мы изобрели!" (напр. Core), но и "а какой профит моему бизнесу от того, что мои прогеры будут тратить время на портирование ваше Core?". Можно им показывать плакаты с IoT, ML и прочей требухой, но если у бизнеса нет потребности в этой хипстоте, то и сам переход под Core как бы чуть менее, чем ненужен.

K>> Не будет полной совместимости — сразу посылаются в зад.


НС>Ну посылай, толку то. Будешь сидеть на старых фреймворках и либах.


Чем они "старые", если в них есть всё и это "всё" работает? Я ж говорю: 17 лет, Карл! Это не просто года, это развитый, стабильный фрэймворк, работая с которым мне не нужно больше думать о примитивном нижнем слое — я просто пишу бизнес-логику.

НС> Тебе даже C#8 в полном объеме не будет доступен.


А я прямо расстроился! Люди на Жабе пишут — и ничё, не тошнит! (хотя я её презрел даже после "примитивного" C# 2.0) У нас уже всё есть, остаётся только писать! Что M$ будет делать с языком — я уже убедился на примере маразматических not-null типах, так что даже если M$ ограничит улучшения C# платформой Core, я не сильно расстроюсь. Но учитывая, что прямо сейчас я сижу в VS2019 с C# 8.0, вряд ли M$ пойдёт на такой безумный шаг. Ну и не сочтите за анекдот, есть Nemerle — я до сих пор считаю, что у него есть перспективы. У него плохо с инструментами, зато отлично с развитием. "Будут зажимать C# — обидимся и уйдём на Немерлю!".
Re[6]: Introducing .NET 5
От: Ночной Смотрящий Россия  
Дата: 08.05.19 18:40
Оценка: 1 (1)
Здравствуйте, Kolesiki, Вы писали:

НС>>Тем не менее это факт.

K>Есть серьёзные события, коренным образом влияющие на индустрию, а есть разряда "Молдавия опять взвинтила цены на укроп". Вот похороны FW — это из поледнего.

Тем не менее это факт.

K>>>У Core есть только один вариант стать "будущим": если завтра выкатят комплект "VS + Core", которые будут 1:1 компилять всё "старое" ПО под FW, включая WPF, WinForms и даже консоль.

НС>>Оно примерно так в 3.0 и будет.
K>БУДЕТ, но не сегодня же!

В сентябре.

K> А переходить просят уже сейчас — "вот, смотрите, мы уже сканпеляли хелловорлд!". Извини, даже не смешно. Вот когда будет полная поддержка (хотя бы WPF)


Да пофик на WPF, десктоп давно и планомерно дохнет.

K>Технологии в мире ИТ — они ж не только "смотрите, ЧТО мы изобрели!" (напр. Core), но и "а какой профит моему бизнесу от того, что мои прогеры будут тратить время на портирование ваше Core?".


Профит очень простой. ВМ в ажуре на линуксе стоит в 2-4 раза дешевле винды, а компьют в большинстве проектов самая крупная часть трат на инфраструктуру.

НС>>Ну посылай, толку то. Будешь сидеть на старых фреймворках и либах.

K>Чем они "старые", если в них есть всё и это "всё" работает?

Тем что индустрия не стоит на месте.

K> Я ж говорю: 17 лет, Карл! Это не просто года, это развитый, стабильный фрэймворк, работая с которым мне не нужно больше думать о примитивном нижнем слое — я просто пишу бизнес-логику.


Ну пиши, чо. Тебя ж никто не заставляет. Некоторые на Коболе до сих пор пишут.

НС>> Тебе даже C#8 в полном объеме не будет доступен.

K>А я прямо расстроился! Люди на Жабе пишут — и ничё, не тошнит!

Если б не тошнило, никто бы не писал на Котлине и Скале. Да и сама Джава на месте тоже не стоит.
... << RSDN@Home 1.3.17 alpha 5 rev. 62>>
Re[4]: Introducing .NET 5
От: Masterspline  
Дата: 08.05.19 19:29
Оценка: -1
K>Чебурашки наивно полагают, что если в нескольких ОС есть общие вещи — типа файлы, кнопки, сокеты, окна... , то типа можно напрячься и сделать Один Большой Фрэймворк, на котором можно делать ВСЁ. Глупая ошибка зелёных подаванов! Дьявол кроется в мелочах — во всех этих tray, system-wide menu, Memory Mapped Files, task bar animation...

GUI кроссплатформенный для iOS, MacOS, Win, Linux никто делать не собирается, он будет свой под каждую платформу. А вот запихать общую для бекэнда и клиента часть логики в кроссплатформенную библиотеку, чтобы не дублировать, а использовать единую кодовую базу — именно для этого и придумали Kotlin. А теперь и .NET Core 5 туда же пытается пролезть. Вот только .NET пытается пропихнуть прослойку в виде Xamarin, там где напрямую он не работает, а Kotlin такие вещи реализует через Kotlin Native.
Re[4]: Introducing .NET 5
От: karbofos42 Россия  
Дата: 08.05.19 19:51
Оценка: +1
Здравствуйте, Kolesiki, Вы писали:

K>Здравствуйте, karbofos42, Вы писали:


K>>Здравствуйте, Kolesiki, Вы писали:

K>>>Зачем вам сегодня переносимость? Кому, что и куда переносить? ЧТО переносить и чего нет в других платформах?

K>>Под каждую платформу свою гениальную бизнес-логику переписывать отдельно на "правильном" языке?


K>Зависит от того, что ты пишешь и насколько твои трудозатраты на остальных платформах окупятся твоей компании!


Да что ни пиши, либо один и тот же функционал пишешь один раз или дважды. Скорее всего это будут две разные команды и вот у одного и того же функционала две версии со своими багами и привет удвоенной стоимости поддержки и т.п.

K>В классе клиент-серверного ПО вообще никаких проблем нет: пишем простой вендосервис, rich-клиента под венду + пара web-страниц ограниченного клиента для ВСЕХ остальных мыслимых железяк.


чего это под винду вдруг жирный клиент, а под какой-нибудь мак или андроид — странички?

K>Самостоятельное десктоп-приложение — я уже писал, оно по-любому будет КРИВЫМ под Макось, ГЕМОРОЙНЫМ под Линупс и незапускабельным под мобилы.


Из натива нужны View и ViewModel, доступ к данным, бизнес-логика и всё остальное прочее вполне себе может быть кроссплатформенным и никто это не заметит.

K>Чебурашки наивно полагают, что если в нескольких ОС есть общие вещи — типа файлы, кнопки, сокеты, окна... , то типа можно напрячься и сделать Один Большой Фрэймворк, на котором можно делать ВСЁ. Глупая ошибка зелёных подаванов! Дьявол кроется в мелочах — во всех этих tray, system-wide menu, Memory Mapped Files, task bar animation...


трей, меню, таск бары — это всё View и я про него ничего не говорил. Кроссплатформить UI для прикладного ПО — отвратительный подход.
Чем отличается получение данных от какой-нибудь БД в разных ОС? Подключить нужного провайдера и всё. Запросы те же, данные те же, а то и вовсе всё ORM разрулит.

K>Так что этот говнофрэймворк .NET Core (как пример) будет лишь Наибольшим Общим Делителем всех платформ. А это уже минус юзабилити и всем тем милым сердцу уникальным штучкам, которые существуют в каждой ОС. Я могу стерпеть, если у меня не будет прогресс-бара на таск-бар кнопке, но если другой чел сделает нативное вендо-приложение, где он есть, я не буду долго размышлять: я всегда предпочту нативное ПО "универсальному".


Открываю тайну: можно написать кроссплатформенный метод "СделатьВсёКруто", написать его один раз и потом баги в нём править один раз. А вот большую красную кнопку, по которой вызывается этот метод, сделать нативной.

K>ПОТОМУ ЧТО Я — ЮЗЕР! Меня не колышат ТВОИ проблемы как программиста, что ты типа хочешь уменьшить свои личные затраты, написав "один раз для всего" — не выйдет! Любой нативный разработчик заткнёт за пояс твои программы, потому что будет использовать возможности родной ОС во весь рост.


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

K>Кратко, "универсальным фрэймворком" ты уменьшаешь лишь личные затраты (до которых юзеру пофиг), автоматом проигрывая любому нативному ПО и без какой-либо гарантии успешности твоего ПО на любой из платформ. Ты готов играть в "многоплатформенность" по таким правилам?


У нас есть нативный IE и кроссплатформенный Chromium. Нормальный пример?
Или игра какая-нибудь на каком-нибудь OpenGL. Что там нативщик такого может сделать, чего нельзя на кроссплатформе?
Re: .NET 4.8 vs. Core 2.2
От: Qbit86 Кипр
Дата: 08.05.19 21:15
Оценка:
Поставил недавно вышедший .NET Framework 4.8, чтобы проверить, реализованы ли там эффективные API форматирования, уже год доступные в Core 2.1:
Span<char> stackSpan = stackalloc char[] { 'H', 'e', 'l', 'l', 'o', ' ', 'w', 'o', 'r', 'l', 'd', '!' };

// bool DateTime.TryFormat(Span<char> destination, out int charsWritten, ...)
DateTime.Now.TryFormat(stackSpan.Slice(6), out int _, "yyyy");

// void TextWriter.WriteLine(ReadOnlySpan<char> buffer)
Console.Out.WriteLine(stackSpan); // Hello 2019d!


Нет.
Глаза у меня добрые, но рубашка — смирительная!
Отредактировано 08.05.2019 21:16 Qbit86 . Предыдущая версия .
Re[2]: .NET 4.8 vs. Core 2.2
От: Aquilaware  
Дата: 12.05.19 11:57
Оценка: +1
Здравствуйте, Qbit86, Вы писали:

Q>DateTime.Now.TryFormat(stackSpan.Slice(6), out int _, "yyyy");


Хорошо что TryWriteLine пока нет. Имхо, угандошенный интерфейс.

(Видимо исключения в детском саду, больном корью, еще не проходили, но всё ещё впереди )
Re[3]: Исключения
От: Qbit86 Кипр
Дата: 12.05.19 12:03
Оценка: +2
Здравствуйте, Aquilaware, Вы писали:

A>Имхо, угандошенный интерфейс.

A>(Видимо исключения в детском саду, больном корью, еще не проходили, но всё ещё впереди :))) )

Даже уже в детском саду рассказывают, что исключения не надо использовать для normal control flow.
Глаза у меня добрые, но рубашка — смирительная!
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.