Рубрика «roslyn»

C#, Кодогенерация и DDD. Часть 2 — Получаем данные и пробуем генерировать - 1

Это - вторая публикация в серии DDD и кодогенерация. (первая частьЧитать полностью »

C#, Кодогенерация и DDD Часть 3.1 — Правим подключение пакетов Nuget. Убираем рефлексию. Генерируем конечные точки MVC - 1

Это - третья публикация в серии DDD и кодогенерация. (первая Читать полностью »

Идёшь по Хабру, видишь двух парней в шляпах волшебников. Вдруг, резко - белый свет, какая-то синева... О, EmptyBox!

Идёшь по Хабру, видишь двух парней в шляпах волшебников. Вдруг, резко - белый свет, какая-то синева... О, EmptyBox!

Введение

Привет! За окном весна, или даже почти лето, а значит - Читать полностью »

Каждый разработчик часто сталкивается с написанием большого объема рутинного и повторяющегося кода, который имеет один и тот же смысл. Начиная с C# версии 9 появилась возможность генерации кода, которая интегрирована напрямую с компилятором. Такой подход позволяет избавиться от множества строк шаблонного кода. О нём сегодня и поговорим.

Доброго времени суток. В последнее время я много эксперементрировал с .Net 5 и его Source Generator-ами. И мне внезапно пришла идея как можно использовать Source Generator-ы для реализации "duck typing"-а в C#. Я не мог просто оставить эту идею. В итоге вышла, я бы сказал, чисто акамическая штука(никто не будет использовать это на проде, я надеюсь), но результат получился довольно интересен. Всем кому интересно прошу под кат!

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

Деревья выражений System.Linq.Expressions дают возможность выразить намерения не только самим кодом, но и его структурой, синтаксисом.

Их создание из лямбда-выражений — это, по сути, синтаксический сахар, при котором пишется обычный код, а компилятор строит из него синтаксическое дерево (AST), которое в том числе включает ссылки на объекты в памяти, захватывает переменные. Это позволяет манипулировать не только данными, но и кодом, в контексте которого они используются: переписывать, дополнять, пересылать, а уже потом компилировать и выполнять.

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

В прошлой статье я описал способ организации кодогенераци при помощи Roslyn. Тогдашней задачей было продемонстрировать общий подход. Сейчас я хочу реализовать то, что будет иметь реальное применение.

И так, кому интересно посмотреть на то как можно сделать библиотеку на подобие AutoMapper прошу под кат.

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

Время от времени, когда я читал о Roslyn и его анализаторах, у меня постоянно возникала мысль: "А ведь этой штукой можно сделать nuget, который будет ходить по коду и делать кодогенерацию". Быстрый поиск не показал ничего интересного, по этому было принято решение копать. Как же я был приятно удивлен, когда обнаружил что моя затея не только реализуемая, но все это будет работать почти без костылей.

И так кому интересно посмотреть на то как можно сделать "маленькую рефлексию" и запаковать ее в nuget прошу под кат.

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

Что такое Roslyn?

Roslyn – это набор компиляторов с открытым исходным кодом и API для анализа кода для языков C# и VisualBasic .NET от Microsoft.
Анализатор Roslyn – мощный инструмент для анализа кода, нахождения ошибок и их исправления.

Синтаксическое дерево и семантическая модель

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

Синтаксическое дерево — это элемент, который строится на основании исходного кода программы, и необходимый для анализа кода. В ходе анализа кода по нему происходит перемещение.

Каждый код обладает синтаксическим деревом. Для следующего объекта класса

class A
{
    void Method()
    {
    }
}

синтаксическое дерево будет выглядеть так:

Дерево

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

Что такое Roslyn?

Roslyn – это набор компиляторов с открытым исходным кодом и API для анализа кода для языков C# и VisualBasic .NET от Microsoft.
Анализатор Roslyn – мощный инструмент для анализа кода, нахождения ошибок и их исправления.

Синтаксическое дерево и семантическая модель

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

Синтаксическое дерево — это элемент, который строится на основании исходного кода программы, и необходимый для анализа кода. В ходе анализа кода по нему происходит перемещение.

Каждый код обладает синтаксическим деревом. Для следующего объекта класса

class A
{
    void Method()
    {
    }
}

синтаксическое дерево будет выглядеть так:

Дерево

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


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