Visual Studio - devenv.exe processus WerFault.exe - l'enfer du C#.NET

Cette après midi, je reprends un ancien projet Visual Studio 2013 et je lance Visual Studio mais cela ne fonctionne pas ! Je suis avec Windows 7, je lance le Gestionnaire des tâches, je vois devenv démarrer puis s'exécute un processus que je ne connais pas WerFault.exe. Puis plus rien !? C'est l'enfer du DotNET. On crois que l'on a installé une machine stable. Juste les outils de développement qu'il faut, rien de plus ça fonctionne mais un jour cela ne fonctionne plus !

Visual Studio c'est l'enfer du DotNET
Me voici avec ma chaîne de développement Visual Studio C# en rade. Ce n'est pas du tout professionnel, j'ai un travail à rendre, je vais devoir expliquer à mon client que ... je vais trouver, il va me comprendre.

Je soupçonne un install foireux une saloperie qui se serait installée sans mon accord.

Voici les processus de cette machine en défault, on y voit le WerFault.exe s'exécuter :

Visual Studio - devenv et WerFault.exe

Recherche d'une solution

La solution est sans doute ici :


Ou peut être là :


mais là, crashes while debbuging ? Non, non, non, Visual Studio ne se lance même pas ! Après l'eécution de WerFault il disparaît et devenv disparait aussi.

Si vous avez une piste, je prends, sinon je continue de chercher et je reviens, à+

Exécuter : devenv /safemode

là j'ai un souci, c'est VS 2010 qui s'exécute...

Ajouter une légende
Visual Studio Erreur inconnue
Essayons de relancer l'installation de Visual Studio 2013 :

Visual Studio 2013 - Installation bloquée !
problèmes courant et leurs solutions
Je ne pense pas que la solution soit là, en tous cas on n'y parle pas de WerfFault...

En savoir plus sur WerFault.exe

WerFault qu'est ce que c'est ? C'est le "rapporteur d'erreur de Microsoft" ! Il y a des petits malins qui essayent de se faire de l'argent en proposant des logiciels de correction d'erreurs Windows...

Tout se passe comme si WerFault n'arrivait pas à faire son travail... c'est à dire à rendre compte d'une erreur et du coup il se ferme.

Regardons dans les journaux de Windows :

Exécution de devenv 
Il y a bien une erreur Application qui semble relater le problème. Cela parle de vrfcore.dll mais il est impossible d'en tirer quoi que ce soit.

Tentative de réparation de Visual Studio 2013

Je passe par Panneau de configuration->Programmes et fonctionnalités, ce qui est installé c'est Microsoft Visual Studio Professional 2013 avec Update 4...

Allons y, en double cliquant dessus, on me propose de réparer Visual Studio...

Visual Studio 2013 Professional with Update 4 - Réparation
Plusieurs heures après... La réparation se poursuis quand d'un coup :

Visual Studio Professional 2013 - Erreur inconnue !
Ce n'est pas professionnel. A cet instant, je me dis qu'en cliquant sur Ok c'est la fin de la réparation et que tout va cracher... Il n'en est rien, la boite de dialogue "Visual Studio" disparaît et la réparation se poursuit...

Réparation de Visual Studio - Redémarrer pour terminer.
Mais croyez-vous que mon Visual Studio 2013 soit réparé ? Ben non la réparation ne donne rien, bien sûr ! Quelle cochonnerie, j'ai envie de tout effacer et de recommencer une nouvelle machine. Mais qu'elle perte de temps.

Là, je peux dire, pas de fun ! Je suis bien dans l'enfer du DotNET.

Tentative de restauration de Windows 7 Pro

Comment choisir son point de restauration ? J'en essaye plusieurs qui me semble avoir été créés avant la mise à jour fatidique (et je crois que c'est le framework 4.6)  mais croyez moi cela ne fonctionne pas !

Démarrer->Ordinateur->bouton droit->Propriétés système->Protection du système->Cliquez bouton "Restauration du système". Mais rien n'y fait ! Là je suis surpris comme quoi mon système n'est pas aussi bien protégé que cela.

Solution finale, ce qui a fonctionné pour moi

Il s'agit donc certainement d'une erreur mise à jour automatique du Framework 4.6 avec Visual Studio 2013 Update 4. Je décide de désinstaller toutes les mises à jour réalisées après "une date à laquelle cela fonctionnait". Puis je désinstalle Visual Studio Update 4.

Puis je passe un petit coup de CClearner sur la base de registres.

Et enfin je réinstalle Visual Studio 2013 :

Les points de restauration du système
Une petite dernière opération : je configure windows update pour ne pas installer automatiquement les mises à jour mais qu'il me prévienne !

Installation et nouvelles fonctionnalités de Visual Studio Community 2015

Quelles sont les nouvelles fonctionnalités de Visual Studio Community 2015 ? Je fais un tour rapide sur ces nouvelles fonctionnalité, en passant par le processus d'installation et la création rapide d'un nouveau projet.

Visual Studio Community 2015 en téléchargement
Visual Studio Community 2015 en téléchargement

Visual Studio 2015 Community - Installation

Visual Studio Community 2015
Visual Studio Community 2015 
Cliquez sur "Personnalisé" pour voir les différentes possibilités, les différentes fonctionnalités, offertes avec l'installation gratuite de Visual Studio 2015 Community :





Installation de Visual Studio Communiy 2015 - Update 1 - Volet 1
Installation de Visual Studio Communiy 2015 - Update 1 - Volet 1
Outils de développement d'applications Windows universelles oula la, optimisées pour Windows 10. oups oups mais quésaco ? Tout cela est très impressionnant.


Installation de Visual Studio Communiy 2015 - Update 1 - Volet 2
Installation de Visual Studio Communiy 2015 - Update 1 - Volet 2
Parmi les différentes possibilités on trouve :
Développement multiplateforme pour appareil mobile.
C#/.NET (Xamarin) : développement d'applications Android et iOS natives en C# - oh la la ...

Est-on vraiment arrivé au fameux outils de développement multiplateforme ? Cela fonctionne t-il vraiment ? C'est assez perturbant, on dirait bien que cette version donne accès à plus de possibilités que mon ancienne version de Visual Studio 2013 Professional que j'ai acheté 450 $ !

Je poursuis l'installation en choisissant de cocher "Tout sélectionné". Le processus d'installation est long, long, long, très très long ! Mais au petit matin cela y est :


Aide->A propos de Microsoft Visual Studio
Aide->A propos de Microsoft Visual Studio

Visual Studio 2015 Community - Types de projets

Et je crée mon premier projet :

Visual Studio 2015 Community - Fichier->Nouveau->Projet
Visual Studio 2015 Community - Fichier->Nouveau->Projet
On trouve un tas de trucs nouveaux, dont les Windows Universal ! Windows 8 Universal !


Visual Studio 2015 Community - Création d'applications universelles
Visual Studio 2015 Community - Création d'applications universelles
C'est un paradoxe non ?! On vous propose de créer des applications universelles pour Windows 8 ou pour Windows 10, et pourtant ce n'est pas si universel que ça, non ?

Visual Studio 2015 Community - Application Web

En ce qui concerne le développement des Applications Web, il y a ça :

Visual Studio 2015 Community - Application Web dans l'Azure
Visual Studio 2015 Community - Application Web dans l'Azure
On est de plus en plus lié à notre compte outlook et à l'Azure...
Mais on peut également créer des applications Android, cloud, iOS, Silverlight, ...

Pour essayer de ne pas trop resté collé à l'Azure, je propose de décocher la case Ajouter Application Insight au projet.

On choisit ensuite le type d'application ASP.NET que l'on veut développer :


Visual Studio 2015 Community - Types d'applications ASP.NET
Visual Studio 2015 Community - Types d'applications ASP.NET
J'ai coché la case "Host in the cloud". Et il y a encore un truc, Configure Microsoft Azure Web App Settings :
Visual Studio 2015 Community - Encore et encore des options des choix des truc des machins ...
Visual Studio 2015 Community - Encore et encore des options des choix des truc des machins ...
Ça n'en finit pas ! Et là il faut choisir "Cancel". Non, non on ne s'inquiète pas, ce n'est pas le Cancel de la création du projet, c'est le Cancel de l'inscription de l'application sous Microsoft Azure, encore Azure... Toujours Azure. On vous met en garde tout de même sur le coût de la création de cette nouvelle application.

Blend community 2015

Et voici le retour de Blend avec Community 2015 qui s'est installé avec Visual Studio :


Blend revient
Blend revient
Quand je pense que cet outil était payant et même fortement payant ... là on l'installe gratuitement ...

Visual Studio 2015 Community - Colors and themes

Pour avoir de jolies couleurs dans votre outils de développement favori c'est ici :

Visual Studio 2015 Community - Présentation en vidéo

https://www.youtube.com/watch?v=ECJ-sug1jbo

Visual Studio 2015 Community - iOS natives apps in C#

Dans l'ensemble des projets que l'on peut créer avec Visual Studio 2015 Community, l'un d'entres eux est intriguant c'est la création d'application native pour iOS, et pourtant dans VS, aucun souci :

Visual Studio 2015 Community - Natives iOS apps in C#
Visual Studio 2015 Community - Natives iOS apps in C#
Franchement, je suis pas sûr que cela fonctionne sur ma plateforme de développement actuelle !

Install Xamarin to develop iOS an Android apps in C#
Install Xamarin to develop iOS an Android apps in C#
Franchement... ça à l'air trop fun ! Mais ce n'est pas encore très ouvert :

S'enregistrer pour démarrer avec Xamarin pour Visual Studio
S'enregistrer pour démarrer avec Xamarin pour Visual Studio
Le moins que l'on puisse dire est qu'il faut montrer patte blanche. Et pour la formation bien sûr comme d'habitude c'est ... payant ;)

1 799,00 $ pour la conférence vous en pensez quoi ?



Xamarin EVOLVE16 - 2,999.00 $
Xamarin EVOLVE16 - 2,999.00 $
Voilà ! Un monde semble s'ouvrir à nous mais pour l'instant ce monde est réservé au payants, il est probable que bientôt VS Community 2015 pourra en faire plus en payant moins.

We stay In Touch !

Tutoriel - Création d'un Template T4 tt (text template)

Avec Entities Framework on a l'habitude de voir des Templates T4 générés par l'outil graphique mais s'il fallait partir de zéro ? Comment cela se passe t-il ? C'est l'objet de tutoriel.

Pages MSDN :
https://msdn.microsoft.com/en-us/library/bb126445.aspx
Code Generation and T4 Text Template

https://msdn.microsoft.com/en-us/library/ee844259.aspx
Run-Time Text Generation with T4 Text Templates

