Представляем .NET 5 Preview 1

Автор: admin от 24-03-2020, 10:30, посмотрело: 265

В конце прошлого года мы выпустили .NET Core 3.0 и 3.1. В этих версиях добавлены модели настольных приложений Windows Forms (WinForms) и WPF, ASP.NET Blazor для создания одностраничных приложений и gRPC для кроссплатформенного обмена сообщениями на основе контрактов. Мы также добавили шаблоны для создания сервисов, крутое генерирование клиентского кода для общения с gRPC, сервисы REST API и многое другое. Мы рады, что .NET Core 3 стала самой быстро-принятой версией .NET, и за последний год у нас появился еще миллион пользователей.



Мы также работали над этими выпусками, чтобы завершить перенос моделей приложений из .NET Framework. В .NET Core 3 мы перенесли все наиболее используемые модели приложений, а также представили новые кроссплатформенные инфраструктуры вместо тех, которые не были портированы.



В ожидании следующего основного выпуска .NET 5 мы продолжим объединять .NET в единую платформу, включив нашу модель приложения для мобильных устройств .NET (Xamarin) в .NET 5. .NET 5 будет включать ASP.NET Core, Entity Framework Core, WinForms, WPF, Xamarin и ML.NET. Впервые вся платформа будет использовать унифицированный BCL (библиотеки базовых классов) для всех моделей приложений. Наличие версии 5, которая выше, чем у .NET Core и .NET Framework, также дает понять, что .NET 5 — это будущее .NET, единой унифицированной платформы для создания приложений любого типа.



Мы говорили это много раз, но мы еще раз повторим; .NET Core, а затем .NET 5 — это .NET, с помощью которого вам стоит создавать все свои новые приложения. .NET Framework будет поддерживаться до тех пор, пока поддерживается сама Windows. Мы будем продолжать обеспечивать безопасность и исправлять ошибки, а также обновлять сетевые и крипто API. Он будет оставаться безопасным и поддерживаться для работы ваших старых приложений на .NET Framework.



Представляем .NET 5 Preview 1

Категория: Программирование

 

Оптимизации в JIT-компляторе для .NET 5

Автор: admin от 23-03-2020, 10:55, посмотрело: 73

Некоторое время назад я начал удивительное путешествие в мир JIT-компилятора с целью найти места, куда можно засунуть свои руки и что-нибудь ускорить, т.к. по ходу основной работы накопился небольшой багаж знаний в LLVM и его оптимизаций. В этой статье я хотел бы поделиться списком моих улучшений в JIT (в .NET он называется RyuJIT в честь какого-то дракона или аниме — я не разобрался), большая часть которых уже попала в master и будет доступна в .NET (Core) 5. Мои оптимизации затрагивают разные фазы JIT, которые очень схематично можно показать следующим образом:



Оптимизации в JIT-компляторе для .NET 5


Как видно из схемы, JIT — это отдельный модуль, связанный с рантаймом узким Jit-Interface, по которому JIT консультируется по некоторым вещам, например, можно ли скастить один класс к другому. Чем позже JIT компилирует метод в слой Tier1, тем больше информации может предоставить рантайм, например, что codev_0 поля можно заменить константой, т.к. класс уже статически проинициализирован.

Категория: Программирование

 

Непрерывная интеграция и развертывание настольных приложений с GitHub Actions

Автор: admin от 17-03-2020, 13:30, посмотрело: 143

Из общения с разработчиками настольных приложений мы узнали, что многие хотят узнать, как быстро настраивать рабочие процессы непрерывной интеграции и непрерывного развертывания (CI/CD) для WPF и Windows Forms, чтобы пользоваться многими преимуществами пайплайнов CI/CD, такими как:




  • Обнаружение багов в начале цикла разработки

  • Повышение качества и надежности программного обеспечения

  • Обеспечение стабильного качества сборки

  • Быстрое и безопасное развертывание новых функций

  • Быстрое устранение проблем в продакшене за счет новых развертываний



Поэтому мы создали пример приложения (GitHub) для демонстрации возможностей DevOps в ваших приложениях, с использованием недавно выпущенного GitHub Actions.



Непрерывная интеграция и развертывание настольных приложений с GitHub Actions

Категория: Программирование

 

Сохранение значений в .Net приложение на этапе сборки

Автор: admin от 13-03-2020, 16:25, посмотрело: 174

Появилась у меня необходимость при сборке приложения передать внутрь набор констант для использования их на рантайме. Например, мы хотим «зашить» в приложение некое строковое значение которое будет известно в момент сборки.



