SlideShare uma empresa Scribd logo
1 de 42
Quoi de neuf dans WinJS
2.0 ?
Soriya THACH
Consultant
Infinite Square
sthach@infinitesquare.co
m
@SoriyaThach

Thomas
LEBRUN
Consultant
Infinite Square
tlebrun@infinitesquare.co
m
@thomas_lebrun
Infinite Square stand 19


Société de conseil, expertise, réalisation, formation, spécialisée dans le développement d’applications logicielles

innovantes sur les technologies Microsoft


100% des consultants certifiés Microsoft, parmi lesquels 10 MVP et 2 Nokia Champions



GOLD Certified Partner sur 5 domaines de compétences



Centre de formation agrée

#mstechdays

Infinite Square aux TechDays 2014
Donnez votre avis !
Depuis votre smartphone sur :
http://notes.mstechdays.fr
De nombreux lots à gagner toute les heures !!!
Claviers, souris et jeux Microsoft…
Merci de nous aider à améliorer les Techdays !

#mstechdays
Agenda
• Rappels
• WinJS 2.0 en 1 slide
• Focus sur les nouveautés
• Questions
#mstechdays
RAPPELS

#mstechdays
Rappel

Windows 8

WinJS 1.0
#mstechdays

Windows 8.1

WinJS 2.0
Rappels (2)

#mstechdays
WINJS 2.0 EN 1 SLIDE

#mstechdays
WinJS 2.0 en 1 slide
Des contrôles améliorés

Infrastructure

List view
App bar

Scheduler
Le pattern Dispose
Débogage Asynchrone

De nouveaux contrôles

Hub
Navigation bar
Search box
Back button
#mstechdays

Building Blocks

Binding template
Repeater
Item Container
FOCUS SUR LES NOUVEAUTÉS

#mstechdays
Améliorations des performances de la ListView
ListView avec 1000 items (sur Microsoft Surface)
2000
1750
1500
1250
1000
750
500
250
0
Startup
WinJS 1.0
#mstechdays

Insert
WinJS 2.0

Remove
Améliorations des performances de la ListView (2)
ListView avec 1000 items (sur Microsoft Surface)
2000
1750
1500
1250
1000
750
500
250
0
Startup
WinJS 1.0
#mstechdays

Insert
WinJS 2.0

Remove
Améliorations des performances de la ListView (3)

WinJS 1.0
#mstechdays

WinJS 2.0
Améliorations des performances de la ListView (4)
Temps d’affichage (ms) de 100 Templates
0

10

20

30

40

50

60

70

80

90

100

WinJS 1.0
#mstechdays

110

120

WinJS 2.0

130

140

150

160

170

180

190

200
Améliorations des performances de la ListView (4)
Temps d’affichage (ms) de 100 Templates
0

10

20

30

40

50

60

70

80

90

100

WinJS 1.0
#mstechdays

110

120

WinJS 2.0

130

140

150

160

170

180

190

200
ListView: De nouvelles mises en page possibles
Header

Header
Vertical GridLayout

Grouped ListLayout

CellSpaningLayout

• Vous pouvez facilement créer vos propres mises en page
grâce à IListLayout2!

#mstechdays
LISTVIEW
Drag and Drop & Layouts

#mstechdays
Le Hub
• Nouveau contrôle avec un objectif principal: la mise en avant
de contenu!
• Le contrôle est composé de « Sections », chaque sections
possédant un « Header »
• Idéal pour les scénarios dans lequel vous souhaitez mettre
en avant des images

#mstechdays
Le Hub – Mise en place
<div data-win-control="WinJS.UI.Hub">

</div>
#mstechdays
Le Hub – Mise en place (2)
<div data-win-control="WinJS.UI.Hub">
<div data-win-control="WinJS.UI.HubSection" data-win-options="{header:
‘Foo'}">
<!– INSERER VOTRE CONTENU -->
</div>

</div>
#mstechdays
Le Hub – Mise en place (3)
<div data-win-control="WinJS.UI.Hub">

<div data-win-control="WinJS.UI.HubSection" data-win-options="{header:
‘Foo'}">
<!– INSERER VOTRE CONTENU -->
</div>
<div data-win-control="WinJS.UI.HubSection" data-win-options="{header:
‘Bar'}">
<!-- INSERER VOTRE CONTENU -->
</div>

