Создание программного обеспечения для windows

Время на прочтение
4 мин

Количество просмотров 77K

Всем привет! Вы, наверняка, уже слышали новости про то, что за первые 4 недели Windows 10 установили уже более 75 миллионов человек. В таком контексте мы особенно рады поделиться с вами вводной статьей от Арсения Печенкина из компании DataArt о том, как начать разрабатывать приложения под десятку.

Тем, кто сомневается, ставить или нет на любимую машину Windows 10, предлагаем небольшой обзор материалов о платформе, инструментах разработки и новых возможностях, доступных при разработке приложений.

Думаю, все уже знают откуда и как взять свою копию ОС Windows 10, — не станем задерживаться на этом моменте. Установка производится аналогично установке Windows 8. Если собираетесь обновить систему, настоятельно рекомендую сделать бэкап файлов с системного диска.

Инструменты

Какие инструменты для разработки можно использовать? Вам понадобится новая MS Visual Studio 2015. Сейчас доступны бесплатная редакция Visual Studio 2015 Community Edition и платные редакции Professional и Enterprise.

Еще потребуются Windows 10 SDK и эмулятор Windows 10 Mobile. Эти пакеты можно поставить вместе с Visual Studio 2015 (если выбрать custom-установку и выбрать для установки эти пакеты, пока только в RC) или скачать отдельно.

Документация

Кроме инструментов разработки, необходимо иметь документацию по платформе. Основная информация собрана на официальном портале для разработчиков. Тем, кто только знакомится с разработкой под Windows 10, рекомендую обратить внимание на следующие разделы:

  • новое в платформе;
  • практические руководства;
  • справочник по API;
  • гайдлайны по дизайну;
  • форум для обсуждения проблем.

Какое-то время назад почти все разделы по разработке под Windows 10 вели на разделы про разработку под Windows 8.1, но после релиза документацию постепенно обновляют (с учетом того, что UWP-платформа для Windows 10 является развитием WinRT).

Online-курс в Microsoft Virtual Academy

Для тех, кто предпочитает аудио-визуальный формат знакомства с платформой, есть вводный курс: A Developer’s Guide to Windows 10.

В курсе рассказаны основные особенности платформы, моделей и инструментов, доступных для создания приложений Windows. Рассмотриваются несколько основных сценариев, которые реализуются в приложении: работа при малом объеме памяти, фоновое выполнение задач, коммуникация между устройствами, управление файлами и данными и методы взаимодействия с пользователем.

Лицензия и разблокировка устройства

Как и при разработке для Windows 8/8.1, потребуется лицензия разработчика. Она получается аналогично лицензии разработчика Windows 8/8.1 при создании первого проекта прямо в Visual Studio (это не то же самое, что аккаунт для публикации в магазине). Для установки приложений на устройства не забудьте их разблокировать:

Универсальные приложения

Что нового ждет разработчика? Анонсировано, что универсальное приложение можно запустить на любой платформе Windows 10. Это реализовано через систему различных API. То есть существует слой API, общий для всех платформ (Universal Windows Platform, UWP). Если приложение использует только его возможности, оно будет работать на всех платформах c UWP.

Если требуется использование специфических возможностей платформы (например, работа с аппаратными кнопками на смартфоне), то вы можете исползовать соответствующие API через платформенные расширения. Данная функциональность будет работать только на платформах, где есть эти API, поэтому в коде нужно встраивать проверки доступности соответствующих методов и классов.

Шаблоны

Из коробки в Visual Studio нам доступен только один шаблон проекта Blank App.

Это проект для одностраничного универсального Windows-приложения, в котором нет предопределенных элементов управления и структуры.
Кроме стандартного шаблона, можно найти шаблоны от сообщества разработчиков.

Сейчас в коллекции представлены следующие шаблоны проектов:

  • Blank App, основной проект XAML с одной страницей. Подобен стандартному Blank App, включенному в 10 SDK Windows, но без Application Insights телеметрии.
  • SplitView App, многостраничный проект приложения с адаптивным SplitView-контролом.
  • Composition App, проект, не использующий стандартную библиотекуи компонентов, вместо нее используется Windows.UI.Composition API,
  • Composition XAML App, проект с использованием XAML и Windows.UI.Composition API.

Примеры

Для облегчения входа в платформу UWP Microsoft подготовил пополняемую коллекцию примеров:

  • Примеры работы с UWP [zip]
  • Готовые примеры приложений:
    • Traffic app: код [zip]
    • Quiz game: код [zip]
    • RSS reader: код [zip]

Портирование приложений

Приятный момент для разработчиков — возможность переноса приложений Windows 8.1 на Windows 10 (инструкция, видео). Если у вас было приложение под Windows Phone Silverlight, есть отдельная инструкция по портированию приложения на UWP.

Итоги

Windows 10 уже доступна всем желающим, к услугам разработчиков — SDK и инструменты разработки. При наличии опыта создания приложений под Windows 8, освоение новой платформы будет легким и не потребует много времени.

Об авторе

Арсений Печенкин, .NET-разработчик в компании DataArt. Участник и победитель конкурсов и хакатонов: Hackaphone KASPESRKY lab, Hackaphone Tour Voronezh 2013, хакатон Apps4all и Imagine Cup 2014. Аспирант ВГТУ по специальности «Математическое и программное обеспечение вычислительных машин, комплексов и компьютерных сетей». Участник и докладчик на технологических конференциях (Droidcon Moscow 2014, GDG DevFest Voronezh 2014, Microsoft Developer Tour 2015 Voronezh).

Cоздать программу самому? Это очень просто! Не верите? Давайте сделаем небольшую программу, которая станет вашей отправной точкой в мир программирования.

Многие из нас постоянно работают с программами, сложными и попроще, но многие не задумываются, а что-же на самом деле есть программа. Если описать коротко, то программа — это набор инструкций, которые отдаются компьютеру в соответствии с логикой, которую в программу заложил программист. 

