Самоучитель по VB.NET
Сайт Алексея Муртазина (Star Cat) E-mail: starcat @ nm.ru
Мои программы Новости сайта Мои идеи Мои стихи Форум Моё фото Мой ЖЖ
Заработай!!!VB коды Статьи о VB6 API функции VB.NET
Более 3000 ссылок Интернет Все работы с фото и видео
Сайт о моём деде Муртазине ГР Картинная галерея "Дыхание души"
Звёздный Кот

Самоучитель по VB.NET
Глава 1.

С чего начать?

Книга «Дюна» Фрэнка Херберта начинается с фразы: «С самого начала надо тщательно взвесить все обстоятельства, чтобы не уподобиться маятнику». Я бы трактовал эту фразу так: «Начало — это время, когда нужно проявить особую заботу о непредвзятом отношении».

По-моему, это утверждение относится и к книгам, и к изучению новых технологий.

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

Что ни говори, начало — ответственный и опасный момент.

Я тщательно обдумывал, как начать эту книгу.

Можно было выбрать тот путь, по которому идет Microsoft, представляя .NET на разных презентациях и семинарах. Я ясно вижу происходящее...

Вы сидите в громадной аудитории. Лектор на отдаленном подиуме едва виден на фоне монитора — картинка дублируется на нескольких экранах, которые своими размерами оказали бы честь среднему кинотеатру. Лектор демонстрирует Visual Basic .NET, размещает на форме несколько элементов и запускает программу. Бац! В браузере возникает готовая web-страница! Однако лектор идет еще дальше и создает на другом сервере нечто похожее на класс Visual Basic. Затем он возвращается в исходную программу — и вот уже методы и свойства нового класса, словно по волшебству, оказываются доступными через Web. Вся аудитория поражена простотой разработки и новаторским подходом, в соответствии с которым web-сайт предоставляет не только визуальную информацию или данные на базе XML, но и целые прикладные библиотеки, с которыми так легко работать в Visual Basic.

Возможно, вы даже мельком увидите кусочек программного кода, творящего все эти чудеса, и он вам покажется отдаленно знакомым...

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

Вся первая глава заполняется подробными инструкциями, фрагментами кода, которые вам предлагается ввести, и многочисленными снимками экранов. Все описание программы сводится к нескольким невразумительным комментариям и обещаниям все подробно объяснить «как-нибудь потом». Собственно, в таком стиле можно написать не только первую главу, а целую книгу; более того, вы даже сможете самостоятельно расширить примеры приложений, и они будут работать — если, конечно, все ваши потребности будут ограничиваться теми примерами, которые я подобрал. А если ваша конкретная задача не встречается в моем учебнике... что ж, всегда найдутся другие книги.

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

Я не привожу ни одного примера кода.

Более того, я почти ничего не рассказываю о среде .NET и Visual Basic .NET.

Вместо этого речь пойдет о контексте. О маркетинге. О подходе к решению . проблемы. Я постараюсь представить .NET с такой точки зрения, которая поможет обойти все начальные затруднения и как можно быстрее приспособиться к тому, что нас всех ожидает.

Конечно, это весьма непростой путь — программировать куда интереснее, чем рассуждать на общие темы. Поэтому я советую прерваться, запустить свою копию Visual Studio .NET и поэкспериментировать с простыми примерами, включенными в документацию. Когда вы более или менее освоитесь, возвращайтесь к чтению.

Что, уже вернулись? Хорошо, продолжим.

 

О важности контекста

Обожаю MSDN. Наверное, это самое лучшее, что когда-либо сделали в Microsoft — по крайней мере, для профессионального программиста. Каждый программист должен сделать постоянной закладку http://msdn.microsoft.com, а возможно — и стать постоянным подписчиком MSDN.

Но честно говоря, иногда мне кажется, что MSDN страдает близорукостью. Каждая новая технология объявляется лучшим (а как же!) решением. Каждую новую технологию необходимо как можно быстрее изучать и применять на практике. Каждая новая технология проще и удобнее всего, что было раньше (особенно благодаря непрерывно растущему числу курсов и учебников по сдаче сертификационных экзаменов).

Приведу конкретный пример.

