Контакты

Виды net приложений и их базовые концепции. Платформа Microsoft. Обзор архитектуры и возможностей. Какие языки программирования поддерживают технологию.NET

Типы приложений.NET

Язык C# можно использовать для создания консольных приложений - текстовых приложений, запускаемых в окне DOS. Скорее всего, такие приложения будут применяться для тестирования библиотек классов. Однако гораздо чаще язык C# придется использовать для создания приложений, имеющих доступ к множеству технологий, связанных с.NET. В данной статье представлен краткий обзор различных типов приложений, которые можно писать на C#.

Создание приложений ASP.NET

Изначально появление ASP.NET 1.0 фундаментально изменило модель веб-программирования. ASP.NET 4 является старшим выпуском продукта и построен на базе прежних достижений. В ASP.NET 4 реализованы основные революционные шаги, направленные на повышение продуктивности работы. Главная цель ASP.NET 4 - позволить строить мощные, безопасные, динамичные приложения с использованием минимально возможного объема кода.

Возможности ASP.NET

Первое, и, возможно, самое важное - это то, что страницы структурированы . То есть каждая страница - это, по сути, класс, унаследованный от класса.NET System.Web.UI.Page , который может переопределить набор методов, вызываемых во время жизненного цикла объекта Page. (Можете воспринимать эти события как специфичные для страниц родственники событий OnApplication_Start и OnSession_Start , которые поступали в файлы global.asax в классической платформе ASP.) Поскольку функциональность страниц можно выделить в обработчики событий определенного назначения, страницы ASP.NET гораздо легче понять.

Другая приятная особенность страниц ASP.NET заключается в том, что их можно создавать в Visual Sludio 2010 - той же среде, в которой программируется бизнес-логика и компоненты доступа к данным, используемые этими же страницами ASP.NET. Проект Visual Studio 2010, или решение (solution), содержит все файлы, ассоциированные с приложением. Более того, классические ASP-страницы можно отлаживать непосредственно в редакторе. В прежние времена, связанные с Visual InterDev , существовала неприятная необходимость специально конфигурировать InterDev и веб-сервер проекта для включения отладки.

Для большей ясности средство отделенного кода (code-behind) ASP.NET позволяет распространить структурированный подход еще дальше. ASP.NET позволяет изолировать серверную функциональность страницы в классе, скомпилировать этот класс вместе с другими страницами в библиотеку DLL и разместить эту DLL в каталоге, находящемся ниже части HTML. Директива @Page, указанная в начале страницы, ассоциирует этот файл с классом. Когда браузер запрашивает страницу, веб-сервер генерирует события в классе, находящемся в файле класса страницы.

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

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

Веб-формы

Чтобы еще более облегчить конструирование веб-страниц, в Visual Studio 2010 предлагается библиотека Web Forms (Веб-формы). Это средство позволяет графически создавать страницы ASP.NET - точно так же, как создаются окна в Visual Basic 6 и в C++Builder. Другими словами, потребуется перетащить необходимые элементы управления из панели инструментов на поверхность формы, затем слегка подкорректировать код формы и написать обработчики событий для элементов управления. При использовании языка C# для создания веб-формы, вы создаете класс C#, унаследованный от базового класса Page , и страницу ASP.NET, которая отображает этот класс в качестве своего отделенного кода. Разумеется, вы не обязаны применять для создания веб-формы именно C#; для этого можно воспользоваться также Visual Basic 2010 или любым другим языком, ориентированным на.NET.

В прошлом сложность веб-разработки удерживала некоторые команды разработчиков от попыток ее освоения. Для достижения успехов в разработке веб-приложений приходилось знать множество разных технологий, таких как VBScript, ASP, DHTML, JavaScript и т.д. Применение концепций Web Forms к веб-страницам существенно упростило построение веб-приложений.

Элементы управления веб-сервера

