Платформа .NET и язык C#

В процессе развития вычислительной техники было создано множество языков и технологий программирования, практически несовместимых между собой. Конечно, при разработке программ, работающих автономно, можно обойтись одним языком, одной технологией программирования и не иметь никаких проблем с совместимостью, но приложения для Интернета требуют использования разных языков и разных технологий.

Разработчики из Microsoft поставили перед собой задачу кардинально решить эту проблему. В 2000г был представлен первый вариант новой технологии, получившей название Microsoft .NET (.NET — по-русски произносится «Дот-Нэт»).

Microsoft .NET — это новая технология, ориентированная на разработку обычных (автономных) приложений и приложений для Интернета. В рамках Microsoft .NET первоначально были доступны всего несколько языков программирования:

Сейчас число таких языков исчисляется десятками. Но основным языком считается язык C# (по-русски читается «Си-Шарп»), разработанный специально для Microsoft .NET. Именно на C# доступны все возможности новой технологии от Microsoft.

Главным разработчиком языка C# и технологии .NET был Андерс Хейлсберг, известный ранее как автор Турбо Паскаля и Delphi. Перейдя в Microsoft из фирмы Borland, он, естественно, в проекте .NET постарался использовать всё то лучшее, что было в Delphi (компоненты, которые являются главным богатством технологии Microsoft .NET, появились именно в Delphi).

В рамках Microsoft .NET создана весьма удобная интегрированная среда разработки приложений Microsoft Visual Studio .NET, а также среда выполнения программ Microsoft .NET Framework.

Работа программ в Microsoft .NET Framework

Как создается и выполняется программа, рассчитанная на использование технологии .NET?

Во-первых, текст программы должен быть написан на языке, который соответствует спецификации Common Language Specification (CLS), предложенной Microsoft. Придерживаясь этой спецификации, разработчики языков программирования могут быть уверены в том, что создаваемые с применением этих языков программы будут удовлетворять минимальным требованиям платформы Microsoft .NET Framework. В частности, смогут взаимодействовать с программами, разработанными с использованием других языков платформы Microsoft .NET.

Особенностью всех языков программирования, отвечающих спецификации CLS, является то, что компиляторы с этих языков переводят исходный текст программы не в машинный код, а в промежуточный язык, называемый Microsoft Intermediate Language (MSIL). Этим достигается высокая совместимость между различными языками, а также независимость от архитектуры компьютера и его операционной системы. Таким образом, хотя платформа Microsoft .NET и создавалась для Windows на IBM-совместимых компьютерах, она может быть реализована для любых других операционных систем и для компьютеров, имеющих несовместимый с x86 набор машинных команд. Так, к примеру, существует и успешно развивается проект DotGNU для Linux. Ещё есть проект Mono, который параллельно развивается и для Windows, и для Linux.

Далее. Текст программы, переведенный с языка программирования на язык MSIL, интерпретируется (по-командно переводится в машинный код и сразу же исполняется) специальной виртуальной машиной в рамках системы исполнения программ Common Language Runtime (CLR). Такой подход гарантирует безопасность исполнения программ, так как для каждой выполняемой программы создаётся своя виртуальная машина. Доступ к другим виртуальным машинам запрещен, поэтому, если в программе выполняется недопустимая операция, то это сказывается только на данной программе, но никак не отражается на работе других программ.

Для непосредственного преобразования кода MSIL в машинный код виртуальная машина CLR использует специальный компилятор, называемый компилятором just-in-time (JIT).

Замечание. Идеи, используемые в технологии Microsoft .NET, далеко не новы. Так программы, написанные на языке Java (а этот язык разработан фирмой Sun Microsystems ещё в 1995г), переводятся в байт-код и затем выполняются виртуальной машиной Java. Сама же концепция виртуальных машин возникла очень давно и была реализована на ОС IBM VM для вычислительных машин серии IBM 360/370. В нашей стране выпускались аналоги этих машин (серия ЕС ЭВМ), и мне еще в середине 80-х годов довелось поработать на компьютерах ЕС 1045 с ОС SVM (система виртуальных машин). По-видимому, это была практически точная копия ОС IBM VM.

Но старые идеи, использованные Microsoft, получили новое развитие. Так, Java обеспечивает высокую переносимость программ на разные аппаратные платформы, но исходный язык только один. Программистам это очень неудобно, так как существует множество специфичных задач, для решения которых гораздо лучше подходит не язык Java, а какие-то другие языки. В .NET можно создавать программы на различных языках, что, конечно же, является большим плюсом для разработчиков программного обеспечения (ПО). При этом обеспечивается и высокая переносимость ПО, и высокая совместимость между частями программы, написанными на разных языках. Причем делается это почти автоматически, т.е. разработчик ПО над этими проблемами по сути не задумывается.

Достоинства и недостатки технологии Microsoft .NET

Относительно недавно появившаяся технология Microsoft .NET имеет много достоинств по сравнению с более ранними технологиями. Но ничего не дается даром, новая технология имеет и ряд недостатков. Рассмотрим и то, и другое немного подробнее.

Достоинства:

  1. Единые средства API для разработки программ на разных языках.

  2. Простота стыковки разноязыковых модулей.

  3. Многие тысячи готовых к употреблению классов, реализующие различные алгоритмы, сокращают сроки разработки новых программ и повышают надежность этих программ.

  4. Установка программ под .NET не требует программ-инсталляторов, делается простое копирование программы в нужную папку. Как следствие, при установке не вносятся ни какие записи в реестр Windows, поэтому после удаления таких программ в реестре не остается «мусор».

Недостатки:

  1. Заметно снижается скорость работы программ. По моим наблюдениям, процентов на 40-50 даже для чисто счётных алгоритмов. Это немало. Но с учетом постоянного роста производительности новых образцов вычислительной техники это не смертельно. Хотя на старенькой технике такие программы могут очень медленно работать.

  2. Требуется больше оперативной памяти. Программы под .NET обычно невелики, самые простые имеют размер в несколько килобайт. Но при запуске таких программ запускаются и средства Microsoft .NET Framework, а это «весит» порядка 20 Мбайт в зависимости от версии Framework.

  3. На компьютере должна быть установлена среда выполнения программ Microsoft .NET Framework. В операционных системах Windows Vista и Windows 7 эта среда имеется по-умолчанию, но в предшествующих операционных системах Framework необходимо устанавливать самим. Кроме того, возможно, потребуется обновить операционную систему Windows. Для Windows 2000 нужен четвертый сервис-пак, для Windows XP — второй. А о линейке Windows 95/98 нужно забыть.

Назад
На верх
Вперёд
Hosted by uCoz