Приложения Metro Style: WinJS обязательно?
Вчера я начал разрабатывать свое первое приложение стиля Metro, используя JavaScript.
Я использовал один из этих шаблонов в Visual Studio 2011. Этот шаблон проекта поставляется с кучей сгенерированного кода, который в значительной степени зависит от WinJS. Вся структура напоминает ASP.NET с ее представлениями и соответствующими файлами Code Behind. Существует также файл navigator.js, который отвечает за навигацию между представлениями. Все данные хранятся в data.js и могут быть получены с использованием различных функций.
Я работал с backbone.js, и я нашел свои концепции, такие как структура MVC и маршрутизация довольно крутой. Мой вопрос в основном, если вы можете реализовать такое приложение Metro style, используя backbone.js?
Могу ли я удалить WinJS и начать с нуля? Должен ли я попытаться интегрировать backbone.js в текущую структуру? Как бы это выглядело тогда? Существуют ли какие-либо ограничения для использования сторонних JavaScript-фреймворков? Должен ли я оставить созданную структуру такой, какой она есть?
Каковы лучшие практики и шаблоны разработки приложений Metro Style с JavaScript?
Спасибо
Ответы
Ответ 1
Вы можете использовать любую инфраструктуру JavaScript, которая вам нравится в приложении JavaScript в стиле Metro. См. Этот связанный вопрос о jQuery:
jQuery и приложения для стилей JavaScript в стиле Windows 8
В среде WinJS реализована пара функций, первая из которых - это набор API-интерфейсов, отличных от UI, для управления и обработки данных, создания сервисных запросов и т.д. Они легко заменяются другими фреймворками JavaScript. Второй - слой пользовательского интерфейса, здесь вы можете немного поработать. Пользовательский интерфейс WinJS был разработан, чтобы следить за языком дизайна Metro. Если вы замените его собственным слоем пользовательского интерфейса (например, с помощью jQuery UI), ваше приложение будет выглядеть не так.
Лично я бы использовал WinJS для слоя пользовательского интерфейса и интегрировался со средой выполнения (state persistance, переключением приложений и т.д.), но используйте более стандартную библиотеку JavaScript, такую как Backbone или Knockout, для большей части моего кода, чтобы обеспечить переносимость.
Ответ 2
Я использую Knockout js и требую js для MVVM. Для визуальных эффектов я использую jQuery.
Моя основная информация выглядит примерно так:
(function () {
"use strict";
var app = WinJS.Application;
app.onactivated = function (eventObject) {
require(["/scripts/knockout"], function(ko){
// My knockout viewModel and data binding goes here
});
};
app.start();
})();
Если вы предпочитаете Backbone вместо этого, я думаю, что настройка будет аналогичной.