Net and c sharp

Введение в C#

На сегодняшний момент язык программирования C# один из самых мощных, быстро развивающихся и востребованных языков в ИТ-отрасли. В настоящий момент на нем пишутся самые различные приложения: от небольших десктопных программок до крупных веб-порталов и веб-сервисов, обслуживающих ежедневно миллионы пользователей.

C# уже не молодой язык и как и вся платформа .NET уже прошел большой путь. Первая версия языка вышла вместе с релизом Microsoft Visual Studio .NET в феврале 2002 года. Текущей версией языка является версия C# 11, которая вышла 8 ноября 2022 года вместе с релизом .NET 7.

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

C# является объектно-ориентированным и в этом плане много перенял у Java и С++. Например, C# поддерживает полиморфизм, наследование, перегрузку операторов, статическую типизацию. Объектно-ориентированный подход позволяет решить задачи по построению крупных, но в тоже время гибких, масштабируемых и расширяемых приложений. И C# продолжает активно развиваться, и с каждой новой версией появляется все больше интересных функциональностей.

Роль платформы .NET

Когда говорят C#, нередко имеют в виду технологии платформы .NET (Windows Forms, WPF, ASP.NET, Xamarin). И, наоборот, когда говорят .NET, нередко имеют в виду C#. Однако, хотя эти понятия связаны, отождествлять их неверно. Язык C# был создан специально для работы с фреймворком .NET, однако само понятие .NET несколько шире.

Как-то Билл Гейтс сказал, что платформа .NET — это лучшее, что создала компания Microsoft. Возможно, он был прав. Фреймворк .NET представляет мощную платформу для создания приложений. Можно выделить следующие ее основные черты:

  • Поддержка нескольких языков . Основой платформы является общеязыковая среда исполнения Common Language Runtime (CLR), благодаря чему .NET поддерживает несколько языков: наряду с C# это также VB.NET, C++, F#, а также различные диалекты других языков, привязанные к .NET, например, Delphi.NET. При компиляции код на любом из этих языков компилируется в сборку на общем языке CIL (Common Intermediate Language) — своего рода ассемблер платформы .NET. Поэтому при определенных условиях мы можем сделать отдельные модули одного приложения на отдельных языках.
  • Кроссплатформенность . .NET является переносимой платформой (с некоторыми ограничениями). Например, последняя версия платформы на данный момент — .NET 7 поддерживается на большинстве современных ОС Windows, MacOS, Linux. Используя различные технологии на платформе .NET, можно разрабатывать приложения на языке C# для самых разных платформ — Windows, MacOS, Linux, Android, iOS, Tizen.
  • Мощная библиотека классов . .NET представляет единую для всех поддерживаемых языков библиотеку классов. И какое бы приложение мы не собирались писать на C# — текстовый редактор, чат или сложный веб-сайт — так или иначе мы задействуем библиотеку классов .NET.
  • Разнообразие технологий . Общеязыковая среда исполнения CLR и базовая библиотека классов являются основой для целого стека технологий, которые разработчики могут задействовать при построении тех или иных приложений. Например, для работы с базами данных в этом стеке технологий предназначена технология ADO.NET и Entity Framework Core. Для построения графических приложений с богатым насыщенным интерфейсом — технология WPF и WinUI, для создания более простых графических приложений — Windows Forms. Для разработки кроссплатформенных мобильных и десктопных приложений — Xamarin/MAUI. Для создания веб-сайтов и веб-приложений — ASP.NET и т.д. К этому стоит добавить активной развивающийся и набирающий популяность Blazor — фреймворк, который работает поверх .NET и который позволяет создавать веб-приложения как на стороне сервера, так и на стороне клиента. А в будущем будет поддерживать создание мобильных приложений и, возможно, десктоп-приложений.
  • Производительность . Согласно ряду тестов веб-приложения на .NET 7 в ряде категорий сильно опережают веб-приложения, построенные с помощью других технологий. Приложения на .NET 7 в принципе отличаются высокой производительностью.
Читайте также:  Denwer как работать с php

Также еще следует отметить такую особенность языка C# и фреймворка .NET, как автоматическая сборка мусора. А это значит, что нам в большинстве случаев не придется, в отличие от С++, заботиться об освобождении памяти. Вышеупомянутая общеязыковая среда CLR сама вызовет сборщик мусора и очистит память.

.NET Framework и .NET 7

Стоит отметить, что .NET долгое время развивался премущественно как платформа для Windows под названием .NET Framework. В 2019 вышла последняя версия этой платформы — .NET Framework 4.8. Она больше не развивается

