Как стать автором
Обновить

Комментарии 39

>> Поддержка INotifyPropertyChanged (автоматическая подстановка названий свойств)

ДАНУНА?!
Особенно забавно видеть это сейчас, ведь в C# 5.0 есть Caller Information аттрибуты.
Некоторые и на 4 не перешли
Особенно забавно видеть людей, у которых вот прям сейчас на билд-серверах крутится компилятор C# 5.0, на всех девелоперских машинах стоит VS2012 RC, а продакшн серьёзно юзает .NET Framework 4.5 :)

Ещё забавнее видеть людей, которые сталкиваясь с INPC, юзали настолько примитивные VM-объекты, что в них не было зависимостей между свойствами и из сеттера одного свойства не требовалось уведомлять об изменениях других вычисляемых свойств. Тут ни [CallerMemberName], ни PostSharp не поможет :)

А больше всех я люблю людей, которые юзают везде System.Linq.Expressions и когда их продукт разрастается, смотрят в memory-профайлер и удивляются почему простое присвоение свойству так гадит аллоациями в managed heap, а процессорное временя всё больше проваливается в GC :)

В любом случае, я рад, что проблема INPC обошла Вас стороной :)
Судя по фиче, заявленной в описании («автоматическая подстановка названий свойств»), непонятно, как оно может реализовывать сценарии, описанные во втором и третьем абзаце. Да и в каменте я подразумевал что C# 5.0 уже почти на подходе, а не то, что «C# 5.0 стоит у всех».
Содержимое топика писал не представитель JetBrains, за его содержимое я не могу ответить.

R# 7.0 предлагает строгую типизацию строковых литералов, передаваемых в notify-метод, а это значит что Вы получаете автоматический rename и рефакторинги, навигацию сквозь этот строковой литерал, валидацию модификатора доступа таких свойств (INPC-свойства обязаны быть публичными), конвертирование обычного свойства/автосвойства в свойство с нотификацией в одно контекстное действие, массовое создание свойств с нотификациями из полей и конечно же code completion.

Всё это позволит с лёгкостью добавлять дополнительные нотификации в сеттер (второй абзац), а R# будет осуществлять типизацию, следить за rename'ами и удалениями свойств.

Более того, если notify-метод получает expression вместо строки (третий абзац), то мы помогаем вставлять в сеттер свойства нотификацию с () => Property или x => x.Property в качестве аргументов.
Классно, так бы и стоило ответить вместо попытки подколоть в первом комментарии, ведь комментарий писался исходя из того, что есть в топике.
>а продакшн серьёзно юзает .NET Framework 4.5 :)

например, Bing уже использует

Точно по такой же причине, по которой мы разрабатываем ReSharper с помощью самых последних внутренних билдов ReSharper — чтобы непрерывно контроллировать качество и выявить как можно больше проблем силами самой команды. У Microsoft такой же подход, они многими командами сидели на VS11 за месяцы до выхода в паблик Developer Preview.
На сколько я понял, фича реализована для распространенных фреймворков, для своего кода нужно юзать аннотации (NotifyPropertyChangedInvocatorAttribute)
Совершенно верно. Анализ множества INPC-фреймворков показал, что выявить общий «паттерн» notify-методов не представляется возможным (везде разные базовые классы, разные имена методов, разные имена и порядки параметров, разные подходы), поэтому собственные реализации классов типа «ViewModelBase» придётся проаннотировать атрибутом [NotifyPropertyChangedInvocator]. Это не требует никаких бинарных зависимостей, реализацию этого атрибута можно просто скопировать себе в проект их наших настроек -> Code annotations -> Copy default implementation to clipboard.
РЕШАРПЕР! ЛЮБЛЮ ТЕБЯ! :)
Замечательно, спасибо JetBrains!
Слоган в тему, хотя я уже привык к новому интерфейсу :)
Помня как вела себя 6 версия сразу после выхода, я подожду 7.2
До релиза я «сидел» на EAP. Если не считать пары «сломанных» ночных билдов — полёт нормальный.
ну, судя по вчерашнему срочному фиксу и переписке в твиттере — я бы тоже посидел хотя бы до 7.1. К тому же апгрейдиться опять за деньги… Часто как-то и дорого.
Добрый день.
«Срочный фикс» относился не к самому решарперу, а к нашему e-shop. Была небольшая проблема, связанная с тем, что пользователи не могли купить апгрейд-лицензию с 6.х на 7.х C# Edition. Уже исправили.
За ту пару «сломанных» билдов можно минусануть лично меня… :)
Да ладно, с кем не бывает :)
> Новые шаблоны и инструменты для разработки под Win RT
Класс! Да, приятно, что такой продукт делают соотечественники.
А этим занималась Питерская контора, и я присутствовал на одном из дней разработки :)
Не только питерская ;)
Замечательно! Завтра опробуем.
Интересно, насчет производительности хоть что-то решено было? или как в предыдущих версиях — нормально работает при солюшене в 5-10 проектов, не более?
по-моему, это уже какая-то байка. постоянно работаю с солюшенами с 30 проектами и более. проблема решается достаточно мощным компьютером. и даже с учетом возможных тормозов, код пишется в разы быстрее и удобнее благодаря решарперу, так что оно того стоит.
Я иногда работаю с солюшеном ReSharper на лаптопе (конечно же с самим ReSharper'ом), 300 проектов, лаптоп с Core i3 @ 2.5Ghz, 8Gb и SATA-II SSD — работу можно назвать близкой к комфортной.

В версию 7.0 мы встроили движок dotTrace, так что теперь вы можете оперативно снять снепшотик (ReSharper — Help — Profile Visual Studio) и буквально за пару кликов заслать его к нам, мы починим-подкрутим и все будут счастливы!
Смотри тут
182 проекта в общем солюшене, Core i5 2310, 8Gb RAM — полет нормальный :) Запускается по личным ощущениям на ~20% дольше, но потом разница практически незаметна
Кстати, в VS2012 появилась асинхронная загрузка solution'ов — если раньше 300 проектов грузились аж минуты 3-5, то сейчас адские тормоза наблюдаются секунд 30 и можно уже начинать работать, а солюшен продолжает загружаться.
Это отлично, как раз собираемся переходить на VS2012 :)
Fujitsu lifebook nh570. Core i5, 8 gb. с решарпером студия начинает жрать в 2 раза больше памяти. Три открытых студии с солюшенами в 30-40 проектов делают работу за компьютером невыносимой.
Навскидку могу предположить, что рост памяти студии сублинеен при увеличении числа проектов… Сейчас не поленился открыть 2 солюшена: один на 50 проектов, второй — на 182. Проекты из солюшена #1 — это подмножество проектов из солюшена #2. Далее я по полчаса работал в каждом из них, в.т.ч. используя функции решарпера. Итог: солюшен #1: 725 MB; солюшен #2: 841 MB;
АААА! =( Ну когда же они сделают тоже но для С++ =((
/* прям реально крик души */
Абсолютно аналогично! VS + Visual Assist X даже близко не дают такого удобства, эх…
и не дадут. сама платформа C++ дает меньше возможностей для анализа кода. нет того же reflection, например.
Да я и сам это прекрасно понимаю. Но легче от этого не становится, в особенности, когда приходится ковырять плюсовый код после длительной работы на C#
Решарпер анализирует cs файлы, рефлекшен ему максимум для внешних либ нужен. На С++, как мне кажется, гораздо большие проблемы доставляют шаблоны, которые являются по сути встроенным тьюрингполным языком.
Незаменимый инструмент! Спасибо громадное разработчикам за их труд.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории