Результати пошуку за запитом: видеокурс c
Разгоняем ASP.NET Core
Автор: HighLoad
Прошло более года с того момента, как Microsoft выпустила первую версию своего нового фреймворка для разработки web-приложений ASP.NET Core, и с каждым днем он находит все больше поклонников. ASP.NET Core базируется на платформе .NET Core, кроссплатформенной версии платформы .NET c открытым исходным кодом. Теперь у С#-разработчиков появилась возможность использовать Mac в качестве среды разработки, и запускать приложения на Linux или внутри Docker-контейнеров.
В данном докладе я хотел бы поделиться моим опытом разработки высокопроизводительных приложений на базе новой платформы Microsoft. Речь пойдет как об общих подходах к разработке приложений (очереди, оптимизация ввода/вывода, кэширование), так и о деталях реализации ASP.NET Core и .NET Core. Мы также рассмотрим основные подводные камни, связанные с производительностью, и методики, чтобы их избежать до того, как приложение пойдет в релиз.
Кар'єра в IT: хто такий Embedded-розробник, завдання та обов'язки
Автор: Влад Сверчков
Хто такий Embedded-розробник?
Сфери застосування Embedded-розробки.
Що має знати Embedded-розробник.
Як стати Embedded-розробником.
Де отримати знання.
М’які навички.
Ключові тренди в Embedded.
Кар’єрні перспективи та заробітна плата Embedded Engineer.
Кількість вакансій.
Конкуренція.
Заробітна плата.
Кар’єрні можливості.
Висновки.
Переважна більшість новачків в Україні обирає тестування або розробку із залученням C#./NET, Java, Python, JavaScript (фронтенд та Node.js). Ці напрямки мають найбільшу кількість вакансій в ІТ, низькі вимоги до вищої освіти, потужну розпіареність майже в усіх навчальних центрах, а також відносно простий перехід в ІТ з будь-якої не айтішної професії.
Спеціальність, яку ми сьогодні розглядатимемо, не є настільки популярною, трендовою. Однак вона є не менш важливою за інші ІТ-напрямки. Герой нашої статті займається розробленням вбудованих (embedded) систем, і його іменують Embedded-розробник.
Що це за спеціальність, наскільки вона важлива і де використовується, що потрібно вчити для її опанування, як виглядає день Embedded-ера, які кар’єрні перспективи та зарплати у фахівців цього напрямку – розбір цих та інших інтригуючих питань читайте нижче.
Хто такий Embedded-розробник?
Почнемо з поняття “Embedded система”. Трактування в різних джерелах відрізняється, але якщо звести все під один знаменник – це комп’ютеризована система, яка вбудована у механічну або електронну систему і виконує певну функціональність. Тобто, це система, в якій комп’ютер (як правило мікроконтролер або мікропроцесор) є невід’ємною частиною іншої системи.
Як приклад: мікроконтролер у вашій кавовій машині, мікрохвильовці або пральній машинці; пристрій, який забезпечує спрацювання подушок безпеки в автомобілі, контролер у літаку, який збирає певні дані про політ – навіть Bluetooth-навушники містять свою власну вбудовану систему.
Відповідно, Embedded-розробник – це спеціаліст, який займається розробкою подібних вбудованих систем, використовуючи програмування (software) та навички роботи із “залізом” (hardware).
Життєвий цикл продукту дуже тісно зав’язаний на розробнику вбудованих систем. Обов’язки Embedded-розробника можуть різнитися в залежності від мікроконтролерів / мікросхем / пристроїв тощо, з якими він працює, але основні фази, де відчутна роль цього спеціаліста, наступні:
Аналіз вимог. Комунікація з клієнтами, дизайнерами та інженерними командами для визначення функціональних і технічних вимог до вбудованої системи.
Проєктування системи. Розроблення архітектури та дизайну вбудованої системи, вибір апаратних та програмних компонентів.
Перевірка базової працездатності. Перед початком роботи Embedded розробник повинен перевірити функціонування плати, оновити драйвери за потреби і переконатися, що “залізо” справне.
Програмування. Написання програмного коду, вбудованих програм і системних протоколів.
Тестування та налагодження. Проведення тестів для перевірки працездатності embedded-системи.
Інтеграція. Забезпечення взаємодії вбудованої системи з апаратурою, зовнішніми пристроями та іншими складовими системи.
Оптимізація продуктивності. Вдосконалення ефективності та продуктивності вбудованої системи, враховуючи обмежені ресурси.
Документація. Формування діагностичних звітів, технічних інструкцій та документації щодо розроблення ПЗ. Також читання форумів, статей та інструкцій до плат та компонентів, з якими ведеться робота.
Співпраця з іншими командами. Взаємодія з hardware та software розробниками, участь в різних мітингах, обговореннях, комунікація з замовником тощо.
Безпека та надійність. Забезпечення високого рівня безпеки, надійності та працездатності вбудованої системи.
Типовий робочий день Embedded-розробника складається з усього потроху:
написання та налагодження коду, пошук багів;
робота з апаратною начинкою – інколи доводиться і паяльником почаклувати, і щось мультиметром виміряти, і осцилограф застосувати тощо;
читання документації, пошук інформації на форумах;
тестування вбудованих систем та їхніх складових;
код-рев’ю;
рефакторинг;
взаємодія з командою, керівництвом: мітинги, ділова переписка, зідзвони з певних питань (або живе спілкування) і т. д.
Сфери застосування Embedded-розробки
Embedded у XXI столітті має гарний приріст затребуваності у зв’язку з розвитком ІТ-індустрії, в особливості – мережевих технологій, операційних систем, мов програмування та внаслідок модернізації “заліза”. Наразі сфера застосування вбудованих систем досить об’ємна:
Побутова електроніка. Вбудовані системи є невід’ємними атрибутами затишного житла: це смарт-телевізори, холодильники, мультиварки та інша кухонна електроніка, пристрої безпеки, смарт-девайси для будинку.
Машинобудівна промисловість. Embedded технології є ключовими для сучасних транспортних засобів, починаючи від цивільного автопрому і закінчуючи потужними будівельними гуліверами. Вони входять до складу двигунів, навігаційних систем, клімат-контролю, розважальних блоків тощо.
Медицина. Сучасна медицина неможлива без комплексного цифрового обладнання, включаючи пристрої моніторингу пацієнтів, системи візуалізації, діагностичні інструменти тощо.
Промислова автоматизація. Вбудовані системи використовуються в промислових системах керування, програмованих логічних контролерах (PLC) і робототехніці для автоматизації та керування процесами.
Телекомунікації. Вбудовані системи – невід’ємна частина мережевого обладнання, маршрутизаторів, комутаторів і комунікаційних пристроїв для ефективної передачі даних.
Аерокосмічна промисловість. Сучасна авіоніка використовує ембедед для керування функціями літака, системами навігації та зв’язку. Якщо хтось хоче тераформувати Марс – без Embedded-у буде дуже важко.
Військова галузь. Вбудовані системи відіграють вирішальну роль у оборонних програмах як у мирний час (спостереження, аналіз, прогнозування, наведення тощо), так і під час війни (згадайте ті ж джавеліни, дрони, хаймарси, петріоти і т. д. – там дуже багато електроніки).
Розумні мережі. Розвиток розумних мереж (smart grid) підвищує ефективність і надійність розподілу електроенергії.
IoT (Інтернет речей). Пристрої IoT значною мірою залежать від вбудованих систем для збору, обробки та передачі даних для різних програм. Приклади: розумний будинок, автоматизовані системи поливу, розумні міста тощо.
Що має знати Embedded-розробник
В Embedded-і ціла палітра спеціальностей. Наприклад, приставки “Software”, “Firmware” вказують на фокус саме на створенні ПЗ, а "Hardware" та "Hardware Design" – на апаратній частині. Тайтл на кшталт "Embedded Systems Engineer" говорить про необхідність мати однаково гарні hardware та software знання. Також треба розуміти, що в різних компаніях один і той же тайтл може мати під капотом зовсім різні технології в залежності від апаратної начинки, різновиду вбудованої системи абощо.
Наш опис необхідних технологій буде охоплювати і апаратне, і програмне крило вимог, що робить його ближчим до тайтлу "Embedded Systems Engineer". Якщо ви хочете більше в software, вивчайте глибше технології, спрямовані на розроблення софту; якщо ж у hardware – більше уваги приділяйте апаратним навичкам.
Отже, ми проаналізували тематичні статті, думки популяризаторів ембедеду та вакансії українського ринку, і на виході отримали наступний технологічний стек Embedded девелопера.
Математика, фізика, електроніка
Найперше ембедед-розробники повинні гарно знати математику та фізику – особливо теми, пов’язані з електротехнічним напрямком, аби гарно розуміти принципи функціонування hardware: розбиратися в начинці плат, вміти правильно розводити всі сигнали на платі, правильно рахувати всі доріжки, перекриття сигналів, їхню цілісність тощо. Ці знання важливі як під час розроблення, так і на моменті проєктування, тестування, комунікування з іншими колегами і не тільки.
Які розділи потрібно знати:
базова математика та обчислення;
дискретна математика;
електричні кола;
основи електроніки;
цифрова та аналогова мікросхемотехніка;
цифрові та логічні схеми;
комп’ютерна архітектура.
Тестове обладнання
Перераховане нижче обладнання ви будете широко використовувати для перевірки працездатності мікросхем, пошуку несправностей тощо. Вам знадобляться наступні інструменти:
мультиметр;
логічний аналізатор;
осцилограф.
Мультиметр є досить відомим приладом серед “електротехнарів” – ним вимірюють низку фізичних величин, як-от сила струму, опір, напруга та інші.
Логічний аналізатор використовується для роботи з цифровими сигналами в електронних системах, а осцилограф – для візуалізації та дослідження електричних сигналів, а також відображення їхніх параметрів в режимі реального часу.
Мікроконтролери
Одні з головних об’єктів зацікавленості Embedded-розробників. Під них і пишеться код мовами C/C++ і не тільки. МК являє собою невеликий електронний пристрій з великою кількістю “ніжок”, якими відправляються/приймаються відповідні електричні сигнали.
Що важливо знати з цієї теми:
GPIO
ADC
DAC
Таймери
PWM
Переривання
Сторожовий таймер (watchdog)
Керування тактовою системою (clock management)
Кожна модель МК має свої особливості, з якими вам треба буде знайомитися через відповідну документацію. Також вам треба знати периферію обраного вами мікроконтролеру і бібліотеки для керування нею.
Найпопулярнішим сімейством МК наразі є STM32. Досвід роботи з Arduino також вітається.
RTOS
Real Time OS – операційна система реального часу. Надає середовище виконання для програм, які мають строгий графік виконання завдань. Embedded-розробники використовують RTOS для обробки завдань з високою точністю і низькими затримками.
Linux
Якщо ви плануєте працювати з вбудованими пристроями на базі Linux (а їх зараз дуже багато), вам слід гарно знати і цю операційну систему. Вона має відкритий вихідний код і є безкоштовною.
Говорячи про приклади проєктів, лінукс використовує велика кількість систем IoT, промисловий, мережевий, автомобільний, медичний Embedded тощо.
Паяльник
Так, в даній професії необхідно інколи й паяльником попрацювати. Якісь компоненти можуть потребувати пайки – десь щось вилучити/додати/замінити, поекспериментувати з макетом, зібрати проєкт тощо. Може виникнути будь-яка ситуація на “залізі”, і ембедед-фахівець має бути готовим до цього.
Основи програмування
Фундамент, який зробить ваш процес програмування продуктивним. Сюди віднесемо наступні теми:
алгоритми та структури даних – ембедерам потрібні сильні знання з алгоритміки;
шаблони проєктування – так, в ембедеді є свої патерни, які полегшують життя девелоперам, наприклад Opaque Pointer pattern;
UML (діаграма стану, state machine) – для моделювання та аналізу поведінки системи.
Програмування на C/C++
C/C++ – це потужні мастодонти у світі програмування. В порівнянні з іншими мовами є складнішими у вивченні, натомість дають можливість писати низькорівневий код з високим ступенем контролю “заліза”.
Також C/C++ дозволяють напряму керувати пам’яттю (а це дуже важливо при роботі з hard-елементами, які мають досить обмежений ресурс), контролювати велику кількість low-level процесів, а також підходять для програмування широкого спектру “заліза”. Обов’язковий інструмент в скарбничці Embedded-девелопера – можна вивчити або C, або C++, або обидві мови.
Інтерфейси та протоколи
Обмін інформацією між Embedded-елементами та їхніми складовими здійснюється через спеціальні інтерфейси та протоколи:
UART, I2C, SPI – базові, їх треба знати обов’язково;
Ethernet, USB – для роботи на високих швидкостях;
Bluetooth – дуже відома безпровідна технологія;
TCP/IP, UDP – для роботи з мережею;
CAN – система, яка використовується в транспортних засобах;
Modbus – для роботи на промислових об’єктах.
Git
Git – система керування версіями проєкту, дуже популярний інструмент під час написання будь-якого коду, оскільки дозволяє відслідковувати зміни в коді, створювати гілки для роботи над різними функціями, ділитися своїм кодом з іншими колегами і навпаки тощо.
Agile/Scrum
Agile – це сімейство гнучких (agile) методологій розроблення ПЗ, яке сприяє випуску продукту порціями, крок за кроком розширюючи та покращуючи його. Як результат – команда здійснює розроблення відносно невеликими інтервалами, сам продукт постійно покращується, якість коду – підвищується. Познайомитися з Agile вам допоможе відповідний маніфест з детальним описом основних принципів.
Scrum є однією з найпопулярніших реалізацій даного підходу, яка часто використовується в багатьох ІТ-командах, в тому числі і під час роботи з вбудованими пристроями.
Англійська мова
English на рівні вільного читання документації має бути у кожного Embedder-а, оскільки левова частка роботи припадає саме на вичитування матеріалів до тих чи інших мікроконтролерів та супутніх пристроїв. Якщо ж ви будете працювати в команді з іноземцями, то треба підтягнути ще й розмовну англійську.
Як стати Embedded-розробником
Де отримати знання
Є декілька опцій для вивчення розробки вбудованих пристроїв:
Можна вчитися самостійно за допомогою безкоштовних ресурсів у вільному доступі: YouTube, roadmap-и з посиланнями на GitHub-і, статті, тематичні форуми, безкоштовні курси та матеріали (MIT OpenCourseWare, embedded.com) тощо. На плати Arduino, паяльник, мультиметр і т. д., звісно, таки доведеться розщедритися.
Проходження відео курсів (платно) на Udemy, Coursera, edX, Pluralsight та інших платформах, придбання спеціалізованих книг.
Менторинг з боку діючого розробника – найефективніший спосіб навчання, оскільки у вас завжди буде допомога, наставництво, поради, чіткий напрямок руху та необхідні навчальні матеріали.
Проходження онлайн/офлайн навчання при компаніях. Такий формат пропонують, наприклад, GlobalLogic, Ajax Systems тощо. Мінуси: потрібна певна база знань перед стартом навчання, а головний плюс – можливість стажування і повноцінного працевлаштування в компанії.
Вища освіта в цій спеціальності не завадить, хоч і не є обов’язковою. Потрібну базу ви можете отримати у школі та вищих навчальних закладах на відповідних технічних спеціальностях – там же є і можливість потрапити на стажування, якщо кафедра таке практикує або має відповідні зв’язки з компаніями.
Soft skills
Вимоги до Embedded-розробників можуть різнитися в плані стеку, але що 100% знадобиться кожному, це наступні “м’які” навички:
критичне, алгоритмічне, аналітичне мислення;
навички problem-solving;
комунікативність, вміння працювати в команді;
організованість, зібраність, вміння ефективно розпоряджатися часом;
самомотивація;
увага до деталей;
терпіння та адаптивність;
пристрасть до Embedded;
бажання постійно розвиватися та вдосконалюватися.
Останні три пункти дуже важливі в професії, оскільки ембедед – це непроста галузь, і за 3-6 місяців “увійти в ІТ” не вийде. Потрібно більше зусиль, часу та витримки.
Ключові тренди в Embedded
ІТ-індустрія рухається вперед, і ембедед не відстає. Проаналізувавши низку ресурсів, ми визначили наступні тренди:
Інтеграція штучного інтелекту та машинного навчання в Embedded-системах стає все більш привабливою, що сприяє використанню вбудованими системами інтелектуальних алгоритмів та ML. Ця синергія дозволяє системам адаптуватися до змін в реальному часі, підвищуючи їхню ефективність.
Розвиток безпровідних технологій відкриває нові перспективи для вбудованих систем, особливо в областях Інтернету речей (IoT) та безпілотних систем, які керуються віддалено або за допомогою AI.
System-on-chip рішення. Інтеграція всіх ключових компонентів системи на одному чіпі (SoC) продовжує набирати оберти та використовуватися різними бізнесами. Їхня компактність в сукупності з високою продуктивністю, дешевизною, енергоефективністю та інтегральними мікросхемами спеціального призначення (ASIC), наприклад, вже успішно застосовується в гаджетах, які збирають та аналізують різні параметри здоров’я.
Більше уваги безпеці. Зростання кількості вбудованих систем, які мають вихід в Інтернет, призводить до збільшення кількості кіберзагроз, що підкреслює важливість удосконалення заходів безпеки для ембедед-пристроїв.
Оптимізація споживання енергії embedded-системами стає актуальною – на це впливають ідеї сталого розвитку, що сприяє поширенню більш енергоефективних рішень.
Розвиток AR та VR (доповнена та віртуальна реальності). Інтеграція вбудованих систем у AR та VR відкриває нові горизонти для інтерактивних інтерфейсів та розважальних застосунків. Embedded-розробники активно працюють над цими технологіями для створення вражаючого досвіду та візуальних ефектів.
Окремо зазначимо і розвиток вбудованих пристроїв у військовій сфері. Наразі зростає попит на ембеддерів, які здатні працювати з дронами (повітряними та морськими), БПЛА тощо. Сьогодні саме ці роботизовані системи дозволяють ефективно виявляти та ліквідовувати ворога, здійснювати розвідку, наводити та корегувати вогонь і – що найважливіше – берегти життя та здоров’я особового складу. Сьогодні це один з трендових напрямків конкретно в нашій державі.
Кар’єрні можливості в ІТ та заробітна плата Embedded Engineer
Кількість вакансій
Для визначення цього параметру використаємо дані з найвідоміших українських ресурсів для пошуку роботи в ІТ – DOU та Djinni – і порівняємо результати з найпопулярнішими спеціальностями.
Почнемо з DOU:
Embedded – 44 вакансії;
QA – 167;
FrontEnd – 160;
DevOps – 158;
PHP – 140;
Python – 138;
Java – 108;
.NET – 104;
Node.js – 101.
На Djinni пошук роботи кандидатами здійснюється анонімно. Кількість вакансій наступна:
C / C++ / Embedded – 170 вакансій;
JavaScript / FrontEnd – 354;
PHP – 295;
DevOps – 273;
Python – 208;
Node.js – 191;
C#/.NET – 166;
Java – 161;
QA Automation – 139;
QA Manual – 128.
Конкуренція
Для визначення конкуренції ембедерів на нашому ринку ІТ скористаємося співвідношенням кількості відгуків до кількості вакансій на DOU за листопад 2023 року (беремо найбільш відомі спеціальності). Ось що маємо:
Конкуренція у ембеддерів (від новачків до професіоналів) дуже низька: на 1 вакансію припадає приблизно 5 претендентів, що є дуже гарним результатом під час нинішньої ситуації на ринку ІТ.
Справжні “голодні ігри” традиційно у QA та FrontEnd: за 1 вакансією полюють в середньому 120.9 та 100.5 кандидатів відповідно.
Відповідно до ринкової статистики Djinni, для новачків конкуренція посилюється:
Зазначимо, що тут демонструється кількість кандидатів на вакансію, котрі зараз перебувають в “онлайні”. На Джині так позначаються ті кандидати, які знаходяться в активному пошуку роботи.
Бачимо, що в категорії “C / C++ / Embedded” без досвіду 27.75 шукачів на вакансію (окремої категорії для Embedded немає). Багатенько, але подивіться на аналогічну ситуацію в більш популярних напрямках:
JavaScript / FrontEnd – 426.55
C#/.NET – 200.5
Python – 185.6
Manual QA – 132.83
Node.js – 98
DevOps та FullStack – 83.5
Заробітна плата
Спершу розглянемо зарплатну статистику на Djinni для “C / C++ / Embedded” (за останні 6 місяців). Картина наступна:
Зарплатні вилки досить високі – 2300-4700 USD. При цьому зарплатні очікування кандидатів скромніші – від 700 USD до 4500 USD.
А скільки отримують Embedded за межами України? Звернімося до аналітики Stack Overflow Developer Survey 2023 (більше 90 000 респондентів із США, Індії, Німеччини, Сполученого Королівства, Канади тощо).
Деякі несуттєві для нашої статті спеціальності були прибрані з діаграми задля більшої компактності зображення.
Отже, медіанна зарплата Embedded-спеціалістів з різних країн складає 77 104 USD на рік, а це приблизно 6425 USD на місяць. Що цікаво, розробники вебу (FrontEnd, BackEnd, FullStack), ігор, мобільних та десктопних застосунків отримують меншу ЗП, хоча ці спеціальності більш поширені, а веб взагалі є найпопулярнішим в ІТ.
Вищу винагороду отримують ті, хто спеціалізується на базах даних, DevOps-процесах, великих даних, апаратній частині, блокчейні, безпеці тощо.
Кар’єрні перспективи
Embedded розробник – поняття досить розмите і обширне, оскільки фахівець цієї спеціалізації може працювати над:
створенням робототехнічних систем;
медичною апаратурою;
автомобільними системами;
аерокосмічними апаратами;
IoT-екосистемою;
AR та VR індустрією;
мережевими системами;
гаджетами для цивільних потреб;
безпекою embedded-пристроїв;
промисловими системами;
військовими розробками;
тощо.
В кожній із цих сфер будуть свої технологічні стеки, мікроконтролери, плати, інтерфейси, протоколи і т. д.
Ще не забувайте про ембедерський “фронтенд”, “бекенд” і “фулстек” – в кожній галузі ви можете концентруватися більше на програмній частині, апаратній, або ж на обох одразу.
Звісно, кожен напрямок може мати власну “кухню”, і щоб “скуштувати страву” в кожному із цих “ресторанів” цілого життя може не вистачити, але погодьтеся – список для самореалізації скромним не назвати.
Також ви можете в будь-який момент заглибитися в Software розробку і займатися написанням програмного коду (найпопулярніші стеки в Embedded-і – C/C++, Java, Python, Go), а можете піти у Hardware і більше уваги приділяти “залізу”. Якщо трохи підкачати знання, то можна перекваліфікуватися і в тестувальники, і в спеціаліста з безпеки, мережевого спеціаліста тощо. Можливості дуже широкі та дуже різноманітні.
Якщо ж говорити про вертикальний потенціал професії, розробник вбудованих систем стартує зі стандартної Intern/Trainee/Junior позиції. Далі – зі збільшенням досвіду, навичок та знань – отримує підвищення до Middle та Senior, а вище – керівні позиції на кшталт Team/Tech Lead, архітектор і т. д.
Висновки
Embedded – дуже цікава, незвична та багатогранна ІТ спеціалізація. Вона дозволяє відчути себе Архітектором, котрий вдихає життя в пристрої, дає їм все необхідне для їхнього руху, думок, аналізу навколишнього середовища, спілкування один з одним тощо. Так, для цього потрібно мати багато знань, але хто сказав, що бути Творцем – це так просто?)
Цей напрямок дає дуже важливий фундамент для інших ІТ-галузей, які сьогодні в зеніті популярності. Завдяки вбудованим системам ми можемо насолоджуватися безліччю автоматизованих процесів, починаючи ранковою свіжомеленою кавою та оглядом нашого сну у health-трекері, і закінчуючи автомобільною та медичною апаратурою.
Ембедед створений для справжніх любителів “заліза” та його програмування. При цьому він має багато нішевих розгалужень і щороку зростаючий попит. Сьогодні в Україні розробники вбудованих пристроїв мають великі можливості для реалізації, а в решті світу – тим більше.
Професія непроста, але вона щедро винагороджує сміливих, терплячих та цілеспрямованих, котрі не бояться складнощів та перешкод і готові на все, аби досягнути бажаного.
Бажаємо успіхів та натхнення всім, хто прагне розвиватися в напрямку Embedded!
Що таке Universal Windows Platform (UWP)?
Автор: Редакция ITVDN
Универсальная платформа Windows (UWP) – это специальная платформа для создания приложений на Windows 10. Вы можете разрабатывать приложения для UWP с помощью всего одного набора API, одного пакета приложений и одного магазина для доступа ко всем устройствам Windows 10 – ПК, планшета, телефона, Xbox, HoloLens, Surface Hub и других. Легче поддерживать несколько размеров экрана, а также различные модели взаимодействия, будь то сенсор, мышь и клавиатура, игровой контроллер или ручка. В основе приложений UWP лежит идея, что пользователи хотят, чтобы их работа, их задачи были мобильными через ВСЕ устройства, чтобы можно было использовать любое устройство, наиболее удобное или производительное для конкретной задачи.
UWP является гибким: вам не нужно использовать C# и XAML, если вы этого не хотите. Вам нравится развиваться в Unity или MonoGame? Предпочитаете JavaScript? Не проблема, используйте все, что хотите. У вас есть настольное приложение C++, которое вы хотите расширить с помощью функций UWP и продавать в магазине? И тут все будет работать.
В итоге вы можете потратить свое время на работу со знакомыми языками программирования, фреймворками и API-интерфейсами, все в одном проекте, и иметь тот же самый код, который работает на огромном диапазоне оборудования Windows из существующих сегодня. После того, как вы написали свое приложение UWP, вы можете опубликовать его в магазине на обозрение всего мира.
Итак, что такое UWP-приложение?
Что делает приложение UWP особенным? Вот некоторые из характеристик, которые отличают приложения UWP в Windows 10.
Существует общая среда API для всех устройств
Основа API-интерфейсов универсальной платформы Windows (UWP) одинакова для всех классов устройства Windows. Если ваше приложение использует только основные API-интерфейсы, оно будет запускаться на любом устройстве Windows 10, независимо от того, планируете ли вы использование настольного ПК, гарнитуры Xbox или наушников Mixed Reality.
Расширение SDK позволяет вашему приложению делать классные вещи на определенных типах устройств
Расширение SDK добавляет специализированные API для каждого класса устройства. Например, если ваше приложение UWP нацелено на HoloLens, вы можете добавить функции HoloLens в дополнение к обычным API-интерфейсам UWP. Если вы используете универсальные API-интерфейсы, ваш пакет приложений может работать на всех устройствах, работающих под управлением Windows 10. Но если вы хотите, чтобы ваше приложение UWP использовало API-интерфейсы устройства тогда, когда оно работает на определенном классе устройства, вы можете проверить, существует ли API до его вызова во время выполнения.
Приложения упакованы с использованием формата упаковки .AppX и распространяются из магазина
Все приложения UWP распространяются как пакет AppX. Это обеспечивает надежный механизм установки и гарантирует, что ваши приложения могут быть развернуты и обновлены без проблем.
Одно хранилище для всех устройств
После регистрации в качестве разработчика приложений вы можете отправить свое приложение в магазин и сделать его доступным для всех типов устройств или только тех, какие вы выберете. Вы загружаете и управляете всеми своими приложениями для устройств Windows в одном месте.
Приложения поддерживают адаптивные элементы управления и ввода
Элементы пользовательского интерфейса используют эффективные пиксели, поэтому они могут отображать макет в зависимости от количества пикселей экрана, доступных на устройстве. И они хорошо работают с несколькими типами ввода, такими как клавиатура, мышь, сенсорный экран, ручка и контроллеры Xbox One. Если вам нужно дополнительно адаптировать свой пользовательский интерфейс к определенному размеру экрана или устройству, новые панели макетов и инструменты помогут вам в этом.
Используйте язык, который вы уже знаете
Приложения UWP используют Windows Runtime, собственный API, встроенный в операционную систему. Этот API реализован на C++ и поддерживается на C#, Visual Basic, C++ и JavaScript. Некоторые варианты написания приложений в UWP включают:
XAML UI и C#, VB или C++ backend
DirectX UI и C++ backend
JavaScript и HTML
Microsoft Visual Studio 2017 предоставляет шаблон приложения UWP для каждого языка, который позволяет вам создать единый проект для всех устройств. Когда ваша работа будет завершена, вы можете создать пакет приложений и отправить его в Windows Store из Visual Studio, чтобы сделать ваше приложение доступным для клиентов на любом устройстве Windows 10.
Приложения UWP оживают в Windows
В Windows ваше приложение может предоставлять актуальную информацию в режиме реального времени вашим пользователям и заставлять их возвращаться снова. В современной экономике приложений ваше приложение должно участвовать в жизни ваших пользователей. Windows предоставляет вам множество ресурсов, чтобы помочь вашим пользователям вернуться в ваше приложение:
Живые фрагменты и экран блокировки отображают контекстно-зависимую и своевременную информацию.
Push-уведомления приносят сигналы в реальном времени, отправляя предупреждения вашему пользователю, когда это необходимо.
Центр действий – это место, где вы можете организовывать и отображать уведомления и контент, на которые пользователи должны обратить внимание.
Background - исполнение и триггеры оживляют ваше приложение, когда пользователю это нужно.
В вашем приложении могут использоваться голосовые и Bluetooth-устройства LE, чтобы помочь пользователям взаимодействовать с окружающим миром.
Поддержка богатых, цифровых чернил и инновационного набора.
Cortana добавляет индивидуальность вашему программному обеспечению.
XAML предоставляет вам инструменты для создания плавных анимированных пользовательских интерфейсов.
Наконец, вы можете использовать данные о роуминге и Windows Credential Locker, чтобы обеспечить постоянный роуминг на всех экранах Windows, где пользователи запускают ваше приложение. Данные о роуминге дают вам простой способ сохранить пользовательские настройки и настройки в облаке, не создавая собственную инфраструктуру синхронизации. И вы можете хранить учетные данные пользователя в хранилище учетных данных, где безопасность и надежность являются главным приоритетом.
Монетизируйте ваше приложение
В Windows вы можете выбрать, как вы будете монетизировать свои приложения на телефонах, планшетах, ПК и других устройствах. Вот несколько способов заработать деньги с помощью вашего приложения и услуг, которые оно предоставляет. Все, что вам нужно сделать, это выбрать то, что лучше подходит для вас:
Платная загрузка – это самый простой вариант. Просто назовите цену.
Система нескольких пробных попыток позволит пользователям оценить ваше приложение перед его покупкой. Это обеспечит более легкую конверсию, чем более традиционные варианты «freemium».
Используйте скидки для привлечения внимания к своим приложениям.
Также доступны покупки и реклама в приложении.
Как начать?
Более подробный обзор UWP читайте в официальном Руководстве по приложениям для универсальной платформы Windows. Затем ознакомьтесь с настройкой Get set up, чтобы загрузить инструменты, необходимые для начала создания приложений, и напишите свое первое приложение!
Источник.
Узагальнені класи С#
Автор: Редакция ITVDN
Введение
Обобщенные классы в С# представляют параметры типа. Они имеют 5 параметров. Обощенный класс становится частью обусловленного класса сам по себе. Класс типа Т приведен в примере ниже. Буква Т определяет тип, который в основном базируется на зоне абонента.
Запустите программу Visual Studio. Выберите тип проекта и строчку console application.
Шаг 1
Нажмите на ярлык файла -> Новое -> Программа.
Шаг 2
Выберите строчку Visual C# в левой части окна. Кликните Console Application в правом окне. Назовите программу «GenericClass». Задайте, где Вы хотите сохранить программу. Нажмите Ok.
Шаг 3
Введите следующий код в дополнение:
public class Myclass
{
public void Compareme(T v1, T v2)
{
if (v1.Equals(v2))
{
Console.Write("The value is matching");
}
else
{
Console.Write("The value is not matching");
}
}
}
class Program
{
static void Main(string[] args)
{
Myclass objmyint = new Myclass();
objmyint.Compareme("Amit", "Amit");
Console.ReadLine();
}
}
После введения кода, Вы получите такие исходные данные.
Измените строчку на что-либо другое, проверьте исходные данные. В примере создан второй строчный параметр «amit».
public class Myclass
{
public void Compareme(T v1, T v2)
{
if (v1.Equals(v2))
{
Console.Write("The value is matching");
}
else
{
Console.Write("The value is not matching");
}
}
}
class Program
{
static void Main(string[] args)
{
Myclass objmyint = new Myclass();
objmyint.Compareme("Amit", "amit");
Console.ReadLine();
}
}
Посмотрите на результат.
Источник: http://www.c-sharpcorner.com/UploadFile/d1028b/generic-class-in-C-Sharp/
Швидко вчимося рахувати у двійковій та шістнадцятковій системі
Автор: Костянтин Чорний
Вступ
Іноді виникає потреба швидко прочитати чи записати числа у двійковій чи шістнадцятковій системі числення, наприклад, працюючи з різними байтовими редакторами, під час розрахунків формул з побітовими операціями чи роботі з кольором. Часто в таких ситуаціях немає можливості довго переводити числа за допомогою формул або калькулятора. Про швидкі способи переходу між системами числення йтиметься у цій статті.
Перехід від десяткової системи до двійкової
Перший випадок – рахуємо від десяткової системи до двійкової. Основне, що потрібно пам'ятати в даному випадку – це ряд ступенів двійки (1, 2, 4, 8, 16, 32, 64, 128 і т. д.). Навіть якщо його ви не знаєте, то можна просто кожне наступне число множити на двійку. Оскільки молодші розряди йдуть праворуч, а старші – ліворуч, то їх записуватимемо у зворотному порядку справа наліво.
Для прикладу будемо переводити число 115. Далі дивимося, якщо значення розряду вміщується в число, то віднімаємо від нього це значення і ставимо в цьому розряді 1, інакше ставимо 0.
Зворотний переклад ще простіше – треба підсумувати всі значення розрядів, які відзначені одиничками: 64+32+16+2+1=115.
Перехід до шістнадцяткової системи
Тепер давайте розберемося із шістнадцятковою системою. Маючи на увазі те, що кількість чисел, які кодуються тетрадою (4 біти) і одним шістнадцятковим символом співпадають, відповідно кожен символ кодує одну двійкову тетраду.
В результаті одержали число 0х73. Головне пам'ятати, що А=10, B=11, C=12, D=13, E=14, F=15.
Якщо є потреба перевести десяткове число в шістнадцяткове або навпаки, то тут найпростіше спочатку буде перевести число в двійкове уявлення, а потім тільки в шістнадцяткове або десяткове відповідно.
У результаті ми навчилися швидко переводити числа з однієї системи числення до іншої. Головне, що потрібно пам'ятати – ступені двійки і вміти гарно додавати та віднімати. Детальніше про машинну математику ви можете дізнатись у другому уроці курсу C# Стартовий.
Попрактикуйтеся самостійно і переведіть кілька чисел з однієї системи до іншої, звіряючись з калькулятором. Трохи практики – і ви всьому навчитеся.
Новий курс SQL Базовий українською
Автор: Редакция ITVDN
Друзі, привіт! Відтепер ви можете вивчати SQL на ITVDN українською мовою – новий відео курс “SQL Базовий” вже на сайті.
SQL – це мова структурованих запитів, яка стоїть біля витоків усіх реляційних систем управління базами даних (РСУБД), тому її знання є фундаментально важливим. Цю мову та/або її інтерпретації використовують як BackEnd розробники усіх напрямків, котрі працюють з реляційними БД, так і Data Analysts, Data Scientists, адміністратори БД та навіть тестувальники.
У базовому курсі SQL студенти вивчатимуть основи мови, включаючи її синтаксис, основні операції обробки даних і принципи взаємодії з базами даних.
Курс складається з 10 уроків, кожний містить домашні завдання з прикладами на реальній базі даних. Після проходження курсу ви будете гарно розуміти основи SQL, що дозволить вам взаємодіяти з базами даних, виконувати операції маніпулювання даними, а також отримувати та змінювати дані.
Автор курсу – Дмитро Бурковський, SQL Developer.
Тривалість курсу – 7 годин 2 хвилини.
Структура курсу:
Знайомство з MS SQL Server 2019.
Запити DDL. Команди CREATE, ALTER, DROP, TRUNCATE, EXEC.
Запити DDL. Типи даних, атрибути.
Запити DML. Команди INSERT, SELECT, ORDER BY, WHERE.
Запити DML. Команди UPDATE, DELETE, оператори фільтрації.
Групування даних.
З'єднання таблиць.
Вбудовані функції.
Змінні. Умови. Цикли.
Процедури. Тригери. Представлення.
Чого ви навчитеся на даному курсі:
Створювати бази даних
Описувати зв'язки між таблицями
Будувати прототип бази даних
Проводити нормалізацію та денормалізацію
Заповнювати, оновлювати, видаляти дані з бази даних мовою запитів SQL
Створювати процедури та функції
Створювати тимчасові таблиці
Проводити транзакції
Попередні вимоги
Достатньо мати базові навички роботи з комп'ютером. Знання основних концепцій програмування та синтаксису може бути корисним, але не є обов’язковим.
Курс рекомендований студентам, які паралельно вивчають якусь мову програмування (Python, Java, C++, C#, PHP та інші) і планують працювати з даними.
Дивіться перший урок у вільному доступі. Курс вже доступний на нашому сайті в повному обсязі – до кожного уроку є практичні завдання та опорний конспект. Якщо у вас є активна підписка, ви можете дивитися його прямо зараз.
ITVDN шукає авторів для створення відео курсів
Автор: Редакция ITVDN
Друзі, з початком повномасштабної війни ми переконалися в тому, наскільки важливо розбудовувати якісну ІТ-освіту саме в українському просторі, створювати висококласний український навчальний контент у форматі відео курсів.
ІТ є значною опорою для економіки України. Наповнення бюджету держави, спрощення нашого життя різноманітними застосунками, успішна війна у кіберпросторі з росією, активні донати від айтішників – все це наближує нашу перемогу та дуже допомагає у боротьбі з ворогом.
Але хто створить нам якісні курси програмування українською, як не ми самі?
Ми запрошуємо до співпраці розробників, тестувальників, веб-дизайнерів, розробників ігор та досвідчених менеджерів!
Гарно володієте українською мовою, маєте досвід в ІТ і бажаєте поділитися ним із іншими? Ласкаво просимо до дружньої команди ITVDN, де ви зможете взяти участь у створенні відео курсів, котрі дозволять українцям вивчати сучасні технології та здобувати омріяні ІТ-професії.
Які курси потрібні? Наша мета – бути платформою, на якій можна вивчати геть усі мови програмування, фреймворки та інші технології, але наразі найбільш потрібні автори з 4 трендових напрямків:
Java, Spring
C# та .NET технології
Python, Django
JavaScript і JS фреймворки
Але якщо ви хочете створювати відео курси по С++, Golang, PHP чи іншим технологіям, пишіть нам! Давайте допоможемо українцям вивчати програмування українською. Детальні умови співпраці обговорюються індивідуально.
Надіслати заявку
Контакти для зв’язку:
Анастасія Довгаленко
Email: dovgalenko1123@gmail.com
Telegram: https://t.me/Assistant_ITVDN
Skype: https://join.skype.com/invite/mtQi9Kav5HfB
14 січня – День народження ITVDN
Автор: Редакция ITVDN
14 января 2014 года на просторах интернета появился ITVDN.com. В первой публикации было всего 17 видео курсов по 2 специальностям - .NET и FrontEnd. Авторами первых курсов были тренеры учебного центра CyberBionic Systematics.
Сегодня проекту исполнилось 6 лет и мы подводим итоги.
Результаты ITVDN за 6 лет:
В Каталоге ITVDN 188 курсов разного уровня сложности по 19 направлениям.
Сообщество авторов ITVDN – более 100 специалистов из разных IT компаний и разных стран.
Созданы 12 комплексных программ обучения по самым востребованным специальностям
Проводится групповое обучение в формате LiveOnline по трем специальностям – FrontEnd, Java, .NET.
Созданы интерактивные тренажеры по HTML, CSS, JavaScript, C#, Java, Python, SQL, C++ для формирования навыков программирования.
Проведено 278 бесплатных вебинаров-практикумов.
YouTube канал ITVDN входит в пятерку самых популярных русскоязычных каналов по программированию. На канале 172 тысячи подписчиков, 1880 видео уроков.
91 тысяча зарегистрированных пользователей, которые прошли обучение хотя бы по 1 курсу. География проекта – Россия, Украина, Беларусь, Казахстан, Грузия, Армения, Латвия, Литва, Израиль, Германия и др.
Постоянно действующий Социальный проект позволяет бесплатно проходить обучение инвалидам, сиротам и другим людям, нуждающимся в помощи.
Как образовательный и информационный партнер, ITVDN тесно сотрудничает с IT конференциями, организаторами IT олимпиад и хакатонов, награждая победителей и предоставляя возможности беплатного обучения для участников.
Мы продолжаем расти и развиваться. Наша цель – быть лидером IT образования, удовлетворяя самые высокие запросы как новичков, так и профессионалов.
Благодарим всех, кто пользуется нашим ресурсом. Оставайтесь на ITVDN.
Празднуем вместе!
Переможці С# Марафону!
Автор: IamwhoamI
Сегодня 2 сентября и мы подводим итоги С# Марафона!
Напомним, марафон стартовал 18 августа. Участвовать в марафоне мог каждый, кто чувствовал в себе силы выполнить задания по C# на тренажере ITVDN.
В марафоне приняли участие 579 человек, из них успешно дошли до финиша 31. Вот имена победителей:
Bogdan Ivanochko
Dmytro Katrychuk
Oleksandr Voloschuk
Sergei Kustikov
Serhi Konovalov
Александр Ивакин
Александр Рощин
Александр Созонов
Александр Свентозельский
Алексей Задворный
Андрей Николаев
Артем Кольченко
Богдан Іваничко
Вадим Тукаев
Виталий Шевчук
Влад Марчук
Гребенюков Алексей
Дмитрий Седов
Евгений Скляров
Евгений Царев
Егор Цуканов
Игорь, Пашковский
Илья Лазарев
Илья Цуканов
Максим Руденко
Олександр Шевчук
Омельянюк Игорь
Павел Павлушкин
Прядко Владимир
Роман Артюх
Семёнов Дмитрий
Пятерка лучших по результатам выглядит так:
Илья Цуканов (43 попытки, 670 баллов)
Serhi Konovalov (44 попытки, 667 баллов)
Прядко Владимир (47 попыток, 659 баллов)
Александр Рощин (48 попыток, 660 баллов)
Влад Марчук (50 попыток, 580 баллов)
Все победители C# Марафона получат в подарок видео курс С# Базовый, а остальные участники марафона – скидку 40% на любой тип подписки ITVDN.
Доступ к видео курсам для победителей будет открыт в понедельник 5 сентября. Письма со скидками также ожидайте 5 сентября на емейл, указанный при регистрации на ITVDN.
Благодарим всех, кто принял участие в С# Марафоне!
⚡Premium Plus -50% на ITVDN
Автор: Редакция ITVDN
Вчитися в ІТ — означає бути готовим до будь-яких умов. І навіть тоді, коли немає світла чи інтернету, ви все одно можете рухатися до своєї цілі.
Саме для цього створений пакет Premium Plus: він дає змогу завантажувати уроки на свій комп’ютер і навчатись у дорозі, офлайн чи у складних умовах. Жодних перешкод — тільки ви й нові знання.
📅 З 25 по 30 вересня 2025 року діє флеш-акція: пакет Premium Plus зі знижкою 50%. Спеціальна ціна: $99.99 замість $199.99.
Що входить до Premium Plus:
🔹 Доступ до всієї бібліотеки ITVDN 300+ відео-курсів
🔹 Завантаження уроків на ПК для офлайн-навчання
🔹 Презентації, домашні завдання та опорні конспекти.
🔹 Вихідні коди навчальних проєктів.
🔹 Перевірка 20 домашніх завдань.
🔹 Консультації з тренером — 120 хвилин.
🔹 Онлайн-тестування (24 тести) + сертифікати та дипломи.
🔹 Доступ до всіх нових курсів, що вийдуть протягом року.
🔥 З Premium Plus ви зможете:
✔️ навчатись у будь-яких умовах — навіть без інтернету;
✔️ обрати одну чи кілька ІТ-спеціальностей;
✔️ отримати практику та перевірку знань;
✔️ підтвердити результат сертифікатами й дипломами;
✔️ навчатися у своєму темпі з повним доступом на рік.
Тільки те, що справді потрібно для ефективного навчання й результату — без зайвого!
Що можна вивчати на ITVDN:
програмування мовами Python, Java, JavaScript, C#, С++, PHP та ін.;
тестування програмного забезпечення (Manual QA + Automation QA);
веброзробку і вебдизайн (UX/UI);
розробку ігор на Unity;
Android Mobile Development;
технології для роботи з базами даних.
🎟 Умови акції
Акція діє лише 6 днів — з 25 по 30 вересня. Встигніть оформити Premium Plus за півціни та отримати все необхідне для стабільного навчання в ІТ.
З 1 жовтня даний пакет буде недоступний.
Оплата частинами – подвійна вигода
Обирайте оплату частинами від Монобанку чи ПриватБанку. Це вигідно, адже банк вносить за вас повну оплату, а ви потім повертаєте йому щомісячними платежами без додаткових комісій. Щоб скористатися послугою “Оплата частинами”, оберіть валюту українська гривня (UAH).
🚀 Premium Plus — це навчання без стресу та в зручному темпі.
🎟 Спеціальна ціна: $99.99 замість $199.99.