在ASP.net MVC健全性检查中,Facebook风格“最新消息”

时间:2009-06-05 13:07:02

标签: asp.net-mvc facebook feeds

我想为我的asp.net mvc应用程序创建一个Facebook风格的“whats new”视图。

这可能会生成诸如......

之类的内容
* 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表”中创建一个额外的条目

表1:WhatsNew

id,contentId,createdDate

表2:

userId,contentId

当用户查看了一段内容时,表2中添加了一个条目(用户ID和内容)。

上面的视图是由:

创建的

1)从WhatsNew表中返回contentIds,该表没有表2中针对特定登录用户的条目,按创建日期排序。

然后我问我的newsManager,gigsManager等根据这些ID给出摘要内容。我可以传递所有ID,即使它们可能代表不同类型的内容,因为contentids是guids并且我假设我不会在我的表中遇到任何冲突(我只有一个db)。或者,我可以使用某种类型的描述符......

所有摘要对象都实现了ISummary,也可能包含定制数据。所以我现在有一个List,我将其传递给一个视图...

每个摘要类型都有一个部分视图,它知道如何呈现它。将根据摘要类型选择用于呈现特定项目的部分..(请注意,列表将包含不同类型的摘要...。

请注意,我不希望WhatsNew表格实际上包含标题字符串,例如“Rick将于2009年6月28日星期四进入浴缸的歌曲”,因为这将使其难以

  1. 更改我生成这些内容的方式 - 也就是说,根据用户的位置,我可能会对它们进行不同的说明。

  2. 国际化日期等。

  3. 这也意味着说生成标题的newsManager / gigsManager需要有关网站路由的知识..

    例如标题为“Rick将于2009年6月28日星期四前往浴缸的歌曲”中包含多个链接!!

    思考?这看起来合情合理吗?感觉好奇。

1 个答案:

答案 0 :(得分:-1)

我会跳过表格。

询问各个部分的最新内容,并显示前15名或其他内容。每个部分都将实现一个界面,用于显示消息的数据,并可在运行时计算。是的,我会将ID用于所有内容 - 而不是生成的标题/消息。

除非您将这些标记为每个用户阅读/查看,否则我也不会打扰用户内容关联表。