Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Проектирование и кодирование - две стороны одной медали.


➲перейти к началу ➲перейти к концу
Практическая работа с Visual Studio.Net и Microsoft Office

Статистика
Номер выпуска рассылки 8
Дата выпуска рассылки 2006-05-21
Время выпуска рассылки 23:35:07
Возраст рассылки в днях 106
Количество подписчиков 1065
Динамика подписчиков за вчера +1
Динамика подписчиков за неделю +9

Оглавление

Практическая работа с Visual Studio.Net
Практическая работа с Microsoft Office
Web-технология
Создание реальных проектов
Вопросы и ответы

Дайджест: Проектирование и кодирование - две стороны одной медали.

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

Ошибки продолжаются.

Понял причину искажений, всё дело в публикаторе subscribe, который режет непрерывные строчки. Что поделать, текстовые письма накладывают на него ограничения. В основном это происходит с HTML тэгом пробела. Думаю ни для кого не составит труда удалить лишние ";" или "nb sp", а так же соединить порвавшийся код в предыдущих выпусках. В будущем же я постараюсь избежать таких проблем.

Напоминание.

Рассылка имеет свой почтовый адрес - comp.soft.prog .vsnetmsoffice-owner@subscribe.ru. Если у вас возникли какие-либо замечания или пожелания, пишите. Можете присылать свои статьи, если они будут приемлемого качества, возможно, я их и опубликую. Не забывайте только про ограничение в 15Кб на письмо, иначе оно просто не пройдёт.

Напоминание.

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

Практическая работа с Версия
Visual Studio.Net 2003

Практическое проектирование.

Хотя сам я использую Visual Studio.NET 2003 Enterprise Architect Edition, данный материал подойдёт не только для следующих, но и предыдущих версий этого замечательного программного продукта. Как и обещал, в этом выпуске речь пойдёт о вспомогательных средствах проектирования, и в некоторой степени кодирования. А начнём мы данное обсуждение с несколько отвлечённой темы, но если хорошо вдуматься, то непосредственно связанное с любым видом программирования.

Итак, многие из вас, скорее всего, слышали о некой схеме, которая якобы помогает создавать программы, особенно это касается высших учебных заведений, где подобное часто является обязательным условием. Чтобы лучше понять, о чём я говорю, привожу её пример:

  1. Постановка задачи:
  2. Схема программы:
  3. Код программы:
  4. Тестирование:

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

  1. Постановка задачи: Чаще всего это некоторое краткое название программы, дающееся как говориться "не в бровь, а в глаз", и соответственно описание, помогающее нам определить, что же требуется сделать. Поскольку действия необходимые для работы программы описываются довольно просто, никаких дополнительных пунктов сверх текущего содержания не требуется.
  2. Схема программы: По идее, здесь должны быть подробные схемы программы, без какого-либо кода, но я уже говорил про "гвозди и микроскопы". В результате чаще всего получается полная путаница. Новички в программировании пишут сначала код, а потом уже пытаются втиснуть его в формат блок-схемы. Сразу отмечу, что не только блок-схема имеет право на существование, более того, на мой взгляд, использовать её для повторного дублирования кода глупо и расточительно. По-хорошему, она должна отражать ряд конкретных идей (задач), но не являться только лишь инструментом бюрократизации, как зачастую и происходит.
  3. Код программы: Название говорит само за себя. В "игрушечных" программах код обычно умещается в одном документе. Не путайте с файлом, так как в Visual Studio.NET в одном файле их может быть несколько, наглядный пример - работа с макросами. В данном случае нам не нужны вспомогательные файлы, такие как метаданные или ресурсы. Всё будет понятно и без них.
  4. Тестирование: Зачастую для успешной работы программы нужно убедиться в этом лично. Этот процесс ещё называют отладкой, то есть тестирование или по-русски - испытание, это, безусловно, один из важных её элементов. Раз мы пока рассматриваем простейшие примеры, то в данной роли может с успехом выступать таблица вводимых и выводимых значений, с ограничением на скорость обработки.

Схема действий, описанная для создания "игрушечных" программ неплоха, но по большей части можно обойтись и вовсе без неё, так как основное её предназначение заключается в формировании больших или огромных проектов. Естественно, нам придётся пересмотреть своё отношение к каждому описываемому мной пункту, а чтобы знания, изложенные в текущей рубрике, не пропали даром, я сразу буду преобразовывать их в практическое руководство по Visual Studio.NET. Но не забывайте, что данное поведение с огромным успехом можно использовать в любой системе программирования, кроме того, очень часто это бывает просто необходимо, для облегчения труда программиста.

Начало написание программы.

