Российский Государственный Технологический Университет им. К.Э. Циолковского
Опубликован: 02.03.2007 | Доступ: свободный | Студентов: 5678 / 802 | Оценка: 3.96 / 3.45 | Длительность: 27:04:00
ISBN: 978-5-9556-0086-4
Введение 1:

Предисловие

Введение 1: 1234 || Лекция 1 >

Свойства доменов:

  • Домены изолированы друг от друга. Объекты, созданные в рамках одного домена, недоступны из другого домена.
  • CLR способна выгружать домены вместе со всеми сборками, связанными с этими доменами.
  • Возможна дополнительная конфигурация и защита доменов.
  • Для обмена данными между доменами реализован специальный механизм безопасного доступа (маршалинг).
  • В .NET Framework разработана собственная компонентная модель, элементами которой являются .NET-сборки (.NET-assembly), а для прямой и обратной совместимости с моделью COM/COM+ в CLR встроены механизмы (COM Interop), обеспечивающие доступ к COM-объектам по правилам .NET и к .NET-сборкам — по правилам COM. При этом для .NET-приложений не требуется регистрации компонентов в системном реестре Windows.

GAC (Global Assembly Cache – Общий КЭШ сборок). Для выполнения .NET-приложения достаточно разместить относящиеся к данному приложению сборки в одном каталоге. Если при этом сборка может быть использована в нескольких приложениях, то она размещается и регистрируется с помощью специальной утилиты в GAC.

CTS – Common Type System (Стандартная Система Типов). Поддерживается всеми языками платформы. В силу того, что .NET основана на парадигме ООП, речь здесь идет об элементарных типах, классах, структурах, интерфейсах, делегатах и перечислениях. Common Type System является важной частью среды выполнения, определяет структуру синтаксических конструкций, способы объявления, использования и применения ОБЩИХ типов среды выполнения. В CTS сосредоточена основная информация о системе ОБЩИХ ПРЕДОПРЕДЕЛЕННЫХ типов, об их использовании и управлении (правилах преобразования значений). CTS играет важную роль в деле интеграции разноязыких управляемых приложений.

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

System
System.Data Классы для обращения к базам данных
System.Data.Common
System.Data.OleDb
System.Data.SqlClient
System.Collections Классы для работы с контейнерными объектами
System.Diagnostics Классы для трассировки и отладки кода
System.Drawing Классы графической поддержки
System.Drawing.Drawing2D
System.Drawing.Printing
System.IO Поддержка ввода/вывода
System.Net Поддержка передачи данных по сетям
System.Reflection Работа с пользовательскими типами во время выполнения приложения
System.Reflection.Emit
System.Runtime.InteropServices Поддержка взаимодействия с "обычным кодом" – DLL, COM-серверы, удаленный доступ
System.Runtime.Remoting
System.Security Криптография, разрешения
System.Threading Работа с потоками
System.Web Работа с web-приложениями

Выполнение неуправляемых исполняемых модулей (обычные Windows-приложения) обеспечивается непосредственно системой Windows. Неуправляемые модули выполняются в среде Windows как "простые" процессы. Процесс характеризуется замкнутым адресным пространством. При этом необходимая для выполнения программы информация (данные) размещается в различных областях адресного пространства процесса, которые называются стеком и кучей. Эти области имеют различное назначение и механизмы управления.

Информация в стеке и куче представляется в виде последовательностей битов с четко определенными свойствами. Такие последовательности называются объектами. Множество неизменяемых свойств, которые могут служить для классификации различных объектов (количество байтов последовательности, формат представления информации в последовательности, операции, определенные над объектом), задают тип объекта.

Таким образом, при выполнении программы в стеке и куче размещаются объекты различных типов.

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

В куче размещаются используемые в программе данные. Они структурированы и представлены объектами различных типов. Размещение объектов в куче происходит в результате выполнения специального оператора new. Основным механизмом управления кучи является сборщик мусора (Garbage Collector).