Donc on peut créer dans un projet Visual Studio un Text Template au moment de l'exécution : Bouton droit sur le projet -> Ajouter nouvel élément :

Création d'un Texte Template au sein d'un projet Visual Studio
Oui le plus délicat c'est la traduction en français "au moment de l'exécution" runtime donc ...

Pour aller plus loin, le plus simple c'est de convertir un fichier existant en Text Template. Lorsque l'on sauvegarde le fichier .tt un .cs est automatiquement créer avec du code CS pour utiliser le Template dans notre projet.



Convertir un site web en application Web avec Visual Studio 2013

En effet, il manque le bouton "Convertir en application Web". C'est toujours la même chose, les ingé de Redmond prennent un malin plaisir à changer la place des boutons et l'on se demande bien pourquoi ! Bref on vous dira que pour convertir votre "site web" en "application Web" vous cliquez sur le bouton droit au niveau du projet .csproj et vous convertissez en application Web. C'est faux car dans Visual Studio 2013, ce bouton n'existe plus à cet endroit.

Avec Visual Studio 2013 : Convertir en application Web, c'est ici :

Visual Studio 2013 - Menu PROJET - Article : Convertir en application Web
Il faut, bien sûr, avoir choisir le "projet" dans l'Explorateur de solution. Et pour cela il faut un projet donc on commence par le construire vide puis on ajoute les anciens éléments du site web dans ce nouveau projet.

Ça vaut bien le coup de prendre quelques notes car cela fait maintenant deux fois que je passe un "certain temps" à retrouver cette foutue commande ...

Effectuer la conversion de votre Site Web en Application Web

Convertir votre site Web en projet d'application Web

Procédure pas à pas pour convertir rapidement votre site web en application web de la lecture :


Web Application versus Web Site :

https://msdn.microsoft.com/en-us/library/dd547590(v=vs.110).aspx#summary_of_differences

D'une manière générale, c'est assez curieux de voir la manière dont évoluent les templates de VS. Il faut comprendre cette évolution. Certains ont pensé que les WebForms disparaîtraient au profit d'ASP.MVC ce n'est pas le cas. Quand j'ai développer ma première application web, je pensais bien que c'était une "Application Web" et pas un "Site Web" aujourd'hui au moment de reprendre le développement je constate que c'est un vulgaire "Site Web" ... mais je peux le transformer c'est déjà ça.

A quand le développement multi-plateformes ?

Remarques :
Le processus de conversion renomme également le dossier App_Code en Old_App_Code.
Il faut donc déplacer le code que l'on mettait dans ce dossier, sinon le code se trouvera deux fois. Les deux pages précédentes résument bien l'opération.

Autres problèmes de conversion de Site Web ASP.NET

En fait, il y encore une bonne centaine de problèmes de conversion de sites web. Il faut expérimenter, comparer ce que vous avez avec ce que Visual Studio va générer, ce qu'il va vous proposer de convertir.


ASP.NET 5.0 - MVC 6 - Microsoft Virtual Academy

Oui c'est un peu ... compliqué disons mais pour le framework C# .NET la nouvelle version est la version 5.0 après les versions 4.0, 4.5 puis 4.5.1 ... pour le module MVC, lui il est en version 6. Il est grand temps de découvrir toutes ces nouveautés car elles sont nombreuses et surprenantes.

DNX : le nouvel environnement d'exécution de .NET enfin du multi-plateforme ... Whaou !

Microsoft Virtual Académie

Découvrez la Communauté Alt.NET oui ils en parlent dans la vidéo mais je reviens ici quelques années après et plus rien impossible de retrouver les membres de la communauté Alt.NET comme quoi tout est périssable en ce bas monde !

Heureusement que ce n'est que du soft !

Mise à jour en 2022 Microsoft Virtual Academy devient  :Microsoft Learn

ASP.NET MVC & JQuery UI - Accordion

Je souhaite réaliser un "accordéon" en JQuery UI avec un template d'application ASP.NET MVC. Tout ce que je vois sur internet ne fonctionne pas. En tous cas pas avec le template de Visual Studio. Les applications ASP.NET MVC utilisées dans ces exemples, sont trop simples. Elles n'utilisent pas le template de Visual Studio.

Pourquoi JQuery UI ne fonctionne pas avec ASP.NET MVC ?

Ne pas oublier d'installer le NuGet JQuery UI :


L'instruction :
@Scripts.Render( "~/bundles/jquery" )

en bas de la page :
\\WebMvcApplication1\Views\Shared\_Layout.cshtml

Remponne avec l'instruction de la \\Views\Home\Page1.cshtml

@{
    ViewBag.Title = "Page1";
}

<script src="~/Scripts/jquery-1.6.4.js"></script>
<script src="~/Scripts/jquery-ui-1.11.4.js"></script>
<link href="~/Content/themes/base/all.css" rel="stylesheet" />
<link href="~/Content/themes/base/accordion.css" rel="stylesheet" />

<script type="text/javascript">
    $(function () {
        $("#accordion").accordion();
    });
</script>

<h2>Page1</h2>

