Язык программирования на платформе net

Во время выполнения программы в среде CLR её CIL-код компилируется и кэшируется на лету в машинный код, соответствующий архитектуре, на которой выполняется программа. Этот последний этап может быть принудительно сокращен, а кэширование может выполняться на предыдущем этапе при помощи «опережающего» (англ. ahead of time ) компилятора, такого как например, ngen.exe от Microsoft или ключа «-aot» в Mono.

Содержание

Список языков

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

См. также

Примечания

Ссылки

Список языков описания пользовательских интерфейсов — Содержание 1 По производителю или платформе 1.1 Flash 1.2 Java 1.3 Microsof … Википедия

Список языков программирования — Списки языков программирования Алфавитный По категориям Хронологический Генеалогический Цель этого алфавитного списка языков программирования состоит в том, чтобы дать полный перечень всех существующих языков программирования, как используемых в… … Википедия

Список версий Ubuntu — Основная статья: Ubuntu Ubuntu свободная операционная система для персональных компьютеров, рабочих станций, нетбуков и серверов, является одним из самых популярных дистрибутивов Linux. Новая версия системы выходит раз в полгода … Википедия

Список дистрибутивов Linux — Эта статья или раздел нуждается в переработке. Пожалуйста, улучшите статью в соответствии с правилами написания статей … Википедия

Список языков Индии — В Индии говорят более чем на 30 различных языках и 2000 диалектов. В Конституции Индии оговорено, что хинди и английский являются двумя языками работы национального правительства, то есть государственными языками. Кроме того представлен… … Википедия

Список текстовых редакторов — Основная статья: Текстовый редактор Список текстовых редакторов Windows и таблица сравнения. Содержание 1 Таблица сравнения известных текстовых редакторов … Википедия

Список Сводеша для лезгинских языков — Эта статья предлагается к удалению. Пояснение причин и соответствующее обсуждение вы можете найти на странице Википедия:К удалению/17 июля 2012. Пока процесс обсуждения … Википедия

Список встраиваемых дополнений для Microsoft Visual Studio — Ниже представлен список встраиваемых дополнений для Microsoft Visual Studio. Встраиваемые дополнения представляют собой программные продукты, разработанные для использования в составе Microsoft Visual Studio, расширяя и дополняя его возможности.… … Википедия

Источник

Обеспечение согласованной объектно-ориентированной среды программирования для локального сохранения и выполнения объектного кода, для локального выполнения кода, распределенного в Интернете, либо для удаленного выполнения. Provide a consistent, object-oriented programming environment whether object code is stored and executed locally, executed locally but web-distributed, or executed remotely.

Предоставление среды выполнения кода, в которой: Provide a code-execution environment that:

сведена к минимуму вероятность конфликтов в процессе развертывания программного обеспечения и управления его версиями; Minimizes software deployment and versioning conflicts.

гарантируется безопасное выполнение кода, включая код, созданный неизвестным или не полностью доверенным сторонним изготовителем; Promotes safe execution of code, including code created by an unknown or semi-trusted third party.

исключаются проблемы с производительностью сред выполнения скриптов или интерпретируемого кода; Eliminates the performance problems of scripted or interpreted environments.

обеспечиваются единые принципы разработки для разных типов приложений, таких как приложения Windows и веб-приложения; Make the developer experience consistent across widely varying types of apps, such as Windows-based apps and Web-based apps.

Например, ASP.NET размещает среду выполнения и обеспечивает масштабируемую среду для управляемого кода на стороне сервера. For example, ASP.NET hosts the runtime to provide a scalable, server-side environment for managed code. ASP.NET работает непосредственно со средой выполнения, чтобы обеспечить выполнение приложений ASP.NET и веб-служб XML, обсуждаемых ниже в этой статье. ASP.NET works directly with the runtime to enable ASP.NET apps and XML web services, both of which are discussed later in this article.