С "игрушечной" схемой разобрались, теперь настала очередь реальных программ. Для удобства я рассмотрю мастера создания решений и проектов для Desktop Applications, то есть приложений рабочего стола. Для более полного понимания возьмём за основу Visual С++.NET. Выбрав пункт меню File⇒New⇒Project... мы откроем диалоговое окно New Project предназначенное для создания или добавления новых проектов в решение. В древовидном списке Project Types: выбираем папку с названием Visual C++ Projects. Внутри у неё находятся множество мастеров, но нам нужны только следующие:

  • Win32 Project
  • MFC Application
  • Windows Forms Application (.NET)

В их использовании нет необходимости, однако вы можете ради опыта создать приложение с каждым из них, вследствие чего, легко убедиться, что хоть они и имеют мало общего внутри, но получаемый результат практически одинаков (естественно если вы этого захотите). Какие же из этого следуют выводы? Попытайтесь сделать их самостоятельно, до того, как прочтёте следующий абзац.

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

Постановка задачи.

Под постановкой задачи многие принимают простейшую инструкцию того, что необходимо получить. У многих она ассоциируется с постановкой задач для "игрушечных" программ, в данном случае такой минимализм будет неуместен. Простейшие задачи описываются просто лишь потому, что сами являются простыми, и тут дело даже не в степени сложности, а в самом количестве задаваемых параметров. Я не зря привёл в пример мастера создания решений и проектов, именно они помогают уловить основную суть моих рассуждений. Следовательно, нам в первую очередь нужно описать возможности, которые бы мы хотели получить от нашей программы. Воспользуйтесь любым из выше приведённых мастеров. Даже если вы программируете на другом языке, это не будет иметь значения, пока мы не дойдём до этапа кодирования. Кодировать мы все равно не будем, так как цель данного урока состоит в условном программировании или в программировании без кодирования. То есть, для начала, гораздо полезнее будет научиться проектировать, если конечно вы не хотите до конца жизни быть "игрушечным" программистом.

Необходимо отметить одну важную особенность, а именно, что постановка задачи и схема программы взаимосвязаны, и по большому счёту второе является продолжением первого. Такое же соответствие происходит с кодированием программы и её тестированием. Но существует одна очень важная особенность, никогда эти две группы не должны пересекаться. Для чего это нужно и что вообще значит? Ответ ищите чуть выше, когда я описывал различные мастера, а, следовательно, и дальнейший способ кодирования программы. Можно пойти в рассуждениях гораздо дальше. Предположим мы малость повредились в уме и решили написать огромный проект целиком на ассемблере без использования каких-либо высокоуровневых наворотов. Скажете это невозможно, безусловно, если сразу приступить к кодированию на успех можно не рассчитывать. Но если правильно поставить задачу, а так же составить схему программы, то нам просто останется планомерно двигаться к намеченной цели, кодируя строчку за строчкой. Причём не важно, какой язык это будет, так как приложение будет уже составлено.

Для лучшего усвоения приведу конкретный пример. Предположим, на позарез понадобилось окно Windows имеющее строку заголовка и контекстную область. Как бы мы ни изощрялись, какую бы систему ни выбрали, результат всегда будет один. Вот это и называется постановкой задачи, когда программист исходит только из того, что хочет получить. А если нам понадобилось главное меню, и не простое, а золотое (в прямом смысле имитирующее золото). Нет проблем, просто напишите это в постановке задачи и не бойтесь, что в последствии не сможете его запрограммировать. Это не столь важно, так как Visual Studio.NET встроены инструменты, способные раскалывать и не такие "орешки". О технологиях упрощающих жизнь программиста и позволяющих добиться желаемых результатов речь пойдёт ниже.

Схема программы.

Схема программы - это поведенческая модель создаваемой вами системы. Суть её проста, если для постановки задачи вам нужно описать все желаемые возможности, то схема описывает, как они будут между собой связаны. В данном случае связь выражается в способности к воспроизведению каких-либо действий, следовательно, это нечто вроде программирования словами, образами или чем-нибудь иным, без употребления конкретного кода. Очень важно понимать, что схема может принимать любые виды. Она может быть чертежом, блок-схемой, битовым рисунком, текстовым файлом, смесью из всех этих, а так же многих других пунктов. Нужна же, прежде всего, для самого программиста, чтобы помочь ему не запутаться в своих мыслесплетениях.

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

Код программы.

