ФИЛОСОФИЯ .NET

advertisement
ФИЛОСОФИЯ .NET
Любому современному программисту, который
желает идти в ногу с последними
веяниями, каждые несколько лет приходится
переучиваться.
Основные возможности .NET:





Общая среда выполнения для любых приложений .NET
Полное и абсолютное межъязыковое взаимодействие.
Полные возможности взаимодействия с существующим
кодом.
Библиотека базовых классов, которая предлагает
целостную объектную модель для всех языков
программирования, поддерживающих .NET.
Действительное упрощение процесса развертывания
приложения.
Строительные блоки .NET (CLR, CTS
и CLS):
CLR - Common Language Runtime
(стандартная среда выполнения).
Главная роль CLR заключается в том,
чтобы обнаруживать и загружать типы
.NET и производить управление ими в
соответствии с вашими командами.
Строительные блоки .NET (CLR, CTS
и CLS):
CTS - Common Type System (стандартная
система типов).
CTS полностью описывает все типы
данных, поддерживаемые средой
выполнения, определяет, как одни типы
данных могут взаимодействовать с
другими и как они будут представлены в
формате метаданных .NET
Строительные блоки .NET (CLR, CTS
и CLS):
CLS – Common Language Specification —
это набор правил, определяющих
подмножество общих типов данных, в
отношении которых гарантируется, что
они безопасны при использовании во
всех языках .NET.
Преимущества С#






Указатели больше не нужны!
Управление памятью производится автоматически.
В С# предусмотрены встроенные синтаксические
конструкции для работы с перечислениями,
структурами и свойствами классов.
В С# осталась возможность перегружать операторы,
унаследованные от C++.
Предусмотрена полная поддержка использования
программных интерфейсов. .NET позволяет передавать
объекты (как ссылки или как значения) через границы
программных модулей.
Предусмотрена полная поддержка аспектноориентированных программных технологий (таких как
атрибуты). Это позволяет присваивать типам
характеристики (что во многом напоминает COM IDL)
для описания в будущем поведения данной сущности.
Двоичные файлы .NET
(«сборки»)
Содержимое двоичных файлов .NET —
это платформенно-независимый
«промежуточный язык», который
официально называется Microsoft
Intermediate Language (MSIL,
промежуточный язык Microsoft), или
просто IL.
Двоичные файлы .NET
(«сборки»)
Помимо инструкций IL, двоичные модули .NET
содержат также метаданные, которые
подробно описывают все типы,
использованные в модуле. Например, если у
вас внутри сборки есть класс Foo, то в
метаданных этой сборки будет содержаться
информация о базовом классе для Foo, какие
интерфейсы предусмотрены для Foo (если
они вообще предусмотрены).
Двоичные файлы .NET
(«сборки»)
Метаданные описывают не только типы,
используемые в сборке, но и саму сборку. Эта
часть метаданных называется манифестом
(manifest). В манифесте содержится
информация о текущей версии сборки, об
использованных ограничениях по
безопасности, о поддерживаемом
естественном языке (английском, русском и т.
д.), а также список всех внешних сборок,
которые потребуются для нормального
выполнения.
Компиляция IL в платформенно
зависимые инструкции
JIT "just-in-time compiler" — компилятор
времени выполнения.
Откомпилированные из IL платформеннозависимые инструкции JIT помещает в
кэш-памяти, что очень сильно ускоряет
работу приложения.
Типы .NET и
пространства имен .NET
В мире .NET тип — это общий термин, который
может относиться к классам, структурам,
интерфейсам, перечислениям и прочему.
Пространство имен — это логическая
структура для организации имен,
используемых в приложении .NET. Основное
назначение пространств имен — предупредить
возможные конфликты между именами в
разных сборках.
Классы CTS
Класс (class) — это набор свойств, методов и
событий, объединенных в единое целое.
Структуры CTS
Перечисления CTS
Интерфейсы CTS
Интерфейс (interface) — это просто набор
абстрактных методов, свойств и определений
событий.
Делегаты CTS
Делегат (delegate) — в мире .NET это
безопасный для типов эквивалент указателя на
функцию в С, краеугольный камень в
технологии обработки событий .NET
CLS
Набор правил, определяемый CLS гарантирует
нормальное взаимодействие блоков кода,
созданных на разных языках. Такой набор
правил еще и определяет минимальные
требования, которые предъявляются к
любому .NET-совместимому компилятору.
Правило 1 . Правила CLS относятся только к
тем частям типа, которые предназначены для
взаимодействия за пределами сборки, в
которой они определены.
Работа с пространствами имен
// Привет от С#
using System;
public class MyApp
{
public static void Main()
{
Console.WriteLine ("Hi from C#");
}
}
' Привет от VB.NET
Imports System
Public Module MyApp
Sub MainO
Console.WriteLine ("Hi from VB"):
End Sub
End Module
Важнейшие пространства имен
.NET










System
System.Collections
System.Data
System.Data.Common
System.Data.OleDb
System.Data.SqlCIient
System.Diagnostics
System.Drawing
System.Drawing.Drawing2D
System.Drawing.Printing
Важнейшие пространства имен
.NET











System.IO
System.Net
System.Reflection
System.Reflection.Emit
System.Runtime.InteropServices
System.Runtime.Remoting
System.Security
System.Threading
System.Web
System.Windows.Forms
System.XML
Пространства имен .NET
using System.Drawing;
class MyClass
{
public void DoIt()
{
//Создаем растровое изображение 20 на 20 пикселов
Bitmap bm = new Bitmap (20, 20);
…
}
}
//Обратите внимание - никаких указаний на пространства имен!
class MyClass
{ public void DoIt()
{
//Используем полное имя
System.Drawing.Bitmap bm =new System.Drawing.Bitmap (20, 20);
}
}
Download