Обозреватель Internet Explorer может служить примером неуправляемого приложения, размещающего среду выполнения (в виде расширений типов MIME). Internet Explorer is an example of an unmanaged app that hosts the runtime (in the form of a MIME type extension). Размещение среды выполнения в обозревателе Internet Explorer позволяет внедрять управляемые компоненты или элементы управления Windows Forms в HTML-документы. Using Internet Explorer to host the runtime enables you to embed managed components or Windows Forms controls in HTML documents. Такое размещение среды позволяет выполнять управляемый мобильный код и пользоваться его существенными преимуществами, в частности выполнением в условиях неполного доверия и изолированным хранением файлов. Hosting the runtime in this way makes managed mobile code possible, but with significant improvements that only managed code offers, such as semi-trusted execution and isolated file storage.

На следующем рисунке демонстрируется взаимосвязь среды CLR и библиотеки классов с пользовательскими приложениями и всей системой. The following illustration shows the relationship of the common language runtime and the class library to your apps and to the overall system. На рисунке также показано, как управляемый код работает в пределах более широкой архитектуры. The illustration also shows how managed code operates within a larger architecture.

Язык программирования на платформе net. Смотреть фото Язык программирования на платформе net. Смотреть картинку Язык программирования на платформе net. Картинка про Язык программирования на платформе net. Фото Язык программирования на платформе net

Возможности среды CLR Features of the common language runtime

Среда CLR управляет памятью, выполнением потоков, выполнением кода, проверкой безопасности кода, компиляцией и другими системными службами. The common language runtime manages memory, thread execution, code execution, code safety verification, compilation, and other system services. Эти средства являются внутренними для управляемого кода, который выполняется в среде CLR. These features are intrinsic to the managed code that runs on the common language runtime.

По соображениям безопасности управляемым компонентам присваиваются разные степени доверия, зависящие от ряда факторов, в число которых входит их происхождение (например, Интернет, сеть предприятия или локальный компьютер). Regarding security, managed components are awarded varying degrees of trust, depending on a number of factors that include their origin (such as the Internet, enterprise network, or local computer). Это означает, что управляемый компонент может или не может выполнять операции доступа к файлам, операции доступа к реестру или другие важные функции, даже если он используется в одном и том же активном приложении. This means that a managed component might or might not be able to perform file-access operations, registry-access operations, or other sensitive functions, even if it’s used in the same active app.

Кроме того, управляемая среда выполнения исключает многие часто возникающие проблемы с программным обеспечением. In addition, the managed environment of the runtime eliminates many common software issues. Например, среда выполнения автоматически управляет размещением объектов и ссылками на объекты, освобождая их, когда они больше не используются. For example, the runtime automatically handles object layout and manages references to objects, releasing them when they are no longer being used. Автоматическое управление памятью исключает две наиболее часто возникающие ошибки приложений: утечки памяти и недействительные ссылки на память. This automatic memory management resolves the two most common app errors, memory leaks and invalid memory references.

Хотя среда выполнения разрабатывалась для будущего программного обеспечения, она также поддерживает сегодняшнее и вчерашнее программное обеспечение. While the runtime is designed for the software of the future, it also supports software of today and yesterday. Взаимодействие управляемого и неуправляемого кодов позволяет разработчикам использовать необходимые компоненты COM и библиотеки DLL. Interoperability between managed and unmanaged code enables developers to continue to use necessary COM components and DLLs.

Среда выполнения разработана для повышения производительности. The runtime is designed to enhance performance. Хотя общеязыковая среда выполнения предоставляет многие стандартные службы времени выполнения, управляемый код никогда не интерпретируется. Although the common language runtime provides many standard runtime services, managed code is never interpreted. Средство компиляции по требованию (JIT) позволяет выполнять весь управляемый код на машинном языке компьютера, где он запускается. A feature called just-in-time (JIT) compiling enables all managed code to run in the native machine language of the system on which it’s executing. Между тем диспетчер памяти устраняет возможность фрагментации памяти и увеличивает объем адресуемой памяти для дополнительного повышения производительности. Meanwhile, the memory manager removes the possibilities of fragmented memory and increases memory locality-of-reference to further increase performance.

