Logo GenDocs.ru

Поиск по сайту:  

Загрузка...

Лабораторные работы - файл lab1.doc


Лабораторные работы
скачать (2459.7 kb.)

Доступные файлы (473):

lab1.doc404kb.02.02.2009 15:34скачать
lab2.doc246kb.28.01.2009 22:26скачать
lab3.doc179kb.02.02.2009 09:15скачать
lab4.doc88kb.21.03.2008 21:45скачать
lab5.doc80kb.21.03.2008 21:47скачать
lab6.doc121kb.22.02.2008 02:38скачать
lab7.doc159kb.01.03.2008 01:25скачать
lab8.doc588kb.01.03.2008 01:46скачать
lab9.doc138kb.02.03.2008 07:45скачать
ClassDiagram1.cd
ClassDiagram2.cd
ClassDiagram3.cd
IDZ1.csproj
IDZ1.csproj.user
Person.cs
Program.cs
AssemblyInfo.cs
IDZ1.sln
IDZ1.suo
IDZ1.exe
IDZ1.pdb
IDZ1.vshost.exe
IDZ1.vshost.exe.manifest
ClassDiagram1.cd
ClassDiagram2.cd
ClassDiagram3.cd
IDZ1.csproj
IDZ1.csproj.user
IDZ2.csproj
DesignTimeResolveAssemblyReferencesInput.cache
IDZ1.csproj.FileListAbsolute.txt2kb.25.01.2011 12:42скачать
IDZ1.exe
IDZ1.pdb
IDZ2.csproj.FileListAbsolute.txt1kb.27.01.2011 18:21скачать
Person.cs
Program.cs
AssemblyInfo.cs
IDZ1.sln
IDZ1.suo
UpgradeLog.XML
Thumbs.db
UpgradeReport.css
UpgradeReport_Minus.gif1kb.21.01.2011 10:34скачать
UpgradeReport_Plus.gif1kb.21.01.2011 10:34скачать
UpgradeReport.xslt
_ДЗ_№1.docx119kb.25.01.2011 14:00скачать
ConsoleApplication1.exe
ConsoleApplication1.pdb
ConsoleApplication1.vshost.exe
ConsoleApplication1.vshost.exe.manifest
ConsoleApplication1.csproj
ConsoleApplication1.csproj.user
ConsoleApplication1.csproj.FileListAbsolute.txt2kb.25.01.2011 13:43скачать
ConsoleApplication1.exe
ConsoleApplication1.pdb
DesignTimeResolveAssemblyReferencesInput.cache
ResolveAssemblyReference.cache
Person.cs
Program.cs
AssemblyInfo.cs
ConsoleApplication1.sln
ConsoleApplication1.suo
Resalt.jpg68kb.25.01.2011 13:42скачать
Thumbs.db
_ДЗ_№1 v20.docx119kb.25.01.2011 14:01скачать
ClassDiagram1.cd
ClassDiagram2.cd
IDZ2.csproj
Person.cs
Program.cs
AssemblyInfo.cs
IDZ2.sln
IDZ2.suo
ClassDiagram1.cd
IDZ2.csproj
IDZ2.csproj.user
Person.cs
Program.cs
AssemblyInfo.cs
IDZ1.exe
IDZ1.pdb
IDZ1.vshost.exe
IDZ1.vshost.exe.manifest
ClassDiagram1.cd
IDZ2.csproj
IDZ2.csproj.user
IDZ2.suo
DesignTimeResolveAssemblyReferencesInput.cache
IDZ1.csproj.FileListAbsolute.txt1kb.09.02.2010 01:20скачать
IDZ1.exe
IDZ1.pdb
IDZ2.csproj.FileListAbsolute.txt1kb.27.01.2011 18:23скачать
Person.cs
Program.cs
AssemblyInfo.cs
UpgradeLog.XML
UpgradeReport.css
UpgradeReport_Minus.gif1kb.27.01.2011 18:22скачать
UpgradeReport_Plus.gif1kb.27.01.2011 18:22скачать
UpgradeReport.xslt
IDZ2.sln
IDZ2.suo
Resalt.jpg58kb.27.01.2011 18:26скачать
Thumbs.db
UpgradeLog.XML
Thumbs.db
UpgradeReport.css
UpgradeReport_Minus.gif1kb.21.01.2011 10:37скачать
UpgradeReport_Plus.gif1kb.21.01.2011 10:37скачать
UpgradeReport.xslt
_ДЗ_№2.docx157kb.27.01.2011 18:32скачать
idz3_my.csproj
Program.cs
AssemblyInfo.cs
idz3_my.sln
idz3_my.suo
Base.txt1kb.11.06.2009 15:14скачать
idz3_my.exe
idz3_my.pdb
idz3_my.vshost.exe
idz3_my.vshost.exe.manifest
idz3_my.csproj
DesignTimeResolveAssemblyReferencesInput.cache
idz3_my.csproj.FileListAbsolute.txt1kb.21.01.2011 10:38скачать
idz3_my.exe
idz3_my.pdb
Program.cs
AssemblyInfo.cs
idz3_my.sln
idz3_my.suo
UpgradeLog.XML
UpgradeReport.css
UpgradeReport_Minus.gif1kb.21.01.2011 10:38скачать
UpgradeReport_Plus.gif1kb.21.01.2011 10:38скачать
UpgradeReport.xslt
_ДЗ_№3.doc52kb.21.01.2011 10:43скачать
ConsoleApplication1.exe
ConsoleApplication1.pdb
ConsoleApplication1.vshost.exe
ConsoleApplication1.vshost.exe.manifest
ConsoleApplication1.csproj
ConsoleApplication1.csproj.user
ConsoleApplication1.csproj.FileListAbsolute.txt2kb.21.12.2010 19:31скачать
ConsoleApplication1.exe
ConsoleApplication1.pdb
DesignTimeResolveAssemblyReferencesInput.cache
Program.cs
AssemblyInfo.cs
ConsoleApplication1.sln
ConsoleApplication1.suo
ConsoleApplication1.exe
ConsoleApplication1.pdb
ConsoleApplication1.vshost.exe
ConsoleHello.exe
ConsoleHello.pdb
ConsoleHello.vshost.exe
ConsoleHello.vshost.exe.manifest
hello.xml
Class1.cs
ConsoleHello.csproj
ConsoleHello.csproj.user
hello.xml
ConsoleApplication1.csproj.FileListAbsolute.txt1kb.21.12.2010 18:37скачать
ConsoleApplication1.exe
ConsoleApplication1.pdb
ConsoleHello.csproj.FileListAbsolute.txt2kb.21.12.2010 19:10скачать
ConsoleHello.exe
ConsoleHello.pdb
DesignTimeResolveAssemblyReferencesInput.cache
AssemblyInfo.cs
ConsoleHello.sln
ConsoleHello.suo
ConsoleApplication1.exe
ConsoleApplication1.pdb
ConsoleApplication1.vshost.exe
ConsoleApplication1.vshost.exe.manifest
Lab3_1.exe
Lab3_1.pdb
Lab3_1.vshost.exe
Lab3_1.vshost.exe.manifest
Lab3_1.csproj
Lab3_1.csproj.user
ConsoleApplication1.csproj.FileListAbsolute.txt1kb.21.12.2010 19:54скачать
ConsoleApplication1.exe
ConsoleApplication1.pdb
DesignTimeResolveAssemblyReferencesInput.cache
Lab3_1.csproj.FileListAbsolute.txt1kb.27.12.2010 18:55скачать
Lab3_1.exe
Lab3_1.pdb
Program.cs
AssemblyInfo.cs
Lab3_1.sln
Lab3_1.suo
ConsoleApplication1.vshost.exe
ConsoleApplication1.vshost.exe.manifest
Lab3_2.exe
Lab3_2.pdb
Lab3_2.vshost.exe
Lab3_2.vshost.exe.manifest
Lab3_2.csproj
Lab3_2.csproj.user
DesignTimeResolveAssemblyReferencesInput.cache
Lab3_2.csproj.FileListAbsolute.txt1kb.27.12.2010 18:59скачать
Lab3_2.exe
Lab3_2.pdb
Program.cs
AssemblyInfo.cs
Lab3_2.sln
Lab3_2.suo
ConsoleApplication1.vshost.exe
ConsoleApplication1.vshost.exe.manifest
Lab3_3.exe
Lab3_3.pdb
Lab3_3.vshost.exe
Lab3_3.vshost.exe.manifest
Lab3_3.csproj
Lab3_3.csproj.user
DesignTimeResolveAssemblyReferencesInput.cache
Lab3_3.csproj.FileListAbsolute.txt1kb.27.12.2010 18:59скачать
Lab3_3.exe
Lab3_3.pdb
Program.cs
AssemblyInfo.cs
Lab3_3.sln
Lab3_3.suo
ConsoleApplication1.exe
ConsoleApplication1.pdb
ConsoleApplication1.vshost.exe
ConsoleApplication1.vshost.exe.manifest
ConsoleApplication1.csproj
ConsoleApplication1.csproj.user
ConsoleApplication1.csproj.FileListAbsolute.txt2kb.19.01.2011 11:03скачать
ConsoleApplication1.exe
ConsoleApplication1.pdb
DesignTimeResolveAssemblyReferencesInput.cache
Program.cs
AssemblyInfo.cs
ConsoleApplication1.sln
ConsoleApplication1.suo
ConsoleApplication1.exe
ConsoleApplication1.pdb
ConsoleApplication1.vshost.exe
ConsoleApplication1.vshost.exe.manifest
ConsoleApplication1.csproj
ConsoleApplication1.csproj.user
ConsoleApplication1.csproj.FileListAbsolute.txt1kb.19.01.2011 11:04скачать
ConsoleApplication1.exe
ConsoleApplication1.pdb
DesignTimeResolveAssemblyReferencesInput.cache
Program.cs
AssemblyInfo.cs
ConsoleApplication1.sln
ConsoleApplication1.suo
ConsoleApplication1.exe
ConsoleApplication1.pdb
ConsoleApplication1.vshost.exe
ConsoleApplication1.vshost.exe.manifest
ConsoleApplication1.csproj
ConsoleApplication1.csproj.user
ConsoleApplication1.csproj.FileListAbsolute.txt1kb.19.01.2011 11:05скачать
ConsoleApplication1.exe
ConsoleApplication1.pdb
DesignTimeResolveAssemblyReferencesInput.cache
Program.cs
AssemblyInfo.cs
ConsoleApplication1.sln
ConsoleApplication1.suo
ConsoleApplication1.exe
ConsoleApplication1.pdb
ConsoleApplication1.vshost.exe
ConsoleApplication1.vshost.exe.manifest
ConsoleApplication1.csproj
ConsoleApplication1.csproj.user
ConsoleApplication1.csproj.FileListAbsolute.txt1kb.19.01.2011 11:05скачать
ConsoleApplication1.exe
ConsoleApplication1.pdb
DesignTimeResolveAssemblyReferencesInput.cache
Program.cs
AssemblyInfo.cs
ConsoleApplication1.sln
ConsoleApplication1.suo
ConsoleApplication1.exe
ConsoleApplication1.pdb
ConsoleApplication1.vshost.exe
ConsoleApplication1.vshost.exe.manifest
ConsoleApplication1.csproj
ConsoleApplication1.csproj.user
ConsoleApplication1.csproj.FileListAbsolute.txt1kb.19.01.2011 11:06скачать
ConsoleApplication1.exe
ConsoleApplication1.pdb
DesignTimeResolveAssemblyReferencesInput.cache
Program.cs
AssemblyInfo.cs
ConsoleApplication1.sln
ConsoleApplication1.suo
Lab_7.exe
Lab_7.pdb
Lab_7.vshost.exe
Lab_7.vshost.exe.manifest
Lab_7.csproj
DesignTimeResolveAssemblyReferencesInput.cache
Lab_7.csproj.FileListAbsolute.txt1kb.18.01.2011 23:35скачать
Lab_7.exe
Lab_7.pdb
Program.cs
AssemblyInfo.cs
Lab_7.sln
Lab_7.suo
Lab_8.exe
Lab_8.pdb
Lab_8.vshost.exe
Lab_8.vshost.exe.manifest
Lab_8.csproj
DesignTimeResolveAssemblyReferencesInput.cache
Lab_8.csproj.FileListAbsolute.txt1kb.18.01.2011 23:35скачать
Lab_8.exe
Lab_8.pdb
Program.cs
AssemblyInfo.cs
Lab_8.sln
Lab_8.suo
Lab_9.exe
Lab_9.pdb
Lab_9.vshost.exe
Lab_9.vshost.exe.manifest
Lab_9.csproj
DesignTimeResolveAssemblyReferencesInput.cache
Lab_9.csproj.FileListAbsolute.txt1kb.18.01.2011 23:36скачать
Lab_9.exe
Lab_9.pdb
ResolveAssemblyReference.cache
Program.cs
AssemblyInfo.cs
Lab_9.sln
Lab_9.suo
Зв_т 1.doc94kb.01.06.2009 10:54скачать
Зв_т 1.docx70kb.01.06.2009 08:12скачать
Зв_т 2.doc111kb.01.06.2009 10:54скачать
Зв_т 2.docx89kb.01.06.2009 08:28скачать
Зв_т 3.doc331kb.01.06.2009 10:55скачать
Зв_т 3.docx269kb.01.06.2009 10:34скачать
ConsoleApplication7.exe
ConsoleApplication7.pdb
ConsoleApplication7.vshost.exe
ConsoleApplication7.vshost.exe.manifest
ClassDiagram1.cd
ConsoleApplication7.csproj
ConsoleApplication7.csproj.FileListAbsolute.txt2kb.26.05.2010 11:21скачать
ConsoleApplication7.exe
ConsoleApplication7.pdb
Obl.cs
Program.cs
AssemblyInfo.cs
ConsoleApplication7.sln
ConsoleApplication7.suo
ConsoleApplication5.exe
ConsoleApplication5.pdb
ConsoleApplication5.vshost.exe
ConsoleApplication5.vshost.exe.manifest
_ДЗ1.vshost.exe
ClassDiagram1.cd
ClassDiagram2.cd
ConsoleApplication5.csproj
ConsoleApplication5.csproj.FileListAbsolute.txt2kb.08.06.2009 10:51скачать
ConsoleApplication5.exe
ConsoleApplication5.pdb
Obl.cs
Program.cs
AssemblyInfo.cs
ConsoleApplication5.sln
ConsoleApplication5.suo
ИДЗ Лаба 3.exe
ИДЗ Лаба 3.pdb
ИДЗ Лаба 3.vshost.exe
ИДЗ Лаба 3.vshost.exe.manifest
ClassDiagram1.cd
ClassDiagram2.cd
Fakultet.cs
ResolveAssemblyReference.cache
ИДЗ Лаба 3.csproj.FileListAbsolute.txt4kb.08.06.2009 14:42скачать
ИДЗ Лаба 3.exe
ИДЗ Лаба 3.pdb
Program.cs
AssemblyInfo.cs
Student.cs
Subject.cs
ИДЗ Лаба 3.csproj
ИДЗ Лаба 3.csproj.user
ИДЗ Лаба 3.sln
ИДЗ Лаба 3.suo
Lab_4.exe
Lab_4.pdb
Lab_4.vshost.exe
Lab_4.vshost.exe.manifest
Lab_4.csproj
DesignTimeResolveAssemblyReferencesInput.cache
Lab_4.csproj.FileListAbsolute.txt1kb.19.01.2011 09:58скачать
Lab_4.exe
Lab_4.pdb
ResolveAssemblyReference.cache
Program.cs
AssemblyInfo.cs
Lab_4.sln
Lab_4.suo
Lab_5.exe
Lab_5.pdb
Lab_5.vshost.exe
Lab_5.vshost.exe.manifest
Lab_5.csproj
DesignTimeResolveAssemblyReferencesInput.cache
Lab_5.csproj.FileListAbsolute.txt1kb.23.01.2011 22:58скачать
Lab_5.exe
Lab_5.pdb
ResolveAssemblyReference.cache
Program.cs
AssemblyInfo.cs
Lab_5.sln
Lab_5.suo
Lab_6.exe
Lab_6.pdb
Lab_6.vshost.exe
Lab_6.vshost.exe.manifest
Lab_6.csproj
DesignTimeResolveAssemblyReferencesInput.cache
Lab_6.csproj.FileListAbsolute.txt1kb.23.01.2011 23:52скачать
Lab_6.exe
Lab_6.pdb
ResolveAssemblyReference.cache
Program.cs
AssemblyInfo.cs
Lab_6.sln
Lab_6.suo
Lab_7.exe
Lab_7.pdb
Lab_7.vshost.exe
Lab_7.vshost.exe.manifest
Lab_7.csproj
DesignTimeResolveAssemblyReferencesInput.cache
Lab_7.csproj.FileListAbsolute.txt1kb.18.01.2011 23:35скачать
Lab_7.exe
Lab_7.pdb
Program.cs
AssemblyInfo.cs
Lab_7.sln
Lab_7.suo
Lab_8.exe
Lab_8.pdb
Lab_8.vshost.exe
Lab_8.vshost.exe.manifest
Lab_8.csproj
DesignTimeResolveAssemblyReferencesInput.cache
Lab_8.csproj.FileListAbsolute.txt1kb.18.01.2011 23:35скачать
Lab_8.exe
Lab_8.pdb
Program.cs
AssemblyInfo.cs
Lab_8.sln
Lab_8.suo
Lab_9.exe
Lab_9.pdb
Lab_9.vshost.exe
Lab_9.vshost.exe.manifest
Lab_9.csproj
DesignTimeResolveAssemblyReferencesInput.cache
Lab_9.csproj.FileListAbsolute.txt1kb.18.01.2011 23:36скачать
Lab_9.exe
Lab_9.pdb
ResolveAssemblyReference.cache
Program.cs
AssemblyInfo.cs
Lab_9.sln
Lab_9.suo
Индивидуальное задание.doc59kb.16.06.2008 22:04скачать

