IT-инфраструктура для бизнеса и творчества

Microsoft представила Project Reunion — единую платформу для разработки под Windows Статьи редакции

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

На конференции Build 2020 Microsoft анонсировала платформу для разработки Project Reunion, которая призвана упростить разработку приложений для Windows 10, рассказали vc.ru в компании.

Раньше разработчикам приходилось выбирать между классической архитектурой Win32, совместимой с прошлыми версиями Windows, и Universal Windows Platform, работающей на Windows 10. Новая платформа должна объединить программные интерфейсы Win32 и Universal Windows Platform и сохранить обратную совместимость.

Также разработчики с помощью Project Reunion смогут обновить уже существующие приложения независимо от того, на каком языке программирования они написаны — на C++, React Native или .NET. При этом API-интерфейсы будут отделены от системы, чтобы обеспечить корректную работу приложений независимо от версии Windows 10.

Один из первых компонентов Project Reunion — нативная библиотека интерфейса WinUI 3, с помощью которой приложение будет корректно адаптироваться и масштабироваться в зависимости от устройства.

Также в состав Project Reunion включен компонент WebView2 — с его помощью любое приложение Windows будет поддерживать веб-контент через встроенный Microsoft Edge и Chromium.

Примеры использования и подробности Project Reunion доступны на GitHub.

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

(function () { let cdnUrl = `https://specialsf378ef5-a.akamaihd.net/SelectelBranding/images/` let previousArticleNumber = null let currentArticleNumber = 0 let platform = 'Desktop' let articles = [ { name: 'camera', url: `${cdnUrl}CameraCat`, text: 'умную камеру для\u00A0наблюдения за\u00A0котиками', link: 'https://vc.ru/selectel/306690', num: 3 }, { name: 'chill', url: `${cdnUrl}ChillCat`, text: 'трекер, который подскажет, когда пора отдохнуть', link: 'https://vc.ru/promo/288561-eye-tracker', num: 1 }, { name: 'cloud', url: `${cdnUrl}CloudCat`, text: 'котика: даёшь ему «пять», а\u00A0он делает бэкап в облако', link: 'https://vc.ru/dev/294799-maneki-neko', num: 2 } ] let buttonCycle = document.querySelector('.button--cycle') let buttonChoose = document.querySelector('.button--choose') let buttonMobile = document.querySelector('.button--mobile') let textField = document.querySelector('.selectel-footer-subtitle') let imageAgent = document.querySelector('.image--agent') let banner = document.querySelector('.selectel-footer') buttonCycle.addEventListener('click', cycleClick) buttonChoose.addEventListener('click', () => sendEvent(`Promo ${articles[currentArticleNumber].num} Left`, 'Click')) buttonMobile.addEventListener('click', () => sendEvent(`Promo ${articles[currentArticleNumber].num} Left`, 'Click')) let media = window.matchMedia("(max-width: 570px)") media.addEventListener('change', matchMedia) function matchMedia() { if (media.matches) { platform = 'Mobile' } else { platform = 'Desktop' } update() } matchMedia() function cycleClick(event) { sendEvent(`Promo ${articles[currentArticleNumber].num} Right`, 'Click') if (event) { event.preventDefault() event.stopPropagation() } window.open('https://vc.ru/tag/selectelDIY', '_blank') //cycle(event) } function cycle(event) { // incrementArticleNumber() textField.innerHTML = generatedText() imageAgent.src = articles[currentArticleNumber].url + platform + '.svg?3' imageAgent.setAttribute("class", "") imageAgent.classList.add('image--agent', articles[currentArticleNumber].name) banner.href = articles[currentArticleNumber].link } function update() { banner.href = articles[currentArticleNumber].link imageAgent.src = articles[currentArticleNumber].url + platform + '.svg' textField.innerHTML = generatedText() } function incrementArticleNumber() { previousArticleNumber = currentArticleNumber if (currentArticleNumber >= articles.length - 1) { currentArticleNumber = 0 } else { currentArticleNumber++ } } const sendEvent = (label, action = 'Click') => { const value = `SelectelDIY — loc: Footer — ${label} — ${action}`; if (window.dataLayer !== undefined) { window.dataLayer.push({ event: 'data_event', data_description: value, }); } }; function generatedText() { let defaultText if (platform === 'Desktop') { defaultText = `Мы тут собрали %text%. Хотите научим?` } else { defaultText = `Мы тут собрали %text%.` } return defaultText.replace('%text%', articles[currentArticleNumber].text) } function getRandom(min, max) { min = Math.ceil(min) max = Math.floor(max) return Math.floor(Math.random() * (max - min + 1)) + min } (function create() { currentArticleNumber = getRandom(0, articles.length - 1) cycle() let page = document.querySelector('.page--entry') if (page) { function insertAfter() { let parents = page.querySelectorAll('[data-id="7"]') let referenceNode = parents[0] referenceNode.parentNode.insertBefore(banner, referenceNode.nextSibling); loaded() } setTimeout(() => insertAfter(), 0) } }()) function loaded() { banner.classList.add('loaded') } loadImages([ `${cdnUrl}CameraCatDesktop.svg`, `${cdnUrl}ChillCatDesktop.svg`, `${cdnUrl}CloudCatDesktop.svg`, `${cdnUrl}CameraCatMobile.svg`, `${cdnUrl}ChillCatMobile.svg`, `${cdnUrl}CloudCatMobile.svg?3`, ]) function loadImages(urls) { return Promise.all(urls.map(function (url) { return new Promise(function (resolve) { var img = document.createElement('img'); img.onload = resolve; img.onerror = resolve; img.src = url; }); })); } }())
0
38 комментариев
Популярные
По порядку
Написать комментарий...

Т.е. сначала сделали "Универсальную Windows-платформу", чтобы можно было разрабатывать приложения сразу для всех устройств на Windows 10. А теперь сделали "единую-универсальную-универсальную", чтобы можно было разрабатывать приложения сразу для всех устройств на Windows 10, и имеющую обратную совместимость с абсолютно всеми устройствами на Windows 10

12
Уполномоченный файл

А я как всегда буду выбирать в списке "Классическое WPF приложение".

5

да WPF это прошлый век, щас модно MFC :]

1

Красавцы!

7

Microsoft правит балом 🙃

0

Microsoft плодит новые несовместимые сущности, чтобы потом с пафосом их объединить, по факту создав еще одну "объединенную" сущность, несовместимую с предыдущими

10

Ну да, ну да. Когда они выпустили вскод все особо добрые писали "зачем нам ещё один редактор кода", когда они купили гитхаб, все писали "они убьют отличный сервис".

7

Ну например сделали .Net Framework, потом "кроссплатформенный" .Net Core. Подумали подумали, и сделали еще один третий - .Net standard, якобы "to rule them all". По факту теперь при создании проекта приходится выбирать один из трех.

Ну или например выбор между Windows Forms, Universal Windows Platform, Windows Presentation Foundation. Что из этого выбрать нового проекта, что изучать? Кажется слово Universal говорит само за себя. АН нет. Идет только на WIn 10. Ну думаешь хер с ним. Потом например для твоего кейса надо разработанное приложение  запустить на серваке. Ну думаешь вроде Windows Server 2019 это та же десятка. Но НЕТ! UWP там без танцев с бубном не идет!!! ред.

9

Ну например сделали .Net Framework, потом "кроссплатформенный" .Net Core.

Причины почему был выпущен .Net Core понятны и их Микрософт неоднократно озвучивал. Помимо кросс платформеннности еще и модульность. Классчиеский .Net обновлять по частям было нельзя, он был монолитен, что задерживало его обновления. .Net Core такую проблему убрал

.Net Core кросс платформенный безо всяких кавычек. 

Подумали подумали, и сделали еще один третий - .Net standard,

Это не так. 

.Net standard - это не фреймворк, а просто набор спецификаций. Версия API, если угодно. Так что по факту фрейворков два:

1) .Net
2) .Net Core