Не буду рассуждать на тему зачем может потребоваться писать самостоятельно программу, у каждого свои причины. Оговорюсь сразу, что в данной статье будет использоваться язык программирования C# и среда разработки Microsoft Visual Studio, у которой имеется бесплатная редакция, возможностей которой хватит «за глаза» любому.

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

Из выше сказанного, написание программы можно разделить на следующие этапы:

  1. Определение цели, какую задачу ваша программа помочь вам решить
  2. Разработка алгоритма работы программы.
  3. Дизайн пользовательского интерфейса. 
  4. Написание логики программы. На этом этапе вдыхается жизнь в вашу програму. Это и есть наиболее важный этап создания программы, для успешной реализации которого понадобится много знаний и умений.
    Где взять знания и умения? Книги, профильные сайты, курсы. Сейчас в интернете можно найти бесчисленное множество обучающих материалов, посвященных данной теме.
    Отдельно хочется упомянуть ресурсы для освоения C#:

    • бесплатную книгу Fundamentals of Computer Programming with C#
    • сайт METANIT.COM
    • Документация по C# на сайте Microsoft

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

Да, в блокноте вполне реально создать программу, но на это у вас уйдет гораздо больше времени и такими «извращениями» могут заниматься реально крутые программисты. Для остальных-же Microsoft Visual Studio — это именно тот инструмент, который будет помогать создавать новые и управлять существующими проэктами.

Из ключевых возможностей Visual Studio хочется отметить:

  • Разработка для популярных платформ Windows, Linux, MacOS
  • Веб разработка: ASP.NET, Node.js, Python, JavaScript, and TypeScript
  • Популярные языки программирования: C#, C++, Visual Basic, Python, JavaScript
  • Визуальное редактирование пользовательского интерфейса
  • IntelliSense — интеректуальный помощник при написании кода
  • Управление версиями. Интеграция с GitHub
  • Совместная разработка
  • Расширение возможностей путем установки дополнений.

Поэтому Microsoft Visual Studio — это именно то, с чего стоит начать свою карьеру программиста. 

Примечание.
Ранее, когда Visual Studio не была бесплатной, как альтернативу можно было рассматривать SharpDevelop, бесплатную IDE с открытым исходным кодом, которая предоставляла функционал сходный с Visual Studio и в некоторых случаях его было достаточно для создания проэктов любой сложности. Но теперь, в виду стагнации процесса разработки SharpDevelop, и стремительного развития Visual Studio, альтернативы продукту от Microsoft просто нет.

Загрузите и установите последнюю версию, которая доступна для загрузки на сайте разработчика. С этим не должно возникнуть сложностей. После установки запустите среду разработки.

Давайте создадим программу — калькулятор. Почему-бы и нет? Изобретать велосипед — это-же так весело! :) А если серъезно, то ничего зазорного в этом нет, ведь клепают-же хелловорлды во всех учебниках и не стесняются. Мы в этом плане даже чем-то лучше.

Как уже оговаривалось выше, язык программирования будет использован C#,

  1. Нажимаем кнопку Create a new project.
  2. Шаг Create new project:

    • Выбираем фильтр:

      • Язык программирования: C#
      • Платформа: Windows
      • Тип проекта: Desktop
    • Выбираем Windows Forms App (Net. Framework) — нажимаем Next
  3. Шаг Configure your project:
    Название проэкта: CalculatorApp
    Название решения: Calculator.
    Framework: Оставляем по умолчанию, на данном этапе не важно какая версия Net. Framework
  4. Нажимаем Create

Открылось главное окно Visual Studio,

Перетащите кнопку Button на форму главного окна, только что созданного проекта.

Эта кнопка не делает ничего связанного с вычислениями — при её нажатии будет закрываться программа. На примере этой кнопки вы увидите насколько просто наполнять окно программы необходимыми элементами пользовательского интерфейса.

Настройте только что добавленную кнопку в панели свойств:

  • Свойство Text, меняем значение на Close
  • Name меняем на bnClose
  • Anchor: Bottom,Right

Добавьте обработчик события нажатия кнопки: делаем двойное нажатие на кнопке, программа автоматически создаст необходимый метод bnClose_Click. Внутри метода пишем: this.Close();

private void bnClose_Click(object sender, EventArgs e)
{
	this.Close();
}

Запускаем программу:

При нажатии кнопки Close, окно программы закроется, в след за этим завершит работу и сама программа.

Примечание
За всеми проделанными выше действиями с созданием конпки и редактирования ее свойств, лежит создание кода программы средой разработки VisualStudio.

Откойте файл Form1.Designer.cs. Как видите, все те действия, что вы делали в настройках, отображены здесь в виде кода программы:

// 
// bnClose
// 
this.bnClose.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
this.bnClose.Location = new System.Drawing.Point(750, 350);
this.bnClose.Name = "bnClose";
this.bnClose.Size = new System.Drawing.Size(75, 23);
this.bnClose.TabIndex = 0;
this.bnClose.Text = "Close";
this.bnClose.UseVisualStyleBackColor = true;
this.bnClose.Click += new System.EventHandler(this.bnClose_Click);

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

Примечание
Если вы поставили Visual Studio и хотите изменить язык интерфейса на другой язык, то это можно сделать в настройках программы Tools — Options — Internetional Settings. Если языка, который вам нужен нет в списке, доустановите его через Microsoft Visual Studio Installer. После этого опять откройте Tools — Options — Internetional Settings, и измените язык интерфейса.

Сделаем что-нибудь посложнее, чем просто вывод текста на экран

В большинстве учебников для начинающих программистов первая программа выводит простое сообщение «Hello world!». Мне кажется это немного тупо, так как для того, чтоб заинтересовать начинающего программиста, нужно показать нечто большее и полезное, нежели просто окно с текстом.

Для того чтоб оценить возможности языка программирования C# и .Net Framework, давайте в нашей программе реализуем возможность выполнения простейших арифметических операций. Мне кажется это будет гораздо полезней.