С 2014 Microsoft стал развивать альтернативную платформу — .NET Core, которая уже предназначалась для разных платформ и должна была вобрать в себя все возможности устаревшего .NET Framework и добавить новую функциональность. Затем Microsoft последовательно выпустил ряд версий этой платформы: .NET Core 1, .NET Core 2, .NET Core 3, .NET 5. И текущей версией является расматриваемая в этом руководстве платформа .NET 7. Поэтому следует различать .NET Framework, который предназначен преимущественно для Windows, и кросплатформенный .NET 7. В данном руководстве речь будет идти о C# 11 в связке с .NET 7, поскольку это актуальная платформа.

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

Нередко приложение, созданное на C#, называют управляемым кодом (managed code). Что это значит? А это значит, что данное приложение создано на основе платформы .NET и поэтому управляется общеязыковой средой CLR, которая загружает приложение и при необходимости очищает память. Но есть также приложения, например, созданные на языке С++, которые компилируются не в общий язык CIL, как C#, VB.NET или F#, а в обычный машинный код. В этом случае .NET не управляет приложением.

В то же время платформа .NET предоставляет возможности для взаимодействия с неуправляемым кодом..

JIT-компиляция

Как выше писалось, код на C# компилируется в приложения или сборки с расширениями exe или dll на языке CIL. Далее при запуске на выполнение подобного приложения происходит JIT-компиляция (Just-In-Time) в машинный код, который затем выполняется. При этом, поскольку наше приложение может быть большим и содержать кучу инструкций, в текущий момент времени будет компилироваться лишь та часть приложения, к которой непосредственно идет обращение. Если мы обратимся к другой части кода, то она будет скомпилирована из CIL в машинный код. При том уже скомпилированная часть приложения сохраняется до завершения работы программы. В итоге это повышает производительность.

По сути это все, что вкратце надо знать о платформе .NET и языке C#. А теперь создадим первое приложение.

Источник

Язык C# и .NET Framework

C# спроектирован и разработан специально для применения с .NET Framework. Назначение .NET Framework — служить средой для поддержки разработки и выполнения сильно распределенных компонентных приложений. Она обеспечивает совместное использование разных языков программирования, а также безопасность, переносимость программ и общую модель программирования для платформы Windows. .NET Framework предлагает несколько готовых API-интерфейсов для разработки веб-приложений (ASP.NET), десктопных приложений (WPF), веб-апплетов (Silverlight), работы с базами данных (ADO.NET) и т.д.

ASP.NET является основной технологией для построения серверных элементов веб-приложений от Microsoft. Заинтересовать разработчиков в ASP.NET совсем нетрудно. Без преувеличения, ASP.NET является наиболее полной платформой для веб-разработки из всех, которые когда-либо создавались. Обширная поддержка шаблона проектирования MVC только прибавляет ASP.NET популярности.

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

Windows Presentation Foundation (WPF) представляет собой обширный API-интерфейс для создания настольных графических программ имеющих насыщенный дизайн и интерактивность. В отличие от устаревшей технологии Windows Forms, WPF включает новую модель построения пользовательских приложений (в основе WPF лежит мощная инфраструктура, основанная на DirectX).

Темы WPF представляют собой наборы стилизованных шаблонов элементов управления WPF. Здесь я представляю разработанные мною темы.

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

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

Мощное расширение языка C# для работы с коллекциями в разных контекстах — с объектами C# (LINQ to Objects), с XML-документами (Linq to XML), с ADO.NET (LINQ to DataSet и SQL), с Entity Framework (LINQ to Entities).

Программа Expression Blend, разработанная корпорацией Microsoft, предназначена для создания приложений WPF и Silverlight на промышленном уровне. Это инструментальное средство предоставляет пользователю развитый графический интерфейс, в котором можно создавать и настраивать настольные программы (WPF API) и веб-приложения (Silverlight API). При этом вся необходимая XAML-разметка формируется автоматически.

Entity Framework предоставляет возможность работы с базами данных через объектно-ориентированный код C#. Благодаря этому, вместо построения сложных и подверженных ошибкам инструкций SQL, можно использовать язык запросов LINQ.

Система управления базами данных SQL Server является наилучшим выбором для широкого диапазона конечных пользователей и программистов баз данных, работающих над созданием бизнес-приложений. Transact-SQL (T-SQL) — язык реляционной базы данных системы SQL Server, который обладает несколькими нестандартными свойствами, которые неизвестны пользователям, знакомым только с языком SQL.

В операционно системе Windows 8 появился новый API-интерфейс для приложений Windows Store, который называется Windows Runtime. Эти приложения представлены общим стилем Metro, имеют графический интерфейс в виде плиток и разрабатываются в основном для планшетных устройств и смартфонов, хотя так же хорошо работают и на десктопных компьютерах. Приложения Windows Runtime можно разрабатывать используя три разных подхода: с использованием JavaScript и HTML, C++ и XAML или C# и XAML. Мы будем использовать последний вариант в этом руководстве.

Лучший чат для C# программистов

Источник

Оцените статью