Comment utiliser le framework Unit Testing pour réaliser des tests unitaires ?
Pour commencer, peut être ici :
http://www.pgs-soft.com/mocking-with-moq.html
Le meilleur lien sur le sujet, à mon avis :
http://code.google.com/p/moq/wiki/QuickStart
Et sinon juste un peu de code :
// Création de l'objet Mocker
var mock = new Mock<IMonObjetAMocker>();
IMonObjetAMocker monObjet = mock.Object;
// Creer un comportement du mock
mock.Setup(o => o.FonctionDeMonObjet()).Returns(FonctionDeMonObjetMocker());
void FonctionDeMonObjetMocker()
{
// Faire ce dont j'ai besoin pour le test
}
L'automatisation des tests unitaires nécessite la création d'interfaces car c'est à travers l'interface que l'on pourra définir en test le comportement de l'objet Mocker (ou remplacé pour le test).
Cet article est très succinct mais c'est la porte d'entrée dans l'univers de l'Unit Testing qui lui est extrêmement vaste...
To Be Continued
Programmez en langage C# avec le Framework .NET. Trucs et astuces pour écrire de bons programmes.
Base de données PostgreSQL
Astuce de l'editeur de requêtes SQL
Problème : Impossible d'ouvrir un fichier de script qui a été édité par un autre éditeur de fichiers, des caractères sont illisibles.Une chose bien énervante lorsque l'on démarre avec Postgre que l'on édite des scripts avec un autre éditeur puis que l'on veux les jouer ou les modifier dans postgre c'est cette dialogue box : "Le fichier "source" n'a pas pu être ouvert car il contient des caractères qui ne peuvent pas être interprétés.
Solution : Ouvrir le fichier avec un éditeur capable de "Convertir en UTF8" comme Notepad++
Architecture SOA
Services Oriented Architecture (SOA) ou Architecture Orientée Services en français (AOS), c'est une architecture destinée à rassembler les grandes applications de l'entreprise dites applications composites en applications interopérables et réutilisables.
Les applications composites du système d'information de l'entreprise communiquent entre elles grâce au bus applicatif et communiquent avec les utilisateurs grâce au bus de services leur fournissant ainsi des "services".
Wikipédia - Architecture Orientée Services
Notions du SOA :
Annuaire des Services : on parle d'annuaire UDDI recommandé par le W3C. WSDL : métalangage XML de description du service
Exemples :
Cette architecture apparait de plus en plus souvent dans les spécifications des outils de développement des grands éditeurs car elle répond à la croissante de la complexité de ces projets informatiques.
Eclipse avec STP
Oracle avec BPEL
IBM
Mais j'ai aussi entendu parlé de SOA pour Visual Studio avec MEF et IoC
D'aucuns diront que le SOA n'est qu'un dessins alors des dessins en voici :
http://www.ibm.com/developerworks/library/ar-archtemp/
A metamodel for instantiating the SOA reference architecture for a given solution
Layers of the SOA reference architecture: Solution stack view
The middleware view of the SOA reference architecture
Layer 1 Operational layer
Layer 2 Service component layer
Layer 3 Services layer
Layer 4 Business process layer
Layer 5 Consumer layer
Layer 6 Integration layer
Layer 7 Quality of service layer
Layer 8 Information architecture and business intelligence layer
Layer 9 Governance layer
SOA (9 couches ci-dessus) est presque plus complexe avec autant de choses inutiles que le modèle OSI (modèle des piles de protocoles de télécommunication 7 couches) ... à bon entendeur. Comme toujours en informatique depuis 30 ans ces modèles doivent être adaptés à la réalité du projet à réaliser.
Architecture du système :
Les applications composites du système d'information de l'entreprise communiquent entre elles grâce au bus applicatif et communiquent avec les utilisateurs grâce au bus de services leur fournissant ainsi des "services".
Wikipédia - Architecture Orientée Services
Notions du SOA :
Annuaire des Services : on parle d'annuaire UDDI recommandé par le W3C. WSDL : métalangage XML de description du service
Exemples :
Cette architecture apparait de plus en plus souvent dans les spécifications des outils de développement des grands éditeurs car elle répond à la croissante de la complexité de ces projets informatiques.
Eclipse avec STP
Oracle avec BPEL
IBM
Mais j'ai aussi entendu parlé de SOA pour Visual Studio avec MEF et IoC
D'aucuns diront que le SOA n'est qu'un dessins alors des dessins en voici :
http://www.ibm.com/developerworks/library/ar-archtemp/
A metamodel for instantiating the SOA reference architecture for a given solution
Layers of the SOA reference architecture: Solution stack view
The middleware view of the SOA reference architecture
Layer 1 Operational layer
Layer 2 Service component layer
Layer 3 Services layer
Layer 4 Business process layer
Layer 5 Consumer layer
Layer 6 Integration layer
Layer 7 Quality of service layer
Layer 8 Information architecture and business intelligence layer
Layer 9 Governance layer
SOA (9 couches ci-dessus) est presque plus complexe avec autant de choses inutiles que le modèle OSI (modèle des piles de protocoles de télécommunication 7 couches) ... à bon entendeur. Comme toujours en informatique depuis 30 ans ces modèles doivent être adaptés à la réalité du projet à réaliser.
Architecture d'Application vs Architecture de Services |
Elément de Services :
Composant de Service |
Il y a encore beaucoup à dire sur l'architecture SOA. Je reviendrai.
ASP.NET MVC
Développer une applications web avec une architecture MVC - Model View Controler
Le développement rapide du .NET Framework permet l'émergence de MVC et cela va très vite depuis ASP ou les applications web classiques en asp.net html .aspx et le constat qu'elles sont trop lentes (un post et c'est toutes la page qui revient de serveur). D'où l'émergence d'une architecture MVC intégrée au .NET Framework.
Comprendre la différence entre ASP.NET Web forms et APS.NET MVC, c'est ici :
http://msdn.microsoft.com/en-us/library/dd381619(v=vs.98)
Parce que les applications MVC ne maintiennent pas le ViewSate (état de la vue entre deux appels serveur) il ne faut pas utiliser les contrôles de type GridView, Repeater, et DataList.
Comprendre l'exécution d'une application ASP.NET MVC, c'est ici :
http://msdn.microsoft.com/en-us/library/dd381612(v=vs.98)
http://www.cellenza.com/publications/introduction-a-razor-pour-asp-net-mvc/
Introduction à la syntaxe Razor pour ASP.NET MVC
La réponse est non !
Peut-on utiliser les deux moteurs de rendu Razor et WebForms ASP.NET dans un même projet ?
La réponse est Non, Oui, Peut-être mais cela n'est pas supporté. Quoi qu'il en soit voici quelques techniques :
Vous partez d'une ancienne application web .aspx et vous voulez introduire un peu de razor c'est à dire quelques vues en .cshtml, voici comment faire, ici :
http://www.mikesdotnetting.com/Article/162/Using-Web-Pages-Helpers-in-ASP.NET-Web-Forms
Autres techniques plus complexes, ici :
http://www.hanselman.com/blog/MixingRazorViewsAndWebFormsMasterPagesWithASPNETMVC3.aspx
La véritable solution est probablement dans MvcScaffold.
Download
http://www.microsoft.com/en-us/download/details.aspx?id=1491
http://www.microsoft.com/fr-fr/download/details.aspx?id=1491
MVC 3 pour Visual Studio 2010
http://www.asp.net/mvc/mvc3
ASP.NET MVC 3 est un framework pour construire des applications Web évolutives, basées sur les standards en utilisant des modèles de conception (design partterns) bien établies et la puissance de ASP.NET et du .NET Framework.
Avec MVC 3 on passe au moteur de rendu Razor ...
Support de multiples moteurs de rendu ...
Avec l'arrivée de Razor on peut facilement imaginer que les autres moteurs de rendu son amenés à disparaitre.
Scaffold your ASP.NET MVC 3 project with the MvcScaffolding package
Permet lors de la création d'une classe de créer l'ensemble des formulaires permettant de réaliser un Create-Read-Update-Delete (CRUD).
Dans la Package Management Console taper la commande :
PM> Scaffold controler MaClass
Le lien vers le blog de Steven Anderson comporte 7 points ...
Introducing “Razor” – a new view engine for ASP.NET
http://weblogs.asp.net/scottgu/archive/2010/10/19/asp-net-mvc-3-new-model-directive-support-in-razor.aspx
ASP.NET MVC 3: New @model keyword in Razor
http://weblogs.asp.net/scottgu/archive/2010/10/22/asp-net-mvc-3-layouts.aspx
ASP.NET MVC 3: Layouts with Razor
http://www.asp.net/web-pages/overview/more-resources/asp-net-web-pages-api-reference
This page contains a list with brief examples of the most commonly used objects, properties, and methods for programming ASP.NET Web Pages with Razor syntax.
...
http://wildermuth.com/2012/1/18/Modern_Web_Development_-_Part_1
Modern Web Devlopment, how to make Razor and HTML5 web application using Visual Studio
Suppression des JS Microsoft, utilisation de NuGet pour installer JQuery UI.
Ajouter un nouveau controller par bouton droit sur le répertoire Controllers de la solution puis Add puis New Controller.
Ajouter une vue en éditant le C# du nouveau controller puis bouton Add View...
Le développement rapide du .NET Framework permet l'émergence de MVC et cela va très vite depuis ASP ou les applications web classiques en asp.net html .aspx et le constat qu'elles sont trop lentes (un post et c'est toutes la page qui revient de serveur). D'où l'émergence d'une architecture MVC intégrée au .NET Framework.
Comprendre la différence entre ASP.NET Web forms et APS.NET MVC, c'est ici :
http://msdn.microsoft.com/en-us/library/dd381619(v=vs.98)
Parce que les applications MVC ne maintiennent pas le ViewSate (état de la vue entre deux appels serveur) il ne faut pas utiliser les contrôles de type GridView, Repeater, et DataList.
Comprendre l'exécution d'une application ASP.NET MVC, c'est ici :
http://msdn.microsoft.com/en-us/library/dd381612(v=vs.98)
Razor ou Webforms ?
Peut-on utiliser les deux moteurs de rendu Razor ou WebForms ASP.NET dans une même page ?http://www.cellenza.com/publications/introduction-a-razor-pour-asp-net-mvc/
Introduction à la syntaxe Razor pour ASP.NET MVC
La réponse est non !
Peut-on utiliser les deux moteurs de rendu Razor et WebForms ASP.NET dans un même projet ?
La réponse est Non, Oui, Peut-être mais cela n'est pas supporté. Quoi qu'il en soit voici quelques techniques :
Vous partez d'une ancienne application web .aspx et vous voulez introduire un peu de razor c'est à dire quelques vues en .cshtml, voici comment faire, ici :
http://www.mikesdotnetting.com/Article/162/Using-Web-Pages-Helpers-in-ASP.NET-Web-Forms
Autres techniques plus complexes, ici :
http://www.hanselman.com/blog/MixingRazorViewsAndWebFormsMasterPagesWithASPNETMVC3.aspx
La véritable solution est probablement dans MvcScaffold.
ASP.NET MVC 3
ASP.NET MVC 3 fournit une infrastructure MVC (Model-View-Controller) au-dessus du runtime ASP.NET 4.Download
http://www.microsoft.com/en-us/download/details.aspx?id=1491
http://www.microsoft.com/fr-fr/download/details.aspx?id=1491
MVC 3 pour Visual Studio 2010
http://www.asp.net/mvc/mvc3
ASP.NET MVC 3 est un framework pour construire des applications Web évolutives, basées sur les standards en utilisant des modèles de conception (design partterns) bien établies et la puissance de ASP.NET et du .NET Framework.
Avec MVC 3 on passe au moteur de rendu Razor ...
Support de multiples moteurs de rendu ...
Avec l'arrivée de Razor on peut facilement imaginer que les autres moteurs de rendu son amenés à disparaitre.
MvcScaffolding
http://blog.stevensanderson.com/2011/01/13/scaffold-your-aspnet-mvc-3-project-with-the-mvcscaffolding-package/Scaffold your ASP.NET MVC 3 project with the MvcScaffolding package
Permet lors de la création d'une classe de créer l'ensemble des formulaires permettant de réaliser un Create-Read-Update-Delete (CRUD).
Dans la Package Management Console taper la commande :
PM> Scaffold controler MaClass
Le lien vers le blog de Steven Anderson comporte 7 points ...
Moteur de rendu Razor
http://weblogs.asp.net/scottgu/archive/2010/07/02/introducing-razor.aspxIntroducing “Razor” – a new view engine for ASP.NET
http://weblogs.asp.net/scottgu/archive/2010/10/19/asp-net-mvc-3-new-model-directive-support-in-razor.aspx
ASP.NET MVC 3: New @model keyword in Razor
http://weblogs.asp.net/scottgu/archive/2010/10/22/asp-net-mvc-3-layouts.aspx
ASP.NET MVC 3: Layouts with Razor
http://www.asp.net/web-pages/overview/more-resources/asp-net-web-pages-api-reference
This page contains a list with brief examples of the most commonly used objects, properties, and methods for programming ASP.NET Web Pages with Razor syntax.
...
ASP.NET MVC 4
http://www.asp.net/whitepapers/mvc4-release-noteshttp://wildermuth.com/2012/1/18/Modern_Web_Development_-_Part_1
Modern Web Devlopment, how to make Razor and HTML5 web application using Visual Studio
Suppression des JS Microsoft, utilisation de NuGet pour installer JQuery UI.
Ajouter un nouveau controller par bouton droit sur le répertoire Controllers de la solution puis Add puis New Controller.
Ajouter une vue en éditant le C# du nouveau controller puis bouton Add View...
Inscription à :
Articles (Atom)