Архитектура платформы Microsoft .NET
- Slide 1: Welcome
- Slide 2: Терминология
- Slide 3: Контекст Microsoft .NET
- Slide 4: Обзор характеристик .NET Framework
- Slide 5: Обзор характеристик .NET Framework
- Slide 6: Коммерческая платформа Microsoft .NET
- Slide 7: Стандарт CLI
- Slide 8: Shared Source CLI (Rotor)
- Slide 9: Обзор .NET Framework Namespaces
- Slide 10: Общая архитектура .NET Framework
- Slide 11: Virtual Execution System
- Slide 12: Архитектура GUI подсистемы .NET Framework
- Slide 13: Архитектура сетевой подсистемы .NET Framework
- Slide 14: Первый взгляд на MSIL
- Slide 15: Первый взгляд на MSIL
- Slide 16: .NET Assemblies
- Slide 17: Метаданные сборок
- Slide 18: Common Type System
- Slide 19: Boxing/Unboxing
Summary
В этом модуле-презентации очерчены основные понятия связанные с .NET Framework. Описаны основные архитектурные принципы, лежащие в основе .NET. Проведены параллели между коммерческой реализацией .NET и соответствующими стандартами (среда выполнеиня и язык выполнения). Продемонстрирован язык MSIL и ocoбенности работы со сборками, как основными строительными блоками приложения.
Slide 1: Welcome
Андрей Устюжанин
Москва, 24 Марта 2004
Slide 2: Терминология
- Common Language Infrastructure (CLI) is a standard that Microsoft has submitted to ECMA, which is an organization dedicated to standardizing information and communication systems. The specific standard reference is ECMA-335
- Common Language Runtime (CLR) The execution environment is also known as a Virtual Execution System (VES). Microsoft's implementation of the CLI is the Common Language Runtime (CLR). When discussing the Microsoft-specific implementation CLR is used. When discussing the standard, which the CLR adheres to, CLI is used
- Common Type System. A core part of the CLI is the Common Type System. The CTS defines support for the types and operations found in many programming languages and will be covered in more detail later
- Common Intermediate Language (CIL) is the ECMA standard that describes intermediate language (byte code) used by C#, VB (CLI-compliant) compilers. CIL is essentially stack based
- Microsoft Intermediate Language (MSIL) is Microsoft Implementation of CIL standard
- Framework Class Library (FCL) is a systematic class framework to be used for the development of system tools and utilities as well as application software
- Microsoft .NET Framework is a set of CLR, compiler, development tools and FCL implementations
Comments
- Mono
- The Mono project is an open source effort sponsored by Novell to create a free implementation of the .NET Development Framework (http://www.go-mono.org/)
- .NET Initiative
- .NET Initiative is a complex Microsoft program including marketing, development and standartization effors towards promotion of Microsoft .NET Framework and set of products related to it
- Shared Source CLI
- The Shared Source CLI is a compressed archive of the source code to a working implementation of the ECMA CLI and the ECMA C# language specification. It includes source code for the Common Language Infrastructure (CLI) execution engine and frameworks, as well as compilers and other developer tools.
- Rotor
- Rotor is a code name of MS project of Shared Source CLI development (see Shared Source CLI). Currently MS Windows, FreeBSD? and MAC OS X are supported
- ECMA
- Ecma International is an industry association founded in 1961 and dedicated to the standardization of Information and Communication Technology (ICT) Systems. Orignially stood for "European Computer Manufacturers' Association". In 1994 the name was change to simply Ecma and "international" because of natural growth. http://www.ecma-international.org
Slide 3: Контекст Microsoft .NET

Slide 4: Обзор характеристик .NET Framework
Достоинства платформы .NET:- Цельная объектно-ориентированная модель программирования, упрощающая разработку программ
- Многоплатформенность приложений
- Автоматическое управление ресурсами
- Улучшение возможностей для повторного использования исходного кода
- Упрощение развертывания приложений
- Современная модель безопасности развертывания и сопровождения кода
Slide 5: Обзор характеристик .NET Framework
Достоинства платформы .NET (продолжение):- Полный отказ от реестра
- Безопасные типы и общее повышение безопасности приложений
- Единая модель обработки ошибок
- Межъязыковое взаимодействие (language interoperability)
- Единая среда разработки, позволяющая проводить межъязыковую отладку
- Расширенные возможности повторного использования кода
- Замедление при выполнении программ
- Привязанность некоторых архитектурных решений .NET к С++-подобным языкам
- Необходимость изменения стандартов для многих языков программирования
Slide 6: Коммерческая платформа Microsoft .NET

Slide 7: Стандарт CLI

Slide 8: Shared Source CLI (Rotor)

Slide 9: Обзор .NET Framework Namespaces

Slide 10: Общая архитектура .NET Framework

Slide 11: Virtual Execution System

Slide 12: Архитектура GUI подсистемы .NET Framework

Slide 13: Архитектура сетевой подсистемы .NET Framework

Slide 14: Первый взгляд на MSIL
- Высокоуровневый ассемблер некоторой виртуальной машины
- Переносимость между разными аппаратными платформами
- Сохранение имен классов, методов и исключительных ситуаций
- Возможность обратного ассемблированя
using System; public class HelloWorld { public void SayHello () { Console.WriteLine("Hello World, from C#"); } public static int Main(string[] args) { int retCode = 1; HelloWorld hw = new HelloWorld(); hw.SayHello(); return retCode; } };
Slide 15: Первый взгляд на MSIL
// Microsoft (R) .NET Framework IL Disassembler. Version 1.0.2204.21 // Copyright (C) Microsoft Corp. 1998-2000 .class public auto ansi HelloWorld extends [mscorlib]System.Object { .method public hidebysig static int32 Main(class System.String[] args) il managed { .entrypoint // Code size 20 (0x14) .maxstack 1 .locals (int32 V_0, class HelloWorld V_1, int32 V_2) IL_0000: ldc.i4.1 IL_0001: stloc.0 IL_0002: newobj instance void HelloWorld::.ctor() IL_0007: stloc.1 IL_0008: ldloc.1 IL_0009: call instance void HelloWorld::SayHello() IL_000e: ldloc.0 IL_000f: stloc.2 IL_0010: br.s IL_0012 IL_0012: ldloc.2 IL_0013: ret } // end of method HelloWorld::Main } // end of class HelloWorld
Slide 16: .NET Assemblies
Slide 17: Метаданные сборок
Slide 18: Common Type System
