Re[2]: Полезное
От: Qbit86 Кипр
Дата: 11.08.21 13:45
Оценка: 6 (1) +1
Здравствуйте, vaa, Вы писали:

vaa>И что из всего перечисленного самое "вкусное"?


Для авторов обобщённых библиотек вот это: Preview Features in .NET 6 – Generic Math. Static abstracts in interfaces полезно не только для «generic math», но на нём нагляднее всего.

Для авторов «конкретных» библиотек вот это: String Interpolation in C# 10 and .NET 6. Позволяет уменьшить аллокации в молотилках текста.
Глаза у меня добрые, но рубашка — смирительная!
Re[2]: Новости .Net 6
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 11.08.21 14:24
Оценка:
Здравствуйте, Kolesiki, Вы писали:

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


S>>String Interpolation in C# 10 and .NET 6


K> И только сейчас, когда прошла уйма времени и профукано миллионы баксов, девелоперы решили сделать что-то полезное. Капец... вот воистину "лучшее яблоко свинья съест"!


Ну то, что о RuyJit совершенствовали это тоже профукано. Ну не дошли руки. Сейчас с опен соурсом и облаками закрывают горячие предложения.
Мог бы и сам по примеру Func<T,...,string> сделать оптимальный вариант
и солнце б утром не вставало, когда бы не было меня
Re[8]: Новости .Net 6
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 11.08.21 14:29
Оценка:
Здравствуйте, vaa, Вы писали:

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


S>> Ну уно это браузер, а MAUI ближе к устройству


vaa>вот и это без йос и андроид, и в уно есть неплохой датагрид в wct


MAUI это наследник Xamarin.Forms а там и для йос и андроид.

А вот Blazor все таки более интересный проект
и солнце б утром не вставало, когда бы не было меня
Re[9]: Новости .Net 6
От: vaa  
Дата: 12.08.21 02:37
Оценка: +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 появилась.
жалко авалонию, конечно.
☭ ✊ В мире нет ничего, кроме движущейся материи.
Re[2]: Новости .Net 6
От: Teolog  
Дата: 12.08.21 06:51
Оценка:
K>После беглого чтения кажется я понял — после 19 лет безобразных библиотек они наконец прозрели, что string.Format — не самая удачная реализация и "надо что-то делать".
K>Может кто-то рационально объяснить, ЧЕМ надо было быть так занятым 19 лет, что одна из самых используемых функций была сделана на отъ****ись и при этом никто её даже пальцем не тронул, чтобы улучшить?! Вот практически всё, что они написали негативного о string.Format в статье — это же не секрет какой, ну! Тем более для тех, кто владеет сорсами. И только сейчас, когда прошла уйма времени и профукано миллионы баксов, девелоперы решили сделать что-то полезное. Капец... вот воистину "лучшее яблоко свинья съест"!
Ну так кодогенерацию завезли наконец. Теперь можно без крови и пота внедрять требующие ее вещи.
Re[3]: Новости .Net 6
От: vaa  
Дата: 12.08.21 07:03
Оценка:
Здравствуйте, Teolog, Вы писали:

T>Ну так кодогенерацию завезли наконец. Теперь можно без крови и пота внедрять требующие ее вещи.


после беглого знакомства с темплэйтами T4 кажется они решали это проблему не хуже, а может даже и лучше.
☭ ✊ В мире нет ничего, кроме движущейся материи.
Re: Новости .Net 6
От: Слава  
Дата: 12.08.21 07:35
Оценка: +1
Здравствуйте, Serginio1, Вы писали:

S>Announcing .NET 6 Preview 7


Шла вторая половина 2021 года. Discriminated union, фича, которая была доступна в Ada83, до сих пор не появилась в C#.
Re[4]: Новости .Net 6
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 12.08.21 07:39
Оценка:
Здравствуйте, vaa, Вы писали:

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


T>>Ну так кодогенерацию завезли наконец. Теперь можно без крови и пота внедрять требующие ее вещи.


vaa>после беглого знакомства с темплэйтами T4 кажется они решали это проблему не хуже, а может даже и лучше.

Source Generator это доступ к исходному коду используя Roslyn
http://rsdn.org/forum/dotnet/7984914.flat
Автор: varenikAA
Дата: 07.04.21

http://rsdn.org/forum/dotnet/7931951.flat
Автор: MadHuman
Дата: 22.01.21