</div>
#mstechdays
HUB

#mstechdays
La SearchBox
• Windows 8.1 tire parti des « erreurs » de
Windows 8
– On peut maintenant inciter l’utilisateur à faire une
recherche

• Le contrôle SearchBox est dédié à cela
– Fonctionnalités similaires au SearchPane de la barre
des Charms (autocomplétion, liste de résultats, etc.)
mais intégré dans la page

#mstechdays
La SearchBox – Mise en place
<div id=“mySearchBox" data-win-control="WinJS.UI.SearchBox“></div>

mySearchBox.addEventListener("suggestionsrequested",
suggestionsRequestedHandler);
mySearchBox.addEventListener("querysubmitted", querySubmittedHandler);
• Les évènements (SuggestionsRequested et QuerySubmitted) sont les mêmes
que pour le SearchPane!

#mstechdays
SEARCHBOX

#mstechdays
Le Scheduler – La problématique actuelle
• setImmediate permet d’exécuter une tâche juste après la
passe de rendu graphique
• Si plusieurs appels à la méthode setImmediate sont
exécutés simultanément, comment connaitre l’ordre
d’exécution ?

#mstechdays
Le Scheduler – La problématique actuelle (2)
Task
Task

setImmediate();

Task
Task
setImmediate();

Task
Task
Task

setImmediate();

Task
Task

#mstechdays
Le Scheduler – Le Scheduler WinJS 2.0
Task
Task

schedule(func, pri);

Task
Task
schedule(func, pri);

Task
Task
Task

schedule(func, pri);

Task
Task

#mstechdays
Le Scheduler – Le Scheduler WinJS 2.0
Task
Task

Task
Task
Task
Task
Task
Task
Task
#mstechdays
Le Scheduler – Mise en place
setImmediate(foo);

var S = WinJS.Utilities.Scheduler;
S.schedule(foo, S.Priority.normal);
or

S.schedule(foo, S.Priority.high);
or

S.schedule(foo, S.Priority.idle);
#mstechdays
Le Pattern Dispose - Rappels
Garbage Collector

#mstechdays
Le Pattern Dispose – Rappels (2)
Garbage Collector

#mstechdays
La Pattern Dispose – Utilisation avec WinJS
Garbage Collector

.dispose();

#mstechdays
La Pattern Dispose – Utilisation avec WinJS
Garbage Collector

.dispose();

#mstechdays
Le Repeater
• Quelle alternative pour afficher des données sous forme de
liste ?
– GridView
– ListView

• Contrôles pratiques mais parfois trop complexes
– Utiliser un bazooka pour tuer une mouche 

• Le « Repeater » (ItemsControl en XAML) réponds au besoin:
– D’afficher une liste d’éléments avec le même template
– C’est tout ! (pas de sélection, pas de groupes, pas de header, etc.)
#mstechdays
Le Repeater (2)

WinJS.Binding.List

HTML UI
#mstechdays
REPEATER

#mstechdays
Le Repeater (3) – Mise en place
var myBindingList = new WinJS.Binding.List(…);

<div data-win-control="WinJS.UI.Repeater" data-win-options="{data:
myBindingList}">
<label data-win-bind="textContent: description"></label>
<progress data-win-bind="value: value" max="100"></progress>
</div>

#mstechdays
Conclusions

• WinJS 2.0, c’est
–
–
–
–
–

Des contrôles améliorés
De nouveaux contrôles
Des Beaucoup d’optimisations de performances
Une facilité de déboggage
Et encore plein d’autres choses!

• A vous les belles apps! 
#mstechdays
QUESTIONS ?

#mstechdays
Digital is business

Mais conteúdo relacionado

Semelhante a Quoi de neuf dans WinJS 2.0 ?

Visual studio 2013 - Techdays 2014
Visual studio 2013 - Techdays 2014Visual studio 2013 - Techdays 2014
Visual studio 2013 - Techdays 2014
Etienne Margraff
 
TechDays - Développer une single page application HTML5 - Version longue
TechDays - Développer une single page application HTML5 - Version longueTechDays - Développer une single page application HTML5 - Version longue
TechDays - Développer une single page application HTML5 - Version longue
Touchify
 

Semelhante a Quoi de neuf dans WinJS 2.0 ? (20)