Элементы управления, применяемые в веб-формах, не являются элементами управления в том же смысле, в каком ими являются элементы ActiveX . Вместо этого они представляют собой XML-дескрипторы, принадлежащие пространству имен ASP.NET, которые веб-браузер динамически трансформирует в HTML-дескрипторы и сценарии клиентской стороны, когда осуществляется запрос этой страницы. Удивительно то, что веб-сервер может отображать одни и те же элементы управления серверной стороны различными способами, генерируя трансформацию, соответствующую конкретному веб-браузеру, который прислал запрос. Это означает, что теперь можно легко создавать совершенные пользовательские интерфейсы веб-страниц, не заботясь о том, как достичь того, чтобы страница работала в любом из доступных браузеров - об этом позаботится Web Forms.

Веб-службы XML

На сегодняшний день HTML-страницы составляют большую часть трафика World Wide Web. Однако благодаря XML, компьютеры получают независимый от устройства формат, который может использоваться для их взаимодействия в Интернете. В будущем для обмена информацией компьютеры смогут использовать XML вместо того, чтобы пересылать друг другу по выделенным линиям сообщения в специальном патентованном формате, подобном EDI (Electronic Data Interchange - электронный обмен данными) . Веб-службы XML предназначены для веб-среды, ориентированной на службы, когда удаленные компьютеры предоставляют друг другу динамическую информацию, которая может быть проанализирована и переформатирована, прежде чем получить свое окончательное представление для пользователя. Веб-службы XML - это простой способ для компьютеров предоставлять информацию в форме XML другим компьютерам в Интернете.

В рамках технической терминологии веб-служба XML в.NET - это страница ASP.NET, которая возвращает по запросам клиентов XML-код вместо HTML-кода. Такие страницы опираются на DLL-библиотеки отделенного кода, которые содержат классы, унаследованные от WebService. Интегрированная среда разработки Visual Studio 2010 предлагает механизм, облегчающий создание веб-служб.

Предприятие или организация может отдать предпочтение веб-службам XML по двум основным причинам. Первая причина заключается в том, что они основаны на HTTP; вебслужбы могут использовать существующие сети на базе HTTP в качестве посредников для передачи информации. Другая причина связана с тем, что поскольку веб-службы XML применяют XML, формат передаваемых данных является самодокументированным, открытым и независящим от платформы.

Создание Windows-форм

Хотя C# и.NET предназначены, в частности, для веб-разработки, они по-прежнему поддерживают так называемые приложения "толстого" клиента - т.е. приложения, которые должны устанавливаться на машине конечного пользователя, где и выполняется большая часть обработки. Это обеспечивает библиотека Windows forms (Windows-формы).

Однако, если вы начинаете изучать платформу.NET, я бы не рекомендовал вам изучать Windows Forms, а сразу переходить к изучению новейшей технологии WPF.

Windows Presentation Foundation (WPF)

Одной из новейших технологий революционного характера является Windows Presentation Foundation (WPF). При построении приложений WPF опирается на использование XAML. Аббревиатура XAML означает Extensible Application Markup Language - расширяемый язык разметки приложений. Этот новый способ создания приложений внутри среды Microsoft, впервые представленный в 2006 г., является частью версий.NET Framework 3.0, 3.5 и 4. Это значит, что для того, чтобы запустить любое приложение WPF, необходимо удостовериться, что на машине клиента установлена платформа.NET Framework 3.0, 3.5 или 4. Приложения WPF доступны для ОС Windows 7, Windows Vista, Windows XP, Windows Server 2003 и Windows Server 2008 (только эти операционные системы позволяют устанавливать.NET Framework 3.0, 3.5 или 4).

XAML - это объявление XML, используемое для создания форм, которые представляют все визуальные аспекты и поведение приложений WPF. Поскольку с приложением WPF можно работать программно, эта технология представляет собой шаг в направлении декларативного программирования, к которому движется сегодня вся отрасль. Декларативное программирование означает, что вместо создания объектов посредством написания кода на компилируемом языке, таком как C#, VB или Java, все объявляется с помощью XML-подобного программирования.