Итак, давайте создадим следующие элементы интерфейса программы

  • Четыре кнопки:

    • Сложение

      • Text: «+»
      • Name: bnPlus
    • Вычитание

      • Text: «-«
      • Name: bnMinus
    • Умножение

      • Text: «*»
      • Name: bnMult
    • Деление

      • Text: «/»
      • Name: bnDiv
  • Три текстовых поля: два для выполнения арифметических операций и один для результата.

    • Оператор 1

      • Name: tbOperand1
    • Оператор 2

      • Name: tbOperand2
    • Результат

      • Name: tbResult
  • Надписи (Labels) для них имя не важно, так как к ним мы обращаться не будем, но лучше имя все-таки дать:

    • Name: lblOperand1
    • Name: lblOperand2
  • Кнопка закрытия окна осталась из примера, рассмотренного ранее

Примечание: Очень удобно использовать копирование элементов пользовательского интерфейса. Для того, чтоб это сделать, нужно выделить элементы, которые нужно скопировать и при нажатой кнопке Ctrl, потянуть мышью выделенные элементы в сторону.

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

Попробуйте закончить настройку внешнего вида программы, чтоб она стала выглядеть так:

Высота текстового поля tbResult регулируется за счет изменения размера шрифта.

Обратите внимание, что имя элементов назначаются автоматически и, если не давать им осмысленные имена, и при достаточно большом их количестве, очень легко потеряться в хаосе, состоящем из элементов с названиями button1, button2, button3, textBox1, textBox2, textBox3 и так далее. Сразу после создания элементов, не ленитесь, давайте им осмысленые имена — дальше, при создании обработчиков событий, имена методов будут генерироваться автоматически на основании имени элемента управления. Думаю никто не сомневается в том, что имя метода ButtonAdd_Click() гораздо более осмысленно, чем Button1Click()

Назначим обработчики событий нажатия кнопок

Выбираем по очереди каждую кнопку.Даблкликом создаем обработчик нажатия кнопки(Click). Если нужно добавить обработчик другого события, или выбрать уже существующий метод — следует открыть вкладку События (значок в виде молнии)  и там уже выбрать необходимое событие.

Пишем код обработчика

private void bnAdd_Click(object sender, EventArgs e)
{
	tbResult.Text = (float.Parse(tbOperand1.Text) + float.Parse(tbOperand2.Text)).ToString();
}

private void bnSubstr_Click(object sender, EventArgs e)
{
	tbResult.Text = (float.Parse(tbOperand1.Text) - float.Parse(tbOperand2.Text)).ToString();
}

private void bnMultiply_Click(object sender, EventArgs e)
{
	tbResult.Text = (float.Parse(tbOperand1.Text) * float.Parse(tbOperand2.Text)).ToString();
}

private void bnDivide_Click(object sender, EventArgs e)
{
	tbResult.Text = (float.Parse(tbOperand1.Text) / float.Parse(tbOperand2.Text)).ToString();
}

Как видите, все методы-обработчики отличаются только одним символом. Это не есть красиво, но наведением порядка в коде мы займемся немножко позже. Сейчас для наглядности путь обработчики событий нажатия кнопки остаются как есть.

Давайте на примере операции сложения разберем как работает наша программа.

tbResult.Text = (float.Parse(tbOperand1.Text) + float.Parse(tbOperand2.Text)).ToString();

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

  1. float.Parse(tbOperand1.Text) — Извлекается значение свойства Text переменной tbOperand1 и передается в качестве параметра статичскому методу Parse() типа System.Single результат записывается в промежуточную переменную A
  2. float.Parse(tbOperand2.Text) — то-же самое, результат записывается в промежуточную переменную B
  3. Производится сложение промежуточных переменных (A + B) в промежуточную переменную C
  4. C.ToString() — Преобразовуется переменная C в строку. Так как любая переменная в C# это объект, то путем обращения к методу ToString() этого объекта мы можем получить его строковое представление.

Более сложные типы, такие как DateTime, могут иметь несколько мeтодов ToString().

Проверяем работу программы

Нажмите кнопку Пуск на панели инструментов, или нажмите клавишу F5

Программа работает и делает то, что от нее требовалось:

Обратите внимание, что я пока не реализовал проверку вводимого значения в текстовое поле. Если ввести в него некорректное значение — программа выдаст сообщение об ошибке, в которой сообщается, что вы пытаетесь преобразовать в числовое значение неправильную строку:

Давайте теперь перепишем программу, чтоб она могла выводить предупреждение, в случае, если было введено некорректное значение одного из операторов. Скопируйте следующий метод к себе в файл Form1.cs, там где находятся остальные обработчики *_Click:

private void bnMathAction_Click(object sender, EventArgs e)
{
	// эти переменные нужны для out параметров float.TryParse(string s, out v)
	float A, B;
	// Эта строковая переменная хранит имя кнопки, 
	// будет использована для определения того, какая кнопка нажата
	string senderName = ((Button)sender).Name;

	// if(bool && bool)
	// оба метода должны вернуть истину
	if (float.TryParse(tbOperand1.Text, out A) && float.TryParse(tbOperand2.Text, out B))
	{
		// Проверяем по имени какая кнопка нажата и в соответствии с выбором
		// вызываем требуемую арифметическую операцию
		switch (senderName)
		{
			case "bnAdd":
				tbResult.Text = (A + B).ToString();
			break;
			case "bnSubstr":
				tbResult.Text = (A - B).ToString();
				break;
			case "bnMultiply":
				tbResult.Text = (A * B).ToString();
				break;
			case "bnDivide":
				tbResult.Text = (A / B).ToString();
				break;
		}
	}
	else
	{
		MessageBox.Show("Неправильно введено значение оператора!");
	}
}

Этот метод принимает параметр  object sender, который используется для определения того, какая кнопка была нажата. Здесь использован основополагающий принцип ООП — Полиморфизм. Объект типа Button можно абстрагировать до типа object, но при этом информация, специфичная для типа Button никуда не пропала — для того, чтоб к ней обратиться, нужно sender привести к типу Button. Например:

Button btn = new Button(); // Объект типа Button
object obj = new object(); // Объект типа object

