Чтение онлайн

ЖАНРЫ

C# для профессионалов. Том II

Ватсон Карли

Шрифт:

Чтобы изменить настройки, связанные с каждой зоной, откройте Internet Explorer, а затем диалоговое окно Options из меню Tools. В окне Options перейдите на вкладку Security:

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

LocalIntranet
, воспользуйтесь следующим диалоговым окном.

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

Кроме того, кнопка Advanced позволяет открыть диалоговое окно, где задается URI для сайтов, которые мы хотим включить в зону
LocalIntranet
.

Отметим параметр в нижней части этого диалогового окна, который предоставляется для каждой из зон, за исключением зоны Internet. Он задает, что сайты в этой зоне будут считаться надежными, если соединение с ними происходит через защищенный HTTP с помощью шифрования Secure Sockets Layer(SSL). Если считать надежным сайт, который доступен через незашифрованное соединение, возникает потенциальный риск атаки, так как трафик может быть перехвачен. Если желательно проверить, находится ли сайт в определенной зоне, посетите сайт и посмотрите на нижний правый угол окна Internet Explorer, в котором будет выводиться имя зоны для текущего адреса Web.

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

Заключение

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

Легко видеть, что в .NET разработан более высокий уровень контроля безопасности, чем существовало раньше в Windows, при этом большая часть системы безопасности поставляется автоматически, так как не требуется никаких усилий, чтобы использовать ее на базовом уровне. И когда необходимо расширить ее, нам предоставляются классы и инфраструктуры.

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

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

Пpиложeние A

C# для разработчиков C++ 

Введение

Это приложение предназначено для разработчиков, которые уже хорошо знакомы с C++ и хотят узнать, какие существуют различия между C++ и C#. Мы сделаем обзор языка C#, отмечая специально те области, где он отличается от C++. Так как два языка имеют много общего в синтаксисе и методологии, хорошо подготовленные программисты C++ смогут использовать это приложение в качестве краткого курса C#.

Необходимо четко понимать, что C# является языком программирования, отличным от C++. В то время как C++ был создан для общего объектно-ориентированного программирования в те дни, когда типичный компьютер был автономной машиной, выполняющей интерфейс пользователя на основе командной строки, C# разработан специально для работы с .NET и согласован с современной средой Windows и управляемыми мышью интерфейсами пользователя, сетами и Интернетом, Однако также неоспоримо, что два языка очень похожи как своим синтаксисом, так и тем что оба они созданы для использования одной парадигмы программирования, где код основывается на иерархиях наследуемых классов. Эта похожесть неудивительна при условии, что, как часто отмечалось в этой книге, C# в большой степени был создан как объектно-ориентированный язык, взявший самое лучшее из ранее

созданных объектно-ориентированных языков программирования, из которых C++, несомненно, был до сих пор наиболее успешным примером, но отказался от более неудачных свойств этих языков

В связи со сходством между этими двумя языками программирования разработчики, использующие C++, могут обнаружить, что самый простой путь изучения C# состоит в использовании его как C++ с небольшими отличиями и в изучении этих отличий. Это приложение создано для того, чтобы в этом помочь. Мы начнем с обширного обзора, который в общих терминах дает понятия об основных различиях между двумя языками и также указывает, какие области у них совпадают. Затем мы сравним как выглядит стандартная программа "Hello, World" в каждом из этих языков. Большой объем приложения посвящен последовательномy анализу каждой из основных областей языка и подробному сравнению C# и C++. Очевидно, что приложение такого объема не может быть исчерпывающе полным, но оно создано для того чтобы охватить главные различия между языками, которые могут встретиться в ходе повседневного программирования. Отметим, что C# в большом числе областей существенно опирается на поддержку библиотеки базовых классов платформы .NET. В этом приложении мы ограничим наше внимание самим языком C# и не будем подробно рассматривать базовые классы.

Для целей сопоставления в качестве эталона используется ANSI C++. Компания Microsoft добавила многочисленные расширения к C++, но компилятор Windows C++ имеет некоторые отличия, несовместимые со стандартом ANSI, которые будут указаны, хотя они обычно не используются при сравнении двух языков.

Соглашения в этом приложении

Отметим, что в данном приложении мы придерживаемся дополнительных соглашений при изображении кода. Код C# всегда выводится, как и в остальных частях книги, с серым затенением:

// это код C#

class MyClass : MyBaseClass {
 

Если требуется выделить новый или важный код C#, он будет выводиться жирным шрифтом:

// это код C#

class MyClass : MyBaseClass // мы уже видели этот фрагмент

{

 int x; // это интересно

Код C++, представленный для сравнения, выглядит следующим образом:

// это код C++

class CMyClass : public CMyBaseClass {

В образцах кода в этом приложении при использовании двух языков под Windows учитываются также большинство общих соглашений о наименованиях. Следовательно, имена классов в примерах C++ начинаются с C, в то время как соответствующие имена в примерах C# — нет. Также часто в образцах кода C++ используется для имен переменных "венгерский" стиль именования объектов.

Терминология

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

Если все это звучит путано, то следующая таблица должна в этом помочь разобраться:

Значение Термин C++ Термин C#
Переменная, которая является членом класса Переменная-член Поле
Любой элемент в классе, который содержит инструкции Функция (или функция-член) Функция
Элемент класса, который содержит инструкции и вызывается по имени с помощью синтаксиса
DoSomething(/* параметры */)
Функция (или функция-член) Метод
Виртуальная функция, которая определена как член класса Метод Виртуальный метод
Поделиться с друзьями: