AVK Selected

Показавшиеся интересными, на мой вкус, посты

[ANN] Roslyn CTP 3 (September 2012 CTP) вышел сегодня

nikov nikov
http://msdn.microsoft.com/en-US/roslyn

New C# Language Features Implemented Since June 2012 CTP:

Collection initializers
Extern aliases
Expression trees
Multi-dimensional arrays
Nullable types
Object initializers
Type forwarders
Unsafe code (except fixed-size buffers)

New VB Language Features Implemented Since June 2012 CTP:

Array literals
Collection initializers
External method declarations (Declare)
Handles clauses
Late-binding
Nullable types
Object initializers
Operator overloading
ParamArray parameters
Partial methods
Shared constructors
User-defined conversions
With statements
XML literals
matumba
matumba
18.09.2012 12:32
nikov, а можно тупой вопрос? Я вот делал кое-что на Рослине для студии (подсказку членов), но столкнулся с такой фишкой, что Рослин сидит как бы "сбоку" от студии — типа пятого колеса И оказалось, что он не влияет на механизмы внутри студии (т.е. когда мой список членов продублировался ещё и студией, я впал в ступор). От предисловия к вопросу: нафик он тогда нужен, этот Рослин? Студия всё равно сделана по-своему и писать надо используя только её механизмы. Сам же Рослин — "черновой вариант" того, что надо было сделать ещё в 2001-ом. Получается, сегодня они рассуждают о том, каким хорошим был бы компилер на Рослине, но практически получается только то, что на нас обкатывают какие-то архитектурные идеи, НАМ ЛИЧНО какая от Рослина польза?
Ziaw
Ziaw
19.09.2012 04:21
Здравствуйте, matumba, Вы писали:

M>nikov, а можно тупой вопрос? Я вот делал кое-что на Рослине для студии (подсказку членов), но столкнулся с такой фишкой, что Рослин сидит как бы "сбоку" от студии — типа пятого колеса И оказалось, что он не влияет на механизмы внутри студии (т.е. когда мой список членов продублировался ещё и студией, я впал в ступор). От предисловия к вопросу: нафик он тогда нужен, этот Рослин? Студия всё равно сделана по-своему и писать надо используя только её механизмы. Сам же Рослин — "черновой вариант" того, что надо было сделать ещё в 2001-ом. Получается, сегодня они рассуждают о том, каким хорошим был бы компилер на Рослине, но практически получается только то, что на нас обкатывают какие-то архитектурные идеи, НАМ ЛИЧНО какая от Рослина польза?


Рослин будет встроен в следующую студию. Когда она появится, тогда и можно будет об этом говорить. Сейчас студия пользуется своими механизмами просто потому, что рослин в стадии CTP и на него нельзя завязываться.

Ваш КО.
Михаил Романов
Михаил Романов
19.09.2012 01:40
Здравствуйте, Ziaw, Вы писали:

Z>Рослин будет встроен в следующую студию. Когда она появится, тогда и можно будет об этом говорить. Сейчас студия пользуется своими механизмами просто потому, что рослин в стадии CTP и на него нельзя завязываться.


Немного наивный вопрос (ибо о Roslyn я знаю только из краткого обзора): правильно ли я понимаю, что Roslyn это не только анализатор, предоставляющий AST, но и некое API для взаимодействия с языковыми сервисами студии?
nikov
nikov
19.09.2012 06:52
Здравствуйте, Михаил Романов, Вы писали:

МР>Немного наивный вопрос (ибо о Roslyn я знаю только из краткого обзора): правильно ли я понимаю, что Roslyn это не только анализатор, предоставляющий AST, но и некое API для взаимодействия с языковыми сервисами студии?


Roslyn не взаимодействует с нативными языковыми сервисами в студии, но может замещать их своими, которые уже можно расширять/дополнять. После установки CTP студию с розлиновскими сервисами можно запустить так:
devenv.exe /rootsuffix Roslyn

Вместе с CTP инсталлируются sample projects, в которых есть примеры, как можно написать свой рефакторинг или анализатор кода, предоставляющий quick fixes в редакторе. Также есть примеры, как можно захостить C# или VB в качестве скриптового языка в своём приложении.
Ziaw
Ziaw
20.09.2012 03:18
Здравствуйте, nikov, Вы писали:

N>Также есть примеры, как можно захостить C# или VB в качестве скриптового языка в своём приложении.


Насколько я понимаю, сейчас это запрещено лицензией?
Михаил Романов
Михаил Романов
20.09.2012 05:07
Здравствуйте, nikov:

