Веб-фреймворки для начинающих: простое объяснение с примерами
Содержание:
- Предназначение .NET Framework
- В этом разделе
- Связанные разделы
- Сложные сценарии
- .NET Framework FAQ
- What is .NET Framework used for?
- Who uses .NET Framework?
- Why do I need .NET Framework?
- How does .NET Framework work?
- What are the main components/features of .NET Framework?
- What is the difference between .NET Core and .NET Framework?
- Can you have multiple .NET Frameworks installed?
- How much does .NET Framework cost?
- Which version of .NET Framework should I use?
- What is the support policy for .NET Framework?
- Возможности среды CLR
- .NET Framework class library
- Случаи использования .NET
Предназначение .NET Framework
Применяется для разработки приложений, работающих на локальной машине и веб-приложений. На нем могут быть также основаны веб-сервисы. Поддерживает языки программирования, в числе которых: Visual Basic и C#. Предоставляет разработчику выбор языка программирования, который будет использован при создании программы.
Удобство пользователей и разработчиков
С .NET Framework необходимость писать каждую программу «с нуля» отсутствует. Есть готовые фрагменты программного кода. Элементы окон стандартные. Разработчик лишь вставляет текст, формирует меню приложения и определяет, что будет происходит, когда вы нажмете на определенную кнопку.
Не приходится задумываться над особенностями кода, который нужен для поддержки программы операционной системой и для работы с сервисами Майкрософт, к которым относится и магазин приложений Windows Store. Платформа заботится об экономном использовании аппаратных ресурсов компьютера. Поэтому распространенные в начале века ситуации, когда пустяковый на первый взгляд софт загружал оперативную память, стали большой редкостью.
Комфортно и разработчику и вам. Пользователям не приходится каждый раз изучать нестандартный интерфейс софта, рожденного фантазией программиста. Создатели ПО могут сосредоточиться на функционале приложений. Пользователю нужно лишь позаботиться, чтобы на компьютере была установлена среда выполнения .NET Framework.
Универсальная платформа
Microsoft обеспечивает работу основанного на .NET Framework софта во всех поддерживаемых компанией операционных системах.
Степень обратной совместимости ПО высока. Рассмотрю на примере старых версий. Вам нужна программа, основанная на версии 2.0. Запускаете ее на ноутбуке или настольном ПК с поздней версией. И старый софт будет работать.
Основанное на платформе ПО работает на любой Windows с установленным .NET Framework. Встроен механизм безопасности. Осуществляется управлением памятью. Платформа .NET видит те ресурсы, которые не используются работающей программой. Очистит память от ставших ненужными в процессе работы фрагментов.
Для разработчиков предусмотрены инструменты упаковки приложений. Они легко устанавливаются на ПК.
Архитектура .NET Framework
CLI («Common Language Infrastructure») — платформа, на которой выполняются программы. Основные функции CLI:
- Обработка исключений. К ним относятся ошибки, возникающие при работе программы. Приведу примеры:
- Приложение пытается открыть на локальном компьютере файл, который отсутствует
- Приложение обращается к базе данных, а соединение с ней отсутствует
- Чистка мусора, то есть удаление ресурсов, которые больше не нужны. Проверяется, какие ресурсы не используются и производится их освобождение для выполнения других задач. Примеры фрагментов, которые удаляются в процессе работы без вмешательства пользователя:
- Дескриптор файла, который больше не требуется
- В соединении с базой данных больше нет необходимости. Программа завершила все операции с базой данных
- Работа с различными языками программирования
Уровни .NET Framework
Выделяются три уровня:
- Языки программирования. Часто используемые: VB.NET и C#
- Компиляторы. Для каждого языка программирования предусмотрен отдельный компилятор. Для VB.NET — один, для C# — другой
- Интерпретатор «Common Language Interpreter» используется для запуска приложения, написанного на любом языке программирования. Поэтому компилятор отравит программу в него для последующего запуска приложения
Библиотеки
.NET Framework включает в себя набор стандартных библиотек классов: методов и функций. Например, есть библиотека классов для обработки всех операций на уровне файлов. Есть метод чтения текста из файла и есть метод записи текста в файл.
Типы основанных на платформе приложений
ПО, которое может работать на основе .NET Framework:
- WinForms: программы, которые будут работать на компьютере пользователя. Пример клиентского приложения: текстовый редактор «Блокнот»
- ASP.NET применяется для разработки веб-приложений, которые станут работать в любом браузере, в том числе: Chrome, Edge, Firefox. При этом:
- Веб-приложение будет обрабатываться на сервере, на котором установлены информационные службы интернета (IIS)
- IIS — это компонент Microsoft, который применяется для запуска приложения ASP.NET
- Результат выполнения отправляется на компьютер пользователя и отображается в браузере
- Технология ADO.NET применяется для создания приложений, предназначенных для работы с базами данных, такими как Microsoft SQL Server и Oracle
В этом разделе
Данные и моделирование. Здесь приводится информация о способах доступа к данным с использованием ADO.NET, LINQ, служб данных WCF и XML.
Разработка клиентских приложений с использованием .NET Framework. Здесь поясняются способы создания приложений Windows с помощью Windows Presentation Foundation (WPF) и Windows Forms.
Разработка веб-приложений с помощью ASP.NET. Здесь приводятся ссылки на сведения об использовании ASP.NET для сборки веб-приложений корпоративного уровня с минимальным объемом кода.
Разработка сервисно ориентированных приложений с помощью WCF. Здесь приводится описание способов использования Windows Communication Foundation (WCF) для сборки безопасных и надежных сервисно ориентированных приложений.
Создание рабочих процессов с помощью Windows Workflow Foundation Здесь приводятся сведения о модели программирования и средствах Windows Workflow Foundation (WF), а также примеры.
Приложения служб Windows. Здесь поясняется, как можно использовать Visual Studio и .NET Framework для создания приложения, которое устанавливается в качестве службы, а также запускать его, останавливать и иными способами управлять его поведением.
Параллельная обработка, параллелизм и асинхронное программирование в .NET. Здесь приводятся сведения о шаблонах разработки с применением управляемых потоков, параллельного программирования и асинхронного программирования.
Сетевое программирование в .NET Framework. Здесь приводится описание многоуровневой, расширяемой и управляемой реализации служб Интернета, которую можно быстро и легко интегрировать в приложения.
Настройка приложений .NET Framework Здесь поясняется, как можно использовать файлы конфигурации для изменения параметров без необходимости повторной компиляции приложений .NET Framework.
Безопасность. Сведения о классах и службах .NET Framework, предназначенных для упрощения разработки безопасных приложений.
Отладка, трассировка и профилирование. Здесь приводится описание способов тестирования, оптимизации и профилирования приложений .NET Framework и среды приложения. Информация, содержащаяся в этом разделе, предназначена как для администраторов, так и для разработчиков.
Разработка для нескольких платформ. Здесь поясняется, как можно использовать платформу .NET Framework для создания сборок, которые могут совместно использоваться несколькими платформами и устройствами, такими как телефоны, настольные системы и интернет-устройства.
Развертывание. Здесь поясняется порядок упаковки и распространения приложения .NET Framework; сюда также включены руководства по развертыванию как для разработчиков, так и для администраторов.
Производительность. Здесь приводятся сведения о кэшировании, отложенной инициализации, надежности и событиях трассировки событий Windows.
Связанные разделы
Начало работы. Здесь содержится комплексный обзор платформы .NET Framework и ссылки на дополнительные ресурсы.
Новые возможности. Здесь приводится описание ключевых новых возможностей и изменений в последней версии .NET Framework. Сюда включены списки новых и устаревших типов и членов; также здесь приводится руководство по переносу приложений из предыдущей версии .NET Framework.
Инструменты. Инструменты, описанные в этом разделе, помогут в разработке, настройке и развертывании приложений с помощью технологий .NET Framework.
Примеры и руководства .NET. Предоставляет ссылки на примеры и руководства для изучения .NET.
Сложные сценарии
В следующих разделах описываются некоторые возможности .NET, которые полезны в расширенных сценариях.
Взаимодействие на уровне машинного кода
Все операционные системы имеют API-интерфейс, предоставляющий системные службы. .NET предоставляет несколько способов использовать эти API.
Основным способом осуществления взаимодействия с собственными API является «вызов неуправляемого кода» или сокращенно P/Invoke. P/Invoke поддерживается на платформах Linux и Windows. Способ, который подходит только для Windows, называется «COM-взаимодействием» и используется для работы с COM-компонентами в управляемом коде. Он основан на инфраструктуре P/Invoke, но работает иначе.
Дополнительные сведения см. в разделе Взаимодействие на уровне машинного кода.
Небезопасный код
В зависимости от языковой поддержки среды CLR позволяет обращаться к внутренней памяти выполнять арифметические операции с указателями в коде . Эти операции необходимы для реализации определенных алгоритмов и системного взаимодействия. Хотя небезопасный код и предоставляет обширные возможности, использовать его не рекомендуется, если только это не требуется для взаимодействия с системными API или реализации максимально эффективного алгоритма. Небезопасный код может выполняться по-разному в разных средах, а также терять преимущества сборщика мусора и безопасности типов. Рекомендуется четко отделить и централизовать небезопасный код, а также тщательно протестировать его.
Дополнительные сведения см. в разделе Небезопасный код и указатели.
.NET Framework FAQ
What is .NET Framework used for?
.NET Framework is used to create and run software applications. .NET apps can run on many operating systems, using different implementations of .NET. .NET Framework is used for running .NET apps on Windows.
Who uses .NET Framework?
Software developers and the users of their applications both use .NET Framework:
- Users of applications built with the .NET Framework need to have .NET Framework installed. In most cases, .NET Framework is already installed with Windows. If needed, you can download .NET Framework.
- Software developers use .NET Framework to build many different types of applications—websites, services, desktop apps, and more with Visual Studio. Visual Studio is an integrated development environment (IDE) that provides development productivity tools and debugging capabilities. See the .NET customer showcase for examples of what people are building with .NET.
Why do I need .NET Framework?
You need .NET Framework installed to run applications on Windows that were created using .NET Framework. It’s already included in many versions of Windows. You only need to download and install .NET Framework if prompted to do so.
How does .NET Framework work?
.NET Framework applications are written in C#, F#, or Visual Basic and compiled to Common Intermediate Language (CIL). The Common Language Runtime (CLR) runs .NET applications on a given machine, converting the CIL to machine code. See for more info.
What are the main components/features of .NET Framework?
The two major components of .NET Framework are the Common Language Runtime (CLR) and the .NET Framework Class Library. The CLR is the execution engine that handles running applications. The Class Library provides a set of APIs and types for common functionality. See for more info.
What is the difference between .NET Core and .NET Framework?
.NET Core and .NET Framework share many of the same components and you can share code across the two. Some key differences include:
- .NET Core is cross-platform and runs on Linux, macOS, and Windows. .NET Framework only runs on Windows.
- .NET Core is open-source and accepts contributions from the community. The .NET Framework source code is available but doesn’t take direct contributions.
- The majority of .NET innovation happens in .NET Core.
- .NET Framework is included in Windows and automatically updated machine-wide by Windows Update. .NET Core is shipped independently.
See Choosing between .NET Core and .NET Framework for more details.
Can you have multiple .NET Frameworks installed?
Some versions of .NET Framework are installed side-by-side, while others will upgrade an existing version (known as an in-place update). In-place updates occur when two .NET Framework versions share the same CLR version.
For example, installing .NET Framework 4.8 on a machine with .NET Framework 4.7.2 and 3.5 installed will perform an in-place update of the 4.7.2 installation and leave 3.5 installed separately.
.NET Framework version | CLR version |
---|---|
.NET Framework 4.x | 4.0 |
.NET Framework 2.x and 3.x | 2.0 |
.NET Framework 1.1 | 1.1 |
.NET Framework 1.0 | 1.0 |
How much does .NET Framework cost?
.NET Framework is free, like the rest of the .NET platform. There are no fees or licensing costs, including for commercial use. See .NET is free for more details.
Which version of .NET Framework should I use?
In most cases, you should use the latest stable release. Currently, that’s .NET Framework 4.8 .
Applications that were created with any 4.x version of .NET Framework will run on .NET Framework 4.8 . To run an application that was created for an earlier version (for example, .NET Framework 3.5), you should install that version. See Download .NET Framework for a complete list.
What is the support policy for .NET Framework?
.NET Framework 4.8 is the latest version of .NET Framework and will continue to be distributed with future releases of Windows. As long as it is installed on a supported version of Windows, .NET Framework 4.8 will continue to also be supported.
Возможности среды CLR
Среда CLR управляет памятью, выполнением потоков, выполнением кода, проверкой безопасности кода, компиляцией и другими системными службами. Эти средства являются внутренними для управляемого кода, который выполняется в среде CLR.
По соображениям безопасности управляемым компонентам присваиваются разные степени доверия, зависящие от ряда факторов, в число которых входит их происхождение (например, Интернет, сеть предприятия или локальный компьютер). Это означает, что управляемый компонент может или не может выполнять операции доступа к файлам, операции доступа к реестру или другие важные функции, даже если он используется в одном и том же активном приложении.
Среда выполнения также обеспечивает надежность кода, реализуя инфраструктуру строгой типизации и проверки кода, которую называют системой общих типов (CTS). Система общих типов обеспечивает самоописание всего управляемого кода. Различные языковые компиляторы корпорации Microsoft и независимых изготовителей создают управляемый код, удовлетворяющий системе общих типов . Это означает, что управляемый код может принимать другие управляемые типы и экземпляры, при этом обеспечивая правильность типов и строгую типизацию.
Кроме того, управляемая среда выполнения исключает многие часто возникающие проблемы с программным обеспечением. Например, среда выполнения автоматически управляет размещением объектов и ссылками на объекты, освобождая их, когда они больше не используются. Автоматическое управление памятью исключает две наиболее часто возникающие ошибки приложений: утечки памяти и недействительные ссылки на память.
Среда выполнения также повышает продуктивность разработчиков. Например, программисты могут писать приложения на привычном языке разработки, при этом используя все преимущества среды выполнения, библиотеки классов и компонентов, написанных другими разработчиками на других языках. Это доступно любому производителю компиляторов, обращающихся к среде выполнения. Языковые компиляторы, предназначенные для платформы .NET Framework, делают средства .NET Framework доступными для существующего кода, написанного на соответствующих языках, существенно облегчая процесс переноса существующих приложений.
Хотя среда выполнения разрабатывалась для будущего программного обеспечения, она также поддерживает сегодняшнее и вчерашнее программное обеспечение. Взаимодействие управляемого и неуправляемого кодов позволяет разработчикам использовать необходимые компоненты COM и библиотеки DLL.
Среда выполнения разработана для повышения производительности. Хотя общеязыковая среда выполнения предоставляет многие стандартные службы времени выполнения, управляемый код никогда не интерпретируется. Средство компиляции по требованию (JIT) позволяет выполнять весь управляемый код на машинном языке компьютера, где он запускается. Между тем диспетчер памяти устраняет возможность фрагментации памяти и увеличивает объем адресуемой памяти для дополнительного повышения производительности.
Наконец, среда выполнения может размещаться в высокопроизводительных серверных приложениях, таких как Microsoft SQL Server и службы IIS (Internet Information Services). Такая инфраструктура позволяет использовать управляемый код для написания собственной логики программ, пользуясь при этом высочайшей производительностью лучших производственных серверов, которые поддерживают размещение среды выполнения.
.NET Framework class library
The .NET Framework class library is a collection of reusable types that tightly integrate with the common language runtime. The class library is object oriented, providing types from which your own managed code derives functionality. This not only makes the .NET Framework types easy to use but also reduces the time associated with learning new features of the .NET Framework. In addition, third-party components integrate seamlessly with classes in the .NET Framework.
For example, the .NET Framework collection classes implement a set of interfaces for developing your own collection classes. Your collection classes blend seamlessly with the classes in the .NET Framework.
As you would expect from an object-oriented class library, the .NET Framework types enable you to accomplish a range of common programming tasks, including string management, data collection, database connectivity, and file access. In addition to these common tasks, the class library includes types that support a variety of specialized development scenarios. You can use .NET Framework to develop the following types of apps and services:
-
Console apps. See Building Console Applications.
-
Windows GUI apps (Windows Forms). See Windows Forms.
-
Windows Presentation Foundation (WPF) apps. See Windows Presentation Foundation.
-
ASP.NET apps. See Web Applications with ASP.NET.
-
Windows services. See Introduction to Windows Service Applications.
-
Service-oriented apps using Windows Communication Foundation (WCF). See Service-Oriented Applications with WCF.
-
Workflow-enabled apps using Windows Workflow Foundation (WF). See Windows Workflow Foundation.
The Windows Forms classes are a comprehensive set of reusable types that vastly simplify Windows GUI development. If you write an ASP.NET Web Form app, you can use the Web Forms classes.
Случаи использования .NET
В следующих разделах более подробно описаны ранее перечисленные причины для выбора платформы .NET вместо .NET Framework.
Создание кроссплатформенных приложений
Если веб-приложение или служба будут работать на нескольких платформах (Windows, Linux и macOS), используйте платформу .NET.
В среде .NET также можно использовать упомянутые ранее операционные системы в качестве рабочих станций для разработки. Visual Studio предоставляет интегрированную среду разработки (IDE) для Windows и macOS. Можно также использовать редактор Visual Studio Code, который выполняется на платформах macOS, Linux и Windows. Visual Studio Code поддерживает .NET, включая технологию IntelliSense и отладку. С .NET работает большинство сторонних редакторов, например Sublime, Emacs и VI. Эти сторонние редакторы получают доступ к функциям в редакторе IntelliSense с помощью Omnisharp. Вы также можете использовать вместо редакторов кода непосредственно .NET CLI, доступный для всех поддерживаемых платформ.
Архитектура микрослужб
Архитектура микрослужб позволяет использовать сочетание технологий за пределами службы. Такое сочетание технологий позволяет постепенно добавлять новые микрослужбы в .NET для параллельного использования с другими службами и микрослужбами. Например, можно комбинировать микрослужбы или службы, созданные на основе .NET Framework, Java, Ruby или других монолитные технологий.
Пользователям на выбор предоставляется множество инфраструктурных платформ. Для больших и сложных систем микрослужб можно использовать Azure Service Fabric. Служба приложений Azure лучше всего подойдет для микрослужб без сохранения состояния. Альтернативы микрослужб на основе Docker поддерживают любые подходы, как описано в разделе . Все эти платформы поддерживают .NET и идеально подходят для размещения микрослужб.
Дополнительные сведения об архитектуре микрослужб см. в статье Микрослужбы .NET: архитектура контейнерных приложений .NET.
Контейнеры
Контейнеры обычно используются вместе с архитектурой микрослужб. Их также можно использовать, чтобы поместить в контейнер веб-приложения или службы на базе любого архитектурного шаблона. Среду .NET Framework можно использовать для контейнеров Windows, но упрощенные возможности и модульный принцип среды .NET делают ее оптимальной для контейнеров. При создании и развертывании контейнера размер его образа гораздо меньше в среде .NET. Так как эта среда поддерживает разные платформы, серверные приложения можно развертывать, например, в контейнеры Docker в Linux.
Затем эти контейнеры можно размещать в собственной инфраструктуре Linux или Windows или в облачной службе,такой как Служба Azure Kubernetes. Служба Azure Kubernetes может выполнять оркестрацию и масштабировать приложения на основе контейнеров, а также управлять ими в облаке.
Масштабируемые системы с высокой производительностью
Если для вашей системы требуется максимальная производительность и возможности масштабирования, мы рекомендуем использовать среды .NET и ASP.NET Core. Высокопроизводительная серверная среда выполнения для Windows Server и Linux делает ASP.NET Core самой эффективной веб-платформой в .
Производительность и масштабируемость особенно важны для архитектур микрослужб, где могут выполняться сотни микрослужб. Среда ASP.NET Core позволяет уменьшить количество серверов и виртуальных машин, необходимых для системы. В конечном счете это способствует сокращению расходов на архитектуру и размещение.
Создание приложений с поддержкой разных версий .NET
Если требуется установить приложения с зависимостями в разных версиях платформ .NET, рекомендуется использовать среду .NET. Такая реализация .NET поддерживает параллельную установку разных версий среды выполнения .NET на одном компьютере. За счет простой параллельной установки на одном сервере можно размещать несколько служб, каждая из которых устанавливается в собственной версии .NET. Это позволяет устранить риски и сократить расходы на обновление приложений и ИТ-операции.
Параллельная установка невозможна при использовании .NET Framework. Это компонент Windows, и на компьютере может существовать только одна версия этого компонента. Каждая версия .NET Framework заменяет предыдущую версию. При установке нового приложения, предназначенного для более поздней версии .NET Framework, может быть нарушена работа существующих приложений, запущенных на компьютере, поскольку предыдущая версия была заменена.