Подтвердить что ты не робот

Каковы преимущества использования Roslyn - компилятора в качестве сервиса

Что такое CaaS (компилятор как услуга) в отношении проекта Roslyn?

Как использование функции Roslyn повышает производительность приложения С# над текущим компилятором С# 4.0?

Каковы известные ограничения/проблемы в Roslyn-CTP?

4b9b3361

Ответ 1

Что именно означает компилятор как услуга (CaaS) по отношению к Roslyn? Вы можете смотреть видео, где Андерс Хейлсберг объясняет это (рассказ о Roslyn начинается через 35 минут). В принципе, старый компилятор С# является "черным ящиком": приходит исходный код, выходят сборные сборки. Рослин дает вам доступ в эту коробку. Это означает, что вы можете получить синтаксическую и семантическую информацию о некотором коде, изменить ее и вернуть ее компилятору для дальнейшей обработки. Вы можете использовать это для анализа кода, рефакторинга, генерации кода и т.д.

Существует длинный список функций, которые не реализованы в текущем CTP на форуме Roslyn.

Что касается производительности, я не думаю, что среди целей Roslyn. Кроме того, компилятор JIT более важен для оптимизации производительности, чем компилятор С#/VB. И Roslyn заменяет компилятор С#/VB, а не компилятор JIT.

Ответ 2

Компилятор как услуга (CaaS) по отношению к Roslyn просто означает, что процесс компиляции разбит на куски с общедоступным API, который позволяет вам изучать синтаксические и семантические модели, созданные компилятором во время компиляции. Компиляторы Roslyn С# и VB полностью заменяют существующие компиляторы, поэтому вы можете продолжать использовать их таким же образом, как сегодня используете компиляторы (в виде отдельных исполняемых файлов, которые преобразуют текстовые файлы в сборки .net). Вы также можете использовать компиляторы как библиотеки API, которые помогут вам создавать инструменты, которые выполняют более глубокие или различные виды анализа кода.

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

Ответ 3

Одно из преимуществ, которое имеет Roslyn, - это когда вашему приложению нужен скриптовый интерфейс. С Roslyn вы можете напрямую скомпилировать script как исходный код С# с теми же возможностями программирования, что и источник приложения, и напрямую использовать его.

Ответ 4

Я в восторге от Roslyn, потому что это позволит более простой способ реализовать Аспектно-ориентированное программирование. Используя AOP, вы можете писать общие "политики" и применять их в своем коде вместо того, чтобы распространять его по всему вашему коду. Используя компилятор Roslyn, вы можете сплести эти политики в своем коде во время компиляции и сохранить сквозные проблемы для загрязнения вашего бизнес-кода. Если вы хотите использовать некоторые варианты использования, проверьте, какие списки PostSharp используются в качестве случаев их использования.

http://www.sharpcrafters.com/

  • Правила ведения журнала
  • Политика обработки исключений
  • Автоматическая синхронизация потоков (убедитесь, что нужные вещи вызвал поток пользовательского интерфейса)
  • Автоматический аудит вызовов функций
  • Автоматическое создание реализаций INotifyPropertyChanged для автоматических свойств
  • и более