В ходе развития вычислительной техники появилось множество языков и технологий программирования, почти несовместимых друг с другом. При работе над автономными приложениями можно ограничиться одним языком и одной технологией без проблем совместимости, но для интернета необходимо использовать разные языки и подходы.
Разработчики Microsoft решили эту задачу кардинально. В 2000 г. появился первый вариант новой технологии – Microsoft .NET (произносится «Дот-Нэт»).
Microsoft .NET – это платформа для создания как обычных автономных приложений, так и веб-программ. Изначально в рамках .NET поддерживалось несколько языков:
- Microsoft C#;
- Managed C++;
- Microsoft Visual Basic .NET;
- Microsoft Visual J# .NET;
- JScript .NET.
Сегодня их десятки, но главным остаётся C#, читаемый как «Си-Шарп», разработанный специально для .NET. Именно на нём реализованы все возможности платформы.
Главным архитектором языка C# и всей экосистемы .NET является Андерс Хейлсберг, ранее создавший Turbo Pascal и Delphi. Переведя из Borland в Microsoft, он привнес лучшие черты Delphi – богатый набор компонентов – в новую технологию.
Внутри .NET существует удобная интегрированная среда разработки Microsoft Visual Studio .NET и исполняемая среда Microsoft .NET Framework.
Как работают программы в Microsoft .NET Framework?
Текст кода пишется на языке, удовлетворяющем Common Language Specification (CLS) от Microsoft. Это гарантирует, что программы будут совместимы с другими языками .NET и удовлетворять минимальным требованиям платформы.
Компиляторы переводят исходный код не в машинный язык, а в промежуточный Microsoft Intermediate Language (MSIL). Благодаря этому достигается высокая совместимость между разными языками и независимость от архитектуры ПК и ОС. Хотя .NET изначально создан для Windows на x86-совместимых компьютерах, он может быть реализован под любые операционные системы и процессоры. Так появились проекты DotGNU для Linux и Mono, работающий как на Windows, так и на Linux.
Полученный MSIL затем интерпретируется виртуальной машиной Common Language Runtime (CLR). Каждый запуск программы создаёт свою изолированную VM, что обеспечивает безопасность: недопустимая операция затрагивает только эту программу. Виртуальная машина CLR использует JIT-компилятор для преобразования MSIL в машинный код во время выполнения.
Замечание. Идеи .NET не новы – Java, созданная Sun Microsystems ещё в 1995 г., тоже компилирует в байт-код и исполняется виртуальной машиной. Концепция VM возникла давно, её реализовали на IBM VM для систем серии 360/370, а в нашей стране аналоги существовали в ЕС-ЭВМ с ОС SVM.
Однако .NET развивает эти идеи: Java обеспечивает переносимость только одним языком, что неудобно для специфических задач. В .NET можно писать программы на разных языках, сохраняя при этом высокую совместимость и переносимость без лишних усилий со стороны разработчика.
Плюсы и минусы Microsoft .NET
Новая технология обладает множеством преимуществ по сравнению с более ранними решениями, но не обходится без недостатков. Давайте разберём их подробнее.
Достоинства:- Единые API для разных языков;
- Простая интеграция разноязычных модулей;
- Тесяты готовых классов, ускоряющих разработку и повышающих надёжность;
- Установка без инсталляторов: просто копируем программу в нужную папку – никаких записей в реестре, после удаления программы «мусор» не остаётся.
Недостатки:- Снижение скорости работы примерно на 40–50 % даже для чисто численных задач. Это заметно, но с учётом роста производительности современных машин не критично;
- Нужна более объёмная оперативная память: хотя сами приложения небольшие (несколько килобайт), при запуске загружается и .NET Framework – около 20 Мбайт в зависимости от версии;
- Необходима установленная среда выполнения Microsoft .NET Framework. В Windows Vista и 7 она предустановлена, но в более ранних ОС её нужно ставить вручную; возможно потребуется обновление Windows (Windows 2000 – 4-й сервис-пак, XP – 2-й). К Windows 95/98 проще забыть.