// Объект типа Button является наследником типа object, поэтому возможно неявное преобразование типа
object obj2 = btn;
object obj3 = new Button() { Name = "bnTest", Text = "Test"};

//obj3.Text = "Test 1"; // Ошибка. Нельзя напрямую обратиться к полю Text
((Button)obj3).Text = "Test 1"; // А вот так обратиться к полю Text  вполне даже можно

// Тип object не может стать типом Button. Рожденный ползать летать не может
//Button btn2 = obj;         // Ошибка. 
//Button btn2 = (Button)obj; // Ошибка. 

Теперь перейдите в конструктор формы (Shift + F7) и для каждой кнопки, в качестве обработчика события Click выберите метод bnMathAction_Click.

Если перейти к коду, то можно увидеть, что ссылок на этот метод стало четыре, а на остальные методы обработчики теперь никто не ссылается — ссылок ноль. Их можно спокойно удалить.

В итоге вы должны получить файл Form1.cs следующего вида:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace CalculatorApp
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void bnClose_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        private void bnMathAction_Click(object sender, EventArgs e)
        {
            // эти переменные нужны для out параметров float.TryParse(string s, out v)
            float A, B;
            // Эта строковая переменная хранит имя кнопки, 
            // будет использована для определения того, какая кнопка нажата
            string senderName = ((Button)sender).Name;

            // if(bool && bool)
            // оба метода должны вернуть истину
            if (float.TryParse(tbOperand1.Text, out A) && float.TryParse(tbOperand2.Text, out B))
            {
                // Проверяем по имени какая кнопка нажата и в соответствии с выбором
                // вызываем требуемую арифметическую операцию
                switch (senderName)
                {
                    case "bnAdd":
                        tbResult.Text = (A + B).ToString();
                    break;
                    case "bnSubstr":
                        tbResult.Text = (A - B).ToString();
                        break;
                    case "bnMultiply":
                        tbResult.Text = (A * B).ToString();
                        break;
                    case "bnDivide":
                        tbResult.Text = (A / B).ToString();
                        break;
                }
            }
            else
            {
                MessageBox.Show("Неправильно введено значение оператора!");
            }
        }
    }
}

Код проекта доступен на GitHub.

Windows – одна из самых популярных операционных систем, и множество разработчиков мечтают создавать свои собственные приложения для этой платформы. Но разработка приложений может быть сложным и трудоемким процессом, особенно для новичков в программировании.

Расскажем о нескольких удобных конструкторах приложений для Windows, которые помогут вам реализовать свои идеи и превратить их в готовые программы. Дадим подборку, преимущества, примеры.

Подборка

1. Microsoft Power Apps: создание без программирования

Microsoft Power Apps позволяет создавать программы для Windows и других платформ без необходимости в программировании. Power Apps предоставляет набор интуитивно понятных инструментов для создания пользовательского интерфейса, управления данными и добавления логики.

Преимущества Microsoft Power Apps:

  • Простой и интуитивный интерфейс, позволяющий быстро создавать проекты.
  • Интеграция с другими сервисами Microsoft, такими как SharePoint и Microsoft 365.
  • Возможность использовать собственные данные или данные из внешних источников.

2. Appgyver Composer: мощный инструмент для профессиональных разработчиков

Appgyver Composer – инструмент, предназначенный как для новичков, так и для профессиональных разработчиков. Этот инструмент позволяет создавать, используя визуальные элементы и логику перетаскивания. При этом Composer предоставляет доступ к JavaScript для более сложной настройки и программирования.

Преимущества Appgyver Composer:

  • Обширный набор готовых компонентов и элементов интерфейса.
  • Возможность добавления собственного JavaScript кода для более сложной логики.
  • Многочисленные интеграции с внешними сервисами и API.

3. Mendix: разработка сложных бизнес-решений

Mendix – это конструктор приложений, специализирующийся на создании сложных бизнес-решений для Windows. Этот инструмент позволяет разрабатывать с использованием визуального программирования и подключать различные базы данных и API.

Преимущества Mendix:

  • Мощные возможности для создания сложных бизнес-решений.
  • Поддержка сотен интеграций с внешними сервисами и базами данных.
  • Командная работа и возможность отслеживания изменений в проекте.

4. AppMakr: для мобильных устройств

AppMakr – это конструктор, ориентированный на создание приложений для мобильных устройств, но также поддерживающий платформу Windows. Он для быстрого развертывания простых программ, таких как информационные брошюры, сайты, новостные ленты. Пригодится для информационных порталов, интернет-магазинов.

Преимущества AppMakr:

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

5. OutSystems: для корпоративных нужд

OutSystems – это конструктор с акцентом на создание корпоративных решений для Windows и других платформ. Этот инструмент предоставляет мощные возможности для разработки сложных решений, которые требуют более высокой степени индивидуализации и интеграции с существующими системами.

Преимущества OutSystems:

  • Гибкие инструменты для создания корпоративных решений.
  • Интеграция с различными базами данных и внешними API.
  • Поддержка низкоуровневого программирования для продвинутых разработчиков.

Заключение

Конструкторы приложений для Windows – инструменты проектирования приложений без программирования. Выберите конструктор из нашей подборки, так вы сможете воплотить свои идеи в жизнь и создать собственные функциональные программы для Виндовс.

Добрый день!

С выходом Windows 8, разработчикам был представлен абсолютно новый тип приложений – приложения в стиле Modern UI. Ну, как новый? Подобные приложения уже разрабатывались для Windows Phone. Данные приложения не имели ничего общего с привычными Windows-приложениями. Такие приложения не совместимы с предыдущими версиями Windows, обладают абсолютно новым интерфейсом (Modern) и для их разработки используется новый WinRT API (Windows Runtime API) и Windows XAML (язык разметки интерфейса).

Никаких проблем для написания только Windows 8-версии своего приложения не было, однако, если требовалось написать приложение не только для Windows, но и для Windows Phone, нужно было преодолеть определенные трудности. Все дело в том, что Windows Phone для своих приложений использует Silverlight и Windows Phone API, тогда, как Windows 8 использует Windows XAML и WinRT API. Они имеют некоторые существенные отличия.

