Développement

sqlite370_banner

Windows 8 WinRT SQLite

159

Depuis Windows 8 Preview, nous avons accès à une base de données déployable et interne, facile d’accès directement dans votre package WinRT.

On aurait pu s’attendre à voir débarquer SQL Server Compact, mais c’est bien SQLite qui sera supporté et accessible dans Windows 8.

Nous allons voir ici comment installer et travailler avec ce petit moteur de base de données extrêmement connu dans le monde du web notamment.

Installation

Cette première partie d’installation est inspirée d’un article écrit par Tim Heuer, que vous pouvez retrouver sur son blog, in english in the text

L’installation de Plus >

MDM_img3

Master Data Services 2012 and SharePoint Workflow – Part 2

3

Dans la première partie, nous avons vu comment régler le problème des Workflows SharePoint qui ne sont pas déclenchés depuis Master Data Services 2012 (re sic, mais ça vous l’avez vu dans le premier Post)

Dans ce deuxième post, je vais m’attacher à vous expliquer comment créer un WorkFlow dans SharePoint, le lancer depuis MDS, et surtout, pouvoir le débuguer

Vous trouverez les sources à la fin du Post.

 

Le Workflow a créer est relativement simple :

Nous avons un produit dans notre solution de MDM, et lorsque ce produit est créé, un WorkFlow est déclenché coté SharePoint pour valider la Plus >

MDM_img3

Master Data Services 2012 and SharePoint Workflow – Part 1

3

Peut être certains d’entre vous ont tenté de créer une solution à base de Master Data Services 2012 (MDS) couplé avec un Workflow de type SharePoint 2010.

Normalement, tout ceci est “by design” intégré dans MDS, l’appel du Workflow SharePoint étant déclenché par un service Windows MDS (que vous avez au préalable installé)

Dans votre éditeur Business Rules, vous n’avez normalement qu’à renseigner l’adresse de votre site SharePoint et MDS doit (enfin devrait) s’occuper du reste :

Manque de bol, la version 2012 de ce fameux service subit une régression de son fonctionnement (sic !)

En bref, Plus >

wlEmoticon-smile.png

Techdays 2012 : Mes sessions

4

Bonjour à tous,

Les Techdays 2012 c’est fini pour cette année.

Ce fut un excellent cru, je n’ai pas encore les chiffres mais je pense qu’on va encore faire péter un score.

De ce que j’ai vu, les sessions étaient exceptionnellement bien pleines les 2 premiers jours, tout du moins toutes celles auxquelles j’ai participées / animées.

Bon le 3ème jour, la fatigue se fait sentir et les salles se remplissaient moins vite.

J’ai d’ailleurs eu la chance d’animer la dernière session du dernier jour au dernier créneau en Amphi bleu (soit le plus grand amphi après l’amphi plénière) et nous étions AU Plus >

wlEmoticon-smile.png

WinRT : MVVM

12

Il y’a déjà pas mal de développeurs (moi le premier) qui se sont empressés de commencer à développer en WinRT des applications Metro destinés à Windows 8

Pour certains, don’t je fais parti, l’utilisation du pattern MVVM est un plus, une philosophie, une habitude, bref un “must have coding pattern”

Pour faire du MVVM, j’utilise suivant les projets soit PRISM soit MVVM light Toolkit

En WinRT, aucun portage n’a encore était réalisé de ces 2 frameworks.

Je vous propose donc en téléchargement une version de MVVM Light, migrée vers vers WIN RT, utilisable en C#

Vous pouvez le télécharger ici : Plus >

wlEmoticon-smile.png

WinRT : Download Image

0

Dans la série des Posts “Comparons WPF, Silverlight et WinRT” :

Une différence de technique pour télécharger un élément (nous prendrons ici une image par exemple)

Dans le cas de WP7, nous utliserons la classe WebClient, et l’appellerons de manière asynchrone (on a pas le choix) et du coté WinRT, on utilisera le nouveau mot clé “async” et “wait”

WP7 :

public void GetImage(Uri url) {     var webClient = new WebClient();

    webClient.OpenReadCompleted += WebClientOpenReadCompleted;     webClient.OpenReadAsync(url); }

void WebClientOpenReadCompleted(object sender, Plus >

wlEmoticon-smile.png

WinRT : Namespaces

2

Dans la série des Posts “Comparons WPF, Silverlight et WinRT” :

Si vous devez déclarer des namespaces en WinRT, sachez que la syntaxe change (heuresement que Visual Studio aide !)

WPF :

xmlns:conv= »clr-namespace:TimeTrack.Converters » xmlns:mess= »clr-namespace:Bewise.Phone;assembly=Bewise.Phone »

WinRT :

xmlns:conv= »using:TimeTrack.Converters » xmlns:mess= »using:Bewise.Phone »

Deux remarques:

  1. Remplacement de clr-namespace par using
  2. Plus d’obligation d’utiliser le nom de l’assembly si vous référencez un namespace provenant d’une autre assembly

To be continued ! Plus >

image.png

WinRT : INotifyPropertyChanged

5

Si vous faites du MVVM, et que vous tentez une migration vers WinRT, attention à l’implémentation de INotifyPropertyChanged

La subtilité vient de l’apparition de cette interface dans un autre namespace, lié à l’UI :

Windows.UI.Xaml.Data.INotifyPropertyChanged

D’ailleurs, on le remarque vite, lors de l’ajout du using :

Si vous migrez du code, et que votre INotifyPropertyChanged est encore celui de System.ComponentModel, et bien aucun de vos contrôles XAML ne s’abonnera à cet évènement de votre ViewModel !

Keep The Fight !

wlEmoticon-smile.png

WinRT : Dependency Properties

3

La déclaration en WinRT est différente de WPF / Silverlight.

Elle différe lors de la phase Register sur l’objet static DependencyProperty.

On note qu’en WPF / SL4, le Register prend un Type (typeof(TOTO)) comme argument, alors qu’en WinRT, il prend une chaine de caractères.

Note : Pour moi, ceci est un comportement imputable à la CTP de WinRT, je serai surpris que ce soit encore le cas lors de la RTM. My 2 Cents

WPF:
public int MatchesCount {     get { return (int)GetValue(MatchesCountProperty); }     set { SetValue(MatchesCountProperty, value); } } public static readonly
Plus >

WinRT : DesignMode

1

Dans la série des Posts “Comparons WPF, Silverlight et WinRT” :

Si vous voulez savoir si vous êtes en mode design, par code :

WPF

var prop = DesignerProperties.IsInDesignModeProperty;                     _isInDesignMode                         = (bool)DependencyPropertyDescriptor                                      .FromProperty(prop, typeof(FrameworkElement))                                      .Metadata.DefaultValue;

                    // Just to be sure                     if (!_isInDesignMode.Value                         && Plus >

Haut de page