ФИЛОСОФИЯ .net

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

Upload: lucie

Post on 05-Jan-2016

40 views

Category:

Documents


0 download

DESCRIPTION

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

TRANSCRIPT

Page 1: ФИЛОСОФИЯ  .NET

ФИЛОСОФИЯ ФИЛОСОФИЯ .NET.NET

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

Page 2: ФИЛОСОФИЯ  .NET

Основные возможности .NET:Основные возможности .NET: Общая среда выполнения для любых приложений Общая среда выполнения для любых приложений

.NET.NET Полное и абсолютное межъязыковое Полное и абсолютное межъязыковое

взаимодействие.взаимодействие. Полные возможности взаимодействия с Полные возможности взаимодействия с

существующим кодом.существующим кодом. Библиотека базовых классов, которая предлагает Библиотека базовых классов, которая предлагает

целостную объектную модель для всех языков целостную объектную модель для всех языков программирования, поддерживающих .NET.программирования, поддерживающих .NET.

Действительное упрощение процесса Действительное упрощение процесса развертывания приложения.развертывания приложения.

Page 3: ФИЛОСОФИЯ  .NET

Строительные блоки .NET (CLR, Строительные блоки .NET (CLR, CTS и CLS):CTS и CLS):

CLR - Common Language Runtime CLR - Common Language Runtime (стандартная среда выполнения). (стандартная среда выполнения). Главная роль CLR заключается в Главная роль CLR заключается в том, чтобы обнаруживать и том, чтобы обнаруживать и загружать типы .NET и производить загружать типы .NET и производить управление ими в соответствии с управление ими в соответствии с вашими командами.вашими командами.

Page 4: ФИЛОСОФИЯ  .NET

Строительные блоки .NET (CLR, Строительные блоки .NET (CLR, CTS и CLS):CTS и CLS):

CTS - Common Type System CTS - Common Type System (стандартная система типов). (стандартная система типов).

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

Page 5: ФИЛОСОФИЯ  .NET

Строительные блоки .NET (CLR, Строительные блоки .NET (CLR, CTS и CLS):CTS и CLS):

CLS – Common Language Specification CLS – Common Language Specification — это набор правил, определяющих — это набор правил, определяющих подмножество общих типов подмножество общих типов данных, в отношении которых данных, в отношении которых гарантируется, что они безопасны гарантируется, что они безопасны при использовании во всех при использовании во всех языках .NET.языках .NET.

Page 6: ФИЛОСОФИЯ  .NET

Преимущества С#Преимущества С# Указатели больше не нужны!Указатели больше не нужны! Управление памятью производится Управление памятью производится

автоматически.автоматически. В С# предусмотрены встроенные синтаксические В С# предусмотрены встроенные синтаксические

конструкции для работы с перечислениями, конструкции для работы с перечислениями, структурами и свойствами классов.структурами и свойствами классов.

В С# осталась возможность перегружать В С# осталась возможность перегружать операторы, унаследованные от C++.операторы, унаследованные от C++.

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

Предусмотрена полная поддержка аспектно-Предусмотрена полная поддержка аспектно-ориентированных программных технологий ориентированных программных технологий (таких как атрибуты). Это позволяет присваивать (таких как атрибуты). Это позволяет присваивать типам характеристики (что во многом типам характеристики (что во многом напоминает COM IDL) для описания в будущем напоминает COM IDL) для описания в будущем поведения данной сущности.поведения данной сущности.

Page 7: ФИЛОСОФИЯ  .NET

Двоичные файлы .NET Двоичные файлы .NET («сборки»)(«сборки»)

Содержимое двоичных файлов .NET Содержимое двоичных файлов .NET — это платформенно-— это платформенно-независимый «промежуточный независимый «промежуточный язык», который официально язык», который официально называется Microsoft Intermediate называется Microsoft Intermediate Language (MSIL, промежуточный Language (MSIL, промежуточный язык Microsoft), или просто IL.язык Microsoft), или просто IL.

Page 8: ФИЛОСОФИЯ  .NET

Двоичные файлы .NET Двоичные файлы .NET («сборки»)(«сборки»)

