есть внушительный опыт .NET разработки (практически с момента его первого релиза)
но .NET Core до сих пор не зацепил
а чувствую, что надо эту работу найти уже с ним
соответственно за неделю-2-три надо полностью прокачать его
как это делать?
есть известные грамотные пособия?
на русском?
Здравствуйте, Министр Промышленности, Вы писали:
МП>как это делать?
Ну я б посоветовал начать с психиатора. Классические темы "как не поддаваться хайпу", "не всё то золото, что блестит", "компания, продающая инструменты, делает деньги НА ВАС, а не на том, что вы делаете этими инструментами", "трезвая оценка технологий, включая бизнес-взгляд" и т.п.
Я не шучу. Core — это, мягко говоря, "игры мелкомягких индусов в швабодку". Завтра этих танцоров разгонят к чертям, а ты останешься со своим Корем и верой "это работает везде". А оно вам надо — "везде"??
Я лично занимаюсь корой ТОЛЬКО в силу того, что в задаче есть RaspberryPI и там идеальное решение — Raspbian + Core + наша программа (потому что мы не хотим распаляться на десятки языков — везде только C#).
Как человек, прошедший аналогичную вам дорогу, КРАЙНЕ рекомендую воздерживаться от Коры. По кр. мере в продакшене. Вы-то — всего лишь программистик, небольшой винтик в механизме фирмы, а если вы зафэйлите проект из-за того, что Кора не всё поддерживает (или сторонняя библиотека тупит), то будет очень неприятная ситуация.
Здравствуйте, Министр Промышленности, Вы писали:
МП>есть внушительный опыт .NET разработки (практически с момента его первого релиза) МП>но .NET Core до сих пор не зацепил МП>а чувствую, что надо эту работу найти уже с ним
МП>соответственно за неделю-2-три надо полностью прокачать его МП>как это делать? МП>есть известные грамотные пособия? МП>на русском?
Специальных пособий не видел.
Никаких шевелений ИМХО не нужно делать особенных.
Просто нужно понять-что вся платформенная специфика(вроде IOCP и GUI)-в .NET Core отсохла по очевидным причинам.
И все.
Я портировал прорву (сотни и сотни тысяч строк) нетривиального кода на .NET Core c .NET Framework, в том числе unsafe, из проблем было несколько иное поведение сетевого стека в ряде нетривиальных случаев, с которыми пришлось разбираться.
И под лупой необходимо изучить все ручки GC, которые вывели наружу в .NET Core и которые могут быть очень полезны в некоторых задачах, а также пулинг массивов и все прочие приятности, что имеют место в .NET Core "из коробки".
Чуть не забыл, одна из внезапных засад на .NET Core-это очень медленная генерация GUID. Было несколько итераций починки производительности командой разработчиков, но все равно, на Linux'е генерация GUIDов более тяжелая операция, чем на Windows(edited: устаревшая инфа, все таки пришли к тождественности результатов спустя 3+ года )
Я на этом встрял несколько лет назад, у меня order flow миллионы ордеров в секунду, и как оказалось-ID в виде Guid под Linux'ом была откровенно плохая затея, пришлось извращаться.
Здравствуйте, Hardballer, Вы писали:
H>Чуть не забыл, одна из внезапных засад на .NET Core-это очень медленная генерация GUID. Было несколько итераций починки производительности командой разработчиков, но все равно, на Linux'е генерация GUIDов более тяжелая операция, чем на Windows. H>Я на этом встрял, у меня order flow миллионы ордеров в секунду, и как оказалось-ID в виде Guid под Linux'ом была откровенно плохая затея, пришлось извращаться.
Это почему так? Что в этом такого, что на линуксе в разы медленнее?
K>Ну я б посоветовал начать с психиатора. Классические темы "как не поддаваться хайпу", "не всё то золото, что блестит", "компания, продающая инструменты, делает деньги НА ВАС, а не на том, что вы делаете этими инструментами", "трезвая оценка технологий, включая бизнес-взгляд" и т.п. K>Я не шучу. Core — это, мягко говоря, "игры мелкомягких индусов в швабодку". Завтра этих танцоров разгонят к чертям, а ты останешься со своим Корем и верой "это работает везде". А оно вам надо — "везде"?? K>Я лично занимаюсь корой ТОЛЬКО в силу того, что в задаче есть RaspberryPI и там идеальное решение — Raspbian + Core + наша программа (потому что мы не хотим распаляться на десятки языков — везде только C#). K>Как человек, прошедший аналогичную вам дорогу, КРАЙНЕ рекомендую воздерживаться от Коры. По кр. мере в продакшене. Вы-то — всего лишь программистик, небольшой винтик в механизме фирмы, а если вы зафэйлите проект из-за того, что Кора не всё поддерживает (или сторонняя библиотека тупит), то будет очень неприятная ситуация.
ну я его как бы решил изучить только потому, что в вакансиях он требуется
и есть ожидание, что будет требоваться и дальше всё больше
Здравствуйте, Kolesiki, Вы писали:
K>Здравствуйте, Министр Промышленности, Вы писали: K>Вы-то — всего лишь программистик, небольшой винтик в механизме фирмы, а если вы зафэйлите проект из-за того, что Кора не всё поддерживает (или сторонняя библиотека тупит), то будет очень неприятная ситуация.
См. выделенное. Надо быть полным дураком, чтобы министра программистиком назвать. Если министр что-то зафейлит, то его максимум в губернаторы сошлют.
K>>Здравствуйте, Министр Промышленности, Вы писали: K>>Вы-то — всего лишь программистик, небольшой винтик в механизме фирмы, а если вы зафэйлите проект из-за того, что Кора не всё поддерживает (или сторонняя библиотека тупит), то будет очень неприятная ситуация.
N>См. выделенное. Надо быть полным дураком, чтобы министра программистиком назвать. Если министр что-то зафейлит, то его максимум в губернаторы сошлют.
ключевое слово — самопровозглашённый
такой отвечает
Здравствуйте, Sharov, Вы писали:
S>Здравствуйте, Hardballer, Вы писали:
H>>Чуть не забыл, одна из внезапных засад на .NET Core-это очень медленная генерация GUID. Было несколько итераций починки производительности командой разработчиков, но все равно, на Linux'е генерация GUIDов более тяжелая операция, чем на Windows. H>>Я на этом встрял, у меня order flow миллионы ордеров в секунду, и как оказалось-ID в виде Guid под Linux'ом была откровенно плохая затея, пришлось извращаться.
S>Это почему так? Что в этом такого, что на линуксе в разы медленнее?
Начало проблемы тут https://github.com/dotnet/corefx/issues/3573, закончилось в итоге в последующих релизах выпиливанием использования libuuid в .NET Core с рукопашной реализацией.
Здравствуйте, Sharov, Вы писали:
S>Здравствуйте, Hardballer, Вы писали:
H>>Чуть не забыл, одна из внезапных засад на .NET Core-это очень медленная генерация GUID. Было несколько итераций починки производительности командой разработчиков, но все равно, на Linux'е генерация GUIDов более тяжелая операция, чем на Windows. H>>Я на этом встрял, у меня order flow миллионы ордеров в секунду, и как оказалось-ID в виде Guid под Linux'ом была откровенно плохая затея, пришлось извращаться.
S>Это почему так? Что в этом такого, что на линуксе в разы медленнее?
”Жить стало лучше... но противнее. Люди которые ставят точку после слова лучше становятся сторонниками Путина, наши же сторонники делают акцент на слове противнее ( ложь, воровство, лицемерие, вражда )." (с) Борис Немцов
Здравствуйте, okon, Вы писали:
O>Здравствуйте, Sharov, Вы писали:
S>>Здравствуйте, Hardballer, Вы писали:
H>>>Чуть не забыл, одна из внезапных засад на .NET Core-это очень медленная генерация GUID. Было несколько итераций починки производительности командой разработчиков, но все равно, на Linux'е генерация GUIDов более тяжелая операция, чем на Windows. H>>>Я на этом встрял, у меня order flow миллионы ордеров в секунду, и как оказалось-ID в виде Guid под Linux'ом была откровенно плохая затея, пришлось извращаться.
S>>Это почему так? Что в этом такого, что на линуксе в разы медленнее?
O>Тоже не совсем понятно O>https://github.com/dotnet/corefx/blob/master/src/Common/src/CoreLib/System/Guid.Windows.cs O>https://github.com/dotnet/corefx/blob/master/src/Common/src/CoreLib/System/Guid.Unix.cs
Здравствуйте, Министр Промышленности, Вы писали:
МП>ну я его как бы решил изучить только потому, что в вакансиях он требуется МП>и есть ожидание, что будет требоваться и дальше всё больше
Не обращай внимания, Kolesiki — это местный микрософтоненавистник. Правда зачем-то продолжает есть кактус.
Здравствуйте, Kolesiki, Вы писали:
K>Как человек, прошедший аналогичную вам дорогу, КРАЙНЕ рекомендую воздерживаться от Коры. По кр. мере в продакшене. Вы-то — всего лишь программистик, небольшой винтик в механизме фирмы, а если вы зафэйлите проект из-за того, что Кора не всё поддерживает (или сторонняя библиотека тупит), то будет очень неприятная ситуация.
У тебя не дорога, а так, тропинка
Ты похоже и есть винтик в исполняемом механизме, не понимающий, что благодаря .NET Core стоимость эксплуатации высоконагруженной инфраструктуры, насчитывающей сотни ядер-в десятки раз дешевле(если просто по стоимости лицензий посчитать).
Ну нет у тебя задачи экономии бюджетов на IT. И не стояла никогда.
Здравствуйте, Hardballer, Вы писали:
H>Ты похоже и есть винтик в исполняемом механизме, не понимающий, что благодаря .NET Core стоимость эксплуатации высоконагруженной инфраструктуры, насчитывающей сотни ядер-в десятки раз дешевле(если просто по стоимости лицензий посчитать).
Здравствуйте, Hardballer, Вы писали:
H>Никаких шевелений ИМХО не нужно делать особенных. H>Просто нужно понять-что вся платформенная специфика(вроде IOCP и GUI)-в .NET Core отсохла по очевидным причинам.
Это куда в Core отсох IOCP? Да и GUI в 3.0 вернули.
Столкнулся с разным поведением в криптографии под Windows и Linux...
public X509Certificate2 (byte[] rawData);
Про данный конструктор написано
Этот конструктор создает новый X509Certificate2 объект, используя сведения о сертификате из массива байтов. Массив байтов может представлять собой двоичные данные X. 509 в кодировке DER или Base64.
Под виндой я передавал в качестве параметра напрямую байты прочитанные из .cert файла в base64.
Под линуксом это не работает, пришлось перегнать байты в строку, потом декодировать base64, а потом уже в конструктор
var str = System.Text.Encoding.Default.GetString(rowData);
var rawData1 = Convert.FromBase64String(str);
var x509 = new X509Certificate2(rowData1);
Жизнь не обязана доставлять удовольствие. Достаточно отсутствия страданий.
Здравствуйте, Ночной Смотрящий, Вы писали:
НС>Здравствуйте, Hardballer, Вы писали:
H>>Никаких шевелений ИМХО не нужно делать особенных. H>>Просто нужно понять-что вся платформенная специфика(вроде IOCP и GUI)-в .NET Core отсохла по очевидным причинам.
НС>Это куда в Core отсох IOCP? Да и GUI в 3.0 вернули.
IOCP в Linux'е отродясь не было, а только epoll.
Учим матчасть.
Я пока на 2.2 сижу, где GUI нет. Да и не нужен он мне.
Здравствуйте, Ночной Смотрящий, Вы писали:
НС>Здравствуйте, Hardballer, Вы писали:
H>>Ты похоже и есть винтик в исполняемом механизме, не понимающий, что благодаря .NET Core стоимость эксплуатации высоконагруженной инфраструктуры, насчитывающей сотни ядер-в десятки раз дешевле(если просто по стоимости лицензий посчитать).
НС>Откуда там в десятки раз? В 2-3 раза.
Да ну ?
Ты вообще в курсе на стоимость лицензий Windows Datacenter Edition на физических не виртуализированных серваках с 64+ ядрами и 1Тб памяти?
МП>есть известные грамотные пособия? МП>на русском?
Есть: https://www.labirint.ru/books/647975/ — только написано для начинающих.
Еще есть, естественно, Троелсен.
Еще есть Фримен, но там ASP.NET
Этих не читал. По опыту знаю, что Фримен пишет неплохо.
А Троелсен — все валит в одну книжку, но неглубоко.
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Здравствуйте, Hardballer, Вы писали:
H>Да ну ? H>Ты вообще в курсе на стоимость лицензий Windows Datacenter Edition на физических не виртуализированных серваках с 64+ ядрами и 1Тб памяти?
В курсе. Я еще я в курсе сколько стоят виртуалки винды и линукса в Ажуре.
Здравствуйте, Hardballer, Вы писали:
H>IOCP в Linux'е отродясь не было, а только epoll. H>Учим матчасть.
В дотнете тоже никакого IOCP в голом виде не было. Все завернуто в асинхронные методы, которые на Линухе вполне реализуемы.
Ну и аналог IOCP в линуксе это aio
H>Я пока на 2.2 сижу
Это аргумент что ли?
H>, где GUI нет. Да и не нужен он мне.