Что такое. Какие типы приложений можно строить на платформе

Что такое. Какие типы приложений можно строить на платформе

Доброго времени суток. На связи Алексей Гулынин. В прошлой статье мы познакомились со способами передачи аргументов методу в 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 Framework – это мощнейшая платформа для разработки приложений, она дает возможность разрабатывать приложения совершенно различного типа.

· настольные приложения (приложения, которые запускаются на локальном компьютере пользователя);

· веб-приложения (приложения, которые работают в рамках веб-сервера и доступны пользователю через браузер в рамках протокола HTTP/HTTPS);

· веб-приложения с богатым пользовательским интерфейсом (приложения, которые доставляются пользователю по протоколу HTTP/HTTPS в рамках браузера и исполняются на клиентской стороне);

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

· мобильные приложения (приложения, которые выполняются на мобильных устройствах).

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

· для работы со строками;

· для работы с математическими функциями;

· для работы с графикой;

· доступа к данным;

· для работы с файлами и другими операциями ввода-вывода;

· для выполнения криптографических операций;

· для организации синхронизации данных между источниками данных;

· и огромное количество других библиотек.

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

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

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

Для построения приложений с оконным графическим интерфейсом в рамках платформы.NET Framework могут использоваться технологии Windows Forms (доступно начиная с.NET Framework 1.0) и Windows Presentation Foundation (доступно начиная с.NET Framework 3.0). Последняя технология является более новой и перспективной.


Веб-приложения отличаются от настольных тем, что работают удаленно на веб-сервере. Пользователь использует возможности веб-приложений посредством браузера и протокола HTTP /HTTPS. Преимуществом этого типа приложений является то, что нет никакой необходимости устанавливать их на компьютер каждого пользователя – приложение нужно установить на веб-сервер , после чего оно становится доступным для всех пользователей. Однако, недостатком таких приложений является ограниченные возможности построения пользовательских интерфейсов. Это происходит из-за того, что пользовательский интерфейс строится на основе форматов HTML , CSS и JavaScript, которые являются достаточно ограниченными. Поэтому функциональность пользовательских интерфейсов обычно является достаточно ограниченной.

Поскольку веб-приложения обладают серьезным недостатком – ограниченными возможностями по формированию интерфейса пользователя – появился новый тип приложений, который называется богатые интернет-приложения или интернет-приложения с богатым пользовательским интерфейсом (Rich Internet Applications, RIA) . Идеология этих приложений состоит в том, что в браузер интегрируется специальное дополнение (plugin), которое способно отображать дополнительный тип содержимого . После этого, когда пользователь отрывает страницу в браузере, на сторону клиента передается программный код, который работает в рамках этого дополнения. Поскольку в этом случае весь код отрабатывает на стороне клиента, у разработчиков появляется больше возможностей по формированию пользовательских интерфейсов.

Для построения подобного типа приложений существует несколько технологий. Одна из наиболее известных технологий – это технология Adobe Flash . Кроме того, существует также технология Microsoft Silverlight, которая позволяет наиболее удобно интегрироваться с остальными технологиями в рамках.NET Framework.

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

В рамках платформы.NET Framework существует ряд технологий, которые позволяют создавать сервисы. Наиболее старой технологией является ASP .NET Web Services. Она позволяет создавать простые веб-сервисы, которые работают по протоколуHTTP /HTTPS. Дальнейшим развитием стала технология Windows Communication Foundation (WCF). Эта платформа является наиболее мощным и гибким инструментом, которая поддерживает различные типы каналов (HTTP , TCP , именованные каналы и др.) и существенно расширяет возможности разработчика по созданию сервисов.

Также существуют дополнительные ответвления проекта WCF – это WCF Syndication Extensions (WCF REST) и ADO .NET Data Services. Эти проекты разработаны для того, чтобы можно было удобно строить сервисы доступа к данным.

Наконец, последним типом приложений являются мобильные приложения . Мобильные приложения работают в рамках мобильных устройств на базе операционной системы Windows Mobile . Для мобильных устройств также существует реализация подмножества возможностей.NET Framework, которая называется.NET Compact Framework.

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

Введение

ПЛАТФОРМА - это как минимум среда выполнения программ и… ещё что-либо, что определяет особенности разработки и выполнения программного кода – парадигмы программирования, языки программирования, множества базовых классов.

