Обзор языков программирования, предоставляемых Visual Studio 2013
Аннотация: В данной лекции рассмотрены следующие вопросы: обзор языков C#, VB, Managed C++, JavaScript, F# и других, предоставляемых средой Visual Studio, и их новых возможностей, реализованных в Visual Studio 2013.
Цель лекции
Ознакомление с языками C#, VB, Managed C++, JavaScript, F# и другими, предоставляемыми средой Visual Studio, и их новыми возможностями, реализованными в среде Visual Studio 2013.
7.1. Введение. Набор языков программирования, поддерживаемых в Visual Studio 2013
Языки программирования для платформы . NET , поддерживаемые в Visual Studio, стремительно развиваются — расширяются возможности уже существующих языков, а также появляются новые языки. Основные языки программирования, поддерживаемые первоначальной версией VS 2013, — это Visual C#, Visual Basic, Visual C++, JavaScript (объектно-ориентированные языки) и Visual F# (функциональный язык). В обновлении 2 к Visual Studio 2013, выпущенном 12 мая 2014 г., появился еще один язык — TypeScript, расширение известного языка Web-разработки JavaScript, созданное фирмой Microsoft (в отличие от первоначальной версии JavaScript, TypeScript — язык со строгой типизацией). Кроме того, имеется еще один интересный язык — Spec#, разработки Microsoft Research, расширение языка C# формальными спецификациями в стиле design-by-contract Мейера. Имеется его реализация для Visual Studio 2010 как add-in , который необходимо отдельно скачивать и инсталлировать. Однако для Visual Studio 2013 он в данный момент (июнь 2014 г.) пока не реализован.
Перечисленный набор из 6 языков — это только разработки Microsoft. Имеется еще целый ряд реализаций языков, (порядка 30) для платформы . NET , разработанных другими компаниями и университетами (например, Eiffel, Active Oberon и др.), однако не все они совместимы с новыми версиями Visual Studio.
7.2. Язык C# и его новые возможности в VS 2013.
Краткий обзор языка C# приведен в «Обзор возможностей .NET» . Рассмотрим особенности и возможности данного языка более подробно, в том числе — новые возможности, введенный в Visual Studio 2013.
Отметим, что, как и платформа . NET в целом, язык C# имеет международный стандарт , который развивается вместе с развитием языка.
Язык C# содержит очень много оригинальных идей, однако часть его возможностей заимствованы из других языков и технологий. Это неизбежно: как и язык Java , с точки зрения воплощенных в нем идей, язык C# — » вершина айсберга», создававшегося многими поколениями программистов. С точки зрения удобства программирования и разнообразия возможностей, язык C#, по моему мнению (даже несмотря на мою склонность и интерес к Java ) является уникальным. В нем есть такие возможности — например, индексаторы ( представление класса в виде абстрактной таблицы с абстрактными индексами), свойства (как бы виртуальные поля с операциями get (взять значение свойства) и set (установить новое значение свойства) — которых в языке Java просто нет, и их приходится моделировать вызовами методов, без поддержки «синтаксическим сахаром» ( по меткому выражению проф. Б. Лисков). Более того, некоторые возможности в C# реализованы в более полном и «правильном» виде, чем в Java , — например, параметризованные типы данных ( generics ) [8].
Из множества книг по языку C# рекомендую книгу [18], по -видимому, одно из наиболее полных руководств по языку. Отметим также двухтомник [19] — поистине энциклопедию по C#, хотя и не самой новой версии. Разумеется, язык C# описан также на страницах MSDN .
Прежде всего, C# является чисто объектно-ориентированным языком и отражает возможности и особенности . NET . В нем доступна вся обширная библиотека классов . NET Framework Base Class Library . Кроме того, C# — язык компонентного программирования, основной мотивировкой и целью которого является разработка программных компонент многократного использования ( reusable software components). В роли таких компонент выступают классы и интерфейсы (наборы заголовков методов). Они структурированы с помощью пространств имен (namespaces), которые обеспечивают удобство обращения к группе тех или иных возможностей, сосредоточенных в одном пространстве имен, с одной стороны, и отсутствие конфликтов имен с прочими пространствами имен, с другой стороны. Имя компоненты в общем случае имеет вид N1.N2. … C , где N1, N2, … — префикс в виде имен вложенных друг в друга namespaces .
Не вполне согласен с мнением уважаемых авторов — «евангелистов» Microsoft, которые называют язык C# «простым для изучения». По -моему, это не так. Однако, по сравнению со своим широко известным идейным предшественником — языком C ++, язык C#, действительно, гораздо проще для изучения.
Если кратко охарактеризовать наиболее популярные языки C++, Java и C# (названные в порядке их появления), то получится примерно следующее.
Язык C++ — это сочетание традиционного процедурного стиля с объектно-ориентированным и соблюдение совместимости с языком Си .
Язык Java — это несколько упрощенная (с целью упрощения реализации, с первоначальным намерением разработки языка для встроенных систем) коллекция объектно-ориентированных возможностей, в сочетании с собственным уровнем абстракции даже для представления простейших понятий (таких, как целые числа), с целью переносимости кода на другие платформы.
Язык C# — удобный, лишенный «пережитков прошлого» (вроде заголовочных файлов), использующий полезные универсальные концепции и механизмы , заимствованные из других языков, расширяемый, модернизированный, эффективно реализованный, современный объектно-ориентированный язык.
Разумеется, это мое личное мнение.
Пример удачного заимстовования в языке C#: в языке с абстрактными типами данных CLU [20] в середине 1970-х гг. было введено понятие итератора — особой разновидности модуля, предназначенного для перебора элементов (выражаясь современной терминологией) коллекции. Итератор взаимодействует с циклом как сопрограмма (coroutine), передавая телу цикла очередной элемент коллекции оператором yield (выдать). Если очередной элемент не будет сгенерирован итератором, цикл завершается. В одной из новых версий языка C# был введен оператор yield return с аналогичной семантикой и даже с таким же ключевым словом. Узнаете?
Пример класса на языке C# приведен в «Обзор возможностей .NET» . В классе определены приватное ( private ) поле , общедоступное ( public ) свойство и метод.
Приведем еще один пример, использующий параметризованные типы ( generics ):
// Declare the generic class. public class GenericList < void Add(T input) < >> class TestGenericList < private class ExampleClass < >static void Main() < // Declare a list of type int. GenericListlist1 = new GenericList(); // Declare a list of type string. GenericList list2 = new GenericList(); // Declare a list of type ExampleClass. GenericList list3 = new GenericList(); > >
В данном примере определен простой параметризованный класс GenericList , где T — параметр-тип. В методе main данного класса созданы и использованы три конкретизации класса GenericList . Внешне пример выглядит очень похоже на Java .
Отметим, что сам по себе идентификатор GenericList является именем класса, но не является типом, т.е. нельзя описать переменную такого типа. Корректно заданным типом является любая конкретизация , например, GenericList . Это видно из описаний переменных в приведенном выше примере.
Вот еще один интересный пример использования generics , который показывает преимущества параметризованных типов C#, по сравнению с Java : различные конкретизации параметризованного типа различимы во время выполнения . В Java , как известно, имеет место эффект стирания типов ( type erasure ), ввиду реализации всех операций параметра-типа в виде виртуальных методов.
namespace ConsoleApplication1 < class Program < public class Generic < public T Field; >public static void Main() < Genericg = new Generic(); g.Field = "A string"; //. Console.WriteLine ("Generic.Field = \"\"", g.Field); Console.WriteLine ("Generic.Field.GetType() = ", g.Field.GetType().FullName); Console.ReadLine(); > > >
Вывод данного примера:
Generic.Field = "A string" Generic.Field.GetType = System.String
В примере определяется простой параметризованный класс Generic с единственным полем Field , тип которого является типом-параметром T . Затем создается объект , тип которого специфицирован как конкретизация Generic . Наконец, тип и имя типа поля Field извлекается из объекта, типизированного данной конкретизацией. Для извлечения типа из объекта используется стандартный метод GetType . Пример такого рода на языке Java написать принципиально невозможно, так как информация о конкретизации параметризованного типа не хранится во время выполнения в JVM .
Однако интересно заметить следующее: если попытаться извлечь тип-конкретизацию из объекта g типа Generic напрямую:
g.GetType().FullName
g.GetType().Name
то вывод примера немного изменится, однако в каком-то виде программа сможет выдать информацию о типе конкретной параметризации и с использованием напрямую типа Generic .
Интересно, что я пропускал аналогичный пример в версии Visual Studio 2010 Ultimate. В ней компилятор C# выдал сообщение об ошибке : метод GetType неприменим в данном контексте. Налицо явный прогресс в Visual Studio 2013, по сравнению с предыдущей версией: теперь стало возможно извлекать тип-конкретизацию из объекта, что вполне естественно, с точки зрения предполагаемой программистом семантики данной конструкции.
Хотя официально Microsoft не сообщает о нововведениях в язык C# и его реализацию в версии Visual Studio 2013, проанализированное служит весомым подтверждением того, что команда C# активно работает над улучшением языка и реализации.
Добавим к этому, что весной 2014 г. исходный код компилятора Visual C# предоставлен разработчикам в открытый доступ для исследований и преподавания. Как эксперт по компиляторам, могу утверждать, что это — поистине отличная школа современных компиляторов.
Microsoft Visual Studio
Microsoft Visual Studio — это интегрированная среда разработки (IDE) от Microsoft . Он используется для разработки компьютерных программ , а также веб-сайтов , веб-приложений , веб-сервисов и мобильных приложений . Visual Studio использует платформы разработки программного обеспечения Microsoft, такие как Windows API , Windows Forms , Windows Presentation Foundation , Windows Store и Microsoft Silverlight . Он может создавать как собственный код, так и управляемый код .
Visual Studio включает редактор кода, поддерживающий IntelliSense ( компонент завершения кода ), а также рефакторинг кода . Интегрированный отладчик работает как отладчик на уровне исходного кода, так и как отладчик на уровне компьютера. Другие встроенные инструменты включают профилировщик кода , конструктор для создания приложений с графическим интерфейсом, веб-дизайнер , конструктор классов и конструктор схемы базы данных . Он принимает плагины, которые расширяют функциональность почти на всех уровнях, включая добавление поддержки для систем управления версиями (таких как Subversion и Git ) и добавление новых наборов инструментов, таких как редакторы и визуальные дизайнеры для языков, зависящих от предметной области, или наборов инструментов для других аспектов жизненного цикла разработки программного обеспечения (например, клиент Azure DevOps : Team Explorer).
Visual Studio поддерживает 36 различных языков программирования и позволяет редактору кода и отладчику поддерживать (в разной степени) практически любой язык программирования при условии, что существует служба для конкретного языка. Встроенные языки включают C , [7] C ++ , C ++ / CLI , Visual Basic .NET , C # , F # , [8] JavaScript , TypeScript , XML , XSLT , HTML и CSS . Поддержка других языков, таких как Python , [9] Ruby , Node.js , и M, среди прочего, доступен через плагины . Java (и J # ) поддерживались в прошлом.
Самая базовая версия Visual Studio, версия Community, доступна бесплатно. Слоган Visual Studio Community edition: «Бесплатная полнофункциональная среда IDE для студентов, разработчиков с открытым исходным кодом и индивидуальных разработчиков».
По состоянию на март 2021 [Обновить] года текущая готовая к производству версия Visual Studio была 2019 года, с более старыми версиями, такими как 2012 и 2013 года с расширенной поддержкой, а также 2015 и 2017 года с основной поддержкой. [10]
Visual Studio внутренне не поддерживает какой-либо язык программирования, решение или инструмент; вместо этого он позволяет подключать функциональные возможности, закодированные как VSPackage. После установки функциональность доступна как услуга . IDE предоставляет три вида услуг: SVsSolution, который предоставляет возможность перечислить проекты и решения; SVsUIShell, который обеспечивает работу с окнами и функциональность пользовательского интерфейса (включая вкладки, панели инструментов и окна инструментов); и SVsShell, который занимается регистрацией VSPackages. Кроме того, IDE также отвечает за координацию и обеспечение связи между службами. [11] Все редакторы, дизайнеры, типы проектов и другие инструменты реализованы как VSPackages. Visual Studio использует COM для доступа к пакетам VSPackages. Visual Studio SDK также включает Managed Package Framework ( MPF ), который представляет собой набор управляемых оболочек вокруг COM-интерфейсов, которые позволяют писать пакеты на любом языке, совместимом с CLI . [12] Однако MPF не обеспечивает всех функций, предоставляемых COM-интерфейсами Visual Studio. [13] Затем сервисы можно использовать для создания других пакетов, которые добавляют функциональность в Visual Studio IDE.
Почему VSCode так популярен?
Хорошие текстовые редакторы важны для большинства программистов, чтобы сделать их более быстрыми и эффективными. Многие путают текстовые редакторы с IDE, однако между ними есть определенные различия. IDE предоставляет программистам полную среду для программирования, делая их более продуктивными.
В основном он состоит из редактора исходного кода, компилятора и отладчика, а также множества других функций. В отличие от этого, редактор обеспечивает меньшую функциональность, не имея среды для запуска, тестирования и отладки кода под одной крышей. Но, несмотря на меньшее количество функций, эти редакторы легки, требуют меньше оперативной памяти, а некоторые редакторы, такие как Visual Studio Code или Sublime text, имеют дополнительные функции, аналогичные IDE.
Возвращаясь к Visual Studio Code
Visual Studio Code – один из самых популярных редакторов исходного кода, используемых программистами. Он быстрый, легкий и к тому же мощный! Microsoft разработала VSC как кросс-платформенный редактор кода для написания веб-и облачных приложений. Впервые об этом было объявлено 29 апреля 2015 года компанией Microsoft на конференции Build 2015, которая проходила в Сан-Франциско. Через несколько месяцев, 18 ноября 2015 года, VSC был выпущен под лицензией MIT, а исходный код был доступен на GitHub. 14 апреля 2016 года VSC был выпущен в Интернете.
По моему мнению, главная причина, по которой VSC стал настолько популярным, заключается в том, что в нем есть все, что любой программист ожидает от любого редактора кода с некоторыми дополнительными и полезными функциями. Он легкий, быстрый, с открытым исходным кодом и кросс-платформенный, а также другие интересные функции дают ему дополнительное преимущество перед любым другим редактором. Итак, вот 10 причин, по которым, по моему мнению, он приобрел такую популярность среди сообщества разработчиков.
1. Кросс-платформенный
Это бесплатный, с открытым исходным кодом и кросс-платформенный редактор, который работает на Windows, Linux и macOS, так что вы можете работать независимо от платформы, на которой основано ваше устройство.
2. Поддерживает множество языков программирования
Когда вы посетите веб-сайт Visual Studio Code, то в мгновение ока поймете, что он поддерживает почти все основные языки программирования. Он поддерживает Python, JavaScript, HTML, CSS, TypeScript, C++, Java, PHP, Go, C#, PHP, SQL, Ruby, Objective-C и многое другое.
3. Вы можете изменить язык для выбранного файла
Он поддерживает язык по умолчанию, который будет соответствовать вашему файлу, но вы также можете изменить языковой режим. Для этого нажмите на индикатор языка, расположенный в правой части строки состояния, который откроет раскрывающийся список “Выбор языкового режима”. Здесь вы можете выбрать различные языки для вашего текущего файла.
4. Предоставляет языковую документацию
Его веб – сайт содержит документы, относящиеся к общим языкам, которые поддерживает Visual Studio Code. Некоторые из них-C++, C#, CSS, Go, Python, PHP, Java и многое другое.
5. Отладка
VSCode поставляется со встроенным отладчиком, который также является одной из его ключевых функций. Это помогает ускорить цикл редактирования, компиляции и отладки любого программиста. Однако по умолчанию он поставляется только с отладчиком, поддерживающим NodeJS, который может отлаживать все, что переносится на JavaScript, но опять же, вы можете использовать расширения для других сред выполнения.
6. Встроенная интеграция Git
Visual Studio Code делает еще один шаг вперед, предоставляя полную интеграцию Git, позволяющую программистам мгновенно видеть изменения, не выходя из редактора. Вы можете найти значок Git слева от боковой панели, где вы можете инициализировать его и выполнить несколько команд Git, таких как pull, push, publish и другие. Кроме того, VSC также работает с несколькими репозиториями Git, будь то локальными или удаленными.
7. IntelliSense
Это функция, которая используется программистами для интеллектуального завершения кода, информации о параметрах, помощи контенту, быстрой информации и намеков на код. VSC предоставляет IntelliSense для JavaScript, CSS, HTML, TypeScript, JSON, Sass и других языков программирования. Для других языков мы можем использовать IntelliSense, добавив его расширения.
8. Палитра команд
Нажатие Ctrl/Command+Shipt+P вызывает палитру команд, которая делает код VS доступным с клавиатуры. Он позволяет вам получить доступ ко всем функциям VS Code, включая все ярлыки ключевых слов. Кроме того, эта палитра также позволяет получить доступ ко многим командам.
9. Функции управления кодом
Visual Studio Code также предоставляет функции для управления кодом, такие как Go to Definition, Peek Definition, Find all References и rename Symbol. Щелкнув правой кнопкой мыши в файле кода, вы можете легко найти эти функции в VSC.
10. Кастомизация
Как и любой другой популярный редактор, Visual Studio Code также обеспечивает настройку. На самом деле, он обеспечивает экстремальную настройку благодаря своей гибкой настройке предпочтений и множеству расширений. VSC дает вам возможность изменить тему, изменить сочетания клавиш, настроить настройки, создать фрагменты кода и многое другое.
Заключительные мысли
Действительно, этот редактор исходного кода прошел долгий путь, чтобы стать одним из самых популярных редакторов программистов. Он также успешно затмил другие ранее известные и широко используемые редакторы; все благодаря своему легкому весу, скорости и многочисленным функциям.
С одной стороны, VSCode набирает популярность за предоставление богатого пользовательского опыта, а с другой стороны, его также часто путают с visual studio. Различные функции, такие как отладчик, IntelliSense, интеграция Git, поддержка бесчисленных языков программирования и его огромная экосистема, имеющая множество расширений, дают Visual Studio Code одностороннее преимущество перед другими редакторами.
Если вы один из тех, кто хочет быть сертифицированным Node.js разработчик, то вы можете взять этот всеобъемлющий онлайн-учебник “Elite NodeJS Course”. Это дает вам представление о Node.js essentials, Node intermediate, Node package manager, NodeJS web server, NodeJS express и многое другое.
Понравилось то, что вы прочитали?
Подписывайтесь на нашу рассылку и получайте ежедневные обновления о новых учебниках, статьях, курсах и о многом другом!
Просто введите ваш адрес электронной почты, чтобы подписаться.
(Без спамов; ежемесячно два письма; отписаться от рассылки можно в любое время)
Спасибо!
Подписка успешно оформлена.
Введение в C#
На сегодняшний момент язык программирования C# один из самых мощных, быстро развивающихся и востребованных языков в ИТ-отрасли. В настоящий момент на нем пишутся самые различные приложения: от небольших десктопных программок до крупных веб-порталов и веб-сервисов, обслуживающих ежедневно миллионы пользователей.
C# уже не молодой язык и как и вся платформа .NET уже прошел большой путь. Первая версия языка вышла вместе с релизом Microsoft Visual Studio .NET в феврале 2002 года. Текущей версией языка является версия C# 12, которая вышла 14 ноября 2023 года вместе с релизом .NET 8.
C# является языком с Си-подобным синтаксисом и близок в этом отношении к C++ и Java. Поэтому, если вы знакомы с одним из этих языков, то овладеть C# будет легче.
C# является объектно-ориентированным и в этом плане много перенял у Java и С++. Например, C# поддерживает полиморфизм, наследование, перегрузку операторов, статическую типизацию. Объектно-ориентированный подход позволяет решить задачи по построению крупных, но в тоже время гибких, масштабируемых и расширяемых приложений. И C# продолжает активно развиваться, и с каждой новой версией появляется все больше интересных функциональностей.
Роль платформы .NET
Когда говорят C#, нередко имеют в виду технологии платформы .NET (Windows Forms, WPF, ASP.NET, .NET MAUI). И, наоборот, когда говорят .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 8 поддерживается на большинстве современных ОС 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 в ряде категорий сильно опережают веб-приложения, построенные с помощью других технологий. Приложения на .NET в принципе отличаются высокой производительностью.
Также еще следует отметить такую особенность языка C# и фреймворка .NET, как автоматическая сборка мусора. А это значит, что нам в большинстве случаев не придется, в отличие от С++, заботиться об освобождении памяти. Вышеупомянутая общеязыковая среда CLR сама вызовет сборщик мусора и очистит память.
.NET Framework и .NET 8
Стоит отметить, что .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 8. Поэтому следует различать .NET Framework, который предназначен преимущественно для Windows, и кросплатформенный .NET 8. В данном руководстве речь будет идти о C# 12 в связке с .NET 8, поскольку это актуальная платформа.
Управляемый и неуправляемый код
Нередко приложение, созданное на C#, называют управляемым кодом (managed code). Что это значит? А это значит, что данное приложение создано на основе платформы .NET и поэтому управляется общеязыковой средой CLR, которая загружает приложение и при необходимости очищает память. Но есть также приложения, например, созданные на языке С++, которые компилируются не в общий язык CIL, как C#, VB.NET или F#, а в обычный машинный код. В этом случае .NET не управляет приложением.
В то же время платформа .NET предоставляет возможности для взаимодействия с неуправляемым кодом..
JIT-компиляция
Как выше писалось, код на C# компилируется в приложения или сборки с расширениями exe или dll на языке CIL. Далее при запуске на выполнение подобного приложения происходит JIT-компиляция (Just-In-Time) в машинный код, который затем выполняется. При этом, поскольку наше приложение может быть большим и содержать кучу инструкций, в текущий момент времени будет компилироваться лишь та часть приложения, к которой непосредственно идет обращение. Если мы обратимся к другой части кода, то она будет скомпилирована из CIL в машинный код. При том уже скомпилированная часть приложения сохраняется до завершения работы программы. В итоге это повышает производительность.
По сути это все, что вкратце надо знать о платформе .NET и языке C#. А теперь создадим первое приложение.
