1

私はプログラミング標準のトピックに関する地域について次の答えを読んでいました:

https://softwareengineering.stackexchange.com/questions/1338/worst-coding-standard-youve-ever-had-to-follow/1937#1937

私は@Cumbayahが言っていることに同意する傾向がありますが、コードを整理するためにリージョンに依存している場所が1つあることを認めなければなりません。これはGlobal.asaxにあり、ルートの長いリストをある程度読みやすくしています。

重要なのは、5〜10個のコントローラーがあり、それぞれにいくつかのルートがあり、特定のアクションメソッド用のものと、より一般的なものがあります。つまり、Global.asaxの単一のメソッドで定義された約30,40,50のルート定義について話しているのです。今のところ、コントローラーごとに異なる#Regionsに分割して、少し整理していますが、確かに悪臭があります。これを行うためのより良い方法はありますか?

4

4 に答える 4

4
  1. 正午に、エリアの使用を検討してください

  2. eglasiusに従って、ルート登録の懸念事項をglobal.asax別のファイルに移動することを検討してください。RouteInitialiserこれを行う1つの方法については、「WhoCanHelpMe」サンプルアプリケーションのクラスを確認してください。

  3. Steve Hodgkissのrestful -routingのものhttp://github.com/stevehodgkiss/restful-routingのように、より優れたルート登録APIを採用して、ルート構成をドライアップすることを検討してください。

  4. 汗をかかないでください。コントローラーがたくさんある場合は、ルートもたくさんあります。それを回避することはできません;)

ああ、そして5)あなたの地域を取り除きなさい。

于 2010-09-12T02:03:59.910 に答える
2

エリアに加えて、コントローラーごとに5〜10個ある場合、何が問題になっていますか。

ConfigureAccountControllerRoutes(routes);
ConfigureSomeOtherControllerRoutes(routes);

または、現在のプロジェクトのように、global.asaxでもなく、ルートの構成専用のクラスにあります。これは最近、ルートとエラーログ以外の何かを行うためにglobal.asaxが必要になり始めたときに導入されました。

于 2010-09-12T01:18:59.430 に答える
1

いわゆる「エリア」を調べてみたいと思います。コードをセグメント化して、推測したとおり、エリアに分割し、ルーティングやその他のアイテムを指定できるようにする必要があります。

于 2010-09-12T00:22:19.833 に答える
0

これは私が使用する簡単なハックです:

次のように、コントローラで静的関数を作成してルートを設定するだけです。

public static void SetRoutes (ref RouteCollection routes)
{
    routes.MapRoute(...);
}

次に、これを関数から呼び出しますRegisterRoutes()。これは事実上重要なことは何もしませんが、多数のルートの保守が容易になり、コントローラーごとにルートをグループ化できます。

于 2010-09-12T13:02:51.763 に答える