Microsoft.NET (.NET Framework) – программная платформа. Содержит следующие основные компоненты: the common language runtime (CLR) and the .NET Framework class library (.NET FCL).

CLS (Common Language Specification) – общая спецификация языков программирования. Это набор конструкций и ограничений, которые являются руководством для создателей библиотек и компиляторов в среде.NET Framework. Библиотеки, построенные в соответствии с CLS, могут быть использованы из любого языка программирования, поддерживающего CLS. Языки, соответствующие CLS (к их числу относятся языки Visual C#, Visual Basic, Visual C++), могут интегрироваться друг с другом. CLS – это основа межъязыкового взаимодействия в рамках платформы Microsoft.NET.

CLR (Common Language Runtime) – Среда Времени Выполнения или Виртуальная Машина. Обеспечивает выполнение сборки. Основной компонент.NET Framework. Под Виртуальной Машиной понимают абстракцию инкапсулированной (обособленной) управляемой операционной системы высокого уровня, которая обеспечивает выполнение программного кода и предполагает решение следующих задач:

§ управление кодом (загрузку и выполнение),

§ управление памятью при размещении объектов,

§ изоляцию памяти приложений,

§ проверку безопасности кода,

§ преобразование промежуточного языка в машинный код,

§ доступ к метаданным (расширенная информация о типах),

§ обработка исключений, включая межъязыковые исключения,

§ взаимодействие между управляемым и неуправляемым кодом (в том числе и COM-объектами),

§ поддержка сервисов для разработки (профилирование, отладка и т.д.).

Короче, CLR – это набор служб, необходимых для выполнения сборки. При этом программный код сборки может быть как управляемым (код, при выполнении которого CLR, в частности, активизирует систему управления памяти), так и неуправляемым (“старый” программный код).

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

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

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

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

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

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

§ обеспечивает компиляцию кода на промежуточном языке (IL) в платформозависимые инструкции (ассемблерный код),

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

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

FCL (.NET Framework Class Library) – соответствующая CLS спецификации объектно-ориентированная библиотека классов, интерфейсов и системы типов (типов-значений), которые включаются в состав платформы Microsoft .NET.

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

NET библиотека классов является вторым компонентом CLR.

NET FCL могут использовать ВСЕ.NET-приложения, независимо от назначения, архитектуры, используемого при разработке языка программирования. В частности, содержит:

§ встроенные (элементарные) типы, представленные в виде классов (на платформе.NET всё построено на структурах или классах),

§ классы для разработки графического пользовательского интерфейса (Windows Form),

§ классы для разработки Web-приложений и Web-служб на основе технологии ASP.NET (Web Forms),

§ классы для разработки XML и Internet-протоколами (FTP, HTTP, SMTP, SOAP),

§ классы для разработки приложений, работающих с базами данных (ADO.NET),

§ и многое другое.

NET-приложение – приложение, разработанное для выполнения на платформе Microsoft.NET. Реализуется на языках программирования, соответствующих CLS.

MSIL (Microsoft Intermediate Language, он же IL – Intermedia Language) – промежуточный язык платформы Microsoft.NET. Исходные тексты программ для.NET приложений пишутся на языках программирования, соответствующих спецификации CLS. Для языков программирования, соответствующих спецификации CLS может быть построен преобразователь в MSIL. Таким образом, программы на этих языках могут транслироваться в промежуточный код на MSIL. Благодаря соответствию CLS, в результате трансляции программного кода, написанного на разных языках, получается совместимый IL код.

Фактически MSIL является ассемблером виртуального процессора.

МЕТАДАННЫЕ - при преобразовании программного кода в MSIL также формируется блок МЕТАДАННЫХ, содержащий информацию о данных, используемых в программе. Фактически это наборы таблиц, содержащих информацию о типах данных, определяемых в модуле, о типах данных, на которые ссылается данный модуль. Ранее такая информация сохранялась отдельно. Например, приложение могло включать информацию об интерфейсах, которая описывалась на Interface Definition Language (IDL). Теперь метаданные являются частью управляемого модуля.

В частности, метаданные используются для:

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

§ верификации кода в процессе выполнения модуля,

§ управления динамической памятью (освобождение памяти) в процессе выполнения модуля,

§ при разработке программы стандартными инструментальными средствами (Microsoft Visual Studio.NET)

§ на основе метаданных обеспечивается динамическая подсказка (IntelliSense).

Языки, для которых реализован перевод на MSIL:

и ещё много других языков.

Исполняемый модуль - независимо от компилятора (и входного языка) результатом трансляции.NET приложения является управляемый исполняемый модуль (управляемый модуль). Это стандартный переносимый исполняемый (PE – Portable Executable) файл Windows.

Элементы управляемого модуля представлены в таблице.

Управляемый модуль содержит управляемый код.

Управляемый код - это код, который выполняется в среде CLR. Код строится на основе объявляемых в исходном модуле структур и классов, содержащих объявления методов. Управляемому коду должен соответствовать определенный уровень информации (метаданных) для среды выполнения. Код C#, Visual Basic, и JScript является управляемым по умолчанию. Код Visual C++ не является управляемым по умолчанию, но компилятор может создавать управляемый код, для этого нужно указать аргумент в командной строке(/CLR). Одной из особенностей управляемого кода является наличие механизмов, которые позволяют работать с УПРАВЛЯЕМЫМИ ДАННЫМИ.

Управляемые данные - объекты, которые в ходе выполнения кода модуля размещаются в управляемой памяти (в управляемой куче) и уничтожаются сборщиком мусора CLR. Данные C#, Visual Basic и JScript .NET являются управляемыми по умолчанию. Данные C# также могут быть помечены как неуправляемые.

Сборка (Assembly) - базовый строительный блок приложения в.NET Framework. Управляемые модули объединяются в сборки. Сборка является логической группировкой одного или нескольких управляемых модулей или файлов ресурсов. Управляемые модули в составе сборок исполняются в Среде Времени Выполнения (CLR). Сборка может быть либо исполняемым приложением (при этом она размещается в файле с расширением.EXE), либо библиотечным модулем (в файле с расширением.DLL). При этом ничего общего с обычными (старого образца!) исполняемыми приложениями и библиотечными модулями сборка не имеет.

Декларация сборки (Manifest) - составная часть сборки. Ещё один набор таблиц метаданных, который:

§ идентифицирует сборку в виде текстового имени, её версию, культуру и цифровую сигнатуру (если сборка разделяется среди приложений),

§ определяет входящие в состав файлы (по имени и хэшу),

§ указывает типы и ресурсы, существующие в сборке, включая описание тех, которые экспортируются из сборки,

§ перечисляет зависимости от других сборок,

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

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

Процессор НЕ МОЖЕТ выполнять IL код. И перевод IL кода осуществляется JIT-компилятором (just in time – в нужный момент), который активизируется CLR по мере необходимости и выполняется процессором. При этом результаты деятельности JIT-компилятора сохраняются в оперативной памяти. Между фрагментом оттранслированного IL кода и соответствующим блоком памяти устанавливается соответствие, которое в дальнейшем позволяет CLR передавать управление командам процессора, записанным в этом блоке памяти, минуя повторное обращение к JIT-компилятору.

В среде CLR допускается совместная работа и взаимодействие компонентов программного обеспечения, реализованных на различных языках программирования.

На основе ранее сформированного блока метаданных CLR обеспечивает ЭФФЕКТИВНОЕ взаимодействие выполняемых.NET приложений.

Для CLR все сборки одинаковы, независимо от того на каких языках программирования они были написаны. Главное – это чтобы они соответствовали CLS. Фактически CLR разрушает границы языков программирования (cross-language interoperability). Таким образом, благодаря CLS и CTS .NET-приложения фактически оказываются приложениями на MSIL (IL).

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

§ проверка и динамическая (JIT) компиляция MSIL кода в команды процессора,

§ управление памятью, процессами и потоками,

§ организация взаимодействия процессов,

§ решение проблем безопасности (в рамках существующей в системе политики безопасности).

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

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

Обычный процесс запускается системой в рамках специально выделяемого процессу адресного пространства. CLR предоставляет возможность выполнения множества управляемых приложений в ОДНОМ ПРОЦЕССЕ. Каждое управляемое приложение связывается с собственным доменом приложения (сокращенно AppDomain). В приложении помимо основного домена может быть создано несколько дополнительных доменов.

Структура среды выполнения CLR представлена на картинке.

Свойства доменов:

§ домены изолированы друг от друга. Объекты, созданные в рамках одного домена недоступны из другого домена,

§ CLR способна выгружать домены вместе со всеми сборками, связанными с этими доменами,

§ возможна дополнительная конфигурация и защита доменов,

§ для обмена данными между доменами реализован специальный механизм безопасного доступа (маршалинг).

§ В.NET Framework разработана собственная компонентная модель, элементами которой являются.NET-сборки (.NET-assembly), а для прямой и обратной совместимости с моделью COM/COM+ в CLR встроены механизмы (COM Interop), обеспечивающие доступ к COM-объектам по правилам.NET и к.NET-сборкам по правилам COM. При этом для.NET-приложений не требуется регистрации компонентов в системном реестре Windows.

Для выполнения.NET-приложения достаточно разместить относящиеся к данному приложению сборки в одном каталоге. Если при этом сборка может быть использована в нескольких приложениях, то она размещается и регистрируется с помощью специальной утилиты в GAC (Global Assembly Cache Общем КЭШе сборок).

CTS - Common Type System Стандартная Система Типов. Поддерживается всеми языками платформы. В силу того, что.NET дитя ООП – то речь здесь идёт об элементарных типах, классах, структурах, интерфейсах, делегатах и перечислениях.

Common Type System является важной частью среды выполнения, определяет структуру синтаксических конструкций, способы объявления, использования, и применения ОБЩИХ типов среды выполнения. В CTS сосредоточена основная информация о системе ОБЩИХ ПРЕДОПРЕДЕЛЁННЫХ типов, об их использовании и управлении (правилах преобразования значений). CTS играет важную роль в деле интеграции разноязыких управляемых приложений.

Пространство имён – это способ организации системы типов в единую группу. Существует общая общеязыковая библиотека базовых классов. И концепция пространства имён обеспечивает эффективную организацию и навигацию в этой библиотеке. Вне зависимости от языка программирования доступ к определённым классам обеспечивается за счёт их группировки в рамках общих пространств имён.

Пространство имён Назначение
System
System.Data Для обращения к базам данных
System.Data.Common
System.Data.OleDb
System.Data.SqlClient
System.Collections Классы для работы с контейнерными объектами
System.Diagnostics Классы для трассировки и отладки кода
System.Drawing Классы графической поддержки
System.Drawing.Drawing2D
System.Drawing.Printing
System.IO Поддержка ввода-вывода
System.Net Поддержка передачи данных по сетям
System.Reflection Работа с пользовательскими типами во время выполнения приложения
System.Reflection.Emit
System.Runtime.InteropServices Поддержка взаимодействия с “обычным кодом” – DLL, COM-серверы, удалённый доступ
System.Runtime.Remoting
System.Security Криптография, разрешения
System.Threading Работа с потоками
System.WEB Работа с web-приложениями
System.Windows.Form Работа с элементами интерфейса Windows
System.XML Поддержка данных в формате XML

Выполнение неуправляемых исполняемых модулей (обычные Windows приложения), обеспечивается непосредственно системой Windows. Неуправляемые модули выполняются в среде Windows как “простые” процессы. Единственное требование, которому должны отвечать подобные модули – корректная работа в среде Windows. Они должны “правильно” работать (не вешать систему, не допускать утечек памяти, не блокировать другие процессы и корректно использовать средства самой ОС для работы от имени процессов). То есть, соответствовать наиболее общим правилам работы под Windows.

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

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

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

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

Программа на C#

Программа – правильно построенная (не вызывающая возражений со стороны C# компилятора) последовательность предложений, на основе которой формируется сборка.

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

§ Portable Executable File (PE-файл с расширением.exe), пригоден к непосредственному исполнению CLR,

§ Dynamic Link Library File (DLL-файл с расширением.dll), предназначен для повторного использования как компонент в составе какого-либо приложения.

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

Понятие о среде. Факторы среды и их классификация

Термин «среда» в экологии применяется в широком и узком смысле слова. В широком смысле слова среда - это окружающая среда. Окружающая среда - это совокупность всех условий жизни, которые существуют на планете Земля. Американский биолог П.Эрлих в своей книге «Демографический взрыв», которая вышла в свет в конце 60-х годов, так образно охарактеризовал окружающую среду: «Наша окружающая среда - единственная в своем роде «кожа» из почвы, воды и газообразной атмосферы, минеральных питательных веществ и живых организмов, покрывающая ничем в остальном особо не примечательную планету». Среда в узком смысле слова - это среда обитания. Среда обитания - это та часть природы, которая окружает организм и с которой он непосредственно взаимодействует. Среда обитания каждого организма многообразна и изменчива. Она слагается из множества элементов живой и неживой природы и элементов, привносимых человеком в результате его хозяйственной деятельности.
Все элементы среды по отношению к организму неравнозначны: одни из них влияют на его жизнедеятельность, а другие для него безразличны. В связи с этим все элементы среды сгруппировать следующим образом.
1. Нейтральные факторы - это те элементы среды, которые не влияют на организм и не вызывают у него никакой реакции.
2. Экологические факторы - это те элементы среды, которые способны прямо или косвенно оказывать влияние на организм хотя бы на протяжении одной из фаз его индивидуального развития и вызывать у него специфическую приспособительную реакцию.
Экологические факторы среды многообразны, они имеют разную природу и специфику действия. По значимости для организма их подразделяют на две группы:
1. Условия существования или условия жизни - это те экологические факторы, без которых организм существовать не может и с которыми он находится в неразрывном единстве. Отсутствие хотя бы одного из этих факторов приводит к гибели организма.
2. Второстепенные факторы - это те экологические факторы, которые не являются жизненно важными, но могут видоизменять существование организма, улучшая или ухудшая его.
Анализ огромного разнообразия экологических факторов по природе их происхождения позволяет разделить их на три большие группы, в каждой из которых в свою очередь можно выделить подгруппы:
I. Абиотические факторы - это факторы неживой природы, которые прямо или косвенно влияют на организм. Они подразделяются на четыре подгруппы:
а) климатические факторы - это все факторы, которые формируют климат и способны влиять на жизнь организмов (свет, температура, влажность, атмосферное давление, скорость ветра и т.д.);
б) эдафические, или почвенные, факторы - это свойства почвы, которые оказывают влияние на жизнь организмов. Они в свою очередь разделяются на физические (механический состав, комковатость, капиллярность, скважность, воздухо- и влагопроницаемость, воздухо- и влагоемкость, плотность, цвет и т.д.) и химические (кислотность, минеральный состав, содержание гумуса) свойства почвы;
в) орографические факторы, или факторы рельефа, - это влияние характера и специфики рельефа на жизнь организмов (высота местности над уровнем моря, широта местности по отношению к экватору, крутизна местности - это угол наклона местности к горизонту, экспозиция местности - это положение местности по отношению к сторонам света);
г) гидрофизические факторы - это влияние воды во всех состояниях (жидкое, твердое, газообразное) и физических факторов среды (шум, вибрация, гравитация, магнитное, электромагнитное и ионизирующее излучения) на жизнь организмов.
II. Биотические факторы - это факторы живой природы, влияние живых организмов друг на друга. Они носят самый разнообразный характер и действуют не только непосредственно, но и косвенно через окружающую неорганическую природу. В зависимости от вида воздействующего организма их разделяют на две группы:
а) внутривидовые факторы - это влияние особей этого же вида на организм (зайца на зайца, сосны на сосну и т.д.);
б) межвидовые факторы - это влияние особей других видов на организм (волка на зайца, сосны на березу и т.д.).
В зависимости от принадлежности к определенному царству биотические факторы подразделяют на четыре основные группы:
а) фитогенные факторы - это влияние растений на организм;
б) зоогенные факторы - это влияние животных на организм;
в) микробогенные факторы - это влияние микроорганизмов (вирусы, бактерии, простейшие, риккетсии) на организм;
г) микогенные факторы - это влияние грибов на организм.
III. Антропогенные факторы - это совокупность воздействий человека на жизнь организмов. В зависимости от характера воздействий они делятся на две группы:
а) факторы прямого влияния - это непосредственное воздействие человека на организм (скашивание травы, вырубка леса, отстрел животных, отлов рыбы и т.д.);
б) факторы косвенного влияния - это влияние человека фактом своего существования (ежегодно в процессе дыхания людей в атмосферу поступает 1,1х1012 кг углекислого газа и из окружающей среды в виде пищи изымается 2,7х1015 ккал энергии) и через хозяйственную деятельность (сельское хозяйство, промышленность, транспорт, бытовая деятельность и т.д.).
В зависимости от последствий воздействия обе эти группы антропогенных факторов в свою очередь еще подразделяются на положительные факторы (посадка и подкормка растений, разведение и охрана животных, охрана окружающей среды и т.д.), которые улучшают жизнь организмов или увеличивают их численность, и отрицательные факторы (вырубка деревьев, загрязнение окружающей среды, разрушение местообитаний, прокладка дорог и других коммуникаций), которые ухудшают жизнь организмов или снижают их численность.
Оригинальную классификацию экологических факторов по степени их постоянства, т.е. по их периодичности, предложил А.С.Мончадский. Согласно этой классификации различают следующие три группы факторов.
1. Первичные периодические факторы - это факторы, действие которых началось до появления жизни на Земле и живые организмы должны были сразу к ним адаптироваться (суточная периодичность освещенности, сезонная периодичность времен года, лунные ритмы и т.д.).
2. Вторичные периодические факторы - это факторы, являющиеся следствием первичных периодических факторов (влажность, температура, динамика пищи, содержание газов в воде и т.д.).
3. Непериодические факторы - это факторы, не имеющие правильной периодичности или цикличности (эдафические факторы, антропогенные факторы, содержание загрязняющих веществ в воде, атмосфере или почве и т.д.).
В зависимости от характера изменения во времени факторы среды подразделяются также на три группы:
1. Регулярно-периодические факторы - это факторы, меняющие свою силу в зависимости от времени суток, сезона года или ритма приливов и отливов (освещенность, температура, длина светового дня и т.д.).
2. Нерегулярные факторы - это факторы, не имеющие четко выраженной периодичности (климатические факторы в разные годы, факторы катастрофического происхождения в результате наводнения, урагана, землетрясения и т.д.).
3. Направленные факторы - это факторы, действующие на протяжении длительного промежутка времени в одном направлении (похолодание или потепление климата, зарастание водоема, выпас скота на одном месте и т.д.).
По характеру ответной реакции организма на воздействие экологического фактора различают следующие группы экологических факторов:
1. Раздражители - это факторы, вызывающие приспособительные изменения физиологических функций и биохимических реакций.
2. Модификаторы - это факторы, вызывающие приспособительные анатомические и морфологические изменения в организме.
3. Ограничители - это факторы, обусловливающие невозможность существования в данных условиях и ограничивающие среду распространения организма.
4. Сигнализаторы - это факторы, свидетельствующие об изменении других факторов и выступающие в роли предупредительного сигнала.
В зависимости от возможности потребления при взаимодействии с организмом экологические факторы подразделяют на две категории:
1. Условия - это изменяющиеся во времени и пространстве экологические факторы среды обитания, на которые организм реагирует по-разному в зависимости от силы фактора (температура, влажность, атмосферное давление, физические свойства почвы и т.д.). Условия организмом не расходуются и не исчерпываются.
2. Ресурсы - это все экологические факторы среды обитания, которые организм потребляет, потребляет в том смысле, что количество их (наличный запас) в результате взаимодействия с организмом может уменьшиться. Ресурсы - это по преимуществу вещества, из которых состоит тело организма, энергия, вовлекаемая в процессы его жизнедеятельности, а также места, где протекают те или иные фазы его жизненного цикла.
Помимо приведенных выше классификаций экологических факторов в экологии применяются и другие классификации, в основу которых берутся различные критерии в зависимости от интересов исследователя.

Платформа.NET Framework - это один из компонентов системы Windows. Он позволяет создавать и использовать приложения нового поколения. Назначение платформы .NET Framework :

  • создание целостной объектно-ориентированной среды программирования допускающей различные варианты реализации: код может храниться и выполняться локально; выполняться локально, а распространяться через Интернет; или выполняться удаленно;
  • предоставление среды выполнения кода, в которой число конфликтов при развертывании программного обеспечения и управлении версиями будет сведено к минимуму;
  • обеспечение безопасности выполнения кода в среде - в том числе кода, созданного неизвестным разработчиком или разработчиком с частичным доверием;
  • предоставление среды выполнения кода, позволяющей устранить проблемы, связанные с производительностью сред на основе сценариев или интерпретации;
  • унификация работы разработчиков в совершенно разных приложениях: как в приложениях Windows, так и в веб-приложениях;
  • использование промышленных стандартов во всех областях обмена данными и, как следствие, обеспечения совместимости кода, созданного в.NET Framework, с другими программами.