Автор: Виктор
Ашик MCT, MCSE
Kомпания Microsoft 6
февраля 2002 г. в
Санкт-Петербурге
провела
семинар «.NET как
платформа
разработки XML Web-сервисов»
с докладом
известного
специалиста
Дэвида
Чаппела (David Chappel),
автора книги
«Understanding .NET». Мне
посчастливилось
посетить это
мероприятие,
и выбор темы
этой статьи
обязан
исключительму
презентационному
мастерству
Дэвида и его
очень
интересному
и
содержательному
докладу. В своем
выступлении
Дэвид Чаппел
несколько
раз
подчеркнул,
что он не
является
сотрудником
Microsoft и выражает
исключительно
свое личное
мнение.
Аналогично,
спешу
заверить, что
все
изложенное
ниже
является
исключительно
моим
взглядом на
мир .NET,
сформировавшимся
под
воздействием
доклада
Дэвида и
личных
впечатлений. Прежде
всего, Microsoft .NET — это
мечта о
светлом
информационном
будущем.
Создание
платформы .NET
меняет все в
мире Windows: языки
программирования,
библиотеки и
интерфейсы,
способы
выполнения
приложений. И
все это ради
того, чтобы
выйти за
рамки
сложившейся
практики
использования
приложений и
сетей,
локальных и
глобальных,
для
предоставления
новых
возможностей
по
интеграции
приложений,
бизнеса,
услуг. .NET — это брэнд,
раскручиваемая
товарная
марка,
которая
ставится на
все, что
продается,
даже если
технологий .NET
в этих
продуктах
еще нет. Так,
на
сегодняшний
день на рынке
уже
присутствует
целое
семейство
серверных
программных
продуктов Microsoft,
называемых
серверами .NET: Windows
2000 Server и Advanced Server, Application Center 2000, BizTalk Server
2000, SQL Server 2000 и т. д.
Впрочем, во
многих из
этих
серверов
присутствует
поддержка XML, а
это уже
близко к
стратегии .NET.
Как
выразился
Дэвид Чаппел
в своем
выступлении,
Microsoft несколько
лет назад
приняла
религию XML. • .NET Framework — среда
выполнения, в
которой
работают
созданные
программные
компоненты.
Среда
обеспечивает
безопасность
выполнения
кода,
автоматическую
сборку
мусора,
контроль
версий
модулей и
предоставляет
библиотеки
классов,
заменившие и
расширившие
стандартные
интерфейсы
прикладного
программирования
(API). В чем
проблема
современных
приложений?
Мы им не верим.
Откуда
администратору
знать, что
пробная
версия
архиватора,
бесплатная
программа
обмена
сообщениями
или
проигрыватель
видеофильмов
не содержат в
себе
невыявленных
проблем
безопасности:
программных
закладок,
ошибок
переполнения
буфера,
неизвестных
вирусов,
которые
могут
нарушить
нормальную
работу
других
программ
пользователя
или даже
операционной
системы. Да,
линейка Windows NT/2000
является
защищенной
операционной
системой, но
не бывает
абсолютно
защищенных
систем,
всегда будет
оставаться
шанс, что в
системе
остались
невыявленные
проблемы
безопасности,
которыми
смогут
воспользоваться
чьи-то
программы.
Кроме того,
ошибки
бывают не
только в
программных
системах, но и
в аппаратуре,
например Тем не менее,
выход из
данной
ситуации
тотального
недоверия
чужому коду
есть, и
заключается
он в
исполнении
кода в
виртуальной
среде
выполнения,
позволяющей
контролировать
и
ограничивать
права
выполняемого
кода в
отношении
абсолютно
всех
ресурсов:
памяти,
процессора,
сети,
файловой
системы,
других
программ.
Такой
виртуальной
средой
является .NET Framework. .NET Framework — это среда
выполнения
для
приложений
нового
поколения.
Эта среда
может быть
установлена
в любые
версии Windows,
начиная с Windows 98, и
обеспечить
виртуальную
систему
исполнения (Virtual
Execution System) для
приложений,
созданных с
помощью Visual Studio.NET. Особенность
приложений
для .NET Framework
заключается
в том, что они,
подобно
приложениям Java,
содержат не
инструкции
процессоров
Intel, а
инструкции
виртуальной
машины. В
случае Java
эти
инструкции
называются
байт-код, в
случае .NET — Microsoft Intermediate
Language (MSIL). Как
показал опыт
Java, вместо
интерпретации
кода
виртуальной
машины лучше
транслировать
его в
инструкции
реального
процессора,
такого как Intel Pentium,
даже если это
приходится
делать
непосредственно
при
исполнении
приложения (Just In
Time — JIT). Поэтому .NET Framework
вместо
интерпретатора
MSIL содержит
его JIT-компилятор.
Кроме того,
существует
возможность
однократно
выполнить
прекомпиляцию
(например, при
установке
программы) и
пользоваться
ее
результатами
в будущем. Формат
исполняемых
файлов .NET Framework
расширяет
спецификацию
PE (Portable Executable), так что
мы по-прежнему
имеем дело с EXE
и DLL-файлами, но
содержание у
них новое. Разработка
приложений,
создание
качественных
новых
программ —
один из самых
трудоемких и
сложных
процессов в
современном
мире
информационных
технологий.
Один из
лучших в мире
инструментов
для
разработчика
— Microsoft Visual Studio. Уже
завершена
разработка Visual
Studio.NET —
последней
версии среды,
предназначенной
для создания
новых
приложений
для среды
исполнения .NET
Framework и обычных Win32
приложений. На самом
деле, вовсе не
обязательно
использовать
могущественную
среду Visual Studio.NET для
создания
простых
приложений .NET
Framework. Кроме того,
Visual Studio.NET доступна
на сайте msdn.microsoft.com
только
подписчикам
MSDN, а .NET Framework SDK может
загрузить с
сайта каждый (тем
более, что его
размер
гораздо
меньше: 130 МБ
вместо 2 ГБ Visual
Studio.NET). По
умолчанию
программа
установки
предлагает
поместить .NET Framework
SDK в каталог
%ProgramFiles%\Microsoft.Net\FrameworkSDK\, но
лично мне
удобнее
выбрать для
этого
каталога имя
покороче,
например, C:\NetFXSDK.
После
установки в
нашем
распоряжении
оказываются
следующие
основные
средства. В каталоге
%ProgramFiles%\Microsoft.Net\FrameworkSDK\ (или в C:\NetFXSDK
соответственно): В каталоге %windir%\
Microsoft.NET\Framework\v1.0.2914 (цифры
будут
меняться от
версии к
версии): Конечно, это
далеко не
полный
список
утилит, на
самом деле
инструментарий
несколько
сложнее. По старой
традиции,
освоение
системы
программирования
начнем с
создания
программы,
выводящей на
консоль
строку
приветствия.
Вот как это
будет
выглядеть на
C# (листинг 1): using System; Как видно,
синтаксис C#
подражает
синтаксису Java.
На VB.NET тот же
фрагмент
кода будет
выглядеть
так (Листинг 2): Imports System Разберем, из
чего состоит
наша
программа: C:\>csc –nologo hellocs.cs C:\>hellovb.exe Таким
образом,
первый шаг
сделан, мы
создали
приложение
для .NET Framework Кроме
самостоятельной
подготовки
рекомендуется
обратить
внимание на
авторизованные
учебные
курсы фирмы
Microsoft,
посвященные .NET
Framework: 2124b: Introduction to C# Programming for the Microsoft .NET Platform; На
сегодняшний
день еще не
все из этих
курсов
выпущены в
продажу,
самую свежую
информацию
можно
получить в
разделе Training & Certification
сайта Microsoft:.NET — это взгляд
в будущее
.NET — это брэнд
Основные
продукты,
поставляемые
сегодня под
маркой .NET
• Visual Studio.NET —
флагманский
продукт Microsoft
для
разработчиков,
одна из
лучших
интегрированных
сред
разработки.
Теперь
содержит
только один
компилятор,
способный
порождать
обычный
двоичный код
для
процессоров
Intel — компилятор
C/C++.
Предоставляет
набор новых и
измененных
языков
программирования
для создания
программных
компонентов
для .NET Framework: Visual Basic.NET, C# (произносится
«Си-шарп»), C++ с
дополненным
синтаксисом
— C++ managed extentions и JScript.NET.
Ожидается
поддержка
множества
других
языков
программирования
от
независимых
производителей.
• .NET Enterprise servers (корпоративные
сервера .NET) — SQL Server 2000,
Exchange 2000 и т. д. (http://www.microsoft.com/net/products/servers.asp)..NET — платформа
для
построения
приложений
в процессоре.
Некоторые
процессоры
семейства Pentium
содержали
ошибку,
получившую
название F00F-bug,
приводившую
к полной
блокировке
процессора
при попытке
выполнить
несуществующую
инструкцию,
код которой
начинался с F00F..NET Framework
Среда
выполнения
кода MSIL
называется Common
Language Runtime (CLR) и
обеспечивает
реализацию
общих
возможностей
всех языков
программирования
.NET, что
устраняет
проблему
взаимодействия
компонентов,
написанных
на разных
языках. Эта
среда также
обеспечивает
возможность
взаимодействия
с
компонентами
COM+, что
обеспечивает
возможность
доступа к
прежним
библиотекам
компонентов..NET Framework SDK
Для
установки .NET Framework
SDK необходима
система не
младше Windows NT SP6a (рекомендуется
Windows 2000) с Internet Explorer 5.5.
• Ассемблер
MSIL (ilasm.exe).
Позволяет
превратить
текстовый
файл с кодом
на MSIL в PE-файл (EXE
или DLL), который
будет
выполняться
при наличии
совместимой
версии .NET Framework.
• Дизассемблер MSIL
(ildasm.exe).
Используется
для
дизассемблирования
и просмотра MSIL-кода,
содержащегося
в PE-файле.
• Отладчик с
консольным (текстовым)
интерфейсом (cordbg.exe).
• Отладчик с
графическим
интерфейсом (DbgUrt.exe)
(не
устанавливается
в Windows 98/ME).
• Компилятор
языка C# (csc.exe).
• Компилятор
языка VB.NET (vbc.exe).
• Компилятор
языка JScript.NET (jsc.exe).
class HelloWorld {
public static void Main(){
Console.WriteLine(«Hello World of C#!»);
}}
Листинг 1. hellocs.cs
Public Module HelloWorld
Sub Main()
Console.WriteLine («Hello World of VB.NET!»)
End Sub
End Module
Листинг 2. hellovb.vb
1) Подключаем
пространство
имен System, чем
упрощаем
ссылки на
методы
библиотечных
классов,
которые
являются
продолжением
пространства
имен System.
2) Объявляем
публичный
класс с
произвольным
именем.
3) Заводим в
нем метод без
параметров
со
специальным
названием Main,
не
возвращающий
значения.
4) В методе
производим
вызов метода
WriteLine класса Console
для вывода
строки.
Заставим
работать обе
реализации,
выполнив
компиляцию (в
MSIL):
C:\>vbc –nologo hellovb.vb
C:\>hellocs.exe
Hello World of C#!
Hello World of VB.NET!
с
использованием
.NET Framework SDK.
Следующие
шаги
подразумевают
написание
более
сложных
программ,
освоение
языка и
библиотек
классов.
Изрядным
подспорьем
здесь могут
служить
примеры и
документация
из комплекта .NET
Framework SDK.
2349a: Programming the Microsoft .NET Framework with C#;
2350a: Securing and Deploying Microsoft .NET Assemblies;
2373a: Programming with Microsoft Visual Basic .NET;
2415a: Programming the Microsoft .NET Framework with Visual Basic .NET;
2500a: Introduction to XML and the Microsoft .NET Platform.
http://www.microsoft.com/traincert/training/
и на сайте
Учебного
Центра
компании
ЭВРИКА: http://www.eureca.ru/education/.