Révolution du mode de travail en magasin.Conception, Design et Développement ...
Révolution du mode de travail en magasin.Conception, Design et Développement ...Révolution du mode de travail en magasin.Conception, Design et Développement ...
Révolution du mode de travail en magasin.Conception, Design et Développement ...
 
SPA avec SignalR et Angular Js
SPA avec SignalR et Angular JsSPA avec SignalR et Angular Js
SPA avec SignalR et Angular Js
 
Transitions et Animations – Donnez une nouvelle dimension à vos applications ...
Transitions et Animations – Donnez une nouvelle dimension à vos applications ...Transitions et Animations – Donnez une nouvelle dimension à vos applications ...
Transitions et Animations – Donnez une nouvelle dimension à vos applications ...
 
Les nouveautés d’HTML5 et IE11 en action
Les nouveautés d’HTML5 et IE11 en actionLes nouveautés d’HTML5 et IE11 en action
Les nouveautés d’HTML5 et IE11 en action
 
Développer une Single Page Application HTML 5 pour tous les devices
Développer une Single Page Application HTML 5 pour tous les devices Développer une Single Page Application HTML 5 pour tous les devices
Développer une Single Page Application HTML 5 pour tous les devices
 
Devenez Mobile Enterprise-Ready en développant vos applications LOB pour Wind...
Devenez Mobile Enterprise-Ready en développant vos applications LOB pour Wind...Devenez Mobile Enterprise-Ready en développant vos applications LOB pour Wind...
Devenez Mobile Enterprise-Ready en développant vos applications LOB pour Wind...
 
Symfony2 et Microsoft Azure, l’efficacité de PHP dans le cloud
Symfony2 et Microsoft Azure, l’efficacité de PHP dans le cloud Symfony2 et Microsoft Azure, l’efficacité de PHP dans le cloud
Symfony2 et Microsoft Azure, l’efficacité de PHP dans le cloud
 
Retour d'expérience Bouygues Telecom : Analyse BI à l'aide d'une appliance SQ...
Retour d'expérience Bouygues Telecom : Analyse BI à l'aide d'une appliance SQ...Retour d'expérience Bouygues Telecom : Analyse BI à l'aide d'une appliance SQ...
Retour d'expérience Bouygues Telecom : Analyse BI à l'aide d'une appliance SQ...
 
HTML5, JavaScript et CSS3: Concevoir des interfaces tactiles à destination de...
HTML5, JavaScript et CSS3: Concevoir des interfaces tactiles à destination de...HTML5, JavaScript et CSS3: Concevoir des interfaces tactiles à destination de...
HTML5, JavaScript et CSS3: Concevoir des interfaces tactiles à destination de...
 
Formation mobile-cross-platform
Formation mobile-cross-platformFormation mobile-cross-platform
Formation mobile-cross-platform
 
ASP.NET MVC 5 et Web API 2
ASP.NET MVC 5 et Web API 2ASP.NET MVC 5 et Web API 2
ASP.NET MVC 5 et Web API 2
 
Migrer de Windows XP à Windows 8.1 avec MDT 2013
Migrer de Windows XP à Windows 8.1 avec MDT 2013 Migrer de Windows XP à Windows 8.1 avec MDT 2013
Migrer de Windows XP à Windows 8.1 avec MDT 2013
 
Développer ou debugger ?
Développer ou debugger ? Développer ou debugger ?
Développer ou debugger ?
 
ASFA - Organisation et Méthodologie du projet COLSA
ASFA - Organisation et Méthodologie du projet COLSAASFA - Organisation et Méthodologie du projet COLSA
ASFA - Organisation et Méthodologie du projet COLSA
 
Optimisation des applications Windows 8/HTML5/WinJS
Optimisation des applications Windows 8/HTML5/WinJSOptimisation des applications Windows 8/HTML5/WinJS
Optimisation des applications Windows 8/HTML5/WinJS
 
ASP.NET MVC 6
ASP.NET MVC 6ASP.NET MVC 6
ASP.NET MVC 6
 
Visual studio 2013 - Techdays 2014
Visual studio 2013 - Techdays 2014Visual studio 2013 - Techdays 2014
Visual studio 2013 - Techdays 2014
 
Kinect en moins de 10 Minutes
Kinect en moins de 10 MinutesKinect en moins de 10 Minutes
Kinect en moins de 10 Minutes
 
