Дисциплина: «Высокоуровневые методы информатики и программирования» Кафедра «ОСУ» Осенний семестр 2009/2010 уч. года Уч. группы: 8581 и 8582.

Презентация:



Advertisements
Похожие презентации
ФИЛОСОФИЯ.NET Любому современному программисту, который желает идти в ногу с последними веяниями, каждые несколько лет приходится переучиваться.
Advertisements

Версия сборки Номер версии сборки имеет формат major.minor.build.revision. Например, Значения major(старший), minor(младший), build (компоновка)
1 ©Павловская Т.А. Язык С# Курс «С#. Программирование на языке высокого уровня» Павловская Т.А.
Платформа Microsoft.NET Кафедра системного программирования С.-Петербургского государственного университета Андрей А.Терехов,
Объектно-ориентированное программирование Карпов В.Э. Смолток. Лекция 4. Байт-код.
Учебный курс Объектно-ориентированный анализ и программирование Лекция 4 Трансформация логической модели в программный код Лекции читает кандидат технических.
1. Теоретические основы операционных систем (планирование заданий и использования процессора, обеспечение программ средствами коммуникации и синхронизации,
ВЫПОЛНЕНИЕ АЛГОРИТМОВ КОМПЬЮТЕРОМ. Алгоритм, записанный на «понятном» компьютеру языке программирования, называется программой. Программа данные, предназначенные.
Программное обеспечение компьютера. Компьютер без программного обеспечения и операционной системы – это бесполезный хлам, груда железа.
Тема 1.3. Сервисное программное обеспечение. 1. Понятие операционного окружения Операцио́нное окруже́ние (англ. operating environment) среда, в которой.
ПРЕЗЕНТАЦИЯ НА ТЕМУ: ПРЕЗЕНТАЦИЯ НА ТЕМУ: ВИДЫ ТРАНСЛЯЦИИ Составил: Ревнивцев М.В Преподаватель: Кленина В.И.
Выполнил: Гусев Данил. Что такое программное обеспечение? Возможности современного ПК столь велики, что все большее число людей находят ему применение.
Тренинг «Разработка веб-приложений на ASP.NET» Занятие 1 Знакомство с ASP.NET Гайдар Магдануров
Информатика в школе Операционная система Программное обеспечение.
ИНТЕГРИРОВАННЫЕ СРЕДЫ РАЗРАБОТКИ ПРОГРАММ Представление дисциплины.
Программное обеспечение. Программа – это последовательность команд, которую выполняет компьютер в процессе обработки информации. Программирование – деятельность.
1 Диаграммы реализации (implementation diagrams).
СУБД Microsoft Access 2003 ЗНАКОМСТВО. Что такое Access? Access – Приложение, входящее в состав пакета Microsoft Office (разработано компанией Microsoft).
Вперёд ЯЗЫКИ ПРОГРАММИРОВАНИЯ ЦЕЛИ: ЦЕЛИ: 1. Средство для задания действий, которые должны быть выполнены машиной.(Машинный язык) 1. Средство для задания.
операционные системы операционные оболочки – интерфейсные системы, драйверы (программы, управляющие работой внешних устройств) утилиты (служебные программы)
Транксрипт:

Дисциплина: «Высокоуровневые методы информатики и программирования» Кафедра «ОСУ» Осенний семестр 2009/2010 уч. года Уч. группы: 8581 и 8582

Лекции: Тузовский Анатолий Федорович – профессор каф. ОСУ Рабочее место к. 316 КЦ ТПУ Консультация: Четверг с Лабораторные занятия: Тузовский Федор Анатольевич, ассистент каф. ОСУ

План лекции Пояснение организации, цели и содержания дисциплины Введение в новую платформу (технологию) разработки и выполнения программного обеспечения - Microsoft.Net

Организация преподавания дисциплины

Распределение учебного времени Лекции - 60 часов Лабораторные занятия - 44 часа Всего аудиторных занятий -104 часов Самостоятельная работа часа Общая трудоемкость часов

Материалы курса Материалы по курсу будут расположены в локальной сети по адресу \\Exilim\Info\Дисциплина ВУМИиП (гр ) Дополнительный материал \\Exilim\Info\Тузовский\Высокоуровневые методы информатики и программирования

Самостоятельная работа (104 часа) Изучение материала лекций. Выполнение примеров сделанных на лекции. Выполнение доп. заданий по ЛР Самостоятельная работа может выполняться: –на своем компьютере –вечером в лабораториях кафедры

Отчетность студентов Аттестационные баллы -100 мах. –Посещение лекций – 20 баллов –Контрольные работы – 30 баллов –Лабораторные работы – 50 баллов составление алгоритма (5 баллов) описание класса (5 баллов) описание класса с событиями (5 баллов) разработка программы с GUI интерфейсом (10 баллов) работа с базой данных (15 баллов)

Литература в электронном формате \\Exilim\Info\ Дисциплина ВУМИиП (гр )\Библиотека \\Exilim\Info\ Дисциплина ВУМИиП (гр ) –на русском –на английском книги по технологии.Net и С# –в библиотеке НТБ –в магазинах

Пояснение цели курса

Что такое ВУМИиП? Высокоуровневые методы: –наиболее абстрактные; –наиболее развитые. Информатика – наука об информации (о том, как хранить, обрабатывать и визуализировать информацию с использованием компьютеров). Т.е. вопросы технологии обработки информации. Программирование – составление наборов инструкций, которые описывают порядок выполнения компьютером вычислительного алгоритма.

Из образовательного стандарта специальности «Прикладная информатика (в экономике)» Содержание курса ВУМИиП: Новейшие направления в области создания технологий программирования Программирование в средах современных информационных систем Объектно-ориентированный подход к проектированию и разработке программ Основы визуального программирования. Компоненты; использование компонентов.

Основные средства достижения цели Современная методология разработки ПО - Object Oriented Programming, включает –Анализ –Проектирование –Программирование Современная технология разработки (.Net technology, component technology, языки программирования) Современные системы разработки (Visual Studio, CBuilder, Delphy)

Основные технологии разработки ПО 1.Язык Java (фирма Sun) и основанные на нем технологии (JavaBeabs, NetBeans, Eclipse, JDBC, JSP, …) 2.Платформа.Net (языки C#, Visual Basic, С++ и др., технологии ADO, ASP, LINQ, …)

Соответствие.Net и Java Comparison of the Java and.NET platformsComparison of the Java and.NET platforms – e_Java_and_.NET_platformshttp://en.wikipedia.org/wiki/Comparison_of_th e_Java_and_.NET_platforms Comparison of C# and Java – _Sharp_and_Java

Цель нашего курса ВУМИиП Дать основы ООП к разработке программ в среде OS Windows. Изучение новой технологии разработки ПО.Net, как наиболее совершенной в среде OC Windows. Изучить программирование на новом алгоритмическом языке С#. Дать навыки работы с интегрированной средой разработки Visual Studio.Net (2008)

Пирамида требуемых знаний Объектно-ориентированный подход - программирование Платформа Microsoft.Net Языки – С# (VB.Net,С++) Система разработки – Visual Studio.Net Создаваемая вами программа

Виды программных систем Локальные прикладные программы (приложение -application) Консольное приложение Приложение с графическим интерфейсом Распределенные программные системы в локальной компьютерной сети (distributed application) Интернет приложения (Web application, с использованием Интернет обозревателя)

Пояснение работы компьютера и программ Жесткие диски Дискеты *.exe *.dll Внешняя память Оперативная память Виртуальная оперативная память Системный процесс Процессор Арифметико- логическое устройство (АЛУ) Адрес команды Команда Данные Процесс 1 Процесс Процесс N Данные Регистры Ячейки – 1 byte 1Кб = 1024 байт = Mб = 1024 Кб = Mб = 1024 Кб = 2 30 FlashCards N

Логика работы компьютера Внешние устройства –Внешняя память Жесткие диски (до 1 Тб) Дискеты … –Экран –Клавиатура Основной блок –Физическая оперативная память (до 1 Гб) –Процессор Регистры Арифметико-логическое устройство –Виртуальная оперативная память Процессы –Системный –Пользовательские

Типы языков программирования Машинные языки (машинные коды, инструкции) Строки чисел задающие машине специальные инструкции Ассемблерные языки Аббревиатуры на английском языке описывающие элементарные команды компьютера (транслируются с помощью ассемблеров) LOAD BASEPAY ADD OVERPAY STORE GROSSPAY Высокоуровневые алгоритмические языки Похожие на обычный английский язык, используются математические обозначения (транслируются с помощью компиляторов и интерпретаторов) grossPay = basePay + overTimePay Объектно ориентированные языки программирования

Машинный язык Инструкции закодированные на двоичном языке Непосредственно выполняются процессором Язык самого низкого уровня Каждый шаг программы в конечном счете является инструкцией на машинном языке Адрес Содержание

Ассемблерный язык Каждой машинной инструкции задается краткое символьное обозначение Язык очень низкого уровня –Почти 1 к 1 соответствие с машинным языком Транслируется на машинный язык с помощью ассемблера. Обозначение Инструкция ADD MUL X,10 ADD X,Y STO Z,20 SUB X,Z Простая программа

Языки высокого уровня Близки к естественному (английскому) языку Каждый шаг соответствует нескольким инструкциям на машинном языке Предоставляет поддержку абстракциям –Ближе к описанию и решению задач

Трансляция (компиляция) Машинная команда – => 01 | 0125 | – операция сложения (add), 0125 – адрес первого операнда (число), 0130 – адрес второго операнда (число) Оператор ассемблер –ADD NUMBER,VALUE => Оператор языка высокого уровня –A + B =>

Программа связывания (Linking) Вся программа делится на части (блоки операторов, модули) Блоки операторов – function, classes С помощью функций и классов и можно разработать очень сложные программы Набор откомпилированных функций (классов) можно сохранить в одном файле, который называется библиотекой (Library) Существуют статические (*.lib) и динамические (*.dll) библиотеки Программа Linker – объединяет все классы и функции разработанной программы в один файл – выполняемый модуль (executable module) (ищет требуемые функции в библиотеках и добавляет их к модулю)

Редактор текста Исходный код *.cpp, *.pas С помощью редактора текста программа записывается и сохраняется на диске Транслятор Объектный код *.obj Транслятор преобразует исходный код в машинный код, но не подключает внешние функции. Редактор связей (Linker) Выполняемый код *.exe Редактор связей объединяет объектный код из разных файлов и с функциями из библиотек. Создается один файл. Загрузчик (Loader) Оперативная память Загрузчик создает новый процесс, переписывает программу в ОП, настраивает разные таблицы и передает управление первому оператору (начало функции Main ) Процессор выполняет операторы в выделенные для программы интервалы времени и в соответствии с логикой программы Процессор Классическая последовательность создания программы Алгоритм решения задачи

Существующие способы разработки программ в ОС Windows Большинство программистов использовали языки Visual Basic (VB), C или C++. Программисты на языках C и C++ использовали –некоторые базовую библиотеку функций ОС - Win32 API, –большинство использовали библиотеку классов Microsoft Foundation Classes (MFC). Часть программистов перешли на использование компонентной технологии Component Object Model (COM) с помощью библиотеки ATL. Для разработки Web приложений использовались другие технологии – ASP программирование на Visual Basic Для доступа к базам данных использовались технологии ODBC, ADO, OLE DB.

Проблемы программного обеспечения Взаимодействие программных модулей (компонент) –локальный компьютере –в сети (локальной и глобальной) Переносимость между разными платформами (портативность) –32 и 64 битные –настольные и портативные Безопасность Эффективность

Новая платформа разработки и выполнения программ.Net

Платформа Microsoft.Net В 2002 году компания Microsoft выпустила платформу разработки и выполнения программ под управлением ОС Windows -.NET Framework, которая предлагает новый подход к решению проблем разработки программного обеспечения и соответствие целям информационных систем следующего поколения. Microsoft.Net Platform это новая интегрированная, объектно- ориентированная среда разработки и выполнения программ. С программной точки зрения.Net Platform это –набор библиотек классов; –среда выполнения программ CLR; –набор программных инструментов (Visual Studio, компиляторы, отладчики и пр.).

Платформа программирования Любая платформа разработки и выполнения программ включает: Среду выполнения кода (программы) Среду разработки программы Библиотеку классов

Состав платформы.NET ( the.NET Framework) Общая среда выполнения (Common Language Runtime) –Runtime engine (виртуальная машина) для управляемого кода –Управление потоками и памятью –Хорошо гранулированная, ясная защищенность (security) –Межъязыковое управление исключениями, диагностика, отладка Библиотека классов (.NET Framework Class Libraries) –Набор иерархически организованных библиотек классов –Используется всеми языками.NET –Встроенная общая система типов данных (common type system) –Объектно-ориентированная, расширяемая Набор инструментов разработки и отладки программ –Компилятор (VB.NET, C# и C++) –Инструменты (AL.exe, Disasm.exe)

Список версий.Net Framework ВерсияДата выходаVisual StudioПо умолчанию в Windows Visual Studio.NET Visual Studio.NET 2003 Windows Server Visual Studio Windows Vista, Windows Server Visual Studio 2008Windows 7, Windows Server 2008 R2 4.0ещё не вышлаVisual Studio 2010

Особенности платформы Microsoft.Net Многоплатформенность: она может работать на разных компьютерах, начиная от серверов и настольных компьютеров и заканчивая наладонными компьютерами (PDA) и сотовыми телефонами. Единая модель и инструментарий разработки всех типов приложений (локальных и сетевых) Активная поддержка международных стандартов: она использует такие стандартные протоколы коммуникации, как XML, HTTP, SOAP и WSDL. Безопасность: данная платформа предоставляет намного более безопасную среду выполнения, даже в случае получения программного кода из не надежных источников.

1.Общий промежуточный язык (Common Intermediate Language - CIL) Все компиляторы.Net создают программу на специальном языке CIL 2.Общая среда выполнения (Common Language Runtime - CLR) Все программы выполняются под управлением специальной программы (CLR) 3.Framework Class Library (FCL) При выполнении программы, написанные на любом языке, используют общую библиотеку Основные идеи.Net технологии

Оборудование компьютера Операционная система Window XP/Vista и др. Виртуальная машина – Common Language Runtime (CLR) Библиотека Framework Class Library (FCL) ADO.Net Windows Forms ASP.Net Базовые классы (IO, string, collections, text, … ) Компилятор C#Компилятор VB Компилятор С++... Приложения пользователей Visual Studio.Net.Net Framework

Упрощенная разработка Высокий уровень абстракции –Нет низкоуровневой инфраструктуры COM –Полностью объектно-ориентированная Единая система типов –Все является объектами некоторых классов, нет variants (без типовых переменных), –Один тип string, –Все символы кодируются в системе Unicode Программные компоненты –Свойства, методы, события и атрибуты являются базовыми элементами классов. Бесшовное взаимодействие между языками

Установка.Net Framework C:\WINDOWS\Microsoft.NET\Framework –Версии платформы v Варианты установки –Software Development Kit (SDK) (354 Mb) – для выполнения и создания управляемых приложений –Redistributable Package (22.4 Mb) – выполнения управляемых приложений

Факты об.NET Framework.NET Framework SDK свободно распространяется (SDK – Software Development Kit).NET Framework SDK включает компиляторы для языков: C#, VB.NET и C++. Программирование на.NET Framework SDK не требует наличия среду разработки Visual Studio.NET Имеются бесплатные версии среды разработки Visual.Studio (Express Edition).NET Framework SDK включает набор инструментов, запускаемых из командной строки, такие как компиляторы, отладчики, и разные утилиты Rotor это открытый код реализации.NET Common Language Runtime (CLR) и C# языка

Проект Mono Проект по созданию полноценной реализации платформы системы.NET на базе свободного программного обеспечения. (выполняется компанией Novell, руководит Мигель де Иказа, известный разработчик, участник проекта GNOME и др.) Включает следующие компоненты: –компилятор языка C# mcs, –среду исполнения (CLR) mono (с поддержкой JIT) и mint (без поддержки JIT), –отладчик, а также –ряд библиотек, включая реализацию ADO.NET и ASP.NET. –В рамках проекта также разрабатываются привязки для графической библиотеки GTK+ на платформу.NET. Среда исполнения mono может исполнять модули, написанные на языках C#, Visual Basic.NET, Java, Boo, Nemerle, Python, JavaScript, PHP и Object Pascal (при наличии компилятора в среду.Net/Mono). Ожидается также поддержка языков C, Ada 2005 и Eiffel. Реализации Mono существуют для таких операционных систем, как: –GNU/Linux, –FreeBSD, –Solaris, –Mac OS X, –Microsoft Windows и –Unix.

Два типа программ в ОС Windows Программы (exe модули) в виде набора инструкций процессора (native code) –выполняются процессором непосредственно –все ранее созданное программное обеспечение Программы имеющие специальную структуру на промежуточном языке - управляемый код (managed code) –создаются на платформе.Net –выполняются в среде CLR

Работа программ в MS DOS и OS Windows MS DOS Программа пользователя Программа пользователя 1 Программа пользователя 2 Программа пользователя 3 Программа пользователя 4 OS Windows Common Language Runtime Программа пользователя Программа использующая.NET технологию (управляемый код, managed code) Обычная программа, не использующая.NET технологию (не управляемый код, native code) процессы

Компилятор Управляемые модули *.dll или *.netmodule Компилятор с любого языка преобразует исходный код в промежуточный код, и задает метаданные модуля с описаниями всех типов (классов) в модуле. Загрузчик (Loader) Загрузчик создает новый процесс, в который загружает среду выполнения CLR (Common Language Runtime). Just In Time Compiler Оперативная память CLR вызывает JIT компилятор, который по мере использования классов сборки выполняет компиляцию на язык машинных инструкций. Вначале управление передается статической функции Main. Процессор выполняет операторы в соответствии с логикой программы. Если класс не на машинном языке, то формируется exception, которое вызывает JIT Процессор Последовательность создания и выполнения программы на платформе.Net Запуск Common Language Runtime Exceptions RTE Программа Линкер сборок Assembly *.exe или *.dll Может использоваться AL.exe утилита для создания сборки (assembly). Для простых сборок компилятор автоматически создает сборку. Сборка не объединяет модули в единый модуль, а соединяет их логически. Редактор текста Исходный код *.cs, *.vb, … С помощью редактора текста программа записывается в файл и сохраняется на диске.

Компиляция программ в.Net

Основные типы модулей с инструкциями компьютера в ОС Windows Выполняемые программы (*.exe) Статические библиотеки (*.lib) Динамические библиотеки (*.dll)

Типы программных модулей в.Net платформе сборки (assembly) –exe (может быть запущен на выполнение) –dll (библиотека классов, может использоваться в других программах, которые на нее ссылаются - reference) специальные модули (не включает метаданные о сборке, а только метаданные с описанием типов) –netmodule (может быть включен в сборку).

Новый тип программы – Сборка (assembly) Сборка (assembly) – включает 1 или более управляемых модулей (УМ) Управляемый модуль (managed module) – содержит 1 или более классов Один класс должен включать 1 статический метод (static method) Main() В методе Main должно быть решение задачи, или создание экземпляров класса, которые решают задачу

Сборка (продолжение) Компилятор сразу создает управляемый модуль и сборку Все модули сборки хранятся (один или несколько файлов) хранятся в одном каталоге Утилита AL.exe – для создания многофайловых сборок (может быть на разных языках) В сборке есть декларация – дополнительные метаданные, которые описывают состав сборки

Формат исполняемых файлов, объектного кода и динамических библиотек Код программы на языке машинных инструкций Встроенные данные (меню, рисунки, …) Данные Код программы Microsoft Portable Executable

Формат управляемых программных единиц Описание сборки (только у сборок) Описание доступных классов Код программы на IL языке Встроенные ресурсы (меню, рисунки, …) Метаданные сборки – декларация (Manifest) Метаданные типов (Type Metadata) IL code Resources Метаданные

Многофайловая сборка CIL Описание сборки Метаданные типов CIL Метаданные Картинка CIL Метаданные Main.exe Aix1.netmodule Aix2.netmodule Image.jpg

Метаданные сборки - декларация (Assembly Manifest) Декларация (Манифест) это часть метаданных модуля Декларация – метаданные, описывающие содержимое сборки, в частности, PE файлы, представляющий данную сборку. Состав декларации –Идентификация – имя, номер версии, открытый ключ –Список файлов сборки –Список сборок на которые есть ссылки (references) –Экспортируемые типы (классы) Хранится в одном выделенном файле сборки Первым делом CLR читает декларацию

Метаданные типов Единое (табличное) представление информации о типах и других именованных сущностях, определенных и используемых в.NET-приложении. По структуре очень близки к реляционной СУБД. Создаются компилятором Полное описание информации о типах (классах) (определяемых и используемых) Хранятся в виде набора таблиц Расширяют возможности старых технологий, таких как IDL Всегда связаны с кодом на IL (генерируются одновременно) => синхронизированы

Использование метаданных Устранение необходимости в заголовочных и библиотечных файлах при компиляции Интеллектуальные функции наподобие IntelliSense в VS.NET (браузер типов) – раньше такое тоже было, но использовались TLB Верификация кода (проверка на безопасность) Основа для сборки мусора

Типы сборок Нестрого именованные сборки (weakly named) – сборки без криптографической подписи Строго именованные сборки (strongly named) – имеют –Открытый ключ создателя –цифровую подпись, вычисляемую по содержанию сборки и закрытого ключа создателя. –Имя строго именованной сборки включает открытый ключ создателя и номер версии.

Создание и выполнение управляемых программ

Исполнение в.NET CLR VB Исходный текст Compiler C++C# Assembly Operating System Services MSIL Common Language Runtime JIT Compiler Compiler Native- код Managed Code Managed Code Managed Code Unmanaged Code CLR Services Ngen

Вызов компилятора csc.exe progr.cs /reference:System.Drawing.dll,System.Windows.Forms.dll /target:exe /out:myprg.exe По умолчанию подключается модуль –mscorlib.dll /reference: /target: –exe – консольное приложение –winexe – GUI приложение –library – библиотека классов (dll) –module – управляемый модуль /out:

Создание сборки из управляемых модулей с помощью Assembly Linker csc /t:module a.cs csc /t:module b.cs - создание управляемого модуля AL.exe /target:library /out:lib.dll a.netmodule b.netmodule - создание сборки csc /t:exe /r:lib.dll demo.cs

Глобальный кэш сборок Global assembly cache (GAC) Обычные сборки хранятся в том файле, где они используются В глобальном кэше (хранилище) сборок хранятся сборки, которые могут использоваться разными приложениями

Общий промежуточный язык

Microsoft Intermediate Language (MSIL) MCIL это ассемблерный язык виртуальной машины. Однако реально система команд этой машины переводится в исполняемый код конкретного процессора перед исполнением (так называемая компиляция времени исполнения) При этом выполняется довольно сложный анализ типов программы и проверки условий корректности кода

Характеристики MSIL Псевдоассемблер – определяет набор команд виртуального процессора (примерно 100 команд) Использует стековую модель выполнения (сперва значения загружаются в стек, вызывается команда операции, а затем результаты сохраняются в памяти) При запуске программы CLR компилирует c CIL в машинные коды Утилита ildasm.exe - дизассеблер

Трансляция в MSIL Исходный текст на С# using System; class Fib // числа Фибоначчи { public static void Main (String [] args) { int a = 1, b = 1; for (int i = 1; i != 10; ++ i) { Console.WriteLine (a); int c = a + b; a = b; b = c; }

Трансляция в MSIL Сгенерированный код (начало) // объявление имени assembly.assembly fib as "fib" { // здесь могут быть параметры assembly }.class public Fib {.method public static void Main () {.entrypoint // означает начало assembly // декларация локальных переменных:.locals (int32 a, int32 b) ldc.i4.1 // загрузка константы 1 stloc a // сохранение 1 в a (a = 1) ldc.i4.1 stloc b // аналогично: b = 1 ldc.i4.1 // загрузка 1 на стек // (счетчик цикла)

Трансляция в MSIL (2) Сгенерированный код (окончание) Loop: ldloc a call void System.Console::WriteLine(int32) // печать a ldloc a // stack: 1 a ldloc b // stack: 1 a b add // stack: 1 (a+b) ldloc b stloc a // a = b stloc b // b = (a+b) ldc.i4.1 add // инкремент счетчика dup ldc.i4.s 10 bne.un.s Loop // сравнение и переход // на следующую итерацию pop // удаление счетчика цикла со стека ret }

Достоинство MSIL Многоплатформенность Интеграция языков программирования Возможность отладки многоязыковых приложений Единая модель обработки ошибок

Ассемблер и дизассемблер MSIL Ассемблер ILAsm.exe (входит в.NET Framework) Дизассемблер ILDasm.exe (не входит в.NET Framework, но входит в VS.NET)

При компиляции IL в команды процессора выполняется верификация (проверка кода на безопасность) Верификация основывается на метаданных При обнаружении небезопасного кода возбуждается исключение (System.Security.VerificationException) Не исполняется для небезопасного кода (например, помеченного с помощью ключевого слова unsafe в C#) MSIL и безопасность

Инструменты программирования включают все, что необходимо для кодирования и отладки: Согласованные с.Net компиляторы (например, C#, VB, JScript, и управляемый (managed) C++, а также компиляторы, разработанные другими компаниями). Отладчики (debugger). Серверные компоненты (дополнения), такие как обработчики ASP.NET страниц. Интегрированную среду разработки Visual Studio.Net (или другие версии среды разработки).

Выполнение сборки в процессе OC домены приложений Application domain - концепция для совместного использования и изоляции приложений Накладные расходы меньше, чем при создании нового процесса AppDomains создаются в рамках CLR-хоста (одного запуска CLR), исполняющего.NET-приложения Иерархия: Процесс ОС -> CLR-хост -> AppDomains AppDomain создается для каждого.NET-приложения (по умолчанию – DefaultDomain) Явные ссылки между AppDomains запрещены Связь между AppDomains требует прокси-классов и сериализации (обеспечиваемых.NET Remoting API)

Библиотека классов.NET Framework (FCL)

Основные сведения о FCL В начальной версии было более 7000 типов (классы, интерфейсы, перечисления и делегаты) Некоторые классы включают описание до 100 методов. В библиотеке описаны методов. В библиотеке описаны 2800 методов вызова функций Microsoft Win32 API Все языки программирования используют одни и те же типы. Библиотека разделена на иерархическое пространство имен (около 100) Физически классы размещаются в DLL. Классы одного и того же пространства имен могут находиться в разных DLL

Пространства имен FCL (FCL Namespaces) System System.DataSystem.Xml System.Web Globalization Diagnostics Configuration Collections Resources Reflection Net IO Threading Text ServiceProcess Security Design ADO SQLTypes SQL XPath XSLT Runtime InteropServices Remoting Serialization ConfigurationSessionState CachingSecurity Services Description Discovery Protocols UI HtmlControls WebControls System.Drawing Imaging Drawing2D Text Printing System.Windows.Forms DesignComponentModel

Организация библиотеки FCL Размещены в наборе библиотек – dll (Dynamic Link Library) В разных библиотеках включены разные пространства имен – namespaces Объекты одного пространства имен могут включаться в разные библиотеки В пространствах имен включены классы, структуры, интерфейсы, перечисления, делегаты.

Пространство имен – name space Разделение объектов по иерархически организованным группам Используется иерархическое пространство имен... –Вложенность нескольких имен (как почтовый адрес) –Значительно понижается вероятность совпадения имен классов разработанных разными компаниями Для описания связей между классами (классы близкие по функциональности включены в одно пространство) Пространство имен включает - классы (Class); интерфейсы (Interface); перечисления (Enum); делегаты (сигнатуры классов, Delegate); другие пространства имен. В одном DLL модуле могут содержаться элементы из разных пространств имен.

Библиотек классов платформы.Net Framework Class Library (FCL) В состав FCL входит Base Class Library (BCL) - это часть FCL, которая поддерживает базовую функциональность программ. BCL включает классы пространства имен –System, –System.CodeDom, –System.Collections, –System.Diagnostics, –System.Globalization, –System.IO, –System.Resources, –System.Text, –System.Text.RegularExpressions.

Основные пространства имен FCL System – общие базовые типы System.VisualBasic – базовые типы для VBasic System.Drawing – классы для рисования System.Windows.Forms – классы для приложений с графическим интерфейсом System.Data – классы для работы с данными в БД System.Web – классы для ASP.NET и Web-форм System.Net – классы для работы с сетевыми протоколами System.Web.Services - классы для разработки Web сервисов System.Web.UI – основные классы используемые ASP.Net