dimanche 4 mai 2014

Développer des applications de reconnaissances gestuelles avec quels outils ?




Développer des applications avec lesquelles on peut interagir sans autres moyens que son propre corps est techniquement possible avec les technologies dont nous disposons aujourd’hui. C’est tellement possible qu’un enfant de 3 ans peut considérer comme démodé et ringarde une console WII  de Nintendo apparu il y à peine 10 ans, en 2006 exactement…
En 2010 Microsoft à introduit la Xbox 360  qui déclassait la WII car plus besoin d’interface dans les mains pour interagir avec le programme, la manette c’est vous !

Sans rentrer dans le détail ci-dessous vous trouverez les principales technologies grands publiques de reconnaissance gestuelle et les kits de développements disponibles ou ayant été disponibles. C’est un futur encore en construction et les choses bougent vite. Se lancer dans un chemin plutôt qu’un autre est toujours enrichissant en termes d’appropriation du principe mais il me parait risqué de se lancer dans un projet de développement ambitieux centré autour d’une de ces technologies. Cela dit le Leap Motion Controller a retenue toute mon attention et je pense m’y attaquer dès que j’ai un moment !

Microsoft:

Microsoft released Kinect software development kit for Windows 7



Le Kinect SDK est apparu en Fevrier 2011.
La version 1.5 en Mai 2012.
La version 1.8 en Septembre 2013
La version 2 du SDK ciblant la Xbox one est prévue pour l’été 2014.
Téléchargement :


Asus :
Asus Xtion Pro live PC Motion Sensor 


OPEN KINECT


Apple :
PrimeSense Carmine est à l’origine un capteur de mouvement 3D Israelien mais à été racheté le 24 novembre  2013 par Apple.

Leap Motion :




Le Leap Motion Controller est un petit péphérique USB qui tient dans le creux de la main et émet un champ infrarouge qui peut interagir tel une souris avec les fonctionnalités d’un programme développé à cet effet.
L’avantage évident par rapport à la kinect est le faible encombrement et cela en fait à mon avis un adversaire de taille même si il est petit. 
Pour le moment le rayon d’action de l’utilisateur est seulement de 60 cm environ mais cela laisse pas mal de possibilité !


A quand le premier Leap motion intégré à son pc ?
C'est déja fait !

Le HP ENVY 17-j188sf Leap Motion est un ordinateur portable qui intègre directement la reconnaissance des mouvements.


Ressources pour la Kinect et la Gravure 3D

ReconstructMe SDK  2.1.845-97399
Real-time 3D reconstruction engine



mardi 4 mars 2014

Why we should develop a multilayer application ?

One can ask why going into difficulties by multiplying the code layers. The answer might be quiet simple; it’s to make your life easier. We are at a time of great technological revolution where applications can no more live for themselves. Whether we face needs internal to a company or we are developing for a software editor we will need to share or to expose our code to other applications at one time or another. Our need can evolve in a great set of needs and future informations would have to be shared between layers of codes already written. If our application has been implemented as a monolithic block of code it could be very difficult to adapt it, and the only options would be to break the code that has been written so painfully or to write a brand new application. That’s why it is necessary to take good habits even if it can be a difficult process at the very beginning.

lundi 3 mars 2014

Une démo WPF avec le Pattern MVVM Light Entity FramWork 5 Unity Microsoft Moq

J’ai choisi d’orienter cette démo sur WPF mais ce principe de découplage permet de réutiliser facilement certaines fonctionnalités de cette application dans d’autres applications telles que Windows Form, Asp .Net Webform ou  Asp . Net MVC4.

Pourquoi WPF, tout simplement parce que ce FrameWork semble être l’orientation de Microsoft concernant les développements futurs pour les applications clients lourd, il est disponible pour les applications Windows traditionnels  Windows 8 et Windows phone. WPF permet de faire tous ce qu’on peut faire avec une application WinForm mais le XAML qui est le langage de description permettant le rendue de l’interface graphique étend ses possibilités à la limites de l’imagination des développeurs ou des désigner qui l’utilise. Cette richesse en termes de possibilités à un cout qui se traduit par une appropriation très difficile de cette plateforme quand on l’aborde avec un regard nouveau.





On peut se poser la question mais pourquoi se casser à la tête à vouloir compliquer les choses en multipliant les couches de code ? La réponse est simple, c’est pour se simplifier la vie par la suite. Nous sommes à une époque de grande révolution technologique ou les applications ne se suffisent plus à eux même. Que l’on soit face à des besoins internes liés à une entreprise ou que l’on développe pour un éditeur de logiciel on aura besoin de partager ou d’exposer certaines fonctionnalités vers d’autres applications à un moment ou à un autre. Notre besoin initial peut vite évoluer dans un ensemble de besoins et des informations futures devront éventuellement être partagées entre les couches de codes déjà écrites et nos nouvelles implémentations. Si notre application à été développée de manière monolithique il pourra s’avérer fastidieux de l’adapter et souvent l’option la plus simple sera de casser le code existant ou de réécrire une autre application.
 C’est pour cela qu’il est nécessaire de prendre de bonnes habitudes très rapidement même si cela peut s’avérer être douloureux…

mardi 11 février 2014

Comment appeler une procédure stockée avec Entity FrameWork ?


Avant de répondre à cette question il peut être utile de parler des avantages et désavantages à utiliser des procédures stockées.
Avantages:

1) Pour certains traitements cela peut augmenter les performances de l'application.

2) Cela peut être un moyen d'empêcher les utilisateurs d'avoir un accès directe à la base de donnée.

3) C'est un moyen de gérer des traitements SQL compliqués. 

Désavantages:

1) La logique applicative se trouve déportée dans des endroits différents

2) Vous devez connaitre  le Transact Sql ou le PL SQL selon que vous utlisiez SQL Server ou Oracle.

Avec Entity Framework je pense que l'avantage 2 peut être éliminée parce que nous travaillons avec des entités et avant que nous puissions supprimer ou créer un enregistrement nous devons créer un objet, l'ajouter au contexte courant et ensuite appeler une méthode sauvegarder ou valider. Aucune opération de création, lecture, mise à jour ou de suppression n'est directement effectué en base.

L'avantage 3 n'en est plus une parce avec Linq to Entities il est possible de faire n'importe qu'elle traitement complexe pouvant interagir avec la base de donnée.


Appeler une procédure stocké avec Entity Framework :

Pour mettre à jour votre modèle afin qu'il prenne en compte une procédure stockée nouvellement crée :  

Faire un clique droit dans le designer (Model de donnée Entity FrameWork)

L'assistant création de base de donnée apparaît. On sélectionne la procédure stockée désirée et on clique sur terminer. Dans l'explorateur de model on clique avec le bouton droit de la souris sur notre procédure stockée et l'on choisie "Ajouter le model d'import" dans le menu contextuel. Cela créera une fonction dans notre projet avec les paramètres d'appel de la procédure stockée. Maintenant  notre fonction est accessible à partir du Context.

Une autre façon d'appeler une procédure stockée est d'appeler la méthode de Contexte SqlQuery.

lundi 3 février 2014

How to call a stored procedure with Entity FrameWork



Before answering to this question it can be a good thing to point out the advantages and disadvantages of using stored procedures.

 

Advantages:

1) For some treatment it can increase the application performance.

2) It can be a way of preventing user from having direct access to the database.

3) It makes it easier to deal with complex SQL treatment.

 

Disadvantages:

1) The logic of your application is located in different places.

2) You have to know Transact Sql or PL SQL whether you use SQL Server or Oracle.

 

With Entity Framework I think the advantage 2 could be eliminated because we are working with Entities and before we can delete or create a record we have to create an object ,add it to the current context and then call a save or commit method. We are not performing any direct CRUD operation to a database table.

The advantage 3 is no more an advantage because with link to entities it is possible to do any complex operation.

 

Calling a stored procedure with Entity Framework :

 

If the stored procedure has just been created.

Right Click on the designer (Entity Data Model) and click “Update model from database”.

A database wizard popup appears and then we select the desired stored procedure. We click finish. In the model browser we right click on our stored procedure and choose “Add model import” in the contextual menu. That will create a function in our project with the correct parameter for the function. Now the function could be executed from the context.

Another way to call a store procedure is to call the context method SqlQuery.

http://www.devolution-it.com/