Я уже говорил, что кодировать мы сегодня не будем, так как это может сбить с поставленной задачи - научиться проектировать. К тому же данная тема связана с конкретной системой программирования, поэтому охватить её в паре абзацев просто невозможно. Пока могу лишь посоветовать, не путать проектирование программы и проектирование кода. Внимательно прочтите и запомните текущие понятия. Ответьте на вопросы:

  • В чём их сходство и отличие?
  • Что нужно делать в первую очередь, а что во вторую?
  • Можно ли смешивать их в программировании?

Ещё раз хотелось бы отметить, что по данной теме применительно к объектно-ориентированному программированию лучше, чем третье издание книги "Язык программирования C++" от Бьерна Страуструпа я пока не встречал. Её полезно будет прочитать даже тем, кто использует другие языки, вроде Visual Basic.NET или Visual Java.NET, так как, несмотря на разницу в грамматических конструкциях, общая идея одна на всех. Программистов же не смущает, что книга по C++, а пользуются они её для изучения Visual C++ 6.0 или Visual C++.NET, что согласитесь не одно и тоже.

Тестирование.

Тестирование или если говорить по-русски - испытание, неотъемлемая часть работы по созданию программ. Так же часто употребляется термин - отладка, хотя многие связывают его лишь с успешным запуском кода и его сносным функционированием в дальнейшем. На мой взгляд, это гораздо более объемлющее понятие. В него входят составление вводных тестов для каждого пункта постановки задачи, которые служат для проверки неких заранее заданных условий. Помимо безошибочности, порой бывают очень важны: скорость, переносимость и многие другие параметры. Чем более коварные и изощрённые тесты вы придумаете, тем лучше. Однако стоит отметить, что на успешное их прохождение очень сильное влияние может оказать состояние самой программы, а иногда даже операционной системы. Тестирование в некоторых случаях по сложности ничуть не уступает проектированию или кодированию, отсюда и выливается в некую науку, на постижение которой уйдёт много времени. Но не стоит думать, что вы потеряете его напрасно, так как это обогатит вас новыми знаниями и умениями, поможет осмыслить или переосмыслить многие принципы программирования.

Постскриптум.

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

перейти к оглавлению

Практическая работа с Версия
Microsoft Office 2003

Записки философствующего программиста.

Вам никогда не приходило в голову, что в Visual Studio.NET программируют одно и то же разным, а вот в Microsoft Office всё наоборот, разное программируют одним и тем же? Поясню свою мысль, в Visual Studio.NET программисты добиваются решения одних и тех же поставленных задач разными языками и мастерами проектов, а вот, несмотря на различие программных продуктов Microsoft Office и связанных с ними форматами, всё же существует некое общее ядро в построении основных библиотек. Конечно, данное высказывание спорно, ведь у Visual Studio.NET тоже единая загрузочная библиотека, но нужно же мне перед началом немного пофилософствовать.

К слову сказать, существует огромное количество печатных изданий, да и электронных самоучителей по Microsoft Office. Тот же DVD-диск "Библиотека в кармане DVD 1", на одной стороне содержит десятки тысяч книг в различных жанрах, в том числе и учебные пособия, а на другой так называемый бонус - "Коллекция учебников и самоучителей". Чего там только нет, и, причём не малая часть посвящена так же Visual Studio.NET. Хотя ключевое преимущество в основном в их русскоязычном происхождении, так как MSDN может удовлетворить практически любой запрос, да и встроенная помощь по Microsoft Office русифицирована вплоть до глав описывающих программные библиотеки.

К чему я клоню? К тому, что конструирование, и речь сейчас идёт не только о программировании, но и о любой другой деятельности, по большей части она зависит от способностей человека, а не от количества собранного им для изучения материала. Даже самая умная мысль, сохранённая в книге, в мозгу держится лишь мгновение, на то она и мысль. Любители сравнений могут сопоставить мыслительные процессы мозга с работой компьютера, где даже самый быстрый процессор не сможет задержать момент обработки псевдо мысли. Остановиться на середине сможет, бесконечно зацикливаться на одном и том же, то же сможет, но охватить всю её сразу и удержать, нет. Поэтому не пытайтесь выловить свои мысли. Сохраняйте их в памяти, пишите на бумаге или в компьютер, но не забывайте, что вам никогда не удастся поймать момент озарения. Конечно, любое объяснение подобием ложь, что, кстати, не мешает "нагреваться" на этом психологам, но даже ложь иногда бывает полезна.

Основная идея выражена, но что же делать, если уж очень хочется повысить свой творческий потенциал. Заметили, творческий от слова - творить (создавать), а потенциал - это бездействие, которое человек может обратить в действие благодаря накопленным знаниям. Но для уточнения открываю "Современный энциклопедически словарь" с DVD-диска описанного выше, и что же я вижу:

L

