Рубрика «roslyn» - 2

PVS-Studio vs Roslyn

Время от времени мы возвращаемся к проектам, которые уже проверяли ранее с помощью PVS-Studio и писали про это статьи. Делать это интересно по двум причинам. Во-первых, чтобы понять, насколько лучше стал наш анализатор. Во-вторых, чтобы отследить, обратили ли авторы проекта внимание на нашу статью, а также на отчет об ошибках, который мы им обычно предоставляем. Конечно, ошибки могут быть исправлены и без нашего участия. Но всегда приятно, когда именно наши усилия помогают сделать какой-то проект лучше. Не стал исключением и Roslyn. Предыдущая статья о проверке этого проекта датируется 23 декабря 2015 года. Это довольно давно, учитывая путь, который за это время проделал в своём развитии наш анализатор. Дополнительный интерес лично для нас Roslyn представляет ещё и тем, что на нём базируется ядро C# анализатора PVS-Studio. Таким образом, мы очень заинтересованы в качестве кода этого проекта. Устроим ему повторную проверку и выясним, что же нового и интересного (но будем надеяться, что ничего существенного) там сможет найти PVS-Studio.
Читать полностью »

AutoMapper один из основных инструментов применяемых в разработке Enterprise приложений, поэтому хочется писать как можно меньше кода определяя маппинг сущностей.

Мне не нравится дублирование в MapFrom при широких проекциях.

CreateMap<Pupil, PupilDto>()
 .ForMember(x => x.Name, s => s.MapFrom(x => x.Identity.Passport.Name))
 .ForMember(x => x.Surname, s => s.MapFrom(x => x.Identity.Passport.Surname))
 .ForMember(x => x.Age, s => s.MapFrom(x => x.Identity.Passport.Age))
 .ForMember(x => x.Number, s => s.MapFrom(x => x.Identity.Passport.Number))

Я бы хотел переписать так:

CreateMap<Pupil, PupilDto>()
 .From(x=>x.IdentityCard.Passport).To()

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

Автор статьи — Мэдс Торгерсен, ведущий архитектор C# в Microsoft

Проект Roslyn

Roslyn — это кодовое название, которое закрепилось за open-source компилятором для C# и Visual Basic.NET. Проект начинался в самой глубокой тьме последнего десятилетия корпоративной жизни Microsoft — и завершился как проект с открытым исходным кодом, кросс-платформенный, публичный универсальный движок для C# (и VB, что я приму как данность в остальной части статьи).

Первые разговоры о проекте, который впоследствии станет известен как Roslyn, уже шли, когда я пришёл на работу в Microsoft в 2005 году — незадолго до выпуска .NET 2.0. Шёл разговор о переписывании C# на C#. Это нормальная практика для языков программирования — доказательство зрелости языка. Но была и более практичная и важная мотивация: мы, создатели C#, сами не программировали на C#, мы программировали на C++! Если же ежедневно программировать на C#, то вы меняете своё мнение: великая сила работы на том инструменте, какой разрабатываете (dogfooding).
Читать полностью »

Болтовня ничего не стоит. Покажите мне код.
— Linus Torvalds

Всем привет! Я работаю программистом в маленькой (но гордой) gamedev-конторе. В последние несколько лет фирма выпускает casual игры под мобилки в жанре match3. Пишем мы на C# (что не может не радовать) и не используем Unity (ну почти). Так сложилось, что основная зона моей ответственности — gameplay и UI. А ещё я без ума от C#’а и его экосистемы. Сегодня хочу рассказать, как у меня получилось применить инструмент анализа и модификации кода Roslyn для редактирования игрового контента. Кому интересно — прошу под кат.

Примечание. Разделы, в которых разбирается способ реализации и приводятся примеры кода отмечены с помощью [технический раздел] в заголовках. Если нет желания погружаться в детали на таком уровне, просто пропускайте их. На общем понимании идеи это не скажется.
Читать полностью »

image

