130 likes | 260 Views
Въведение в .NET. Проблеми при предишните технологии. Разработка на софтуер с C/Win32 Разработка на софтуер с C++/MFC Разработка на софтуер с VB 6 Разработка на софтуер с Java Разработка на софтуер с COM. .NET решението. Радикална промяна в начина на разработка на софтуер
E N D
Проблеми при предишните технологии • Разработка на софтуер с C/Win32 • Разработка на софтуер с C++/MFC • Разработка на софтуер с VB 6 • Разработка на софтуер с Java • Разработка на софтуер с COM
.NET решението • Радикална промяна в начина на разработка на софтуер • Предимства – поддръжка на код от предишни технологии, интеграция с множество езици, богата библиотека от готов код (base class library) и др. • Използва виртуална машина, която изпълнява приложения, написани на който и да е .NET ориентиран език(C#, Pascal.NET и др.), върху различни архитектури(x86, x64, Itanium и др.) и платформи(Windows, Linux, Mac OS X и др.).
Процесорни архитектури • Intel x86 и AMD x64 – най-разпространените архитектури за персонални компютри и лаптопи • Intel Itanium(IA-64) – използва се при големи корпоративни сървъри и системи с големи изчислителни възможности. Поддържа паралелизъм на процесорно ниво • ARM – използва се предимно в мобилни устройства, флашки и др. Използва много малко електроенергия и е по-лесен за програмиране.
Структура на .NET • Base class libraries • Common Intermediate Language(CIL) • Common Type System(CTS) • Common Language Specification(CLS) • Common Language Runtime(CLR) • Dynamic Language Runtime(DLR) • .NET Assemblies
Преглед на Base class libraries • Достъпни от свички .NET ориентирани езици • Сътавена е от множество APIта – за достъп до бази от данни, за графични приложения, интернет приложения, работа с файлове, сигурност и др.
.NET Assemblies • Резултатът от компилацията(.dll или .exe) • Съдържа CIL код и мета данни • Видове асемблита: • single-file- CIL и метаданни в един файл; • milti-file- състои се от едни главен модул и множество подмодули: • Главният модул- съдържат манифест (собствено описание с метаданни), може да съдържа и CIL; • Дуги модули- манифест (собствено описание с метаданни), CIL код и метаданни за обектите, които се използват. • Бърникане в асемблита – инструменти ILDASM, .NET Reflector, Telerik JustDecompile
Преглед на CIL • Междинен език за програмиране • .method public hidebysig instance int32 Add(int32 x, • int32 y) cil managed • { • // Code size 9 (0x9) • .maxstack 2 • .locals init (int32 V_0) • IL_0000: nop • IL_0001: ldarg.1 • IL_0002: ldarg.2 • IL_0003: add • IL_0004: stloc.0 • IL_0005: br.s IL_0007 • IL_0007: ldloc.0 • IL_0008: ret • } // end of method Calc::Add
Метаданни • Основен фактор при поддръжката на многоезичност. • Пример: TypDefName: CalculatorExample.Calc (02000003) Flags : [NotPublic] [AutoLayout] [Class] [AnsiClass] [BeforeFieldInit] (00100001) Extends : 01000001 [TypeRef] System.Object Method #1 (06000003)
Преглед на CTS Спецификация, която документира начина, по който трябва да бъдат дефинирани типовете данни за да бъдат приети от CLR.
Предназначение на CLS • Спецификация, дефинираща общи типове и програмни конструкции, които всички .NET ориентирани езици трябва да поддържат.
Предназначение на CLR • Runtime engine (виртуална машина), която изпълнява вашето .NET приложение. • Начин на работа- при стартиране на приложение, заедно с него ОС зарежда виртуалната машина, която има компонент, наречен just-in-time compiler. Този компонент компилира CIL кода до машинни инструкции за текущата архитектура.
Преглед на DLR • Подобна на CLR • Позволява на динамични езици(LISP, Ruby, Python и др.) да работят със CLR и друг .NET код(base class libraries, third party libraries).