Приложения на платформе net можно создавать с помощью
Программист пишет программу, компьютер её выполняет. Программа создается на языке, понятном человеку, а компьютер умеет исполнять только программы, написанные на его языке – в машинных кодах. Совокупность средств, с помощью которых программы пишут, корректируют, преобразуют в машинные коды, отлаживают и запускают, называют средой разработки, или оболочкой.
Среда разработки обычно содержит:
- текстовый редактор, предназначенный для ввода и корректировки текста программы;
- компилятор, с помощью которого программа переводится с языка, на котором она написана, в машинные коды;
- средства отладки и запуска программ;
- общие библиотеки, содержащие многократно используемые элементы программ;
- справочную систему и другие элементы;
Важнейшими задачами при создании программ являются:
-переносимость – возможность выполнения на различных типах компьютеров;
-безопасность – невозможность несанкционированных действий;
-надёжность – способность выполнять необходимые функции в определённых условиях;
-использование готовых компонентов – для ускорения разработки;
-межъязыковое взаимодействие – возможность применять одновременно несколько языков программирования.
Среда CLR может быть реализована для любой операционной системы. При выполнении программы CLR вызывает так называемый JIT-компилятор, переводящий код с языка IL в машинные команды конкретного процессора, которые немедленно выполняются. JIT означает «just in time», что можно перевести так «вовремя», то есть компилируются только те части программы, которые требуется выполнить в данный момент. Каждая часть программы компилируется один раз и сохраняется в кэше (область ОП для временного хранения информации) для дальнейшего использования.
Сборка (.exe или .dll)
Компилятор в качестве результата своего выполнения создаёт так называемую сборку – файл с расширением exe или dll, который содержит код на языке IL и метаданные. Метаданные представляют собой сведения об объектах, используемых в программе, а также сведения о самой сборке. Они позволяют организовать межъязыковое взаимодействие, обеспечивают безопасность и облегчают развёртывание приложений, то есть установку программ на компьютеры пользователей.
Сборка может состоять из нескольких модулей. В любом случае она представляет собой программу, готовую для установки и не требующую для этого ни дополнительной информации, ни сложной последовательности действий. Каждая сборка имеет уникальное имя.
Над этим слоем находится набор классов, позволяющий работать с базами данных и XML. Классы самого верхнего уровня поддерживают разработку распределенных приложений, а также веб- и Windows-приложений. Программа может использовать классы любого уровня. Библиотека классов вместе с CLR образуют каркас (framework), то есть основу платформы.
- Windows-приложение использует элементы интерфейса Windows, включая формы, кнопки, флажки и пр.;
- консольное приложение выполняет вывод на экран «на консоль», то есть в окно командного процессора;
- библиотека классов объединяет классы, которые предназначены для использования в других приложениях;
- веб-приложение – это приложение, доступ к которому выполняется через браузер (например, Internet Explorer) и которое по запросу формирует веб-страницу и отправляет её клиенту по сети;
- веб-сервис – компонент, методы которого могут вызываться через Интернет.
Консольные приложения
Консольные приложения наилучшим образом подходят для изучения языка, так как в них не используется множество стандартных объектов, необходимых для создания графического интерфейса.
Заготовка консольной программы
static void ]Main(string[ ] args)
//основное тело программы
Console.WriteLine(“Любая строка текста”);
Директива using System разрешает использовать имена стандартных классов из пространства имен System непосредственно без указании я пространства. Ключевое слово namespace создает для проекта собственное пространство имен, названное по умолчанию ConsoleApplication1. Это сделано для того, чтобы можно было давать программным объектам имена, не заботясь о том, что они могут совпасть с именами в других пространствах имен.
Console – имя стандартного класса из пространства имен System. Его метод WriteLine() выводит на экран заданный в кавычках текст.
Вопросы для самоконтроля
Что такое среда разработки программ?
Опишите состав любой среды разработки.
Перечислите основные требования к программам.
В чем отличие платформы . NET от стандартного подхода к разработке программ.
Что такое язык IL, из чего он состоит?
Что такое среда CLR?
Что такое компилятор JIT, его функциональное назначение?
Что такое сборка, метаданные?
Что составляет основу платформы . NET?
Изобразите заготовку консольной программы.
Тут вы можете оставить комментарий к выбранному абзацу или сообщить об ошибке.
После изучения основ функционирования платформы Microsoft . NET Framework мы рассмотрим основные типы приложений, которые можно разрабатывать на базе . NET Framework. Несмотря на то, что курс посвящен разработке веб-приложений, современному специалисту необходимо быть в курсе того, какие еще виды приложений можно разрабатывать в рамках платформы.
Поскольку . NET Framework – это мощнейшая платформа для разработки приложений, она дает возможность разрабатывать приложения совершенно различного типа. При этом, важным достоинством . NET Framework является то, что функциональность библиотеки базовых классов доступна во всех типах приложений. Это означает, что разработав библиотеку для . NET Framework ее можно одинаково удобно использовать как в настольных приложениях, так и в веб-приложениях, в веб-сервисах и т.д. (см. далее).
В целом, все приложения можно разделить на несколько типов:
Для каждого из приведенных типов приложений в составе . NET Framework существуют соответствующие технологии, которые позволяют создавать приложения. Кроме того, . NET Framework содержит общие библиотеки, которые можно использовать в разных типах приложений. К таким библиотекам можно отнести библиотеки:
- для работы со строками;
- для работы с математическими функциями;
- для работы с графикой;
- доступа к данным;
- для работы с файлами и другими операциями ввода-вывода;
- для выполнения криптографических операций;
- для организации синхронизации данных между источниками данных;
- и огромное количество других библиотек.
Давайте обзорно рассмотрим каждый тип приложений. Как уже было отмечено выше, для каждого из типов приложений в составе платформы . NET Framework существуют специальные шаблоны проектов.
Настольные приложения отличаются тем, что запускаются непосредственно на компьютере пользователя. Это – наиболее распространенный тип приложений. Настольные приложения обычно имеют доступ к ресурсам компьютера пользователя, таким как жесткий диск , звуковое оборудование и т.д. К достоинствам такого типа приложений можно отнести интерактивность пользовательского интерфейса и возможность работы приложения вне зависимости от подключения к сети Интернет и другим ресурсам. Однако, для работы таких приложений их необходимо устанавливать на локальный компьютер .
Настольные приложения можно разделить на три вида – оконные приложения, консольные приложения и службы Windows . Оконные приложения обладают графическим интерфейсом. Консольные приложения обычно имеют вид командной строки, а интерфейс таких приложений является текстовым, а не графическим. Наконец, службы Windows вовсе не имеют пользовательского интерфейса, а работают в фоновом режиме.
Для построения приложений с оконным графическим интерфейсом в рамках платформы . NET Framework могут использоваться технологии Windows Forms (доступно начиная с . NET Framework 1.0) и Windows Presentation Foundation (доступно начиная с . NET Framework 3.0). Последняя технология является более новой и перспективной.
На рисунке ниже показано окно создания проекта на . NET Framework. Как видно, доступны все описанные выше типы проектов.
Для создания веб-приложений в рамках платформы . NET Framework используется платформа Microsoft ASP . NET . Это – универсальный и мощный механизм, который позволяет строить высокоэффективные и мощные веб-приложения. Далее этот курс будет посвящен изучению платформы Microsoft ASP . NET и сопутствующим ей технологиям.
На рисунке ниже показано окно создания проекта веб-приложения на . NET Framework
Поскольку веб-приложения обладают серьезным недостатком – ограниченными возможностями по формированию интерфейса пользователя – появился новый тип приложений, который называется богатые интернет-приложения или интернет-приложения с богатым пользовательским интерфейсом (Rich Internet Applications, RIA). Идеология этих приложений состоит в том, что в браузер интегрируется специальное дополнение (plugin), которое способно отображать дополнительный тип содержимого . После этого, когда пользователь отрывает страницу в браузере, на сторону клиента передается программный код, который работает в рамках этого дополнения. Поскольку в этом случае весь код отрабатывает на стороне клиента, у разработчиков появляется больше возможностей по формированию пользовательских интерфейсов.
Для построения подобного типа приложений существует несколько технологий. Одна из наиболее известных технологий – это технология Adobe Flash . Кроме того, существует также технология Microsoft Silverlight, которая позволяет наиболее удобно интегрироваться с остальными технологиями в рамках . NET Framework.
Зачастую возможности по построению приложений RIA комбинируют с построением обычных веб-приложений.
Другим типом приложений являются сервисы (или веб-сервисы). Сервисы – это некий программный код, который расположен на сервере и запускается по запросу от пользователя. Например, можно создать набор сервисов по работе с данными из базы данных , хранящейся на сервере. Обычно, другие типы приложений (настольные приложения, веб-приложения и т.д.) обращаются к сервисам с целью выполнить какую-либо операцию на сервере или получить с сервера данные.
Также существуют дополнительные ответвления проекта WCF – это WCF Syndication Extensions (WCF REST) и ADO . NET Data Services. Эти проекты разработаны для того, чтобы можно было удобно строить сервисы доступа к данным.
Наконец, последним типом приложений являются мобильные приложения. Мобильные приложения работают в рамках мобильных устройств на базе операционной системы Windows Mobile . Для мобильных устройств также существует реализация подмножества возможностей . NET Framework, которая называется . NET Compact Framework.
Таким образом, весь спектр технологий в рамках платформы . NET Framework можно представить следующей схемой.
В этой лекции мы рассмотрели возможности платформы . NET Framework для создания различных типов приложений. Видно, что платформа содержит набор инструментов для создания приложений практически для любой ситуации. Возможность создания всевозможных типов приложений и делает . NET Framework очень мощной платформой.
Краткие итоги
Платформа . NET Framework является мощным инструментом для разработчика, поскольку содержит большое обилие технологий для создания приложений. Основные типы приложений, которые можно создавать на базе . NET Framework – настольные приложения, веб-приложения, интернет -приложения с богатым пользовательским интрефейсом, веб-сервисы, мобильные приложения и др. Для каждого типа приложений . NET Framework содержит набор инструментов и технологий.
Пример 1
Для начала создадим и запустим консольное приложение Hello World (я буду использовать PowerShell для Windows, но в Bash для macOS или Linux все делается аналогично).
Команда dotnet new делает то же самое, что элемент меню File – New Project в Visual Studio. С её помощью можно создавать проекты различных типов. Используйте команду dotnet new , чтобы вывести список предустановленных шаблонов.
Давайте переместим часть логики в библиотеку классов. Для этого в дополнение к проекту hello создадим проект библиотеки классов.
Переименуем файл Class1.cs в HelloWorld.cs .
Чтобы использовать класс HelloWorld , нужно добавить в приложение hello ссылку на библиотеку, в которой содержится логика. Для этого можно изменить файл проекта или воспользоваться командой dotnet add reference .
Теперь изменим файл Program.cs так, чтобы в нем использовался класс HelloWorld .
Обновление файла Program.cs для дальнейшего использования класса HelloWorld:
Чтобы собрать и запустить приложение, введите команду dotnet run .
В командной строке также можно создавать тесты. Этот CLI поддерживает MSTest , а также популярную платформу xUnit . Давайте для примера воспользуемся xUnit.
Чтобы добавить тест, измените содержимое файла UnitTest1.cs , как показано ниже.
Добавление теста в файл UnitTest1.cs:
Теперь можно запустить тесты с помощью команды dotnet test .
Пример 2
Чтобы запустить тестовый веб-сервер, вновь введите команду dotnet run .
Откройте в браузере URL-адрес, который был выведен в консоли (это должен быть адрес localhost:5000).
Сейчас структура вашего проекта должна соответствовать вот такой структуре.
Структура созданного проекта:
Чтобы упростить редактирование файлов в Visual Studio, создадим файл решения *.SIN и добавим в него все проекты.
BCL — это набор базовых API, не зависящих от инфраструктур пользовательского интерфейса и моделей приложений. В него входят простые типы, файловый ввод-вывод, сетевые API, API сериализации, XML и другое.
Пример 3
Сравним его с файлом проекта консольного приложения hello.
Пример 4
Эта библиотека поддерживает дополнительные типы коллекций, которых нет в BCL. Один из них — тип Bag , не гарантирующий какого-либо порядка элементов. Изменим наше приложение hello так, чтобы в нем использовался этот тип.
Пример приложения с использованием PowerCollections:
Если вы запустите программу, то увидите следующее:
Компилятор выкинул warning но программа отработала!
Если вы снова запустите приложение, предупреждения уже не будет. Однако, если вы установите другой пакет, в котором используется режим совместимости, появятся новые предупреждения. При необходимости их тоже можно будет отключить.
Заключение
Как настроить такую публикацию на примере консольного приложения?
На самом деле процесс настройки такой публикации ничем не отличается от того, что мы привыкли видеть в соответствующем мастере Visual Studio проходя все его окна. Отличие появляется только в самом конце настройки, так как для публикации в режиме «автономного исполняемого файла» требуется изменить значения от одного до трёх параметров (в зависимости от того, что вы хотите получить в итоге) заданные по умолчанию.
В случае необходимости эти параметры можно изменить в уже готовом профиле публикации. В частности, при публикации в папку изменить данные параметры в мастере на этапе его первоначальной настройки невозможно.
Для этого выберите профиль и нажмите ссылку «Показать все параметры».
В появившемся окне установите для параметра «Режим развёртывания» значение «Автономное».
По умолчанию параметр «Целевая среда выполнения» имеет значение «win-x86». Если вы планируете публиковать приложение для другой платформы вам нужно указать соответствующую платформу, как показано на скриншоте ниже.
К сожалению, в данном режиме один профиль публикации поддерживает только одну среду выполнения. Поэтому, чтобы каждый раз не менять значение параметров лучше сразу создать для каждой требуемой среды выполнения отдельные профили.
Для того чтобы сохранить внесённые изменения нажмите кнопку «Сохранить».
После публикации приложения мы увидим в соответствующей папке все необходимые файлы.
Для простейшего консольного приложения (стандартный шаблон Visual Studio с «Hello, world!» получилось в общей сложности 225 файлов с общим размером порядка 58 МБ.
Многовато для «Hello, world!», но такова плата за автономность.
В прочем существует способ сократить количество и, правда в незначительной степени, размер выходных файлов. Для этого нужно включить опцию «Создать отдельный файл», как показано ниже.
В этом случае создаётся всего 6 файлов с общим размером чуть больше 52 МБ.
При этом основная часть приходится на исполняемый файл приложения (в нашем примере это ConsoleApp1.exe)
Данное обстоятельство также необходимо учитывать при подготовке приложения к выпуску.
Если вы используете для публикации приложений ClickOnce, то настройка несколько упрощается так как в этом случае мастер позволяет задать нужные настройки ещё на этапе создания профиля публикации.
В случае же, например, десктопных приложений или standalone сервисов такой подход может оказаться вполне оправданным.
Читайте также:
- Не обновляются приложения на компьютере
- Как сделать чтоб карта сбербанка отображался на телефоне
- Как найти карту сбербанка если потерял дома с помощью телефона приложение
- Знаешь ли ты грибы вырежи картинки из приложения и расположи их в соответствующих окошках не
- Как сделать приложение для lg smart tv