<p> Ребята из JetBrains <a href="http://www.jetbrains.com/resharper?rs40pr" title="новый решарпер">выпустили</a> новый решарпер и теперь он доступен для "покупки" и <a href="http://www.jetbrains.com/resharper/download/?rs40pr" target="_blank" title="скачать resharper 4.0">скачивания</a> с их <a href="http://www.jetbrains.com/resharper/" title="официальный сайт решарпера">официального сайта.</a> </p> <p align="center"> <img src="/image.axd?picture=image_3.png" alt="" /> </p> <p> Пожалуй самая интересная фича нового решарпера - <strong>поддержка C# 3.0 и LINQ</strong>. Но первая вещь которую я заметил, это "Reformat" переименовали в "Cleanup Code", и поначалу, это сбивало с толку. Зато сейчас эта фича поддерживает профайлы, т.е. различные профайлы могут делать различные "очистки кода": переход к авто-свойствам, использование анонимных типов, формирование readonly полей, если это возможно и многое другое. </p> <p>  <img src="/image.axd?picture=release_notes_code_cleanup.png" alt="" /> </p> <p> Но единственное, что у меня пока не получилось - это редактирование стандартных профайлов. </p> <p> Следующее, на что я обратил внимание это <strong>инициализация объектов</strong>, к примеру если я напишу </p> <p>
</p> Task t = new Task(); t.Name = "Test"; <p>
</p> <p> То решарпер мне предложит поступить следующим образом: </p> <p>
</p> Task t = new Task {Name = "Test"}; <p>
</p> <p> Аналогичным образом решарпер предлагает использовать <strong>implicit type variable</strong>: </p> <p> <img src="/image.axd?picture=release_notes_use_var.png" alt="" /> </p> <p> Решарпер советует использовать var везде, где это возможно. Такое решение далеко не всегда оправдано, поэтому я отключил этот функционал. </p> <p> <img src="/image.axd?picture=disable-var.jpg" alt="" /><br /> <br /> Зачатки <strong>JetBrains.Annotation</strong> были еще в решарпере версии 2.5. Если помните был такой "Null Reference Analysis", который оповещал разработчика о возможных NullReferenceException в коде. Чтобы избежать такого анализа разработчики добавляли к свойствам, атрибуты NotNull или CanBeNull, которые решарпер позже использовал для инициализации состояния переменных. В новой же версии количество таких атрибутов значительно увеличилось. Скажем, если вы хотите явно указать, что ваш строковый параметр будет обрабатываться с помощью string.Format, то можете написать следующее </p> <p>
</p> [StringFormatMethod("key")] public void Put(string key, params object[] args) { ... } <p>
</p> <p> После чего вызвав эту функцию<br /> </p> <p>
</p> Put("testing {0}, {1}, {2}", 1, 2); <p>
</p> решарпер подскажет, что переменная для аргумента {2} отсутствует. Но использования этой фичи требует включения нескольких JetBrain библиотек в ваш проект, что несколько смущает... <p> Довольно удобным стал <strong>CamelHumps Completion</strong>, позоволяющий писать лишь заглавные буквы ключевых слов, названий классов, переменных:<br /> </p> <p>
</p> if(CVM.I.SV(SCV.FU  <p>
</p> После нажатия магического сочетания клавиш <em><Ctrl-Shift-Enter>, </em><span>получаем</span> <p>
</p> if (CodeViewManager.Instance.SupportsView(StandardCodeViews.FindUsages)) { } <p>
</p> <p> Как я уже упоминал, теперь решарпер полностью поддерживает <strong>C# 3.0 </strong>и <strong>LINQ</strong>, что не может не радовать.<br /> </p> <p>   <img src="/image.axd?picture=release_notes_convert_to_lambda.png" alt="" /> </p> <p> <strong>Recent Edits</strong> позволяет быстро получить доступ к недавно редактируемым участкам кода (<em>CTRL + "-"</em> уже просто достал!): </p> <p>   <img src="/image.axd?picture=RecentEdits.png" alt="" /> </p> <p> <br /> И в заключение, хочу добавить, что создатели решарпера <a href="http://resharper.blogspot.com/2008/06/resharper-40-gone-diamond.html" title="клятва создателей решарпера">клянутся</a>, что он стал <strong>быстрее</strong>, особенно в <a href="http://resharper.blogspot.com/2008/05/resharper-4-beta.html" title="обработка asp.net">обработке ASP.NET</a> кода. </p> <p> <strong>Полезные ссылки:</strong> </p> <p> <a href="http://www.jetbrains.com/resharper/" target="_blank" title="официальный сайт решарпера">Официальный сайт решарпера</a> </p> <p> <a href="http://www.jetbrains.com/resharper/features/newfeatures.html" target="_blank" title="новые фичи четвертого решарпера">Новые фичи четвертого решарпера</a>  </p> <p> <a href="http://www.jetbrains.com/resharper/download/?rs40pr" target="_blank" title="Resharper 4.0">Скачать Resharper 4.0</a>  </p> <p> <a href="http://www.jetbrains.com/resharper/buy/?rs40pr" target="_blank">Купить Resharper 4.0</a>  </p> <p> <a href="http://resharper.blogspot.com/" target="_blank" title="блог Ильи">Блог Ильи Рыженкова</a>, продукт-менеджера компании JetBrains  </p>

Ребята из JetBrains выпустили новый решарпер и теперь он доступен для "покупки" и скачивания с их официального сайта.

Пожалуй самая интересная фича нового решарпера - поддержка C# 3.0 и LINQ. Но первая вещь которую я заметил, это "Reformat" переименовали в "Cleanup Code", и поначалу, это сбивало с толку. Зато сейчас эта фича поддерживает профайлы, т.е. различные профайлы могут делать различные "очистки кода": переход к авто-свойствам, использование анонимных типов, формирование readonly полей, если это возможно и многое другое.

 

Но единственное, что у меня пока не получилось - это редактирование стандартных профайлов.

Следующее, на что я обратил внимание это инициализация объектов, к примеру если я напишу

Task t = new Task(); t.Name = "Test";

То решарпер мне предложит поступить следующим образом:

Task t = new Task {Name = "Test"};

Аналогичным образом решарпер предлагает использовать implicit type variable:

Решарпер советует использовать var везде, где это возможно. Такое решение далеко не всегда оправдано, поэтому я отключил этот функционал.



Зачатки JetBrains.Annotation были еще в решарпере версии 2.5. Если помните был такой "Null Reference Analysis", который оповещал разработчика о возможных NullReferenceException в коде. Чтобы избежать такого анализа разработчики добавляли к свойствам, атрибуты NotNull или CanBeNull, которые решарпер позже использовал для инициализации состояния переменных. В новой же версии количество таких атрибутов значительно увеличилось. Скажем, если вы хотите явно указать, что ваш строковый параметр будет обрабатываться с помощью string.Format, то можете написать следующее

[StringFormatMethod("key")] public void Put(string key, params object[] args) { ... }

После чего вызвав эту функцию

Put("testing {0}, {1}, {2}", 1, 2);

решарпер подскажет, что переменная для аргумента {2} отсутствует. Но использования этой фичи требует включения нескольких JetBrain библиотек в ваш проект, что несколько смущает...

Довольно удобным стал CamelHumps Completion, позоволяющий писать лишь заглавные буквы ключевых слов, названий классов, переменных:

if(CVM.I.SV(SCV.FU 

После нажатия магического сочетания клавиш <Ctrl-Shift-Enter>, получаем

if (CodeViewManager.Instance.SupportsView(StandardCodeViews.FindUsages)) { }

Как я уже упоминал, теперь решарпер полностью поддерживает C# 3.0 и LINQ, что не может не радовать.

 

Recent Edits позволяет быстро получить доступ к недавно редактируемым участкам кода (CTRL + "-" уже просто достал!):

 


И в заключение, хочу добавить, что создатели решарпера клянутся, что он стал быстрее, особенно в обработке ASP.NET кода.

Полезные ссылки:

Официальный сайт решарпера

Новые фичи четвертого решарпера 

Скачать Resharper 4.0 

Купить Resharper 4.0 

Блог Ильи Рыженкова, продукт-менеджера компании JetBrains 

&lt;/p&gt; Task t = new Task(); t.Name = &amp;quot;Test&amp;quot;; &lt;p&gt;
&lt;/p&gt; &lt;p&gt; То решарпер мне предложит поступить следующим образом: &lt;/p&gt; &lt;p&gt;
&lt;/p&gt; Task t = new Task {Name = &amp;quot;Test&amp;quot;}; &lt;p&gt;
&lt;/p&gt; &lt;p&gt; Аналогичным образом решарпер предлагает использовать &lt;strong&gt;implicit type variable&lt;/strong&gt;: &lt;/p&gt; &lt;p&gt; &lt;img src=&quot;/image.axd?picture=release_notes_use_var.png&quot; alt=&quot;&quot; /&gt; &lt;/p&gt; &lt;p&gt; Решарпер советует использовать var везде, где это возможно. Такое решение далеко не всегда оправдано, поэтому я отключил этот функционал. &lt;/p&gt; &lt;p&gt; &lt;img src=&quot;/image.axd?picture=disable-var.jpg&quot; alt=&quot;&quot; /&gt;&lt;br /&gt; &lt;br /&gt; Зачатки &lt;strong&gt;JetBrains.Annotation&lt;/strong&gt; были еще в решарпере версии 2.5. Если помните был такой &amp;quot;Null Reference Analysis&amp;quot;, который оповещал разработчика о возможных NullReferenceException в коде. Чтобы избежать такого анализа разработчики добавляли к свойствам, атрибуты NotNull или CanBeNull, которые решарпер позже использовал для инициализации состояния переменных. В новой же версии количество таких атрибутов значительно увеличилось. Скажем, если вы хотите явно указать, что ваш строковый параметр будет обрабатываться с помощью string.Format, то можете написать следующее &lt;/p&gt; &lt;p&gt;
&lt;/p&gt; [StringFormatMethod(&amp;quot;key&amp;quot;)] public void Put(string key, params object[] args) { ... } &lt;p&gt;
&lt;/p&gt; &lt;p&gt; После чего вызвав эту функцию&lt;br /&gt; &lt;/p&gt; &lt;p&gt;
&lt;/p&gt; Put(&amp;quot;testing {0}, {1}, {2}&amp;quot;, 1, 2); &lt;p&gt;
&lt;/p&gt; решарпер подскажет, что переменная для аргумента {2} отсутствует. Но использования этой фичи требует включения нескольких JetBrain библиотек в ваш проект, что несколько смущает... &lt;p&gt; Довольно удобным стал &lt;strong&gt;CamelHumps Completion&lt;/strong&gt;, позоволяющий писать лишь заглавные буквы ключевых слов, названий классов, переменных:&lt;br /&gt; &lt;/p&gt; &lt;p&gt;
&lt;/p&gt; if(CVM.I.SV(SCV.FU&amp;nbsp; &lt;p&gt;
&lt;/p&gt; После нажатия магического сочетания клавиш &lt;em&gt;&amp;lt;Ctrl-Shift-Enter&amp;gt;, &lt;/em&gt;&lt;span&gt;получаем&lt;/span&gt; &lt;p&gt;
&lt;/p&gt; if (CodeViewManager.Instance.SupportsView(StandardCodeViews.FindUsages)) { } &lt;p&gt;
&lt;/p&gt; &lt;p&gt; Как я уже упоминал, теперь решарпер полностью поддерживает &lt;strong&gt;C# 3.0 &lt;/strong&gt;и &lt;strong&gt;LINQ&lt;/strong&gt;, что не может не радовать.&lt;br /&gt; &lt;/p&gt; &lt;p&gt; &amp;nbsp; &lt;img src=&quot;/image.axd?picture=release_notes_convert_to_lambda.png&quot; alt=&quot;&quot; /&gt; &lt;/p&gt; &lt;p&gt; &lt;strong&gt;Recent Edits&lt;/strong&gt; позволяет быстро получить доступ к недавно редактируемым участкам кода (&lt;em&gt;CTRL + &amp;quot;-&amp;quot;&lt;/em&gt; уже просто достал!): &lt;/p&gt; &lt;p&gt; &amp;nbsp; &lt;img src=&quot;/image.axd?picture=RecentEdits.png&quot; alt=&quot;&quot; /&gt; &lt;/p&gt; &lt;p&gt; &lt;br /&gt; И в заключение, хочу добавить, что создатели решарпера &lt;a href=&quot;http://resharper.blogspot.com/2008/06/resharper-40-gone-diamond.html&quot; title=&quot;клятва создателей решарпера&quot;&gt;клянутся&lt;/a&gt;, что он стал &lt;strong&gt;быстрее&lt;/strong&gt;, особенно в &lt;a href=&quot;http://resharper.blogspot.com/2008/05/resharper-4-beta.html&quot; title=&quot;обработка asp.net&quot;&gt;обработке ASP.NET&lt;/a&gt; кода. &lt;/p&gt; &lt;p&gt; &lt;strong&gt;Полезные ссылки:&lt;/strong&gt; &lt;/p&gt; &lt;p&gt; &lt;a href=&quot;http://www.jetbrains.com/resharper/&quot; target=&quot;_blank&quot; title=&quot;официальный сайт решарпера&quot;&gt;Официальный сайт решарпера&lt;/a&gt; &lt;/p&gt; &lt;p&gt; &lt;a href=&quot;http://www.jetbrains.com/resharper/features/newfeatures.html&quot; target=&quot;_blank&quot; title=&quot;новые фичи четвертого решарпера&quot;&gt;Новые фичи четвертого решарпера&lt;/a&gt;&amp;nbsp; &lt;/p&gt; &lt;p&gt; &lt;a href=&quot;http://www.jetbrains.com/resharper/download/?rs40pr&quot; target=&quot;_blank&quot; title=&quot;Resharper 4.0&quot;&gt;Скачать Resharper 4.0&lt;/a&gt;&amp;nbsp; &lt;/p&gt; &lt;p&gt; &lt;a href=&quot;http://www.jetbrains.com/resharper/buy/?rs40pr&quot; target=&quot;_blank&quot;&gt;Купить Resharper 4.0&lt;/a&gt;&amp;nbsp; &lt;/p&gt; &lt;p&gt; &lt;a href=&quot;http://resharper.blogspot.com/&quot; target=&quot;_blank&quot; title=&quot;блог Ильи&quot;&gt;Блог Ильи Рыженкова&lt;/a&gt;, продукт-менеджера компании JetBrains&amp;nbsp; &lt;/p&gt; ">