Microsoft Visual Studio .NET. Обзор основных новинок в версии Beta 2. Часть 2Источник: КомпьютерПресс, № 10'2001 Алексей Федоров
Оглавление
В предыдущем номере мы начали знакомство с основными новинками, появившимися в Microsoft Visual Studio .NET Beta 2. Мы выяснили, что с помощью этого средства облегчается создание XML Web-сервисов и Web-приложений, а также существенно увеличивается производительность труда разработчиков. В этой части статьи мы рассмотрим новые версии языков программирования, которые поддерживаются в Microsoft Visual Studio .NET, а также средства, обеспечивающие поддержку всего цикла создания корпоративных приложений. Расширение функциональности языков программирования Новая версия Microsoft Visual Studio обеспечивает поддержку более 20 различных языков программирования, среди которых четыре ключевых языка - Visual Basic .NET, Visual C# .NET, Visual C++ .NET и JScript .NET - предоставляются фирмой Microsoft. Другие фирмы разрабатывают компиляторы таких языков, как COBOL, FORTRAN, Perl, Python, RPG, Eiffel и Java В последнее время Microsoft почти не упоминает о поддержке JScript в составе Microsoft Visual Studio .NET и практически все примеры предоставляются на VB.NET и C#, хотя, возможно, мы еще увидим новую версию JScript .NET, которая будет соответствовать спецификации ECMSScript Edition 4 и включать компилятор, поддержку классов и доступ к ядру .NET. Отметим, однако, что JScript .NET - это язык, который можно будет использовать только для создания Web-приложений на основе ASP.NET и для написания пакетных программ для среды .NET. Ниже мы подробнее рассмотрим три языка программирования фирмы Microsoft - Visual Basic .NET, Visual C# .NET, Visual C++ .NET. Visual Basic .NET - наиболее простое и в то же время самое продуктивное из входящих в состав Visual Studio .NET средств для создания Windows- и Web-приложений. Новая версия языка пополнилась такими возможностями, как полная поддержка объектно-ориентированного программирования (включая наследование), визуальное наследование для форм, упрощенный доступ к функциям Windows, создание сервисов Windows NT и консольных приложений. Полная поддержка наследования - наследования реализации (implementation inheritance) и визуального наследования форм - позволяет создавать приложения, в которых повторно используются большие объемы кода. Типичный пример таких приложений - Internet-приложения, содержащие множество общих элементов: электронные магазины, порталы, поисковые системы и т.п. Используя ключевое слово inherits, разработчики могут наследовать существующие классы, например: Class ECommerce Function GetCustomer() … End Function Class ECommerceEx Inherits ECommerce Function GetOrders() … End Function Экземпляры унаследованных классов поддерживают все методы и интерфейсы базовых классов. Кроме того, унаследованный класс может расширять набор методов и интерфейсов, поддерживаемых в базовом классе. Унаследованный класс также может переопределять методы базового класса с помощью ключевого слова overrides. Для предотвращения ошибок Visual Basic позволяет переопределять только такие методы, которые помечены как переопределяемые (overridable) в базовом классе. Overloads Sub Display(theChar As Char) ... Overloads Sub Display(theInteger As Integer) ... Overloads Sub Display(theDouble As Double) В предыдущих версиях языка разработчикам приходилось либо создавать метод с уникальным именем для каждого типа данных, либо передавать данные как тип variant. Параметризованные конструкторы дают разработчикам возможность создавать новые экземпляры классов и одновременно передавать им наборы аргументов. Конструкторы являются неотъемлемой частью объектно-ориентированного программирования и позволяют создавать и инициализировать новые экземпляры классов одной строкой кода. Помимо рассмотренных выше объектно-ориентированных расширений языка, в Visual Basic .NET поддерживается многопоточная модель, позволяющая создавать асинхронные приложения. Это особенно актуально при создании масштабируемых Web-приложений, если требуется выполнить сложное вычисление, длительный запрос и т.п. Ниже показано, как с помощью Visual Basic .NET и поддержки потоков можно запускать фоновый код: Sub MakeNewThread() Dim bg As bgWork Dim myThread As Thread bg = New bgWork() myThread = New Thread(New ThreadStart(AddressOf bg.Run)) myThread.Start End Sub Class bgWork Sub Run() ... End Sub End Class Среди других новинок Visual Basic .NET можно назвать структурную обработку исключений. Так, вместо конструкции On Error GoTo теперь используются блоки Try..Catch..Finally. Приведем пример такого блока: Sub SHE_Demo() Try // Выполнение какой-либо операции Catch // В случае ошибки Finlly // Финальный код End Try End Sub Новая опция Option Strict заставляет компилятор генерировать ошибки компиляции в случаях, когда преобразование типов недопустимо. В языке теперь появилась возможность использовать разделяемые члены классов (shared members), с помощью которых данные и члены классов становятся доступными для всех экземпляров класса. Говоря о новшествах в Visual Basic .NET, также следует упомянуть поддержку возможности инициализации переменных в строке их объявления. Например, вместо: Dim X As Integer X = 1 можно использовать: Dim X As Integer = 1 Для миграции с Visual Basic 6.0 в состав Visual Basic .NET входит специальное средство - Visual Basic Migration Tool Wizard. Это средство запускается автоматически при открытии проекта Visual Basic 6.0 в среде разработчика и позволяет не только создать новую версию проекта, но и обозначить части кода, требующие изменений. В результате работы Visual Basic Migration Tool Wizard создается специальный отчет, содержащий как рекомендации по изменению кода, так и ссылки на соответствующие разделы справочной системы с пояснениями и дополнительной информацией. Visual Basic .NET представляет собой высокопроизводительную объектно-ориентированную систему, предназначенную для создания всех типов .NET-приложений. Теперь разработчики могут создавать масштабируемый код с поддержкой потоков и мощными средствами обработки исключительных ситуаций. Миграция существующего кода частично облегчается за счет использования Visual Basic Migration Tool Wizard, а ранее приобретенные знания сохраняются и приумножаются благодаря новой справочной системе, входящей в состав Microsoft Visual Studio .NET. Современный, компоненто-ориентированный язык программирования С# разработан фирмой Microsoft специально для платформы .NET. Не вдаваясь в детали, скажем, что C# вобрал в себя лучшее из таких языков, как C, C++, Java и Delphi, а обсуждение тонкостей оставим апологетам того или иного языка. Простейшая программа, которая с 70-х годов, со времен Кернигана и Ричи, выводит на экран строку "Hello, world!", на C# выглядит так: using System; class Hello static void Main() { Console.WriteLine("Hello, world!"); } } Исходные тексты программ на C# хранятся в файлах с расширением .cs. Вывод строки "Hello, world!" обеспечивается за счет использования библиотеки классов. Сам язык не предоставляет эту библиотеку, поэтому в .NET используется общая библиотека классов, доступная из программ, написанных как на С#, так и на VB .NET или C++. public class Person { public string Name { get { return Name; } set { Name = value; } } } Событие - это член класса, позволяющий объекту или классу выдавать нотификационные сообщения. Событие задается как обычный метод, но с ключевым словом event. Версия Visual C++ для платформы .NET имеет множество нововведений, позволяющих разработчикам создавать и использовать Web-приложения и Web-сервисы. От других языков программирования для платформы .NET Visual C++ .NET отличается тем, что поддерживает как кодовую модель платформы .NET (managed code model), так и кодовую модель Windows (unmanaged native code model). В состав Visual C++ .NET входит мощное расширение библиотеки Active Template Library (ATL), называемое ATL Server. Это расширение позволяет разработчикам создавать компактные, высокопроизводительные Web-приложения и сервисы. Расширения в Visual C++ .NET облегчают вызов Web-сервисов и из клиентских, и из серверных приложений, независимо от того, используется ли при разработке ядро .NET, библиотека Microsoft Foundation Classes (MFC), ATL или непосредственно функции Windows API. С помощью Managed Extensions for Visual C++ разработчики могут создавать приложения для платформы .NET. Можно сказать, что Managed Extensions играет роль «моста» между кодом на Visual C++ и кодом на других языках программирования, включая Visual C# .NET и Visual Basic .NET. #using <mscorlib.dll> using namespace System; void main() { Console::WriteLine(L"Hello, world!") } Как мы видим, приведенный выше код начинается с директивы #using. Эта директива служит для доступа ко всем типам, определенным в указанной динамической библиотеке (в терминах .NET динамическая библиотека называется сборкой - assembly - и содержит, помимо собственно кода на промежуточном языке, метаданные и ресурсы). Внутри метода main() мы вызываем статический метод WriteLine класса Console, который определен в mscorlib.dll. Отметим, что вторая строка нашей программы указывает компилятору на то, что мы будем использовать типы данных, определенные в пространстве имен System. Это позволяет вместо полного имени класса указать его как Console::WriteLine. Для создания корпоративных приложений в семейство Visual Studio .NET входят два продукта - Visual Studio .NET Enterprise Architect и Visual Studio .NET Enterprise Developer. В составе этих продуктов содержатся средства для дизайна, создания и тестирования Web-сервисов и приложений, разрабатываемых коллективами разработчиков. Среди этих средств можно назвать следующие:
Включенные в состав Visual Studio .NET средства моделирования поддерживают методологию Object Role Modeling (ORM), которая базируется на следующих ключевых принципах:
Использование методологии ORM в качестве инструмента моделирования, принятого в Visual Studio .NET, обусловлено тем, что обычно разработчики моделей получают информацию от заказчиков, знающих предметную область, но не способы моделирования. Следовательно, разработчик должен создавать концептуальные модели, понятные заказчикам, и при этом должен иметь возможность анализировать информацию и манипулировать типовыми данными. Методология ORM разработана специально для удовлетворения указанных требований. , Рис. 1 Овалы на рис. 1 представляют собой объекты; прямоугольники - определения; стрелки и точки - ограничения. Например, стрелка на изображении факта «у человека есть телефон» расшифровывается как: «возможно, что у одного человека есть более одного телефона и что у более чем одного человека есть один и тот же телефон». Для факта «человек родился в определенный день» комбинация стрелки и точки означает, что каждый человек родился в один конкретный день. На рис. 2 изображена знакомая многим ER-модель (Entry Relationship) для приведенной ORM-диаграммы. Рис. 2 ER-модель автоматически генерируется на основе соответствующей ORM-модели. Затем ER-модель используется для создания SQL-кода для базы данных. Этот процесс полностью обратим: на основании схемы базы данных мы можем получить ER-модель и породившую ее ORM-модель. Шаблоны для корпоративных приложений Шаблоны для корпоративных приложений (Enterprise Templates) содержат два ключевых компонента - начальную структуру проекта (шаблон проекта) и «политику» (policy), ассоциируемую с данным проектом. Использование корпоративных шаблонов облегчает реализацию общей схемы проекта. В частности, распределенное приложение может состоять из проектов для каждого из трех архитектурных уровней - пользовательского интерфейса, бизнес-логики и данных. Помимо задания начальной структуры приложения, архитектор приложения может включать в шаблоны стандартные компоненты и другие повторно используемые программные элементы. Средство Application Center Test позволяет разработчикам собирать информацию о производительности и выполнять функциональное тестирование Web-сервисов и приложений, созданных средствами Visual Studio .NET. Application Center Test поддерживает скриптовый язык и обладает возможностью имитации нагрузки на Web-приложения и сервисы. Среди тестов, поддерживаемых Application Center Test, можно отметить Browser Record Test, поддерживающий регистрацию HTTP-запросов и отсылаемых клиентам Web-страниц. Этот тест может быть как статическим, так и динамическим. При анализе результатов тестирования доступна следующая информация:
Входящие в состав Visual Studio .NET средства внедрения приложений характеризуются следующими ключевыми возможностями:
В этой статье мы ознакомились с основными новинками в средстве разработки для платформы .NET - Microsoft Visual Studio .NET, которое значительно облегчает создание Web-сервисов и интеграцию приложений с уже существующими сервисами. Поддерживается создание и клиентского, и серверного кода с использованием знакомой многим разработчикам интегрированной среды разработки, а также таких концепций, как дизайнеры, редакторы свойств и Windows- и Web-формы. |