ПОТЕНЦИАЛ (от латинского potentia - сила), источники, возможности, средства, запасы, которые могут быть использованы для решения какой-либо задачи, достижения определенной цели; возможности отдельного лица, общества, государства в определенной области (например, экономический потенциал).

У меня почти тоже самое определение, а ведь раньше я никогда его не читал. Вот пишу и размышляю, что вряд ли я додумался до всех этих мыслей первым. Думаете, какой мой следующий шаг? Естественно открываю "Энциклопедический словарь" от авторов Ф.А. Брокгауз, И.А. Ефрон, кстати, с того же самого DVD-диска. Включаю поиск по слову "потенциал" и помимо электрического или силового потенциала нахожу пару статей про потенциал возможностей человека. И обнаруживаю, что мои мысли по усовершенствованию процесса программирования нагло украли всякие Платоны (429 - 347), Аристотели (384 - 322), а так же их более поздний коллега Лейбниц (1646 - 1715). Кстати, если кому интересно, одна из статей от А. Жданов называется "Врожденные идеи". Для особо любопытных личностей привожу отрывок из статьи:

¨

Самого Аристотеля считали сенсуалистом, потому что он, говоря о душе, сравнил ее с чистой доской, на которой ничего не написано. Но это сравнение обыкновенно не совсем верно понималось, потому что он несколькими строками раньше говорит: "разум, пока он не мыслит, есть ничто, он только есть нечто потенциальное; когда же он мыслит, он есть нечто актуальное, он есть место идей".
Разум, пока не начнется мыслительный процесс, есть ничто в смысле реальной действительности. Отношение между потенциальной и действительной реальностью он иллюстрирует отношением этих же реальностей к доске, на которой ничего не написано. Доска, пока она не исписана обладает способностью быть исписанной; тоже самое относительно реального содержания ума; он до того момента, как начнется мышление, может иметь содержание, но только в возможности.

Вследствие моих рысканий по закоулкам знаний (так я называю электронную библиотеку) ещё раз подтверждается, что нет в мире ничего нового, и всё что остаётся, это смотреть на старые идеи с новых сторон. Не стоит думать, что в своих рассуждениях я "забрёл не в ту степь", так как именно человек, а не компьютер, определяет текущие потребности. А что как не они являются двигателем прогресса.

Когда-то читал книгу Владимира Михайлова "Кольцо Уракары". В ней главный герой задурил голову людям и в какой-то степени компьютерам. Это я к тому, что могу писать в данной рассылке любую чушь, и вы все равно найдёте в ней смысл, причём не исключено, что глубинный. Таково свойство сознания "Пойти туда, не знаю куда, и найти то, не знаю что". Непонятно? Тогда читайте отрывок из этой книги взятой всё с того же пресловутого DVD-диска:

¨

- Интересно, - проворчал старший федерал, - как это тебе удалось размножить текст, если он был закрыт от всякой попытки взлома? Где ты нашел такого специалиста? Мы сразу же пригласили бы его на работу. Поделишься?
- Нет, - разочаровал я его. - Просто потому, что его не существует. И никакой текст на самом деле не был размножен.
- Что же ты отдавал всем заинтересованным?
- Я бы назвал это куклой. У меня было четыре кристеллы, на каждой из которых были записаны цифры, полученные от генератора случайных чисел, я просто сгруппировал их, так что выглядело это как шифрограмма, и снабдил кристеллы защитным механизмом - но таким, чтобы вскрыть его все-таки можно было: для более сложного у меня не было ни времени, ни аппаратуры.
- Что же они ухитрились там прочитать, если никакого осмысленного текста там не содержалось?
- Ну, вы просто недооцениваете современную криптотехнику, - возразил я. - Если есть уверенность, что перед вами зашифрованный текст, то ваши машины раньше или позже, но докопаются до него, а проще говоря - сочинят. Это старое искусство, уже сотни лет тому назад литературоведы и критики, например, ухитрялись выискивать в произведениях очень многое, что авторам и не снилось даже в самых крутых кошмарах. Чем же нынешние компьютеры хуже, если с ними работают люди, ничем не отличающиеся от критиков? Вот они и прочли - и в каждом случае содержание оказалось другим; но они, как вы понимаете, не сравнивали результатов: каждый был уверен, что именно он обладает абсолютной истиной.
- Это к вечному вопросу: что же такое - истина, - глубокомысленно молвил старший федерал.
- Давным-давно один мудрец сказал: истина - это то, что работает, - ответил я. - И потому сейчас для меня - да и для вас тоже - истина заключается в том, что я оставлю вас здесь погруженными в размышления и поеду наконец домой, потому что и так уже я по вашей милости задержался чуть ли не на день и рискую встретить не самый ласковый прием.

