|
|
В последние время Microsoft ведет активное наступление на рынке систем программирования, все более оттесняя других производителей ПО в этой области. Новая версия Visual Studio, флагман Майкрософт, этому яркое подтверждение. Другие фирмы просто не успевают за новвоведения этой Майкрософт, которые за короткое время становятся стандартом. Технологию .NET (читается "дот-нэт"), по-видимому, вскоре ждет такая же судьба. Другим фирмам также придется поддерживать эту платформу, поскольку, скорее всего она будет включена в стандартную поставку Windows, хотя таких планов официально не намечается. Так фирма Борланд уже выпустила седьмую версию Делфи, самой главной новинкой в которой является поддержка .NET.
Что же представляет из себя .NET. Дэвид Платт, чью книжку "Знакомство с Microsoft .NET" я рекомендую вам прочитать, предлагает такое определение: "Microsoft .NET - это прикомпоновываемая среда периода исполнения, работаящая в ОС Windows 2000". Круто звучит не правда ли? Разбираем по слогам и начнем с конца. .NET будет работать только под W2k, так что уже сама Майкрософт признает, что Windows 98 must die! Итак, чтобы ощутить всю прелесть новой технологии понадобится Windows 2000. "Прикомпоновываемая среда периода исполнения" значит, что теперь компиляторы будут переводить код языка высокого уровня, например VB, в некий MSIL - промежуточный язык низкого уровня, наподобе ассеблера. Далее уже в период исполнения, когда вы запускаете программу, специальный компилятор переводит инструкции языка MSIL в инструкции специфичного процессора. Таким образом, для программ .NET создается как бы виртуальная машина (у вас не возникает чувства "где-то это я уже видел"?). Преимущества .NET не заканчиваются, а только начинаются. Visual Studio .NET поддерживает VB, C++ и новый язык С#, о котором далее. И эти языки не просто поддерживаются, но и в полной мере взаимодействуют между собой, используя ООП. Например, мы можем создать программный комплекс типа клиент-сервер, причем клиент будет написан на VB, а сервер на C#. Кроме того сторонними производителями создана .NET-компиляторы для других языков, из которых мне прежде всего интересны Pascal и Perl. Так что теперь языки программирования интегрированы между собой более тесно, чем в технологии COM. Также в распоряжении программиста имеется система .NET Framework, представляющая собой богатейший набор стандартных классов. Кроме того, она обеспечивает автоматическую сборку мусора (имеется ввиду неиспользуемой памяти) и контроль версий. На мой взгляд это очень удобно, так как, переходя на другой язык программирования, не надо заново изучать иерархию классов. C - это один из моих любимых языков программирования. Так что я не могу не сказать пару слов о новом языке программирования C# (читается "Си-шарп"), которому, надеюсь, посвятить отдельную статью. Не раз во времяя написания программы на C++, я долго выругивался по поводу того, как организована в этом языке модульность. Теперь всяким там заголовочным файлам пришел конец. Поддержку модульного программирования призваны обеспечить пространства имен (namespaces). Для работы с событиями служат делегаты, которые заменяют указатели функций, так как для безопасности от них пришлось отказаться. Также программисты Майкрософта отказались от множественной наследовательности в классах, хотя в интерфейсах данная возможность осталась. Но по сути этот язык является полностью объектно-ориентированнным: в нем со всеми типами можно работать, как с объектами. Больше не существует и главной функции main, зато появился статический метод Main, как в Java, который теперь является точкой входа в приложение. Теперь ложка дегтя. А не пострадает ли от компиляции во время исполнения производительность программ. По заверениям Майкрософт, уменьшения производительности будет всего лишь 1-2% для офисных приложений. Хотелось бы верить... Но все-таки такая схема наводит на кое-какие сомнения. Еще пару слов о чувстве дежавю. Майкрософт всегда славилась тем, что впитавала хорошие идеи своих конкурентов, хотя это, наверное, плюс. Идея виртуальной машины явна взята из идеологии Java, а новые версии языков VB и C# также смахивают на этот язык. Хотя опять же плюс это или минус можно спорить до потери голоса. А нормальное ООП для всех языков программирования это скорее исправление старых ошибок и недоделок в COM. Вместо итога, хочется сказать, что .NET - это шаг в прошлое, но очень нужный и важный. В .NET доведены до ума многие моменты, которые вызывали многочисленную критику продукции Майкрософт в области разроботки программного обеспечения.
|
|
-
.NET Framework,
Оптимизация сериализации в .NET
Приводятся код и методы, позволяющие разработчикам оптимизировать сериализацию данных....
-
.NET Framework,
Плавающая точка в .NET - часть 1: принципы и форматы
Данная статья представит основные принципы арифметических операций с плавающей точкой: числовые форматы, точности и достоверность, погрешности округления. Также в статью включено обсуждение типов плавающей запятой в .NET....
-
.NET Framework,
JIT-оптимизации
Компилятор .NET Just-In-Time Compiler (JIT) считается многими одним из основных преимуществ производительности CLR по сравнению с JVM и другими управляемыми средами, которые используют двоичный код, скомпилированный компилятором JIT. ...
-
.NET Framework,
Инъекции CLR: замена методов во время выполнения
Многие из нас, наверняка, были заинтересованы в том, как работает универсальный язык CLR. Одной из наиболее интересных вещей является динамический компилятор JIT (Just In Time Compiler). Мы рассмотрим то, как JIT компилирует MSIL и создадим утилиту, которая позволяет программным образом заменить любой метод (JIT) другим во время выполнения. Мы также создадим отладочную утилиту, которая прехватывает JIT-вызовы и выводит в консоль информацию о диагноcnbrt....
-
.NET Framework,
Оптимизация запуска приложений .NET
Ждать, пока приложение запустится, неприятно для многих пользователей, поэтому ускорение запуска приложений клиентов может значительно улучшить первое впечатление от вашей работы. И так как скорость запуска имеет значение, следует знать факторы, которые на нее влияют, чтобы избежать распространенных ошибок....
-
.NET Framework,
Создание компилятора языка для .NET Framework
Эксперты по компиляторам являются знаменитостями в компьютерном мире. Я видел, как Андерс Хейльсберг (Anders Hejlsberg) представлял презентацию на конференции разработчиков Professional Developers Conference и когда он сошел со сцены, его встретила целая орда мужчин и женщин, просящих поставить автограф на книгу, или сняться на фотографии вместе с ними. Люди, посвящающие свое время изучению и пониманию всех тонкостей лямбда-выражений, систем типов и языков сборки, кажутся своего рода носителями ...
-
.NET Framework,
Маршалинг данных между управляемым и неуправляемым кодом
Посмотрим правде в глаза: нет в мире совершенства. Мало кто при разработке использует только управляемый код. А между тем, тяжким грузом лежат устаревшие неуправляемые приложения, с которыми приходится мириться. Есть ли способ интегрировать проекты, в которых задействован как управляемый, так и неуправляемый код? Какой вид принимает этот способ: вызов неуправляемого кода из управляемого приложения или вызов управляемого кода из неуправляемого приложения?...
-
.NET Framework,
IronPython как движок для макросов в .NET приложениях
Подозреваю, многие из вас задумывались — как можно в .NET приложение добавить поддержку макросов — чтобы можно было расширять возможности программы без ее перекомпиляции и предоставить сторонним разработчикам возможность легко и просто получить доступ к API вашего приложения? В статье рассмотрено, как в качестве основы для выполнения макросов использовать IronPython — реализацию языка Python на платформе .NET....
|
|
|