Технология .NET

Технология Java

Технология Java – это распределенная объектно-ориен-тированная платформа для разработки приложений, предназначенных для работы в среде Web.

По замыслу создателей этой технологии отводилась роль сетевого эсперанто:

- базовый язык данной технологии – Java максимально независим от используемой платформы;

- Java разрабатывался с ориентацией на сетевые применения.

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

Разработка на языке Java имеет ряд особенностей, особое место среди которых занимают семантические компромиссы: императивная минимальность заимствована из языка Pascal, а существующая поддержка многопоточных вычислений указывает на преемственность с языком C++.

С одной стороны – основной принцип разработки программ по технологии Java – это безопасность, которая обеспечивается следующими характеристиками:

- современный язык программирования;

- синтаксис по типу языка C++, без указателей;

- виртуальная машина и независимость от платформы;

- поддержка библиотек потоков и сетевой среды;

- поддержка аплетов (клиентских приложений);

- расширенные прикладные интерфейсы типа 3D, MEDIA, Beans, Swing.

С другой стороны разработка систем на основе технологии Java – это создание несложных аплетов и мощных серверов. При этом вследствие низкой эффективности выполнения программ на языке Java (обратная сторона подхода с использованием виртуальной машины) и длительной загрузки аплетов по сети, язык Java представляется слишком слабым средством для программирования серверов и избыточно сильным – для не отличающихся особой сложностью клиентов.

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

.NET (произносится «дот-нет») — программная технология, предложенная фирмой Microsoft в качестве платформы для создания, как обычных программ, так и Web-приложений. Во многом является развитием идей и принципов, заложенных в технологии Java.

Одной из основных идей .NET является совместимость различных служб, написанных на разных языках. Например, служба, написанная на C++ для .NET, может обратиться к методу класса из библиотеки, написанной на Delphi; на C# можно написать класс, наследующий от класса, написанного на Visual Basic .NET, а исключение, выброшенное методом, написанным на C#, может быть поймано и обработано в Delphi. Каждая библиотека (сборка) в .NET имеет сведения о своей версии, что позволяет устранить возможные конфликты между разными версиями сборок.

В настоящее время существует реализация .NET для платформы Microsoft Windows, FreeBSD (от Microsoft) и ограниченный вариант технологии для ОС Linux в рамках свободных проектов Mono, DotGNU.

Рассматриваемая технология является патентованной технологией фирмы Microsoft, что является препятствием для её распространения на другие платформы. Однако компиляторы для .NET выпускаются множеством фирм для различных языков свободно. Множество используемых языков является несомненным преимуществом технологии .NET по сравнению с Java.

Технология приложение .NET подразделяется на две основные части:

- среда выполнения (по сути виртуальная машина);

- инструментарий разработки.

Среды разработки .NET-приложений: Visual Studio .NET (C++, C#, J#), SharpDevelop, Eclipse, Borland Developer Studio (Delphi, C#) и т. д. Приложения можно разрабатывать в текстовом редакторе и использовать традиционный консольный компилятор.

Так же как и технология Java, среда разработки .NET создаёт байт-код, предназначенный для исполнения виртуальной машиной. Входной язык этой машины в .NET называется MSIL (Microsoft Intermediate Language) или просто IL. Применение байт-кода позволяет получить кроссплатформенность на уровне скомпилированного проекта (в терминах .NET: сборка), а не на уровне исходного текста, как, например, в С. Перед запуском сборки в среде исполнения (Common Language Runtime – CLR) байт-код преобразуется встроенным в среду JIT-компилятором (just in time, компиляция на лету) в машинные коды целевого процессора.

Следует отметить, что один из первых JIT-компиляторов для Java был также разработан фирмой Microsoft (в настоящее время в Java используется более совершенная многоуровневая компиляция – Sun HotSpot). Современная технология динамической компиляции позволяет достигнуть аналогичного уровня быстродействия с традиционными «статическими» компиляторами (например, С++) и вопрос быстродействия зачастую зависит от качества того или иного компилятора.