Вот и запомните, что "истина - это то, что работает", а, следовательно, и "то, что работает - истина". Вооружившись этим знанием, а так же пользуясь безнаказанностью, в случае приведения ОС в неработоспособное состояние смело вступайте в бой за светлое компьютерное будущее.

перейти к оглавлению

HTML, ASP, VBScript Версия
Web-технология 5.0

Важные изменения в ASP

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

Примечание. Сведения о новых возможностях ASP см. в разделе Новые возможности ASP.

  • Включение буферизации по умолчанию. В IIS 4.0 буферизация была по умолчанию отключена. В IIS 5.1 буферизация всегда включена (кроме тех случаев, когда она намеренно отключается в сценарии). Это означает, что окончательная отправка данных на компьютер пользователя осуществляется после завершения их обработки или при вызове метода Response.Flush в сценарии. При обновлении от IIS 4.0 до IIS 5.1 поддерживаются настройки IIS 4.0. Таким образом, буферизация ответа остается отключенной, пока она не будет явно включена. Дополнительные сведения см. в разделе Буферизация содержимого в теме <Отправка содержимого в веб-обозреватель>.


  • Response.IsClientConnected. В IIS 4.0 команда Response.IsClientConnected возвращала правильные данные только в том случае, если в ASP-файле содержимое отправлялось в веб-обозреватель. Начиная с IIS 5.1 использование в файле ASP свойства IsClientConnected допускается и перед отправкой содержимого в обозреватель. Дополнительные сведения см. в разделе IsClientConnected.


  • Повышенная безопасность при включении файла. В IIS 4.0 при включении файла из виртуального каталога, отображаемого на физический диск, в обработке этого файла ASP не принимались во внимание учетные сведения для физического пути. В IIS 5.1 при обработке включаемых файлов ASP использует учетные сведения, которые относятся к физическому пути. Дополнительные сведения см. в разделе Включение файлов.


  • Обработка строк запроса для используемых по умолчанию документов. В IIS 5.1 если файл .asp (или .cdx) определяется как документ, используемый по умолчанию, в строке запроса URL используемый по умолчанию документ указывать не обязательно. Например, для отправки значения запроса строки в используемый по умолчанию файл <.asp> может быть указан как адрес URL http://www.microsoft.com/default.asp?newuser=true, так и http://www.microsoft.com/?newuser=true.


  • Флаги транзакции. В IIS 4.0 начало новой транзакции отмечалось флагами обязательно, требуется новая и не поддерживается. В IIS 5.1 этот порядок обработки остался прежним. Однако если в одном файле <.asp> запускается выполнение другого файла .asp с поддержкой транзакций посредством нового метода Server.Execute или Server.Transfer, состояние флага транзакции поддерживается и для второго файла <.asp>. Если флаги транзакций, которые относятся ко второму файлу <.asp>, указывают на поддержку или на необходимость транзакций, используется текущая транзакция. При этом новая транзакция не начинается.


  • Работа объектов с двумя моделями. Объект COM с двумя моделями при сохранении в состоянии <Приложение> вызывает ошибку, если он не поддерживает сортировщик свободных потоков. Для сохранения в состоянии <Приложение> объекты с двумя моделями должны включать в себя сортировщик свободных потоков.


  • Перенос в метабазу записей конфигурации. Следующие записи реестра для IIS 4.0 перенесены в метабазу:
    • ProcessorThreadMax
    • ErrorsToNTLog

    В IIS 5.1 все настраиваемые параметры ASP могут изменяться в метабазе. Дополнительные сведения см. в разделе О метабазе.

  • Обеспечение безопасности для объектов COM локального сервера. В IIS используется новая возможность Windows COM, которая имеет название сокрытие. Речь идет о возможности создания экземпляров локальных серверных приложений из файла .asp с использованием контекста безопасности исходного клиента. В прежних версиях код, назначаемый локальному объекту COM на сервере, определялся кодом пользователя, создающего экземпляр объекта.


  • Раннее освобождение объектов. В IIS 4.0 объекты COM освобождались только по завершении обработки страницы в ASP. В IIS 5.1, если объект COM не использует метод OnEndPage и число ссылок на этот объект равно нулю, освобождение объекта происходит еще до завершения обработки.


перейти к оглавлению

От начала и до конца Ставим
Создание реальных проектов опыты

Практическое проектирование в Visual Studio.NET.

