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é ...