Несведущему человеку может показаться, что никаких проблем это приносить не должно, хотя на деле каждая версия приложения должна быть написана с нуля полностью. Именно это является главной проблемой, так как объем работы, который требовалось выполнить, был колоссальным. Нет, конечно были способы для унификации некоторых частей приложения, но они трудны для начинающего разработчика.

В Microsoft знали об этой проблеме и долгое время работали над ее решением. Результатом этой работы стали так называемые универсальные приложения Windows (Universal Windows Apps), которые доступны начиная с Windows 8.1 Update 1 и Windows Phone 8.1 (которая до конца лета будет доступна для установки всем устройствам на Windows Phone 8). Можно предположить, что теперь приложения будут работать без перекомпиляции как на Windows, так и на Windows Phone, но это не совсем так.

Каждое приложение все так же будет создаваться и компилироваться отдельно для каждой платформы, но объем требуемой работы теперь существенно сократился. Все дело в том, что Microsoft наконец-то унифицировали большую часть API для Windows и Windows Phone. Больше всего изменений было выполнено именно на стороне Windows Phone. Отныне для написания приложений для этих двух платформ (скоро будет три, Xbox One туда же) используется WinRT API и Windows XAML. Конечно же привычный для Windows Phone Silverlight никуда не делся и даже обзавелся некоторыми дополнительными возможностями, но не о нем сейчас разговор.

Универсальные приложения теперь используют среду выполнения Windows (тот самый Windows Runtime). Эти нововведения позволяют программисту свести платформозависимый код к минимуму, ведь большинство вызовов к API идентичны.

Тестовое приложение

Сегодня предлагаю вам попробовать написать простое универсальное приложение, имя которому «Hello, World!». Писать будем на языке C# (требуются как минимум начальные знания языка и XAML). Для этого минимально нам понадобится:

• Windows 8.1 (x86)

• Visual Studio Express 2013 для Windows с обновлением 2

Это совсем минимально. С таким комплектом вы сможете разработать универсальное приложение и отлаживать его Windows-версию на своем текущем компьютере. Windows Phone-версию приложения вы сможете отлаживать только на реальном устройстве (причем требуется аккаунт разработчика).

Чтобы иметь возможность отлаживать свое приложение в эмуляторе Windows Phone, вам потребуется:

• Windows 8.1 Профессиональная (x64)

• Процессор с поддержкой аппаратной виртуализации для клиента Hyper-V (подходит даже бюджетный Celeron G1610 и вроде даже Pentium 4 на LGA775)

• Visual Studio Express 2013 для Windows с обновлением 2

С таким комплектом вы сможете разрабатывать свое приложение более полноценно и тестировать его в различных режимах с использованием имитатора Windows-планшета и эмулятора Windows Phone.

Я же буду использовать Visual Studio Ultimate 2013 и показывать все буду именно на ней. Не волнуйтесь, от бесплатной Express интерфейс практически не отличается. Начнем!

Универсальный «Hello, World!»

Запустим Visual Studio и создадим новый проект.

В разделе «Приложения Магазина Windows» есть различные шаблоны приложений как для Windows, так и для Windows Phone. Нас интересуют именно универсальные приложения, шаблоны которых доступны в специальном подразделе.

На выбор дается два варианта: пустое приложение и приложение с Hub (это такой классный элемент управления). Остановимся на пустом приложении, ведь мы пока только учимся, и сразу лезть в дебри не следует. Пойдем от простого.

Введите имя для создаваемого приложения. Я назвал его «UniversalHelloWorld», четко и ясно. Нажимаем «ОК» и ожидаем, пока Visual Studio создает проект. Давайте рассмотрим структуру созданного проекта.

Весь проект подразделен на три части:

• Windows — содержит код и элементы, доступные только Windows-версии приложения

• Windows Phone — содержит код и элементы, доступные только Windows Phone-версии приложения

• Shared – содержит код и элементы, которые доступны сразу для двух платформ

Обратите внимание, что на данный момент общим являются только один элемент: App.xaml ( и App.xaml.cs). Этот элемент отвечает за запуск и остановку приложения.

Вы уже можете попробовать запустить приложение. И для этого нажмите F5. Для прекращения отладки, вернитесь в Visual Studio и нажмите «Shift+F5». Вы должны увидеть пустой экран. Первоначально будет запущена Windows-версия приложения. Чтобы выбрать, какую версию приложения запустить, найдите на панели инструментов кнопку отладки (зеленый треугольник).

Здесь вы можете выбрать, где запускать отладку вашего приложения. Имитатор выполняет имитацию Windows-планшета, у которого вы можете менять ориентацию, разрешение дисплея и прочие вещи. Кнопка «Удаленный компьютер» предназначена для запуска отладки на внешнем Windows 8 устройстве. Я для этих целей использую Surface RT.

Вернемся к смене запускаемой версии. В подменю «Запускаемый проект» вы можете выбрать «Windows Phone 8.1». После этого содержимое базового меню изменится и на ваш выбор будет доступно множество эмуляторов.

Выберите желаемый эмулятор и запустите отладку. После того, как эмулятор запустится, вы увидите пустой экран своего приложения. После завершения отладки эмулятор закрывать совсем не требуется.

Пока каждая версия приложения имеет отдельную главную страницу MainPage.xaml. Так как наше приложения очень простое, нам совсем не требуется разный дизайн страницы на каждой платформе. Перенесите MainPage.xaml в раздел Shared, и затем удалите его из разделов Windows и Windows Phone. Структура проекта станет такой:

Открыв данный файл, вы увидите эту страну в визуальном редакторе, а также ее код разметки. Пока мы имеем следующий код:

Он всего лишь создает корневую сетку страницы, закрашенную стандартным цветом страницы. Давайте добавим на страницу одноименную надпись и кнопку для приветствия. Разместите в Grid элемент TextBlock. Код элемента будет таков:

Чтобы посмотреть, как страница выглядит в режиме планшета/десктопа и телефона, используйте выпадающий список над редактором кода.