Запустите Visual Studio IDE и создайте новое решение c проектом в нём при помощи мастера Windows Application, не забудьте правильно указать папку местоположения, а так же набрать имя проекта и решения. Напомню, что таким образом мы получим объектную модель, принадлежащую к типу Desktop Application. Язык программирования не имеет значения, поэтому используйте то, к чему привыкли. Теперь, когда основа готова, настало время решить, что она будет уметь делать. Это не так уж и сложно, тем более, что выбранный мастер проектов сильно ограничил фантазию на эту тему.

  1. В окне Solution Explorer выберите ваше решение Solution '???' (1 project).
  2. Запустите диалоговое окно Project⇒Add Existing Item....
  3. Убедитесь, что поле Files of Type: установлено в значение All Files (*.*).
  4. Перейдите в папку решения, если вы не меняли настройки установленные по умолчанию и правильно выполнили 1 пункт, то вы уже будете в ней. В папке решения должен быть файл с расширением *.sln.
  5. С помощью контекстного меню создайте Документ Microsoft Word с именем Постановка задачи.doc. Примечание: контекстное меню легко вызвать правой кнопкой мыши наведя в центр диалогового окно, далее выбираем Создать для вызова подменю. Стоит отметить, что для проведения подобных действий у вас должен быть установлен программный пакет Microsoft Office с приложением Microsoft Word.
  6. Нажмите Open.

Поздравляю, вы включили в решение файл напрямую не связанный с Visual Studio.NET. Теперь можно наблюдать появление в окне Solution Explorer новой папки с названием Solution Items. И естественно в ней располагается наш новый документ. Он уже открыт, но если вы его закроете, то сможете легко запустить заново прямо из окна Solution Explorer. Я добавил текущий файл в решение, а не в один из проектов, так как он отражает общую суть задачи, а не её отдельные составляющие. Вы можете создать тысячи библиотек или ограничиться одним лишь загрузочным файлом, всё это не важно. Задача одна, а следовательно, и постановка задачи тоже одна. Не будете же вы лихорадочно искать её по всем проектам решения, если оно слишком сильно разрастётся, к тому же подобное поведение не лучшее для программиста. Лучше сразу разложить всё в строгом порядке, чем потом в пустую терять время.

Прежде чем продолжать, ответьте себе на вопрос: Почему я выбрал именно Microsoft Word? На самом деле это продиктовано не необходимостью, а просто из удобства обучения. Постановка задачи может располагаться как в одном файле, так и во множестве, иметь сложную структуру или быть простым. Типы же применяемых файлов зависят в основном только от вас. Главное помните, сейчас мы не кодируем, а проектируем, следовательно, любые намёки на код пока не допускаются. Поскольку сейчас обучение идёт в абстрактном режиме, то не буду обращаться к частностям и навязывать свою постановку задачи. Придумайте что-нибудь сами.

Те, кто читал мои предыдущие выпуски, должны помнить глаз изображающий наблюдательность. Это не блажь, которая пришла мне в голову, а вполне зарекомендовавший себя приём. Если код бывает очень легко содрать и использовать по назначению или нет, то с другими источниками информации такая штука не пройдёт. Поэтому в третьем выпуске я и намекал на то, что самый простой способ развить собственное воображение, это воспользоваться чужим. Поднимите свой уровень восприятия, не позволяйте монитору зомбировать вас, а то получится как во многих популярных американских боевиках, где герои свято убеждены, что если выстрелить из пистолета в дисплей не планшетного компьютера, то система выйдет из строя, да ещё и успеет при этом разблокировать всю защиту. Или ещё один забавный пример из жизни кибер монахов: "Он смотрит, но не видит. Он слушает, но не слышит. Он двигает руками, но не понимает что делает. Он зомбированный пользователь компьютерного мира".

С постановкой задачи худо-бедно разобрались, и хотя пока ничего не было сказано о самой задаче, все равно я считаю для начала этого вполне достаточно. Тем же способом введите в решение схему программы. Опять же нужно помнить о неоднозначности выбора для неё формата(ов) файла(ов). После этих действий в идеале у вас уже должна получиться программа. Пусть пока она и не содержит ни одной строчки кода, а значит и не привязана к конкретному исполнителю, но если вы можете представить способ её работы, то работу можно считать завершённой. Кстати, некоторые файлы схемы программы вполне могут содержаться в проектах, а не только в решении. Для подобных целей очень удобно добавлять в Solution Explorer папки. Создайте папку с именем "Схема загрузочного файла" в вашем текущем проекте, как это сделать догадайтесь сами, без нудных пояснений с моей стороны. Тем же способом создаются новые подпапки. Примерно то же самое возможно проделать и с Class View, хотя различие в способах обращения будут ощутимы. Не забывайте, что все находящееся в папках и не являющееся ими всего лишь ярлыки, а не сами объекты. Следовательно, их может быть много на один файл или прочий элемент, но удаление одного или всех не повлечёт за собой удаление их самих.