Как-то раз моему коллеге в беклог упала задача «хотим организовать взаимодействие с внутренним REST-api так, чтобы любое изменение контракта сразу приводило к ошибке компиляции». Что может быть проще? – подумал я, однако работа с получившимся кактусом вынудила заняться многочасовым курениям документации, спуску от привычных концепций оверинжинеринга «налепим побольше интерфейсов, добавим максимум косвенности, и приправим всё это DI» до переезда на .Net Core, ручной кодогенерации промежуточного ассемблера и изучения нового компилятора C#. Лично я для себя открыл много интересного как в рантайме, так и в структуре самого компилятора. Думаю, некоторые вещие уже знают, а некоторые станут полезной пищей для размышления.

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

На днях объяснял одному товарищу что такое анализаторы Roslyn и как их писать. Ответ получился массивным, и я решил вынести его в отдельную публикацию.

Что такое анализаторы Roslyn? Если коротко — это отличный способ писать рефакторинги вроде Решарперовских. Постоянно встречаете одну и ту же ошибку в процессе ревью? Напишете анализатор с фиксером и забудьте про эту ошибку. Техническая сторона довольно проста, для первоначального знакомства отлично подойдут вот эта статья, вот это видео, вот эта серия постов, и вот этот туториал. Я же попытаюсь описать грабли моменты, которые лично у меня вызывали затруднение.
Читать полностью »

В этой статье я расскажу, как мы написали собственные анализаторы кода и чистим с их помощью нашу кодовую базу .net от наиболее острых / частых косяков. Главный посыл — сделать это довольно просто, не бойтесь писать свои анализаторы для борьбы с именно вашими багами. Вторичный посыл — попробуйте наши анализаторы и сообщите о результатах. Полное руководство я писать не буду, их довольно много в интернете, а вот небольшой обзор, что это как и с какими проблемами я столкнулся, надеюсь, окажется вам полезным.
Читать полностью »

Поддержка Visual Studio 2017 и Roslyn 2.0 в PVS-Studio: иногда использовать готовые решения не так просто - 1В данной статье я хочу рассказать о том, с какими проблемами столкнулись разработчики PVS-Studio при поддержке новой версии Visual Studio. Кроме того, постараюсь ответить на вопрос: почему поддержка нашего C# анализатора, основанного на «готовом решении» (в данном случае, это Roslyn), оказывается в некоторых ситуациях более затратной, чем нашего «самописного» С++ анализатора.
Читать полностью »

В мире .NET все прекрасно — платформа движется в правильном направлении, новые технологии обкатываются и встают на ноги. В последнее время много разговоров про .NET/ASP.NET Core, и кажется, что все забыли про Roslyn, который предоставляет широкие документированные возможности по работе с кодом как во время рантайма, так и в процессе разработки.
Дивный новый Roslyn: Кому нужны собственные анализаторы кода и скриптинг на C#? - 1

Дивный новый Roslyn: Кому нужны собственные анализаторы кода и скриптинг на C#? - 2Чтобы исправить это, мы взяли интервью у Filip W, Microsoft MVP, контрибьютора Roslyn и просто одного из наиболее популярных в мире ASP.NET блоггеров. Почему Filip считает, что изменения в новом С# могут пройти незамеченными, зачем писать собственные анализаторы кода, а также почему скриптинг на C# лучше, чем любом скриптовом языке?
Читать полностью »

«Хаос в .NET-мире — разумная цена за скорость развития платформы»: интервью с Андреем Акиньшиным (JetBrains) - 1

Проект Rider (.NET IDE от JetBrains) дошёл до публичной EAP-версии — самое время подробно расспросить Андрея Акиньшина, одного из его разработчиков. Но Rider стал не единственной темой нового выпуска «Без слайдов». Помимо него, поговорили

  • о библиотеке BenchmarkDotNet, которую разрабатывает Андрей
  • о движении Microsoft к опенсорсу и кроссплатформенности
  • об общем состоянии .NET-мира и, конечно,
  • о .NET-конференции DotNext (которая, кстати, состоится в Москве уже в эту пятницу)

Как всегда, под катом есть полная расшифровка интервью.

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


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