At2008 Grenoble Hugonnet Sanlaville Public
At2008 Grenoble Hugonnet Sanlaville PublicAt2008 Grenoble Hugonnet Sanlaville Public
At2008 Grenoble Hugonnet Sanlaville Public
 
TechDays - Développer une single page application HTML5 - Version longue
TechDays - Développer une single page application HTML5 - Version longueTechDays - Développer une single page application HTML5 - Version longue
TechDays - Développer une single page application HTML5 - Version longue
 

Mais de Microsoft

Mais de Microsoft (20)

Uwp + Xamarin : Du nouveau en terre du milieu
Uwp + Xamarin : Du nouveau en terre du milieuUwp + Xamarin : Du nouveau en terre du milieu
Uwp + Xamarin : Du nouveau en terre du milieu
 
La Blockchain pas à PaaS
La Blockchain pas à PaaSLa Blockchain pas à PaaS
La Blockchain pas à PaaS
 
Tester, Monitorer et Déployer son application mobile
Tester, Monitorer et Déployer son application mobileTester, Monitorer et Déployer son application mobile
Tester, Monitorer et Déployer son application mobile
 
Windows 10, un an après – Nouveautés & Démo
Windows 10, un an après – Nouveautés & Démo Windows 10, un an après – Nouveautés & Démo
Windows 10, un an après – Nouveautés & Démo
 
Prenez votre pied avec les bots et cognitive services.
Prenez votre pied avec les bots et cognitive services.Prenez votre pied avec les bots et cognitive services.
Prenez votre pied avec les bots et cognitive services.
 
Office 365 Dev PnP & PowerShell : exploitez enfin le potentiel de votre écosy...
Office 365 Dev PnP & PowerShell : exploitez enfin le potentiel de votre écosy...Office 365 Dev PnP & PowerShell : exploitez enfin le potentiel de votre écosy...
Office 365 Dev PnP & PowerShell : exploitez enfin le potentiel de votre écosy...
 
Créer un bot de A à Z
Créer un bot de A à ZCréer un bot de A à Z
Créer un bot de A à Z
 
Microsoft Composition, pierre angulaire de vos applications ?
Microsoft Composition, pierre angulaire de vos applications ?Microsoft Composition, pierre angulaire de vos applications ?
Microsoft Composition, pierre angulaire de vos applications ?
 
Les nouveautés SQL Server 2016
Les nouveautés SQL Server 2016Les nouveautés SQL Server 2016
Les nouveautés SQL Server 2016
 
Conteneurs Linux ou Windows : quelles approches pour des IT agiles ?
Conteneurs Linux ou Windows : quelles approches pour des IT agiles ?Conteneurs Linux ou Windows : quelles approches pour des IT agiles ?
Conteneurs Linux ou Windows : quelles approches pour des IT agiles ?
 
Administration et supervision depuis le Cloud avec Azure Logs Analytics
Administration et supervision depuis le Cloud avec Azure Logs AnalyticsAdministration et supervision depuis le Cloud avec Azure Logs Analytics
Administration et supervision depuis le Cloud avec Azure Logs Analytics
 