Ссылкой (ссылкой на объект) называется объект, который определен на множестве значений, представленных адресами оперативной памяти в рамках процесса. Если значением ссылки является адрес конкретного объекта, ссылка считается определенной. Ссылка на объект не определена, если ее значение не соответствует адресу какого-либо объекта. Неопределенное значение ссылки в программе кодируется специальным обозначением (null). Особых ограничений на месторасположение ссылки не существует. Ссылка может располагаться как в стеке, так и в куче.

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

Принципы объектно-ориентированного программирования

Имеет смысл воспринимать языки программирования высокого уровня как ОБЫЧНЫЕ ИНОСТРАННЫЕ ЯЗЫКИ.

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

Языки программирования позволяют аналогичным образом "общаться" с электронными устройствами.

Программист владеет естественным языком.

Для электронного устройства "понятна" специфическая система команд.

Общение на естественном языке пока невозможно для устройств.

Общение на машинном языке неудобно для программиста.

Компромиссным решением является разработка "промежуточного" языка – языка программирования. Она ведется в соответствии с некоторыми представлениями о том, КАК можно описать что-либо на языке программирования таким образом, чтобы это описание, несмотря на специфику "слушателя" было бы максимально простым и понятным для всех участников общения. Эти представления о способах изложения мысли на языке программирования формулируются в виде системы общих принципов, которые формируют парадигму программирования.

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

  • Принцип наследования. Обобщение и детализация являются основными видами интеллектуальной деятельности в повседневной жизни. Не вдаваясь в детали, можно утверждать, что VW Passat – это АВТОМОБИЛЬ. АВТОМОБИЛИ бывают разных моделей (марок, типов). В частности, АВТОМОБИЛЬ, обладающий определенным набором специфических свойств, может быть идентифицирован как автомобиль Ford Focus. Обобщить частное явление и понять, ЧТО ЭТО. Исходя из общих представлений, сформулировать частный случай. Частное обобщается, общее детализируется. Автомобиль любой марки (VW, Renault, Ford) является детализацией общего понятия АВТОМОБИЛЬ и НАСЛЕДУЕТ наиболее общие свойства (знать бы какие) понятия АВТОМОБИЛЬ. Объект (ФАКТ), для которого не удается найти обобщающего понятия (невозможно понять, ЧТО ЭТО ТАКОЕ), является АРТЕФАКТОМ. Формальный язык, построенный в соответствии с принципами ООП, должен включать средства обобщения и детализации, которые и обеспечивают реализацию принципа наследования.
  • Принцип инкапсуляции. Окружающий мир воспринимается трехмерным. При описании объекта реального мира закономерными являются вопросы "Что у него ВНУТРИ?", "Как он УСТРОЕН?". Или утверждения "У него внутри ...", "Он устроен ...". Формальный язык, построенный в соответствии с принципами ООП, должен содержать средства, которые позволяли бы описывать "внешний вид", внутреннее устройство, механизмы взаимодействия объекта с окружающим миром.
  • Принцип полиморфизма. Предполагается, что при выполнении программы можно заставить "работать" (активировать) созданные в программе на основе предварительного описания объекты. При этом объекты реализуют заложенную в них функциональность. Описание множеств объектов (объявление классов объектов) осуществляется в соответствии с принципами наследования и инкапсуляции. Принцип полиморфизма предполагает универсальный механизм реализации функциональности объектов любых классов. Формальный язык, соответствующий принципам ООП, поддерживает стандартные методы активизации объектов. Эти методы просты в реализации и универсальны в применении для любого типа объектов.
Введение 1: 1234 || Лекция 1 >
kewezok kewezok
kewezok kewezok
Елена Шляхт
Елена Шляхт
Объясните плиз в чем отличие а++ от ++а
Почему результат разный?
int a=0, b=0;
Console.WriteLine(a++); //0
Console.WriteLine(++b); //1
a++;
++b;
Console.WriteLine(a); //2
Console.WriteLine(b); //2