Службы Windows

Служба Windows (Windows Service, изначально называвшаяся NT Service) - это программа, предназначенная для запуска в фоновом режиме в среде Windows NT/2000/XP/2003/ Vista/7 (но не Windows 9х). Эти службы удобны, когда нужно организовать непрерывную работу программ, готовых реагировать на события, без необходимости явного их запуска по инициативе пользователя. Хорошим примером является служба World Wide Web Service на веб-серверах, которая прослушивает веб-запросы клиентов.

Разрабатывать службы на языке C# очень просто. В пространстве имен System.Service.Process доступны базовые классы среды.NET, которые позволяют решать большинство шаблонных задач, связанных с системными службами. Кроме того, среда Visual Studio .NET позволяет создавать проект C# Windows Service, в котором для построения службы Windows используется исходный код C#.

Windows Communication Foundation (WCF)

Изучая способы перемещения данных и служб из одной точки в другую, используемые в технологиях Microsoft, вы обнаружите, что в вашем распоряжении оказывается широкое разнообразие возможных решений. Например, вы можете использовать веб-службы ASP.NET, технологию.NET Remoting, Enterprise Services либо MSMQ. Какую же технологию выбрать? Ответ на этот вопрос диктуется тем, чего вы пытаетесь достичь, поскольку каждая из этих технологий предпочтительна в конкретной ситуации.

Памятуя об этом, в Microsoft действительно собрали все эти технологии вместе, и в версии.NET Framework 3.0, а также и в ее включении в.NET Framework 3.5 и 4, имеется единый способ перемещения данных - Windows Communication Foundation (WCF). Библиотека WCF обеспечивает возможностью первоначального построения службы с последующей доставкой этой службы различными путями (даже по разным протоколам) простым изменением конфигурационного файла. WCF - очень мощное новое средство соединения распределенных систем.

Windows Workflow Foundation (WF)

Служба Windows Workflow Foundation (WF) впервые была представлена в версии.NET Framework 3.0, но теперь подверглась основательной перестройке, в результате чего многие теперь найдут ее гораздо более полезной. Вы обнаружите, что в Visual Studio 2010 значительно улучшены средства работы с WF, и создавать собственные рабочие потоки стало гораздо удобней. Вы также найдете новые средства управления потоком, класс Flowchart, а также ряд новых действий, таких как DoWhile, ForEach и ParallelForEach.

Аннотация: Инициатива Microsoft .NET. Проблемы совместимости, надежности и повторного использования компонентов. .NET Framework. Общеязыковая исполняющая среда CLR. Псевдомашинный язык CIL (управляемый assembler). JIT-компилятор. Языки программирования. Сборки. Метаданные. Сборщик мусора. Библиотека классов.NET Framework

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

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

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

Особенно часто возникают проблемы интеграции с унаследованным кодом ( legacy ). При решении задач интеграции возникают проблемы несовместимости.

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

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

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

Windows-разработчики знают о проблеме совместимости версий, известной под названием "ад DLL". Этот "ад" возникает, когда компоненты, устанавливаемые для нового приложения, заменяют компоненты старого приложения. В итоге старое приложение начинает работать неправильно или перестает работать.

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

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

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

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

Обработка сбоев

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

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

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

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

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

Что составляет Microsoft .NET

NET Framework - инфраструктура разработки приложений. Ее основные компоненты - общеязыковая исполняющая среда (Common Language Runtime) и библиотека классов. NET Framework Class Library .

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

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

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

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

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

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

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

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

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

.NET Framework Class library (FCL)

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

Таким образом, всякая сущность в. NET является объектом со своими полями и методами.

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

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

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