содержание

lab1.doc


Разработка консольных приложений с использованием среды Microsoft Visual C# 2005 Express Edition.

Лабораторная работа №1. Обзор платформы .NET. Создание и запуск проeкта. Пространство имен.

Цель: овладеть возможностями использования инструментальных средств программной среды Microsoft Visual C# 2005 Express Edition для проектирования приложений.

Ход выполнения работы.


1. Загрузить среду разработки: Пуск\Программы\ Microsoft Visual C# 2005 Express Edition (см. рис. 1.1.).



Рис. 1.1. Главное окно разработки.
2. Создать новое консольное приложение: File\New Project\ ConsoleApplication\Дать имя своему проекту: FirstProject \ Ok.

3. Изучить составляющие главного окна среды, а именно назначение:

- меню действий;

- панели инструментов;

- дополнительных окон.

4. Ознакомиться с назначением и содержимым окон, которые можно визуализировать или скрывать при помощи меню View, а именно:

- Solution Explorer;

- Properties;

- начальный код программы.

5. Сохранить проект (обратив внимание на стандартный адрес сохранения: C:\Documents and Settings\имя пользователя\Мои документы\Visual Studio 2005\Projects).
^

Теоретические сведения:

Проблемы разработки современных ИС


Опишем проблемы разработки современных информационных систем, с которыми сталкиваются современные программисты:

