CFA LogoCFA Logo Computer
Новости Статьи Магазин Драйвера Контакты
Новости
RSS канал новостей
В конце марта компания ASRock анонсировала фирменную линейку графических ускорителей Phantom Gaming. ...
Компания Huawei продолжает заниматься расширением фирменной линейки смартфонов Y Series. Очередное ...
Компания Antec в своем очередном пресс-релизе анонсировала поставки фирменной серии блоков питания ...
Компания Thermalright отчиталась о готовности нового высокопроизводительного процессорного кулера ...
Компания Biostar сообщает в официальном пресс-релизе о готовности флагманской материнской платы ...
Самое интересное
Программаторы 25 SPI FLASH Адаптеры Optibay HDD Caddy Драйвера nVidia GeForce Драйвера AMD Radeon HD Игры на DVD Сравнение видеокарт Сравнение процессоров

АРХИВ СТАТЕЙ ЖУРНАЛА «МОЙ КОМПЬЮТЕР» ЗА 2003 ГОД

Что .NET грядущий нам готовит?

Игорь ПАВЛОВ pavlov_igor@nm.ru

.NET (произносится «дот нэт») — новая технология Microsoft, анонсированная сравнительно недавно. Что же кроется под этим модным сейчас логотипом? Действительно ли .NET является чем-то принципиально новым, или это очередной рекламный ход Microsoft?

Итак, .NET — это новая технология, предложенная Microsoft, в которой условно можно выделить web-сервисы XML и новую платформу разработки .NET Framework.

Сначала поговорим про web-сервисы XML. Программисты, пишущие программы для платформы Windows, должны быть знакомы с давно существующей технологией COM (Component Object Model). Это технология все той же Microsoft, которая позволяет приложениям, написанным на разных языках, взаимодействовать друг с другом. В итоге вы имеете две программы: COM-сервер и COM-клиент, где клиент может вызывать какие-либо функции сервера. И сервер, и клиент должны находиться на одном и том же компьютере.

Чуть позже COM была доработана до технологии DCOM (Distributed COM), которая позволяла COM-серверу и COM-клиенту взаимодействовать друг с другом уже по сети. И вот пришел черед web-сервисов XML. Идея web-сервисов XML заключается в следующем. Предположим, где-то в сети существуют серверы, предоставляющие какие-либо сервисы (услуги), доступные для использования клиентскими компьютерами. Под сервисом подразумевается набор функций. Такими функциями могут быть, например, «Узнать текущий курс доллара» или «Заказать горячий борщ в офис». Т.е. технология web-сервисов чем-то сродни DCOM, только она уже не ограничена рамками локальной сети, а расширена до масштабов сети Интернет. Пример применения web-сервисов XML приведен ниже.

Обращение к web-сервису XML происходит следующим образом. Клиентская машина (относительно сервера) формирует специально сформатированный, содержащий параметры XML-запрос и посылает его серверу. Запрос посылается через Internet/Intranet, при этом используется, как правило, HTTP-протокол. Сервер обрабатывает XML-данные и возвращает клиенту ответ в виде того же XML. Такой обмен данными между клиентом и сервером в формате XML определяется протоколом SOAP (Simple Object Access Protocol).

Идея web-сервисов назревала давно. Причиной тому было все большее внедрение Интернета в нашу повседневную жизнь. В Microsoft считают, что будущее за продажей web-сервисов. Насколько это верно, покажет время. Подразумевается, что любая компания может написать web-сервис XML, а затем предоставлять его бесплатно или взимать за использование своего сервиса плату.

На данный момент уже существует несколько работающих web-сервисов XML, предоставленных самой Microsoft. Эти web-сервисы (.NET Calendar, .NET Documents, .NET Profile и др.) называются .NET My Services и ориентированы на конечного пользователя. Часть этих сервисов бесплатна.

Еще одной инициативой Microsoft была новая платформа .Net Framework. С ее помощью Microsoft попыталась убить сразу двух зайцев. Во-первых, преодолеть границы операционных систем, чтобы одна и та же программа могла выполняться на нескольких операционных системах сразу. А во-вторых, уменьшить количество ошибок в разрабатываемом программном обеспечении (ПО).

Раньше (до появления .NET Framework) процесс создания программы сводился к написанию исходного кода и его последующего компилирования. При компиляции исходный код программы преобразовывался в инструкции (команды) для конкретного процессора и конкретной операционной системы (ОС). Т.е. для другой ОС надо было перекомпилировать исходный код заново. А если компилятор не мог компилировать код для какой-либо ОС, то тут уже мало что помогало.

