1

バックグラウンド

私は、ASP.NET バックグラウンドの 3 層アーキテクチャから来ています。レイヤーで単体テストを直接使用したことがありますが、レイヤーのモックを試みたことはありません。すべてのアプリケーションは EF Database First で開発され、別の POCO とインフラストラクチャ プロジェクトがアプリケーションの配管作業を処理します。開発されるアプリケーションは、小規模から中規模のものです。

これまでの進捗

ASP.NET MVC の学習を開始して以来、最初の質問の 1 つは、ソリューションのレイヤーを作成する方法でした。過去 15 日間、私はこの MVC プロジェクトと将来の MVC プロジェクトで学び、フォローするための優れたアーキテクチャを学び、探しています。私は次のアーキテクチャ パターン/サイトを調べましたが、それらが複雑すぎて自分の利益にはなりませんでした。主な懸念事項のいくつか

  • プロジェクトの複雑さを継承し、新しいプログラマーの作業を困難にします
  • 急激な学習曲線
  • 冗長な動作をテストするには、すべてのレイヤーの単体テストが多すぎます (マイナー)
  • 開発中のコンパイルが比較的遅い

私が試したサイト/プロジェクト

  • シャープな建築
  • タマネギのアーキテクチャ
  • 近くのディナー
  • プロジェクト SiLK (マイクロソフト)

主なジレンマ

  • これらのプロジェクトで最も一般的なのは、Repository Patterns and Dependency Injection (IoC) であることがわかりました。私はそれに反対するものは何もありませんが、プロジェクトを維持して理解するのは難しいと感じました. プロジェクトをテストするための適切な単体テストを備えた、いわゆる「密結合」を使用して、3層アーキテクチャでかなり大規模なプロジェクトを実行しました。これらがなければ、建築はうまくいくと思います。
  • TDD と DDD を重視
  • 疎結合の概念は拡張されています
  • パターンとしての MVC への関心を失い、他の部分でアーキテクチャを支配する

MVC プロジェクトに必要な、シンプルで理解しやすく、保守可能なアーキテクチャ

注: jimmy bogard のOrganizing ASP.NET MVC solutionsから、この優れた実装構造に出会いました。このトピックに関する提案をいただければ幸いです。

4

2 に答える 2

0

バックグラウンド

過去を振り返り、前向きに検討した結果、ASP.NET MVC WebAPI プロジェクトに Onion Architecture を使用することにしました。

このコースでは、新しい開発方法論とフレームワークについていくのに苦労していることに気づきました。事実は、3 層構造または同様の既存の構造に基づいて新しいアプリケーションを作成しようとしている人は誰でも、「手放して」新しい基盤を受け入れる必要があるということです。TDD や BDD などの新しい開発哲学の進歩は計り知れず、役に立ちます。

Web とサポートされているテクノロジは、私​​が知っているものとは異なります。真実は MVC であり、MVC WebAPI が開発されたのは、既存の Web フォーム フレームワークが新しい開発についていけなかったからです。

技術スタック

学習をやめて学習するには、時間と忍耐が必要でした。しかし、ついに私は新しいレベルに達し、主流の開発の流れに乗っていることに気づきました。以下は、私が採用した最終的なテクノロジー スタックです (順不同)。

バックエンド

  • ASP.net MVC WebPI
  • タマネギのアーキテクチャ
  • 最初にEFデータベース(私のプロジェクトに適していたため)
  • 汎用リポジトリ

フロントエンド

  • Bootstrap UI (UI デザイン フレームワークおよびスキップされた jQuery UI として)
  • Typescript (厳密に型指定された JavaScript の場合、プロジェクトに直接 JS はありません)
  • AngularJS (フロントエンド MVC として)
  • LESS CSS (堅牢で保守可能な CSS のため、プロジェクトに直接 CSS はありません)
  • Breeze.js (モデル バインディングと変更追跡用)

テスト中 - ファイナライズ中

上記に加えて、冗長なタスクを処理するために、一連の T4 テンプレートを使用および作成しました。私はそれをマスターすることをお勧めします。開発時間を大幅に短縮します。いくつかのツール、プロジェクト、およびテストについては、まだ考え中です。完了したら、最終的なスタックを投稿します。

上記のスタックは包括的に見えるかもしれませんが、保守性と応答性の高い Web アプリケーションを構築するために必要であることに気付きました。前述したように、時間はかかりますが、慣れてしまえば理にかなっています。注: とりわけ、AngularJS の学習曲線は非常に急勾配であり、使用するかどうかの決定を行ったり来たりしていることに気付くでしょう。しかし、それに固執してください。それだけの価値があります。

@Steven: リンクをありがとうございます。新しい Web の謎を解き明かすことは、私にとって本当に礎石でした。

于 2014-01-13T09:39:06.057 に答える
0

MVC プロジェクトに必要な、シンプルで理解しやすく、保守可能なアーキテクチャ

NidoFrameworkに行きます。それはまさにあなたが探しているものです。これは無料で、シンプルで、優れたアーキテクチャ パターンを備えた優れた設計のコード フレームワークです。

Nidoフレームワークは、あなたの要件に合わせて釘の頭を打つと言わなければなりません..

リンク: https://nidoframework.codeplex.com

NuGetからダウンロード

于 2013-11-29T02:53:04.077 に答える