Кодирование и тестирование: Отвлекусь на частность. Раз мы работаем в Visual Studion.NET, значит нужно использовать её инструменты. Одним из таких является Task List. Логично, что самый простой способ связать проектирование с кодированием, это задать себе задания для планомерного выполнения. Просмотрите меню по следующему пути View⇒Show Tasks⇒.... Различные виды этого окна позволят вам легко ориентироваться в типах заданий, а так же узнавать выполнены они или нет. Настройка этих возможностей происходит по следующему пути Tools⇒Options:⇒Environment⇒Task List. Пункт General понятен и без объяснений, а вот Comment Tokens я вкратце опишу. Во-первых, в Token List: по умолчанию находятся HACK, TODO и UNDONE. Причём TODO нельзя удалить или изменить её имя, так как оно используется многими мастерами проектов, допускается лишь смена приоритета. Над HACK и UNDONE издевайтесь, сколько влезет. Для удобства выставлю эти комментарии в порядке их замены одного на другое:

  1. TODO - к исполнению: Создаётся мастерами проектов автоматически, хотя не исключается ручной ввод. Эта лексема обозначает то, что над текущим элементом кода ещё не начали работу.
  2. UNDONE - не завершено: Название говорит само за себя, работа над текущим кодом начата, но не закончена.
  3. HACK - зарубка: Как и у охотников, зарубка обозначает успешное завершение программистом его кодирования на текущим элементом описанным данным комментарием. Во всяком случае, так думает человек, который её ставит, а это может совсем иначе. Для окончательной убеждённости и придумано тестирование.

Никто не запрещает вам удалить HACK и UNDONE или переписать их названия по-русски, хотя это и не будет иметь положительного успеха в случае программирования на разных системах. Вообще процесс совместимости кода лучше не нарушать просто так, для собственного удовольствия. Меняйте заголовки комментариев с TODO до HACK, тем самым, управляя отображением элементов окна Task List. Если над проектом вы работаете не один, то можете добавить собственную лексему, к примеру, ДЛЯ_ПЕТИ. Пусть кодирует Петя, а проектировщику проекта достаточно будет лишь вставить соответствующий комментарий в нужную часть кода.

До Петиной работы:

Visual Basic.NET
       '  ДЛЯ_ПЕТИ:  перерисовать  окно

После Петиной работы:

Visual Basic.NET
       '  HACK:  ДЛЯ_ПЕТИ:  перерисовать  окно

Помимо комментариев вы так же можете использовать ярлыки. С переносимостью у них похуже, но зато в некоторых случая они более удобны. Создать их можно через строку меню Edit⇒Bookmarks⇒Add Task List Shortcut, а так же используя сочетания клавиш Ctrl+K+H. Ярлык появится в текущей строке кода, а так же в Task List, если не будет отфильтрован. Плюс ко всему этому можно задавать обычные, заданные пользователем задания. А для быстрого перемещения по коду, который не связан с элементом проектирования, очень полезными оказываются закладки.

На сегодня всё, удачи!!!

перейти к оглавлению

comp.soft.prog.vsnetmsoffice-owner@subscribe.ru Отвечает
Вопросы и ответы автор

k

Как со мной связаться?

  • Прежде всего можно послать письмо на адрес рассылки, он дан в заголовке. Пишите свои замечания и предложения, но постарайтесь сделать письмо как можно меньше, то есть, 5Kb или 10Kb в текстовом варианте будет более чем достаточно. К тому же сервис subscribe.ru тоже накладывает некоторые ограничения на доставку писем.
  • Вы можете использовать мой лист обсуждений по текущей теме. Он нужен, прежде всего, для общения по почте, сразу многим участникам. В общем, экономный чат для тех, кому не терпится пообщаться. Его стоит использовать, только если вы действительно интересуетесь программированием. Подписаться на лист можно через таблицу подписки расположенную ниже. Там же находится и его всплывающее описание, которое появится, если задержать курсор на названии.

Я только что подписался!!! как мне получить предыдущие выпуски вашей рассылки, заказав их по почте?

Ó Для начала пошлите текстовое письмо по адресу subscribe@subscribe.ru. Ни в коем случае не пытайтесь отправить письмо в формате HTML, робот subscribe просто не станет его рассматривать. Заполните содержание следующей строкой ARCHIVE comp.soft.prog.vsnetmsoffice 2006. Тему можно игнорировать.

