Показаны сообщения с ярлыком Visual Studio. Показать все сообщения
Показаны сообщения с ярлыком Visual Studio. Показать все сообщения

Тестируем DTE

вторник, 9 июня 2009 г.,

Предположим, что требуется протестировать открытие определенного проекта в Visual Studio. Для этого надо:
1) создать UnitTest проект.
2) добавить в References: Microsoft.VSSDK.TestHostFramework (С:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\PublicAssemblies\Microsoft.VSSDK.TestHostFramework.dll)
3) у тестового метода определить атрибут HostTypeAttribute:
[TestMethod()]
[HostType("VS IDE")]
public void InvokeTest()
{
    var dte = VsIdeTestHostContext.Dte;
    dte.Events.SolutionEvents.Opened += () =>
    {
    };
    dte.ExecuteCommand("File.OpenProject", @"""C:\Projects\Test.csproj""");
}
В результате во время выполнения теста в отдельной Visual Studio откроется проект Test.csproj, а также будет вызван обработчик события Opened.

Если не указать HostTypeAttribute, то VsIdeTestHostContext.Dte вернет null.
Параметры для HostTypeAttribute определены в реестре: "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\9.0\EnterpriseTools\QualityTools\HostAdapters\"

Генераторы кода в Visual Studio

суббота, 30 мая 2009 г.,

В Visual Studio в Solution Explorer'е если стать на файл, например, с расширением dbml и нажать F4, то откроется панель свойств, в которой есть строка "Custom Tool: MSLinqToSQLGenerator" - это имя генератора, который на основе содержимого dbml файла создает соответствующий код.
Генерация кода происходит в момент сохранения dbml файла.

Информацию о генераторах можно найти в реестре в ветке: "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\9.0\Generators\". Генераторы для C# находятся в ветке "{FAE04EC1-301F-11D3-BF4B-00C04F79EFBC}", в которой указан MSLinqToSQLGenerator (где CLSID: {A25ACB97-FE65-4575-9B25-A89ADAECF4CE} - это идентификатор, по которому можно найти имя сборки и класс генератора).

Для этого переходим в ветку "HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\10.0_Config\CLSID\{A25ACB97-FE65-4575-9B25-A89ADAECF4CE}", в которой указаны:
  • Assembly: Microsoft.VisualStudio.ORDesigner.Dsl, Version=10.0.0.0, Culture=Neutral, PublicKeyToken=B03F5F7F11D50A3A
  • Class: Microsoft.VisualStudio.ORDesigner.CodeGenerator.SingleFileGenerator
Т.е. генерацию C#-кода для dbml-файла выполняет класс SingleFileGenerator, определенный в файле D:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\Microsoft.VisualStudio.ORDesigner.Dsl.dll

Некоторые генераторы установленны в GAC (Global Assembly Cache; C:\Windows\assembly) как, например, TextTemplatingFileGenerator (TemplatedCodeGenerator, Microsoft.VisualStudio.TextTemplating.VSHost.dll).

P.S.
TemplatedCodeGenerator входит в состав Visual Studio 2008 SDK; см. С:\Program Files\Microsoft Visual Studio 2008 SDK\VisualStudioIntegration\Common\Assemblies\Microsoft.VisualStudio.TextTemplating.VSHost.dll

см. T4 (Text Template Transformation Toolkit) Code Generation - Best Kept Visual Studio Secret

Visual Studio Team System 2010 Team Suite доступен

понедельник, 18 мая 2009 г.,

С 18 мая 2009 подписчики MSDN могут скачать

На конференции MIX09 представлен Silverlight 3

четверг, 19 марта 2009 г.,

Silverlight 3 доступен для разработчиков: Silverlight 3 Beta - Windows Developer Runtime.
Также доступна online-документация.
Шаблоны проектов для Visual Studio и многое другое есть в Microsoft® Silverlight™ 3 Tools Beta 1 for Visual Studio 2008 SP1.

Новое в Silverlight 3:
  1. поддержка устройств с multitouch-интерфейсом
  2. поддержка форматов H.264, AAC, MPEG-4
  3. перспективная 3D-графика и аппаратное ускорение при работе с трехмерной графикой
  4. Bitmap API
  5. более 60-ти контролов
  6. возможность запускать Silverlight-приложения вне браузера
  7. ... подробнее: здесь (en) и здесь (рус)

P.S.
Примеры контролов - Silverlight Toolkit (долго загружается); исходники.

ASP.NET MVC 1.0


Был ASP.NET MVC RC2, а теперь ASP.NET MVC 1.0, то есть вышел / зарелизен. Это радует. Но при установке возможна проблема: в окне Installing Microsoft ASP.NET MVC 1.0 Setup, в момент отображения "Status: Configuring MVC templates for Visual Studio" всплывает диалог:

There is a problem with this Windows installer package. A program run as part ot the setup did not finish as expected. Contact your support personnel or package vendor.

Решение: открыть Control Panel\Programs\Programs and Features и для Spec# вызвать Uninstall. Возможно, что F# также придется деинсталлировать.

Другие попытки, такие как:
  1. очистка реестра
  2. переустановка Visual Studio
  3. изучения файла С:\Users\имя_пользователя\AppData\Local\Temp\MvcTemplates.Log - создает установщик ASP.NET MVC 1.0
  4. вызов msiexec /i AspNetMvcRC-setup.msi /l*v .\mvc_install.log
  5. наблюдение за работой ASP.NET MVC 1.0 Installer'a через Procmon.exe
  6. установка обновлений и hotfix'ов
  7. проверка на вирусы и трояны
  8. остановка лишних windows service'ов
  9. ... обсценная лексика
никак не помогут.

P.S.
После установки в папке С:\Users\имя_пользователя\AppData\Local\Temp появилось 5619 файлов в 1251 папках с префиксом "TempЦифра_" - их можно удалить.

Вывод трассировочной информации

понедельник, 16 марта 2009 г.,

В Visual Studio трассировочная информация - значение, переданное в метод System.Diagnostics.Trace.WriteLine - обычно выводится в Output Window (открывается в ответ на нажатие Ctrl+W и O).
Чтобы трассировочная информация выводилась в Immediate Window необходимо:
  1. в главном меню выбрать Tools - Options - Debugging - General
  2. включить Redirect all Output Window text to the Immediate Window
Immеdiate Window открывается в ответ на нажатие Ctrl+D и I. Также окно можно открыть если вызвать Command Window (Ctrl+W и A), набрать Debug.Immediate и нажать Enter.

Старт

четверг, 5 марта 2009 г.,

Итак начинаем! Страна должна знать *странно .. почему-то в blogger'ном редакторе нет кнопки strike; пришлось заглянуть в html*.

В блоге будут примеры на C#, потому что он лучший. Если не согласны?! О_о назовите хоть одну причину.

Что будем использовать?
  1. .NET Framework
  2. Visual Studio 2008
  3. ASP.NET MVC
    (это лучше чем ASP.NET, потому что позволяет тестировать логику с помощью юнит-тестов)
  4. WCF-сервисы
    (не путать с веб-сервисами)
  5. SQL Server 2008 или SQL Server 2005 Express Edition (= SSEE)
  6. Silverlight
    (для визуализации)
  7. LINQ
P.S.
лицензионное ПО для студентов совершенно бесплатно на сайте ms-student.ru; бесплатный веб-хостинг!