Основные пространства имен FCL
Пространство имен Содержание
System Фундаментальные типы данных и вспомогательные классы
System.Collections Хэш-таблицы, массивы переменной размерности и другие контейнеры
System.Data Классы ADO .NET для доступа к данным
System.Drawing Классы для вывода графики (GDI+)
System.IO Классы файлового и потокового ввода/вывода
System.Net Классы для работы с сетевыми протоколами, например с HTTP
System.Reflection Классы для чтения и записи метаданных
System.Runtime.Remoting Классы для распределенных приложений
System.ServiceProcess Классы для создания служб Wndows
System.Threading Классы для создания и управления потоками
System.Web Классы для поддержки HTTP
System.Web.Services Классы для разработки web-сервисов
System.Web.Services. Классы для разработки клиентов web-сервисов Protocols
System.Web.UI Основные классы, используемые ASP .NET
System.Web.UI. WebControls Серверные элементы управления ASP .NET
System.Wndows.Forms Классы для приложений с графическим интерфейсом пользователя
System.Xml Классы для чтения и ввода данных в формате XML

Все управляемые приложения используют

C#
  • Common Language Runtime ) и библиотеку классов...
  • Платформа.NET Framework и спецификация CTS
    Язык C# и средства его поддержки в настоящее время связаны с платформой.NET Framework, разработанной Microsoft. Названная платформа (см. ) включает: общеязыковую исполняющую среду (CLR - Common Language Runtime Framework Class Library). Следует заметить,...
    (ПРОГРАММИРОВАНИЕ. БАЗОВЫЙ КУРС С#)
  • Установка платформы.NET Framework и Visual Studio
    В среде ОС Windows 7 и 8 платформа.NET уже имеется и ничего устанавливать нс требуется. Для разработки приложений в платформе.NET нужно установить систему разработки Visual C# 2012 (или 2013) Express Edition – бесплатная версия среды разработки Visual Studio (сокращенная, но обладающая практически...
    (Объектно-ориентированное программирование)
  • ТИПЫ C# И ТИПЫ ПЛАТФОРМЫ.NET FRAMEWORK
    Язык C# и средства его поддержки в настоящее время связаны с платформой.NET Framework, разработанной Microsoft. Названная платформа (см. ) включает: общеязыковую исполняющую среду (CLR - Common Language Runtime ) и библиотеку классов...
    (ПРОГРАММИРОВАНИЕ. БАЗОВЫЙ КУРС С#)
  • Платформа.NET Framework и спецификация CTS
    Язык C# и средства его поддержки в настоящее время связаны с платформой.NET Framework, разработанной Microsoft. Названная платформа (см. ) включает: общеязыковую исполняющую среду (CLR - Common Language Runtime ) и библиотеку классов (FCL - Framework Class Library). Следует заметить,...
    (ПРОГРАММИРОВАНИЕ. БАЗОВЫЙ КУРС С#)
  • Доброго времени суток. На связи Алексей Гулынин. В прошлой статье мы познакомились со способами передачи аргументов методу в C# . В данной статье я бы хотел ещё раз рассказать (более простыми словами), что представляет из себя платформа.Net Framework и Visual Studio . Данная статья является продолжением статей Visual Studio описание и Платформа.Net Framework .Net Framework — это среда CLR (Common Language Runtime — основная компонента.Net Framework ), которая обеспечивает выполнение управляемого кода (managed code ). CLR управляет этим кодом. Что такое управляемый код? Код, написанный для платформы.NET Framework компилируется не в конечный машинный код, а в промежуточный язык (так называемый IL — Intermediate Language ). Затем эта сборка передаётся пользователю (на машине обязательно должен стоять.Net Framework), загружается в память и транслирует команды IL в действия, которые нужно выполнить.

    Какой смысл в промежуточном языке IL?

    Во-первых, он платформа-независимый, не привязан к конкретному процессору.

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

    Вторая важная компонента после CLR — это библиотека классов (Class Library) . В состав.NET Framework входит большое количество классов, разбитых по пространствам имен, которые предоставляют весь базовый функционал. Это тот функционал, который может потребоваться вашей программе, например работа с файлами, сетью, процессами, с графической подсистемой.

    Третья компонента — это Development Frameworks (другими словами библиотеки разработки). Сюда входят такие библиотеки, как WPF (Windows Presentation Foundation), ASP.NET, Entity Framework, WCF (Windows Communication Foundation), Windows Store и др. Фактически это тоже классы. Отличие заключается в том, что эти классы предназначены для решения специфических задач:

    • WPF — для работы с графическими приложениями
    • ASP.NET — для работы с web-приложениями
    • WCF — для работы с сетью и создания распределенных (клиент-серверных) приложений
    • Entity Framework — для работы с базой данных.

    На момент написания данной статьи последней версией является .Net Framework 4.6

    Основной средой для разработки, рекомендуемой Microsoft, является Visual Studio . У Microsoft обычно такая ситуация: как выходит новая версия.NET Framework, то через некоторое время выходит и новая версия Visual Studio. Что входит в состав Visual Studio (основное):

    1. Текстовый редактор с синтаксической подсветкой кода
    2. Система помощи IntelliSence (вызывается автоматом или сочетанием клавиш Ctrl + Space (пробел)
    3. Компиляторы с разных языков
    4. Средства быстрой разработки (RAD — Rapid Application Development)
    5. Визуальный дизайнер интерфейсов, диаграмм
    6. Компонент работы с серверами, с базами данных
    7. web-сервер IIS и sql-сервер Express варианта
    8. Отладчики, профилировщики, компоненты позволяющие обрабатывать ошибки
    9. Система помощи MSDN

    На момент написания данной статьи последней версией является Visual Studio 2015 .

    Как в Visual Studio устроено понятие программ. В студии есть понятие "Проект" (Project) и "Решение" (Solution) . Проект — это единица компиляции. Он состоит из набора файлов. Проект компилируется целиком обычно в сборку (exe-файл, либо dll-файл). Проекты могут быть сгруппированы в Solution. Solution — это просто набор проектов, которые могут быть связаны друг с другом (обычно так и происходит), а могут быть не связаны друг с другом.

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

    NET Framework является надстройкой над операционной системой, в качестве которой может выступать любая версия Windows , Unix и вообще любая ОС ( по заверению разработчиков), и состоит из ряда компонентов. Так, . NET Framework включает в себя:

    1. Четыре официальных языка: С#, VB.NET, Managed C++ и JScript .NET.
    2. Общеязыковую объектно-ориентированную среду выполнения CLR (Common Language Runtime), совместно используемую этими языками для создания приложений.
    3. Ряд связанных между собой библиотек классов под общим именем FCL (Framework Class Library ).

    Основным компонентом платформы. NET Framework является общеязыковая среда выполнения программ CLR . Название среды – "общеязыковая среда выполнения" - говорит само за себя: это исполняющая среда, которая подходит для различных языков программирования. К функциям CLR относятся:

    1. двухшаговая компиляция: преобразование программы, написанной на одном из языков программирования в управляемый код на промежуточном языке ( Microsoft Intermediate Language , MSIL , или просто IL), а затем преобразование IL-кода в машинный код конкретного процессора, который выполняется с помощью виртуальной машины или JIT-компилятора (Just In Time compiler - компилирование точно к нужному моменту);
    2. управление кодом: загрузка и выполнение уже готового IL-кода с помощью JIT-компилятора;
    3. осуществление доступа к метаданным с целью проверки безопасности кода ;
    4. управление памятью при размещении объектов с помощью сборщика мусора ( Garbage Collector );
    5. обработка исключений и исключительных ситуаций, включая межъязыковые исключения;
    6. осуществление взаимодействия между управляемым кодом (код, созданный для СLR) и неуправляемым кодом;
    7. поддержка сервисов для разработки разнотипных приложений.

    Следующим компонентом. Net Framework является FCL – библиотека классов платформы. Эта библиотека разбита на несколько модулей таким образом, что имеется возможность использовать ту или иную ее часть в зависимости от требуемых результатов. Так, например, в одном из модулей содержатся "кирпичики", из которых можно построить Windows -приложения, в другом - "кирпичики", необходимые для организации работы в сети и т.д.

    Часть FCL посвящена описанию базисных типов . Тип - это способ представления данных; определение наиболее фундаментальных из них облегчает совместное использование языков программирования с помощью. NET Framework. Все вместе это называется Common Type System ( CTS - единая система типов ).

    Кроме того, библиотека FCL включает в себя Common Language Specification ( CLS – общая языковая спецификация), которая устанавливает: основные правила языковой интеграции. Спецификация CLS определяет минимальные требования, предъявляемые к языку платформы. NET . Компиляторы, удовлетворяющие этой спецификации, создают объекты, способные взаимодействовать друг с другом. Поэтому любой язык, соответствующий требованиям CLS , может использовать все возможности библиотеки FCL .

    Как уже отмечалось, основными языками, предназначенными для платформы. NET Framework, являются С#, VB. NET , Managed C++ и JScript . NET . Для данных языков Microsoft предлагает собственные компиляторы, переводящие программу в IL-код, который выполняется JIT-компилятором среды CLR . Кроме Microsoft, еще несколько компаний и академических организаций создали свои собственные компиляторы, генерирующие код, работающий в CLR . На сегодняшний момент известны компиляторы для Pascal , Cobol, Lisp , Perl, Prolog и т.д. Это означает, что можно написать программу, например, на языке Pascal , а затем, воспользовавшись соответствующим компилятором, создать управляемый код , который будет работать в среде CLR .

    Понятия приложения, проекта, решения

    NET Framework не налагает никаких ограничений на возможные типы создаваемых приложений. Тем не менее, давайте рассмотрим некоторые наиболее часто встречающиеся типы приложений:

    1. Консольные приложения позволяют выполнять вывод на "консоль", то есть в окно командного процессора.
    2. Windows-приложения, использующие элементы интерфейса Windows, включая формы, кнопки, флажки и т.д.
    3. Web-приложения представляют собой web-страницы, которые могут просматриваться любым web-браузером.
    4. Web-сервисы представляют собой распределенные приложения, которые позволяют обмениваться по Интернету практически любыми данными с использованием единого синтаксиса независимо от того, какой язык программирования применялся при создании web-службы и на какой системе она размещена.

    Приложение, находящееся в процессе разработки, называется проектом. Несколько приложений могут быть объединены в решение (solution).

    Удобной средой разработки приложений является Visual Studio .Net.

    Среда разработки Visual Studio .Net

    В данном курсе мы будем изучать язык С#. Знакомство с языком начнем с разработки консольных приложений. В качестве среды разработки мы будем использовать Visual Studio . Net (VS).

    Можно создавать файлы с исходным кодом на С# с помощью обычного текстового редактора, например, Блокнота, и компилировать их в управляемые модули с помощью компилятора командной строки, который является составной частью. NET Framework. Однако наиболее удобно для этих целей использовать VS, потому что:

    1. VS автоматически выполняет все шаги, необходимые для компиляции исходного кода.
    2. Текстовый редактор VS настроен для работы с теми языками, которые поддерживаются VS, например С#, поэтому он может интеллектуально обнаруживать ошибки и подсказывать в процессе ввода, какой именно код необходим.
    3. В состав VS входят программы, позволяющие создавать Windows- и Web-приложения путем простого перетаскивания мышью элементов пользовательского интерфейса.
    4. Многие типы проектов, создание которых возможно на С#, могут разрабатываться на основе "каркасного" кода, заранее включаемого в программу. Вместо того чтобы каждый раз начинать с нуля, VS позволяет использовать уже имеющиеся файлы с исходным кодом, что уменьшает временные затраты на создание проекта.

    Создание первого проекта

    Для создания проекта следует запустить VS, а затем в главном меню VS выбрать команду File – New - Project. После чего откроется диалоговое меню New Project (см. рис.1.1).


    Рис. 1.1.

    В поле Project types следует выбрать Visual C# , в поле Templates Console Application .

    В строчке Name введите имя приложения Hello . Обратите внимание на то, что это же имя появится в строчке Solution Name . Уберите галочку в поле Create directory for Application (пока мы создаем простое приложение, и нам нет необходимости усложнять его структуру).

    В строке Location определите положение на диске, куда нужно сохранять ваш проект. И нажмите кнопку OK . Примерный вид экрана изображен на рис 1.2


    Рис. 1.2.

    В правой верхней части располагается окно управления проектом Solution Explorer View - Solution Explorer . В этом окне перечислены все ресурсы, входящие в проект:

    1. AssemblyInfo.cs – информация о сборке .

      Компилятор в качестве результата своего выполнения создает так называемую сборку – файл с расширением exe или dll, который содержит IL-код и метаданные.

    2. System , System.Data , System.Xml – ссылки на стандартные библиотеки.
    3. Program.cs - текст программы на языке C#.

    Замечание . В других версиях VS сюда же включается файл с расширением ico, отвечающий за вид ярлыка приложения.

    В правой нижней части экрана располагается окно свойств Properties . Если оно закрыто, то его можно включить командой View - Properties . В этом окне отображаются важнейшие характеристики выделенного элемента.

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

    Текст структурирован. Щелкнув на знак минус, мы скроем блок кода, щелкнув на знаке плюс – откроем.

    Откроем папку, содержащую проект, и рассмотрим ее структуру (см. рис.1.3). Файлы, выделенные жирным шрифтом, появятся только после компиляции.


    Рис. 1.3.

    На данном этапе особый интерес для нас будут представлять следующие файлы:

    1. Hello.sln – основной файл, отвечающий за весь проект. Если необходимо открыть проект для редактирования, то нужно выбрать именно этот файл. Остальные файлы откроются автоматически.
    2. Program.cs – файл, в котором содержится исходный код - код, написанный на языке С#. Именно с этим файлом мы и будем непосредственно работать.
    3. Hello.exe – файл, в котором содержатся сгенерированный IL-код и метаданные проекта. Другими словами, этот файл и есть готовое приложение, которое может выполняться на любом компьютере, на котором установлена платформа.Net.

    Теперь рассмотрим сам текст программы.

    using System – это директива, которая разрешает использовать имена стандартных классов из пространства имен System непосредственно без указания имени пространства, в котором они были определены.

    Ключевое слово namespace создает для проекта свое собственное пространство имен, которое по умолчанию называется именем проекта. В нашем случае пространство имен называется Hello. Однако программист вправе указать другое имя. Пространство имен ограничивает область применения имен, делая его осмысленным только в рамках данного пространства. Это сделано для того, чтобы можно было давать имена программным объектам, не заботясь о том, что они совпадут с именами в других приложениях. Таким образом, пространства имен позволяют избегать конфликта имен программных объектов, что особенно важно при взаимодействии приложений.

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

    Данный класс содержит только один метод - метод Main() . Метод Main() является точкой входа в программу, т.е. именно с данного метода начнется выполнение приложения. Каждая программа на языке С# должна иметь метод Main () .

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

    Debug-Start Debugging .Если программа выполнена без ошибок, то сообщение выведется в консольное окно, которое мелькнет и быстро закроется. Чтобы просмотреть сообщение в нормальном режиме нужно нажать клавиши Ctrl+F5 или выполнить команду Debug-Start Without Debugging .В нашем случае откроется следующее консольное окно:

    Если код программы будет содержать ошибки, например, пропущена точка с запятой после команды вывода, то после нажатия клавиши F5 откроется диалоговое окно, в котором выведется сообщение о том, что обнаружена ошибка, и вопрос, продолжать ли работу дальше. Если вы ответите Yes , то будет выполнена предыдущая удачно скомпилированная версия программы. Иначе процесс будет остановлен и управление передано окну списка ошибок Error List .

    Задание . Измените текст кода так, чтобы на экран выводилось сообщение: Ура!!!Сегодня информатика!! !

    Понравилась статья? Поделитесь ей