По факту теперь при создании проекта приходится выбирать один из трех.

Не приходится и уже давно.

Скоро останется только один фреймворк, .Net будет легаси.

Для разработки сейчас нужно брать нужно .Net Core, в нём работает нынче даже десктопная разработка (WPF).

у или например выбор между Windows Forms, Universal Windows Platform, Windows Presentation Foundation.

Тут всё элементарно. Если хочешь в магазин то UWP, если хочешь совместимости со старыми версиями Windows или имеющимися компонентами - то WPF. 

WF выбирать смысла нет для изучения совсем, ну разве что для любителей компьютерной археологии))

14

А WPF приложения заведутся на WIndows Server?

0

Строго говоря, сервер серверу рознь. Есть ведь и Server Core, который вообще без графики (насколько я помню) - там вряд ли какой WPF заведётся, но если говорить про обычный сервер и WPF, то да - WPF заведётся.

WPF умеет работать даже на Windows 7 / Vista / XP SP2+

3

А на WPF надо до сих пор XAML руками писать? Я забил на него лет 8 назад, там были размытые шрифты, тормоза компонентов и прочие хорошие вещи

0

А на WPF надо до сих пор XAML руками писать?

Что значит "надо" ?
Что значит "до сих пор"?

Вообще-то с самого начала WPF можно было использовать без XAML вообще. 

XAML  для WPF - это опция, предназначенная для дизайнеров (для отделения представления от реализации/обрабтки)

XAML - это, грубо говоря, HTML/СSS (очень грубо, т.к. его возможности шире)

Если не хочется использовать XAML в WPF, то никто и не заставляет, объекты классов WPF создаются без XAML из кода легко и непринуждённо.

Если уж нужен XAML, то интерфейс с помощью него можно построить визуально (cм. картинку), в 99% случаев при быстрой разработке приложений так и делается. 

там были размытые шрифты, тормоза компонентов и прочие хорошие вещи

У WPF есть порог вхождения, надо уметь им пользоваться, судя по тому вопросу, который ты задал, уж извини, ты просто не осилил WPF))

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