Помимо инструкций IL, двоичные Помимо инструкций IL, двоичные модули .NET содержат также модули .NET содержат также метаданныеметаданные, которые подробно , которые подробно описывают все типы, использованные в описывают все типы, использованные в модуле. Например, еслимодуле. Например, если у вас внутри у вас внутри сборки есть класс Foo, то в метаданных сборки есть класс Foo, то в метаданных этой сборки будет содержатьсяэтой сборки будет содержаться информация о базовом классе для Foo, информация о базовом классе для Foo, какие интерфейсы предусмотрены для какие интерфейсы предусмотрены для FFoo oo (если они вообще предусмотрены)(если они вообще предусмотрены)..

Page 9: ФИЛОСОФИЯ  .NET

Двоичные файлы .NET Двоичные файлы .NET («сборки»)(«сборки»)

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

Page 10: ФИЛОСОФИЯ  .NET

Компиляция IL в платформенноКомпиляция IL в платформенно зависимыезависимые инструкцииинструкции

JIT "just-in-time compiler" — JIT "just-in-time compiler" — компилятор времени выполнения.компилятор времени выполнения.

Откомпилированные из IL Откомпилированные из IL платформенно-зависимые платформенно-зависимые инструкции JIT помещаетинструкции JIT помещает в кэш-в кэш-памяти, что очень сильно ускоряет памяти, что очень сильно ускоряет работу приложения.работу приложения.

Page 11: ФИЛОСОФИЯ  .NET
Page 12: ФИЛОСОФИЯ  .NET

Типы .NET и Типы .NET и пространства имен .NETпространства имен .NET

В мире .NET В мире .NET типтип — — это общий термин, это общий термин, которыйкоторый может относиться к классам, может относиться к классам, структурам, интерфейсам, структурам, интерфейсам, перечислениям и прочему.перечислениям и прочему.

Пространство именПространство имен — это логическая — это логическая структура для организации имен, структура для организации имен, используемых в приложении .NET. используемых в приложении .NET. Основное назначение пространств имен Основное назначение пространств имен — предупредить возможные конфликты — предупредить возможные конфликты между именами в разныхмежду именами в разных сборках.сборках.

Page 13: ФИЛОСОФИЯ  .NET

Классы CTSКласс (class) — это набор свойств, методов и событий, объединенных в единое целое.

Page 14: ФИЛОСОФИЯ  .NET

Структуры CTSСтруктуры CTS

Перечисления CTSПеречисления CTS

Интерфейсы CTSИнтерфейсы CTS

Интерфейс (interface) — это просто Интерфейс (interface) — это просто набор абстрактных методов, свойств и набор абстрактных методов, свойств и определений событий.определений событий.

Делегаты CTSДелегаты CTS

Делегат (delegate) — в мире .NET это Делегат (delegate) — в мире .NET это безопасный для типов эквивалент безопасный для типов эквивалент указателя на функцию в С, краеугольный указателя на функцию в С, краеугольный камень в технологии обработки камень в технологии обработки событий .NETсобытий .NET

Page 15: ФИЛОСОФИЯ  .NET
Page 16: ФИЛОСОФИЯ  .NET

CLSCLS

Набор правил, определяемый CLS Набор правил, определяемый CLS гарантирует нормальное взаимодействие гарантирует нормальное взаимодействие блоков кода, созданных на разных блоков кода, созданных на разных языках. Такой набор правил еще и языках. Такой набор правил еще и определяет минимальные требования, определяет минимальные требования, которые предъявляются к любому .NET-которые предъявляются к любому .NET-совместимому компилятору.совместимому компилятору.

Правило 1 . Правила CLS относятся только к Правило 1 . Правила CLS относятся только к тем частям типа, которые предназначены тем частям типа, которые предназначены для взаимодействия за пределами для взаимодействия за пределами сборки, в которой они определены.сборки, в которой они определены.

Page 17: ФИЛОСОФИЯ  .NET

Работа с пространствами имен// Привет от С#// Привет от С#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

Page 18: ФИЛОСОФИЯ  .NET

Важнейшие пространства имен .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

Page 19: ФИЛОСОФИЯ  .NET

Важнейшие пространства имен .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

Page 20: ФИЛОСОФИЯ  .NET

Пространства имен .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);}}

}}