<div id="accordion">
    <h3>This is the Title1</h3>
    <div>
        <p>
            Mauris mauris ante, blandit et, ultrices a, suscipit eget, quam. Integer
            ut neque. Vivamus nisi metus, molestie vel, gravida in, condimentum sit
            amet, nunc. Nam a nibh. Donec suscipit eros. Nam mi. Proin viverra leo ut
            odio. Curabitur malesuada. Vestibulum a velit eu ante scelerisque vulputate.
        </p>
    </div>
    <h3>This is the Title2</h3>
    <div>
        <p>
            Sed non urna. Donec et ante. Phasellus eu ligula. Vestibulum sit amet
            purus. Vivamus hendrerit, dolor at aliquet laoreet, mauris turpis porttitor
            velit, faucibus interdum tellus libero ac justo. Vivamus non quam. In
            suscipit faucibus urna.
        </p>
    </div>
</div>

Solution pour utiliser JQuery UI dans les page ASP.NET MVC

Déplacer l'instruction :
@Scripts.Render( "~/bundles/jquery" )

de la page : \\WebMvcApplication1\Views\Shared\_Layout.cshtml
dans les balises <head> au début de la page. Comme ceci :

<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>@ViewBag.Title - Mon application ASP.NET</title>
    @Styles.Render("~/Content/css")
    @Scripts.Render("~/bundles/modernizr")
    @Scripts.Render( "~/bundles/jquery" )
</head>

Supprimer l'instruction :
<script src="~/Scripts/jquery-1.6.4.js"></script>
de la page \\Views\Home\Page1.cshtml

Et ça y est, ça fonctionne :

J'ai ajouté une page dans laquelle j'utilise l'accordion JQuery UI

L'accordion JQuery UI s'affiche dans ma page ASP.NET MVC
Incroyable non ? N'est ce pas de la magie !

Have Fun !
 

ASP.NET 5 - Nouveautés

Connaissez-vous les nouveautés d'ASP.NET 5 ? Doit-on dire .NET Framework 5.0 ? Qu'est ce qui change ? Qu'est ce qui reste identique ?

La vidéo sur Microsoft Virtual Academy - Initiation à ASP.NET 5

Connaissez-vous le nouvel éditeur de code : Visual Studio Code ?
https://www.visualstudio.com/en-us/products/code-vs.aspx
A découvrir ...

ASP.NET 5

Visual Studio 2015 - MVC 6. Tout change encore, Razor @Html.LabelFor devient un htmlHelper <label asp.net.for="">. Une même application pourra faire tourner tous types de contrôleurs WebAPI MVC Json .... Plus de Global.asax remplacé par ...  Bref : ASP.NET 5, ils sont parti d'une page blanche.

Mais ... mais ... mais ... attention !

Enfin un environnement Multiplateforme : DNX le nouvel environnement d'exécution ! Multiplateforme !? Oui oui ça y est, nous y sommes.

Mise à jour en Mars 2017

Il semble que tout ceci soit maintenant connu sous la dénomination : ASP.NET Core Runtime

ASP.NET MVC Scaffolding

C'est la suite de l'article : ASP.NET MVC 4 CRUD With Entiry Framework 5.0 sur l'utilisation du NuGet Packadge ASP.NET MVC Scaffolding. Je viens de tout recommencer avec Visual Studio 2013. Je sais, je suis un dangereux récidiviste ;)

Regardons si ça fonctionne encore ?

Afficher la fenêtre console de gestion des packages NuGet

C'est ici :
Affichez la console de gestion des packages NugGet

Lancer la commande d'installation de ASP.NET Scaffolding

Voici le résultat de résulat d'exécution de la commande :
PM> install-package mvcscaffolding

Chaque package vous est concédé sous licence par son propriétaire. Microsoft n’est pas responsable et n’accorde pas de licence pour les packages de sociétés tierces. Certains packages peuvent inclure des dépendances qui sont soumises à des contrats de licence supplémentaires. Suivez l’URL de la source du package (flux) pour identifier les dépendances.

Version de l’hôte de la Console du Gestionnaire de package 2.8.50926.663

Tapez « get-help NuGet » pour afficher toutes les commandes NuGet disponibles.

PM> install-package mvcscaffolding
Tentative de résolution de la dépendance « T4Scaffolding ».
Tentative de résolution de la dépendance « T4Scaffolding.Core ».
Tentative de résolution de la dépendance « EntityFramework ».
Installation de « T4Scaffolding.Core 1.0.0 ».
Installation de « T4Scaffolding.Core 1.0.0 » terminée.
Set-DefaultScaffolder : Cannot get an instance of EnvDTE.DTE
Au niveau de E:\Visual Studio\ApplicationWeb\WebMVCApplicationKit\packages\T4Scaffolding.Core.1.0.0\tools\init.ps1 : 50 Caractère : 30
+         Set-DefaultScaffolder <<<<  -Name CustomTemplate -Scaffolder T4Scaffolding.CustomTemplate -SolutionWide -DoNotOverwriteExistingSetting
    + CategoryInfo          : NotSpecified: (:) [Set-DefaultScaffolder], InvalidOperationException
    + FullyQualifiedErrorId : T4Scaffolding.Cmdlets.SetDefaultScaffolderCmdlet

Set-DefaultScaffolder : Cannot get an instance of EnvDTE.DTE
Au niveau de E:\Visual Studio\ApplicationWeb\WebMVCApplicationKit\packages\T4Scaffolding.Core.1.0.0\tools\init.ps1 : 51 Caractère : 30
+         Set-DefaultScaffolder <<<<  -Name CustomScaffolder -Scaffolder T4Scaffolding.CustomScaffolder -SolutionWide -DoNotOverwriteExistingSetting
    + CategoryInfo          : NotSpecified: (:) [Set-DefaultScaffolder], InvalidOperationException
    + FullyQualifiedErrorId : T4Scaffolding.Cmdlets.SetDefaultScaffolderCmdlet