В середине 90-х годов компания Sun Microsystems предложила новую идеологию, воплотив ее в свой язык программирования Java. Предполагалось, что программа будет выполняться внутри виртуальной Java-машины. Т.е. стоит на любой ОС установить Java-машину, чтобы стало возможным выполнение Java-программ. Наверное, любой программист помнит лозунг: «Написанное однажды исполняется везде». Но Microsoft не была бы сама собой, если бы без боя отдала такое приоритетное направление своим конкурентам. Результатом стала платформа .Net Framework.

В основу этой платформы была положена концепция управляемого кода. Программа выполняется в т.н. общеязыковой выполняющей среде CLR (Common Language Runtime). Сама программа теперь представляет собой не инструкции для процессора, а содержит код на промежуточном языке IL (Intermediate Language). Т.е. результатом компиляции теперь являются не команды процессора, а IL-код. При запуске программы в среде CLR специальный компилятор компилирует этот IL-код в команды конкретного процессора. Этот компилятор называется компилятор времени исполнения, или JIT-компилятор (Just In Time).

Получается, что программа, скомпилированная любым компилятором, который способен создавать промежуточный IL-код, будет выполняться на любой ОС, где установлена среда CLR. Звучит восхитительно! Но у каждой медали есть две стороны. Сначала о минусах.

