Рубрика «.net 7»

Реверс-инжиниринг нативно скомпилированных .NET-приложений - 1

Изучение внутреннего устройства приложений, созданных с использованием нативной опережающей компиляции (AOT).

На платформе .NET 7 впервые была представлена новая модель развертывания: опережающая нативная компиляция. Когда приложение .NET компилируется нативно по методу AOT, оно превращается в автономный нативный исполняемый файл, оснащённый собственной минимальной средой исполнения для управления выполнением кода.Читать полностью »

Разрабатывая один проект на свежем .NET 7 столкнулся с необходимостью подписывать данные с использованием отечественных криптоалгоритмов. Ранее, в .NET Framework хорошая поддержка работы с со сторонними криптопровайдерами, реализующими семейство алгоритмов ГОСТ (CryptoPro CSP, ViPNet CSP и пр.), шла "из коробки". По старой памяти набросал код с использованием SignedCms, и voilà:

System.Security.Cryptography.CryptographicException: 'Could not determine signature algorithm for the signer certificate.'

Ясно-понятно, что в новом фреймворке старые работающие технологии помножились на ноль.

Читать полностью »

Во времена, когда .NET был закрытой технологией только для Windows, за ним и языком C# закрепилась репутация платформы, которая отлично подходит для решения бизнес-задач, но непригодна для соревновательного программирования и написания высокопроизводительного кода.

Часто приходится слышать, что "шарпы медленные", особенно в контексте алгоритмических задач, например с timus.online и codeforces.com. И, увы, не только слышать, но и сталкиваться с реальными проблемами, связанными с особенностями платформы, получая Wrong Answer, Runtime Error, Memory Limit, Time Limit при корректном алгоритме.

Большинство этих проблем кроется в особенностях консольного ввода и вывода. Да и часто куда проще написать cin >> nили sc.nextInt(), чем int.Parse(Console.ReadLine()) или Console.ReadLine().Split().Select(int.Parse).ToArray(), из-за чего выбор падает на другой язык.

Далее я расскажу о распространённых проблемах с консольным вводом-выводом в .NET, и о том, как сделать ввод быстрым и удобным.

Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js