Conception de Windows 8
Blog Windows Store pour les développeurs
IEBlog Français
Blog Visual Studio
Blogs de l'équipe Windows
Blog Windows Live
Télécharger Windows 8 Release Preview
Centre de développement : applications de style Metro
Suivez-nous @windevs
Conférence BUILD de Windows //build/
Développement d’applications Metro
Comme promis, voici la deuxième partie du billet décrivant les travaux importants accomplis depuis la conférence //build/. Dans la première partie de ce billet, j'ai abordé l'intégration de DirectX et XAML, les améliorations apportées aux concepteurs Blend, les animations CSS indépendantes et d'autres sujets. Néanmoins, je suis certain que vous serez ravi de découvrir les autres nouveautés que nous vous proposons.
Les vignettes et les toasts jouent un rôle central dans les principes de conception du style Metro. Ils permettent de voir des informations importantes d'un simple coup d'œil, même lorsque l'application n'est pas en cours d'exécution. L'expérience de développement des notifications affichées dans les vignettes et les notifications toast a fait l'objet de nombreux commentaires de votre part. La plupart de ces commentaires portaient sur la création et la mise à jour des vignettes. En réponse à vos commentaires, nous avons amélioré l'expérience de développement des vignettes de trois manières :
// update the tile with a poll URLvar polledUri = new Windows.Foundation.Uri("http://www.fabrikam.com/tile.xml");var recurrence = Windows.UI.Notifications.PeriodicUpdateRecurrence.halfHour;var tileUpdater = Windows.UI.Notifications.TileUpdateManager.createTileUpdaterForApplication();tileUpdater.startPeriodicUpdate(polledUri, recurrence);
// create the wide templatevar tileContent = NotificationsExtensions.TileContent.TileContentFactory.createTileWideText03();tileContent.textHeadingWrap.text = "Hello world! My very own tile notification";// create the square template and attach it to the wide templatevar squareTileContent = NotificationsExtensions.TileContent.TileContentFactory.createTileSquareText04();squareTileContent.textBodyWrap.text = "Hello world!";tileContent.squareContent = squareTileContent;// send the notificationWindows.UI.Notifications.TileUpdateManager.createTileUpdaterForApplication().update(tileContent.createNotification());
Depuis la conférence //build/, les développeurs ont beaucoup commenté l'expérience de création d'une application de style Metro avec JavaScript. Pour Windows 8, JavaScript est un composant à part entière de la plateforme et nous souhaitons également en faire un composant à part entière de nos outils. Avec la version Consumer Preview, si vous créez une nouvelle application de style Metro à l'aide des langages HTML, CSS et JavaScript, vous remarquerez que de nombreuses améliorations ont été apportées à Visual Studio et à la bibliothèque Windows pour JavaScript (WinJS). Par exemple, les modèles d'applications de style Metro basées sur JavaScript sont plus lisibles et utilisent les nouvelles API.
Par ailleurs, nous avons amélioré les performances et la précision de JavaScript IntelliSense dans VS :
Nous avons amélioré en profondeur nos outils de diagnostic et de débogage JavaScript :
Dans l'univers des applications connectées, la liaison de données est indispensable. Au vu de vos commentaires, nous devions faciliter ces liaisons de données en C++. Pour implémenter une liaison de données, vous deviez écrire de nombreuses interfaces et générer beaucoup de code réutilisable pour C++/XAML. Dans la version Consumer Preview, nous avons résolu ce problème et il vous suffit désormais d'ajouter un attribut [Windows::UI::Xaml::Data::Bindable] à la classe à laquelle les données doivent être liées. En XAML, le principe est identique. Voici un exemple montrant la modification :
namespace SimpleBlogReader{ //To be bindable, a class must be defined within a namespace. [Windows::UI::Xaml::Data::Bindable] public ref class FeedItem sealed { public: FeedItem(void){} ~FeedItem(void){} property Platform::String^ Title; property Platform::String^ Author; property Platform::String^ Content; property Windows::Foundation::DateTime PubDate; };}
<TextBlock x:Name="TitleText" Text="{Binding Path=Title}" VerticalAlignment="Center" FontSize="48" Margin="56,0,0,0"/>
Dans la version Consumer Preview, nous avons simplifié les contrôles courants, utilisés par la quasi-totalité des applications. Ces contrôles jouent un rôle essentiel dans la conception du style Metro. Ils permettent à votre application d'être cohérente avec le reste du système et à vos utilisateurs de basculer facilement de leurs applications à Windows, et inversement. Les contrôles ListView et AppBar HTML/JS ont fait l'objet d'améliorations importantes.
En réponse aux commentaires relatifs à la version Developer Preview, nous avons amélioré le contrôle ListView WinJS pour simplifier et rendre plus flexibles le chargement d'éléments et la création de modèles.
var data = [10, 20, 12, 7];var ds = new WinJS.Binding.List(data);ds.push(3);ds.splice(2, 1);var sorted = ds.createSorted(function (a, b) { return (a - b) });ds.push("1");console.log("original: " + ds.join(",") + "; sorted: " + sorted.join(","));
Après la conférence //build/, nous avons reçu de nombreux commentaires signalant qu'il était difficile d'utiliser les contrôles AppBar. Nous avons donc écouté vos commentaires et réimaginé le contrôle AppBar HTML pour en faciliter l'utilisation. Au final, vous profitez d'une expérience de développement simplifiée. Examinez l'extrait de code suivant pour mieux comprendre :
<div class="win-left"> <button onclick="doClickPlay" class="win-command" role=’MenuItem’> <span class="win-commandicon win-large"></span> <span class="win-label">Play</span> </button></div><div class="win-right"> <button onclick="doClickAdd" class="win-command" role=’MenuItem’> <span class="win-commandicon win-large"></span> <span class="win-label">Add</span> </button></div>
Boutons AppBar HTML dans la version Consumer Preview :
<button data-win-control="WinJS.UI.AppBarCommand" data-win-options="{play',label:'Play',icon:'play',onclick:doClickPlay,section:'selection',tooltip: 'Play'}">/button><button data-win-control="WinJS.UI.AppBarCommand" data-win-options="{id:'add',label:'Add',icon:'add',onclick:doClickAdd,tooltip: 'Add'}">/button>
Comme vous pouvez le constater, vous pouvez désormais créer les boutons à partir d'un jeu d'options plutôt qu'à partir d'éléments HTML. La création des boutons, de leurs styles, des icônes, du texte et des autres éléments est réalisée pour vous. Le contrôle AppBar est mis à l'échelle en mode ancré ou en mode portrait. Vos boutons sont retracés automatiquement à la position correcte.
Nous avons apporté bien d'autres améliorations au contrôle AppBar HTML/CSS/JS et je n'ai malheureusement pas le temps de les évoquer toutes dans ce billet. N'hésitez pas à consulter le Centre de développement pour découvrir un exemple de code AppBar complet et la documentation correspondante.
Au cours de la conférence //build/, nous avons montré qu'il est possible de créer des applications de style Metro hybrides en utilisant une combinaison de langages, dont JavaScript, C++, C# et Visual Basic. Avec cette version, vous pouvez créer directement ces types d'applications dans Visual Studio. Vous pouvez par exemple créer une application JavaScript communiquant avec une bibliothèque de classes C# ou une application C# exploitant un composant C++. Ainsi, vous pouvez profiter des avantages propres à chaque langage, réutiliser les ressources existantes et permettre aux membres de vos équipes possédant des compétences diverses de collaborer sur un même projet.
var customers = new CSClassLib.CustomerRepository();var filtered = customers.getCustomersByState("WA");
public IEnumerable<Customer> GetCustomersByState(string state){ return from c in this.Customers where c.State == state select c;}
Si vous développez en C++, vous constaterez par vous-même une partie des améliorations notables, en particulier celles qui concernent DirectX et XAML. DirectX est idéal pour manipuler directement les pixels. XAML est quant à lui idéal pour créer des interactions utilisateur (menus, affichages en superposition, etc.). Comme je l'ai décrit dans la première partie de ce billet, les applications XAML peuvent désormais utiliser DX. Cette fonctionnalité ne serait pas complète sans les outils adéquats. En réponse à vos commentaires, la version bêta de Visual Studio prend désormais en charge l'interopérabilité entre C++/XAML et DirectX.
Au cours des deux derniers billets, je vous ai montré quelques exemples des évolutions que vous constaterez dans la version Consumer Preview. De nombreuses optimisations, améliorations et nouveautés ont été intégrées. L'expérience de développement d'applications de style Metro sous Windows 8 a été encore améliorée depuis la version Developer Preview.
Pour plus d'informations sur l'ensemble de ces améliorations, consultez le Centre de développement sur MSDN, qui a été entièrement remanié. Si vous avez cliqué sur les liens publiés dans ces billets, vous aurez sans doute déjà remarqué que le Centre de développement a été amélioré.
Voici comment nous avons amélioré notre documentation :
Pour découvrir plus en détail les améliorations apportées aux outils, consultez le billet de blog de Jason Zander. Vous disposez d'un certain nombre de nouvelles fonctionnalités de langage en C# et Visual Basic pour le développement d'applications de style Metro.
Si ce n'est déjà fait, téléchargez la version Consumer Preview, installez la nouvelle version bêta de Visual Studio, téléchargez quelques exemples et documents auprès du Centre de développement, et commencez à créer des applications plus formidables les unes que les autres. Nous continuerons à publier des billets sur ce blog, afin de vous proposer une expérience de développement plus simple que jamais.
-- Jake Sabulsky, chef de projet, Windows
Ce billet a été rédigé en équipe ; merci à Kevin Woley, Jonathan Aneja, Jonathan Garrigues, Jon Gordner, Ryan Demopoulos, Keith Boyd et Ian LeGrow.