Codekana for Visual Studio
Нашел на днях отличный плагин для Visual Studio - Codekana. Основная функция - покраска кода. Очень удобно. Я вообще считаю, что такие вещи должны поддерживаться изначально самим редактором.
Нашел на днях отличный плагин для Visual Studio - Codekana. Основная функция - покраска кода. Очень удобно. Я вообще считаю, что такие вещи должны поддерживаться изначально самим редактором.
Вышла 4-я версия ORM тулкита от IdeaBlade. Она построена на Entity Framework, небольшой обзор на сайте производителя.
The SDK documentation for StyleCop 4.3 is now available for download, here.
This documentation explains how to create and install custom StyleCop rules, how to integrate custom settings into the StyleCop settings dialog, and how to create a wrapper for hosting StyleCop in a custom build environment.
Появилась Axialis IconWorkshop™ Lite для Microsoft Visual Studio® 2008. Скачать можно здесь.
Greetings from JetBrains!
We are pleased to announce the general availability of ReSharper 4.0!
This release brings you the most up-to-date support for C# 3.0, including LINQ, and Visual Studio 2008 in general. The major upgrade also features multiple new usability and productivity-boosting tools, such as standard class library annotations, solution-wide analysis (for C#), versatile code cleanup, new automated refactorings, new and improved code-editing capabilities, and more.
Complete product information about JetBrains ReSharper is available at http://www.jetbrains.com/resharper.
ReSharper 4.0 is available for a 30-day free trial download at http://www.jetbrains.com/resharper/download. No evaluation licenses are required.
New customers can purchase ReSharper 4.0 online at http://www.jetbrains.com/resharper/buy.
Please NOTE: All those who have purchased ReSharper 3.0 or ReSharper 3.1 after December 21, 2007 qualify for a free upgrade!
Wishing you develop with pleasure!! Team JetBrains
Source Analysis, also known as StyleCop, analyzes C# source code to enforce a set of best practice style and consistency rules.
JetBrains heralds a happy release of ReSharper 4.0 Beta, a state-of-the-art productivity tool for .NET developers! ReSharper 4.0 introduces a substantial pack of new features and improvements, of which the following are presumably the most delicious:
As before, ReSharper comes in three editions: Full, C# and VB.NET, which are called on to bring every customer precisely what they need - and enjoy the savings.
Download the beta version of ReSharper 4.0 to test the power of new capabilities and help us put the finishing touch on the product. Whatever edition you want, whatever version of Visual Studio you use, there's a single download file for all.
Develop with pleasure! The JetBrains Team
Microsoft Line Of Code Counter - порядочно полезная утилита!
Из названия понятно, что считает строчки кода. Но это не аналог Project Line Counter т.к. позволяет
Гибко настраивается через XML файл. Изначально поддержка всех основных MS-языков. Работает как в составе Visual Studio 2005 так и отдельно.
По словам моего сотрудника, человека с приличным опытом, TypeMock.NET - лучшее решение для генерации (точнее сказать - просто решение, но об этом позже) Mock-объектов и использования их в юнит тестах.
Традиционные Mock фреймворки имеют определенные требования к объектной модели, обусловленные принципами функционирования - сабклассинг и динамическая генерация кода. Эти требования нередко заставляют проектировать с учетом необходимости юнит тестирования посредством Mock-объектов, что негативно сказывается на конечном результате и удобстве использования. Некоторые вещи вообще с трудом подлежат юнит тестированию, например, классы, использующие внешние статические методы. Решается либо условной компиляцией (далеко не уйдешь) либо перепрограммированием механизма взаимодействия объектов (порядочное усложнение существующего кода).
Итак, почему же "#1 Mocking Framework"? Лучше всего сразу посмотреть на возможности TypeMock.NET, который доступен в 3-х редакциях - Community (бЭсплатно), Professional и Enterprise (соответсвенно, за денюжку).
Если пройтись по списку фич, можно заметить такие интересные и, на первый взгляд, невозможные вещи, как "mock all types, including sealed and internal classes", "fake any method", "mock third-party types, including types in the .NET framework". Нам заявляют, что TypeMock способен подделать поведение любого объекта, в т.ч. его статических методов!
Банальнейший пример
демонстрирует, что sealed класс SqlConnection начинает вести себя так, как ему приказано! Шокирующих примеров хватает.
Досих пор меня мучил главный вопрос - как это работает?! Парочка часов скитаний по сети увенчалась успехом! Итак айнц, цвай, драй. И все стало на свои места.
Хитрое решение - перехватывать события .NET приложения (например, вызов метода) с помощью публично доступного Profiler API (на этом, кстати, построены все профайлеры .NET приложений) и подменять исходное поведение требуемым. Хитрое, но не идеальное, т.к. возникают проблемы с отладкой юнит тестов.
Как итог могу написать, что TypeMock решает главную проблему, связанную с юнит тестированием, - проблему создания изолированно-тестируемых классов. С TypeMock об этом вообще можно смело забыть.
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\8.0\FontAndColors\{A27B4E24-A735-4D1D-B8E7-9716E1E3D8E0}]
"Colorable item format version"=dword:00000008
"Line Numbers Foreground"=dword:00ff0000
"Line Numbers Background"=dword:02000000
"Line Numbers FontFlags"=dword:80000000
"Comment Foreground"=dword:008ba77c
"Comment Background"=dword:02000000
"Comment FontFlags"=dword:00000000
"Identifier Foreground"=dword:00e22b8a
"Identifier Background"=dword:02000000
"Identifier FontFlags"=dword:00000000
"Number Foreground"=dword:000431e3
"Number Background"=dword:02000000
"Number FontFlags"=dword:00000000
"Operator Foreground"=dword:00400080
"Operator Background"=dword:02000000
"Operator FontFlags"=dword:00000000
"Preprocessor Keyword Foreground"=dword:000045ff
"Preprocessor Keyword Background"=dword:02000000
"Preprocessor Keyword FontFlags"=dword:00000000
"ReSharper C# 'base' and 'this' Keywords Foreground"=dword:00ff0000
"ReSharper C# 'base' and 'this' Keywords Background"=dword:02000000
"ReSharper C# 'base' and 'this' Keywords FontFlags"=dword:00000001
"ReSharper Completion Replacement Range Foreground"=dword:01000000
"ReSharper Completion Replacement Range Background"=dword:00e1e4ff
"ReSharper Completion Replacement Range FontFlags"=dword:00000000
"ReSharper Current Line Foreground"=dword:02000000
"ReSharper Current Line Background"=dword:000febf0
"ReSharper Current Line FontFlags"=dword:00000000
"ReSharper Dead Code Foreground"=dword:00fae6e6
"ReSharper Dead Code Background"=dword:00000000
"ReSharper Dead Code FontFlags"=dword:00000000
"ReSharper Field Identifier Foreground"=dword:00aab220
"ReSharper Field Identifier Background"=dword:02000000
"ReSharper Field Identifier FontFlags"=dword:00000000
"ReSharper Hides Foreground"=dword:00b6216e
"ReSharper Hides Background"=dword:02000000
"ReSharper Hides FontFlags"=dword:00000000
"ReSharper Implements Foreground"=dword:00ff901e
"ReSharper Implements Background"=dword:02000000
"ReSharper Implements FontFlags"=dword:00000000
"ReSharper Implements And Hides Foreground"=dword:00ee687b
"ReSharper Implements And Hides Background"=dword:02000000
"ReSharper Implements And Hides FontFlags"=dword:00000000
"ReSharper Implements And Overrides Foreground"=dword:00cd0000
"ReSharper Implements And Overrides Background"=dword:02000000
"ReSharper Implements And Overrides FontFlags"=dword:00000000
"ReSharper Local Variable Identifier Foreground"=dword:00998877
"ReSharper Local Variable Identifier Background"=dword:02000000
"ReSharper Local Variable Identifier FontFlags"=dword:00000000
"ReSharper Matched Brace Foreground"=dword:01000000
"ReSharper Matched Brace Background"=dword:00ffff00
"ReSharper Matched Brace FontFlags"=dword:00000000
"ReSharper Method Identifier Foreground"=dword:003c14dc
"ReSharper Method Identifier Background"=dword:02000000
"ReSharper Method Identifier FontFlags"=dword:00000000
"ReSharper Namespace Identifier Foreground"=dword:00800000
"ReSharper Namespace Identifier Background"=dword:02000000
"ReSharper Namespace Identifier FontFlags"=dword:00000001
"ReSharper Operator Identifier Foreground"=dword:002925e2
"ReSharper Operator Identifier Background"=dword:02000000
"ReSharper Operator Identifier FontFlags"=dword:00000001
"ReSharper Overrides Foreground"=dword:003715bf
"ReSharper Overrides Background"=dword:02000000
"ReSharper Overrides FontFlags"=dword:00000000
"ReSharper Parameter Identifier Foreground"=dword:0013458b
"ReSharper Parameter Identifier Background"=dword:02000000
"ReSharper Parameter Identifier FontFlags"=dword:00000000
"ReSharper Read Usage Foreground"=dword:01000000
"ReSharper Read Usage Background"=dword:00face87
"ReSharper Read Usage FontFlags"=dword:00000000
"ReSharper Recursion Foreground"=dword:000000ff
"ReSharper Recursion Background"=dword:00000000
"ReSharper Recursion FontFlags"=dword:00000000
"ReSharper Type Identifier Foreground"=dword:00e22b8a
"ReSharper Type Identifier Background"=dword:02000000
"ReSharper Type Identifier FontFlags"=dword:00000000
"ReSharper Write Usage Foreground"=dword:01000000
"ReSharper Write Usage Background"=dword:00c1b6ff
"ReSharper Write Usage FontFlags"=dword:00000000
"String Foreground"=dword:00ff00ff
"String Background"=dword:02000000
"String FontFlags"=dword:00000000
"String (C# @ Verbatim) Foreground"=dword:00facf05
"String (C# @ Verbatim) Background"=dword:02000000
"String (C# @ Verbatim) FontFlags"=dword:00000000