За ворохом больших (и крутых) фич, не увидели маленькую, но полезную фичу (которой мне лично всегда не хватало), доступна в третьем превью (компилятор кому не терпелось, можно было собрать чуть раньше ):
public class Check
{
public static void That(bool condition, [CallerArgumentExpression("condition")] string? conditionText = null)
{
if (!condition) throw new InvalidOperationException(conditionText);
}
}
Тот неловкий момент, когда ты с обозом(FW4.8) застрял в Голенищево, а твои лошади убежали вперёд "Мы уже в Туле!". Долбоклюи, звездуйте назад — мы здесь!!!
Здравствуйте, vaa, Вы писали:
vaa>Здравствуйте, Serginio1, Вы писали:
vaa>уже писали про новую команду dotnet format? vaa>круть. как у раста теперь единый стиль форматирования.
.NET 6 and what it means to you
Visual Studio 2022 & C# 10
.NET MAUI
Blazor Hybrid Apps with .NET MAUI
ASP.NET All the Things — Blazor, ASP.NET Core & Minimal APIs
WinUI 3 & MacCatalyst
Migration & Modernization – Upgrade Assistants & Code Sharing
Краткие сведения
В .NET 6 мы внесли несколько улучшений в файл ввода-вывода:
Асинхронный ввод-вывод файлов теперь может быть в несколько раз быстрее и без выделения ресурсов.
Асинхронный ввод-вывод файлов в Windows больше не использует блокирующие API.
Были введены новые API без сохранения состояния и на основе смещения для потокобезопасного ввода — вывода файлов. Некоторые перегрузки принимают несколько буферов одновременно, что позволяет сократить количество системных вызовов.
Были введены новые API для указания размера предварительного распределения файлов. С их помощью можно повысить как производительность, так и надежность.
FileStream.Position больше не синхронизируется с ОС (она отслеживается только в памяти).
FileStream.Position обновляется после завершения асинхронной операции, но не до ее запуска.
Пользователи могут запросить режим совместимости .NET 5 с помощью файла конфигурации или переменной среды.
FileStream поведение для крайних случаев было выровнено как для Windows, так и для Unix.
и солнце б утром не вставало, когда бы не было меня
Microsoft is reversing a decision to remove a key feature from its upcoming .NET 6 release, after a public outcry from the open source community. Microsoft angered the .NET open source community earlier this week by removing a key part of Hot Reload in the upcoming release of .NET 6, a feature that allows developers to modify source code while an app is running and immediately see the results.
It’s a feature many had been looking forward to using in Visual Studio Code and across multiple platforms, until Microsoft made a controversial last-minute decision to lock it to Visual Studio 2022 which is a mostly paid product that’s limited to Windows. Sources at Microsoft, speaking on condition of anonymity, told The Verge that the last-minute change was made by Julia Liuson, the head of Microsoft’s developer division, and was a business-focused move.
Здравствуйте, VladCore, Вы писали:
J>>Ну наконец. Здравствуй String Interpolation в логах.
VC>Т.е. вот тут не будет ни массиива создаваться для аргументов и боксинга не будет и строка формата не будет каждый раз парситься?
VC>
Э-э-э. Я писал про String Interpolation. У тебя что то другое.
Вот в таком коде:
_logger.LogInformation(MyLogEvents.GetItem, $"Getting item {id}, Version: {major}.{minor}.{build}.{revision}");
да, боксинга и элокации массива не будет, форматная строка будет парсится в компил тайм.
На счет веры официальному блогу — это дело личное.
Здравствуйте, vaa, Вы писали:
vaa>И что из всего перечисленного самое "вкусное"?
Для авторов обобщённых библиотек вот это: Preview Features in .NET 6 – Generic Math. Static abstracts in interfaces полезно не только для «generic math», но на нём нагляднее всего.
Здравствуйте, Serginio1, Вы писали:
S>String Interpolation in C# 10 and .NET 6
После беглого чтения кажется я понял — после 19 лет безобразных библиотек они наконец прозрели, что string.Format — не самая удачная реализация и "надо что-то делать".
Может кто-то рационально объяснить, ЧЕМ надо было быть так занятым 19 лет, что одна из самых используемых функций была сделана на отъ****ись и при этом никто её даже пальцем не тронул, чтобы улучшить?! Вот практически всё, что они написали негативного о string.Format в статье — это же не секрет какой, ну! Тем более для тех, кто владеет сорсами. И только сейчас, когда прошла уйма времени и профукано миллионы баксов, девелоперы решили сделать что-то полезное. Капец... вот воистину "лучшее яблоко свинья съест"!
Здравствуйте, Serginio1, Вы писали:
vaa>> редитуран S> Кстати не пробовал R2R
Если это вопрос? то пробовал, то ли само то ли совместо с обрезанием оно либо совсем не стартует либо никакого effect
На мой скромный взгляд нужно прежде всего отказаться от zlib вообще.
Она крайне долго жмет и ужасно расточительна по современным меркам (речь о скрытых аллокациях в нэйтиве, но менеджед реализация стрима тоже... доставляет), когда речь не идет о сжатии потоков данных, а малых сообщений какой-то вменяемой длины. Аллокация кодировщика стоит около 60Кб. Какой-либо вменяемой абстракции для этого нет.
К примеру libdeflate — просто рвет оригинал по всем показателям, можно легко использовать tls-кодировщики каждый из которых будет "самообучаем", что далеко не всегда хорошо, но приемлимо.
Ну собственно использовать можно что угодно, лиж бы это как-то кастомизировалось без аллокации на дополнительный стрим, иначе оно вообще не нужно.
***
Я, например, не хочу видеть неотключаемую валидацию входящего текстового сообщения в клиентском вебсокете, на то что это валидный utf8 — а это там есть. Спасибо, но мне виднее как разобрать входящий набор байт (и читает он байты).
Вместе с тем современный клиентский вебсокет (net5+, может и 3.1) — вот сделан нормально. Синхронизация на посылке завершенного сообщения (одним блоком) — не нужна — внутри она есть бесплатно. А 2.0 и раньше — там же код от лучших планокуров был.
Здравствуйте, Sinclair, Вы писали:
S>Здравствуйте, VladCore, Вы писали:
VC>>я не понял. к записи в логах будет то аттачится xml/json со значениями id, major, minor, build, revision? S>Вот так, судя по всему, сделать не получится. Информация об именах переменных к моменту вызова логгера теряется.
Отмена паники.
Всё работает как надо (https://habr.com/ru/post/590069/):
logger.Log(LogLevel.Information, $"The length of segment {segment} is {length}.");
S>Интересно вообще обсуждается использование нескольких языков в одном проекте?
В телеге вроде иногда мелькает, но в основном ребята чилятся. Из участников в реальных коммерческих проектах F# вообще мало где используют насколько я могу судить.
Здравствуйте, Serginio1, Вы писали:
S>Здравствуйте, vaa, Вы писали:
vaa>>Здравствуйте, Serginio1, Вы писали:
vaa>>Как так, vs 2022 уже доступна, а net6 только 12-го? S> Ну студия то пока не последняя S>Announcing .NET MAUI Preview 10 S>
S>Now to install .NET MAUI, you will want to make sure you are using the preview version of Visual Studio 2022 (17.1) which ships today alongside the stable 17.0 release. When installing, all you need is the “Mobile development with .NET” workload which by default provides the “.NET MAUI (Preview)” dependencies. In a future release, .NET MAUI will be promoted to its own top-level workload.
поставил полет нормальный. переключил проект на dotnet 6.0.100
из непритного шрифт. пробую привыкнуть. и отсутствие AnkhSVN.
Здравствуйте, VladCore, Вы писали:
J>>А я не понял, какое отношение xml/json и вообще твой код имеет к конкретной языковой фиче под названием string interpolation? Ускоряется именно она. J>>А избежать боксинга и создания массива в твоем коде можно и сейчас. VC>а я кое что понял. ты не понимал что писал вот тут: http://rsdn.org/forum/dotnet/8070529.1
.
А какая связь конкретного формата лога и получение строки для логирования? Речь идет об оптимизации
строки для логирования -- минимум алокаций, парсинга и т.п.
Здравствуйте, Serginio1, Вы писали:
S>MAUI это наследник Xamarin.Forms а там и для йос и андроид.
Я имел ввиду что в uno все тоже самое и даже больше, вот так вчера на linux пробовал, только на uwp почему-то ругнулось видимо тутор устарел
dotnet new unoapp -o MyApp -ios=false -android=false -macos=false -uwp=false --vscodeWasm
как и известная Avalonia рисуется через Skia в любой выхлоп типа линукс-фрэйм-буфера.
Для кроссплатформенного десктопа вполне годно,
к тому же вроде как уно в отличии от замарина это коммьюнити с поддержкой мс.
и в отличии от многостарадальной авалонии уже в кодэ поддержка xaml появилась.
жалко авалонию, конечно.
Здравствуйте, vaa, Вы писали:
vaa>Здравствуйте, Serginio1, Вы писали:
S>>Кстати еще развивается Blazor Desktop https://visualstudiomagazine.com/articles/2021/02/17/net-6-preview-1.aspx
vaa>Честно говоря пока все грустно. запилил сегодня для тестов впф апп на коре 5.0 две формочки. селф-контэйнер. под 200 мб. vaa>запускается — уснуть можно. все ж ВМ зло.
Используй UWP там .Net Native!
и солнце б утром не вставало, когда бы не было меня
Здравствуйте, Serginio1, Вы писали:
S>Здравствуйте, vaa, Вы писали:
S>What’s new in F# 6
Использую как вспомогательный инструмент в основном.
Смущает уклон в неявные преобразования. Вроде как раз в этом была фича изначально.
К сожалению язык параллелен сишарпу под который в основном все фрэйворки и технологии заточены.
Здравствуйте, Jack128, Вы писали:
J>>>Ну наконец. Здравствуй String Interpolation в логах.
VC>>Т.е. вот тут не будет ни массиива создаваться для аргументов и боксинга не будет и строка формата не будет каждый раз парситься?
VC>>
VC>>ты сам то вериш во все три фикса в 6й версии?
J>Э-э-э. Я писал про String Interpolation. У тебя что то другое.
J>Вот в таком коде: J>_logger.LogInformation(MyLogEvents.GetItem, $"Getting item {id}, Version: {major}.{minor}.{build}.{revision}"); J>да, боксинга и элокации массива не будет, форматная строка будет парсится в компил тайм.
J>На счет веры официальному блогу — это дело личное.
я не понял. к записи в логах будет то аттачится xml/json со значениями id, major, minor, build, revision?
Здравствуйте, VladCore, Вы писали:
VC>я не понял. к записи в логах будет то аттачится xml/json со значениями id, major, minor, build, revision?
А я не понял, какое отношение xml/json и вообще твой код имеет к конкретной языковой фиче под названием string interpolation? Ускоряется именно она.
А избежать боксинга и создания массива в твоем коде можно и сейчас.
Здравствуйте, Jack128, Вы писали:
VC>>я не понял. к записи в логах будет то аттачится xml/json со значениями id, major, minor, build, revision?
J>А я не понял, какое отношение xml/json и вообще твой код имеет к конкретной языковой фиче под названием string interpolation? Ускоряется именно она. J>А избежать боксинга и создания массива в твоем коде можно и сейчас.
...не устал и не подумал: "а не долбоклюй ли я, что напроектировал такую словесную кашу?!"
К слову, уже лет 5 использую GridEx с аналогичным синтаксисом, какой-то молодчина написал и выложил для адекватных прогеров. Только словоблудие типа ColumnDefinition я ужал до ColsDef. И кстати, размещение контролов тоже можно было сделать куда компактнее. Вместо месива:
Т.е. фиксированная позиция "строка колонка" и можно добавлять C{число} для ColumnSpan.
Ну и конечно же бесит, когда надо перенумеровывать строки/столбцы, если элемент вставлен в начало — это могли бы как-то автоматизировать, а то и вообще исключить ручную нумерацию (далеко не всегда она нужна).
Здравствуйте, Kolesiki, Вы писали:
K>К слову, уже лет 5 использую GridEx с аналогичным синтаксисом, какой-то молодчина написал и выложил для адекватных прогеров. Только словоблудие типа ColumnDefinition я ужал до ColsDef.
Ну на самом то деле MS для бесплатных компонентов реализовать базовый функционал и дать заработать тем же Дев экспресс и прочим.
и солнце б утром не вставало, когда бы не было меня
Здравствуйте, Kolesiki, Вы писали:
K>Здравствуйте, Serginio1, Вы писали:
S>>String Interpolation in C# 10 and .NET 6
K> И только сейчас, когда прошла уйма времени и профукано миллионы баксов, девелоперы решили сделать что-то полезное. Капец... вот воистину "лучшее яблоко свинья съест"!
Ну то, что о RuyJit совершенствовали это тоже профукано. Ну не дошли руки. Сейчас с опен соурсом и облаками закрывают горячие предложения.
Мог бы и сам по примеру Func<T,...,string> сделать оптимальный вариант
и солнце б утром не вставало, когда бы не было меня
Здравствуйте, vaa, Вы писали:
vaa>Здравствуйте, Serginio1, Вы писали:
S>> Ну уно это браузер, а MAUI ближе к устройству
vaa>вот и это без йос и андроид, и в уно есть неплохой датагрид в wct
MAUI это наследник Xamarin.Forms а там и для йос и андроид.
А вот Blazor все таки более интересный проект
и солнце б утром не вставало, когда бы не было меня
K>После беглого чтения кажется я понял — после 19 лет безобразных библиотек они наконец прозрели, что string.Format — не самая удачная реализация и "надо что-то делать". K>Может кто-то рационально объяснить, ЧЕМ надо было быть так занятым 19 лет, что одна из самых используемых функций была сделана на отъ****ись и при этом никто её даже пальцем не тронул, чтобы улучшить?! Вот практически всё, что они написали негативного о string.Format в статье — это же не секрет какой, ну! Тем более для тех, кто владеет сорсами. И только сейчас, когда прошла уйма времени и профукано миллионы баксов, девелоперы решили сделать что-то полезное. Капец... вот воистину "лучшее яблоко свинья съест"!
Ну так кодогенерацию завезли наконец. Теперь можно без крови и пота внедрять требующие ее вещи.
Здравствуйте, vaa, Вы писали:
vaa>Здравствуйте, Teolog, Вы писали:
T>>Ну так кодогенерацию завезли наконец. Теперь можно без крови и пота внедрять требующие ее вещи.
vaa>после беглого знакомства с темплэйтами T4 кажется они решали это проблему не хуже, а может даже и лучше.
Source Generator это доступ к исходному коду используя Roslyn http://rsdn.org/forum/dotnet/7984914.flat
Здравствуйте, VladCore, Вы писали:
VC>Здравствуйте, Jack128, Вы писали:
S>>>String Interpolation in C# 10 and .NET 6
J>>Ну наконец. Здравствуй String Interpolation в логах.
VC>Т.е. вот тут не будет ни массиива создаваться для аргументов и боксинга не будет и строка формата не будет каждый раз парситься?
VC>
Здравствуйте, Sharov, Вы писали:
J>>>А я не понял, какое отношение xml/json и вообще твой код имеет к конкретной языковой фиче под названием string interpolation? Ускоряется именно она. J>>>А избежать боксинга и создания массива в твоем коде можно и сейчас. VC>>а я кое что понял. ты не понимал что писал вот тут: http://rsdn.org/forum/dotnet/8070529.1
S>. S>А какая связь конкретного формата лога и получение строки для логирования? Речь идет об оптимизации S>строки для логирования -- минимум алокаций, парсинга и т.п.
Здравствуйте, Serginio1, Вы писали:
S>Source Generator это доступ к исходному коду используя Roslyn
Рослин уже давно под капотом, а xaml как не любил одинаковые названия тип==наймспайс
так и не любит. и потом это все(кодогенеротор) уж больно тупит, дважды пробовал примеси, то дизайнере не видит новые типы, то в билде.
Здравствуйте, vaa, Вы писали:
vaa>Здравствуйте, Serginio1, Вы писали:
S>>Source Generator это доступ к исходному коду используя Roslyn
vaa>Рослин уже давно под капотом, а xaml как не любил одинаковые названия тип==наймспайс vaa>так и не любит. и потом это все(кодогенеротор) уж больно тупит, дважды пробовал примеси, то дизайнере не видит новые типы, то в билде.
Ну значит, что не так в консерватории. В новых версиях студии уже и нагенеренный код показывает https://devblogs.microsoft.com/visualstudio/visual-studio-2019-v16-9-preview-3/
и солнце б утром не вставало, когда бы не было меня
Честно говоря пока все грустно. запилил сегодня для тестов впф апп на коре 5.0 две формочки. селф-контэйнер. под 200 мб.
запускается — уснуть можно. все ж ВМ зло.
Здравствуйте, VladCore, Вы писали:
VC>я не понял. к записи в логах будет то аттачится xml/json со значениями id, major, minor, build, revision?
Вот так, судя по всему, сделать не получится. Информация об именах переменных к моменту вызова логгера теряется.
Но если вы хотели добавить не строку, собранную на основе указанного формата, а структурированную информацию, то гораздо удобнее делать это, не дожидаясь C# 10:
_logger.LogInformation(MyLogEvents.GetItem, new {id, major, minor, build, revision});
Здесь логгер получит как значения аргументов, так и их имена. И сможет дописать
Здравствуйте, Serginio1, Вы писали:
S>Используй UWP там .Net Native!
Мне вот другое не понятно. Акиньшин из джетбрэйнса работает над микрооптимизацией ядра.
Со всех утюгов кричат мы апнули перформанс сильно в новой версии корки. теперь уже просто НЕТ.
Так объясните почему стартует аналогичная по функционалу прога(типа привет мир) сильно медленнее(заметно без секундомера)
старого классического фрэймворка заточенного под винду? да впф и в классике на слабом железе заставлял нервничать, но сейчас! с ссд стартует аналог
просто позорно медленно. у нас же восхитительный перформанс основанный на агрессивных оптимизациях.
!щёрт подери!
на линуксе обратил внимание что сначала стартует хост-процесс, и затем уже процесс приложения. но неужели так сложно загрузить несколько сборок.
Что не так? причем обрезание и редитуран все еще глючит и непонятно что дает кроме увеличения времени сборки
Лучше бы вернули в студию UML дизайнер с возможностью создания экземпляров (было в 2010 студии кажись)
и наконец пофиксили интерактив для шапровых корковых проектов.
Здравствуйте, vaa, Вы писали:
vaa>Здравствуйте, Serginio1, Вы писали:
S>>Используй UWP там .Net Native!
vaa>Мне вот другое не понятно. Акиньшин из джетбрэйнса работает над микрооптимизацией ядра. vaa>Со всех утюгов кричат мы апнули перформанс сильно в новой версии корки. теперь уже просто НЕТ. vaa>Так объясните почему стартует аналогичная по функционалу прога(типа привет мир) сильно медленнее(заметно без секундомера) vaa>старого классического фрэймворка заточенного под винду? да впф и в классике на слабом железе заставлял нервничать, но сейчас! с ссд стартует аналог vaa>просто позорно медленно. у нас же восхитительный перформанс основанный на агрессивных оптимизациях. vaa>!щёрт подери! vaa>на линуксе обратил внимание что сначала стартует хост-процесс, и затем уже процесс приложения. но неужели так сложно загрузить несколько сборок. vaa>Что не так? причем обрезание и редитуран все еще глючит и непонятно что дает кроме увеличения времени сборки
Здравствуйте, vaa, Вы писали:
vaa>Здравствуйте, Serginio1, Вы писали:
vaa>>> редитуран S>> Кстати не пробовал R2R vaa>Если это вопрос? то пробовал, то ли само то ли совместо с обрезанием оно либо совсем не стартует либо никакого effect
Спасибо. А .Net 6 не пробоал?
и солнце б утром не вставало, когда бы не было меня
Здравствуйте, vaa, Вы писали:
vaa>Здравствуйте, Serginio1, Вы писали:
S>>Спасибо. А .Net 6 не пробоал? vaa>Смысл? релиз осенью. подождем.
Ну ветка то про новости .Net 6
и солнце б утром не вставало, когда бы не было меня
gRPC-Web и потоковая передача
Традиционный API gRPC по HTTP/2 поддерживает потоковую передачу во всех направлениях. gRPC-Web имеет ограниченную поддержку потоковой передачи:
Клиенты браузера с gRPC-Web не поддерживают вызов методов потоковой передачи клиента и двунаправленной потоковой передачи.
Службы gRPC в ASP.NET Core, размещенные в Службе приложений Azure и IIS, не поддерживают двунаправленную потоковую передачу.
При использовании gRPC-Web мы рекомендуем применять только унарные методы и методы серверной потоковой передачи.
Вызов gRPC-Web из браузера
Приложения браузера могут использовать gRPC-Web для вызова служб gRPC. При вызове служб gRPC с помощью gRPC-Web из браузера существует ряд требований и ограничений.
Сервер должен быть настроен для поддержки gRPC-Web.
Потоковая передача клиента и вызовы двунаправленной потоковой передачи не поддерживаются. Потоковая передача сервера поддерживается.
Для вызова служб gRPC в другом домене требуется настроить CORS на сервере.
S>gRPC-Web и потоковая передача
S>Традиционный API gRPC по HTTP/2 поддерживает потоковую передачу во всех направлениях. gRPC-Web имеет ограниченную поддержку потоковой передачи:
S>Клиенты браузера с gRPC-Web не поддерживают вызов методов потоковой передачи клиента и двунаправленной потоковой передачи.
S>Службы gRPC в ASP.NET Core, размещенные в Службе приложений Azure и IIS, не поддерживают двунаправленную потоковую передачу.
S>При использовании gRPC-Web мы рекомендуем применять только унарные методы и методы серверной потоковой передачи.
S>Вызов gRPC-Web из браузера
S>Приложения браузера могут использовать gRPC-Web для вызова служб gRPC. При вызове служб gRPC с помощью gRPC-Web из браузера существует ряд требований и ограничений.
S>Сервер должен быть настроен для поддержки gRPC-Web.
S>Потоковая передача клиента и вызовы двунаправленной потоковой передачи не поддерживаются. Потоковая передача сервера поддерживается.
S>Для вызова служб gRPC в другом домене требуется настроить CORS на сервере.
что то мутное — надо самому что то реализовывать. В SignalR ничего такого не надо — оно само перезапускает всё с самого начала (handshake) если соединение оборвалось где то например на роутете. или ПК заснул+проснулся
Здравствуйте, VladCore, Вы писали:
VC>что то мутное — надо самому что то реализовывать. В SignalR ничего такого не надо — оно само перезапускает всё с самого начала (handshake) если соединение оборвалось где то например на роутете. или ПК заснул+проснулся
Здравствуйте, Serginio1, Вы писали:
VC>>что то мутное — надо самому что то реализовывать. В SignalR ничего такого не надо — оно само перезапускает всё с самого начала (handshake) если соединение оборвалось где то например на роутете. или ПК заснул+проснулся
S> Ну gRPC достаточно новая технология по сравнению и WebSocket, но достаточно перспективная.
а в вики лень посмотреть? gRPC появился за год до .NET Core
Здравствуйте, Mystic Artifact, Вы писали:
VC>>вот тут пишут что они сами не могут добавить его без ихменений в asp.net и стоит milestone 6.0.0: https://github.com/dotnet/runtime/issues/31088
MA> На мой скромный взгляд нужно прежде всего отказаться от zlib вообще.
MA> Она крайне долго жмет и ужасно расточительна по современным меркам (речь о скрытых аллокациях в нэйтиве, но менеджед реализация стрима тоже... доставляет), когда речь не идет о сжатии потоков данных, а малых сообщений какой-то вменяемой длины. Аллокация кодировщика стоит около 60Кб. Какой-либо вменяемой абстракции для этого нет.
MA> К примеру libdeflate — просто рвет оригинал по всем показателям, можно легко использовать tls-кодировщики каждый из которых будет "самообучаем", что далеко не всегда хорошо, но приемлимо.
MA> Ну собственно использовать можно что угодно, лиж бы это как-то кастомизировалось без аллокации на дополнительный стрим, иначе оно вообще не нужно.
MA> ***
MA> Я, например, не хочу видеть неотключаемую валидацию входящего текстового сообщения в клиентском вебсокете, на то что это валидный utf8 — а это там есть. Спасибо, но мне виднее как разобрать входящий набор байт (и читает он байты).
MA> Вместе с тем современный клиентский вебсокет (net5+, может и 3.1) — вот сделан нормально. Синхронизация на посылке завершенного сообщения (одним блоком) — не нужна — внутри она есть бесплатно. А 2.0 и раньше — там же код от лучших планокуров был.
нелюбовь именно к zlib это конечно интереснй случай. но это тут каким боком? перечитай цитату чтоле.
Здравствуйте, VladCore, Вы писали:
VC>нелюбовь именно к zlib это конечно интереснй случай. но это тут каким боком? перечитай цитату чтоле.
К zlib у меня нет нелюбви. Оно просто морально устарело и не развивается. Тут тогда скорее нелюбовь к deflate должна быть, т.к. именно алгоритм является сдерживающим фактором к в 10х/100х большей пропускной способности на серверной/клиентской стороне (сжатие/распаковка, но это уже надо смриться).
Цитату я прочитал, и лишь сказал, что страдают от этого не только вебсокеты. Обычный GZipStream стрим — это трэш. Было бы хорошо, если бы это было сделано более аккуратно. Это далеко не все недочеты. CBOR формально есть в фреймворке — но это не более чем игрушка. Использовать это для чего-либо хоть как-то нагруженного — категорически вредно.
Здравствуйте, Mystic Artifact, Вы писали:
VC>>нелюбовь именно к zlib это конечно интереснй случай. но это тут каким боком? перечитай цитату чтоле.
MA> К zlib у меня нет нелюбви. Оно просто морально устарело и не развивается. Тут тогда скорее нелюбовь к deflate должна быть, т.к. именно алгоритм является сдерживающим фактором к в 10х/100х большей пропускной способности на серверной/клиентской стороне (сжатие/распаковка, но это уже надо смриться).
MA> Цитату я прочитал, и лишь сказал, что страдают от этого не только вебсокеты. Обычный GZipStream стрим — это трэш. Было бы хорошо, если бы это было сделано более аккуратно. Это далеко не все недочеты. CBOR формально есть в фреймворке — но это не более чем игрушка. Использовать это для чего-либо хоть как-то нагруженного — категорически вредно.
в SignelR вообще нет сжатия. где там сжатие увидел? и WebSocket в .NET от GZipStream не страдают. ты о чем?
Здравствуйте, vaa, Вы писали:
vaa>Здравствуйте, Serginio1, Вы писали:
S>>Announcing .NET 6 Preview 7
vaa>И что из всего перечисленного самое "вкусное"?
Оптимизация неплохо так допилена. Наконец-то инлайнинг заработал.
Я ждал этого 14 лет (с 2007 года).
Всё сказанное выше — личное мнение, если не указано обратное.
Здравствуйте, vaa, Вы писали:
vaa>Использую как вспомогательный инструмент в основном. vaa>Смущает уклон в неявные преобразования. Вроде как раз в этом была фича изначально. vaa>К сожалению язык параллелен сишарпу под который в основном все фрэйворки и технологии заточены.
Интересно вообще обсуждается использование нескольких языков в одном проекте?
и солнце б утром не вставало, когда бы не было меня
Now to install .NET MAUI, you will want to make sure you are using the preview version of Visual Studio 2022 (17.1) which ships today alongside the stable 17.0 release. When installing, all you need is the “Mobile development with .NET” workload which by default provides the “.NET MAUI (Preview)” dependencies. In a future release, .NET MAUI will be promoted to its own top-level workload.