Наконец, среда выполнения может размещаться в высокопроизводительных серверных приложениях, таких как Microsoft SQL Server и службы IIS (Internet Information Services). Finally, the runtime can be hosted by high-performance, server-side apps, such as Microsoft SQL Server and Internet Information Services (IIS). Такая инфраструктура позволяет использовать управляемый код для написания собственной логики программ, пользуясь при этом высочайшей производительностью лучших производственных серверов, которые поддерживают размещение среды выполнения. This infrastructure enables you to use managed code to write your business logic, while still enjoying the superior performance of the industry’s best enterprise servers that support runtime hosting.

Приложения с графическим интерфейсом Windows (Windows Forms). Windows GUI apps (Windows Forms). См. статью Windows Forms. See Windows Forms.

Приложения Windows Presentation Foundation (WPF). Windows Presentation Foundation (WPF) apps. См. статью Windows Presentation Foundation. See Windows Presentation Foundation.

Сервисноориентированные приложения, использующие Windows Communication Foundation (WCF). Service-oriented apps using Windows Communication Foundation (WCF). См. статью Разработка сервисноориентированных приложений с помощью WCF. See Service-Oriented Applications with WCF.

Приложения, поддерживающие бизнес-процессы Windows Workflow Foundation (WF). Workflow-enabled apps using Windows Workflow Foundation (WF). См. Windows Workflow Foundation. See Windows Workflow Foundation.

Источник

Язык программирования C# является относительно свежим, но он уже успел заслужить доверие. Релиз первой версии состоялся в феврале 2002 года. Крайней версией языка на момент написания статьи является C# 7.2, которая вышла 16.08.2017.

Синтаксис языка C# как следует из названия входит в семейство Си-подобных языков и похож на другие популярных языки из этой группы (C++, Java). Поэтому, если вы уже знакомы с одним из этих языков, вам будет значительно проще освоить языком программирования C#.

Так как C# является объектно-ориентированным языком, то он поддерживает наследование, полиморфизм, инкапсуляцию, строгую типизацию переменных, перегрузку операторов и другое. Все эти понятия будут нами подробно рассмотрены в последующих статьях. Благодаря использованию парадигмы объектно-ориентированного проектирования с помощью языка программирования можно достаточно легко разрабатывать масштабные и при этом гибкие проекты. При всем этом регулярно выходят новые версии языка C#, добавляя новую функциональность для упрощения жизни разработчика, увеличения скорости разработки, повышения производительности и надежности прилоежния.

Управляемый и неуправляемый код. JIT-компиляция

Управляемый код (managed code) – это код управляемый общеязыковой средой CLR. Это означает, что что управляющая среда имеет возможность приостановить выполнение приложения и получить специфическую информацию о состоянии приложения в любой момент его исполнения. Исходный код используемого языка программирования транслируется в управляемый код CIL (его еще называют высокоуровневым ассемблером).

После создания библиотеки классов или приложения, исходный код продолжает храниться на языке CIL. А при запуске приложения или обращении к библиотеке выполняется Just-In-Time ( JIT) компиляция приложения в машинный код, специфичный именно для того окружения, на котором осуществляется исполнение приложения. При этом важной особенностью является то, что выполняется компиляция только той части приложения или библиотеки, к которой выполняется обращение (ну и связей естественно). Это позволяет увеличить производительность работы системы и экономить ресурсы.

Неуправляемый код (unmanaged code) – это код, транслируемый сразу в машинный исполняемый код и исполняется операционной системой напрямую.

Кроме того, рекомендую прочитать статью Что такое WCF служба. А также подписывайтесь на группу ВКонтакте, Telegram и YouTube-канал. Там еще больше полезного и интересного для программистов.

