Интернет-журнал "Домашняя лаборатория", 2007 №9
Шрифт:
Хорошо, а как быть, если очищенный диск был многосессионным? Ведь описанные выше приемы рассчитаны на работу лишь с одной сессией! На самом деле можно восстановить и многосессионный диск. Это лишь чуть-чуть труднее. Но, чтобы это сделать, мы должны предварительно познакомиться с остальными полями ТОС. А это уже тема следующей статьи!
Постойте, а если после очистки диска на него что-то писалось — возможно ли тогда его восстановление или нет? Разумеется, непосредственно затертые места утеряны безвозвратно, но остальную часть информации по-прежнему можно спасти. Если диск до очистки был многосессионным, то нам даже не придется корпеть над восстановлением файловой системы, т. к. файловая система каждой последующей сессии обычно дублирует предыдущую («обычно» это в смысле «за исключением удаленных файлов») и последняя сессия диска оказывается достаточно далеко от его начала, а потому и риск ее затирания минимален (если,
Вообще же говоря, техника восстановления лазерных дисков намного проще и незатейливее искусства врачевания их прямых коллег — дискет и жестких дисков. Правда, поговорку «семь раз отмерь — один раз отрежь» еще никто не отменял, и одна из пренеприятнейших особенностей работы с CD-RW как раз и состоит в том, что вы не можете гарантированно управлять процессом происходящей записи. Дискеты и жесткие диски в этом смысле полностью прозрачны: что вы пишите, то вы и получаете. Перезаписываемые же носители, напротив, представляют собой «черный ящик», и вы никогда не можете быть уверенными в том, что данный конкретный привод будет правильно интерпретировать отдаваемые ему команды (увы, восстановление CD-RW дисков никак не вписывается в рамки стандарта, а все нестандартные махинации могут интерпретироваться приводом неоднозначно). Единственное, что остается посоветовать — не пускайте все на самотек, а бесконечно экспериментируйте, экспериментируйте и еще раз экспериментируйте, накапливая бесценный опыт, который вам когда-то очень пригодится.
ПРОГРАММИРОВАНИЕ
Основы программирования на C#
1. Visual Studio.Net, Framework.Net
Бренд. Net. Visual Studio.Net — открытая среда разработки. Каркас Framework.Net. Библиотека классов FCL — статический компонент каркаса. Общеязыковая исполнительная среда CLR — динамический компонент каркаса. Управляемый код. Общеязыковые спецификации CLS и совместимые модули.
Имя.Net
Имена нынешнего поколения продуктов от Microsoft сопровождаются окончанием. Net (читается Dot Net), отражающим видение Microsoft современного коммуникативного мира. Компьютерные сети объединяют людей и технику. Человек, работающий с компьютером или использующий мобильный телефон, естественным образом становится частью локальной или глобальной сети. В этой сети используются различные специальные устройства, начиная от космических станций и кончая датчиками, расположенными, например, в гостиницах и посылающими информацию об объекте всем мобильным устройствам в их окрестности. В глобальном информационном мире коммуникативная составляющая любых программных продуктов начинает играть определяющую роль.
В программных продуктах. Net за этим именем стоит вполне конкретное содержание, которое предполагает, в частности, наличие открытых стандартов коммуникации, переход от создания монолитных приложений к созданию компонентов, допускающих повторное использование в разных средах и приложениях. Возможность повторного использования уже созданных компонентов и легкость расширения их функциональности — все это непременные атрибуты новых технологий. Важную роль в этих технологиях играет язык XML, ставший стандартом
Не пытаясь охватить все многообразие сетевого взаимодействия, рассмотрим реализацию новых идей на примере Visual Studio.Net — продукта, важного для разработчиков.
Visual Studio.Net — открытая среда разработки
Среда разработки Visual Studio.Net — это уже проверенный временем программный продукт, являющийся седьмой версией Студии. Но новинки этой версии, связанные с идеей. Net, позволяют считать ее принципиально новой разработкой, определяющей новый этап в создании программных продуктов. Выделю две важнейшие, на мой взгляд, идеи:
• открытость для языков программирования;
• принципиально новый подход к построению каркаса среды — Framework.Net.
Открытость
Среда разработки теперь является открытой языковой средой. Это означает, что наряду с языками программирования, включенными в среду фирмой Microsoft — Visual C++.Net (с управляемыми расширениями), Visual C#.Net, J#.Net, Visual Basic.Net, — в среду могут добавляться любые языки программирования, компиляторы которых создаются другими фирмами-производителями. Таких расширений среды Visual Studio сделано уже достаточно много, практически они существуют для всех известных языков — Fortran и Cobol, RPG и Component Pascal, Oberon и SmallTalk. Я у себя на компьютере включил в среду компилятор одного из лучших объектных языков — языка Eiffel.
Открытость среды не означает полной свободы. Все разработчики компиляторов при включении нового языка в среду разработки должны следовать определенным ограничениям. Главное ограничение, которое можно считать и главным достоинством, состоит в том, что все языки, включаемые в среду разработки Visual Studio.Net, должны использовать единый каркас — Framework.Net. Благодаря этому достигаются многие желательные свойства: легкость использования компонентов, разработанных на различных языках; возможность разработки нескольких частей одного приложения на разных языках; возможность бесшовной отладки такого приложения; возможность написать класс на одном языке, а его потомков — на других языках. Единый каркас приводит к сближению языков программирования, позволяя вместе с тем сохранять их индивидуальность и имеющиеся у них достоинства. Преодоление языкового барьера — одна из важнейших задач современного мира. Благодаря единому каркасу, Visual Studio.Net в определенной мере решает эту задачу в мире программистов.
Framework.Net — единый каркас среды разработки
В каркасе Framework.Net можно выделить два основных компонента:
• статический — FCL (Framework Class Library) — библиотеку классов каркаса;
• динамический — CLR (Common Language Runtime) — общеязыковую исполнительную среду.
Библиотека классов FCL — статический компонент каркаса
Понятие каркаса приложений — Framework Applications — появилось достаточно давно; по крайней мере оно широко использовалось еще в четвертой версии Visual Studio. Десять лет назад, когда я с Ильмиром писал книгу [В.А. Биллиг, И.Х. Мусикаев "Visual C++, 4-я версия. Книга для программистов"], для нас это было еще новое понятие. Мы подробно обсуждали роль библиотеки классов MFC (Microsoft Foundation Classes) как каркаса приложений Visual С. Несмотря на то, что каркас был представлен только статическим компонентом, уже тогда была очевидна его роль в построении приложений. Уже в то время важнейшее значение в библиотеке классов MFC имели классы, задающие архитектуру строящихся приложений. Когда разработчик выбирал один из возможных типов приложения, например, архитектуру Document-View, то в его приложение автоматически встраивались класс Document, задающий структуру документа, и класс View, задающий его визуальное представление. Класс Form и классы, задающие элементы управления, обеспечивали единый интерфейс приложений. Выбирая тип приложения, разработчик изначально получал нужную ему функциональность, поддерживаемую классами каркаса. Библиотека классов поддерживала и более традиционные для программистов классы, задающие расширенную систему типов данных, в частности, динамические типы данных — списки, деревья, коллекции, шаблоны.