Installation de « T4Scaffolding 1.0.8 ».
Installation de « T4Scaffolding 1.0.8 » terminée.
Set-DefaultScaffolder : Cannot get an instance of EnvDTE.DTE
Au niveau de E:\Visual Studio\ApplicationWeb\WebMVCApplicationKit\packages\T4Scaffolding.1.0.8\tools\init.ps1 : 6 Caractère : 22
+ Set-DefaultScaffolder <<<<  -Name DbContext -Scaffolder T4Scaffolding.EFDbContext -SolutionWide -DoNotOverwriteExistingSetting
    + CategoryInfo          : NotSpecified: (:) [Set-DefaultScaffolder], InvalidOperationException
    + FullyQualifiedErrorId : T4Scaffolding.Cmdlets.SetDefaultScaffolderCmdlet

Set-DefaultScaffolder : Cannot get an instance of EnvDTE.DTE
Au niveau de E:\Visual Studio\ApplicationWeb\WebMVCApplicationKit\packages\T4Scaffolding.1.0.8\tools\init.ps1 : 7 Caractère : 22
+ Set-DefaultScaffolder <<<<  -Name Repository -Scaffolder T4Scaffolding.EFRepository -SolutionWide -DoNotOverwriteExistingSetting
    + CategoryInfo          : NotSpecified: (:) [Set-DefaultScaffolder], InvalidOperationException
    + FullyQualifiedErrorId : T4Scaffolding.Cmdlets.SetDefaultScaffolderCmdlet

Installation de « MvcScaffolding 1.0.9 ».
Installation de « MvcScaffolding 1.0.9 » terminée.
Set-DefaultScaffolder : Cannot get an instance of EnvDTE.DTE
Au niveau de E:\Visual Studio\ApplicationWeb\WebMVCApplicationKit\packages\MvcScaffolding.1.0.9\tools\init.ps1 : 47 Caractère : 22
+ Set-DefaultScaffolder <<<<  -Name Controller -Scaffolder MvcScaffolding.Controller -SolutionWide -DoNotOverwriteExistingSetting
    + CategoryInfo          : NotSpecified: (:) [Set-DefaultScaffolder], InvalidOperationException
    + FullyQualifiedErrorId : T4Scaffolding.Cmdlets.SetDefaultScaffolderCmdlet

Set-DefaultScaffolder : Cannot get an instance of EnvDTE.DTE
Au niveau de E:\Visual Studio\ApplicationWeb\WebMVCApplicationKit\packages\MvcScaffolding.1.0.9\tools\init.ps1 : 48 Caractère : 22
+ Set-DefaultScaffolder <<<<  -Name Views -Scaffolder MvcScaffolding.Views -SolutionWide -DoNotOverwriteExistingSetting
    + CategoryInfo          : NotSpecified: (:) [Set-DefaultScaffolder], InvalidOperationException
    + FullyQualifiedErrorId : T4Scaffolding.Cmdlets.SetDefaultScaffolderCmdlet

Set-DefaultScaffolder : Cannot get an instance of EnvDTE.DTE
Au niveau de E:\Visual Studio\ApplicationWeb\WebMVCApplicationKit\packages\MvcScaffolding.1.0.9\tools\init.ps1 : 49 Caractère : 22
+ Set-DefaultScaffolder <<<<  -Name Action -Scaffolder MvcScaffolding.Action -SolutionWide -DoNotOverwriteExistingSetting
    + CategoryInfo          : NotSpecified: (:) [Set-DefaultScaffolder], InvalidOperationException
    + FullyQualifiedErrorId : T4Scaffolding.Cmdlets.SetDefaultScaffolderCmdlet

Set-DefaultScaffolder : Cannot get an instance of EnvDTE.DTE
Au niveau de E:\Visual Studio\ApplicationWeb\WebMVCApplicationKit\packages\MvcScaffolding.1.0.9\tools\init.ps1 : 50 Caractère : 22
+ Set-DefaultScaffolder <<<<  -Name UnitTest -Scaffolder MvcScaffolding.ActionUnitTest -SolutionWide -DoNotOverwriteExistingSetting
    + CategoryInfo          : NotSpecified: (:) [Set-DefaultScaffolder], InvalidOperationException
    + FullyQualifiedErrorId : T4Scaffolding.Cmdlets.SetDefaultScaffolderCmdlet

Set-DefaultScaffolder : Cannot get an instance of EnvDTE.DTE
Au niveau de E:\Visual Studio\ApplicationWeb\WebMVCApplicationKit\packages\MvcScaffolding.1.0.9\tools\init.ps1 : 54 Caractère : 22
+ Set-DefaultScaffolder <<<<  -Name View -Scaffolder $viewScaffolder -SolutionWide -DoNotOverwriteExistingSetting
    + CategoryInfo          : NotSpecified: (:) [Set-DefaultScaffolder], InvalidOperationException
    + FullyQualifiedErrorId : T4Scaffolding.Cmdlets.SetDefaultScaffolderCmdlet

Ajout de « T4Scaffolding.Core 1.0.0 » à WebApplicationKit.
Ajout réussi de « T4Scaffolding.Core 1.0.0 » à WebApplicationKit.
Ajout de « T4Scaffolding 1.0.8 » à WebApplicationKit.
Ajout réussi de « T4Scaffolding 1.0.8 » à WebApplicationKit.
Ajout de « MvcScaffolding 1.0.9 » à WebApplicationKit.
Ajout réussi de « MvcScaffolding 1.0.9 » à WebApplicationKit.

