WinRT — новая Windows


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

Вчера Win32 API, который находился в основе каждого приложения Windows, был вытеснен Windows Run Time, WinRT — объектно-ориентированным API C ++.

WinRT — это не оболочка, которая находится под слоем Win32; это интерфейс приложения того же уровня. Приложения могут использовать либо старый Win32 API, либо новый WinRT, но не оба сразу. Следовательно, это настоящий разрыв с прошлым.

С точки зрения разработчика, 13 сентября 2011 года — это день, когда Windows снова запустилась — это (снова) нулевой год для разработчиков Microsoft.

На данный момент вы можете сказать, что это слишком сенсационно, и старые технологии все еще будут там и будут поддерживаться. Это правда, но при этом игнорируется, что такое непостоянная группа людей-программистов. Вы вполне можете кричать о сохранении Win32, WPF, Silverlight и остальных, потому что у вас есть вложения, но учитывая новую технологию, что вы собираетесь выбрать для своего следующего нового проекта.

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

Новое не всегда лучше, но всегда привлекает новизна.

Так как же выглядит этот новый мир?

Это очень похоже на программирование мобильного телефона. Когда вы начинаете использовать Windows 8 и, в частности, когда начинаете создавать приложения, это очень похоже на создание приложений для Windows Phone 7. Во многом это связано с тем, как шаблоны проектов настроены для создания нескольких приложений. сенсорные пользовательские интерфейсы страницы. Вы можете создать что-то похожее на форму с кнопкой и текстовыми полями, но перекрывающиеся формы Win теперь ушли в прошлое. Формы Win были предоставлены Win32 API и заново изобретены WPF. Оба могли использоваться на управляемом языке .NET, но только Win32 был доступен на неуправляемом языке.

Конечно, WinRT доставляется программисту через XAML (или HTML), поэтому внешне это выглядит так, как будто вы используете вариант на WPF или даже на Silverlight, но это не так. XAML — это лишь один из возможных языков разметки, которые создают пользовательские интерфейсы WinRT.

Позвольте мне еще раз четко сказать: никаких форм Win Forms.

Также отпадает необходимость в P / invoke. Поскольку Win32 не используется, вызывать нечего. Под прикрытием не прячется API. Итак, все, что вы раньше делали через P / Invoke, теперь вам нужно будет найти способ сделать через WinRT. Конечно, вы по-прежнему можете использовать Win Forms и весь Win32 API, но если вы это сделаете, ваше приложение будет работать под знакомым рабочим столом, а не с новым пользовательским интерфейсом Metro.

Когда вы создаете объект страницы с помощью WinRT и запускаете его, он расширяется, чтобы заполнить всю площадь экрана — здесь нет перекрывающихся окон, как нет перекрывающихся окон на мобильном телефоне. Если вы хотите, чтобы окна и диалоговые окна перекрывались, вам нужно оставаться на рабочем столе. В некотором смысле: Metro убирает окна из Windows.

Вы должны задать вопрос — если перекрывающиеся окна — такая плохая идея для настольного компьютера, почему они стали центральной особенностью операционных систем с момента изобретения графических интерфейсов?

Итак, у нас есть список вещей, которые мы потеряли при переходе на территорию Metro … что мы получаем?

Единственное реальное преимущество — это единство с пользовательским интерфейсом, похожим на телефонный.

По общему признанию, теперь вы можете использовать HTML и JavaScript для создания приложений того же типа, но непонятно, зачем вам это нужно. JavaScript, который вам нужно написать, не похож на любой JavaScript, который вы бы написали где-либо еще, из-за необходимости вызывать так много внутренних системных методов. Это не соответствующий стандартам HTML5 / CSS / JavaScript, а настраиваемая среда. Короче говоря, ваши приложения Windows HTML5 будут работать с Windows 8 и ни с чем другим, если вы их не настроите.

Что с Silverlight и что с Windows Phone 7?

Silverlight в настоящее время служит двум целям в жизни. Он позволяет создавать веб-приложения с использованием .NET и позволяет создавать приложения для Windows Phone 7 с помощью .NET. Но теперь у нас есть способ создавать мобильные приложения с использованием Windows 8, а Silverlight нигде не видно. Разве Windows Phone 7 должна перейти на подход, отличный от Silverlight? Если нет, то где же единство между планшетами под управлением Windows 8 и устройствами Windows Phone 7?

Как ни странно, в подходе Metro, похоже, не хватает веб-приложений. Вы не можете просто взять приложение HTML5, работающее под управлением Metro, и рассматривать его как веб-страницу — JavaScript и доступные службы сильно отличаются. Конечно, Microsoft могла бы создать браузер, который запускал бы приложения Metro HTML5, но это не основанный на стандартах подход.

Мы пока находимся в начальной стадии, и есть время для созревания, но на данный момент, похоже, в подходе Metro есть много недостающих частей. Возможно, есть единство, которое трудно увидеть при первой встрече. Безусловно, единообразие использования C #, Visual Basic, C ++ и JavaScript при создании приложения Metro достойно восхищения.

Думаю, последний вопрос: действительно ли я хочу создать приложение Metro?

Ответ, как всегда, положительный — если пользователь хочет их запустить.

Смотрите также:

Windows 8 — взгляд разработчика

Создание приложений JavaScript / HTML5 для Windows 8

Если вы хотите получать информацию о новых статьях на I Programmer, вы можете подписаться на нашу RSS-ленту, подписаться на нас в Twitter или Facebook или подписаться на нашу еженедельную новостную рассылку.


Добавить комментарий