Также добавим на страницу кнопку, которая покажет нам небольшое сообщение. Код этой кнопки такой:

Добавим для этой кнопки обработчик события ее нажатия (Click). Для этого дважды щелкните кнопку, и вы автоматически перейдете к редактору кода C#. Автоматически сгенерировался пустой обработчик:

Мы его еще наполним содержимым. В этом обработчике мы создадим экземпляр диалогового окна и вызовем его. Для начала добавьте следующую директиву using вверху страницы:

Она требуется нам для того, чтобы получить возможность создать и отобразить диалоговое окно. Создаем экземпляр класса MessageDialog с заданным сообщением, который как раз и представляет собой диалоговое окно, и затем показываем его методом ShowAsync().

Готово! Теперь можно запустить приложение на каждой из платформ и с радостью обнаружить, что все работает как надо.

Итог

На этом статья подходит к концу. Сегодня я постарался рассказать, как сделать наипростейшее универсальное приложение, которое может работать как на Windows 8.1, так и на Windows Phone 8.1. При написании этой статьи я ориентировался на новичков, поэтому пытался расписать все более-менее понятно для обычного человека, близкого к компьютерной технике (и программированию, конечно).

Я думаю, что это не последняя статья, и, возможно, получится даже небольшая серия статей. В следующей статье мы напишем уже не простой «ХеллоВорлд», а более интересное приложение, которое будет работать с некоторыми данными и будет иметь более сложный интерфейс.

Скачать исходный код проекта можно по этой ссылке.

С удовольствием отвечу на все ваши вопросы.

С уважением,

Роман Гладких.

Вы ищете руководство по разработке приложений для Windows 10 для начинающих? Существует множество причин, по которым вам может понадобиться разработка настольного приложения. Возможно, вы захотите упорядочить данные для своего бизнеса, чтобы все было легко доступно. Возможно, у вас есть идея создать компьютерную программу, игру, утилиту или приложение для коммерческого релиза. Возможно, вы придумали отличный способ помочь благотворительной организации или местной группе по соседству.

В любом случае, при правильном развертывании, приложения могут быть способом получения дохода или быть полезными для людей, автоматизируя задачи или помогая другими способами. Если вы хотите создавать приложения, которые имеют самый простой уровень или технические знания и оказывают наибольшее влияние, то стоит понимать, что, несмотря на популярность мобильных устройств, таких как телефоны и планшеты, целью номер один для разработчика программного обеспечения является настольный компьютер. Для большинства людей, благодаря успеху Microsoft, этот настольный компьютер, вероятно, работает под управлением Windows 10 или, в меньшей степени, его младшего брата Windows 11 .

Поэтому давайте поделимся с вами некоторыми основами разработки приложений для Windows 10.

Оглавление

Подходит ли вам настольное приложение?

Что касается приложений, у вас есть три основных варианта на выбор: настольные приложения, мобильные приложения или веб-приложения.

В то время как настольные приложения обладают мощностью и надежностью для удовлетворения ваших требований, веб-приложения не следует упускать из виду, но помните, что доставка веб-приложений требует некоторых компромиссов и подходящего — и безопасного — места для их размещения. Если вы храните или обрабатываете личные данные в своем приложении, вам следует изучить лучшие способы сделать это безопасно для веб-приложения. Также обратите внимание, что в разных странах и юрисдикциях могут быть свои собственные правила обработки, хранения и передачи любых личных данных, а также множество запутанных неочевидных правил, касающихся таких вещей, как файлы cookie веб-браузера и соображения доступности для пользователей с ограниченными физическими возможностями.

pexels josh sorenson 1714203

Стоит ли мне создавать мобильное приложение?

В то же время мобильные приложения также являются опцией в зависимости от требований проекта. Каждый из них имеет свои преимущества и недостатки, которые вы должны взвесить, чтобы ваше приложение было успешным. Но стоит отметить, что хотя мобильная разработка достаточно проста, особенно с помощью подходящего кроссплатформенного инструмента разработки, может быть много препятствий, которые нужно преодолеть. Например, развертывание мобильного приложения на Android может быть таким же простым, как компиляция приложения, а затем копирование его на устройство пользователя в качестве «специального» приложения. Но обычно это не так, большинству разработчиков приходится бороться с магазином приложений поставщика устройства. Для Apple это Apple App Store. Для Android это обычно Google Play Store или более ограниченный рынок для конкретного поставщика, например Samsung Galaxy Store.

Эти магазины могут быть отличным способом воплотить идею вашего приложения в «реальный мир», и очень приятно видеть, как люди действительно загружают и используют ваше мобильное приложение. Тем не менее, все эти магазины имеют обширный и иногда запутанный список правил, которым должно следовать ваше приложение, иначе оно будет либо вообще не разрешено в магазинах приложений, либо будет снято с продажи в будущем. Правила варьируются от простых вещей, таких как правильные значки, текст и изображения для страницы приложения в магазине приложений, и очевидных вещей, таких как правильная поддержка новейших устройств, до менее очевидных вещей, таких как отсутствие отдельной страницы регистрации для любые услуги подписки, если вы также не разрешаете пользователям регистрироваться по ссылке в приложении, которая проходит через способы оплаты владельца магазина приложений (чтобы гарантировать, что они получат свою долю прибыли).

Если вы знаете, что ваше приложение будет частью повседневной жизни пользователя, пользователям нужно будет копировать и вставлять в буфер обмена, будут отправляться уведомления или приложение будет использоваться без доступа к Интернету, выберите настольное приложение. Когда к чему-то нужно получить быстрый и частый доступ на компьютере пользователя, следует отдать предпочтение настольному приложению.

Есть ли у настольных приложений магазин приложений?