Однажды мне понадобился сервер электронной почты для моей компании. Компания невелика, и в любой момент использовалось не более десятка-другого учетных записей электронной почты. Конечно, я прежде всего подумал о Exchange Server. Поскольку я пишу о технологиях Microsoft и занимаюсь разработками под них, было вполне логично как можно шире использовать.их на практике, чтобы узнать о них побольше.

Итак, я установил Exchange Server и попытался понять, как он работает. Потом купил книгу — большую, толстую книгу — и попытался еще раз. Результат оказался печальным; на компьютере с NT начал хронически возникать синий «предсмертный экран». Наконец, я где-то прочитал, что Exchange Server нормально работает только на выделенном сервере с гораздо большим объемом памяти, чем у меня.

Проблема решилась форматированием жесткого диска и переустановкой NT — но уже без Exchange Server.

Я отправился в ближайший магазин и купил сервер Eudora Worldmail за $99, не считая цены нескольких дополнительных клиентских лицензий.

Установка заняла не более десяти минут.

Процесс конфигурации был элементарным и интуитивно понятным.

Наконец, система безукоризненно работала на сервере, который в это время занимался массой других полезных вещей.

Только поймите меня правильно — я ничего не имею против Exchange Server1; несомненно, это замечательный продукт. Я лично знаком с несколькими людьми, с большим успехом использующих его в крупных компаниях. Но истина заключается в том, что для маленькой компании вроде моей это решение оказалось неподходящим. Однако в материалах Microsoft никто не написал большими жирными буквами: <<Если вы работаете в маленькой компании, в одном географическом месте и вам нужна только Интернет-почта — НЕ ИСПОЛЬЗУЙТЕ ЭТОТ ПРОДУКТ!!>>

Итак, я подошел к тому, о чем хотел сказать.

Технология —любая технология — обладает ценностью только в контексте Той проблемы, которую она призвана решать. Другими словами, технология хороша лишь в том случае, если она подходит для вашей конкретной задачи. Если вы согласны с этой предпосылкой2, вы увидите, что из нее следует ряд неизбежных затруднений.

В частности, это усложняет написание книг о любой конкретной технологии. Автор не знает, какие проблемы стоят перед его читателями. Следовательно, перед ним открываются два пути. Первый — предлагать общие решения и надеяться, что они вам подойдут (или еще хуже: объявить свои решения «единственно правильными» и не предупредить о возможных последствиях, если вдруг что-нибудь пойдет не так). Второй путь — рассказать о новой технологии столько, чтобы вы могли самостоятельно оценить ее в контексте своей ситуации.

Второй вариант труднее, но я все равно попробую. А пока запомните первое правило, которым необходимо руководствоваться на протяжении всей книги.

Все сказанное мной (или любым другим автором) следует воспринимать скептически и оценивать в контексте конкретной ситуации.

1Потерянного времени, конечно, жалко, но это не так уж важно.

2А если не согласны — немедленно верните книгу в магазин; вам вряд ли понравится то, что последует дальше.

Вторая проблема еще важнее. Предлагая свои технологические решения, Microsoft стремится определить потребности и потенциальный рынок, удовлетворить эти потребности и продать свой товар. Я искренне верю, что большинство программистов Microsoft стремится написать качественный продукт и осчастливить своих коллег-программистов... но я верю и в то, что Microsoft стремится продавать программные продукты и зарабатывать на этом деньги1. Хотя по статистике продукты Microsoft удовлетворяют большую часть этих потребностей, это не значит, что любой предлагаемый продукт наилучшим образом подойдет для вашей конкретной задачи. Следовательно, вы должны запомнить и другое правило.

Все сказанное Microsoft (или любой другой коммерческой компанией) следует воспринимать скептически и оценивать в контексте конкретной ситуации.

Не правда ли, звучит несколько кощунственно?

Руководствуясь этими правилами, давайте познакомимся с .NET, но не с самой технологией — к этому вы еще не готовы, а скорее с контекстом ее применения.

 

.NET — реальность или маркетинг?

Когда-то я прослушал общий курс решения .задач (problem solving). Как ни странно, приступая к решению любой проблемы, необходимо прежде всего выяснить, существует ли она. Просто удивительно, как много из них решается простым и здоровым сном. Похожий вопрос относится и к новым технологиям Microsoft — а существуют ли они?