1. Проблемы интеграции

  • Модулей, написанных на различных языках, использующих разный API (или версии API) или разный формат представления данных;

  • Программ, разработанных для различных платформ, в рамках единого программного комплекса;

  • Систем, использующих разные программные модели.

^ 2. Проблемы переносимости

Всё чаще к программам предъявляются требования поддержки нескольких платформ (например, возможность работы с программой на платформе Windows и MacOS).

^ 3. Проблемы версий

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

^ 4. Управление ресурсами

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

^ 5. Безопасность типов

Когда упоминают проблему безопасности типов, имеют в виду некорректное обращение с типами данных. То есть, попытки обратиться к областям памяти за границей типа, попытки вызвать методы, отсутствующие у типа, или попытки вызвать метод, принимающий в качестве параметра тип А, и передать ему в качестве параметра объект типа В.

^ 6. Обработка сбоев

При разработке Windows -приложений с использованием win 32 API некоторые функции возвращает исключения, другие коды состояний, третьи HRESULT . Таким образом, отсутствует согласованный механизм обработки сбоев и есть возможность игнорировать некоторые исключения, что делает код небезопасным.

Эти и другие проблемы разработки информационных систем помогает решать платформа Microsoft . NET .
^

Решение проблем разработки информационных систем в .NET


Технология .NET представляет собой способ разработки и развёртывания программного обеспечения, который с помощью таких широко используемых стандартов как HTTP и XML реализует взаимодействие программ и обеспечивает с помощью Internet доступ к многочисленным программным сервисам.