ASP.NET Scaffolding Installation Conclusion

C'est difficile à dire ?! On dirait que certaines choses se passent @=+}}# Grrrrrrrr
Mais d'autres plantent ... Tentons d'utiliser le package.

Utiliser le module ASP.NET Scaffolding

J'ai le modèle données suivant :
Modèle de donner à Scaffolder
Je lance donc la commande suivante :

PM>Scaffold Controller FOPBooksController –force –DBContextType “ModelContainer”

Et j'espère voir les éléments se créer mais non, ça ne fonctionne plus ....

PM> scaffold controller FOPBooksController –force –DBContextType “ModelContainer”
Invoke-Scaffolder : Impossible de trouver un paramètre positionnel acceptant l'argument « FOPBooksController ».
Au niveau de ligne : 1 Caractère : 9
+ scaffold <<<<  controller FOPBooksController –force –DBContextType “ModelContainer”
    + CategoryInfo          : InvalidArgument: (:) [Invoke-Scaffolder], ParameterBindingException

    + FullyQualifiedErrorId : PositionalParameterNotFound,T4Scaffolding.Cmdlets.InvokeScaffolderCmdlet

MvcScaffolding 1.0.9 ne fonctionne plus

Cela ne fonctionne plus ! J'en était sûr, le module est encore là sur le site de nuget.org

https://www.nuget.org/packages/MvcScaffolding/

Mais plus rien ne fonctionne, pensez l'auteur n'a rien publié depuis Monday, October 08 2012.

Oups ! En y regardant de plus prêt si il y a MvcScaffolding 1.0.8-vs2013
...

MvcScaffolding -Version 1.0.8-vs2013 -Pre

Ben je vais essayer la commande :

PM>Install-Package MvcScaffolding -Version 1.0.8-vs2013 -Pre

Alors, mauvaise organisation du site ... perte de temps ? Certainement !?

Mais ça ne fonctionne pas mieux ! J'en était sûr des packages ne sont plus maintenus et c'est la cata. Je ne vous raconte pas comment VS s'est craché lors des multiples install uninstall de ce package. Franchement c'est pas pro, dommage.

Ne fonctionne pas non plus !

En cherchant un peu :

http://stackoverflow.com/questions/19081028/scaffolding-controllers-with-repositories-in-mvc5-ef6-visualstudio-2013

http://stackoverflow.com/questions/18727299/is-mvcscaffolding-compatible-with-vs-2013-rc-by-command-line

Plus de doute, cela ne fonctionnera plus ... snif !

Et en cherchant encore un peu plus 

J'ai exécuté la commande :
PM> Install-Package Microsoft.AspNet.Mvc.ScaffolderTemplates.AttributeRouting.CSharp

Conclusion

Le package Scaffolding est maintenant "build-in" dans le framework MVC, c'est à dire absorbé par Microsoft dans le framework.

C'est ce que l'on peut comprendre en lisant l'article suivant :

https://code.msdn.microsoft.com/MVC5-Demo-with-Entity-c6bc81df
ASP.NET MVC 5 – CRUD operations with Entity Framework 6 on Visual Studio 2013

La nouvelle commande magique se trouve maintenant (en français) dans :
Dans l'Explorateur de solutions->bouton droit sur le projet ou le dossier "Models" par exemple puis ->Ajouter->Nouvel élément structuré ...

Les Cookies - où se cachent-t-ils ?

Je voulais écrire un article sur les Cookies pour prendre quelques notes car ils reviennent en force dans tous les sites modernes. Longtemps délaissés pour des problèmes de sécurité, voici maintenant qu'un site qui utilise les cookies est obligé de vous prévenir ... c'est un comble mais bon, jouons le jeux c'est plus drôle ... que de critiquer ;)

Où trouver les Cookies dans les différents Windows ?

Sous Windows XP, on trouve les Cookies dans : C:\Documents and Settings\"UserName"\Cookies :
Ici, je m'appelle Mabyre :

Windows XP mes cookies en fichier .txt
Un cookie c'est donc un fichier caché, pour y accéder il faudra cocher la case "Afficher les fichiers cachés". C'est pour cela que la plus part de utilisateurs d'Internet ne le trouvent jamais.

Ça fait bien longtemps que je ne suis pas aller dans ce répertoire et je peux remarquer qu'avant Août 2011 j'ai des Cookies qui sont de la forme "UserName@DomaineName[n].txt" mais qu'après cette date, c'est plutôt une suite de lettres ou chiffres. Et l'on peut commencer à dire que le cookie est une petite saloperie intrusive. Dommage car au début c'est une simple information persistante, elle est nécessaire même pour l'utilisateur ;)

Mais passons au Code.

Cookies avec des valeurs multiples

Le DotNET framework à évolué et il est bon, de temps en temps, de lire de nouveaux articles, les codes ont souvent été simplifiés donc sur ce site Ici, on peut lire le code suivant de création d'un Cookie :

// Create Cookie with multiple values
//---- Method first
Response.Cookies["NameOfCookie"]["Name"] = "CodingFusion";
Response.Cookies["NameOfCookie"]["Age"] = "5";
Response.Cookies["NameOfCookie"].Expires = DateTime.Now.AddDays(1);

