私は現在、ASP.NT MVC RC1を使用して基本タイムシートアプリケーションを実装しています。私はDRYの原則に従いたいと思いますが、ある特定のケースでは難しいと感じています:ロジックがC#とJavascriptの実装を必要とするときにDRYを維持するには?
私の意見の1つは実際には部分的な見解で、特定のタスクに費やされた時間数1日のテキストボックス。最初にページをロードするときに、ビュー内のテキストボックスにその時間の合計を表示する必要があります。さらに、テキストボックスの値を変更すると、その合計が更新されます。テキストボックスの更新では、完全なポストバックは発生せず、結果に何も作用しないAJAXポストバックのみが発生します(ポストバックはDBの値を更新しますが、ActionResultの戻り値はEmptyResultです。 UI)。
現在、私はコントローラーにそのビューの「合計」が設定されているビューを作成するので、すべての値を追加するロジックはC#コントローラーになります。 UI側では、UIレベルで合計を更新するjavascriptがあります。しかし、これは良いことではありません。私はその合計が計算される方法の背後にあるロジックを変更すると、2つの場所でそれを変更する必要があるからです! AHH!乾燥しないでください!
どうすればいいですか?これまでの私の唯一の答えは、UIの合計を計算し、AJAXポストバックにそのビューの新しい「合計」を返すようにJavaScriptコードをスクラップすることです。
他の方法はありますか?
* *は法律ではなく指導原則です。両方のロジックを必要とし、同じ実装を共有することは技術的に実現可能ではない場合は、2回実装する必要があります。タフ運、それは人生です。 ;) – jalf
@ jalf:正確に。 A(any)ガイドラインは、破棄不可能な法則ではありません。 – Richard
OK、記載済み、変更済み) –