Исчерпывающе. Спасибо!
Михаил Романов
Михаил Романов
19.09.2012 01:38
Здравствуйте, nikov, Вы писали:

N>http://msdn.microsoft.com/en-US/roslyn


Владимир, а вы можете привести пару примеров для чего используют Roslyn за пределами Microsoft, если конечно у вас есть такая информация?
AndrewVK
AndrewVK
20.09.2012 11:00
Здравствуйте, Михаил Романов, Вы писали:

МР>Владимир, а вы можете привести пару примеров для чего используют Roslyn за пределами Microsoft, если конечно у вас есть такая информация?


Розлин будет использовать следующая студия со всеми вытекающими.
... << RSDN@Home 1.2.0 alpha 5 rev. 65 on Windows 8 6.2.9200.0>>
Михаил Романов
Михаил Романов
21.09.2012 05:19
Здравствуйте, AndrewVK, Вы писали:

AVK>Розлин будет использовать следующая студия со всеми вытекающими.


Со студией-то все понятно, ту вопросов нет.
А хотелось бы понять, кому еще и для чего будет полезен этот инструмент — и главное, кто уже что-то пробовал воплощать.
AndrewVK
AndrewVK
21.09.2012 07:50
Здравствуйте, Михаил Романов, Вы писали:

МР>А хотелось бы понять, кому еще и для чего будет полезен этот инструмент


Тем, кому надо влезть в языковые средства студии.
... << RSDN@Home 1.2.0 alpha 5 rev. 65 on Windows 8 6.2.9200.0>>
abibok
abibok
07.07.2013 06:41
МР>Владимир, а вы можете привести пару примеров для чего используют Roslyn за пределами Microsoft, если конечно у вас есть такая информация?

1) Статический анализатор кода для coding style enforcement и автоматическое исправление нарушений правил, аналог StyleCop.
2) Сложный автоматический рефакторинг.

И то, и другое с гарантией валидности изменений.
Алексей.
Алексей.
21.09.2012 02:52
Здравствуйте, nikov, Вы писали:

N>New C# Language Features Implemented Since June 2012 CTP:


А как у Рослина обстоят дела с поддержкой нескольких проектов и разных версий сборок?

Например, есть солюшен с двумя проектами P1 и P2.
проект P1 ссылается на mscorlib v2.0.
проект P2 ссылается на mscorlib v4.0 и проект P1.
Оба проекта P1 и P2 ссылаются на System.Object.

Будет ли считаться что проекты ссылаются на один и тот же тип System.Object или нет?
nikov
nikov
22.09.2012 05:48
Здравствуйте, Алексей., Вы писали:

А>А как у Рослина обстоят дела с поддержкой нескольких проектов и разных версий сборок?


А>Например, есть солюшен с двумя проектами P1 и P2.

А>проект P1 ссылается на mscorlib v2.0.
А>проект P2 ссылается на mscorlib v4.0 и проект P1.
А>Оба проекта P1 и P2 ссылаются на System.Object.

А>Будет ли считаться что проекты ссылаются на один и тот же тип System.Object или нет?


Используется такая же политика, как в Dev11. В данном случае будет происходить унификация типов. User-supplied policy в appconfig ещё не реализована.
Есть несколько открытых багов, когда что-то не работает, если более новая версия типа имеет другой базовый тип (к сожалению, такое встречается в FSharp.Core и ещё некоторых сборках).

Если есть какие-то важные сценарии, пожалуйста, присылай мне.
VladD2
VladD2
21.09.2012 04:32
Здравствуйте, nikov, Вы писали:

N>http://msdn.microsoft.com/en-US/roslyn


N>New C# Language Features Implemented Since June 2012 CTP:...


А сколько (и каких?) фич еще не покрыто?
Дьяченко Александр
Здравствуйте, VladD2, Вы писали:

VD>А сколько (и каких?) фич еще не покрыто?


