|
||||
|
Программирование на Visual C++Выпуск №20 от 22 октября 2000 г. Здравствуйте, уважаемые подписчики! Тем, кто еще пребывает в блаженном неведении, спешу сообщить хорошую новость. Рассылка в октябре приобрела статус "золотой"! Что это значит? По определению Subscribe.Ru, это означает, в частности, что рассылка: – содержит свежие, актуальные и исключительно полноценные материалы; – соблюдает указанную в описании тематику и периодичность; – выходит на грамотном русском языке. Скромно хочу отметить, что "Программирование на VC++" сейчас единственная "золотая" рассылка в разделе "программирование". Будем надеяться, что этот статус теперь закрепится за ней надолго. Поздравления принимаются по все тому же адресу ;) НОВОСТИСудя по всему, новая концепция Microsoft – .NET – довольно сильно интересует всех программистов, и, соответственно, читателей рассылки. Сегодня я вам предлагаю статью, присланную Ярославом Говоруновым. Он ее решил оформить как продолжение моей публикации из выпуска №8. Что дядя Билли нам готовит Часть втораяИтак, NGWS SDK pre-beta вышла. Это немного развеяло туман, связанный с появлением на свет следующей версии Visual Studio и теперь можно более конкретно говорить о том, что нас ждет. Что же вызвало столько шума? Это не новый язык C#, и не новые инструментальные средства, по большому счету это даже не новая VS ;). Имя счастливчика – .NET. Так что же такое .NET – технология, SDK или модель? На эту тему было много споров. Был даже спор, является ли .NET операционной системой. Лично я согласен с самим производителем и считаю что .NET – это платформа. Можно сказать, что .NET представляет собой этикетку, название, придуманное маркетологами, для целого набора технологий, как Windows DNA. Формально ее можно определить так: .NET = COM+ + дополнительные сервисы и технологии + Common Language Runtime (CLR) + набор спецификаций (в т.ч. Common Language Specification — CLS) + огромная библиотека объектов. Концептуально .NET представляет собой единение основных идей, лежащих в основе Java и COM. Теперь обо всем по порядку. Ядром всей системы является Common Language Runtime (CLR) – это аналог JVM (Java Virtual Machine), но методы ее работы больше похожи на COM. Она контролирует всю основную работу по выделению и освобождению памяти, созданию и уничтожению объектов, вызову методов и многое другое. При этом на низком уровне используются хорошо известные концепции, такие как контексты объектов, перехват по необходимости, Proxy/Stub и т.д. Большая часть технологий не так нова, как кажется. Например, так рекламируемый 'garbage collection' представляет собой просто красивую оболочку механизма подсчета ссылок в COM, только теперь CLR берет на себя всю рутинную работу. Однако есть ряд существенных отличий. Как и в случае с Java, .NET программы не компилируются в машинные коды. Вместо этого программа поставляется в виде Intermediate Language (IL). На выходе получается тот же самый exe или dll файл, но вместо машинных кодов он содержит IL. На вид IL очень похож на некий прообраз ассемблера, так что исходные тексты , возможно, останутся защищенными. В отличие от байт-кода, IL-код не может быть интерпретирован. Для выполнения программы используется Just-In-Time Compilation (JITting), когда куски кода компилируются и оптимизируются во время выполнения. Такой метод предположительно будет использоваться для WEB-приложений, так как приводит к потерям производительности. Для пользовательских программ будет использоваться другой – pre-JITing, когда компиляция происходит во время установки программы на пользовательскую машину. IL не зависит от языка программирования, теоретически его можно писать даже вручную, однако .NET предлагает лучшее решение. Common Language Specification (CLS). Да, хорошо сформулированные спецификации являются, пожалуй, самой сильной стороной .NET. Как известно, ни одна технология или платформа не может стать стандартом без спецификаций. .NET, как и COM, является языконезависимой платформой. CLS определяет набор спецификаций, которым должен соответствовать язык программирования, чтобы стать частью .NET. Разумеется, язык должен быть объектно-ориентированным, он должен поддерживать пространства имен. Запрещается множественное наследование, вместо этого вводится концепция интерфейса и множественное наследование интерфейса. Все это делает разницу между языками достаточно тривиальной. В наши дни, для написания программ, программисты пользуются библиотеками объектов. .NET имеет одну большую библиотеку объектов для всех языков. Точнее библиотека является частью CLR, и соответственно доступна для всех языков в платформе. Библиотека эта очень велика. Она состоит из множества пространств имен, каждое из которых в свою очередь содержит классы или другие пространства имен. [Здесь мне почему-то приходит в голову высказывание Роберта Хайнлайна о том, что слон – это мышь, выполненная по государственным спецификациям ;) – AJ] И наконец о месте VC в новой платформе. Хочу обрадовать читателей, что для VC была отведена особая роль. Так как сам язык C++ не очень соответствует спецификации CLS, то его пришлось немного изменить. Такой измененный язык называется VC managed extension. Однако это не главное! Главное то, что VC остается единственным средством для производства 'unmanaged code', т.е. – программа компилируется в машинные коды и работает не под управлением CLR, а сама по себе. Итак, какие же преимущества мы получим с переходом на .NET? Первое, и главное – платформонезависимость. Хоть на данный момент доступна только одна платформа – Windows 2000, Microsoft обещает, что CLR будет доступна для всех основных платформ. Второе – языконезависимость. .NET программы могут разрабатываться на любых из более чем 40 уже доступных языков. При этом предоставляется очень высокий уровень интеграции. Облегчается задача разработчика, так как CLR берет на себя часть рутинных задач. А также большая и удобная в использовании библиотека объектов. А недостатки? О недостатках пока говорить рано. Как говориться «знал бы, где упал». Возможно, мне так и не удалось ответить на вопрос – что же такое .NET? Грандиозный успех, или грандиозный провал – время покажет. Ясно одно, .NET – это самый значительный шаг Microsoft за последнее время. Важнее даже чем Windows 2000 и X-Box. Грядет революция, и рано или поздно нам придется с этим считаться. Мое мнение – лучше рано, чем поздно. Несколько полезных ссылок: Сайт с кучей полезных ресурсов по .NET ОБРАТНАЯ СВЯЗЬ
Использование CReBar действительно в некоторых случаях оправданно. Но необходимо знать, что у ReBar существует ряд существенных ограничений. В частности, они не могут быть "плавающими" и стыковаться с границами окна.
Вряд ли статический (т.е. являющийся частью изображения ) текст кого-либо устроит. Это, конечно, можно сделать, но вообще-то это не принято. ВОПРОС-ОТВЕТ
На этот вопрос было получено удивительно мало ответов. Неужели этим почти никто не интересовался?
Я хотел бы предостеречь читателей: использование недокументированных классов чревато неприятностями. В том же MSDN написано, что члены и методы класса CDockBar, скорее всего, претерпят сильные изменения в будущем.
Хочу добавить (как еще один вариант), что я кажется видел класс с такой же функциональностью в Ultimate Toolbox от Dundas Software. В ПОИСКАХ ИСТИНЫ
Успехов! (Алекс Jenter jenter@mail.ru) (Красноярск, 2000.) |
|
||
Главная | В избранное | Наш E-MAIL | Прислать материал | Нашёл ошибку | Наверх |
||||
|