Технология включает .NET Framework – платформу для разработки и исполнения приложений, которая упрощает и ускоряет разработку, поддерживает полноценное объектно-ориентированное программирование для web, устраняет многие типы наиболее распространённых программных ошибок, предоставляет общий API для всех языков.

Любой программный код, написанный под новую платформу, называется управляемым (managed code) и компилируется в бинарный вид, понятный .NET runtime. Этот формат называется Microsoft Intermediate Language (MSIL, IL, CIL). В связи с этим появляется возможность легкой интеграции кодов, написанных на разных языках программирования, т.к. платформа более низкого уровня у них одна.

Далее, с помощью утилиты al.exe (см. п. 4.) исполняемые модули и другие файлы проекта объединяются в сборку. Следовательно, для создания приложения используя разные языки необходимо лишь откомпилировать каждый отдельный файл в исполняемый модуль, а затем создать из них сборку.

Каркас Framework .Net перестал быть частью студии, а стал надстройкой над операционной системой. Теперь компиляция и создание модулей отделено от выполнения, и эти процессы могут быть реализованы на разных платформах.
^

Microsoft .NET Framework


.NET Framework – среда для создания и запуска приложений. Все приложения не просто используют библиотеки .NET Framework, но и выполняются под управлением ее компонент.

Её основные компоненты:

  • общеязыковая исполняющая среда (Common Language Runtime) – динамический компонент;

  • библиотека классов .NET Framework Class Library – статический компонент.




  1. Общеязыковая исполняющая среда (Common Language Runtime)

Common Language Runtime (CLR) – это набор утилит и служб, которые включают в себя все необходимые средства для создания и запуска приложений.

CLR расположена поверх операционной системы и предоставляет виртуальную среду для управляемых приложений. Код для платформы .NET либо исполняется CLR, либо получает разрешение на исполнение за её пределами.

^ Весь код для платформы .NET преобразуется CLR в промежуточный код на языке CIL. Поэтому разработчики могут легко интегрировать код, написанный для .NET на различных языках программирования.

Код на CIL начинает выполняться под управлением CLR (по этой причине код называется управляемым). Исполнительную среду можно рассматривать, как своеобразную виртуальную IL-машину. Эта машина транслирует «на лету» требуемые для исполнения участки кода в команды реального процессора, который в действительности и выполняет код.

Другими словами, команды на языке CIL компилируются в машинный код соответствующего типа процессора по запросу (just-in-time) в период выполнения. Обычно компиляция метода происходит один раз во время его первого вызова. Затем результат кэшируется в памяти, чтобы избежать задержек при повторных вызовах. JIT-компилятор выполняет оптимизацию кода специально для процессора, на котором исполняется этот код.

Преобразуя команды CIL в команды процессора, JIT-компилятор выполняет верификацию кода на предмет безопасности типов.

Практически невозможно выполнить команду, обращающуюся к области памяти, к которой у этой команды нет разрешения на доступ. В управляемом приложении устраняется проблема ошибочно инициализированных указателей, запрещается преобразовать тип в нечто, чем он не является, так как это нарушение безопасности типов. CLR не позволяет вызывать методы с разрушенным стековым фреймом.

^ Ресурсы, выделяемые управляемым кодом, освобождаются сборщиком мусора (Garbage Collector). Иначе говоря, программист только выделяет память, но не освобождает её – это делает CLR. Сборщик мусора отслеживает все ссылки на объекты, создаваемые программой, и уничтожает эти объекты, когда занимаемая ими память требуется где-то ещё. Таким образом, в приложениях с управляемым кодом разрешается проблема утечек памяти.

Верификация кода также является основой способности CLR выполнять несколько приложений внутри одного процесса. Процесс разделяется на виртуальные отсеки – домены приложений (application domain). Таким образом, повышается эффективность использования памяти, выделяемой процессам. Домены приложений не менее безопасны, чем процессы, так как их границы не могут быть нарушены управляемыми приложениями.

Для того чтобы классы, разработанные на разных языках, мирно уживались в рамках одного приложения, для их бесшовной отладки, возможности построения разноязычных потомков, они должны удовлетворять некоторым ограничениям. Эти ограничения задаются набором общеязыковых спецификаций – CLS (Common Language Specification). Класс, удовлетворяющий спецификациям CLS, называется CLS-совместимым. Он доступен для использования в других языках, классы которых могут быть клиентами или наследниками совместимого класса.