В мире C++ я решал подобные штуки очень просто с использованием define и опций компилятора. Но в .Net define не имеют значений кроме true/false, т.е. они либо определены либо нет. Насколько я понимаю, их цель это простейшая условная компиляция.



Кому интересно решение добро пожаловать под кат.

Категория: Программирование

 

Beta-тест C# анализатора PVS-Studio на Linux и macOS

Автор: admin от 13-03-2020, 11:15, посмотрело: 145

Beta-тест C# анализатора PVS-Studio на Linux и macOS


Всё больше пользователей C# анализатора PVS-Studio интересуются возможностью его использования для проверки C# кода на Linux и macOS. И сегодня у нас хорошие новости.

Категория: Программирование

 

CLRium #7: Доклады, практика, менторы

Автор: admin от 6-03-2020, 09:55, посмотрело: 129

18 апреля 2020 в Санкт-Петербурге и 16 мая в Москве пройдёт седьмая мини-конференция по платформе .NET CLRium #7. В этот раз мы будем и говорить и заниматься практикой многопоточного кода. Как и в прошлый раз, все доклады будут придерживаться единой линии повествования. В шестом CLRium мы поднаторели в теории и узнали много нового относительно планировщика потоков, блокировок и неблокирующих алгоритмов. В платформе .NET изучили контексты синхронизации, планировщики задач, как работают сами задачи, async/await и типичные ошибки при его использовании… Мы изучили вообще всё, чтобы уверенно начать заниматься практическими задачами.



В CLRium #7 мы перейдём к практике. Наша программа, наконец, окончательно готова: мы разработали матрицу докладов, которые построены так, что последующие доклады логически вытекают из предыдущих. А кроме самих докладов по желанию будет дана практическая работа на дом, в рамках которой вы приобретете опыт работы над задачами совместно: группами по несколько человек (контролируемых координатором).



CLRium #7: Доклады, практика, менторы

А ещё есть личный ментор

Категория: Программирование

 

Простой пример парсинга и аналитики данных по игре World of Tanks

Автор: admin от 25-02-2020, 11:30, посмотрело: 119

В этом небольшом примере, я хочу показать, как парсить данные с сайтов и как дальше использовать их для анализа. Для этого я спарсил таблицу рейтингов кланов из игры World of Tanks и посмотрел, как рейтинг клана может коррелировать с другими данными.



Простой пример парсинга и аналитики данных по игре World of Tanks

Категория: Программирование

 

.NET Interactive уже здесь! | .NET Notebooks Preview 2

Автор: admin от 24-02-2020, 13:50, посмотрело: 89

.NET Interactive уже здесь! | .NET Notebooks Preview 2


В ноябре 2019 мы анонсировали поодержку .NET для Jupyter notebooks с доступностью C# и F#. Сегодня мы рады объявить о выпуске Preview 2 .NET Notebook. В этой статье вы можете найти все основные новые функции этого выпуска. Присоединяйтесь!

Категория: Программирование

 

Как не пропустить невалидный код в репозиторий

Автор: admin от 18-02-2020, 02:05, посмотрело: 149

Зачем это необходимо



Когда в твоей команде работают больше одного человека, так или иначе все сталкиваются с проблемой разных стилей кодирования каждого члена команды. Кто-то пишет скобки для блоков if...else, кто-то нет. Когда проект становится больше, то такой код труднее читать и еще сложнее проводить код-ревью.



Чтобы код-ревью и прочие командные митинги не превратились в обсуждение tab vs spaces на повышенных тонах, лучше настроить репозиторий таким образом, чтобы сам проект не допускал написание невалидного и нестандартного для команды кода.

Категория: Программирование

 

Hack The Box. Прохождение JSON. Уязвимость в Json.Net и LPE через SeImpersonatePrivilege

Автор: admin от 16-02-2020, 18:35, посмотрело: 73

Hack The Box. Прохождение JSON. Уязвимость в Json.Net и LPE через SeImpersonatePrivilege


Продолжаю публикацию решений отправленных на дорешивание машин с площадки HackTheBox. Надеюсь, что это поможет хоть кому-то развиваться в области ИБ. В данной статье эксплуатируем уязвимость в Json.Net и посмотрим, как повысить свои привилегии до SYSTEM, если мы имеем право SeImpersonatePrivilege.



Подключение к лаборатории осуществляется через VPN. Рекомендуется не подключаться с рабочего компьютера или с хоста, где имеются важные для вас данные, так как Вы попадаете в частную сеть с людьми, которые что-то да умеют в области ИБ :)



Категория: Программирование / Информационная безопасность

 
Назад Вперед