Новая технология .NET, предложенная компанией Microsoft, отражает видение этой компанией приложений в эпоху Internet. Технология .NET обладает улучшенной функциональной совместимостью, в основе которой лежит использование открытых стандартов Internet. Кроме того, она повышает устойчивость классического пользовательского интерфейса операционной системы Windows — рабочего стола. Разработчикам программного обеспечения технология .NET предоставляет новую программную платформу и великолепные инструментальные средства разработки, в которых основную роль играет язык XML (extensible Markup Language — расширяемый язык разметки).
Microsoft .NET — платформа, построенная на верхнем слое операционной системы. Технология .NET явилась главным объектом инвестиций компании Microsoft. С момента начала работ над этой технологией и до момента ее публичного анонсирования прошло три года. Несомненно, на развитие технологии .NET оказали влияние другие технологические достижения, в частности расширяемый язык разметки XML, платформа Java™, a также модель компонентных объектов Microsoft (Component Object Model — COM).
Платформа Microsoft .NET предоставляет:
устойчивую общеязыковую среду выполнения CLR (Common Language Runtime), которая входит в состав данной платформы;
средства разработки приложений на любом из многих языков программирования, поддерживаемых платформой .NET;
лежащую в основе открытой модели программирования огромную библиотеку классов .NET Framework. Эти классы содержат многократно используемый код. Они доступны в любом языке программирования, поддерживаемом платформой .NET;
поддержку сетевой инфраструктуры, построенной на верхнем слое стандартов Internet, вследствие чего обеспечивается высокий уровень взаимодействия между приложениями;
поддержку нового промышленного стандарта, а именно технологии Web-служб. Технология Web-служб предоставляет новый механизм создания распределенных приложений.
По сути, она является распространением технологии создания приложений на базе компонентов и на сферу Internet;
модель безопасности, которую программисты могут легко использовать в своих приложениях;
Сети Token Ring были разработаны фирмой IBM в 1970-х годах и рассчитана на скорость обмена 4.16 Мбит/c при числе сегментов до 250. По своей популярности она уступает лишь Ethernet/IEEE 802.3. Спецификация IEEE 802.5 практически идентична ей и полностью совместима (см. [13], или, например, bbs.uniinc.msk.ru/product/bay/routers/interf/toking.htm. Сеть Token Ring имеет топологию звезды, все оконечные станции которой подключаются к общему устройству (MSAU - MultiStation Access Unit). В IEEE 802.5 топология не оговаривается, не регламентирована здесь и сетевая среда. В Token Ring сеть базируется на скрученных парах. Обе эти разновидности сети используют схему передачи маркера (небольшой пакет - token).
В отличие от сетей с csma/cd доступом (например, Ethernet) в IEEE 802.5 гарантируется стабильность пропускной способности (нет столкновений). Сети Token Ring имеют встроенные средства диагностики, они более приспособлены для решения задач реального времени, но в то же время более дороги.
Вы познакомитесь с терминологией объектно-ориентированного программирования (ООП) и убедитесь в важности применения в программировании объектно-ориентированных концепций. Бытует мнение, что во многих языках, таких как C++ и Microsoft Visual Basic, есть "поддержка объектов", однако на самом деле лишь немногие из них следуют всем принципам, составляющим основу ООП, и язык С# — один из них. Он изначально разрабатывался как настоящий объектно-ориентированный язык, в основе которого лежит технология компонентов. Поэтому, чтобы чтение этой книги принесло максимальную пользу, вам следует очень хорошо усвоить представленные здесь понятия.
Компиляторы составляют существенную часть программного обеспечения ЭВМ. Это связано с тем, что языки высокого уровня стали основным средством разработки программ. Только очень незначительная часть программного обеспечения, требующая особой эффективности, программируется с помощью ассемблеров. В настоящее время распространено довольно много языков программирования. Наряду с традиционными языками, такими, как Фортран, широкое распространение получили так называемые «универсальные» языки (Паскаль, Си, Модула-2, Ада и другие), а также некоторые специализированные (например, язык обработки списочных структур Лисп). Кроме того, большое распространение получили языки, связанные с узкими предметными областями, такие, как входные языки пакетов прикладных программ.
Для некоторых языков имеется довольно много реализаций. Например, реализаций Паскаля, Модулы-2 или Си для ЭВМ типа IBM PC на рынке десятки.
Реестр операционной системы Windows XP представляет собой централизованную базу данных параметров настройки системы и работающих в ней приложений. В этом смысле реестр аналогичен разнообразным INI-файлам, а также файлам AUTOEXEC.BAT и CONFIG.SYS, которые использовались ранее. Реестр содержит информацию обо всех аппаратных средствах, программном обеспечении, операционной системе и сетевых параметрах компьютера. Эта сложная иерархическая база данных принимает участие во всех аспектах работы Windows XP. Хорошее понимание принципов работы реестра, выполняемых им задач, а также умение манипулировать реестром необходимо всем: системным и сетевым администраторам, специалистам из групп технической поддержки, а также опытным пользователям из числа программистов. Кроме того, для системных администраторов особенно важны вопросы администрирования и защиты реестра, а также его резервного копирования и восстановления.
Теория нечетких множеств представляет собой обобщение и переосмысление важнейших направлений классической математики. У ее истоков лежат идеи и достижения многозначной логики, которая указала на возможности перехода от двух к произвольному числу значений истинности и поставила проблему оперирования понятиями с изменяющимся содержанием; теории вероятностей, которая, породив большое количество различных способов статистической обработки экспериментальных данных, открыла пути определения и интерпретации функции принадлежности; дискретной математики, которая предложила инструмент для построения моделей многомерных и многоуровневых систем, удобный при решении практических задач.
Подход к формализации понятия нечеткого множества состоит в обобщении понятия принадлежности. В обычной теории множеств существует несколько способов задания множества. Одним из них является задание с помощью характеристической функции, определяемой следующим образом. Пусть — так называемое универсальное множество, из элементов которого образованы все остальные множества, рассматриваемые в данном классе задач, например множество всех целых чисел, множество всех гладких функций и т.д.
В последнее время Internet очень часто оказывается в центре внимания, и серьезные люди часто болтаются по этому " Информационному супершоссе". Компьютерные сети становятся такими же обыденными вещами, как телевизоры и микроволновые печи. Inetrnet получает необычно широкое освещение в печати, а ученые обсуждают в Usenet возможность проведения исследований "Internet культуры." Различные компании работают над новыми методами передачи данных, например ATM, которые во многих случаях позволяют получить большую скорость передачи, чем сейчас.
Конечно, сети развивались достаточно долгое время. Обычной практикой было создание маленьких локальных сетей, в основном распологавшихся в одном здании, и соединенных через обычные телефонные линии. Таким образом, быстро разраставшийся конгломерат сетей, позволял подсоединятся к этой глобальной системе даже маленьким некоммерческим организациям и частным пользователям. Поэтому создание Internet-хоста с почтой и новостями, предлагающего доступ по телефону, стало нормальной практикой, и появление ISDN будет, несомненно, ускорять эту тенденцию.
После создания Базы Данных очередной становится задача организации её обработки с целью получения нужной информации. Имеется несколько вариантов работы:
доступ к Базам Данных через элемент управления Data;
доступ к Базам Данных с использованием языка SQL (Structured Query Language - Структурированный Язык Запросов);
доступ к Базам Данных с использованием других средств.
Рассмотрим доступ, основывающийся на операциях с элементом управления Data, мощным инструментом для выполнения разнообразнейших операций с Базами Данных.
Свершилось. Не прошло и года, как объединение усилий двух ведущих разработчиков инструментария для Web-дизайна (компаний Allaire Corporation и Macromedia Inc.) принесло свои результаты. Основным из них на сегодняшний день является появление на свет новой версии популярного редактора Web-страниц, который теперь называется Macromedia HomeSite 5. Сообщение об этом событии появилось на сайтах компаний Allaire и Macromedia 23 октября 2001 года, и с этого дня пользователи получили возможность опробовать возможности оценочной версии продукта.
Тем читателям, которые знакомы с предыдущими версиями HomeSite, наверняка известно, что он обеспечивал достаточно тесную интеграцию средств разработки с визуальным редактором Macromedia Dreamweaver. Отныне это взаимодействие стало еще более тесным и эффективным.
Сохранив основные достоинства предыдущих версий редактора HomeSite (в том числе пользовательский интерфейс), компания Macromedia дополнила этот инструмент целым рядом новых возможностей. Самая главная из них — поддержка синтаксиса нескольких языков разметки, в том числе языка XHTML, который представляет собой реализацию языка HTML 4 в качестве приложения XML.
Кроме того, HomeSite 5 интегрирован с новой версией редактора таблиц стилей TopStyle Lite 2.1, который обеспечивает быстрое и удобное редактирование стилевого оформления страниц сайта.
Для тех, кто не работал ранее с НomeSite, в состав редактора включены многочисленные средства поддержки пользователя, позволяющие освоить работу с редактором за минимальное время.
Каждая используемая нами в программе переменная только тогда имеет смысл, когда может принимать какие-либо значения. Множество значений, которые может принимать переменная, играет столь важную роль для характеристики переменной, что оно называется типом переменной.
Каждый год выходит масса книг по информационным технологиям. Среди них не так много классических или, если так можно выразиться, правильных. Более девяноста процентов - полнейшая чепуха, их даже можно назвать вредными книгами. У меня уже давно зреет идея создать сайт, на котором вести рейтинг и обсуждение книг. В интернет-магазинах, как правило, либо все отзывы положительные, либо вообще никаких отзывов. Можно будет также завести черный список технических писателей, которые занимаются профанацией, выдавая за книгу плохой пересказ справочного руководства. Книга принципиально отличается от справочного руководства авторским взглядом по различного рода вопросам, основанным на его личном опыте. Данную книгу, в точности и в таком виде, никто кроме меня не написал бы. Возможно, кто-нибудь и написал бы, и даже написал бы лучше меня, но это была бы другая книга на основе опыта и кругозора другого человека. Если же говорить о справочном руководстве, например, по языку Си, то мое справочное руководство ничем бы не отличалось от справочного руководства Василия Пупкина. Оба руководства сводились бы к техническому документированию функций, которые совершенно одинаково работают и на моем компьютере, и на компьютере Васи Пупкина.
К сожалению, выбор компилятора часто обусловлен, опять-таки, идеологией и соображениями вроде "его все используют". Конечно, среда разработки Microsoft Visual C++ несколько более удобна, чем у портированного gcc - но это ведь вовсе не значит, что релиз своего продукта вы должны компилировать с использованием MSVC++. Используйте оболочку, компилируйте промежуточные версии на MSVC++ (кстати, время компиляции у него гораздо меньше, чем у gcc), но релиз можно собрать с использованием другого компилятора, например от Intel. И, в зависимости от компилятора, можно получить прирост в производительности на 10% просто так, на ровном месте. Но какой "правильный" компилятор выбрать, чтобы он сгенерировал максимально быстрый код? К сожалению, однозначного ответа на этот вопрос нет - одни компиляторы лучше оптимизируют виртуальные вызовы, другие - лучше работают с памятью.
Если вы знакомы с английским языком, то легко поймёте, что слово if переводится как “если”. Этот оператор выполняет блок кода, следующий после него с отступами, только в случае, если выражение в его заголовке не нуль(т.е. верно).
>>> x = int(raw_input("Введите целое число: ")) >>> if x < 0: ... x = 0 ... print 'Отрицательное число стало нулём' ... elif x == 0: ... print 'Это число - нуль' ... elif x == 1: ... print 'Это число - 1' ... else: ... print `Это число больше единицы' ...
Далее могут быть ещё операторы elif(аналог case в Си). Оператору if, как видно, сопутствуют операторы else(“иначе” - блок кода выполняется если условие в заголовке if приняло нулевое значение, т.е стало ложным) и elif(“иначе если” - блок кода выполняется если условие в заголовке if приняло нулевое значение, т.е стало ложным, а значение в заголовке данного оператора стало ненулевым, т.е истинным).
Данный документ может быть необходим в следующих ситуациях:
У Вас имеются идеи, связанные с программированием, и существует необходимость в выполнении процесса кодирования каких-нибудь shell-скриптов.
Ваши идеи, связанные с программированием, недостаточно конкретны и требуют дополнительных указаний.
Вы желаете взглянуть на какие-нибудь shell-скрипты и комментарии в качестве образца для создания своих собственных.
Вы мигрируете из DOS/Windows (или уже выполнили это) и хотите создавать файлы пакетной обработки ("batch").
Вы - полный нерд и читаете любой попавший под руку how-to.
В данном HOW-TO осуществляется попытка предоставить Вам некоторые рекомендации по shell-программированию, основанные только на примерах.
В данном разделе Вы обнаружите небольшие скрипты, которые, вероятно, будут Вам полезны при освоении некоторых приёмов.
Резервное копирование и восстановление из копии является одним из самых важных процессов в администрировании базы данных InterBase/FireBird.
Резервное копирование – один из самых надежных способов сохранить и предохранить свои данные от потери или порчи. Процесс резервного копирования также делается в профилактических целях, для увеличения производительности базы данных – это достигается за счет того, что в момент копирования происходит считывание последних версий всех записей, старые же версии в копию никогда не попадают. Здесь важно заметить, что недостаточно одного лишь резеврного копирования, нужно иногда проверять восстанавливаемость базы данных из резеверной копии, потому что бывают случаи, что база данных работает в режиме 24*7, то есть 24 часа в сутки и 7 дней в неделю, backup базы данных может происходит нормально, но в силу определенных причин база данных не восстанавливается, последствия могут быть плачевными для всех данных.
Как уже было отмечено ранее, при работе с Web-приложением пользователь непосредственно взаимодействует с посредником в виде Web-браузера. Браузер, в свою очередь, взаимодействует с Web-сервером, на котором работает приложение, по протоколу HTTP (конечно, возможно использование других посредников и других протоколов, однако они применяются достаточно редко, и здесь мы их рассматривать не будем). Для передачи данных Web-браузера серверу протоколом HTTP [11] предусмотрено несколько методов передачи параметров, из которых в большинстве Web-приложений используются два — GET и POST. Параметры GET — это параметры, передаваемые непосредственно в адресной строке Web-браузера. Параметры POST передаются вместе с пакетами данных (и используются, как правило, либо для передачи больших объемов данных, поскольку не имеют ограничений на размер, либо чтобы не загромождать адресную строку браузера).
Чтобы протестировать приложение, необходимо знать, какие имена параметров оно ожидает увидеть в запросе и какие значения должны принимать эти параметры, чтобы выполнилась та или иная часть программы. Для выполнения этих задач необходим анализ потока данных в приложении. В общем случае эта задача нетривиальна и требует использования методов статического анализа кода; однако для каждого конкретного приложения с большой вероятностью такой анализ может быть достаточно простым. Тем более что при создании тестов не обязательно задаваться целью проанализировать все возможные варианты поведения приложения в зависимости от входных данных — следует исходить из желаемого соотношения качества тестов ко времени и ресурсам, необходимым для их разработки. Сложность создания инструмента для анализа потока данных зависит от структуры исходного кода приложения. Как будет показано ниже, во многих случаях за короткое время можно создать инструмент, производящий достаточно подробный разбор потока данных.