Спецификации CLS точно определяют, каким набором встроенных типов можно пользоваться в совместимых модулях. Понятно, что эти типы должны быть общедоступными для всех языков, использующих Framework .Net. В совместимых модулях должны использоваться управляемые данные и выполняться некоторые другие ограничения. Заметьте, ограничения касаются только интерфейсной части класса, его открытых свойств и методов. Закрытая часть класса может и не удовлетворять CLS.

Все компоненты, входящие в CLR представлены на рис.1.2., а именно:


  • Class loader – управляет загрузкой классов,

  • MS Intermediate Language – специальный язык независимый от платформы,

  • Code manager – управляет запуском кода,

  • Garbage Collector – сборщик мусора, для освобождения неиспользуемых ресурсов памяти,

  • Security Engine – обеспечивает механизм защиты приложений,

  • Debugger – позволяет пользователю отлаживать приложение и отслеживать выполнение запущенного приложения,

  • Type checker – гарантирует правильное приведение типов данных,

  • Exception manager – обеспечивает механизм передачи исключений,

  • Thread support – отвечает за поддержку классов для создания многопоточных приложений,

  • COM marshaler – обеспечивает взаимодействие с СОМ – компонентами.




^ Base Class Library Support

Thread Support

COM Marshaler

Type Checker

Exception Manager

^ Security Engine

Debug Engine

MSIL to Native

Compilers

Code

Manager

Garbage

Collector

Class Loader

Рис.1.2. Компоненты CLR.
Сама CLR состоит из двух главных компонентов:

  • ядра (mscoree.dll),

  • библиотеки базовых классов (mscorlib.dll).

Наличие этих файлов на диске – верный признак того, что на компьютере, по крайней мере, была предпринята попытка установки платформы .NET. Ядро среды выполнения реализовано в виде библиотеки mscoree.dll.

При компоновке сборки в неё встраивается специальная информация, которая при запуске приложения (файла с расширением EXE) или при загрузке библиотеки (обращение к DLL из неуправляемого модуля – вызов функции LoadLibrary для загрузки управляемой сборки) приводит к загрузке и инициализации CLR.
После загрузки CLR в адресное пространство процесса, ядро среды выполнения реализует следующие действия:

  • находит местонахождение сборки,

  • загружает сборку в память,

  • производит анализ содержимого сборки (выявляет классы, структуры, интерфейсы),

  • производит анализ метаданных,

  • обеспечивает компиляцию кода на промежуточном языке (CIL) в платформозависимые инструкции (ассемблерный код). Фактически создается так называемый управляемый модуль – переносимый исполняемый файл (Portable Executable или PE-файл)1,

  • выполняет проверки, связанные с обеспечением безопасности,

  • используя основной поток приложения, передаёт управление преобразованному в команды процессора фрагменту кода сборки.


Ниже представлена схема выполнения .NET приложения в среде CLR.



Рис. 1.3. Схема выполнения .NET приложения в среде CLR
^ 2. .NET Framework Class library (FCL)

В .NET включены сборки библиотеки классов .NET Framework Class library (FCL), содержащие определения нескольких тысяч типов, каждый из которых предоставляет некоторую функциональность. Наборы «родственных» типов собраны в отдельные пространства имён.

К примеру, пространство имён System содержит базовый класс Object, из которого в конечном счёте порождаются все остальные типы. Таким образом, всякая сущность в .NET является объектом со своими полями и методами.

Кроме того, System содержит типы для целых чисел, символов, строк, обработки исключений, консольного ввода-вывода, группу типов для безопасного преобразования одних типов в другие, форматирования данных, генерации случайных чисел и выполнения математических операций. Типами из пространства имён System пользуются все приложения.

Для изменения существующего FCL-типа можно создать свой собственный производный тип. Можно создавать свои собственные пространства имён. Всё это будет чётко соответствовать принципам, предлагаемым платформой .NET.

Приведём некоторые наиболее распространённые пространства имён и краткое описание содержащихся там типов.

^ Таблица 1. Основные пространства имён FCL

Пространство имён

Содержание

System

Фундаментальные типы данных и вспомогательные классы

System.Collections

Хэш-таблицы, массивы переменной размерности и другие контейнеры

System.Data

Классы ADO.NET для доступа к данным

System.Drawing

Классы для вывода графики (GDI+)

System.IO

Классы файлового и потокового ввода-вывода

System.Net

Классы для работы с сетевыми протоколами, например, с HTTP

System.Reflection

Классы для чтения и записи метаданных

System.Runtime.Remoting

Классы для распределённых приложений

System.ServiceProcess

Классы для создания служб Windows

Sustem.Threading

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

System.Web

Классы для поддержки HTTP

System.Web.Services

Классы для разработки web-сервисов

System.Web.Services.Protocols

Классы для разработки клиентов web-сервисов

System.Web.UI

Основные классы, используемые ASP.NET

System.Web.UI.WebControls

Серверные элементы управления ASP.NET

System.Windows.Forms

Классы для приложений с графическим интерфейсом пользователя

System.Xml

Классы для чтения и ввода данных в формате XML


Все управляемые приложения используют библиотеку классов FCL. Это упрощает интеграцию приложений и позволяет легче переносить приложения с одного языка на другой.
^