http://rsdn.org/forum/dotnet/7719189.flat
Автор: Serginio1
Дата: 01.05.20
и солнце б утром не вставало, когда бы не было меня
Отредактировано 12.08.2021 7:42 Serginio1 . Предыдущая версия .
Re[10]: Новости .Net 6
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 12.08.21 10:10
Оценка:
Здравствуйте, vaa, Вы писали:

Кстати еще развивается Blazor Desktop https://visualstudiomagazine.com/articles/2021/02/17/net-6-preview-1.aspx
http://rsdn.org/forum/dotnet/7736954.flat
Автор: Serginio1
Дата: 23.05.20
и солнце б утром не вставало, когда бы не было меня
Отредактировано 12.08.2021 10:11 Serginio1 . Предыдущая версия .
Re: Новости .Net 6
От: Sinclair Россия https://github.com/evilguest/
Дата: 12.08.21 11:14
Оценка: +1 :)
Здравствуйте, Serginio1, Вы писали:

S>Announcing .NET MAUI Preview 7

S>Preview Features in .NET 6 – Generic Math
OMFG, наконец-то. И безо всех этих адских ужосов, которые обсуждались в прошлом.
S>String Interpolation in C# 10 and .NET 6
Тоже огонь. Единственное "чо" — я не увидел тут способа избегать интерполяции совсем.
UPD: увидел. Копец я тормоз.
S>ASP.NET Core updates in .NET 6 Preview 7
S>Announcing .NET 6 Preview 7
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Отредактировано 12.08.2021 11:18 Sinclair . Предыдущая версия .
Re[3]: Новости .Net 6
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 12.08.21 11:30
Оценка:
Здравствуйте, VladCore, Вы писали:

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


S>>>String Interpolation in C# 10 and .NET 6


J>>Ну наконец. Здравствуй String Interpolation в логах.


VC>Т.е. вот тут не будет ни массиива создаваться для аргументов и боксинга не будет и строка формата не будет каждый раз парситься?


VC>
VC>_logger.LogInformation(MyLogEvents.GetItem, "Getting item {Id}, Version: {Major}.{Minor}.{Build}.{Revision}", id, major, minor, build, revision);
VC>

VC>ты сам то вериш во все три фикса в 6й версии?

 static void Main(string[] args) => BenchmarkSwitcher.FromAssemblies(new[] { typeof(Program).Assembly }).Run(args);

    private int major = 6, minor = 0, build = 100, revision = 7;

    [Benchmark(Baseline = true)]
    public string Old()
    {
        var array = new object[4];
        array[0] = major;
        array[1] = minor;
        array[2] = build;
        array[3] = revision;
        return string.Format("{0}.{1}.{2}.{3}", array);
    }

    [Benchmark]
    public string New()
    {
        var builder = new DefaultInterpolatedStringHandler(3, 4);
        builder.AppendFormatted(major);
        builder.AppendLiteral(".");
        builder.AppendFormatted(minor);
        builder.AppendLiteral(".");
        builder.AppendFormatted(build);
        builder.AppendLiteral(".");
        builder.AppendFormatted(revision);
        return builder.ToStringAndClear();
    }
и солнце б утром не вставало, когда бы не было меня
Re[8]: Новости .Net 6
От: VladCore  
Дата: 12.08.21 14:07
Оценка:
Здравствуйте, Sharov, Вы писали:

J>>>А я не понял, какое отношение xml/json и вообще твой код имеет к конкретной языковой фиче под названием string interpolation? Ускоряется именно она.

J>>>А избежать боксинга и создания массива в твоем коде можно и сейчас.
VC>>а я кое что понял. ты не понимал что писал вот тут: http://rsdn.org/forum/dotnet/8070529.1
Автор: Jack128
Дата: 11.08.21

S>.
S>А какая связь конкретного формата лога и получение строки для логирования? Речь идет об оптимизации
S>строки для логирования -- минимум алокаций, парсинга и т.п.

ты не туда вопрос спросил. напиши его Jack128.
Re[5]: Новости .Net 6
От: vaa  
Дата: 12.08.21 14:11
Оценка:
Здравствуйте, Serginio1, Вы писали:

S>Source Generator это доступ к исходному коду используя Roslyn


Рослин уже давно под капотом, а xaml как не любил одинаковые названия тип==наймспайс
так и не любит. и потом это все(кодогенеротор) уж больно тупит, дважды пробовал примеси, то дизайнере не видит новые типы, то в билде.
☭ ✊ В мире нет ничего, кроме движущейся материи.
Re[6]: Новости .Net 6
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 12.08.21 14:20
Оценка:
Здравствуйте, vaa, Вы писали:

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


S>>Source Generator это доступ к исходному коду используя Roslyn


