Обоснование выбора платформы

В ходе выбора платформы для разработки приложенияинтернет - магазина Avito.ru, выбор был сделан в пользу новой ОС от корпорации Microsoftтак как данная платформа имеет огромный потенциал, а также из-за своего недавнего выхода, отсутствие конкурентов в лице крупных компаний. В процессе выбора были учтены и прочие преимущества данной платформы, описанные далее.

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

Реклама, встроенная в приложения является одним из основных источников дохода разработчиков. Система поддерживает свой собственный «движок» рекламы – Microsoft Advertising с соответствующим SDK и элементами управления для интерфейса пользователя. Другое дело, что никто не мешает встроить в приложение свой собственный механизм показа рекламы.

Возможность совершать покупки внутри приложения. Windows Store имеет встроенный механизм покупок внутри приложений (in-apppurchases) и соответствующий API. Важной особенностью Windows Store является возможность использования своих механизмов оплаты внутри приложения. Это не только позволит работать с привычными инструментами, но и избавит от необходимости делиться доходом с Windows Store.

Разделение дохода. Пока доход, полученный за приложение, не превышает $25000, он делится по схеме 70/30: 70% получает разработчик, 30% — Microsoft. Как только доход превышает сумму в $25К, разработчик получает уже 80% дохода от приложения.

Ни для кого не секрет, что платформа от Microsoftимеет огромную популярность по всему миру и Windows 8 не является исключением, а именно в ней и идет распространение приложений через WindowsStore.

Аудитория Windows Store. Для начала, обратимся к редакциям Windows 8. Их всего три:

- Windows

- WindowsPro

- WindowsRT

Первая и вторая предназначены для устройств с традиционной для PC архитектурой (x86/x64), третья – исключительно для устройств с архитектурой ARM, характеризующихся, как правило, более низким энергопотреблением и габаритами. Сейчас, говоря о WindowsRT, прежде всего подразумеваются планшеты.На Windows и Windows Pro будут работать и классические desktop-приложения и Windows 8-style UI-приложения. При этом, на всякий компьютер, имеющий метку «Designedfor Windows 7» или де-факто попадающий под этот статус, не только можно установить Windows 8, но и полноценно работать с ней.

С Windows RT все несколько иначе. Эта система работает на ARM-архитектуре и существующие desktop-приложения на ней выполняться не могут. Другое дело, что для Windows 8-style UI-приложений Microsoft гарантирует выполнение на обоих типах систем – и Windows/Windows Pro и Windows RT. Даже для приложений, написанных на C++ и компилируемых в native-код, нужно будет лишь сделать соответствующую сборку и включить её в состав пакетов приложения при его публикации в Windows Store. Повторюсь, это работает только для Windows 8-style UI-приложений. Более того, в Windows RT, за исключением отдельных корпоративных сценариев, возможна будет установка приложений только из Windows Store.

Таким образом, разрабатывая приложения в стиле Windows 8-style UI, мы получаем в качестве потенциальных пользователей и покупателей всех, кто установит себе Windows 8 или купит устройство с ней – вне зависимости от типа этого устройства.

В Windows 8 Microsoft активно продвигает идею использования touch-экранов на всех категориях устройств – от планшетов до десктопов с огромными мониторами (конечно же, тоже touch). Эта идея очень хорошо воспринимается производителями устройств и многими пользователями.

Разумеется, не для всех сценариев подходит touch-интерфейс. Именно поэтому так важно во всех Windows 8-style UI-приложениях поддерживать работу с клавиатурой и мышью. Естественно, что в Windows 8 и Windows 8 Pro есть обычный desktop и работают все привычные нам приложения. Кстати, даже в Windows RT будет поставляться специальная ARM-версия MS Office, работающая именно в desktop-режиме.

НовыеустройствадляWindows 8 (представлены на рис. 1.5). КрисКапоссела, вице-президент Microsoft помаркетингу, как-тосказал: «If your Christmas gift cannot be plugged-in, it is a bad gift». Гаджеты – это то, чем сегодня можно заинтересовать людей по-настоящему.

Настоящей выставкой новых устройств для Windows 8 стала Computex 2012. Там увидели свет как многочисленные ультрабуки (большинство, кстати, touch-экранами), так и планшеты, а также системы типа «все в одном».

Обоснование выбора платформы - student2.ru

Рис. 1.5. новые устройства на Windows 8