Утилиты .NET Framework


  1. Основные утилиты .NET Framework




  • Common Language Runtime Minidump (Mscordmp.exe) – Эта утилита предназначена для создания файла с информацией о состоянии системы. Используется утилитой Dr. Watson для предоставления информации пользователю в случае аварийного завершения программы

  • ^ License Compiler (Lc.exe) – Утилита предназначена для создания файла лицензий на основе текстового файла, предоставляемого разработчиком

  • Management Strongly Typed Class Generator (Mgmtclassgen.exe) – Создает класс, который позволяет получать доступ к классам Windows Management Instrumentation (WMI), тем самым упрощая работу с WMI.

  • MSIL Assembler (Ilasm.exe) – Позволяет создавать PE (portable executable) файл, который содержит все инструкции MSIL и все необходимые метаданные.

  • MSIL Disassembler (ildasm.exe) – На основе PE файла позволяет создать текстовый файл, который был получен ассемблером (llasm.exe).

  • Resource File Generator Tool (Resgen.exe) – Позволяет создавать из текстовых файлов ресурсов бинарный файл, который используется приложением во время выполнения.

  • Windows Forms ActiveX Control Importer (Aximp.exe) – Позволяет конвертировать типы, определенные в COM библиотеках для использования их в Windows Forms элементах управления.

  • Windows Forms Class Viewer (Wincv.exe) – Позволяет получить информацию о классах по заданному критерию поиска.

  • Windows Forms Resource Editor (Winres.exe) – Позволяет быстро провести локализацию для вашего ресурса (если ресурс ее поддерживает).




  1. Утилиты .NET Framework для отладки приложений




  • Microsoft CLR Debugger (DbgCLR.exe) – Представляет из себя удобный графический интерфейс для поиска ошибок в приложении во время его выполнения.

  • Runtime Debuger (Cordbg.exe) – Утилита командной строки для поиска ошибок.




  1. Утилиты .NET Framework по работе с защитой приложений




  • Certificate Creation Tool (Makecert.exe) – Утилита предназначена для создания Х.509 сертификатов, но только с целью тестирования.

  • Certificate Manager Tool (Certmgr.exe) – Позволяет управлять списком сертификатов.

  • Certificate Verification Tool (chktrust.exe) – Проверяет достоверность файла, подписанного сертификатом X.509.

  • Code Access Security Policy Tool (Caspol.exe) – Позволяет просматривать и устанавливать правила безопасности.

  • File Signing Tool (Signcode.exe) – Позволяет подписать PE файл цифровой подписью

  • Permissions View Tool (Permview.exe) – Позволяет просматривать уровни безопасности для сборки.

  • PEVerify Tool (Peverify.exe) – Проверяет метаданные в указанной сборке.

  • Secutil Tool (Secutil.exe) – Извлекает общий ключ со строгим именем из сборки.

  • Set Registry Tool (Setreg.exe) – Позволяют изменять состояние ключей в реестре, ответственных за поведение сертификатов.

  • Software Publisher Certificate Test Tool (Cert2spc.exe) – Создает Software Publisher's Certificate (SPC) из одного или более X.509 сертификатов. Эта утилита предназначена только для тестирования.

  • Strong Name Tool (Sn.exe) – Позволяет создавать сборки со строгими именами.


  1. Утилиты .NET Framework для настройки и установки приложений




  • Assembly Cache Viewer (Shfusion.dll) – Эта утилита позволяет просматривать и манипулировать GAC-ом (Global Assembly Cache) с использованием Windows Explorer.

  • Assembly Linker (Al.exe) – Создает файл с манифестом сборки из одного или нескольких файлов сборки или MSIL.

  • Assembly Registration Tool (Regasm.exe) – Позволяет считывать метаданные и добавляет необходимые данные в регистр с целью создания возможности для вызова классов .NET Framework из объектов COM.

  • Assembly Binding Log Viewer (Fuslogvw.exe) – Демонстрирует информацию о том, почему сборка произошла неудачно и какие компоненты не были доступны для успешного завершения сборки.

  • Gloval Assembly Cache Tool (Gacutil.exe) – Аналогична утилите Shfusion.dll, позволяет просматривать содержимок GAC. В отличии от Shfusion.dll эту утилиту удобно использовать в скриптах и командных файлах.

  • Installer Tool (Installutil.exe) – Позволяет вам инсталлировать и удалять ресурсы сервера, используя соответствующие компоненты указанной сборки.

  • Isolated Storage Tool (Storeadm.exe) – позволяет просматривать и удалять ресурсы для текущего пользователя.

  • Native Image Generator (Ngen.exe) – Позволяет создать готовую к выполнению сборку и сохраняет ее в кеш, что позволяет быстрее выполнять приложение.

  • .NET Framework Configuration Tool (Mscrcfg.msc) – Позволяет управлять правилами всех уровней, а также позволяет устанавливать приложение в кеш.

  • .NET Services Installation Tool (Regsvcs.exe) – Добавляет управляемые классы к компонентам Windows 2000 с регистрацией и установкой для СОМ+.

  • Soapsuds Tool (Soapsuds.exe) – Помогает компилировать клиентское приложение, которое использует XML Web службы по технологии Remoting.

  • Type Library Exporter (Tlbexp.exe) – Создает библиотеку типов на основании существующей сборки.

  • Type Library Importer (Tlbimp.exe) – Позволяет конвертировать тип из COM в эквивалентное описание в управляемом формате.

  • Web Services Description Language Tool (Wsdl.exe) – Создает специальный файл XML для Web служб, который используется клиентским приложением для создания специального класса по взаимодействию с Web службой.

  • Web Services Discovery Tool (Disco.exe) – Позволяет найти все файлы .disco по указанному пути, в которых хранятся ссылки на описание Web служб (WSDL), и сохранить эту информацию на локальном диске.

  • XML Schema Definition Tool (Xsd.exe) – Позволяет создать классы DataSet на основании существующей XSD схемы.
^

Сборки в среде CLR


Сборки являются структурными элементами приложений .NET Framework; они составляют основную единицу развертывания, управления версиями, повторного использования, областей действия активации и разрешений безопасности.

Сборка представляет собой коллекцию типов и ресурсов, собранных для совместной работы и образующих логическую функциональную единицу.

Сборка предоставляет среде CLR сведения, необходимые для распознавания реализаций типов.
^

1 Общие сведения о сборках


Сборка обладает следующими свойствами.

  • Содержит код, выполняемый средой CLR. При отсутствии манифеста сборки код на промежуточном языке MSIL, находящийся в переносимом исполняемом (PE) файле, выполняться не будет. Каждая сборка может иметь только одну точку входа (т. е. DllMain , WinMain или Main ).

  • Создает границу безопасности. Сборка представляет собой единицу, для которой запрашиваются и предоставляются разрешения.

  • Создает границу типов. Каждое удостоверение типа включает имя сборки, в которой располагается данный тип. Тип с именем MyType, загруженный в области действия одной сборки, не совпадает с типом MyType, загруженным в области действия другой сборки.

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

  • Создает границу версий. Сборка является наименьшей единицей в среде CLR, которая может иметь версии. Все типы и ресурсы в одной сборке с точки зрения отслеживания версий представляют собой единое целое. В манифесте сборки описываются зависимости определенных версий от других сборок.

  • Формирует единицу развертывания. При запуске приложения могут присутствовать лишь сборки, первоначально вызываемые приложением. Другие сборки, например ресурсы локализации или сборки, содержащие вспомогательные классы, могут извлекаться по требованию. Это позволяет приложениям сохранять простую структуру и малый размер при первоначальной загрузке.

  • Сборка является единицей, для которой поддерживается параллельное выполнение.

