написать простую программу для windows
Все, что вам нужно для создания программ для Windows
Программирование является одним из фундаментальных аспектов нашей повседневной жизни. Программирование может помочь нам автоматизировать и упростить использование компьютера, и даже сегодня это одна из самых интересных возможностей для работы. Конечно, даже если мы изучаем программирование, знание определенного языка не очень нам помогает. Помимо управления языком, мы также должны знать, какие программы нам следует использовать для программирования в соответствии с типом программного обеспечения, которое мы собираемся создать.
Если мы думаем начать программировать и создавать программы для Windows, это все, что нам нужно для достижения нашей цели.
Знания для создания программ в Windows
Не существует волшебного языка программирования для создания программ для Windows. Из Microsoft В операционной системе мы можем выполнять практически любой язык программирования, если у нас есть соответствующий компилятор и интерпретатор.
Если мы собираемся создать более простую программу, которая не нуждается в интерфейсе, C отличный вариант. Четный C ++ если мы хотим использовать любую из графических библиотек, доступных для этого языка. Разница между C и C ++ заключается в том, что первый не является объектно-ориентированным, а также более ограниченным, чем C ++. Сегодня есть отличные проекты, написанные на этом втором языке (Chrome, Firefox, многие игры и т. д.), поэтому, не вдаваясь в визуальные языки, программировать на нем очень удобно.
Если мы хотим создать программу для Windows, но она также работает в других операционных системах, то мы должны использовать другие кроссплатформенные языки программирования. Джава, например, один из самых популярных, поскольку все, что мы делаем на этом языке, может работать без проблем в любой операционной системе. Python, с другой стороны, в последнее время очень популярен подобный язык для создания многоплатформенных программ.
Также легко найти разработки на других языках, таких как Object Pascal, Ruby или Objective-C.
Программное обеспечение, необходимое для создания программы
На самом деле, мы могли программировать без специального программного обеспечения, просто с помощью текстового редактора, такого как Блокнот. Однако в настоящее время существуют очень полные программы (IDE), которые, помимо того, что помогают нам программировать, позволяют нам компилировать код, чтобы превратить наши строки во что-то функциональное.
Код Visual Studio
Код Visual Studio текстовый редактор с множеством функций программирования Эта программа имеет большое количество плагинов, которые позволяют адаптировать ее практически к любому языку программирования, который мы хотим. Благодаря своим функциям IntelliSense эта программа может выделять синтаксис, помогать нам автоматически заполнять код и даже находить ошибки.
Microsoft Visual Studio
Эта IDE позволяет нам легко создавать серверные приложения и программное обеспечение для настольных компьютеров для всех версий Windows. Обладая необходимыми знаниями, вы даже можете создавать 3D-приложения (и игры) с его помощью.
Студия шаблонов Windows
NetBeans
В дополнение к программированию на Java, с помощью соответствующих модулей мы также можем программировать на JavaScript, HTML5, PHP или C / C ++.
Delphi
Эта IDE может использоваться для программирования на нескольких языках программирования, хотя наиболее распространенным является ее использование для программирования в Object Pascal. Все, что мы пишем и компилируем, будет совместимо с Windows и Linux. Он также широко используется для веб-разработки, позволяя создавать клиент-серверные базы данных и веб-приложения и сервисы, такие как CGI, ISAPI, NSAPI, COM и DCOM.
Мы можем скачать Delphi от следующая ссылка.
Блокнот ++
Наконец, мы не могли забыть о Notepad ++. Этот бесплатный текстовый редактор с открытым исходным кодом является одной из лучших альтернатив Windows Notepad, но в нем также есть плагины, которые позволяют нам превратить его в полноценную среду программирования. Если мы хотим что-то простое в использовании для программирования по-старому (в текстовом режиме, без IDE), это наш редактор.
Пишем первое универсальное приложение 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). Для этого минимально нам понадобится:
• 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 создает проект. Давайте рассмотрим структуру созданного проекта.
Весь проект подразделен на три части:
• 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, не потратив ни копейки
Вот и до нашей страны дошла вездесущая борьба с компьютерным пиратством, карающая всех без разбора. Конечно, это еще не значит, что надо в срочном порядке тереть весь пиратский софт с домашних архивов (к счастью, пока еще правоохранительные органы не устраивают поквартирных обходов с целью выявления нелицензионного ПО). Но вот программистам-одиночкам, выпускающим свои программы в свет, нужно серьезно беспокоиться о том, чтобы их программы были сделаны с учетом законодательства.
Если выкинуть компиляторы/интерпретаторы типа Java, Php, Perl, а также Visual Basic (который имеет сравнительно малую популярность в нашей стране) и прочую одноориентированную и узконаправленную программистскую ересь, в нашем распоряжении находятся следующие БЕСПЛАТНЫЕ универсальные средства разработки компьютерных программ для операционной системы Windows:
Разберем недостатки и преимущества каждого из представленных средств разработки, а также определим, насколько они подходят для решения поставленной нами задачи.
Рассмотрим другого тяжеловеса софтверного фронта. Представим, что программирование на Си++ упростилось в n-ое число раз. Говорите не может? Может :). В подтверждение этого обратим свое внимание на C++ Builder Turbo Edition. А вот насчет этого компилятора мнение общественности кардинально расходиться. С одной стороны, ключевым языком разработки является Си/Си++ (что не может не радовать приверженцев этого языка) и визуальное удобство находиться на высочайшем уровне, а с другой – есть повод для развязывания HolyWar 🙂 – билдер написан на Делфи, а с другой – можно быстро склепать клевый интерфейс у проги, да и перед товарищами хвастануть, что типа на Си написано :).
Итог: В принципе, подойдет, но то, что внутренности написаны на Делфях, все же не дает мне покоя 🙂
Рассмотрим подарки гостей с «другой вселенной». Порты с Linux типа GCC, LCC и другие СС – визуальности нуль, удобство такое же, как у предыдущего компилятора, вдобавок LCC оказался маленько нерабочим, а чтобы качнуть GCC с сайта и заставить его работать, нужно быть академиком. 🙂
Итог: Не берем.
Вывод. В наше непростое время все-таки можно и нужно честно трудиться.
Урок №25. Разработка ваших первых программ
Обновл. 20 Июл 2021 |
При написании программ, у вас, как правило, есть какая-то проблема, которую нужно решить. Новички очень часто спотыкаются на этапе преобразования идеи решения проблемы в реальный код. Но самое главное, что вам нужно запомнить — разработка программы выполняется перед этапом написания её кода.
Во многих отношениях, программирование — это как архитектура. Что произойдет, если вы попытаетесь построить дом без соблюдения архитектурного плана? Дом может вы и сумеете построить, но какой он будет: кривые стены, протекающая крыша и т.д. Аналогично, если вы начнете программировать что-нибудь серьезное перед тем, как составите план, то очень скоро обнаружите, что ваш код имеет очень много проблем, на решения которых вы потратите гораздо больше времени/усилий/нервов, нежели на изначальное составление хорошего плана.
Шаг №1: Определите проблему
Первое, что вам нужно сделать — это определить проблему, которую решит ваша программа. В идеале, вы должны сформулировать это одним или двумя предложениями. Например:
Я хочу написать программу-справочник для удобного хранения и редактирования всех телефонных номеров и звонков.
Я хочу написать программу для генерации случайных чисел, с помощью которой можно будет определять победителей разных конкурсов.
Я хочу написать программу, которая будет отслеживать и анализировать акции на фондовом рынке для генерации выигрышных прогнозов.
Хотя этот шаг кажется очевидным, но он также очень важен. Самое худшее, что вы можете сделать — это написать программу, которая делает не то, что вам нужно!
Шаг №2: Определите свой инструментарий, цели и план бэкапа
Для опытных программистов на этом этапе будет еще немало дополнительных пунктов:
Какая ваша целевая аудитория и какие у нее потребности?
На какой архитектуре/ОС ваша программа будет работать?
Какой инструментарий вы будете использовать?
Будете ли вы разрабатывать программу в одиночку или в составе команды?
Определение стратегий тестирования/обратной связи/релиза.
Создание плана бэкапа в случае неожиданных проблем.
Новички, как правило, большим количеством вопросов не задаются: «Пишу программу для собственного использования, в одиночку, на своей операционной системе, с помощью своей IDE, пользоваться этой программой буду только я». Всё просто.
Если же вы будете работать над чем-нибудь посерьезнее, то стоит еще задуматься о плане бэкапа вашей программы/проекта. Это не просто скопировать код в другую папку ноутбука (хотя это уже лучше, чем ничего). Если ваша ОС «сломается», то вы потеряете все данные. Хорошая стратегия резервного копирования включает в себя создание копии вашего кода вне вашей операционной системы, например:
Отправить самому себе E-mail с кодом (прикрепить как файл).
Скопировать в Dropbox или в любое другое облако.
Перенести на внешнее запоминающее устройство (например, на портативный жёсткий диск).
Скопировать на другой компьютер в локальной сети.
Шаг №3: Разбейте проблему на части
В реальной жизни нам часто приходится выполнять очень сложные задачи. Понять, как их решить, также бывает очень трудно. В таких случаях можно использовать метод деления на части (или метод «от большого к малому»). То есть, вместо того, чтобы решать одну большую сложную задачу, мы разбиваем её на несколько подзадач, каждую из которых проще решить. Если эти подзадачи все еще слишком сложные, то их также нужно еще раз разбить. И так до тех пор, пока мы не доберемся до точки, где каждая отдельно взятая задача — легко решаема.
Рассмотрим это на примере. Допустим, что нам нужно написать доклад о картошке. Наша иерархия задач в настоящее время выглядит следующим образом:
Написать доклад о картошке
Это довольно большая задача, давайте разделим её на подзадачи:
Написать доклад о картошке
Поиск информации о картошке
Заполнение каждого пункта плана подробной информацией
Это уже проще, так как теперь мы имеем список подзадач, на которых можем сосредоточиться в индивидуальном порядке. Тем не менее, в данном случае, «Поиск информации о картошке» звучит немного расплывчато, нужно дополнительно разбить и этот пункт:
Написать доклад о картошке
Поиск информации о картошке
Сходить в библиотеку за книжками о картошке
Поискать информацию в Интернете
Делать заметки в соответствующих разделах из справочного материала
Информация о выращивании
Информация об обработке
Информация об удобрениях
Заполнение каждого пункта плана подробной информацией
Выполняя каждый подпункт этого задания, мы решим одну большую задачу.
Есть еще один метод создания иерархии — метод «от малого к большому». Рассмотрим на примере.
Большинство из нас вынуждены ходить на работу (школу/университет) по будням. Предположим, что нам нужно решить проблему «от постели к работе». Если бы вас спросили, что вы делаете перед тем, как добраться на работу, вы бы ответили примерно следующее:
Используя метод «от малого к большому», мы можем сгруппировать задания и создать иерархию:
От постели к работе
Использование подобных иерархий чрезвычайно полезно в программировании для определения структуры всей программы. Задача верхнего уровня (например, «Написать доклад о картошке» или «От постели к работе») становится функцией main() (так как это основная проблема, которую нужно решить). Подзадачи становятся функциями в программе.
Шаг №4: Определите последовательность событий
Теперь, когда ваша программа имеет структуру, пришло время ответить на вопрос: «А как же связать все эти пункты вместе?». Первый шаг заключается в определении последовательности событий. Например, когда вы просыпаетесь утром, в какой последовательности вы выполняете вышеперечисленные дела? Скорее всего, в следующей:
Если бы мы создавали калькулятор, то последовательность заданий выглядела бы следующим образом:
Получить первое значение от пользователя
Получить математическую операцию от пользователя
Получить второе значение от пользователя
Этот список определяет содержимое функции main():
Или, в случае с калькулятором:
Шаг №5: Определите данные ввода и данные вывода на каждом этапе
После определения иерархии задач и последовательности событий, нам нужно определить, какими будут данные ввода и данные вывода на каждом этапе.
Например, первая функция из вышеприведенного примера — getUserInput(), довольно проста. Мы собираемся получить число от пользователя и вернуть его обратно в caller. Таким образом, прототип функции будет выглядеть следующим образом:
В примере с калькулятором, функции calculateResult() требуется 3 ввода данных: два числа и 1 математический оператор. При вызове calculateResult() у нас уже должны быть 3 фрагмента данных, которые мы будем использовать в качестве параметров функции. Функция calculateResult() вычисляет значение результата, но не выводит его. Следовательно, нам необходимо вернуть этот результат в качестве возвращаемого значения обратно в caller, чтобы другие функции также имели возможность его использовать.
Учитывая это, прототип функции становится следующим:
Шаг №6: Позаботьтесь о деталях
На этом этапе нам нужно реализовать каждый подпункт из нашей иерархии задач. Если вы разбили задание на достаточно мелкие кусочки, то выполнить каждый из этих кусочков будет несложно. Например:
Шаг №7: Соедините данные ввода с данными вывода в программе
И, наконец, последний шаг — это соединение данных ввода с данными вывода. Например, вы можете отправить выходные данные функции calculateResult() во входные данные функции printResult(), чтобы вторая функция могла вывести результат. Чаще всего в таких случаях используются промежуточные переменные для временного хранения результата и его перемещения между функциями. Например:
Согласитесь, что вариант, приведенный выше, читабельнее варианта без использования временных переменных (см. ниже):
Рассмотрим готовую версию программы-калькулятора, её структуру и перемещение данных:
Здесь есть несколько концепций, которые мы еще не рассматривали: условное ветвление if и использование оператора равенства == для сравнения двух элементов. Не беспокойтесь, если вы это не понимаете — мы всё это детально рассмотрим на следующих уроках.
Советы
Пускай ваши первые программы будут простыми. Очень часто новички ставят слишком высокие планки для своих первых более-менее серьезных программ. Например, «Я хочу написать игру с графикой, звуком, монстрами, подземельями и городом, в котором можно будет продавать найденные вещи». Если вы попытаетесь написать что-нибудь подобное в начале вашего пути как программиста, то очень скоро у вас пропадет любое желание программировать. Вместо этого, пускай ваши первые цели/задания/программы будут попроще, например, «Я хочу написать программу, которая отображала бы 2D-поле на экране».
Добавляйте новый функционал со временем. Как только вы написали простенькую программу, которая работает (даже без сбоев), то следующим вашим шагом должно стать добавление нового функционала. Например, когда вы сможете отображать 2D-поле на экране — добавьте персонажа, который сможет ходить по этому полю. После того, как вы уже сможете ходить — добавьте стены, которые будут препятствовать вашему движению. После того, как у вас будут стены — постройте из них город. После того, как у вас будет город — добавьте персонажей-продавцов. При таком подходе на вас не наваливается всё сразу и вы знаете с чего начинать, что делать дальше, в какой последовательности и т.д.
Фокусируйтесь только на одном задании в определенный промежуток времени. Не пытайтесь сделать всё и сразу, не распыляйтесь на несколько задач одновременно. Сосредоточьтесь на одном. Лучше иметь одно выполненное задание и пять невыполненных, нежели шесть частично выполненных заданий. Если вы рассеиваете свое внимание в нескольких направлениях, то и ошибок будет много.
Тестируйте каждую новую часть кода. Начинающие программисты часто пишут программу за один присест. Затем, при компиляции проекта, получают сотни ошибок. Поэтому, после написания определенной части кода — сразу компилируйте и тестируйте её. Если ваш код не будет работать, то вы будете знать, где находится проблема, и исправить её будет намного легче. Как только вы убедились, что ваш код рабочий — переходите к написанию следующей части, а затем repeat. Тестирование может занять больше времени, но в конечном итоге ваш код будет работать так, как вам нужно.
Большинство новичков пропустят некоторые из этих шагов и советов, так как это не столь захватывающе, как, собственно, сам процесс кодинга. Хорошая новость заключается в том, что как только вы освоите все эти концепции — они станут для вас естественными в процессе разработки ваших программных продуктов.