Планшеты могут работать не только на ARM и Window RT. Последние чипсеты от Intel позволяют добиться приемлемого энергопотребления в форм-факторе планшета.

Эти и многие другие компьютеры в самых разных исполнениях начнут продаваться с Windows 8 на борту. И их покупатели одновременно с этим становятся потенциальными покупателями приложений, опубликованных в Windows Store. Люди в более чем 200 странах, говорящие на 100 с лишним языках начнут покупать приложения.

Кто является второй большой группой потенциальных пользователей приложений из Windows Store? Правильно, пользователи предыдущих версий Windows. Что их будет толкать к апгрейду? Три простых, но работающих фактора:

- Новые привлекательные устройства.

- Новые потребительские свойства Windows 8 (например, увеличенное время автономной работы).

- Низкая цена апдейта до Windows 8 – всего $40 для всех легальных пользователей Windows XP, Windows Vista и Windows 7.

Есть и еще один немаловажный фактор – ваши новые приложения.

Только за последний год Windows 7 была продана в количестве 230 миллионов копий. Общее число проданных лицензий достигло 630 миллионов.

Обоснование выбора платформы - student2.ru

Рис. 1.6. График распространенности операционных систем

И это только Windows 7. И только легальные пользователи. Сегодня больше миллиарда пользователей Windows на Земле, но даже только тех, кто купил Windows 7 с момента её запуска, больше, чем покупателей устройств на iOS, Android и OSX вместе взятых, проданных за это же время. И ведь львиная доля покупателей iOS и Android используют еще и Windows.На рис. 1.6 показан график популярности операционных систем.

Экономическое обоснование достаточно просто в данной ситуации. Предположим, необходимо получить доход в 1 миллион долларов США, продавая приложение в Windows Store. Пусть приложение стоит $1.99.Получается, нужно продать приложение примерно 503 тысячи раз. А ведь это всего 0,08% сегодняшних легальных пользователей Windows 7. Восемь десятитысячных от общего числа.

Допустим, что приложение бесплатно, но работает по схеме Freemium. Пусть нечто, что продается внутри приложения, стоит тоже $1.99.Представим, что в среднем каждый десятый тратит в вашем приложении эти самые $1.99. Кто-то больше, кто-то меньше, кто-то вообще не тратит, но в среднем получается, что 10% покупают один раз на $1.99.Что будет, если приложение скачают полпроцента от числа сегодняшних пользователей Windows 7? Получаемый доход почти $630 000 дохода.

Как и всякая подобная структура Windows Store работает по определенным правилам, также устанавливая требования и к публикуемым приложениям, которые проходят сертификацию перед появлением в Store:

- Windows Store App Developer Agreement;

- Certification requirements for Windows apps;

Хорошим инструментом для разработчика является Windows AppCertificationKit (WACK). Это автоматический инструмент, позволяющий найти проблемы в приложении еще до его публикации. Полный текст правил сертификации представлен в приложении Б.

Требования к программному продукту

Разрабатываемое приложение, каки любой программный продукт должен соответствовать определенным требованиям. В случае с приложениями для Windows 8, распространяемыми в MicrosoftWindowsStore это:

-Пальце ориентированный интерфейс

- Соответствие стилю оформления WindowsmodernUI

- Соответствие возвратным и иным ограничениям, согласно правил, установленных Microsoft, полная версия представлена в приложении Б.

Дляприложения интернет-магазина «Avito.ru»была избрана модель бесплатного приложения с применением рекламы внутри приложения, что в свою очередь является наиболее лояльным по отношению к пользователям.

Средства разработки

Среда разработки

Для разработки приложения интернет – магазина используется среда разработки Microsoft Visual Studio 2013. Microsoft VisualStudio — линейка продуктов компании Майкрософт, включающих интегрированную среду разработки программного обеспечения и ряд других инструментальных средств. Данные продукты позволяют разрабатывать как консольные приложения, так и приложения с графическим интерфейсом, в том числе с поддержкой технологии Windows Forms, а также веб-сайты, веб-приложения, веб-службы как в родном, так и в управляемом кодах для всех платформ, поддерживаемых Microsoft Windows, Windows Mobile, Windows CE, .NET Framework, Xbox, Windows Phone .NET CompactFramework и Microsoft Silverlight.