Надо понимать что такое XAML)), что происходит при старте приложения WPF, если  оно построено с использованием XAML (как строится дерево, почему и за счет чего мы можем обращаться из кода к объекту, который представлен тегом в XAML)

Надо понимать что такое "зависмые свойства" (Dependency properties) и что такое "Отложенный способ отрисовки" ("Retained Mode")

На самом деле это несложно, многие концепции, как ни странно, есть в том же React или Angular))

А чтобы овладеть основами XAML/WPF, о которых я упоминал, достаточно почитать правильные книги типа "WPF Unleashed" или "Professional WPF Programming", хотя бы пару вводных глав))

Сейчас WPF не имеет смысла изучать, т.к. Микрософт анонсировала третью версию WinUI - в каком-то смысле, это правоприемник технологии WPF (ее UI части)

Мне WPF нравится, я им пользуюсь)), хотя до полного просветления я не дошёл. ред.

0
Уполномоченный файл

.Net Standard это именно стандарт! Выбираете его только для создания кроссплатформенной библиотеки. И все. Будет у вас универсальное АПИ, которое поддержит старичок .net framework или модный .net core.

.core и .net это как раз платформы и есть.

3

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

0

Каждый день радуюсь стабильному Скайпу и его новым приколам после обновления)

2

Я всё же говорил про девелопмент :)

1

Не говоря уже о том, что у MS есть инструменты по упаковыванию win32-приложений внутрь UWP.

0

Народ когда выходит новая винда?

0

Майское обновление должно выйти 26-27 числа

8

👍👍👍

0

Все продукты разработки от Майкрософт - древнейшее зло. Какие-то виндовс формы, монструозные фреймворки... Переходите на сторону добра, юзайте легкий опен сорс! ред.

–2

И не забывайте оплачивать мзду Jetbrains за их монструозные написанные на java IDE :)

5

Ага, не забываем. Нам не жалко заплатить за хорошую вещь ;) 

0

Которая не опен-сорс)

2

Вопрос не в опен сорсе, а в новых технологиях и свежих подходах к разработке. Майкрософт в этом плане давно покрылся плесенью.

–2

А как же VS Code?

0

Фу

0

юзайте легкий опен сорс!

Вопрос не в опен сорсе

Биполяр очка?

0
Уполномоченный файл

А Microsoft и есть OpenSource!

1

Да, а Земля плоская. Не стану спорить.

0
Уполномоченный файл

Вообще-то, Майки активно открывают свои продукты в опенсорс и туда коммитят.
А земля плоская,да.

0

Есть свидетели Иеговы, есть косплееры Звездных Войн, а есть разработчики на продуктах Майкрософт. Все три типа - очень странные люди.

–1

.Net и так давно опен-соурс))

1

Далеко не первая "универсальная" windows-платформа на моей памяти.

Не удивлюсь если через пяток лет еще одну выпустят, а Win32 как работала так и будет

*картинка xkcd про 15 стандартов*
 

1

Win32 будет работать до тех пор, пока требуется совместимость с существующим ПО, как только эта потребность исчезнет (допустим, весь софт переедет в облако/браузер), исчезнет и поддержка Win32

0

Затестим

0
Читать все 38 комментариев
На сайтах с эквайрингом от ПСБ появился Yandex Pay

Покупатели с аккаунтом «Яндекса» смогут оплачивать покупки, не вводя данные карты.

Эксперимент: оформляем банковские карты без бумажных документов

Оформление затянулось, но проект все равно продолжили развивать.

Лайфхак в подборе: как ATS-системы помогают экономить время и бюджет рекрутеров

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

Минэкономразвития РФ приняло предложения РСПП по совершенствованию рынка интеллектуальной собственности

На актуализации плана дорожной карты ТДК (трансформация делового климата) «Интеллектуальная собственность» в соответствии с пожеланиями бизнес-сообщества настоял первый заместитель председателя правительства Андрей Белоусов.

Kornia - Python библиотека для обработки изображений в задачах CV

В этой статье я хотел бы познакомить читателей с библиотекой для ЯП python — Kornia, имеющей богатый функционал в области computer vision. Библиотека написана с использованием pytorch, в ее основе лежат готовые решения, такие как torchvision, PIL, skimage, tf.image, OpenCV. В Kornia реализована возможность выполнения вычислений не только с…

Мвидео, облажались. Дважды

#жалобамвидео или как продать витринный образец

«Мегафон» заблокировал 36 тыс. ₽ на 2 недели по ФЗ № 115

Являюсь абонентом Мегафона второй десяток лет. Несколько лет назад завёл себе карту Мегафон-банка. Очень нравилось, и рекомендовал всем, так как:

Чем отличается подход к бизнесу заказчиков с США и Европы от наших?

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

Это Элви Рэй Смит: он мечтал создать анимационный фильм на компьютере, соосновал Pixar, но ушёл из компании из-за Джобса Статьи редакции

Смит создал альфа-канал, который используется в Photoshop и других редакторах, работал в Xerox и LucasFilm и убеждал всех, что за компьютерной графикой будущее, однако всерьез его никто не воспринимал – кроме Стива Джобса.

null