Одним словом, да, у Windows есть один, а также у Apple и некоторых типов Linux, хотя большинство разработчиков программного обеспечения, как правило, не используют магазин приложений и просто позволяют пользователям загружать приложение прямо на свой рабочий стол, обычно по ссылке на веб-странице. . Магазин приложений Windows недавно смягчил ряд своих правил, чтобы разработчикам было проще продавать или распространять из него свои приложения. В Windows 11 также есть возможность поддерживать приложения Android, которые могут работать на настольных компьютерах под управлением Windows 11. Microsoft также представила подсистему Windows для Linux или WSL. WSL позволяет пользователям Windows работать, а вам — разрабатывать приложения Linux на компьютере с Windows 10 или 11 . Это работает аналогично запуску приложений Android в Windows.

Вы рассматриваете возможность разработки кроссплатформенных приложений?

Итак, как только вы установили, что настольное приложение лучше всего соответствует вашим требованиям, вы должны решить, на какую настольную платформу ориентироваться. Вы можете выбирать между платформо-зависимым (собственным) и кросс-платформенным программированием. Приложения для конкретных платформ могут работать только на одной платформе, будь то macOS, Windows или Linux. Тем не менее, для самого широкого охвата Windows 10 и 11 по-прежнему являются наиболее широко используемой настольной операционной системой в мире с очень значительным отрывом.

Кроссплатформенная разработка

Кроссплатформенная разработка, которая позволяет вам создавать код приложения, который не привязан к одной конкретной целевой платформе, но может работать, например, на Windows, macOS и Linux с использованием одного и того же кода. Если вам требуется: быстрая разработка, более низкие накладные расходы на разработку и обслуживание, потенциально меньшее количество ошибок из-за меньшего количества кода и возможность одновременного запуска на нескольких платформах и расширения охвата.

RAD Studio и Delphi поддерживают широкий набор платформ разработки. Для RAD Studio доступны две ключевые среды разработки приложений: библиотека визуальных компонентов (VCL) и FireMonkey FMX. Выбор использования VCL означает, что ваше приложение может быть нацелено только на настольные компьютеры Microsoft Windows (Win32/Win64) или планшеты под управлением Windows, такие как MS Surface.

Приложения, написанные с использованием FMX, представляют собой кроссплатформенные приложения, которые могут поддерживать Android, iOS, macOS, Windows и Linux. Разработчики могут создавать и развертывать свои приложения на основе единого кода и пользовательского интерфейса с помощью FireMonkey FMX на всех этих платформах. Любые различия в «форм-факторе» устройств — например, iPad Pro имеет более высокое разрешение экрана и форму, отличную от iPhone SE или более старого телефона Android, — можно устранить с помощью специализированных макетов экрана, которые скомпилированы в приложение от RAD Studio.

Если вы тщательно спроектируете свои экраны, вам могут не понадобиться специально настроенные экраны, но часто они вам понадобятся; к счастью, это очень легко сделать с помощью RAD Studio.

pexels mateusz dach 450035

Является ли UWP устаревшим?

Очевидно, что мы сосредоточимся на средах разработки VCL и FMX, но как насчет других технологий, таких как UWP от Microsoft? Универсальная платформа Windows (UWP) была одной из многих вычислительных платформ, выпущенных Microsoft для разработчиков, и впервые была представлена ​​в Windows 10 .операционная система. Microsoft задумывала UWP как универсальную платформу, которая должна была помочь в разработке приложений за пределами операционной системы Windows. Еще в 2015 году предполагалось, что UWP позволит разработчикам ориентироваться не только на рабочий стол Windows, но и на другие устройства, такие как консоль Microsoft XBOX и систему смешанной реальности HoloLens, практически без изменений. UWP имел ряд проблем и технических ограничений, которые вызвали некоторые разногласия с известными организациями, такими как Epic Games. После некоторой капитуляции со стороны Microsoft кажется, что UWP устарела . Microsoft активно продвигает новые направления, включая многоплатформенный пользовательский интерфейс приложения .NET или систему .NET MAUI.

UWP был одним из многих выпущенных решений для разработки, которые можно было использовать для создания клиентских приложений для Windows. Однако за последние несколько лет произошли различные сдвиги в платформе Windows от Microsoft, связанные с поддержкой разработки приложений и платформ. Инновации, представленные для обеспечения работы приложений Android в более новых версиях Windows, и превосходный WSL показывают, насколько далеко Microsoft продвинулась в использовании других операционных систем и устройств, отличных от Windows, даже если эти приложения все еще работают на компьютере с Windows.

Как насчет разработки приложений для Microsoft Windows 10 и WinRT?

К тому времени, когда Microsoft выпустила Windows 10, они уже добавили новую систему, основанную на «бинарном интерфейсе приложений» (ABI), среду выполнения Windows, более известную как WinRT, которая была запущена с Windows 8. WinRT был нацелен на обслуживание «управляемых» языков программирования и обеспечивал поддержку C++, Rust, Python, JavaScript/TypeScript и, конечно же, собственных C# и Visual Basic от Microsoft.

Внедрение WinRT кажется консервативным и, возможно, более медленным, чем хотелось бы Microsoft. Разработчикам необходимо было перепроектировать часть своего кода из-за того, что WinRT был написан с использованием C++ и основан на объектно-ориентированной парадигме и модели асинхронного программирования, что для некоторых существующих кодовых баз могло быть препятствием для внедрения.

К счастью, RAD Studio предлагает сопоставления WinRT API и интерфейсы Object Pascal для поддержки таких служб Windows, как уведомления Win 10 и контракты Win 10. Разработчики могут использовать компоненты, которые мы предоставляем для приложений Windows для уведомлений и контрактов как в VCL, так и в FMX C++ и Object Pascal. Базовый механизм включения приложений Windows не беспокоит разработчиков, использующих RAD Studio, поскольку VCL и FireMonkey FMX позаботятся о деталях за нас. Вы пишете свой код на Delphi или C++ и управляете свойствами визуальных компонентов, таких как поля редактирования, метки, списки, деревья и т. д.; и невизуальные компоненты, такие как диалоги открытия/сохранения и уведомления, и пусть компилятор и библиотеки времени выполнения сделают всю тяжелую работу за вас. Зачем стараться больше?

Являются ли Delphi и VCL лучшим вариантом для разработки приложений для Windows 10?