Источник

BestProg

Содержание

Поиск на других ресурсах:

.NET Framework служит средой для поддержки, разработки и выполнения распределенных приложений, которые базируются на компонентах (элементах управления).

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

.NET Framework обеспечивает:

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

3. Какой принцип действия общеязыковой среды выполнения CLR ( Common Language Runtime )?

Основное назначение CLR – превратить промежуточный код MSIL в исполнительный код в процессе выполнения программы.

Язык программирования на платформе net. Смотреть фото Язык программирования на платформе net. Смотреть картинку Язык программирования на платформе net. Картинка про Язык программирования на платформе net. Фото Язык программирования на платформе netРис. 1. Процесс преобразования исходного кода в код на языке MSIL ( CIL или IL ) и создание файла сборки ( *.dll или *.exe )

Исполнительная среда CLR отвечает за определение места размещения сборки (assembly).

Запрашиваемый тип, который размещается в сборке (например, класс ArrayList или другой тип), определяется в двоичном файле ( *.dll или *.exe ) с помощью считывания метаданных этого файла.

После этого CLR размещает в памяти считанный из сборки тип.

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

Последним происходит выполнение запрашиваемого программного кода.

4. Что такое промежуточный язык MSIL ( Microsoft Intermediate Language ) или CIL ( Common Intermediate Language )?

MSIL есть псевдокодом. MSIL определяет набор инструкций, которые:

Фактически, MSIL – это язык переносного ассемблера

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

Сборка может содержать любое количество пространств имен. Любое пространство имен может содержать любое количество типов (классов, интерфейсов, структур, перечислений, делегатов).

6. Что размещается в сборках?
7. Что такое манифест ( manifest )?

Манифест – это описание самой сборки с помощью метаданных.

В манифесте размещается информация:

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

После этого приложение выполняется.

Язык программирования на платформе net. Смотреть фото Язык программирования на платформе net. Смотреть картинку Язык программирования на платформе net. Картинка про Язык программирования на платформе net. Фото Язык программирования на платформе net

9. Какие существуют виды сборок?

Существует два вида сборок:

В многофайловой сборке один из модулей есть главным ( primary ).

10. В каком файле размещается главная сборка библиотеки MS Visual Studio?

Главная сборка размещается в файле “ mscorlib.dll ”.

Типами могут быть классы, интерфейсы, структуры, перечисления, делегаты.

12. Какое назначение общеязыковой спецификации CLS?
14. Что такое пространство имен ( namespace )?

Пространство имен предназначено для объединения группы типов, которые связаны между собою с семантической точки зрения. Типы размещаются в сборках ( assembly ). Под типами понимаются классы, делегаты, интерфейсы, структуры, перечисления.

Примеры названий пространств имен:

Например, в пространстве имен System.Data размещаются основные типы для работы с базами данных, в пространстве имен System.Collections размещаются основные типы для работы с коллекциями.

Язык программирования на платформе net. Смотреть фото Язык программирования на платформе net. Смотреть картинку Язык программирования на платформе net. Картинка про Язык программирования на платформе net. Фото Язык программирования на платформе net

Рис. 3. Вызов утилиты Object Browser

Язык программирования на платформе net. Смотреть фото Язык программирования на платформе net. Смотреть картинку Язык программирования на платформе net. Картинка про Язык программирования на платформе net. Фото Язык программирования на платформе net

Рис. 4. Окно Object Browser с выделенной сборкой mscorlib.dll

Язык программирования на платформе net. Смотреть фото Язык программирования на платформе net. Смотреть картинку Язык программирования на платформе net. Картинка про Язык программирования на платформе net. Фото Язык программирования на платформе net

Рис. 5. Сборка mscorlib и список пространств имен, которые входят в нее

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

Язык программирования на платформе net. Смотреть фото Язык программирования на платформе net. Смотреть картинку Язык программирования на платформе net. Картинка про Язык программирования на платформе net. Фото Язык программирования на платформе net

