1

ASP.NET で Web 開発プロジェクトを開始すると同時に、CodeSmith 5.2 のコピーを獲得できたので、この 2 つを組み合わせることにしました。

サイトは、検索/ドロップダウン タイプの動作のために JSON ベースの要素 (jQuery または ExtJS のいずれか、まだ決定していません) を利用する必要があります。

少し読んだところ、循環参照などに関する netTiers での JSON シリアル化に関する一般的な問題がいくつか見られます。

したがって、デフォルトで netTiers、CSLA、NHibernate、KineticFramework、または PLINQO を選択できるようです。

以前にnetTiersを使用しました。

私が欲しいのは、いくつかの指針です:

準拠コードを生成するのに最も簡単なフレームワークと、それを機能させるためにデフォルト設定またはテンプレート自体にどのような調整を加える必要があるか。

4

1 に答える 1

2

私はしばらくの間ExtJでnetTiersを使用しており、エンコード中に循環参照に問題があるのは事実ですが、エンティティ全体を返すことはめったになく、エンティティデータのサブセットを返すことがうまくいくことがわかります。C#を使用します。次に例を示します。

UserAccountService uaSvc = new UserAccountService();
UserAccount ua = uaSvc.GetByUserId(UserId)[0];
return Json(new { success = true, data = new { ua.UserName, ua.CustomerName, ua.Email } });

UserAccountServiceとUserAccountは、CodeSmith netTiersテンプレートを使用して生成されたサービスとエンティティであり、Json()return関数はMicrosoftのMVCの一部です。MVCを使用していない場合は、 Newtonsoftなどの別のエンコーダーに置き換えることができます。

これにより、次のようなJSONが返されます。Ext.jsはこれを簡単に消費できます:

{"success": true, data:{"UserName":"Knight", "CustomerName":"Knight Inc.", "Email":"knight@knightknight.com"}}

データのリストまたは配列を返すこともできます。以下では、Linqを使用して非常にコンパクトな方法でデータを取得します。

return Json(new UserAccountService().GetAll().Select(u=>new  {u.UserID, u.UserName}));

これにより、次のようなデータが返されます。

[{"UserName":"Knight", "CustomerName":"Knight Inc.", "Email":"knight@knightknight.com"}, {"UserName":"George", "CustomerName":"George Inc.", "Email":"george@george.com"}]

ご覧のとおり、準拠JSONはnetTiersクエリ結果から簡単に作成できます。私はnetTiers以外のテンプレートを使用していませんが、同じような道をたどると思います。

于 2011-04-11T13:54:16.003 に答える