65.9K
CodeProject 正在变化。 阅读更多。
Home

Web RSS Builder 第二部分:ASP.NET 应用程序

starIconstarIconstarIconstarIconstarIcon

5.00/5 (1投票)

2010 年 10 月 29 日

CPOL

3分钟阅读

viewsIcon

22446

对开源 Web RSS 生成器的描述

引言

Web RSS Builder 是一款用于使用 Web 和 Silverlight 界面管理 RSS 文件的开源应用程序。当您需要使用 Web 应用程序管理服务器上的 RSS 文件时,此应用程序非常有用。

该应用程序托管在 CodePlex 上,网址为 http://WebRSSBuilder.codeplex.com

这是三部分文章的第二部分,将介绍此应用程序

ASP.NET 界面

此应用程序将使用前面描述的核心组件来提供用于管理 RSS 文件的 Web 界面。首先,我们来看一下主页面的小型网站地图:

  1. 首页:查看用户负责的文件
  2. 查看 RSS:负责查看特定的 RSS 文件
  3. 管理 RSS 文件
  4. 管理角色
  5. 管理用户角色
  6. 管理用户

优先级是前三个,因为 ASP.NET 提供了 Web 界面来管理后三个,但仍然,将它们全部包含在同一个 Web 应用程序中会更好。

查看 RSS 网页

此网页将用于查看和编辑 RSSFeed 对象,因此将使用对象数据提供程序将 RSSFeed 对象绑定到 ASP 控件。对于 XML 数据源,通常我们可以使用 ASP.NET 附带的 XMLDataSource,我出于几个原因使用了对象数据源:

  1. 更简洁:从工程角度来看,将 UI 与应用程序逻辑解耦非常重要。使用此类控件会鼓励不良做法,因为您将不再拥有关注点分离,视图(网页)将包含业务逻辑。我猜微软在 XAML(WPF 和 Silverlight)和 ASP MVC 中的举措清楚地表明了一种负罪感。现在,他们正试图鼓励开发人员开始以不同的方式思考,并劝阻他们使用易于使用的拖放式数据源,这些数据源的初衷是为了让他们的生活更轻松,但从长远来看只会让事情变得更困难,应用程序难以测试和维护。
  2. 能够在不同的视图中重用绑定逻辑,这让我们回到第一个原因。

构建用于 RSS 文件的对象数据提供程序

现在,我们必须构建一个对象数据提供程序,它将封装核心组件提供的功能。对象数据提供程序应具有五个主要方法:Get、Get All、Update、Delete 和 Add。因此,我实现了 RSSObjectDataProvider,该类将使用 RSSFeedXLinqController 来加载和保存 Feed 对象。该类包含:

  1. 暴露 Feed 对象属性的伪属性
  2. 使用 RSSFeedXLinqController 的加载和保存方法
  3. CRUD 方法,这些方法实现起来很简单,直接反映在通用 RSSItem 列表上的这些操作

此提供程序的代码非常简单。就是这样。

#region Object Data Provider CRUD Methods

[DataObjectMethod(DataObjectMethodType.Select)]
public ObservableCollection GetAllItems()
{
   return this.Feed.Items;
}

[DataObjectMethod(DataObjectMethodType.Select)]
public RSSItem GetItem(String id)
{
  for (int i = 0; i < Feed.Items.Count; i++)

  if (Feed.Items[i].Title == id)

      return this.Feed.Items[i];

  return null;

}
...

网页

查看 RSS 网页

网页包含绑定到数据提供程序属性的 Textbox、一个 Datagrid 和一个包含 RSS 项描述 HTML 编辑器的详细信息视图,该编辑器直接绑定到数据提供程序。我试图使代码隐藏尽可能少,但仍然需要将 Feed 的 URL 提供给对象数据提供程序,该 URL 将从会话变量中获取。我还缓存了对象数据提供程序以提高性能。此页面和整个应用程序使用 AJAX 来提供更好的用户体验,所有这些控件都嵌入在 UpdatePanel 中。

管理页面

至于其他网页,例如管理文件和管理角色,它们都使用 LinqDataProvider 完成,该提供程序使用从相应数据库表中生成的 Entity Framework 数据上下文。

下一篇文章

在下一篇文章中,我们将介绍 Silverlight 应用程序,它将提供与此应用程序在 Silverlight 中相同的功能。

你喜欢这篇文章吗?

如果你喜欢,请投票支持它。:)

© . All rights reserved.