Not yet implemented in C#

  • Async
  • Caller Member Info attributes
  • Dynamic
  • Embedded Interop Types (no-PIA)
  • Multi-targeting
  • Unsafe code (fixed-size buffers)
  • WinRT support
  • XML documentation file generation


    Подробней здесь
    ... << RSDN@Home 1.2.0 alpha 5 rev. 55>>
  • VladD2
    VladD2
    22.09.2012 01:32
    Здравствуйте, Дьяченко Александр, Вы писали:

    ДА>Not yet implemented in C#


    ДА>
  • Async

    Стало быть в парсере реализован весь C#, но почему-то не реализован 5 (или сколько он будет?).
  • Дьяченко Александр
    Здравствуйте, VladD2, Вы писали:

    VD>Стало быть в парсере реализован весь C#, но почему-то не реализован 5 (или сколько он будет?).


    Видимо частями делают, раньше список был гораздо длинее.
    ... << RSDN@Home 1.2.0 alpha 5 rev. 55>>
    nikov
    nikov
    22.09.2012 11:15
    Здравствуйте, VladD2, Вы писали:

    VD>Стало быть в парсере реализован весь C#, но почему-то не реализован 5 (или сколько он будет?).


    Парсер пока не поддерживает новые фичи синтаксиса C# 5.0 и VB 11.0.
    VladD2
    VladD2
    22.09.2012 01:44
    Здравствуйте, nikov, Вы писали:

    N>http://msdn.microsoft.com/en-US/roslyn


    Я правильно понимаю что 2010 студия не поддерживается? Быстро же ее в легаси записали.
    AndrewVK
    AndrewVK
    22.09.2012 09:37
    Здравствуйте, VladD2, Вы писали:

    VD>Я правильно понимаю что 2010 студия не поддерживается? Быстро же ее в легаси записали.


    А зачем в коде для vs12 поддерживать vs10?
    ... << RSDN@Home 1.2.0 alpha 5 rev. 65 on Windows 8 6.2.9200.0>>
    VladD2
    VladD2
    22.09.2012 11:54
    Здравствуйте, AndrewVK, Вы писали:

    AVK>А зачем в коде для vs12 поддерживать vs10?


    Код возможно и для VS15. Это же не значит, что я обязан поставить только вышедшую студия только ради того чтобы погонять в консоли их парсер?
    nikov
    nikov
    22.09.2012 11:13
    Здравствуйте, VladD2, Вы писали:

    N>>http://msdn.microsoft.com/en-US/roslyn


    VD>Я правильно понимаю что 2010 студия не поддерживается?


    В CTP3 из коробки — не поддерживается. На данном этапе отдаём приоритет тестированию фич, а не deployment конфигураций.
    Но поддержку VS2010 нетрудно приделать самому, если очень хочется — все сервисы полностью rehostable.
    Мы их где только не запускали: и в браузере, и в консольке с интерфейсом на псевдографике a-la QBasic (работает и интеллисенс, и анализы, и подсветка ошибок, и Quick Fixes) и т.д.
    VladD2
    VladD2
    22.09.2012 11:53
    Здравствуйте, nikov, Вы писали:

    N>В CTP3 из коробки — не поддерживается. На данном этапе отдаём приоритет тестированию фич, а не deployment конфигураций.

    N>Но поддержку VS2010 нетрудно приделать самому, если очень хочется — все сервисы полностью rehostable.

    Да было бы интересно просто погонять парсер в пакетном режиме. Вот только у меня ни 4.5 фрэймворка, ни 2012 студии нет. Я правильно понял, что CTP3 без 4.5-го фрэймворка не взлетит?
    fddima
    fddima
    24.09.2012 10:49
    Здравствуйте, VladD2, Вы писали:

    N>>http://msdn.microsoft.com/en-US/roslyn

    VD>Я правильно понимаю что 2010 студия не поддерживается? Быстро же ее в легаси записали.
    Более того он сразу же валится на 4.0 фреймворке с тем что не находит Environment.CurrentManagedThreadId.
    QrystaL
    QrystaL
    19.10.2013 03:34
    Здравствуйте, nikov, Вы писали:
    N>http://msdn.microsoft.com/en-US/roslyn

    На днях вышла 2013 студия — как там дела обстоят с Рослином?
    Ikemefula
    Ikemefula
    19.10.2013 07:07
    Здравствуйте, QrystaL, Вы писали:

    N>>http://msdn.microsoft.com/en-US/roslyn


    QL>На днях вышла 2013 студия — как там дела обстоят с Рослином?


    Никак ?
    Nikkk2010
    Nikkk2010
    20.10.2013 03:26
    Здравствуйте, Ikemefula, Вы писали:

    I>Здравствуйте, QrystaL, Вы писали:


    N>>>http://msdn.microsoft.com/en-US/roslyn


    QL>>На днях вышла 2013 студия — как там дела обстоят с Рослином?


    I>Ниак ?


    Релиз VS 2014 будет включать C# 6.0 (основанный на Рослин)