Upload
lucie
View
40
Download
0
Embed Size (px)
DESCRIPTION
ФИЛОСОФИЯ .NET. Любому современному программисту, который желает идти в ногу с последними веяниями, каждые несколько лет приходится переучиваться. Основные возможности .NET:. Общая среда выполнения для любых приложений .NET Полное и абсолютное межъязыковое взаимодействие. - PowerPoint PPT Presentation
Citation preview
ФИЛОСОФИЯ ФИЛОСОФИЯ .NET.NET
Любому современному программисту, который желает идти в ногу с последнимивеяниями, каждые несколько лет приходится переучиваться.
Основные возможности .NET:Основные возможности .NET: Общая среда выполнения для любых приложений Общая среда выполнения для любых приложений
.NET.NET Полное и абсолютное межъязыковое Полное и абсолютное межъязыковое
взаимодействие.взаимодействие. Полные возможности взаимодействия с Полные возможности взаимодействия с
существующим кодом.существующим кодом. Библиотека базовых классов, которая предлагает Библиотека базовых классов, которая предлагает
целостную объектную модель для всех языков целостную объектную модель для всех языков программирования, поддерживающих .NET.программирования, поддерживающих .NET.
Действительное упрощение процесса Действительное упрощение процесса развертывания приложения.развертывания приложения.
Строительные блоки .NET (CLR, Строительные блоки .NET (CLR, CTS и CLS):CTS и CLS):
CLR - Common Language Runtime CLR - Common Language Runtime (стандартная среда выполнения). (стандартная среда выполнения). Главная роль CLR заключается в Главная роль CLR заключается в том, чтобы обнаруживать и том, чтобы обнаруживать и загружать типы .NET и производить загружать типы .NET и производить управление ими в соответствии с управление ими в соответствии с вашими командами.вашими командами.
Строительные блоки .NET (CLR, Строительные блоки .NET (CLR, CTS и CLS):CTS и CLS):
CTS - Common Type System CTS - Common Type System (стандартная система типов). (стандартная система типов).
CTS полностью описывает все типы CTS полностью описывает все типы данных, поддерживаемые средой данных, поддерживаемые средой выполнения, определяет, как одни выполнения, определяет, как одни типы данных могут типы данных могут взаимодействовать с другими и как взаимодействовать с другими и как они будут представлены в формате они будут представлены в формате метаданных .NETметаданных .NET
Строительные блоки .NET (CLR, Строительные блоки .NET (CLR, CTS и CLS):CTS и CLS):
CLS – Common Language Specification CLS – Common Language Specification — это набор правил, определяющих — это набор правил, определяющих подмножество общих типов подмножество общих типов данных, в отношении которых данных, в отношении которых гарантируется, что они безопасны гарантируется, что они безопасны при использовании во всех при использовании во всех языках .NET.языках .NET.
Преимущества С#Преимущества С# Указатели больше не нужны!Указатели больше не нужны! Управление памятью производится Управление памятью производится
автоматически.автоматически. В С# предусмотрены встроенные синтаксические В С# предусмотрены встроенные синтаксические
конструкции для работы с перечислениями, конструкции для работы с перечислениями, структурами и свойствами классов.структурами и свойствами классов.
В С# осталась возможность перегружать В С# осталась возможность перегружать операторы, унаследованные от C++.операторы, унаследованные от C++.
Предусмотрена полная поддержка использования Предусмотрена полная поддержка использования программных интерфейсов. .NET позволяет программных интерфейсов. .NET позволяет передавать объекты (как ссылки или как передавать объекты (как ссылки или как значения) через границы программных модулей.значения) через границы программных модулей.
Предусмотрена полная поддержка аспектно-Предусмотрена полная поддержка аспектно-ориентированных программных технологий ориентированных программных технологий (таких как атрибуты). Это позволяет присваивать (таких как атрибуты). Это позволяет присваивать типам характеристики (что во многом типам характеристики (что во многом напоминает COM IDL) для описания в будущем напоминает COM IDL) для описания в будущем поведения данной сущности.поведения данной сущности.
Двоичные файлы .NET Двоичные файлы .NET («сборки»)(«сборки»)
Содержимое двоичных файлов .NET Содержимое двоичных файлов .NET — это платформенно-— это платформенно-независимый «промежуточный независимый «промежуточный язык», который официально язык», который официально называется Microsoft Intermediate называется Microsoft Intermediate Language (MSIL, промежуточный Language (MSIL, промежуточный язык Microsoft), или просто IL.язык Microsoft), или просто IL.
Двоичные файлы .NET Двоичные файлы .NET («сборки»)(«сборки»)
Помимо инструкций IL, двоичные Помимо инструкций IL, двоичные модули .NET содержат также модули .NET содержат также метаданныеметаданные, которые подробно , которые подробно описывают все типы, использованные в описывают все типы, использованные в модуле. Например, еслимодуле. Например, если у вас внутри у вас внутри сборки есть класс Foo, то в метаданных сборки есть класс Foo, то в метаданных этой сборки будет содержатьсяэтой сборки будет содержаться информация о базовом классе для Foo, информация о базовом классе для Foo, какие интерфейсы предусмотрены для какие интерфейсы предусмотрены для FFoo oo (если они вообще предусмотрены)(если они вообще предусмотрены)..
Двоичные файлы .NET Двоичные файлы .NET («сборки»)(«сборки»)
Метаданные описывают не только типы, Метаданные описывают не только типы, используемые в сборке, но и саму сборку. используемые в сборке, но и саму сборку. Эта часть метаданных называется Эта часть метаданных называется манифестомманифестом (manifest). В манифесте (manifest). В манифесте содержится информация о текущей версии содержится информация о текущей версии сборки, об использованных ограниченияхсборки, об использованных ограничениях по безопасности, о поддерживаемом по безопасности, о поддерживаемом естественном языке (английском, русскоместественном языке (английском, русском и т. д.), а также список всех внешних и т. д.), а также список всех внешних сборок, которые потребуются для сборок, которые потребуются для нормального нормального выполнения.выполнения.
Компиляция IL в платформенноКомпиляция IL в платформенно зависимыезависимые инструкцииинструкции
JIT "just-in-time compiler" — JIT "just-in-time compiler" — компилятор времени выполнения.компилятор времени выполнения.
Откомпилированные из IL Откомпилированные из IL платформенно-зависимые платформенно-зависимые инструкции JIT помещаетинструкции JIT помещает в кэш-в кэш-памяти, что очень сильно ускоряет памяти, что очень сильно ускоряет работу приложения.работу приложения.
Типы .NET и Типы .NET и пространства имен .NETпространства имен .NET
В мире .NET В мире .NET типтип — — это общий термин, это общий термин, которыйкоторый может относиться к классам, может относиться к классам, структурам, интерфейсам, структурам, интерфейсам, перечислениям и прочему.перечислениям и прочему.
Пространство именПространство имен — это логическая — это логическая структура для организации имен, структура для организации имен, используемых в приложении .NET. используемых в приложении .NET. Основное назначение пространств имен Основное назначение пространств имен — предупредить возможные конфликты — предупредить возможные конфликты между именами в разныхмежду именами в разных сборках.сборках.
Классы CTSКласс (class) — это набор свойств, методов и событий, объединенных в единое целое.
Структуры CTSСтруктуры CTS
Перечисления CTSПеречисления CTS
Интерфейсы CTSИнтерфейсы CTS
Интерфейс (interface) — это просто Интерфейс (interface) — это просто набор абстрактных методов, свойств и набор абстрактных методов, свойств и определений событий.определений событий.
Делегаты CTSДелегаты CTS
Делегат (delegate) — в мире .NET это Делегат (delegate) — в мире .NET это безопасный для типов эквивалент безопасный для типов эквивалент указателя на функцию в С, краеугольный указателя на функцию в С, краеугольный камень в технологии обработки камень в технологии обработки событий .NETсобытий .NET
CLSCLS
Набор правил, определяемый CLS Набор правил, определяемый CLS гарантирует нормальное взаимодействие гарантирует нормальное взаимодействие блоков кода, созданных на разных блоков кода, созданных на разных языках. Такой набор правил еще и языках. Такой набор правил еще и определяет минимальные требования, определяет минимальные требования, которые предъявляются к любому .NET-которые предъявляются к любому .NET-совместимому компилятору.совместимому компилятору.
Правило 1 . Правила CLS относятся только к Правило 1 . Правила CLS относятся только к тем частям типа, которые предназначены тем частям типа, которые предназначены для взаимодействия за пределами для взаимодействия за пределами сборки, в которой они определены.сборки, в которой они определены.
Работа с пространствами имен// Привет от С#// Привет от С#using System;using System;public class MyApppublic class MyApp{{
public static void Main()public static void Main(){{
Console.WriteLine ("Hi from C#");Console.WriteLine ("Hi from C#");}}
}}
' Привет от VB.NET' Привет от VB.NETImports SystemImports SystemPublic Module MyAppPublic Module MyAppSub MainOSub MainO
Console.WriteLine ("Hi from VB"):Console.WriteLine ("Hi from VB"):End SubEnd SubEnd ModuleEnd Module
Важнейшие пространства имен .NET
SystemSystem System.CollectionsSystem.Collections System.DataSystem.Data System.Data.CommonSystem.Data.Common System.Data.OleDbSystem.Data.OleDb System.Data.SqlCISystem.Data.SqlCIiientent System.DiagnosticsSystem.Diagnostics System.DrawingSystem.Drawing System.Drawing.Drawing2DSystem.Drawing.Drawing2D System.Drawing.PrintingSystem.Drawing.Printing
Важнейшие пространства имен .NET
System.IOSystem.IO System.NetSystem.Net System.ReflectionSystem.Reflection System.Reflection.EmitSystem.Reflection.Emit System.Runtime.InteropServicesSystem.Runtime.InteropServices System.Runtime.RemotingSystem.Runtime.Remoting System.SecuritySystem.Security System.ThreadingSystem.Threading System.WebSystem.Web System.Windows.FormsSystem.Windows.Forms System.XMLSystem.XML
Пространства имен .NETusing System.Drawing;using System.Drawing;clasclasss MyClass MyClass{{
public void DoItpublic void DoIt()(){{//Создаем растровое изображение 20 на 20 пикселов//Создаем растровое изображение 20 на 20 пикселовBitmap bm = new Bitmap (20Bitmap bm = new Bitmap (20,, 20); 20);……}}
}}
//Обратите внимание - никаких указаний на пространства имен!//Обратите внимание - никаких указаний на пространства имен!class class MMyClassyClass{{ public void DoItpublic void DoIt()()
{ { //Используем полное имя//Используем полное имяSystem.Drawing.Bitmap bm System.Drawing.Bitmap bm ==newnew System.Drawing.Bitmap System.Drawing.Bitmap
(20(20,, 20); 20);}}
}}