Сборки могут быть:

  • статическими – такие, которые могут включать в себя типы платформы .NET Framework (интерфейсы и классы), а также ресурсы сборки (рисунки, JPEG-файлы, файлы ресурсов и т.д.). Статические сборки хранятся на диске в виде переносимых исполняемых (PE) файлов.

  • динамическими - , которые запускаются непосредственно из памяти и не сохраняются на диск перед выполнением, а только после.
^

2 Содержимое сборок


В общем случае статическая сборка может состоять из четырех элементов.

  • Манифест сборки, который содержит метаданные сборки.

  • Метаданные типов.

  • Реализующий типы код на промежуточном языке MSIL.

  • Набор ресурсов.

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

Существует несколько способов группировки этих элементов в сборку. Причем сборка может состоять из одного или нескольких файлов.
^

3 Манифест сборки


Любая сборка, статическая или динамическая, содержит коллекцию данных с описанием того, как ее элементы связаны друг с другом. Эти метаданные содержатся в манифесте сборки.

Манифест сборки содержит все метаданные, необходимые для задания требований сборки к версиям и удостоверения безопасности, а также все метаданные, необходимые для определения области действия сборки и разрешения ссылок на ресурсы и классы.

Манифест сборки может храниться в PE-файле (EXE или DLL) с кодом MSIL или же в отдельном PE-файле, содержащем только данные манифеста.

Для сборки с одним связанным файлом манифест включается в PE-файл, чтобы получить однофайловую сборку. Создать многофайловую сборку можно, включив в нее отдельный файл манифеста или же добавив манифест в один из PE-файлов сборки.

Манифест сборки предназначен для следующих задач:

  • перечисление файлов, составляющих сборку;

  • сопоставление ссылок на типы и ресурсы сборки с файлами, содержащими объявления и реализации этих типов и ресурсов;

  • перечисление других сборок, от которых зависит эта сборка;

  • обеспечение косвенного обращения пользователей сборки к подробностям ее реализации;

  • предоставление собственного описания сборки;

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

^ Таблица 2. Данные манифеста сборки

Данные

Описание

Имя сборки

Текстовая строка, задающая имя сборки.

Номер версии

Основной и дополнительный номера версии, номер редакции и номер построения. Среда CLR использует их для применения политики управления версиями.

Язык и региональные параметры

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

Данные о строгом имени

Открытый ключ издателя, если для сборки задано строгое имя.

Список всех файлов сборки

Хэш и имя каждого входящего в сборку файла. Обратите внимание, что все входящие в сборку файлы должны находиться в той же папке, что и файл с манифестом сборки.

Сведения о ссылках на типы

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

Сведения о ссылках на сборки

Список других сборок, на которые имеются статические ссылки из данной сборки. Каждая ссылка включает в себя имя зависимой сборки, метаданные сборки (версию, язык и региональные параметры, операционную систему и т.д.) и открытый ключ, если у сборки есть строгое имя.

С помощью задания атрибутов сборки в коде можно добавить или изменить некоторые данные в манифесте сборки. Можно изменить данные о версии и информационные атрибуты, включая сведения о товарном знаке, авторском праве, продукте, компании и информационной версии.
^

4 Размещение сборок


Для большинства приложений .NET Framework сборки, составляющие приложение, располагаются в папке приложения, во вложенной папке этой папки или в глобальном кэше сборок (если сборка является совместно используемой). С помощью Элемент <codeBase> в файле конфигурации можно изменить место, где среда CLR будет искать сборки. Если у сборки нет строгого имени, то расположение, которое указывается с помощью Элемент <codeBase>, ограничивается папкой приложения или вложенной папкой этой папки. Если у сборки есть строгое имя, то Элемент <codeBase> может указывать любое расположение на компьютере или в сети.

Аналогичные правила применяются к расположению сборок при работе с неуправляемым кодом или с приложениями, реализующими COM-взаимодействие: если сборка совместно используется несколькими приложениями, то она должна устанавливаться в глобальный кэш сборок. При использовании сборок с неуправляемым кодом их необходимо экспортировать в виде библиотеки типов и зарегистрировать. Сборки, использующиеся для обеспечения COM-взаимодействия, должны регистрироваться в каталоге, хотя в некоторых случаях такая регистрация производится автоматически.
Visual Studio .Net – открытая среда разработки.

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

Открытость среды не означает полной свободы. Все разработчики компиляторов при включении нового языка в среду разработки должны следовать определенным ограничениям. Главное ограничение, которое можно считать и главным достоинством, состоит в том, что все языки, включаемые в среду разработки Visual Studio .Net должны использовать единый каркас – Framework .Net.

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

Среда Microsoft Visual C# 2005 Express Edition


Внешнее представление среды Visual Studio .NET является полностью настраиваемым, однако то представление, которое используется по умолчанию, вполне подходит для целей написания консольных приложений. Оно имеет следующий вид:

Рис. 1.4. Среда Microsoft Visual C# 2005 Express Edition

Панель Toolbox (инструменты) открывает доступ к элементам построения пользовательских интерфейсов для оконных приложений.

В окне Solution Explorer выводится информация о решении, загруженном в настоящий момент. "Решение" в терминологии Visual Studio обозначает один или несколько проектов вместе с их настройками. Здесь мы можем увидеть различные представления проектов, участвующих в решении: например, из каких файлов они состоят и что в этих файлах содержится.

^ Окно Properties (свойства) позволяет получить более детальное представление о содержимом проекта; в нем предусмотрена возможность дополнительной настройки отдельных элементов. К примеру, здесь можно изменить внешний вид кнопки приложения Windows.

^ Окно Error List позволяет получить информацию о допущенных ошибках, включая указание номера строки, в которой она была допущена. Щелкнув дважды на описание можно перейти к строке с ошибкой и исправить ее.

^ Окно Task List/Output (список заданий/вывод) содержит информацию, относящуюся к компиляции проектов, а также задачи, которые требуют завершения. Эти задачи могут вводиться вручную, а могут генерироваться VS автоматически. Это окно помогает исправлять ошибки в коде, поскольку в нем выводятся сообщения о том, что необходимо сделать для успешной компиляции проекта. Если два раза щелкнуть мышью на ошибке, указанной в данном окне, то курсор переместится на ту позицию в строке исходного кода, где ошибка содержится (если файл с исходным текстом не был открыт ранее, он откроется в этот момент); это позволяет нам быстро исправлять наши промахи. В местах, где обнаружены ошибки, также можно увидеть волнистые линии красного цвета, благодаря чему можно быстро просматривать исходный код для выявления ошибок.
^