Конечно, у вас есть возможность программировать, используя тот инструмент, который, по вашему мнению, вам подходит, но мы считаем, что для наибольшей производительности лучше использовать C++ и Delphi. Delphi и библиотека визуальных компонентов(VCL) предлагают превосходные возможности для инкапсуляции возможностей операционной системы Windows. Возможно, наиболее важной причиной выбора RAD Studio и Delphi является непревзойденная простота изучения языка Delphi, поскольку разработчики могут очень быстро создавать полностью готовые к использованию программы. «RAD» в RAD Studio — это аббревиатура от «Быстрая разработка приложений», а экран перетаскивания и дизайн формы означают, что вам не нужны никакие инструменты типа каркаса или даже эскизы, чтобы разработать то, как вы хотите, чтобы экраны вашей программы выглядели. вы создаете их в RAD Studio и точно знаете, как они будут выглядеть во время работы .

VCL зарекомендовал себя среди своих пользователей как одна из лучших возможных оболочек поверх собственных Windows API и библиотек пользовательского интерфейса. Только библиотека VCL предлагает перспективную поддержку вашего исходного кода с заслуженной репутацией стабильности и долговечности. Вы можете взять «устаревшее» приложение, созданное много лет назад, и легко поддерживать и обновлять его для Windows 10 и 11, а также обеспечивать поддержку более ранних версий Windows. Приложения, написанные на Delphi, очень устойчивы к изменениям в операционной системе по мере выпуска различных обновлений и исправлений Windows. Это заметно по сравнению с другими типами технологий, такими как Python, которые могут давать сбои, когда необходимая среда выполнения Python либо отсутствует, либо заменена несовместимой версией. Это также верно для приложений, написанных с помощью . NET, которые могут пострадать при замене или обновлении слишком большого количества движущихся частей поддерживающей среды выполнения .NET. Конечно, есть способы обойти это, ничто не может быть слишком ужасным, но приложения, созданные с помощью RAD Studio, действительно очень надежны из-за отсутствия зависимости от среды выполнения и их автономного характера, что способствует высокой стабильности.

Учебник по разработке приложений для Windows 10 для начинающих

Хорошо, мы достаточно поговорили о достоинствах использования RAD Studio и о том, следует ли вам разрабатывать настольную программу для Windows 10 или мобильное кроссплатформенное приложение. Давайте попробуем создать действительно быстрое и простое приложение, чтобы показать вам, насколько это просто! Здесь, на сайте блога, есть еще много подробных руководств и статей, где мы освещаем все виды тем, от начинающих до продвинутых.

Следующие шаги дадут вам представление о том, как легко создать простое VCL-приложение «Hello world» для Windows за пару минут. Простейшим образом мы попытаемся продемонстрировать основные шаги для создания приложения VCL Forms. Приложение, которое вы создадите с помощью этого руководства, будет включать следующее:

  • Мы создадим форму VCL.
  • Мы добавим элемент управления в эту форму.
  • Мы добавим некоторый код, который срабатывает, когда наш пользователь нажимает кнопку.
  • Окончательно. наше приложение «Hello World» будет отображать диалоговое окно, когда пользователь взаимодействует с ним.

Как создать простое приложение «Hello world»

Откройте RAD Studio и щелкните пункт «Приложение Windows VCL — Delphi» (или C++) на странице приветствия.

2022 08 12 08 23 38

Как создать первый экран для вашего приложения Windows

Теперь у вас должна быть пустая форма на экране. Итак, давайте добавим в эту форму элемент управления «Кнопка».

  • Выберите вкладку «Палитра» — если вы не можете ее найти, выберите « Просмотр»> «Окна инструментов»> «Палитра»  или просто нажмите CTRL + ALT + P.
2022 08 12 08 30 37
  • Палитра показывает все типы элементов управления, которые вы можете просто добавить в свое приложение. В палитре щелкните запись TButton, которая находится в группе Standard.
2022 08 12 08 34 23
  • Теперь у вас должна быть кнопка на форме. Вы можете щелкнуть его и перетащить туда, где вы хотите, чтобы он отображался.
2022 08 12 08 40 21

Как сделать так, чтобы ваше первое приложение отображало строку «Hello world»

  • Щелкните один раз кнопку Button1 в форме.
  • В  Инспекторе объектов дважды щелкните поле действия OnClick на   вкладке События . Отобразится  редактор кода  с курсором в  блоке  обработчика событий Button1Click .
2022 08 12 08 43 40
  1. Для Delphi переместите курсор перед  начальным  зарезервированным словом и нажмите  ENTER . Это создает новую строку над блоком кода. Для C++ поместите курсор после открывающей фигурной скобки ( { ) и нажмите  ENTER .
  2. Для Delphi вставьте курсор в новую созданную строку и введите следующее объявление переменной:

Для C++ введите следующий код:

  1. Для Delphi вставьте курсор в блок кода и введите следующий код:

s:= ‘Hello world!’;

ShowMessage(s);

Для C++ введите следующий код:

s = «Hello world!»;

ShowMessage(s);

2022 08 12 08 48 49

Как запустить свое первое приложение «Hello world»

  • Выберите  « Выполнить» > «Выполнить»  , чтобы построить и запустить приложение. Форма отображается с кнопкой с именем  Button1 .
2022 08 12 08 42 44
  • Нажмите кнопку  1 . В диалоговом окне отображается сообщение «Hello World!»
  • Закройте форму VCL, чтобы вернуться в IDE.

2022 08 12 08 50 56

Наше первое приложение запущено!

Готовы приступить к разработке приложений для Windows 10?

Если у вас еще нет копии RAD Studio, почему бы не попробовать RAD Studio с Delphi и не загрузить ее сегодня ? Получите преимущество, которое предоставляет RAD Studio, для максимально эффективной разработки мощных настольных и кроссплатформенных приложений.

  • Создание приложения на python для windows
  • Создание приложения windows forms на c в visual studio
  • Создать впн соединение windows 10
  • Создать группу безопасности windows 10
  • Создать гостевой профиль windows 10