Рис. 6. Содержимое класса BinaryReader

Примеры подключения пространств имен:

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

Источник

Для совместного использования функциональных возможностей различных приложений и типов приложений используются библиотеки классов. Share functionality among different apps and app types by using class libraries.

Кроссплатформенные Cross platform

Поддерживаемые архитектуры процессоров: Supported processor architectures include:

Открытый исходный код Open source

Поддержка Support

Инструменты и производительность Tools and productivity

Языки программирования Programming languages

C# (произносится как «си шарп») — современный объектно-ориентированный и типобезопасный язык программирования. C# (pronounced «See Sharp») is a modern, object-oriented, and type-safe programming language. C# относится к широко известному семейству языков C, и покажется хорошо знакомым любому, кто работал с C, C++, Java или JavaScript. C# has its roots in the C family of languages and will be immediately familiar to C, C++, Java, and JavaScript programmers.

Язык F# поддерживает функциональные, объектно-ориентированные и императивные модели программирования. The F# language supports functional, object-oriented, and imperative programming models.

Интегрированные среды разработки IDEs

Онлайн-среда Visual Studio Code, которая в настоящее время доступна в виде бета-версии. An online Visual Studio Code environment, currently in beta.

Пакет SDK и среды выполнения SDK and runtimes

Загружаемый пакет SDK содержит следующие компоненты. The SDK download includes the following components:

Загружаемая среда выполнения содержит следующие компоненты. The runtime download includes the following components:

Дополнительные сведения см. в следующих ресурсах: For more information, see the following resources:

Система проектов и MSBuild Project system and MSBuild

И вот один для веб-приложения: And here’s one for a web app:

CI/CD CI/CD

NuGet NuGet

Дополнительные сведения см. в документации NuGet. For more information, see NuGet documentation.

Дополнительные сведения см. в следующих ресурсах: For more information, see the following resources:

Модели выполнения. Execution models

CLR CLR

Для получения дополнительной информации см. Common Language Runtime. For more information, see Common Language Runtime (CLR) overview.

JIT-компилятор и промежуточный язык JIT compiler and IL

Так как JIT-компиляция происходит во время выполнения приложения, время компиляции является частью времени выполнения. Since JIT compilation occurs during execution of the application, the compilation time is part of the run time. Таким образом, JIT-компиляторы должны поддерживать баланс между временем оптимизации кода и экономии, к которой может привести результирующий код. Therefore, JIT compilers have to balance time spent optimizing code against the savings that the resulting code can produce. Но JIT-компилятор знает фактическое оборудование и может освободить разработчиков от поставки различных реализаций для различных платформ. But a JIT compiler knows the actual hardware and can free developers from having to ship different implementations for different platforms.

Компилятор AOT AOT compiler

Автоматическое управление памятью Automatic memory management

Сборщик мусора (GC) управляет выделением и освобождением памяти для приложений. The garbage collector (GC) manages the allocation and release of memory for applications. Каждый раз, когда код создает новый объект, среда CLR выделяет память для объекта из управляемой кучи. Each time your code creates a new object, the CLR allocates memory for the object from the managed heap. Пока в управляемой куче есть доступное адресное пространство, среда выполнения продолжает выделять пространство для новых объектов. As long as address space is available in the managed heap, the runtime continues to allocate space for new objects. Когда остается недостаточное свободное пространство адресов, сборщик мусора проверяет наличие объектов в управляемой куче, которые больше не используются приложением. When not enough free address space remains, the GC checks for objects in the managed heap that are no longer being used by the application. Затем эта память освобождается. It then reclaims that memory.

GC — это одна из служб CLR, которая помогает обеспечить безопасность памяти. The GC is one of the CLR services that help ensure memory safety. Программа является безопасной по памяти, если она обращается только к выделенной памяти. A program is memory safe if it accesses only allocated memory. Например, среда выполнения гарантирует, что приложение не обращается к невыделенной памяти за пределами границ массива. For instance, the runtime ensures that an app doesn’t access unallocated memory beyond the bounds of an array.