Ò Если вы всё сделали правильно, то через некоторое время вам придёт список предыдущих выпусков рассылки. Теперь повторите операцию с письмом, но используйте элементы из списка выпусков. Например, для получения первых трёх выпусков, можно использовать следующее содержание текстового письма:
ARCHIVE comp.soft.prog.vsnetmsoffice 2006/02/10-00:11:08.html
ARCHIVE comp.soft.prog.vsnetmsoffice 2006/02/15-01:06:13.html
ARCHIVE comp.soft.prog.vsnetmsoffice 2006/02/21-23:15:18.html
QUIT

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

Подобным методом вы можете получать не только мою рассылку, но и любую другую, подставив её код в письмо вместо моей.


limon (почтовые адреса в целях конспирации не указываются)

Hello автор ! Блин, клёвая рассылка! Информативная, написана доступно и т.д. Только один вопрос заставил меня написать и уточнить: -- Ну нафига в ней чисто ASP?? Зачем учиться старой технологии (почему не ASP.NET???) Я бы с предпочёл увидеть (почитать) о ASP.NET 2.0 Предложение: -- Писать не про ASP, а ASP.NET 2.0 или ещё круче про AJAX и ASP.NET Atlas в частности. Это было бы гораздо интереснее и конечно увеличило кол-во подписчиков.

Затронута больная тема. Дело в том, что я сжульничал и просто копировал документацию по IIS. Остальные рубрики пишу сам, но на Web-технологии просто нет времени. А жаль, как говориться хочется да не можется, точнее не успевается. Ваше предложение обязательно рассмотрю, а то когда использую чужие наработки, так и лезет фраза "Что-то прогнило в королевстве датском", и я даже знаю что. Вообще, web технологии не главные на повестке дня, но, безусловно, тесно связаны с темой данной рассылки, а, следовательно, нуждаются хоть в каком-то описании. Та же работа с базами данных Access через ASP может быть очень интересна.

Если кому интересна документация IIS, то поставьте галку на все компоненты в Панель управления⇒Установка и удаление программ⇒Установка компонентов Windows⇒Internet Information Services (IIS). Жмите далее и ждите окончания установки. После этого останется только щёлкнуть на следующую ссылку http://localhost/iisHelp/iis/misc/default.asp и подтвердить подключение. Не бойтесь, оно будет локальным, но работать с сервером IIS можно будет как с настоящим. Естественно без доменов, так как они требуют что-либо вроде Windows Server 2003, а не Windows XP. Желательно использовать Internet Explorer с разрешёнными компонентами ActiveX, тут главное иметь возможность запуска script'ов, иначе меню справки не появится.

В будущем постараюсь обойтись без откровенного сдирания чужого текста, но пока сказывается острая нехватка времени. Пытаюсь писать в художественном стиле и не слишком нагружать людей терминами, то есть сделать выпуски как можно доступнее для понимания. Обрадован известием о том, что рассылку считают информативной, хотя тут, я, к сожалению, добился не таких уж и больших результатов. Объясню почему. В современном информационном мире существует огромное количество материалов по любым темам. Взять хотя бы MSDN, и если не смотреть, что она на английском, то это же какой огромный запас знаний. Помимо этого очень много русской литературы, та же встроенная помощь по Microsoft Office или компьютерные самоучители, я уж молчу о печатных изданиях. Но вот что интересно, даже прочтя всю эту гору информации, можно практически ничего не добиться. А всё почему? Потому что главное - это умение пользоваться знаниями, а не их количество. В противном случае знания копились бы так же просто, как и деньги. К примеру, положил книгу на полку и уже стал умнее. А пока это далеко не так, я пытаюсь сделать рассылку не столь полной (для этого есть документация), сколь познавательной. Вроде журнала для программистов от которого не "перегреваются мозги".

Ещё раз спасибо за лестный отзыв. Хотя даже если бы это было конструктивное ругательство в мой адрес, я бы его опубликовал. В общем, если возникнет какая-нибудь идея, пишите не стесняйтесь.

Желаю удачи, автор.

перейти к оглавлению

Подписка
Практическая работа с Visual Studio.Net и Microsoft Office Подписаться web'ом Подписаться почтой
Напиши свою собственную книгу Подписаться web'ом Подписаться почтой
Обобщённый взгляд на устройство вселенной Подписаться web'ом Подписаться почтой
Лист: Обсуждение VS.Net 2003, MSOffice 2003 Подписаться web'ом Подписаться почтой
Visual Basic для новичков и профессионалов Подписаться web'ом Подписаться почтой

Практическая работа с Visual Studio.Net и Microsoft Office
➲перейти к началу ➲перейти к концу

В избранное