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

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

Миграция unit tests на Visual Studio 2008

При миграции unit-тестов с Visual Studio 2005 на 2008 (.net 2.0) обнаружил интересный баг. Студия радостно отрапортовала об успешной конвертиции проектов, но при запустке тесты проваливались с такой ошибкой:
Method SampleTest.ClassDBTest.MyClassInitialize has wrong signature. Parameter 1 should be of type Microsoft.VisualStudio.TestTools.UnitTesting.TestContext.

Проверив инициализатор убедился что сигнатура метода правильная ещё раз запустил тесты, но они категорически отказывались работать. На компьюторе стояли две среды разработки: VS2008 и VS2008.
После внимательного изучения проекта выяснилось, что после миграции остался старый reference на сборку Microsoft.VisualStudio.QualityTools.UnitTestFramework версии 8.0. После изменения на новую версию 9.0 всё стало на свои места.
Надо отметить что в отчёте о конвертиции проектов никаких замечаний по этому поводу не было.

воскресенье, 20 января 2008 г.

WebApp и Visual Studio 2008

В новой студии, по умолчанию, при создании веб-приложения на master page добавляется ещё один ContentPlaceHolder:

<head runat="server">
<asp:ContentPlaceHolder ID="head" runat="server">
</asp:ContentPlaceHolder>
</head>


Таким образом на любой странице можно легко добавить теги title, meta, link.
Также, по умолчанию, у страницы задан атрибут Title="Untitled Page", из-за чего при использовании <title>My page</title> заголовок страницы не меняется, а исходных html-код получается таким:

<title> Untitled Page </title> <title>My page</title>

Приоритет, у способов установки названия странице, оказался таким (от большего к меньшему):

  • Явно присвоить в коде свойству Title страницы название:
    Title = “My page”;

  • Указать атрибут страице:
    <%@ Page Language="C#" MasterPageFile="~/MyMaster.Master" AutoEventWireup="true" CodeBehind="MyPage.aspx.cs" Inherits="MySite.Pages" Title="My Page" %>

  • Установить тег title:

    <asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server">
    <title>My Page


четверг, 15 ноября 2007 г.

Локальная система контроля версий

Если над проектом работает более одного человека, то рано или поздно наступает момент , когда им необходимо как-то обмениваться исходниками. Тут на помощь приходят CVS, SVN, Visual Source Safe, Team Foundation Server и другие. Одной из особенностей этих систем является то, что они хранят разные версии одних и тех же файлов. Стандартая ситуация: сдать файл в хранилище, сделать в нём изменения и... и достать себе более старую, но правильную версию. Эта система работает до одного момента: исходники не компилируются, а текущее их состояние надо зафиксировать. Раньше мне приходилось копировать изменяемые файлы в отдельные папки, чтобы иметь возможность в любой момент выбрать нужную мне версию.
Недавно на www.codeplex.com/ нашел маленький (41), но очень полезный прокет - Visual Local History 2005. Он хранит все изменения файлов и даёт возможность в любой момент восстановить любую из доступных версий.
После установки плагина для VS (поддерживается как Visual Studio 2005, так и 2008 Beta) в меню Tools появляется новый пункт меню, после выбора которого перед нами появляется окно плагина.

При открытии или создании проекта или solution в его папке создаётска скрытая папка с именем ".history", куда
после каждого сохранения файла записывается его предыдущее состояние.

Для восстановления нужной копии досточно лишь сделать правый клик по нужному файлу в окне Local History выбрать Restore.
Простой интерфейс, скромный набор функций, но очень полезный плагин. Пользуюсь им уже около месяца и теперь не представляю как я раньше работал без него. Вместе с intellisense он экономит не только время, но и нервы. Всегда есть возможность посмотреть на то, как изменялся файл и вернуться к предыдущей точке.
Как говорится, лучше один рах попробывать самому, а потом пользоваться этим каждый день.