Контакти

Введення в UWP. Windows Core OS - модульна платформа майбутнього

  • Ненормальне програмування,
  • Розробка веб-сайтів,
  • Розробка під Windows
  • Так що цілком можна почати знайомитися з новою платформою. Давайте я зроблю невеличкий екскурс, описавши деякі відмінності.

    Почну з того, що додатки UWP володіють чимось, чого немає у класичних додатків Windows - у них є App Model. Що таке App Model? Це своєрідний регламент. Опис всіх можливостей програми - його прав доступу, способу установки, оновлення, зберігання інформації і т.п.

    У додатків Windows Store, Точно так само як і у додатків UWP є файл маніфесту, в якому описані всі можливості і права додатки. Це файл Package.appxmanifest. Його можна редагувати як в графічному редакторі, так і у вигляді коду XML. Скріншот графічного редактора Дивіться нижче.

    елементи управління

    Якщо ви пам'ятаєте, то зовсім недавно у Windows 8 і 8.1 була Charm panel - чарівна панелька:

    Зараз же замість неї використовуються більш звичні для WPF розробників контроли:

    Тут новим контролом є ContentDialog, який блокує додаток, приблизно так само, як блокує його MessageBox.
    Крім того в UWP більш звична для розробників WP навігація:

    Що може здатися цікавим, так це те, що деякі елементи управління можуть мати різний зовнішній вигляд при відображенні на різних пристроях. Простими словами, Контрол може виглядати трохи інакше, наприклад, при відображенні на столі і на мобільному пристрої.

    В цілому, я так вважаю, середньостатистичний розробник вже давно звик великій різноманітності контролів. Освоєння нових труднощів викликати не повинно.

    Розробка під різні пристрої

    Постараюся розібрати те, що для WPF розробника буде незвичайним. Наприклад, це те, що при розробці додатків Windows 8.1 можна було в одному рішенні розробляти одночасно і під телефон і під десктоп.

    В такому випадку створювалося 3 проекти. У додатках WP і WinRT зберігався xaml код «в'юшок» і якийсь особливий код під пристрої, а в спільному проекті зберігався загальний код xaml і загальний для двох проектів код C #.

    Зараз же, так як платформа UWP універсальна, то для кожного типу пристроїв можна створити папку, в яку можна помістити «в'юшку» - тобто xaml файл з дизайном під параметри пристрою.

    Життєвий цикл

    Є стара жарт про формулу-1: «У Ральфа Шумахера два положення педалі - включено і вимкнене. Рештою положеннями можна знехтувати ».

    Цим жартом я можу трохи підколоти класичні пріложенія.Net. Вони або працюють, або не працюють. У додатках Store все трохи інакше. У них крім станів «Включено / виключено» є ще й проміжний стан «Припинено». Життєвий цикл програм 8.x і UWP відображений на наступній картинці:

    Тригери і фонові завдання

    Пріложенія.Net можуть бути або виконуваними файлами або можуть бути службами / сервісами. це абсолютно різні види додатків. Тобто не може бути такого, що додаток exe, але при цьому воно працює в фоні. Ні, звичайно ж, додаток може працювати в треї. Але фактично виходить, що воно запущено і просто згорнуто.

    Що стосується додатків 8.x і UWP, то вони можуть містити в собі фонові завдання. Фонові завдання це певна подоба сервісу. Тобто додаток може не працювати, але в системі буде виконуватися якась завдання. Крім того фонова завдання може «відловлювати» якісь події в роботі системи тригером.

    Один з найпопулярніших тригерів це SystemTrigger. За допомогою нього додаток може виконати будь-якої код при настанні таких подій як: поява або зникнення інтернету, зміна стану мережі, підключення або відключення користувача, отримання смс, зміна годинної зони і т.п.

    Також досить популярні TimeTrigger і MaintenanceTrigger. Обидва тригера виконують якийсь код з періодичністю в певний проміжок часу. Проміжок часу повинен бути не менше 15 хвилин. Відмінність в те, що TimeTrigger вимагає реєстрації додатки на екрані блокування, а MaintenanceTrigger-у потрібне щоб пристрій працював не від батареї, а від мережі.

    У UWP з'явилося багато нових тригерів. Взяти, наприклад такий ось цікавий тригер як MediaProcessingTrigger, Який дозволяє додатку перекодувати мультимедіа в рамках фонової завдання.

    Використання бібліотек

    Якщо в класичних додатках ви використовували бібліотеки DLL, то в додатках 8.x і UWP ви зможете використовувати як PCL, так і компонент середовища виконання WinMD. В чому різниця?

    PCL (portable class library) може бути додана додатків під різні платформи. І под.Net Framework різних версій, і під Windows 8.x і під WP, під UWP і навіть під iOS / Android програми Xamarin. Тобто в цю бібліотеку можна запхнути якийсь загальний платформонезавісимость код.

    WinMD може бути використаний тільки під 8.x або UWP. Незалежно від мови, на якому написані додатки, вони можуть працювати з WinMD. Але сам WinMD в разі якщо він містить в собі складні обчислення краще писати на C ++ для досягнення оптимальної роботи.

    Втім, при розробці під UWP ви можете створити і бібліотеку класів (DLL).

    Робота з даними

    У чому ще полягає відмінність додатків UWP, так це в тому, що вони не працюють з базами даних безпосередньо. Тобто такі бази даних, як, скажімо SQL Server або Oracle, розташовані на сервері організації, будуть вам недоступні. Втім, це було б дивно, якби користувач скачував з Store додаток, і додаток починало б працювати з базою SQL Server-а, розташованої на сервері в локальної мережі. Але ви зможете працювати з даними, використовуючи веб-сервіси. Є можливість використовувати для баз MySQL оракловскій Connector / Net, але він на наразі не підтримує SSL і тому не особливо цікавий. Так що краще не відхилятися від концепту використання сервісів для доступу до даних.

    Для зберігання інформації всередині програми ви можете використовувати SQLite.

    Зберігання параметрів програми та робота з файлами

    Зберігання параметрів оригінальну програму можна не тільки на пристрої, але і в хмарі. Таким чином, якщо запускати додаток на різних пристроях, то настройки всюди будуть однаковими.

    Наступний невеликий сниппет зберігає кількість виклику коду в хмарі:

    Int timescount \u003d 0; Object roamS \u003d Windows.Storage.ApplicationData.Current.RoamingSettings.Values \u200b\u200b[ "times"]; if (roamS! \u003d null) timescount \u003d (int) roamS; timescount ++; Windows.Storage.ApplicationData.Current.RoamingSettings.Values \u200b\u200b[ "times"] \u003d timescount;
    Якщо замінити Windows.Storage.ApplicationData.Current.RoamingSettings на Windows.Storage.ApplicationData.Current.LocalSettings, то параметр буде збережений локально на пристрої.

    Налаштування можуть бути скомпоновані як в складові параметри, так і в контейнери. Файли точно так само як і настройки можна зберігати як на пристрої в локальній папці, так і в хмарі. Але крім цього є можливість зберігати файли в тимчасовій папці, яка при необхідності може бути очищена системою - ApplicationData.TemporaryFolder.

    Крім того можна отримати доступ до папки, яка міститься в додатку за допомогою
    Windows.ApplicationModel.Package.Current.InstalledLocation

    Доступ до файлів, що зберігаються на дисках, теж організований по особливої \u200b\u200bмоделі. Вміст папок документів, фотографій, відео та подібних може бути отримано за допомогою класу KnownFolders, але в такому випадку необхідна установка дозволів в маніфесті. Доступ до будь-якої іншої папки можливий тільки в разі, якщо користувач вибере папку сам в процесі роботи з додатком. Відвідані папки можна зберігати, щоб при перезапуску додатки не змушувати користувача робити зайві дії

    Var folderPicker \u003d new Windows.Storage.Pickers.FolderPicker (); folderPicker.FileTypeFilter.Add ( ". jpg"); folderPicker.FileTypeFilter.Add ( ". jpeg"); folderPicker.FileTypeFilter.Add ( ". png"); folderPicker.SuggestedStartLocation \u003d Windows.Storage.Pickers.PickerLocationId.PicturesLibrary; folderPicker.SettingsIdentifier \u003d "picker2"; Windows.Storage.StorageFolder lastFolder \u003d await folderPicker.PickSingleFolderAsync (); if (lastFolder \u003d\u003d null) return; String mruToken \u003d Windows.Storage.AccessCache.StorageApplicationPermissions.MostRecentlyUsedList.Add (lastFolder);
    Отримати після цього останню збережену папку можна так:

    String mruFirstToken \u003d StorageApplicationPermissions.MostRecentlyUsedList.Entries.FirstOrDefault (). Token; lastFolder \u003d await StorageApplicationPermissions.MostRecentlyUsedList.GetFolderAsync (mruFirstToken);

    прив'язки даних

    Як в додатках WPF, так і в додатках UWP, а також при розробці під 8.x можна використовувати прив'язки даних - (binding). Але в UWP з'явилися ще й компільовані прив'язки - (x: bind) У чому відмінність? Компільовані працюю набагато швидше, а формуються / перевіряються вони під час компіляції а не під час запуску програми. Також вони строго типізовані.

    Детальніше тут.

    Про керівництво

    За допомогою цього навчального посібника ви навчитеся програмування з використанням інструментарію wxWidgets. В кінці кожного розділу ви знайдете посилання на інші матеріали керівництва.

    wxWidgets

    wxWidgets це набір інструментів для створення графічного інтерфейсу користувача (GUI) в C ++ додатках. Це крос-платформний інструментарій з відкритим вихідним кодом. wxWidgets додатки працюють на всіх основних платформах: Windows, Unix and Mac. Проект був заснований Юліаном Смартом (Julian Smart) в 1992 році. Це більше ніж просто набір інструментів. Він містить велику різноманітність класів для роботи з потоками, базами даних, командними послідовностями, інтерактивною довідкою і настройками програми. wxWidgets містить велику групу віджетів. Познайомитися з спільнотою wxWidgets можна на сайті http://www.wxwidgets.org/.

    Мова програмування C ++

    C ++ один з найбільш широко використовуваних мов програмування на цій планеті. На ньому написано більшість відомих програмних пакетів таких як MS Office, Macromedia Flash, Firefox, Photoshop і 3D Max. C ++ домінує в світі ігор для PC. Це один з найскладніших мов програмування. З іншого боку, програмування на C ++ в 2007 році відрізняється від програмування в 1997. Багато стало простіше в наші дні.

    Індекс спільноти програмістів TIOBE відображає приблизну частку використання мов програмування (інформація нижче за станом на 2010 рік - прим. Sl-Alex). Java рулить. C ++ скинутий із престолу. Але C ++ служить їх основою і в найближчі десятиліття для нього немає серйозних загроз. Ми можемо ясно бачити спеціалізацію серед мов програмування. Java в основному використовується в корпоративних проектах і портіруемость програмах, C - король в системному програмуванні (ОС, драйвери пристроїв, невеликі програми), PHP міцно закріпився на невеликих і середніх веб-сайтах, Javascript використовується для реалізації клієнтської частини веб-додатки.

    C / C ++ найбільш часто використовувані мови для створення класичних ДУІ (Графічний Користувальницький інтерфейс (GUI)) додатків для настільних систем. Ось прекрасна, яка пояснює чому Java не знищить C ++ в найближчі роки.

    Мультиплатформенне програмування

    Сьогодні, Мультиплатформенне програмування - це модне слово. Багато мови і бібліотеки хочуть стати мультиплатформенними. wxWidgets спочатку створювався як мультіплатфоменний інструмент. Більшість розробників вибирають такі можливості. Якщо це можливо, використовують web. Або ж вибирають між Qt, wxWidgets, Swing або SWT. Так само існує така річ як FLTK, але він не такий популярний і це не кращий вибір. У моїй країні є велика залізнична компанія. Ця компанія використовує ПО написане на Java і Swing. Цей вибір обумовлений тим, що дешевше купити нове обладнання і написати ПО на Java. Використовуючи Java, швидкість розробки зростає і кількість багів зменшується. Звичайно, такий вибір правильний. Але коли ми пишемо текстовий редактор на Java ми не можемо сказати нашим замовникам, агов хлопці, вам потрібно буде докупити ще 1 Гб пам'яті. У такій ситуації Java нам мало чим може допомогти. Що стосується Qt, то ця бібліотека головний конкурент wxWidgets. Тому для кожного завдання потрібно використовувати правильний інструмент - це найважливіше рішення будь-якого програміста і менеджера.

    В додатках і іграх для мобільної платформи полягають найрізноманітніші можливості сучасних мобільних пристроїв з сенсорними дисплеями. Це різні ігри, додатки для роботи, відпочинку, розвитку, програмні клієнти корисних інтернет-сервісів і т.п.

    Нижче представлений порівняльний огляд ідеологічних основ мобільної індустрії - конкуруючих мобільних операційних систем Android і Windows Phone. Отже, які ж переваги і недоліки можна відзначити у цих двох найпопулярніших мобільних платформ? Android або Windows Phone - яка з платформ краще?

    1. Інтерфейс

    Перше, що кидається в очі будь-якому користувачеві, який взяв в руки смартфон на базі Windows Phone - це стилізовані плитки. У чому суть цих плиток? Це замасковані так звані живі тайли (Live Tiles), які являють собою такий собі ексклюзив від Microsoft, яскраву відмінну рису платформи Windows Phone. Чому ж ці тайли «живі»? Тайли - це не що інше, як кілька видозмінені віджети і ярлики додатків та ігор з тією особливістю, що їх актуальна інформація (прогноз погоди, курси валют, нові повідомлення, ігрові повідомлення і т.п.) відображається прямо на плитці.

    Платформу Android в плані інтерфейсу можна на сьогоднішній день сміливо називати чистої класикою. Взявши в руки новий Android-смартфон, користувач побачить звичні ярлики додатків та ігор, строго вишикувалися в ряд. Але такий стан справ може швидко змінитися. За допомогою різних додатків-лаунчер, в розмаїтті яких не можна дорікнути магазин додатків для Android - Google Play Market, Інтерфейс платформи можна в лічені секунди змінити на будь-який призначений для користувача смак, на будь-яку тематику шпалер для робочого столу, в тому числі і підібрати цікавий дизайн з віджетами, що відображають актуальну інформацію додатків та ігор.

    Отже, яка з платформ краще в плані інтерфейсу? Безумовно, багатьом сподобаються живі тайли Windows Phone, оскільки ця ідея компанії Microsoft дійсно заслуговує окремих похвал. Однак на Android можна встановити будь-який дизайнерський шедевр від розробника програми-лаунчер і змінювати інтерфейс платформи хоч по кілька разів на день. Windows Phone ж такої можливості не має, інтерфейс цієї платформи змінити не можна. Живі тайли користувач буде спостерігати весь час користування смартфоном на базі Windows Phone.

    Тому в плані інтерфейсу перемога за платформою Android - саме за її доступність і відкритість для постійних змін зовнішнього вигляду.

    2. Налаштування платформи під переваги користувача

    У плані можливості настройки мобільної платформи під призначені для користувача потреби учасники огляду - Android і Windows Phone - мають принципово відрізняються позиції.

    Android - це операційна система з відкритим вихідним кодом (ядро Лінукс), тому її варіантів з втручанням сторонніх розробників, Наприклад, з боку виробників мобільної техніки може бути дуже багато. Платформа Android відкрита, це дозволяє вносити свої корективи в її налаштування не тільки виробникам смартфонів і планшетів, але і самим користувачам - міняти інтерфейс, встановлювати будь-які програми та ігри, в тому числі і в обхід Google Play Market, завантажуючи програми та ігри з сторонніх ресурсів - торрент-трекерів, сайтів, присвячених тематиці Android і т.п.

    Отримання root-прав на Android відкриває користувачам неймовірні перспективи - наприклад, будь-яку просунуту екшн-гру, яка стоїть на Google Play Market пристойних грошей, користувач зможе встановити абсолютно безкоштовно, звернувшись до згаданих вище стороннім ресурсів.

    Відкритість коду платформи Android дозволяє їй бути гнучкою, виконувати найширший спектр завдань в інтересах користувача, використовуючи при цьому різноманітні програмні інструменти.

    Windows Phone - це закрита операційна система, яка не передбачає втручання в її код. В цьому плані компанія Microsoft вирішила піти по шляху компанії Apple, Обмеживши своє дітище від будь-якого стороннього втручання. Windows Phone не подається налаштування під переваги користувача. Доля користувачів - задовольнятися лише тим, що передбачив софтверний гігант.

    Тому друга перемога присуджується знову Android.

    3. Безпека і стабільність роботи

    З попереднього переваги платформи Android випливає її такий недолік, як незахищеність від вірусів і шкідливих програм. Дуже часто Hi-Tech ресурси в Інтернеті рясніють інформацією про те, що на Google Play Market виявлено черговий додаток, заражене вірусом або переслідує мети спустошити мобільний рахунок користувача фонової відправкою СМС на різні платні номери. Так, так іноді буває, і співробітникам Google Play Market є ще над чим працювати і що вдосконалити. Так що поки користувач може лише сподіватися на пильність антивірусного додатки.

    Гальмування і нестабільність роботи Android - ще один недолік, який також є наслідком відкритості коду цієї платформи.

    Ситуація з Windows Phone в плані безпеки і стабільності роботи - це повна протилежність ситуації з Android. закритість коду Windows Phone, можливо, і позбавляє цю платформу гнучкості, проте вона працює плавно, стабільно, без глюків.

    Так що в питанні безпеки і стабільності роботи перемога може бути тільки за Windows Phone. Це перша перемога дітища софтверного гіганта.

    4. Багатозадачність

    Android підтримує багатозадачність - це, безумовно, величезна перевага цієї платформи. В цьому питанні Android зміг перевершити навіть iOS - мобільну платформу iPhone і iPad, оскільки багатозадачність в iOS була реалізована тільки до четвертої версії платформи, а в Android багатозадачність існувала з самого початку - з першої версії.

    Так, на Android користувач може запускати одночасно кілька додатків і перемикатися між ними через спеціальне меню «Недавні додатки», яке відображає 6 останніх додатків. Якщо в додатку або грі не передбачено опції виходу, природно, всі запущені програми та ігри будуть висіти в фоновому режимі. Природно, це буде швидко виснажувати акумулятор смартфона. Але тут навряд чи можна пред'явити претензії саме до Android - за продуктивність завжди потрібно платити. По іншому ніяк.

    Windows Phone не підтримує багатозадачність.

    Отже, чергова, вже третя перемога Android.

    5. Додатки для мобільної платформи

    Якщо дивитися з позиції новачка - повного чайника, який купив перший у своєму житті смартфон, то в більш виграшній ситуації опиниться платформа Windows Phone, оскільки тут спочатку встановлено більше додатків. Наприклад, разом з новим смартфоном користувач отримує вбудовані в платформу додатки-клієнти соціальних мереж Facebook, Твіттер і Linkedin. Але такою дрібною наживкою часом спокусник бувалих користувачів, завзятих любителів мобільних комунікацій. Тому що для платформи Android все необхідне - клієнти соціальних мереж і різних інтернет-сервісів, органайзери, віджети погоди і курсів валют, мультимедіа-додатки, освітні програми, ігри та багато іншого - можна з легкістю безкоштовно скачати з Google Play Market.

    Щоб визначити, краще Android або Windows Phone в плані різноманітності розробленого під них контенту, порівняємо число додатків та ігор, які доступні для обох платформ в фірмових магазинах додатків. Так, Windows Phone Store налічує понад 120 тис. Різних додатків та ігор. А на Google Play Market міститься більше 700 тис. Додатків та ігор для Android. Як бачимо, результат на обличчя - 120 тис. Проти 700 тис. Але це тільки констатація конкретних цифр. Насправді частина додатків та ігор для Android, представлених сьогодні на Google Play Market, низької якості. Користувач, встановлюючи ту чи іншу програму або гру для Android, ніяк не може бути впевнений в тому, що воно запуститься або буде коректно працювати. Для Android несумісність програми або гри з версією платформи або з апаратними складовими мобільного пристрою - цілком звична справа.

    Незважаючи на це, перемогу знову присудили Android, адже компанія Google ніколи не позиціонувала своє дітище як елітну бренд-фішку. Для цієї платформи передбачено дійсно величезне число найрізноманітнішого контенту. Потрібно просто на деякі дрібниці закривати очі і, повторимося, мати гарне антивірусну програму.

    6. Картографічний сервіс

    Карти Google Maps в 3D для Android - це дійсно шедевр від пошукового гіганта. Функція перегляду вулиць Google Street View, реалізована в програмах Google Maps і Google Earth дозволяє переглядати панорамні види вулиць і міст усього світу. Google Maps - вже досить зрілий проект, в який пошуковий гігант вклав чимало зусиль. Конкуруючим картографічним проектам сьогодні щоб стати краще, ніж Google Maps, доведеться серйозно попрацювати. повертаючись до порівняльного огляду двох мобільних платформ, відзначимо, що з Google Maps в 3D для Android набагато зручніше працювати, ніж з Nokia Maps, встановленими в смартфонах на базі Windows Phone 8.

    Картографічний сервіс - це чергова перемога Android.

    7. Зберігання електронних грошей

    Обидві мобільні платформи підтримують систему NFS, яка використовується, зокрема, для проведення безконтактних платежів - коли оплачувати товари або послуги в торговельній точці можна, піднісши до терміналу мобільний телефон з активним банківським рахунком в електронному варіанті.

    Для зберігання грошових коштів компанія Google розробила електронну платіжну систему Google Wallet. За допомогою системи NFS, встановленої на смартфоні, і спеціального Android-додатки від системи Google Wallet користувачі можуть розплачуватися за товари і послуги в торгових точках, Де передбачені безконтактні платежі. Однак особливою популярністю цей проект від компанії Google не обзавівся.

    Електронний гаманець для Windows Phone - також не особливо популярна фішка, однак це не применшує його зручності. Він може об'єднати всі банківські карти користувача. Тому в питанні зберігання електронних грошей перемога присуджується Windows Phone.

    Підбиваючи підсумки…

    Багато фішки, якими можуть похвалитися і Android, і Windows Phone надзвичайно схожі. Це і голосове управління Google now для Android проти Tell me для Windows Phone, і, відповідно, музичні сервіси Google Music проти Xbox Music, і сервіси обміну повідомленнями та відеозв'язку Google Talk проти Skype.

    Підсумовуючи перемоги мобільних платформ з розглянутих питань, відзначимо тверду і стійку перемогу Android - 5 проти 2.

    Так, платформа Windows Phone перемогла лише двічі - в питаннях безпеки, стабільності роботи і зручного гаманця для зберігання електронних грошей. Інтерфейс, можливість настройки платформи під переваги користувача, багатозадачність, понад 700 тис. Розроблених програм та ігор, кращий картографічний сервіс - як бачимо, це досить чималий перевага Android.

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

    Windows Phone - це своєрідний аналог iOS. У цієї платформи також іменитий творець, в основу її принципів закладені імідж, стабільність, граціозність і плавність в роботі, опіка користувача і максимальне забезпечення його безпеки. Нехай навіть і на шкоду його всебічному розвитку.

    Останнє оновлення: 12.04.2017

    UWP (Universal Windows Platform) являє собою уніфіковану платформу для створення і запуску додатків в Windows 10 і Windows 10 Mobile.

    UWP стала результатом фолюціі більш ранніх технологій. Так, з виходом Windows 8 була впроваджена нова архітектурна платформа для додатків - Windows Runtime (WinRT), яка дозволяла запускати додатки в так званому режимі Modern (Metro) на десктопах, планшетах. Потім з виходом Windows 8.1 і Windows Phone 8.1 ця технологія отримала розвиток - з'явилися " універсальні додатки", Які можна було запускати відразу Windows 8.1 і WP8.1. І в липні 2015 офіційно вийшла нова ОС Windows 10. Вона використовує платформу UWP, яка представляє собою розвиток Windows Runtime.

    Як підказує назва платформи, вона є універсальною - універсальної для всіх пристроїв екосистеми Windows 10. А це звичайні дестопи, планшети, мобільні пристрої, пристрої IoT (інтернет речей), Xbox, пристрої Surface Hub. І додаток UWP може однаково працювати на всіх цих платформах, якщо на них встановлена \u200b\u200bWindows 10.

    Чому UWP?

    Програмування під UWP несе ряд переваг:

      широта поширення. На поточний момент (квітень 2017) Windows 10 встановлена \u200b\u200bвже більш ніж на 400 мільйонах пристроїв. На десктопах Windows 10 вже випередила Windows 8 / 8.1.

      Підтримка широкого кола пристроїв. Музичні кліпи, планшети, смартфони, великі планшети Surface Hub, різні IoT-пристрої, в перспективі пристрою віртуальної реальності HoloLens - коло устрйоства, на яких може працювати Windows 10 дійсно широкий.

      підтримка різних мов і технологій програмування. UWP-додатки можна створювати за допомогою таких мов, як Visual C ++, C #, Visual Basic, JavaScript. Як технології для створення графічного інтерфейсу Visual C ++, C # і Visual Basic використовують XAML, JavaScript застосовує HTML. Крім того, С ++ може замість XAML використовувати DirectX. Тобто досить поширені і та знайомі багатьом технології.

      Магазин додатків і зручність поширення. Windows Store є прекрасне місце для поширення UWP-додатків, як платних, так і безкоштовних. Самі можливості платформи і магазина Windows Store дозволяють використовувати різні способи монетизації. Наприклад, можна інтегрувати в додатка блоки для показу реклами через різні SDK. Можна поширювати за певну плату, причому оплату можна гнучко налаштовувати. При необхідності можна вбудувати надання ознайомчої версії, після використання якої користувач може вирішити, купувати додаток чи ні. І також можна монетизувати за моделлю freemium, при якій додаток умовно безкоштовне, а окремі послуги всередині програми надаються за певну плату. Причому всі ці можливості монетизації обесечіваются вбудованими інструментами SDK.

      Багаті можливості платформи. UWP багато успадковує від Windows Runtime з Windows 8.1 і в той же час надає багато нових функцональностей, як, більш багаті можливості по інтеграції з хмарою, використання Cortana, системи повідомлень в Win10 і багато іншого.

    Що необхідно для розробки під UWP

    Для програмування під UWP необхідна ОС Windows 10. Всі інші операційні системи, як Windows 8.1 / 8/7, не кажучи вже про Windows XP, не підходять!

    Також буде потрібно середовище розробки Visual Studio 2017 Community. Це повнофункціональна безкоштовна середовище розробки, яку можна завантажити з офіційного сайту за адресою https://www.visualstudio.com/downloads/download-visual-studio-vs.

    Також можна використовувати версію VS 2015 року, а всі інші попередні версії Visual Studio - 2013, 2012 2010 і т.д. з UWP не працюють.

    При установці Visual Studio 2017 програмою установника необхідно галочку у відповідному полі:

    Перед ніж як почати створення додатків, переконайтеся, що в центрі поновлення в Windows 10 встановлена \u200b\u200bвідповідна опція для розробників:

    І маючи Windows 10 і встановлену Visual Studio 2017, можна приступати до розробки додатків.

    Дорогі хабравчане!

    Хотів би попродробнее розповісти вам про одне з найцікавіших на мій погляд нововведень. Йтиметься про одночасну розробку додатків для Windows 8 і Windows Phone, тобто про універсальні додатки для платформи Windows.

    Платформа Майкрософт покриває широкий спектр пристроїв - від смартфонів і планшетів до настільних комп'ютерів і ігрової приставки Xbox One, і цілком природно, що розробнику хочеться мінімізувати зусилля при створенні додатків під всі форм-фактори. На конкуруючих платформах існує величезна різниця між настільними і мобільними додатками (оскільки вони працюють під управлінням різних операційних систем), при цьому мобільні додатки, Розроблені для смартфона, можуть працювати на планшетних пристроях, що часто призводить до незадоволеності користувача через не дуже якісного призначеного для користувача інтерфейсу.

    На даний момент Майкрософт впритул підійшов до того, щоб уніфікувати всі платформи (Windows Phone, Windows 8, Xbox One) з точки зору API, і дозволити програмістові максимально використовувати загальний код при створенні додатків, при цьому зберігши можливість використання різного дизайну для різних форм- чинників. Детальніше про те, як це реалізовано на поточний момент - читайте нижче.

    Як раніше створювалися додатки Windows + Phone
    До сьогоднішнього дня для створення додатків із загальним кодом для Windows і Windows Phone доводилося використовувати розділяється переноситься бібліотеку (portable library) для виділення загального коду, що відповідає за доступ до даних і бізнес-логіку, і різні проекти для UI. Детальніше такий підхід описаний в спеціальному курсі на Microsoft Virtual Academy, або. Також через різницю в API Windows 8 і Windows Phone доводилося частину коду робити переносних залежним.
    Універсальні програми Windows
    На конференції build були оголошені наступні нововведення:
    • У новій версії Windows Phone 8.1 будуть використовуватися Windows RT API Це означає, що близько 90% системних викликів між Windows 8.1 і Windows Phone 8.1 будуть загальними. Крім того, мова розмітки XAML також був уніфікований між платформами. Іншими словами, нові додатки Windows Phone 8.1 будуть використовувати Windows XAML, а не Silverlight. Якщо вам потрібна сумісність, для Windows Phone як і раніше можна буде розробляти з використанням Silverlight, в т.ч. використовуючи нові можливості, але це тема для окремої статті.
    • У Visual Studio 2013 Update 2 з'явиться новий шаблон проекту для уніфікованих програм Windows. Цей шаблон створює різні проекти для Windows і Phone, і третій «розділяється» проект, в якому розміщується весь загальний код. При цьому розділяється проект
      може містити не тільки код, але і XAML-розмітку, загальні ресурси, Зображення і т.д. Цей проект не компілюється в окрему бібліотеку, а розділяється між двома платформеними проектами на рівні текстового включення на етапі компіляції. Такий шаблон можна використовувати для розробки на C # / XAML, C ++ / XAML або HTML / JS.
    • Якщо ви хочете виділити частину переносних незалежного коду в окрему бібліотеку, що розділяється між декількома додатками, то як і раніше можна використовувати переноситься бібліотеку, в яку тепер можна включати також і XAML-розмітку. Переносяться бібліотеки можна використовувати для розробки на C # або Visual Basic.
    • Бінарної сумісності між платформами поки немає, Тобто додатки Windows 8 і Windows Phone як і раніше будуть поширюватися через відповідні магазини, і розробнику буде необхідно створити і завантажити в кожен з магазинів пакети додатки (хоча тепер Windows Phone 8.1 буде використовувати такий же формат.appx, що і Windows 8. Однак в магазинах Windows і Windows Phone будуть використовуватися єдині ідентифікатори додатків, Що дозволить реалізувати сценарії єдиної покупки додатки для використання на всіх платформах.
    • Додатки для Xbox One в поточній версії Visual Studio Update 2 не так добре вписуються в загальну історію, хоча на пленарній доповіді було показано універсальне додаток Khan Academy з використанням Kinect, що працює на Xbox і Windows (Так, Kinect v2 буде підтримуватися в додатках магазину Windows, але це знову ж таки тема для окремої статті). Розробка для Xbox One на поточний момент передбачається на HTML / JS / CSS і C ++
    Таким чином, тепер з'явилася зручна можливість для розробників створювати додатки під платформи Windows і Windows Phone, які містять значну кількість загального коду, з можливістю кастомизировать дизайн під різні платформи для максимізації задоволеності пользоваталей!
    Universal Hello World
    Розглянемо невеликий приклад створення універсального застосування. Структура проектів в Visual Studio 2013 Update 2 була змінена, і тепер в розділі Магазин Window доступні як додатки для Windows і Windows Phone, так і універсальні додатки і бібліотеки.

    Знову створюване універсальне додаток буде розраховано на платформу Windows Phone 8.1 і Windows 8.1 Update. При цьому в розділі додатків Windows Phone доступні шаблони проектів Windows Phone, засновані на Silverlight, які дозволять створювати додатки для ранніх версій платформи - але можливості універсальних програм при цьому використовувати не можна.

    Після створення порожнього універсального застосування, ми отримаємо таку структуру, що складається з трьох проектів: по одному проекту на кожну платформу і загальний розділяється проект:

    Зверніть увагу:

    • За замовчуванням дизайн сторінок (XAML) для платформ рознесений за різними проектами. Однак в простих випадках ви можете використовувати загальні XAML-файли для всіх платформ, якщо ви впевнені, що ваш дизайн буде досить добре адаптуватися до різних дозволів, від смартфона до робочого столу. При цьому багато вбудовані елементи управління (наприклад, GridView) вміють адаптуватися і змінювати свій зовнішній вигляд в залежності від платформи.
    • Якщо у вас є вже готовий проект Windows або Windows Phone, ви можете створити на його основі універсальне додаток, вибравши в контекстному меню проекту відповідний пункт. При цьому проект буде перетворений в таку ж трьох-проектну структуру, і ви зможете переносити файли програми в загальний проект для їх спільного використання.
    • У разреляемий проект можна включати посилання на бібліотеки (References), при цьому ці посилання будуть додані в обидва проекти (ми бачимо, що в посиланнях кожного з платформних проектів присутній Shared-посилання). Якщо якісь бібліотеки доступні тільки для однієї з платформ, то ми все одно можемо використовувати відповідну функціональність в загальному коді, оточуючи її директивами умовної компіляції #ifdef. Visual Studio настільки зручна, що при цьому буде працювати Intellisense, попереджаючи нас про те, що посилання доступна тільки в одній з платформ.
    • Якщо ми виносимо XAML-код в загальний проект, то в редакторі XAML доступний drop-down для перемикання платформи, і ми можемо візуально редагувати дизайн сторінки як в режимі телефону, так і в режимі планшета / десктопа.

    У більшості випадків ви захочете розділяти якомога більше коду між платформами, перенісши все, що можливо, в проект shared. У нашому випадку ми можемо перенести MainPage.xaml з одного з проектів в розділяється проект, і видалити його в платформних проектах, оскільки в нашому випадку дизайн сторінки не буде відрізнятися від платформи до платформи:

    Hello, world!
    Таким чином, ми отримали універсальне додаток, код і дизайн якого повністю знаходяться в разделяемом проект.

    На шляху до реальному додатком - Photo Viewer
    Спробуємо перетворити наш додаток Hello World в щось корисне - наприклад, в переглядач кращих фотографій flickr. Flickr надає RSS-потік фотографій, тому визначити відповідний джерело даних порівняно просто (для більшої простоти завантаження RSS зроблена не-асинхронної, в реальних проектах так робити не треба):

    Код для отримання картинок з Flickr

    public class Flickr (List list \u003d new List (); public Flickr () (var xdoc \u003d XDocument.Load ( "http://api.flickr.com/services/feeds/photos_public.gne"); XNamespace xn \u003d "http://www.w3.org/2005/Atom "; var res \u003d from z in xdoc.Descendants (xn +" entry ") let l \u003d (from x in z.Descendants (xn +" link ") where x.Attribute (" rel "). Value \u003d\u003d" ( ! LANG: enclosure" select x.Attribute("href").Value).FirstOrDefault() where (l!=null) && (l!="") select l; foreach (var x in res) { list.Add(new BitmapImage(new Uri(x))); } } public List!} Images (get (return list;))


    На основний сторінці використовуємо GridView, прив'язаний до цього джерела даних. Для того, щоб на різних платформах фотографії були різного розміру, Використовуємо ключ з ресурсного файлу, що визначає необхідний розмір фотографії.

    XAML-дизайн основної сторінки додатка



    щоб задати різні параметри в ресурсному файлі, створимо в кожному з платформних проектів свій ресурсний файл Resource.xaml такого змісту:
    150

    І на завершення нам треба підключити цей ресурсний файл в App.xaml (який знаходиться в разделяемом проект):

    App.xaml



    В результаті ми отримуємо пару додатків для Windows 8 і Windows Phone, які коректно відображають галерею зображень з урахуванням специфіки платформи.

    Повний вихідний код програми можна отримати на github.

    мораль
    Для створення нових додатків на платформі Windows 8 зараз кращим рішенням буде використовувати універсальні додатки. Якщо у вас є існуючий додаток Windows 8, то його можна буде потихеньку конвертувати в універсальний додаток і перенести на Windows Phone 8.1. Існуюче додатки Windows Phone 8 перетворити в універсальний додаток складніше (тому що для ряду операцій використовуються інші набори API), про це ми ще з вами поговоримо. Нарешті, універсальні додатки для Windows Phone вимагають версії Windows Phone 8.1, тому на поточний момент, щоб мати достатньо широку install base, має сенс використовувати додатки Silvelight 8.0

    Сподобалася стаття? поділіться їй