Структура программы в C#.


Рассмотрим структуру на классическом примере вывода сообщения «My first project».

using System;

using System.Data;
class FirstProject

{

public static void Main(string[] args)

{

// вывод сообщения на экран

System.Console.WriteLine("My first project");

}

}
^ Пример 1. Программа FirstProject

Любая программа на языке C# - это набор классов, которые взаимодействуют друг с другом.

В одном из классов программы должна находиться, так называя «точка входа» - статический метод Main. Наличие или отсутствие этого метода определяет тип получаемого результата компиляции – сборки.

Если метод присутствует – получаем исполняемую программу EXE, в противном случае – библиотеку DLL. Классы могут быть вложены друг в друга. Но точка входа должна быть только в одном.

Класс определяется с помощью ключевого слова class, после которого идет имя класса. Тело класса заключается в фигурные скобки.

Язык программирования C# чувствителен к регистру символов, поэтому метод Main должен начинаться с большой буквы. Кроме того, этот метод должен быть определен как static, что позволит вызвать метод без создания объекта класса. Заголовок можно безболезненно упростить, удалив аргументы, которые, как правило, не задаются. Они имеют смысл, когда проект вызывается из командной строки, позволяя с помощью параметров задать нужную стратегию выполнения проекта.
^

Пространство имен.


.NET Framework располагает большим набором полезных функций. Каждая из них является членом какого-либо класса.

Классы группируются по пространствам имен. Это означает, что в общем случае имя класса может иметь сложную структуру — состоять из последовательности имен, разделенных между собой точками. Последнее имя в этой последовательности собственно и является именем класса. Классы, имена которых различаются лишь последними членами (собственно именами классов) последовательностей, считаются принадлежащими одному пространству имен.

Помещение типа в пространство имен присваивает этому типу длинное имя, состоящее из всех пространств, как серии их имен, разделенных точками (.) и заканчивающееся именем класса.

Если не использовать оператор using, для корректного обращения к функциям необходимо писать полный путь класса, что является достаточно емкой работой.

Средством "навигации" по пространствам имен, а точнее, средством, которое позволяет сокращать имена классов, является оператор

using <ИмяПространстваИмен>;

В приложении может объявляться собственное пространство имен, а также могут использоваться ранее объявленные пространства.

Оператор using сам по себе не обеспечивает доступа к именам, находящимся в других пространствах имен. До тех пор, пока код из пространства имен не будет каким-либо способом привязан к нашему проекту (например, описан в исходном файле проекта или описан в каком-либо коде), привязанному к этому проекту, мы не получим доступа к содержащимся в нем именам. Более того, если код, в котором содержится некое пространство имен, привязан к нашему проекту, то мы обладаем доступом к содержащимся в нем именам независимо от использования оператора using. Оператор using всего лишь упрощает обращение к этим именам и позволяет сократить сильно удлиняющийся в противном случае код, делая его более понятным.

Расположение всех требуемых сборок указывается явно - непосредственно в Visual Studio:

  • при работе над проектом открыть окно Solution Explorer,

  • выбрать пункт References,

  • далее Add Reference...

  • там надо задать или выбрать соответствующий .DLL- или .EXE-файл.

В частности, сборка, которая содержит классы, сгруппированные в пространстве имен System, располагается в файле mscorlib.dll.

При компиляции модуля транслятор по полному имени функции (учитывая пространство имен using) находит ее код для исполнения сборки.
^

Создание и запуск проекта.


При создании нового проекта автоматически создается достаточно сложная вложенная структура – решение, содержащее проект, содержащий пространство имен, содержащее класс, содержащий точку входа. Для простых решений такая структурированность представляется избыточной, но для сложных – она осмысленна и полезна.

Еще одна новинка C#, встречающаяся в начальном проекте, это атрибут [STAThread], предшествующий описанию процедуры Main. Так же, как и тэги документирования, атрибуты распознаются специальным инструментарием и становятся частью метаданных. Атрибуты могут быть как стандартными, так и заданными пользователем. Стандартные атрибуты используются CLR и влияют на то, как она будет выполнять проект. В данном случае атрибут [STAThread] (Single Thread Apartment) задает однопоточную модель выполнения. Об атрибутах и метаданных мы еще будем говорить подробно. При нечетком представлении о смысле однопоточной модели, и не желании использовать непонятные указания, - атрибут можно удалить из текста, что не отразится на выполнении.

Проект можно скомпилировать, выбрав соответствующий пункт из меню build. Если компиляция прошла без ошибок, то в результате будет построена сборка и появится PE-файл в соответствующей папке Debug нашего проекта. Приложение можно запустить на выполнение нажатием соответствующих клавиш (например, CTRL+F5) или выбором соответствующего пункта из меню Debug. Приложение будет выполнено под управлением CLR. В результате выполнения появится консольное окно с предложением нажать любую клавишу для закрытия окна.

Итоги


Инфраструктура .NET Framework поддерживает разработку и исполнение различных приложений. .NET Framework ставит своей целью решение следующих задач:

  • Предоставление объектно-ориентированной среды программирования;

  • Предоставление среды исполнения, решающей проблемы конфликта версий;

  • Предоставление среды безопасного исполнения кода (безопасность типов и другие особенности управляемого кода);

  • Предоставление среды исполнения, улучшающей производительность за счёт управления памятью и кэширования результатов компиляции;

  • Улучшение интеграции и переносимости приложений за счёт использования общего промежуточного языка и библиотеки типов.

.NET Framework состоит из двух основных компонент:

  • общеязыковая исполняющая среда (CLR),

  • библиотека классов .NET Framework.

1 PE-файл, имеющий уточнение exe, хотя и является exe файлом, но это не совсем обычный исполняемый Windows файл. При его запуске он распознается как специальный PE-файл и передается CLR для обработки. Исполнительная среда начинает работать с кодом, в котором специфика исходного языка программирования исчезла.



Скачать файл (2459.7 kb.)

Поиск по сайту:  

© gendocs.ru
При копировании укажите ссылку.
обратиться к администрации