vaa>Рослин уже давно под капотом, а xaml как не любил одинаковые названия тип==наймспайс

vaa>так и не любит. и потом это все(кодогенеротор) уж больно тупит, дважды пробовал примеси, то дизайнере не видит новые типы, то в билде.
Ну значит, что не так в консерватории. В новых версиях студии уже и нагенеренный код показывает
https://devblogs.microsoft.com/visualstudio/visual-studio-2019-v16-9-preview-3/
и солнце б утром не вставало, когда бы не было меня
Re[11]: Новости .Net 6
От: vaa  
Дата: 12.08.21 15:31
Оценка:
Здравствуйте, Serginio1, Вы писали:

S>Кстати еще развивается Blazor Desktop https://visualstudiomagazine.com/articles/2021/02/17/net-6-preview-1.aspx


Честно говоря пока все грустно. запилил сегодня для тестов впф апп на коре 5.0 две формочки. селф-контэйнер. под 200 мб.
запускается — уснуть можно. все ж ВМ зло.
☭ ✊ В мире нет ничего, кроме движущейся материи.
Re[7]: Новости .Net 6
От: vaa  
Дата: 12.08.21 15:36
Оценка:
Здравствуйте, Serginio1, Вы писали:

S>Ну значит, что не так в консерватории. В новых версиях студии уже и нагенеренный код показывает

S>https://devblogs.microsoft.com/visualstudio/visual-studio-2019-v16-9-preview-3/

В рекламе все зубы белые ))
☭ ✊ В мире нет ничего, кроме движущейся материи.
Re[12]: Новости .Net 6
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 12.08.21 15:41
Оценка: :)
Здравствуйте, 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!
и солнце б утром не вставало, когда бы не было меня
Re[5]: Новости .Net 6
От: Sinclair Россия https://github.com/evilguest/
Дата: 12.08.21 16:20
Оценка:
Здравствуйте, VladCore, Вы писали:

VC>я не понял. к записи в логах будет то аттачится xml/json со значениями id, major, minor, build, revision?

Вот так, судя по всему, сделать не получится. Информация об именах переменных к моменту вызова логгера теряется.
Но если вы хотели добавить не строку, собранную на основе указанного формата, а структурированную информацию, то гораздо удобнее делать это, не дожидаясь C# 10:
_logger.LogInformation(MyLogEvents.GetItem, new {id, major, minor, build, revision});

Здесь логгер получит как значения аргументов, так и их имена. И сможет дописать
{
  "id"=1,
  "major"=6,
  "minor"=0,
  "build"=100,
  "revision"=7
}

или там
<getItem id="1" major="6" minor="0" build="100" revision="7"/>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re: Новости .Net 6
От: Mystic Artifact  
Дата: 12.08.21 18:42
Оценка: 170 (8)
Здравствуйте, Serginio1, Вы писали:

За ворохом больших (и крутых) фич, не увидели маленькую, но полезную фичу (которой мне лично всегда не хватало), доступна в третьем превью (компилятор кому не терпелось, можно было собрать чуть раньше ):

public class Check
{
    public static void That(bool condition, [CallerArgumentExpression("condition")] string? conditionText = null)
    {
        if (!condition) throw new InvalidOperationException(conditionText);
    }
}


// Используем:

    Check.That(offset <= maxOffsetLimit);  // бросит исключение с текстом "offset <= maxOffsetLimit"


Понятно, что это надо делать аккуратно и без фанатизма.
Re[13]: Новости .Net 6
От: vaa  
Дата: 13.08.21 01:58
Оценка:
Здравствуйте, Serginio1, Вы писали:

S>Используй UWP там .Net Native!


Мне вот другое не понятно. Акиньшин из джетбрэйнса работает над микрооптимизацией ядра.
Со всех утюгов кричат мы апнули перформанс сильно в новой версии корки. теперь уже просто НЕТ.
Так объясните почему стартует аналогичная по функционалу прога(типа привет мир) сильно медленнее(заметно без секундомера)
старого классического фрэймворка заточенного под винду? да впф и в классике на слабом железе заставлял нервничать, но сейчас! с ссд стартует аналог
просто позорно медленно. у нас же восхитительный перформанс основанный на агрессивных оптимизациях.
!щёрт подери!
на линуксе обратил внимание что сначала стартует хост-процесс, и затем уже процесс приложения. но неужели так сложно загрузить несколько сборок.
Что не так? причем обрезание и редитуран все еще глючит и непонятно что дает кроме увеличения времени сборки
☭ ✊ В мире нет ничего, кроме движущейся материи.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.