VSN умер,
да здравствует VSN (и так каждые пол года).
Привет, всем кто уже читал мои статьи и тем кто еще не
читал… тоже привет. Изнуряющая жара и полный завал работой. О какой статье
вообще может идти речь в принципе. И тем не менее. За последний месяц произошли
очень важные события связанные с VSN. О этих событиях
должны знать все кто изучает сей предмет, а таких немало. В неведении конечно
можно быть и счастливым, а вот программистом – никогда. И потому я решил таки
черкнуть несколько строк. За ближайшие пару часов статья получится вряд ли.
Поэтому давайте назовем мой новый опус скромнее: краткое информационное
сообщение.
А собственно, что
произошло?
24 апреля, в Сан – Франциско (где-то в недрах
Силиконовой Долине), был презентован общественности новый и могучий «Windows Server
2003». Целый месяц Майкрософт «выкатывала» по всему миру. Выкат был настолько
мощным, что на этот раз перепало и странам СНГ. Презентация в Киеве (где я живу
и работаю) прошла 22 мая, а чуть ранее, сразу в нескольких городах России. «Ну
что Вам сказать по поводу презентации?» – подумал я, выколупывая из зубов
остатки шашлыка который там подавали на обед. Мне понравилась сама постановка
презентации, которая прошла в самых лучших традициях шоу бизнеса. И хоть лично
меня трудно удивить в подобных случаях (на всякого рода презентациях мне
приходится бывать чаще чем раз в 2 недели), Майкрософт смогла удивить даже
меня. Я чуть не упал со стула, когда 3 американца (технические докладчики по
существу вопроса) выпрыгнули на сцену, похватали музыкальные инструменты и
вполне профессионально начали лабать целый концерт из патриотических песен с
припевами в духе: «VB.NET для
настоящих мужиков и C# ему под стать». И это все не
шутки – презентация проходила именно так. Шутка (или даже фокус) заключается
совсем в другом. Эти самые докладчики сразу по окончании очередной лекции (я
просиживал свои штаны на сессии для разработчиков) буквально испарялись так и
не ответив на вопросы аудитории. Ну думаю про презентацию уже хватит. Все
остальное Вы прочитаете в других источниках (представителей СМИ было
предостаточно).
Под шумок могучего сервера и в его тени, миру была
подсунута новая версия среды разработки приложений именуемая «Visual Studio .NET
2003» (всего через год после предыдущей версии которую я называл в своих старых
статьях просто VSN и которую следует называть теперь
правильно: «Visual Studio .NET 2002» – иначе такая
путаница возникнет – ух!).
Собственно о факте подмены версий VSN
и следует знать разработчикам. А то может так получиться, что Вы ребята
изучаете ту версию, которой уже нет. Далее я попытаюсь в краткой (тезисной)
форме изложить факты и мысли.
Мнение независимых разработчиков: Собственно
говоря, VSN теперь не является полноценной средой
разработки. Из VSN исчез один главный компонент –
библиотека классов. «.NET Framework» теперь независимый программный продукт. VSN стала оболочкой (дизайнером) позволяющим компоновать
исходник программы с библиотекой .NET Framework и осуществлять предварительное (промежуточное) компилирование
программы.
Исторический факт: А жизнь у .NET Framework достаточно бурная. С VSN-2002 поставлялась версия 1.0.х.х. На эту версию вышло 2
сервис пака. Последний подменил примерно 30% кода. SDK
на изменения не было. Теперь .NET Framework будет доступна для загрузки с сайта Майкрософт. И
сейчас там доступна версия 1.1 (около 30 метров) и SDK
на неё (чуть более 100 метров). Если у Вас шустрый модем, уж не сочтите за
труд.
Результаты моего эксперимента: Мой радиоканал на
работе оказался достаточно шустрым и я выкачал перечисленные выше метры.
Выкачал и начал подключать к VSN-2002. Если коротко: не
работает. Если подробнее: читай этот абзац далее. Установка .NET Framework 1.1 изменила в Windows XP
настройку политики безопасности и снесла инициализацию некоторых программ.
Пришлось чертыхаясь заниматься ремонтом системы. Сама VSN-2002
не высказала дикого восторга по поводу новой версии .NET Framework установленной на машине.
Быстрых способов подключения я не обнаружил. А потому было решено подключать
вручную. Первоначально пришлось отключить в новом проекте все файлы версии 1.0
и подключить одноименные файлы из версии 1.1 (через окно «Add Reference»). Обе версии .NET Framework
хранятся в соседних подкаталогах и искать файлы долго не пришлось. При
подключении к проекту новых файлов, было очень много сообщений о
несовместимости версий. Потому монотонное подключение очень быстро переросло в
энергичное заталкивание файлов ногами. После такого подключения, IDE частично рухнул. В окне дизайнера форм вместо формы
торчал большой и красный крест. Но как это не странно, форма написанная из кода
запускалась. При перезагрузке проекта в среде, VSN-2002
таки просек что я его дурю с версией .NET Framework и послал меня так далеко,
что я решил больше не тратить время на подобные эксперименты.
Выдержки из концепции совместимости версий для
технологии .NET: Согласно указанной
концепции чисто совместимыми считаются версии имеющие различия только после 3
точки. Например: версии 1.0.500.21 и 1.0.500.1006 вполне совместимы. Версии
имеющие различия после 1 точки несовместимы в принципе. Все сказанное и
подтвердил мой эксперимент.
Мое мнение о SDK:
Написано добротно. Полнота изложения материала примерно соответствует MSDN. Для обнаружения первых 10 отличий версии 1.1 от версии
1.0 мне потребовалось минут 15. С другой стороны я должен сказать что эти
отличия не принципиальные. Вообще интересная ситуация получается. Уж если
изучать VSN, то изучать надо .NET Framework 1.1. С другой стороны эта
версия не работает с VSN-2002, для того чтобы писать
программы надо VSN-2003 вначале установить.
Из материалов доклада на презентации: Я привожу
дословный текст. «Версия 1.1 .NET Framework была разработана для установки на старые
операционные системы начиная от Windows 98 и заканчивая
XP. Мы разработали версию 1.1 для применения в новой
операционной системе Windows Server 2003. Ваши программы написанные для версии 1.0 могут
работать под управлением Windows Server 2003. Для этого Вы должны сами установить .NET Framework версии 1.0»
Исторический факт: Версия 1.1 .NET Framework действительно включена в
комплект поставки Windows Server 2003. Первоначально планировалось, что эта
операционная система увидит свет под названием «Windows.NET Server
2003». Не сложилось. И без объяснения причин. Споры о причинах сейчас идут в
кулуарах пивного бара клуба программистов села Большие Васюки. Одни
программисты утверждают что Майкрософт дает плавный откат своей технологии за
декларированной ранее как Microsoft.NET.
Другие говорят, что концепции Microsoft.NET просто не удалось реализовать в новой операционной
системе из за недостатка времени. Итак откладывали её выход один раз и на 9
месяцев, ну куда дальше откладывать: весь мир просто ждет с нетерпением.
Из материалов доклада на презентации: Я привожу
дословный текст. «Современная Windows по-прежнему будет
доступна через интерфейс API для ваших программ. Однако
мы вынуждены вас предупредить. API и COM
расположены в зоне неуправляемого кода. Старайтесь использовать эти интерфейсы
только в случаях крайней необходимости. В .NET Framework заложено много
возможностей заменяющих API. Дальнейшее
совершенствование CLR позволит прибегать к API все реже и реже. Сказанное нами является стратегией
Майкрософт на несколько ближайших лет.»
Мои пояснения: Неуправляемый код, это когда у
вашей программы потенциально может возникнуть много проблем, например таких как
«утечка памяти». А средств для отладки в зоне неуправляемого кода у VSN нет вообще. Не приделали за ненадобностью. Насчет «стратегии
Майкрософт» я не понял вообще ничего. Что является стратегией? Поддерживать API в следующих версиях Windows или
наоборот заменять его на .NET Framework? Но одно уже ясно абсолютно. С каждой новой Windows мы будем видеть новый .NET Framework; и если этот новый .NET Framework
будет недостаточно совместим по номеру версии – сразу будет выпускаться новая
версия VSN.
Из материалов презентации: C#
теперь стал стандартным языком программирования. Его спецификация утверждена в
Европе. Далее я дословно привожу несколько цитат из докладов.
«Мы все долго программировали на C
и C++. Мы очень любим этот язык программирования. Но мы
всегда завидовали программистам Visual
Basic. Как быстро они могут сделать то, на что у
нас уходит масса времени. Но теперь мы создали новый язык программирования. Это
C#. Теперь его производительность также высока как и у Visual Basic.»
«Вы можете продолжать программировать на Visual Basic
6.0. Это очень хороший язык программирования. Но Вы должны понимать. Новые
технологии нельзя остановить. И для поддержания новых технологий нам всем нужны
новые языки программирования.»
«Нам часто задают один вопрос. Чем отличаются C# и Visual Basic .NET? Какой язык следует
избрать для программирования? Я отвечу на этот вопрос. C#
обрабатывает все имена без учета регистра. Так имена MyApp
и myapp – одинаковые имена. Visual Basic
.NET можно настроить таким образом, что MyApp и myapp
будут разными именами. Вы сами должны выбрать тот язык программирования,
который Вам необходим.»
Мои комментарии: К сожалению, у меня не
получилось побывать на докладе посвященном отличиям Java
от Java# (в это время я был на другом, не менее
интересном докладе). Но само наличие такого доклада говорит о многом. Новое
изобретение Майкрософт, как Вы сами понимаете. О C++ на
презентации даже слова не сказали. Теперь Visual Basic .NET и
C# «для настоящих мужиков». Как только Майкрософт
наконец решит чем эти языки не отличаются, один из этих языков сразу исчезнет.
Но нам отчаиваться по этому поводу не следует. Языки и в самом деле получились
одинаковые. И .NET Framework одна на всех. А переучиться как рэмить строки кода
– 5 минут дел. Вообще у меня сложилось мнение, что Майкрософт всеми правдами и
неправдами строит под знамена технологии .NET (то есть
под свои знамена) программистов всех направлений. Прямо идея фикс. Будем
посмотреть чем такое закончится.
Либерализм по поводу VB6 тоже
весьма показателен. Год назад заявлялось вполне категорично: «Visual Basic 6.0 больше нет», а теперь:
«очень хороший язык программирования». Нет, реанимации языка не будет. Но
многочисленные наезды со стороны программистов заставили Майкрософт хоть
покраснеть. Меня в этой связи другой вопрос интересует. Как долго приложения VB6 будут работать под виндой. До этих пор, лично я, эту вашу
.NET, в виду имел.
Из материалов презентации: По мнению Майкрософт,
Windows приложений не связанных с Internet
больше не существует. Это не было сказано на презентации открытым текстом. Но
эта мысль просто висела в воздухе. Основное отличия между версиями 2002 и 2003
для VSN заключается именно в очень резком наращивании ASP технологий. Майкрософт даже ввела новый термин «ASP.NET» который звучал на
презентации почти как самостоятельный язык программирования. Я попытаюсь
объяснить что такое современный ASP.
ASP приложение – это программа
выполняемая на Web – сервере и способная генерировать
на лету HTML код, тем самым изображая из себя обычную
страничку из Internet. Такие приложения написанные
например на VB6 создавались примерно так. Программист в
совершенстве знал HTML. Он знал как должна выглядеть
его страничка. И он набирал свою страничку как HTML
поток используя обычные операции с текстовыми строками.
Теперь Майкрософт объявила что HTML
программисту знать не надо. Он оперирует элементами из библиотеки .NET Framework
(контролы, классы и их члены и тому подобное). HTML
поток генерируется средой выполнения автоматически. Несколько примеров таких
проектов показанных докладчиком на проекторе, очень быстро убедили меня что это
чистая правда.
Вообще программы автоматической генерации HTML кода это не новость. Вопрос только в качестве
(избыточности) такого кода. Для того чтобы понять эту проблему, создайте HTML страничку (самую простую) с помощью Word-а,
а затем рассмотрите её HTML требуху и попытайтесь в ней
разобраться… Так вод к чему я это все веду. Докладчик перехватывал генерируемый
CLR HTML
код и выводил его на экран. И хвастаться было действительно чем. Этот код мало
чем уступал HTML коду написанному в ручную (с точки
зрения избыточности конечно).
Мои комментарии: Я бы очень порадовался успехам
Майкрософт в области ASP.NET,
но эта область меня попросту не колышет. Романтики в ней конечно хоть отбавляй.
А вот доходов – ноль целых, фиг десятых. Это одна из самых простых областей в
программировании. И сегодня ей занимаются все кому не лень. Предложения
значительно опережают спрос и цены на услуги упали просто до смешного уровня.
Нет, если Вы сотрудник провайдерствующей в Internet
фирмы, то ASP приложения это Ваш хлеб насущный и его Вы
не должны никому отдавать. Во всех остальных случаях, максимум что Вы напишите
– это не коммерческое приложение для бесплатного хостинга, которое будете с
гордостью показывать своим друзьям. Да, кстати. Не сочтите мои слова как
оскорбление. Я даю свой совет из самых лучших побуждений. HTML
и ASP лично я изучил примерно в 1995 году. И первое
время я даже на этом немного зарабатывал. А вот примерно в 2000-ом, я дал себе
клятву: «об этом забыть навсегда», о чем собственно сейчас и не жалею. В
программировании есть много других не менее интересных областей. А материальная
сторона вопроса далеко не из последних.
Заключительная мысль доклада на презентации: «Я
уже закончил свою лекцию. Я с большим удовольствием ответил бы на несколько
Ваших вопросов, но я должен убегать. Иначе меня убьет мой начальник.» Произнеся
такие слова, докладчик снова испарился и уже в последний раз. И именно такими
словами я хочу закончить свою статью.
P.S.
Майкрософт пообещала, что в конце лета мы увидим новый «MS Office». Вполне возможно что так и
будет, если конечно выход продукта не сдвинут примерно так месяцев на девять.
Вполне возможно, что вместе с новым программным продуктом мы также получим
нечто вроде «VBA.NET». А новая
версия .NET Framework,
это уж вещ сама собой разумеющаяся.
Написано для vbnet.ru
29.05.2003 г.
Гриненко Виталий
gwii@svitonline.com