//---- Method second
//--- Create Cookie Object.
HttpCookie cookieObject = new HttpCookie("NameOfCookie");

//--- Add values to cookie in Key,Value format.
cookieObject["Name"] = "CodingFusion";
cookieObject["Age"] = "5";

//---- Set expiry time of cookie.
cookieObject.Expires.AddDays(5);

//---- Add cookie to cookie collection.
Response.Cookies.Add(cookieObject);

Tester, en C#, si le navigateur de votre visiteur utilise les Cookies

Sur le même site on trouvera l'article suivant :

Ajouter le Xaml dans la page :

<asp:label id="lblResult" runat="server"></asp:label>

Puis le code behind :

protected void Page_Load(object sender, EventArgs e)
{
    if (Request.Cookies["CheckCookie"] == null)
    {
        if (string.IsNullOrWhiteSpace(Request.QueryString["cookie"]))
        {
            Response.Cookies["CheckCookie"].Value = "Yes";
            Response.Redirect(Request.Url.ToString() + "?cookie=created", true);
        }
        else if (Request.QueryString["cookie"].Equals("created"))
        {
            lblResult.Text = "Cookies enabled?: No";
         }
    }
    else
    {
            lblResult.Text = "Cookies enabled?: Yes";
    }
}

Voilà, je tenais à garder une trace de ces codes pour mes prochains projets de développement ASP.NET qui auront besoin des cookies.

Les cookies sous Windows 7 - où se cachent-ils ?

Voilà une question qu'elle est bonne. Partie de de Windows XP, me voici maintenant sous Windows 7. Je vais chercher mes coockies quelque part dans : "C:\Users\". Mais qu'elle surprise je vois tout un tas de dossiers inaccessibles même en mode administrateur :

Windows 7 - Impossible d'accéder au Cookies ... ???
C'est vraiment génial. Avant, c'était un petit fichier texte ".txt"  dont ont maîtrisait le contenu. Tout le monde savait qu'ils existaient, on pouvait les supprimer simplement y écrire dedans. Maintenant à cause de ces imbéciles qui ne comprennent rien à rien, ils sont de mieux en mieux cachés pour que l'internaute moyen ne puisse pas les trouver !

Le plus impressionnant, c'est le répertoire que l'on ne peut "soit-disant" pas accéder :

Windows 7 - Vous n'avez pas le droit !
C'est énorme ! Je suis propriétaire de ma machine mais il y a des espaces mémoires qui me sont interdis. Un peu comme si vous achetiez une maison mais cette pièce là, derrière cette porte, vous ne pouvez y accéder !

Remarquez le bouton "Continuer", vous cliquez et vous y accédez. C'EST ÉNORME de bêtises !

Sous Windows 7 - C'est quoi les cookies ?

On aura compris que le traitement des "Cookies" est de moins en moins facile. Un partie de votre machine ne vous appartient plus. C'est un peu comme si les "Sites webs" s'appropriaient une partie de votre machine pour y stocker un peu ce qu'ils veulent et surtout de vos donnée personnelles.

J'ai créé ma propre application Web : WebMVCApplicationKit. Elle a créé un espace dans "Utilisateurs". Je vais essayer d'accéder aux cookies.

Je tente de cliquer sur le lien "Cookies" :

Site Web avec Cookies - Windows 7 Accès refusé.
Là encore, Windows 7 me refuse l'accès quand je que clique sur le lien "Cookies" !

Je vais un peu plus loin en essayant de modifier la sécurité du lien :

Windows 7 - Les Cookies - Compte inconnu
Impossible ! Par contre, je vois qu'un "Compte inconnu" accède à cette partie de mon ordinateur ! C'est un comble non ?

J'irai plus loin la prochaine fois.

J'ai fini par trouver les cookies de mon Windows 7

Evidemment bien sûr comme d'habitude, je fini par trouver la solution car je trouve toutes les solutions que je cherche, c'est une simple question de temps mais vous êtes comme moi très certainement un acharné et un passionné.

J'étais certainement un peu fatiguer ou un peu las de tout ça, j'avais oublié de cocher les cases :
Dans Options des dossiers... (cliquez sur "Alt" pour faire apparaître le menu)


Windows Menu Outils -> Options de dossiers (Alt pour afficher le menu)

Dans l'Onglet "Affichage" on trouve les options :


Affichez les fichiers cachés, décochez la case "Masquer les fichier du sys d'eploit." 
J'avais oublié de décocher la case "Masquer les fichiers protégés du système d'exploitation".

J'ai retrouvé les cookies dans :

C:\Users\Nom d'Utilisateur\AppData\Roaming\Microsoft\Windows\Cookies ...

Les cookies de Windows 7 n'ont pas beaucoup d'intérêt pour un humain !

Tout ça est maintenant plus ou moins crypté !

Cookies conclusion

L'évolution de l'utilisation des cookies c'est aussi l'histoire d'internet ... du bon mais du mauvais !
Nos ordinateurs ne nous appartiennent pas, en tout cas, pas totalement.

Les cookies sont considérés comme appartenant aux navigateurs ;)

C'est complétement CON car aujourd'hui les sites "Français" sont obligés par des imbéciles d'afficher l'utilisation ou non de Cookies. Alors que les autres n'y sont pas obligé et s'en moque éperdument.

RGPD mise à jour sur les cookies

C'est aujourd'hui la RGPD, chouette on va tous rigoler, je lis quelques articles intéressants et un concernant les cookies dont je prends note Ici.