Работа с неуправляемыми ресурсами Working with unmanaged resources

Дополнительные сведения см. в разделе Очистка неуправляемых ресурсов. For more information, see Cleaning up unmanaged resources.

Модели развертывания Deployment models

Можно установить несколько версий среды выполнения параллельно, чтобы запускать зависящие от платформы приложения, предназначенные для разных версий среды выполнения. You can install multiple versions of the runtime side by side to run framework-dependent apps that target different versions of the runtime. Дополнительные сведения см. в разделе Целевые платформы. For more information, see Target frameworks.

Исполняемые файлы создаются для конкретных целевых платформ, которые указываются с помощью идентификатора среды выполнения (RID). Executables are produced for specific target platforms, which you specify with a runtime identifier (RID).

Библиотеки среды выполнения. Runtime libraries

Подробнее см. в статье Общие сведения о библиотеках среды выполнения. For more information, see the Runtime libraries overview. Исходный код для библиотек находится в репозитории GitHub dotnet/runtime. The source code for the libraries is in the GitHub dotnet/runtime repository.

Расширения библиотек среды выполнения Extensions to the runtime libraries

Библиотеки для некоторых часто используемых функциональных возможностей приложения не включены в библиотеки среды выполнения, но доступны в пакетах NuGet, как показано ниже. Libraries for some commonly used application functionality aren’t included in the runtime libraries but are made available in NuGet packages, such as the following:

Пакет NuGet NuGet packageДокументация Documentation
Microsoft.Extensions.Hosting Microsoft.Extensions.Hosting Управление жизненным циклом приложения (универсальный узел) Application lifetime management (Generic Host)
Microsoft.Extensions.DependencyInjection Microsoft.Extensions.DependencyInjection Внедрение зависимостей Dependency injection (DI)
Microsoft.Extensions.Configuration Microsoft.Extensions.Configuration Конфигурация Configuration
Microsoft.Extensions.Logging Microsoft.Extensions.Logging Logging Logging
Microsoft.Extensions.Options Microsoft.Extensions.Options Шаблон параметров Options pattern

Доступ к данным Data access

Entity Framework Core Entity Framework Core

LINQ LINQ

LINQ позволяет писать декларативный код для работы с данными. Language-integrated query (LINQ) lets you write declarative code for operating on data. Данные могут быть представлены разными формами (например, объектами в памяти, содержимым базы данных SQL или XML-документом), но обычно создаваемый код LINQ не отличается для каждого из источников данных. The data can be in many forms (such as in-memory objects, a SQL database, or an XML document), but the LINQ code you write typically doesn’t differ by data source.

Уточнение терминологии Overloaded terms

Среда выполнения runtime

платформа framework

Пакет SDK SDK

platform platform

Сложные сценарии Advanced scenarios

Взаимодействие на уровне машинного кода Native interop

Основным способом осуществления взаимодействия с собственными API является «вызов неуправляемого кода» или сокращенно P/Invoke. The main way to interoperate with native APIs is via «platform invoke» or P/Invoke for short. P/Invoke поддерживается на платформах Linux и Windows. P/Invoke is supported across Linux and Windows platforms. Способ, который подходит только для Windows, называется «COM-взаимодействием» и используется для работы с COM-компонентами в управляемом коде. A Windows-only way of interoperating is known as «COM interop,» which works with COM components in managed code. Он основан на инфраструктуре P/Invoke, но работает иначе. It’s built on top of the P/Invoke infrastructure, but it works in subtly different ways.

Дополнительные сведения см. в разделе Взаимодействие на уровне машинного кода. For more information, see Native interoperability.

Небезопасный код Unsafe code

Дополнительные сведения см. в разделе Небезопасный код и указатели. For more information, see Unsafe code and pointers.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *