есть внушительный опыт .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 нет. Да и не нужен он мне.
Здравствуйте, Ночной Смотрящий, Вы писали:
НС>Здравствуйте, Hardballer, Вы писали:
H>>Да ну ? H>>Ты вообще в курсе на стоимость лицензий Windows Datacenter Edition на физических не виртуализированных серваках с 64+ ядрами и 1Тб памяти?
НС>В курсе. Я еще я в курсе сколько стоят виртуалки винды и линукса в Ажуре.
И ?
Линух(таже убунта) стоит 0(ноль) за инсталляцию.
Одна лицензия на Datacenter на физический сервак с 64+ физическими ядрами(виртуалки мне не подходят, латентность сетевого стека задирается)-начинается с тысяч долларов.
Здравствуйте, Ночной Смотрящий, Вы писали:
НС>Здравствуйте, Hardballer, Вы писали:
H>>IOCP в Linux'е отродясь не было, а только epoll. H>>Учим матчасть.
НС>В дотнете тоже никакого IOCP в голом виде не было. Все завернуто в асинхронные методы, которые на Линухе вполне реализуемы. НС>Ну и аналог IOCP в линуксе это aio
Весь TCP/IP стек .NET Framework реализован поверх IOCP винды, если ты не знал.
А в .NET Core используется epoll(и только он) для того же, никаких aio.
Так что повторяю-учи матчасть.
H>>Я пока на 2.2 сижу
H>>, где GUI нет. Да и не нужен он мне.
НС>Зачем нам об этом знать?
Затем, что 99% серьезного софта, написанного на .NET Core сейчас-это высоконагруженный бекэнд под линухом.
Здравствуйте, Ночной Смотрящий, Вы писали:
НС>Здравствуйте, Hardballer, Вы писали:
НС>>>В курсе. Я еще я в курсе сколько стоят виртуалки винды и линукса в Ажуре. H>>И ?
НС>И эта цена не с потолка взята.
Ну и зачем мне платить эти суммы, если на скромную инфраструктуру в 60 серверов выходит десятки(если не сотни) тысяч долларов разницы?
Здравствуйте, Hardballer, Вы писали:
НС>>И эта цена не с потолка взята. H>Ну и зачем мне платить эти суммы, если на скромную инфраструктуру в 60 серверов выходит десятки(если не сотни) тысяч долларов разницы?
Здравствуйте, Hardballer, Вы писали:
H>Весь TCP/IP стек .NET Framework реализован поверх IOCP винды, если ты не знал.
Только это все внутри, а не в прикладном коде.
НС>>Зачем нам об этом знать? H>Затем, что 99% серьезного софта, написанного на .NET Core сейчас-это высоконагруженный бекэнд под линухом.
Здравствуйте, Слава, Вы писали:
С>Здравствуйте, Министр Промышленности, Вы писали:
МП>>соответственно за неделю-2-три надо полностью прокачать его МП>>как это делать?
С>Возьмите какой-нибудь проект, да перетащите под Core. Нет там особых различий.
я знаю
делал одно задание на неделю на портирование как раз
проблем действительно никаких не было
просто наклёвывается один такой проект, но чтобы туда попасть нужно доказать что не олень
Здравствуйте, Министр Промышленности, Вы писали:
МП>есть внушительный опыт .NET разработки (практически с момента его первого релиза) МП>но .NET Core до сих пор не зацепил МП>а чувствую, что надо эту работу найти уже с ним
МП>соответственно за неделю-2-три надо полностью прокачать его МП>как это делать? МП>есть известные грамотные пособия? МП>на русском?
2 официальных гайда чем не подходят? по языку и asp.net
ну можно и 3й почитать — по EF
МП>>просто наклёвывается один такой проект, но чтобы туда попасть нужно доказать что не олень С>Тогда может быть вам стоит линуксовые вещи подучить? Ssh, докер, кибинематес, ps ax и прочие sudo su.
с линуксом вообще дел не имел никаких ни разу
даже дома не ставил на комп
и вообще, название постоянно напоминает почему-то облепиховую мазь вуэ-э-э
Здравствуйте, Министр Промышленности, Вы писали:
МП>ну я его как бы решил изучить только потому, что в вакансиях он требуется
Мой юный друг! Как человек, искавший работу достаточно долгое время, объясню: не всё то вакансия, что напечатано в разделе "Требуется". Классический пример: сидит тухлый стартап, желающий делать бабло на найме людей. Делают сайт, а база-то — пустая! Тогда они лезут в тырнеты, шарят по всем мыслимым сайтам и собирают баззворды. После чего публикуют ахинею разряда "Требуется программист на C#, знающий Angular(!), Azure, Agile, Scrum-Шрум-Хрюм, WPF, PHP и ещё много смешных слов". ДАЖЕ если среди живых людей найдётся такой "спец", я его на пушечный выстрел не подпущу к ПК — потому что это не спец, а чёрт-знает-кто-на-дуде-игрец.
МП>и есть ожидание, что будет требоваться и дальше всё больше
А есть хоть один весомый аргумент, что будет БОЛЬШЕ, а не стухнет всё как с WinMobile?
Core — это как бы сказать... ДАЛЕКО не та вещь, которую можно назвать мэйнстримом. Поэтому "вакансии" на этом поделии выглядят чуть менее смешно, чем "требуется серьёзный программист на языке ЧЕРЕПАШКИ". Несмотря на все потуги MS выставлять своё "многоплатформенное Коре" как платформу разработки, на данный момент для меня это пилотный проект мелкомягких энтузазистов по заигрыванию с опенсорсом. Что-то портировали, что-то похерили, что-то вывернули наизнанку... извините, у нас клиенты платят миллионы, нам некогда играть в швабодку, при этом НЕ НЕСЯ НИКАКОЙ ОТВЕТСТВЕННОСТИ. Пусть Наделла играется в свой Линупс, а мы уж так, "по-старинке" формошлёпить будем.
Здравствуйте, Министр Промышленности, Вы писали:
МП>есть внушительный опыт .NET разработки (практически с момента его первого релиза) МП>но .NET Core до сих пор не зацепил МП>а чувствую, что надо эту работу найти уже с ним
МП>соответственно за неделю-2-три надо полностью прокачать его МП>как это делать? МП>есть известные грамотные пособия? МП>на русском?
Переходи уже сразу на нормальный язык типа Kotlin или Python, Golang рулит.
Выбрав C# вы банально не имеете будущего.
G>Переходи уже сразу на нормальный язык типа Kotlin или Python, Golang рулит. G>Выбрав C# вы банально не имеете будущего.
мне C# достаточно и удобно чтобы выражать любую программистскую потребность
поэтому решительно не понимаю зачем спамятся всё новые языки — какой в этом прок??
посмотрел сейчас, вакансий на Kotlin довольно мало,
но тех, которые вверху по деньгам и меня устроили — даже больше чем по .NET
похоже тенденция будет усиливаться...
перейду тогда на него через год-два
сейчас нужна работа и неохота изучать всякую байду