Для выполнения программы, содержащей IL-код, необходима общеязыковая выполняющая среда CLR. Эта среда пока не встроена ни в одну настольную ОС — ее нужно доустанавливать. Если вы работаете в Windows, то необходимо установить .NET Framework, в которую входит среда CLR. .NET Framework бесплатна и доступна для скачивания на сайтах Microsoft (http://go.microsoft.com/fwlink/?LinkId=5584). Также существует проект поддержки среды CLR для операционных систем *NIX.

Последняя из версий Windows —Windows XP, немного адаптирована для выполнения программ, содержащих промежуточный IL-код, но все равно требуется установка .NET Framework. Правда, Microsoft уже объявила, что следующая пользовательская версия Windows уже будет содержать в себе общеязыковую выполняющую среду CLR.

Как было сказано выше, при выполнении IL-программа сначала компилируется «на лету» JIT-компилятором, а уже потом выполняется. Очевидно, что эта самая компиляция «на лету» занимает какое-то время. «На глаз» задержка компиляции заметна только при старте программы, т.к. основная JIT-компиляция происходит при старте программы, а потом выполняется уже откомпилированный код.

По сути дела, для конечного пользователя платформа .NET Framework абсолютно прозрачна, т.е. каких-либо визуальных изменений, как это было при переходе с MS-DOS на Windows 3.11, а потом на Windows 95, пользователь не увидит. Основные изменения коснутся программистов. Программирование Windows-программ уже не основано на WinAPI, как раньше. Это и логично, ведь программы должны выполняться под любой ОС, содержащей CLR, а не только под Windows. Теперь программирование строится на основе библиотеки классов, входящей в .NET Framework —FCL (Framework Class Library). Т.е. программистам придется изучать FCL-классы. Классов FCL очень много, но при этом они пока не полностью покрывают функциональность WinAPI. Ввиду этого предусмотрена возможность вызова WinAPI-функций напрямую. Но и тут Microsoft обещает в следующих версиях .NET Framework заменить всю функциональность WinAPI соответствующими FCL-классами.

Про минусы поговорили — их пока хватает. Но зато сколько новая платформа .NET Framework дает плюсов!

Появились понятия «управляемый»/«неуправляемый» и «безопасный»/«небезопасный» код. За выполнение программы теперь отвечает среда CLR. Т.е. программа выполняется как бы в песочнице. Программа, написанная только с использованием FCL-типов, содержит «управляемый» и «безопасный» код. Программы старого вида, представляющие собой команды процессора, называются «неуправляемым» кодом.

При выполнении программы в среде CLR происходит проверка ее исходного кода на «безопасность». Иначе говоря, проверяется безопасность типов и предотвращается любая попытка некорректного обращения к типам. Например, при вызове метода какого-либо типа проверяется корректность передаваемых ему параметров. Такая проверка уменьшает количество возможных ошибок в коде программы. Также «безопасный» код не может содержать нетипизированные указатели. Применение таких указателей часто приводило к возникновению ошибок, и от них решили отказаться в пользу устойчивости работы программ. При желании, конечно, программа может содержать нетипизированный указатель, но тогда она не будет считаться «безопасной».

В свое время модель COM позволила программам, написанным на разных языках программирования, взаимодействовать друг с другом. Платформа .NET Framework позволяет разным языкам программирования интегрироваться — например, одному языку использовать типы, созданные на других языках. Можно создать C#-класс, производный от класса, написанного на C++. Чтобы создать тип, доступный из других языков, придется задействовать лишь те возможности языка, которые гарантированно доступны и в других языках. Для такой совместимости языков Microsoft определила общеязыковую спецификацию CLS (Common Language Specification). Данная спецификация описывает минимальный набор возможностей, который должен быть реализован производителями компиляторов, чтобы их продукты работали в CLR. Говоря простым языком, CLS — это минимальный набор функций, который должен поддерживать язык.

Из языков программирования, с помощью которых можно создавать программы для .NET Framework, могу назвать C#, Visual Basic .NET, Visual C++ с управляемыми расширениями. Причем, Microsoft C++ сам по себе является уникальным компилятором, позволяющем создавать как обычные программы с неуправляемым кодом, так и программы для .NET Framework. В качестве основного языка для платформы .NET Framework Microsoft выбрала C# (произносится как «си шарп»). Именно в этот язык Microsoft вложила «душу» своей новой технологии .NET Framework. Это новый абсолютно объектно-ориентированный язык программирования, который вобрал в себя все лучшие качества современных языков. Эдакий конгломерат Java, Delphi и C++. Также должен сказать, что главный конкурент Microsoft по компиляторам, фирма Borland, тоже не топчется на месте, а выпустила компилятор Delphi for .NET Preview, который позволяет создавать программу, содержащую IL-код.

Наверняка многие из вас сталкивались с ситуацией, когда после инсталляции какой-либо программы другие программы переставали запускаться. Это происходит из-за того, что все системные библиотеки (DLL) в Windows хранятся в одном месте. И любая программа при инсталляции может затереть жизненно-важную библиотеку другой версией. Это явление у программистов получило название «ад DLL». В .NET Framework подобных ситуаций происходить не будет. Записать системную библиотеку поверх другой версии этой же библиотеки просто невозможно. Теперь появилось понятие «контроль версий».

Без преувеличения можно сказать, что появление платформы .NET является историческим событием, причем не менее важным, чем, скажем, появление Windows 95.

Изучать новую платформу .NET Framework — это дело, конечно, ваше. Но, зная целеустремленность Microsoft, можно ожидать, что она не зря тратит сейчас миллионы на раскрутку своей новой технологии. И что спустя какое-то время при написании программ будет использоваться только FCL, а WinAPI попадет в историю и займет место рядом с прерываниями MS-DOS. И, наверное, правильней поставить вопрос не «изучать или не изучать?», а «когда начать изучать?».

И напоследок, чтобы не быть голословным, приведу пример кода на C#. Если Вы программист, то Вам наверняка не терпится посмотреть какой-нибудь простенький пример для платформы .NET Framework. По традиции приведу пример консольного приложения, написанного на C# и выводящего банальную строку «Hello World»:

Для программиста, который уже имел дело с другими языками, нет ничего сложного в понимании вышеприведенного кода. Тут все прозрачно и просто. Если у вас установлена .NET Framework, то можно откомпилировать вышеприведенный пример, т.к. в инсталляцию .NET Framework входит компилятор для C# —csc.exe. Сохраните пример в файле HelloWorld.cs и откомпилируйте его:

Результатом будет работоспособная программа .NET Framework. Можно смело запускать ее. Забегая вперед, скажу, что в МК планируется цикл статей по C#.

Надеюсь, что статья была полезна для вас. Желаю удачи.

Литература:

1. Рихтер Дж. Программирование на платформе .NET Framework, пер. с агнл.; М, Microsoft Press, 2002, 488 с.

2. MSDN magazine, русская редакция, №4(10); Microsoft Press, 2002, 98 с.

3. Программист, №12/2002; 98 с.

Рекомендуем ещё прочитать:






Данную страницу никто не комментировал. Вы можете стать первым.

Ваше имя:
Ваша почта:

RSS
Комментарий:
Введите символы или вычислите пример: *
captcha
Обновить





Хостинг на серверах в Украине, США и Германии. © sector.biz.ua 2006-2015 design by Vadim Popov