WCF Services et Authentification

Comment gérer l'authentification dans les WCF Services ?

Au delà de la gestion de l'authentification dans une application web (ASP.NET), il faut bien un mécanisme pour gérer l'authentification dans les Services WCF (ou services web). Un mécanisme qui permette à mon WCF Service de dire si l'application cliente qui tente d'accéder au Service est autorisée à le faire ou non. 

Qu'est ce qu'il existe sur ce sujet dans le .NET ?

Exemples de code source 

Il existe quelques exemples de code, on se dirigera d'abord vers MSDN de Microsoft :

How to: Specify Client Credentials for a Data Service Request (WCF Data Services)
By default, the client library does not supply credentials when sending a request to an OData service. However, you can specify that credentials be sent to authenticate requests to the data service by supplying a NetworkCredential for the Credentials property of the DataServiceContext.

http://msdn.microsoft.com/en-us/library/gg258445(v=vs.110).aspx

Un peu complexe, non ?

Au début il y avait  :

Authentication and Authorization in WCF Services - Part 1
http://msdn.microsoft.com/library/ff405740.aspx

Prise en main des outils WCF Services

Pour utiliser correctement ces exemples, il faut prendre en main les outils : Client Test WCF et l'éditeur de configuration WCF.

Dans Visual Studio 2013 :

Editeur de configuration des services WCF
On y accède également par clique droit sur le fichier App.config :

Configuration des Services WCF
Si vous configurez correctement vos services WCF au lancement de l'application vous aurez "Client Test WCF" qui se lancera :

Au démarrage de l'application web lancement de Client Tests WCF
Voilà la prise en main est assez complexe, vous devrez également supprimer et refaire les références de services, c'est le petit jeu habituel. Le code gérer issu de projets déjà existant ne fonctionne bien évidemment pas sur votre machine il faut donc supprimer et recommencer.

Autres exemples d'authentification dans les WCF Services

On trouve également dans le CodeProject :

Custom Authorization in WCF

http://www.codeproject.com/Articles/33872/Custom-Authorization-in-WCF

WF_WCF_Samples

Le must have d'MSDN !
http://www.microsoft.com/en-us/download/confirmation.aspx?id=21459

Je me demande bien pourquoi ils sont mélangés les exemples WCF et WF (Workflow Foundation) !?

On finira par écrire le code suivant :

private void logInButton_Click(object sender, EventArgs e)
{
  proxy = new SecureServiceClient("WSHttpBinding_ISecureService");

  proxy.ClientCredentials.UserName.UserName = nameTextBox.Text;
  proxy.ClientCredentials.UserName.Password = passwordTextBox.Text;
}

Bref tout ceci ne fonctionne pas très bien à croire qu'il y a peut d'intérêt à authentification les application.net dans les WCF Sercices ou bien une autre hypothèse : c'est très complexe à mettre en oeuvre.

Il faut tout simplement mettre en oeuvre une communication simple par double clef de cryptage et donc il n'y a pas de mécanisme autre que Crypto à utiliser.

WCF Services avec un jeton d'encryptage customisé

Une autre piste à parcourir, c'est en anglais et c'est Ici.

Mais on est pas loin d'une mécanisme spécifique ... Spécifier l'authentification dans les WCF Services ce serait par exemple l'échange d'un message avec un contenu qui pourrait déterminer si l'application cliente est authorisée à accéder aux WCF Services.

Visual Studio Online

Création d'un compte Visual Studio Online

Lors de la création de votre compte d'utilisateur Visual Studio Online, on vous demandera de créer une url de la forme : xxx.visualstudio.com pour accéder à votre compte.

Création du compte Visual Studio Online effectué
Création du compte Visual Studio Online effectué : https://braby.visualstudio.com/

Une fois la création du compte Visual Studio Online effectuée : https://xxx.visualstudio.com/ il faut choisir un Gestionnaire de Version.

Git est un gestionnaire de version décentralisé créé par Linus Torvalds le créateur de Linux, il peut être utilisé avec Visual Studio.

Visual Studio Online, de toutes les façons nous n'avons plus le choix, il faut créer un compte outlook.com pour avoir accès à Visual Studio, autant profiter des avantages gratuits de VS Online ...

l'url de votre Visual Studio Online vous servira de Team Foundation Server dans Visual Studio.

Azure DevOps

Visual Studio Online est devenu VSTS (Visual Studio Team foundation Server) qui lui même est devenu Azure DevOps.

Visual Studio Online, Team Foundation Server, Azure

Avec Visual Studio 2013, on va pouvoir découvrir un nouveau mode de développement d'applications, un mode de développement directement dans le cloud (la plate forme Azure), un mode de développement réellement collaboratif, en équipe.

Tout commence à l'adresse suivante avec Visual Studio Online :

www.visualstudio.com


Visual Studio Online pour le grand public
Visual Studio Online pour le grand public
Puis vous cliquez sur le bouton "Version d'évaluation gratuite".
Si vous n'avez pas de compte vous devrez en créer un :
Visual Studio Online - Se  connecter
Visual Studio Online - Se  connecter

Une fois votre compte Microsoft créé, vous pouvez créer un compte Visual Studio Online :


Visual Studio Online - Créer un compte
Visual Studio Online - Créer un compte
Pour l'instant la suite se trouve en Anglais page suivante sur Channel 9, nous irons plus loin la prochaine fois.

http://channel9.msdn.com/Events/Build/2014/2-575

Have fun!