Retour d'expérience de projets Azure IoT "large scale" (MicroServices, portag...
Retour d'expérience de projets Azure IoT "large scale" (MicroServices, portag...Retour d'expérience de projets Azure IoT "large scale" (MicroServices, portag...
Retour d'expérience de projets Azure IoT "large scale" (MicroServices, portag...
 
Plan de Reprise d'Activité avec Azure Site Recovery
Plan de Reprise d'Activité avec Azure Site RecoveryPlan de Reprise d'Activité avec Azure Site Recovery
Plan de Reprise d'Activité avec Azure Site Recovery
 
Modélisation, déploiement et gestion des infrastructures Cloud : outils et bo...
Modélisation, déploiement et gestion des infrastructures Cloud : outils et bo...Modélisation, déploiement et gestion des infrastructures Cloud : outils et bo...
Modélisation, déploiement et gestion des infrastructures Cloud : outils et bo...
 
Transformation de la représentation : De la VR à la RA, aller & retour.
Transformation de la représentation : De la VR à la RA, aller & retour.Transformation de la représentation : De la VR à la RA, aller & retour.
Transformation de la représentation : De la VR à la RA, aller & retour.
 
Quelles architectures pour vos applications Cloud, de la VM au conteneur : ça...
Quelles architectures pour vos applications Cloud, de la VM au conteneur : ça...Quelles architectures pour vos applications Cloud, de la VM au conteneur : ça...
Quelles architectures pour vos applications Cloud, de la VM au conteneur : ça...
 
Introduction à ASP.NET Core
Introduction à ASP.NET CoreIntroduction à ASP.NET Core
Introduction à ASP.NET Core
 
Open Source et Microsoft Azure, rêve ou réalité ?
Open Source et Microsoft Azure, rêve ou réalité ?Open Source et Microsoft Azure, rêve ou réalité ?
Open Source et Microsoft Azure, rêve ou réalité ?
 
Comment développer sur la console Xbox One avec une application Universal Win...
Comment développer sur la console Xbox One avec une application Universal Win...Comment développer sur la console Xbox One avec une application Universal Win...
Comment développer sur la console Xbox One avec une application Universal Win...
 
Azure Service Fabric pour les développeurs
Azure Service Fabric pour les développeursAzure Service Fabric pour les développeurs
Azure Service Fabric pour les développeurs
 

Quoi de neuf dans WinJS 2.0 ?

  • 1.
  • 2. Quoi de neuf dans WinJS 2.0 ? Soriya THACH Consultant Infinite Square sthach@infinitesquare.co m @SoriyaThach Thomas LEBRUN Consultant Infinite Square tlebrun@infinitesquare.co m @thomas_lebrun
  • 3. Infinite Square stand 19  Société de conseil, expertise, réalisation, formation, spécialisée dans le développement d’applications logicielles innovantes sur les technologies Microsoft  100% des consultants certifiés Microsoft, parmi lesquels 10 MVP et 2 Nokia Champions  GOLD Certified Partner sur 5 domaines de compétences  Centre de formation agrée #mstechdays Infinite Square aux TechDays 2014
  • 4. Donnez votre avis ! Depuis votre smartphone sur : http://notes.mstechdays.fr De nombreux lots à gagner toute les heures !!! Claviers, souris et jeux Microsoft… Merci de nous aider à améliorer les Techdays ! #mstechdays
  • 5. Agenda • Rappels • WinJS 2.0 en 1 slide • Focus sur les nouveautés • Questions #mstechdays
  • 9. WINJS 2.0 EN 1 SLIDE #mstechdays
  • 10. WinJS 2.0 en 1 slide Des contrôles améliorés Infrastructure List view App bar Scheduler Le pattern Dispose Débogage Asynchrone De nouveaux contrôles Hub Navigation bar Search box Back button #mstechdays Building Blocks Binding template Repeater Item Container
  • 11. FOCUS SUR LES NOUVEAUTÉS #mstechdays
  • 12. Améliorations des performances de la ListView ListView avec 1000 items (sur Microsoft Surface) 2000 1750 1500 1250 1000 750 500 250 0 Startup WinJS 1.0 #mstechdays Insert WinJS 2.0 Remove
  • 13. Améliorations des performances de la ListView (2) ListView avec 1000 items (sur Microsoft Surface) 2000 1750 1500 1250 1000 750 500 250 0 Startup WinJS 1.0 #mstechdays Insert WinJS 2.0 Remove
  • 14. Améliorations des performances de la ListView (3) WinJS 1.0 #mstechdays WinJS 2.0
  • 15. Améliorations des performances de la ListView (4) Temps d’affichage (ms) de 100 Templates 0 10 20 30 40 50 60 70 80 90 100 WinJS 1.0 #mstechdays 110 120 WinJS 2.0 130 140 150 160 170 180 190 200
  • 16. Améliorations des performances de la ListView (4) Temps d’affichage (ms) de 100 Templates 0 10 20 30 40 50 60 70 80 90 100 WinJS 1.0 #mstechdays 110 120 WinJS 2.0 130 140 150 160 170 180 190 200
  • 17. ListView: De nouvelles mises en page possibles Header Header Vertical GridLayout Grouped ListLayout CellSpaningLayout • Vous pouvez facilement créer vos propres mises en page grâce à IListLayout2! #mstechdays
  • 18. LISTVIEW Drag and Drop & Layouts #mstechdays
  • 19. Le Hub • Nouveau contrôle avec un objectif principal: la mise en avant de contenu! • Le contrôle est composé de « Sections », chaque sections possédant un « Header » • Idéal pour les scénarios dans lequel vous souhaitez mettre en avant des images #mstechdays
  • 20. Le Hub – Mise en place <div data-win-control="WinJS.UI.Hub"> </div> #mstechdays
  • 21. Le Hub – Mise en place (2) <div data-win-control="WinJS.UI.Hub"> <div data-win-control="WinJS.UI.HubSection" data-win-options="{header: ‘Foo'}"> <!– INSERER VOTRE CONTENU --> </div> </div> #mstechdays
  • 22. Le Hub – Mise en place (3) <div data-win-control="WinJS.UI.Hub"> <div data-win-control="WinJS.UI.HubSection" data-win-options="{header: ‘Foo'}"> <!– INSERER VOTRE CONTENU --> </div> <div data-win-control="WinJS.UI.HubSection" data-win-options="{header: ‘Bar'}"> <!-- INSERER VOTRE CONTENU --> </div> </div> #mstechdays
  • 24. La SearchBox • Windows 8.1 tire parti des « erreurs » de Windows 8 – On peut maintenant inciter l’utilisateur à faire une recherche • Le contrôle SearchBox est dédié à cela – Fonctionnalités similaires au SearchPane de la barre des Charms (autocomplétion, liste de résultats, etc.) mais intégré dans la page #mstechdays
  • 25. La SearchBox – Mise en place <div id=“mySearchBox" data-win-control="WinJS.UI.SearchBox“></div> mySearchBox.addEventListener("suggestionsrequested", suggestionsRequestedHandler); mySearchBox.addEventListener("querysubmitted", querySubmittedHandler); • Les évènements (SuggestionsRequested et QuerySubmitted) sont les mêmes que pour le SearchPane! #mstechdays
  • 27. Le Scheduler – La problématique actuelle • setImmediate permet d’exécuter une tâche juste après la passe de rendu graphique • Si plusieurs appels à la méthode setImmediate sont exécutés simultanément, comment connaitre l’ordre d’exécution ? #mstechdays
  • 28. Le Scheduler – La problématique actuelle (2) Task Task setImmediate(); Task Task setImmediate(); Task Task Task setImmediate(); Task Task #mstechdays
  • 29. Le Scheduler – Le Scheduler WinJS 2.0 Task Task schedule(func, pri); Task Task schedule(func, pri); Task Task Task schedule(func, pri); Task Task #mstechdays
  • 30. Le Scheduler – Le Scheduler WinJS 2.0 Task Task Task Task Task Task Task Task Task #mstechdays
  • 31. Le Scheduler – Mise en place setImmediate(foo); var S = WinJS.Utilities.Scheduler; S.schedule(foo, S.Priority.normal); or S.schedule(foo, S.Priority.high); or S.schedule(foo, S.Priority.idle); #mstechdays
  • 32. Le Pattern Dispose - Rappels Garbage Collector #mstechdays
  • 33. Le Pattern Dispose – Rappels (2) Garbage Collector #mstechdays
  • 34. La Pattern Dispose – Utilisation avec WinJS Garbage Collector .dispose(); #mstechdays
  • 35. La Pattern Dispose – Utilisation avec WinJS Garbage Collector .dispose(); #mstechdays
  • 36. Le Repeater • Quelle alternative pour afficher des données sous forme de liste ? – GridView – ListView • Contrôles pratiques mais parfois trop complexes – Utiliser un bazooka pour tuer une mouche  • Le « Repeater » (ItemsControl en XAML) réponds au besoin: – D’afficher une liste d’éléments avec le même template – C’est tout ! (pas de sélection, pas de groupes, pas de header, etc.) #mstechdays
  • 39. Le Repeater (3) – Mise en place var myBindingList = new WinJS.Binding.List(…); <div data-win-control="WinJS.UI.Repeater" data-win-options="{data: myBindingList}"> <label data-win-bind="textContent: description"></label> <progress data-win-bind="value: value" max="100"></progress> </div> #mstechdays
  • 40. Conclusions • WinJS 2.0, c’est – – – – – Des contrôles améliorés De nouveaux contrôles Des Beaucoup d’optimisations de performances Une facilité de déboggage Et encore plein d’autres choses! • A vous les belles apps!  #mstechdays