На мой взгляд, Microsoft выпускает «продукты» двух типов.

Первый тип — это действительно продукты без кавычек; то, что можно купить и использовать. Visual Basic — продукт; Windows 2000 — продукт; Microsoft Transaction Server — тоже продукт, как и Microsoft Message Queue2.

Если бы Microsoft продавала только такие продукты, мне бы не пришлось писать этот раздел.

Но существует и другая категория «продуктов» от Microsoft, которые не создаются руками программистов, а выходят из отдела маркетинга3.

Вспомните, что произошло несколько лет назад, когда Microsoft «открыла» Интернет. В один прекрасный день выяснилось, что Microsoft начинает отставать от Netscape, Sun и других компаний, занимающихся Интернет- технологиями. Немедленно под фанфары появилась новая технология ActiveX.

Что такое ActiveX?

Это OLE2 с новым названием.

Вот так. Вся новая «Интернет-стратегия», все принципиальные технологические достижения обернулись новым названием для того, что существовало и раньше.

Я вас еще не убедил?

1Как ни странно, кое-кто воспринимает эти слова как клевету на Microsoft. Однако это коммерческая организация, и если бы ее целью не было зарабатывание денег, у держателей акций возникли бы обоснованные претензии.

2MTS и MSMQ изначально были продуктами. Помните об этом, когда будете читать дальше.

3Реорганизации Microsoft происходят так часто и отличаются такой сложностью, что человеку постороннему практически невозможно разобраться, что, когда и зачем делается и кто занимается программированием (и занимается ли им кто-нибудь вообще). Иначе говоря, мои комментарии с четким разделением программирования и маркетинга упрощены ради ясности изложения и не отражают реальных событий, происходящих в Microsoft.

Microsoft представила ряд важных компонентов, упрощающих создание масштабируемых СОМ-объектов в многоуровневых приложениях. Microsoft Transaction Server обеспечивал обработку транзакций и совместный доступ к данным, a Microsoft Message Queue — надежный асинхронный обмен сообщениями. В один прекрасный день появилась технология СОМ+, которая делала то же самое (и еще кое-что).

А что собой представляла технология Windows DNA?

Вы заметили, что все упоминания о Windows DNA исчезли буквально за считанные дни, а на смену им мгновенно пришло нечто, называемое .NET Enterprise Services? Более того, Microsoft даже опубликовала список соответствия терминов DNA и .NET.

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

Значит, любые исследования в области .NET следует начинать с вопроса: что здесь реально, а что следует отнести на счет рекламной шумихи?

Когда вы будете читать эти строки, вероятно, информация из других источников уже убедит вас в том, что .NET действительно является новой технологией, а не простым упражнением в маркетинговой риторике.

Но даже сейчас вы еще не представляете, какие крупные изменения сулит пришествие .NET. Одно из последствий такой маркетинговой политики напоминает старую притчу о мальчике, который слишком часто кричал: «Волк! Волк!» — в Microsoft давно кончились все хвалебные эпитеты для действительно новых и оригинальных технологий.

Попробую восполнить этот пробел.

Список можно продолжить (и я сделаю это ниже), но вы, вероятно, уже поняли мою мысль. Для программистов Visual Basic внедрение .NET приведет к более глобальным изменениям, чем переход от 16-разрядных версий Windows к 32-разрядным. Масштаб изменений сравним разве что с переходом с DOS Basic на Visual Basic.

Однако .NET не только несет серьезные испытания для программистов Visual Basic, но и открывает замечательные возможности.

Признаюсь, когда я наконец-то начал понимать, что же делает Microsoft, я был ошарашен. Потрясение не прошло до сих пор. Таким образом, прежде чем переходить к непосредственному описанию технологии, необходимо ответить на ряд общих вопросов.

1А по эффективности программирования программисты Visual Basic всегда опережали программистов C++.

Назад   Вперёд

 



Заказ программ!
Вы можете заказать у меня написание необходимой вам программы. Чем популярнее будет она, тем меньше стоит работа.
Инфо
Сайт создан: 3 февраля 2000 г.
Рейтинг@Mail.ru
Главная страница