VisualStudio включает в себя редактор исходного кода с поддержкой технологии IntelliSense и возможностью простейшего рефакторинга кода. Встроенный отладчик может работать как отладчик уровня исходного кода, так и как отладчик машинного уровня. Остальные встраиваемые инструменты включают в себя редактор форм для упрощения создания графического интерфейса приложения, веб-редактор, дизайнер классов и дизайнер схемы базы данных. VisualStudio позволяет создавать и подключать сторонние дополнения (плагины) для расширения функциональности практически на каждом уровне, включая добавление поддержки систем контроля версий исходного кода (как например, Subversion и VisualSourceSafe), добавление новых наборов инструментов (например, для редактирования и визуального проектирования кода на предметно-ориентированных языках программирования или инструментов для прочих аспектов процесса разработки программного обеспечения (например, клиент Team Explorer для работы с Team Foundation Server). VisualStudio распространяется в тех же редакциях, что и 2010. Изменения коснулись VisualStudio 2012 Express — устанавливаются все языки программирования, а не один (как раньше VisualBasic 2010 Express, Visual C# 2010 Express), а также теперь существует пять версий VisualStudioExpress: VisualStudioExpress 2012 для Web, VisualStudioExpress 2012 для Windows 8, VisualStudioExpress 2012 для Windows Desktop, VisualStudioExpress 2012 для Windows Phone и VisualStudioTeam Foundation ServerExpress 2012. Все версии распространяются, как отдельные приложения. VisualStudioExpress 2012 для Windows 8 позволяет разрабатывать приложения для Windows Store с Modern-интерфейсом, а VisualStudioExpress 2012 для Windows Desktop позволяет разрабатывать «классические» приложения для Рабочего стола. Что касается VisualStudioTeam Foundation ServerExpress 2012, то эта версия поставляется с оболочкой VisualStudio 2012.

Разрабатывать приложения с помощью VisualStudio 2012 можнотолькоподWindows 7 SP1 иWindows 8. Вышло исправление, позволяющее разрабатывать приложения и под Windows XP.Финальный релиз VisualStudio 2013 стал доступен для загрузки 17 октября 2013 вместе с. NET 4.5.1.Вид среды разработки Microsoft Visual Studio 2013 представлена на рис. 2.1.

Обоснование выбора платформы - student2.ru

Рис. 2.1. главная страница MicrosoftVisualStudio 2013

Именно MicrosoftVisualStudio 2013 была использована при создании приложения интернет – магазина «avito.ru».

Язык написания приложения.

В ходе разработки программного продукта использовался объектно-ориентированный язык программирования. Объе́ктно-ориенти́рованное, или объектное, программи́рование (в дальнейшем ООП) — парадигма программирования, в которой основными концепциями являются понятия объектов и классов. В случае языков с прототипированием вместо классов используются объекты-прототипы.

В центре ООП находится понятие объекта. Объект — это сущность, которой можно посылать сообщения, и которая может на них реагировать, используя свои данные. Объект — это экземпляр класса. Данные объекта скрыты от остальной программы. Сокрытие данных называется инкапсуляцией.

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

- Абстракция— это способ выделить набор значимых характеристик объекта, исключая из рассмотрения незначимые. Соответственно, абстракция — это набор всех таких характеристик;

- Инкапсуляция — это свойство системы, позволяющее объединить данные и методы, работающие с ними в классе, и скрыть детали реализации от пользователя;

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

- Полиморфизм — это свойство системы использовать объекты с одинаковым интерфейсом без информации о типе и внутренней структуре объекта;

- Класс является описываемой на языке терминологии (пространства имён) исходного кода моделью ещё не существующей сущности (объекта). Фактически он описывает устройство объекта, являясь своего рода чертежом. Говорят, что объект — это экземпляр класса. При этом в некоторых исполняющих системах класс также может представляться некоторым объектом при выполнении программы посредством динамической идентификации типа данных. Обычно классы разрабатывают таким образом, чтобы их объекты соответствовали объектам предметной области;

- Объект - Сущность в адресном пространстве вычислительной системы, появляющаяся при создании экземпляра класса или копирования прототипа (например, после запуска результатов компиляции и связывания исходного кода на выполнение);

- Прототип — это объект-образец, по образу и подобию которого создаются другие объекты. Объекты-копии могут сохранять связь с родительским объектом, автоматически наследуя изменения в прототипе; эта особенность определяется в рамках конкретного языка;

Многие современные языки специально созданы для облегчения объектно-ориентированного программирования. Однако следует отметить, что можно применять техники ООП и для не-объектно-ориентированного языка и наоборот, применение объектно-ориентированного языка вовсе не означает, что код автоматически становится объектно-ориентированным.

Как правило, объектно-ориентированный язык (ООЯ) содержит следующий набор элементов:

- Объявление классов с полями (данными — членами класса) и методами (функциями — членами класса).

- Механизм расширения класса (наследования) — порождение нового класса от существующего с автоматическим включением всех особенностей реализации класса-предка в состав класса-потомка. Большинство ООЯ поддерживают только единичное наследование.

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

- Полиморфное поведение экземпляров классов за счёт использования виртуальных методов. В некоторых ООЯ все методы классов являются виртуальными.

Некоторые языки добавляют к указанному минимальному набору те или иные дополнительные средства. В их числе:

- Конструкторы, деструкторы, финализаторы.

- Свойства (аксессоры).

- Индексаторы.

- Средства управления видимостью компонентов классов (интерфейсы или модификаторы доступа, такие как public, private, protected, feature и др.)

Одни языки отвечают принципам ООП в полной мере — в них все основные элементы являются объектами, имеющими состояние и связанные методы. Примеры подобных языков — Smalltalk, Eiffel. Существуют гибридные языки, совмещающие объектную подсистему в целостном виде с подсистемами других парадигм как «два и более языка в одном», позволяющие совмещать в одной программе объектные модели с иными, и размывающие грань между объектно-ориентированной и другими парадигмами за счёт нестандартных возможностей, балансирующих между ООП и другими парадигмами (таких как множественная диспетчеризация, параметрические классы, возможность манипулировать методами классов как самостоятельными объектами, и др.). Примерытакихязыков: CLOS, Dylan, OCaml, Python, Ruby, Objective-C. Однако, наиболее распространены языки, включающие средства эмуляции объектной модели поверх более традиционной императивной семантики. Алан Кэй назвал такие языки «склеиванием возможностей» (англ. agglutinationoffeatures), в противовес «чистоте стиля» (англ. crystalizationofstyle) языков, воплощающих некую парадигму непосредственно[9]. Примеры таких языков — Симула, C++, VisualBasic, Delphi, Модула, Модула-2, Java, C#, PHP.

Для написания приложения интернет - магазин «avito.ru» был применен язык объектно-ориентированного программирования C#.

C# (произносится си шарп) — объектно-ориентированный язык программирования. Разработан в 1998—2001 годах группой инженеров под руководством Андерса Хейлсберга в компании Microsoft как язык разработки приложений для платформы Microsoft .NET Framework и впоследствии был стандартизирован как ECMA-334 и ISO/IEC 23270.C# относится к семье языков с C-подобным синтаксисом, из них его синтаксис наиболее близок к C++ и Java. Язык имеет статическую типизацию, поддерживает полиморфизм, перегрузку операторов (в том числе операторов явного и неявного приведения типа), делегаты, атрибуты, события, свойства, обобщённые типы и методы, итераторы, анонимные функции с поддержкой замыканий, LINQ, исключения, комментарии в формате XML.Переняв многое от своих предшественников — языков C++, Pascal, Модула, Smalltalk и в особенности Java — С#, опираясь на практику их использования, исключает некоторые модели, зарекомендовавшие себя как проблематичные при разработке программных систем, например, C# в отличие от C++ не поддерживает множественное наследование классов (между тем допускается множественное наследование интерфейсов).

Особенностью данного является то, что C# разрабатывался как язык программирования прикладного уровня для CLR и, как таковой, зависит, прежде всего, от возможностей самой CLR. Это касается, прежде всего, системы типов C#, которая отражает BCL. Присутствие или отсутствие тех или иных выразительных особенностей языка диктуется тем, может ли конкретная языковая особенность быть транслирована в соответствующие конструкции CLR. Так, с развитием CLR от версии 1.1 к 2.0 значительно обогатился и сам C#; подобного взаимодействия следует ожидать и в дальнейшем. (Однако, эта закономерность была нарушена с выходом C# 3.0, представляющего собой расширения языка, не опирающиеся на расширения платформы .NET.) CLR предоставляет C#, как и всем другим .NET-ориентированным языкам, многие возможности, которых лишены «классические» языки программирования. Например, сборка мусора не реализована в самом C#, а производится CLR для программ, написанных на C# точно так же, как это делается для программ на VB.NET, J# и др.

Так как Microsoftотдает предпочтение именно C#, было принято решение использовать именно этот язык объектно-ориентрованного программирования.

Наши рекомендации