
注意! NuGetのパッケージを更新しました。 詳細は記事の最後にあります。
Visual Studio 2013、ASP.NET MVC 5、およびEntity Framework 6のリリースにより、Visual Studioに組み込まれたスキャフォールド機能がさらに向上しました。 ただし、これまで、新しいWebアプリケーションを作成するには、自動化できる多くのアクションを実行する必要があります。
したがって、私と一緒に作業する開発者のために、Webアプリケーションをより効率的に作成できるX.Scaffoldingパッケージが作成されました。 現在、このパッケージに基づいて、データを操作するための新しいWebアプリケーションのほとんどを開発しています。
今日、私はこのプロジェクトをHabrahabrの読者と共有することにしました。 おそらくそれは誰かにとって興味深く、彼の仕事を手伝うように見えるかもしれませんが、誰か自身がその開発に参加したいと思うでしょう。
ご存じのように、Visual Studioには膨大な数の関数が用意されており、ルーチン操作を自動化し、メインタスクに集中することができます。 このような便利で十分に要求される機能の1つは、データベースエンティティの編集フォームを生成する機能です。 この機能はかなり前に登場しましたが、Visual Studio 2013のリリースにより、ベースアプリケーションテンプレートブートストラップへの統合がさらに便利になりました。 しかし、ご存知のように、限界に完全なものはありません。
パッケージを作成する理由の1つは、EditorForなどのさまざまな拡張メソッドによって作成された標準コントロールが、ブートストラップフレームワークの観点から完全に有効なコードを生成しないためです。 この結果、エディターのあるページはあまりうまく表示されません。 スタイルの手動編集を回避するために、カスタム拡張メソッドのセットも開発されました。
さらに、すべてのデータ型が標準の拡張機能でサポートされているわけではありません。 たとえば、今では多くのプロジェクトで、パッケージの機能を使用してHTMLエディター、カレンダー、ビデオプレビューを作成することがよくあります。
拡張機能
ライブラリの重要な役割は、HtmlHelperの拡張メソッドを含むExtensionsクラスによって果たされます。
- HtmlEditorFor -CKEditor 4に基づいたHTMLエディターを表示します
- DatePickerFor-ブートストラップスタイルのカレンダーを表示します
- FileUploadFor-ファイルをアップロードするアイテムを表示します。
- ThumbnailFor-イメージのブートストラップスタイルのprviewを表示します
- TextEditorFor-ブートストラップスタイルのエディターを表示します
- MultilineTextEditorFor-複数行のブートストラップスタイルのエディターを表示します
- EmailEditorFor -HTML5メールタイプのブートストラップスタイルのエディターを表示します
- VideoPlayerEditorFor -YouTubeまたはVimeoで公開されたビデオのフィールドにURLが書き込まれている場合、プレーヤーを表示します
すべての拡張機能の正しい動作を保証するために、いくつかのファイルがパッケージに追加され、Webアプリケーションの構造といくつかの依存関係にファイルが追加されました。 それらをより詳細に検討しましょう。
パッケージ構造
X.Scaffolding NuGetパッケージをインストールすると、次のような要素がWebアプリケーションに追加されます。

- コンテンツ\ global.css -Webアプリケーションの基本スタイルが含まれています( モダンUIが基礎として採用されました)
- Content \ scaffolding.css-ASP.NET MVC scaffoldシステムによって生成された個々のコントロールのスタイルを含む
- Scripts \ scaffolding.js-プラグインを初期化するためのWebアプリケーション全体に共通のスクリプトが含まれています
- ビュー\システム\ Login.cshtml-ログインページテンプレート
- Views \ _ViewStart.cshtml-プロジェクト内のすべてのビューのテンプレートを自動的に設定するページ
- favicon.ico-企業アイコン
認証モジュール
X. Scaffoldingパッケージによって直接追加されたファイルに加えて、他のいくつかのパッケージと関連ファイルもプロジェクトに追加されます。 それらをより詳細に検討しましょう。
NuGetプラグインパッケージ
- X.CKEditor -HTMLを編集するためのWYSIWYGエディター(CKEditorチームはバージョン4の公式NuGetパッケージをまだリリースしていないので、自分でやることに決めました)
- selected.jqueryは、検索を使用して美しく便利なドロップダウンリストを設計するためのプラグインです。 詳細は、 alizarの 記事に記載されています。
- Bootstrap Datepicker-ブートストラップスタイルの日付ピッカーを追加できるプラグイン
- Microsoft ASP.NET MVC 5-ライブラリは主にMVCの現在のバージョンを拡張するように設計されているため、このバージョンへのリンクが追加されました
- EntityFramework 6 -Entity Frameworkについても同じことが言えます
- Windows Azureストレージ -クラウドでホストされるWebアプリケーションでの作業を容易にする一連のライブラリ
- ブートストラップ3-このフレームワークを導入する価値はないと思います。特にVisual Studio 2013から起動済みのブートストラップパッケージで基本プロジェクトが作成されるためです。
- PagedList.Mvcは、リストを「ページ」に簡単に分割できるライブラリです。 テンプレートマークアップでページングを実装するためのスタイルとコードも含まれています。
- Microsoft jQuery Unobtrusive Validation- 「控えめな」検証のためのパッケージ。 彼についての詳細は、 Jutyの 記事で読むことができます。
今すぐ参加しよう!

誰もがライブラリのソースコードに精通し、その機能を拡張できます。
プロジェクトのソースコードはGitHubで入手できます 。
ヌジェ
NuGetリポジトリからパッケージをインストールできます
Install-Package xscaffolding
免責事項
ライブラリは主に独自のプロジェクトで使用するために作成されているため、使用する際に考慮すべき点がいくつかあるとすぐに警告します。
ただし、ライブラリのソースコードは現在公開されています。 さらに、ライブラリに十分な関心がある場合は、X.Scaffolding.Coreパッケージを作成する予定です。このパッケージでは、上記のパッケージへのバインドはなく、ファビコンもありません。
- ライブラリは、プロジェクトでASP.NET MVC 5バージョンとEntiy Framework 6バージョンを使用するように設計されています。
- パッケージをインストールすると、独自のファビコンがWebアプリケーションに追加されます(現在、パッケージのインストールのほとんどが独自のプロジェクトで実行されているため)
- インストール時に、WindowsAzure.StorageパッケージへのリンクがWebアプリケーションに追加されます。これは、Windows Azureで作業していない人にとっては冗長になる可能性があります
ただし、ライブラリのソースコードは現在公開されています。 さらに、ライブラリに十分な関心がある場合は、X.Scaffolding.Coreパッケージを作成する予定です。このパッケージでは、上記のパッケージへのバインドはなく、ファビコンもありません。
更新する
最初、NuGetのパッケージにはライブラリとデザインスタイルの両方が含まれていたため、2つの部分に分割することにしました。
- X.Scaffolding.Coreで 、基本機能(ライブラリ自体とASP.NET MVC 5の依存関係、js-libraries CKEditor、Bootstrapなど)を転送しました。
- X.Scaffoldingは、X.Scaffolding.Core、Entity Framework 6、Windows Azureストレージへの依存関係を追加し、モダンなUIデザインスタイルを保持します。
したがって、プロジェクトで追加のcssスタイルが必要ない場合は、 X.Scaffolding.Coreパッケージを使用できます。