Средства визуального проектирования классов
В Visual Studio 2005 есть возможность конструировать классы визуально (в Visual C# 2005 Express такой возможности нет). Утилита Class Designer позволяет просматривать и изменять взаимосвязи типов (классов, интерфейсов, структур, перечней и делегатов), включенных в проект. С помощью этого инструмента можно визуально добавлять, модифицировать и удалять члены типов, а результаты модификации будут отображаться в соответствующем C#-файле. Аналогично, если изменить данный C#-файл, соответствующие изменения будут отражены в окне диаграммы классов.
Для работы с этими возможностями Visual Studio 2005 сначала нужно создать новый файл диаграммы классов. Это можно сделать по-разному, и один из вариантов – щелчок на кнопке View Class Diagram (Просмотр диаграммы классов), которая размещается вверху справа в окне Solution Explorer (рис. 2.22).
Рис. 2.22. Создание файла диаграммы классов
После этого вы увидите пиктограммы классов, входящих в ваш проект. Щелчок на изображении стрелки будет показывать или скрывать члены типа (см. рис. 2.23).
Рис. 2.23. Просмотр диаграммы классов
Эту утилиту удобно использовать с двумя другими возможностями Visual Studio 2005 – окном Class Details (активизируется из меню View→Other Windows) и разделом Class Designer панели инструментов (активизируется из меню View→Toolboх). Окно Class Details не только показывает структуру выбранного в настоящий момент элемента диаграммы, но и позволяет модифицировать существующие и вставлять новые члены класса (рис. 2.24).
Рис. 2.24. Окно содержимого классов
Панель инструментов (рис. 2.25) позволяет с помощью визуальных средств вставлять в проект новые типы из раздела Class Designer (и создавать связи между этими типами). (Чтобы этот раздел панели инструментов был видимым, окно диаграммы классов должно быть активным.) При этом IDE автоматически создает новые определения C#-типов в фоновом режиме.
Рис. 2.25. Вставка нового класса с помощью визуальных средств Class Designer
Для примера перетащите новый класс из раздела Class Designer панели инструментов в окно диаграммы классов, В соответствующем диалоговом окне укажите для этого нового класса имя Car (автомобиль). Затем, используя окно Class Details, добавьте в класс открытое строковое поле, назначив, ему имя petName (имя любимца), как показано на рис. 2.26.
Рис. 2.26. Добавление поля в окно содержимого класса
Если теперь взглянуть на определение C#-класса Car, вы увидите, что оно соответствующим образом обновлено.
public class Car {
// Использовать открытые данные без необходимости
// не рекомендуется, но здесь это сделано для простоты
public string petName;
}
Добавьте в окно диаграммы классов еще один новый класс с именем SportsCar (спортивный автомобиль). Затем в разделе Class Designer панели инструментов выберите пункт Inheritance (Наследование) и щелкните на пиктограмме класса SportsCar. Не отпуская левую кнопку мыши, переместите указатель на пиктограмму класса Car. Если все было сделано правильно, вы должны получить класс SportsCar, являющийся производным класса Car (рис. 2.27).
Чтобы закончить построение примера, добавьте в сгенерированный класс SportsCar открытый метод PrintPetName().
public class SportsCar: Car {
public void PrintPetName() {
petName = "Фредди";
Console.WriteLine("Имя этой машины: {0}", petName);
}
}
Рис. 2.27. Визуальное получение производного класса из класса, имеющегося в наличии
Стенд тестирования объектов (ОТВ-тестер)
Еще одним удобным инструментом визуальный разработки в Visual Studio 2005 является ОТВ-тестер (Object Test Bench – стенд тестирования объектов). Этот инструмент IDE позволяет быстро создать экземпляр класса и выполнить вызов его членов без компиляции и выполнения всего приложения. Это очень удобно в тех случаях, когда вы хотите проверить работу конкретного метода, но в обычных условиях для этого требуется "пройти" через десятки строк программного кода.
Для работы с ОТВ-тестером щелкните правой кнопкой мыши на типе, который вы создаете с помощью окна проектирования классов. Например, щелкните правой кнопкой мыши на типе SportsCar и из появившегося контекстного меню выберите Create Instance→SportsCar(), Появится диалоговое окно, которое позволит задать имя вашей временной объектной переменной (и, если нужно, предоставить конструктору необходимые аргументы). После завершения процесса вы обнаружите свой объект в рамках IDE. Щелкните правой кнопкой мыши на пиктограмме объекта и вызовите метод PrintPetName() (рис. 2.28).
Рис. 2.28. Стенд тестирования объектов в Visual Studio 2005
Вы увидите сообщение "Имя этой машины: Фредди", которое появится в Visual Studio 2005 в рамках консоли Quick.
Интегрированная справочная система
В завершение давайте обсудим возможность Visual Studio 2005, которая по определению должна быть удобной. Речь здесь идет об интегрированной справочной системе. Документация .NET Framework 2.0 SDK исключительно хороша, очень удобна для чтения и содержит очень много полезной информации. С учетом огромного количества встроенных .NET-типов (их число измеряется тысячами) вы должны быть готовы закатать рукава, чтобы погрузиться в глубины предлагаемой документации. Если же вы к этому не готовы, то при разработке .NET-приложений вы обречены на бесконечные трудности и многочисленные разочарования.
В Visual Studio 2005 предлагается окно Dynamic Help (Динамическая справка), которое (динамически!) изменяет свое содержимое в зависимости от того, какой элемент (окно, меню, ключевое слово исходного кода и т.д.) является активным в настоящий момент. Например, если вы поместите Курсор мыши на класс Console, окно Dynamic Help отобразит набор разделов справки, имеющих отношение к типу System.Console.
Также следует знать об одном очень важном подкаталоге документации .NET Framework 2.0 SDK. В разделе .NET Development→NET Framework SDK→Class Library Reference документации вы найдете полные описания всех пространств имен из библиотек базовых классов .NET (рис. 2.29).
Рис. 2.29. Справка по библиотеке базовых классов .NET
Каждый "узел" здесь определяет набор типов данного пространства имен, члены данного типа и параметры каждого члена. Более того, при просмотре страницы помощи для данного типа сообщается имя компоновочного блока и пространства имен, которые содержат рассматриваемый тип (соответствующая информация размещается в верхней части страницы). Я предполагаю, что при изучении материала данной книги вы доберетесь до очень и очень глубоко спрятанных узлов, чтобы получить важные дополнительные сведения о рассматриваемых объектах.
Дополнительные средства разработки .NET-приложений
В заключение хотелось бы обратить ваше внимание на ряд инструментов разработки .NET, которые могут дополнить функциональные возможности выбранной вами IDE. Многие из упомянутых здесь инструментов имеют открытый исходный код, и все они бесплатны. В этой книге нет места для подробного описания этих утилит, но в табл. 2.5 представлены описания инструментов, которые я считаю чрезвычайно полезными, а также URL-адреса, по которым можно найти дополнительную информацию.
Таблица 2.5. Подборка средств разработки .NET-приложений
Название Описание URL-адрес FxCop Этот инструмент входит в разряд обязательных для любого разработчика .NET-приложений, заинтересованного в совершенствовании своих программ. FxCop проверит любой компоновочный блок .NET на соответствие официальным требованиям и рекомендациям Microsoft .NET http://www.gotdotnet.com/tеаm/fxcop Lab Roeder's Refleсtor для .NET Этот усовершенствованный декомпилятор/браузер объектов NET позволяет проанализировать реализацию любого .NET-типа, использующего CIL, C#, Object Pascal .NET (Delphi) или Visual Basic .NET http://www.aisto.сom/roeder/dotfnet NAnt NAnt является .NET-эквивалентом Ant – популярного автоматизированного средства создания модулей Java. NAnt позволяет определять и выполнять подробные сценарии компоновки, используя синтаксис XML http://sourceforge.net/projects/nant NDoc C помощью NDoc можно генерировать файлы документации для программного кода C# (или компилированных компоновочных блоков .NET) в самых популярных форматах (*.chm MSDN, XML, HTML, Javаdoc и LaTeX) http://sourseforge.net/projects/ndoc NUnit NUnit является.NET-эквивалентом инструмента JUnit, предназначенного для тестирования Java-модулей. С помощью NUnit можно упростить процесс проверки управляемого программного кода http://www.nunit.org Vil Воспринимайте Vil как "старшего брата" разработчика .NET. Этот инструмент проанализирует программный код .NET и предложит ряд рекомендаций относительно того, как улучшить его о помощью факторизации, структурированной обработки исключений и т.д. http://www.Ibot.com
Замечание. Функциональные возможности FxCop сейчас интегрированы в Visual Studio 2005. Чтобы в этом убедиться, выполните двойной щелчок на пиктограмме Properties (Свойства) в окне Solution Explorer и активизируйте вкладку Code Analysis (Анализ программного кода).