asp.net mvc アプリケーション用に Facebook スタイルの「新着情報」ビューを作成したいと考えています。
これにより、次のようなコンテンツが生成される可能性があります...
* Ciaran sent a message to The Rise and Fall of the Rockets
* Rick is going to Songs for the bathtub on Thursday, 28 June 2009
* Col became a fan of The Rise and Fall of the Rockets
* Leeroy posted Busk To Beat Cancer
* Tom went to HMV Showcase on Friday, 19 May 2009
彼は現在私の頭の中にあるアプローチです....
これらの各項目は、さまざまな種類のコンテンツを表しています。
たとえば、ギグ、ニュース、コメントなど
各コンテンツ タイプは、ギグ、ニュース、コメントなど、異なるデータベース テーブルに保存されます。
アプリケーションに新しいコンテンツが追加されたとき (たとえば、ニュース記事が作成されたとき)、「WhatsNew テーブル」に追加のエントリを作成する予定です。</p>
表 1: 新着情報
id、contentId、createdDate
表 2:
ユーザー ID、コンテンツ ID
ユーザーがコンテンツを閲覧すると、表 2 にエントリが追加されます (ユーザーの ID とコンテンツ)。
上記のビューは次によって作成されます。
1) 作成日順に並べられた、特定のログイン ユーザーのテーブル 2 にエントリがない WhatsNew テーブルから contentIds を返します。
次に、newsManager、gigsManager などに、これらの ID に基づいて要約コンテンツを提供するように依頼します。contentids は GUID であり、テーブル間で衝突が発生しないと想定しているため、異なるタイプのコンテンツを表している場合でも、すべての ID を渡すことができます (データベースは 1 つしかありません)。あるいは、ある種の弁別器を使用することもできます....
すべての集計オブジェクトは ISummary を実装し、特注のデータを含めることもできます。これで、ビューに渡すリストができました…</p>
各要約タイプには、それをレンダリングする方法を知っている部分ビューがあります。特定のアイテムをレンダリングするために使用される部分は、集計タイプに基づいて選択されます.. (リストにはさまざまな種類の集計が含まれることに注意してください….
WhatsNew テーブルに実際には「リックは 2009 年 6 月 28 日木曜日にバスタブで歌に行く」などの見出し文字列を含めたくないことに注意してください。
これらの生成方法を変更します。つまり、ユーザーの場所に応じて異なる言い回しをする可能性があります。
日付などを国際化する
また、これは、見出しを生成した newsManager/gigsManager が Web サイトのルーティングに関する知識を必要とすることも意味します。
たとえば、「リックは 2009 年 6 月 28 日木曜日にバスタブで歌を歌う予定です」という見出しには、複数のリンクが含まれています。
考え?これは理にかなっているように見えますか?気持ち悪い。