.NET Core libraries is one of the most popular C# projects on GitHub. It's hardly a surprise, since it's widely known and used. Owing to this, an attempt to reveal the dark corners of the source code is becoming more captivating. So this is what we'll try to do with the help of the PVS-Studio static analyzer. What do you think — did I manage to eventually find something interesting?
Читать полностью »
Рубрика «C#» - 32
Checking the .NET Core Libraries Source Code by the PVS-Studio Static Analyzer
2019-08-13 в 14:46, admin, рубрики: .net, .net core, bugs, C#, code quality, microsoft, open source, pvs-studio, static code analysis, Блог компании PVS-Studio, разработка под windowsЗаблуждения начинающих C# разработчиков. Пытаемся ответить на стандартные вопросы
2019-08-12 в 18:07, admin, рубрики: .net, C#, clr, CoreCLR, mistakes, runtime, среда испольненияНедавно мне выпала возможность пообщаться с довольно большим количеством начинающих специалистов по разработке на языке C#. Многие из них интересуются языком и платформой, и это очень круто. Среди зеленых юниоров распространено мракобесие по поводу очевидных (только что прочитавшему книгу про память) вещей. И это же натолкнуло меня на мысль о создании этой статьи. Статья в первую очередь нацелена на начинающих разработчиков, но думаю, что многие факты будут полезны и практикующим инженерам. Ну и самые очевидные и неинтересные заблуждения, разумеется, опущены. Здесь собраны наиболее интересные и значимые, особенно с точки зрения прохождения интервью.
Blazor + MVVM = Silverlight наносит ответный удар, потому что древнее зло непобедимо
2019-08-11 в 22:36, admin, рубрики: .net, ASP, ASP.NET, asp.net core, Blazor, C#, css, html, Программирование, Разработка веб-сайтовПривет! Таки да, скоро выходит net core 3.0 и там будет шаблон проекта с Blazor как один из дефолтных. Название у фреймворка, по-моему, похоже на название какого-нибудь покемона. Блазор вступает в бой! Решил я значит глянуть что за зверь такой и с чем его едят поэтому сделал на нем Todo лист. Ну и на Vue.js тоже, для сравнения с сабжем потому что по моему они похожи система компонентов в обоих и реактивность и вот это все. Больше тудушек богу тудушек! По факту это Гайд для юных, не окрепших умов которым лень TypeScript или JavaScript учить а кнопочки и инпуты на сайте сделать хочется. Как в том меме -«Технарь хотел написать книгу но получилась инструкция». Кому интересны мои похождения в фронт энде или узнать что за Blazor такой добро пожаловать под кат.Читать полностью »
История о том, как PVS-Studio нашёл ошибку в библиотеке, используемой в… PVS-Studio
2019-08-08 в 8:24, admin, рубрики: .net, bugs, C#, code quality, open source, pvs-studio, static code analysis, Блог компании PVS-Studio, качество кода, ошибки, разработка под windows, статический анализ кода
Это небольшая история о том, как с помощью PVS-Studio удалось найти ошибку в исходном коде библиотеки, используемой в PVS-Studio. Причём не теоретическую, а фактическую — ошибка проявлялась на практике при использовании библиотеки в анализаторе.
Читать полностью »
The story of how PVS-Studio found an error in the library used in… PVS-Studio
2019-08-08 в 8:23, admin, рубрики: .net, bugs, C#, code quality, open source, pvs-studio, static code analysis, Блог компании PVS-Studio, разработка под windows
This is a short story about how PVS-Studio helped us find an error in the source code of the library used in PVS-Studio. And it was not a theoretical error but an actual one — the error appeared in practice when using the library in the analyzer.
Читать полностью »
WinForms: Errors, Holmes
2019-08-07 в 8:21, admin, рубрики: .net, C#, microsoft, pvs-studio, Visual Studio, windows forms, Блог компании PVS-Studio, разработка под windows
We like to search for errors in Microsoft projects. Why? It's simple: their projects are usually easy to check (you can work in Visual Studio environment for which PVS-Studio has a convenient plugin) and they contain few errors. That's why the usual work algorithm is as follows: find and download an open source project from MS; check it; choose interesting errors; make sure there are few of them; write an article without forgetting to praise the developers. Great! Win-win-win: it took a little time, the bosses are glad to see new materials in the blog, and karma is fine. But this time «something went wrong». Let's see what we have found in the source code of Windows Forms and whether we should speak highly of Microsoft this time.
Читать полностью »
Асинхронные Stream в C# 8
2019-08-06 в 18:59, admin, рубрики: .net, async/await, C#, clrium, Блог компании Семинары Станислава Сидристого, параллельное программирование, ПрограммированиеФункционал Async/Await появился в C# 5, чтобы улучшить скорость отклика пользовательского интерфейса и веб-доступ к ресурсам. Другими словами, асинхронные методы помогают разработчикам выполнять асинхронные операции, которые не блокируют потоки и возвращают один скалярный результат. После многочисленных попыток Microsoft упростить асинхронные операции, шаблон async/await завоевал хорошую репутацию среди разработчиков благодаря простому подходу.
Существующие асинхронные методы значительно ограничены тем, что должны возвращать только одно значение. Давайте рассмотрим некий обычный для такого синтаксиса метод async Task<int> DoAnythingAsync()
. Результатом его работы является некоторое одно значение. Из-за такого ограничения нельзя использовать эту функцию с ключевым словом yield
и асинхронным интерфейсом IEnumerable<int>
(чтобы вернуть результат асинхронного перечисления).
Шейдеры интерактивных карт в Unity
2019-08-05 в 8:56, admin, рубрики: C#, shaders, unity, unity3d, Дизайн игр, игровые движки, Работа с 3D-графикой, разработка игр, трёхмерная графика, шейдерыЭтот туториал посвящён интерактивным картам и их созданию в Unity при помощи шейдеров.
Этот эффект может служить основой более сложных техник, например голографических проекций или даже песочного стола из фильма «Чёрная пантера».
Источником вдохновения для этого туториала стал опубликованный Baran Kahyaoglu твит, демонстрирующий пример того, что он создаёт для Mapbox.
Читать полностью »
Шифрование конфигурационных файлов
2019-08-03 в 14:37, admin, рубрики: .net, ASP, C#, config, encryption, Разработка веб-сайтовПредыстория
Мне поступила задача по настройке CI. Было принято решение использовать трансформацию конфигурационных файлов и конфиденциальные данные хранить в зашифрованном виде.
Изучив документацию по шифрованию, вот что было сделано.
Key Container
В каждой ОС Windows есть наборы сгенерированных ключей. Ключ генерируется либо на учетную запись, либо на машину. Ключи сгенерированные на машину можно посмотреть по этому пути C:ProgramDataMicrosoftCryptoRSAMachineKeys. Сюда и отправиться ключ который мы создадим далее.
Читать полностью »
Выбираем лучший backend-язык для контейнеризации в Docker
2019-08-03 в 13:12, admin, рубрики: C#, devops, docker, Go, java, node.js, nodejs, php, python, ruby, ПрограммированиеПривет! Я решил выяснить, на каком языке программирования можно написать веб-приложение, чтобы при его контейнеризации Docker-образ получился легковесным, а сборка образа была быстрой.