当需要从不同的数据源(如文件、Web服务、数据库和内部对象)来收集数据、把它们当作一个具有一致性的数据集时,微软建议你使用集合程序块(Aggregation Application Block)。
你可以在这里免费下载集合程序块。在安装了这个软件包之后,你需要载入该项目,并用Visual Studio .NET 2002(或者2003)或者命令行编译器来构建这个块。这个块使用了例外管理程序块(Exception Management Application Block),它包含在项目文件之中。如果你想在某个项目中使用这些块,你必须在该项目的Reference目录下为/bin目录下的.dll文件添加引用(reference)。最后,你还需要一个包含所有对文件和表单的引用汇总,其格式如下:
Using Microsoft.ApplicationBlocks.Aggregation;
让它工作
我们通过一个例子来看看这些块是如何工作的。我们的例子向销售员提供其营销区内所有城市的天气状况。在这个例子中,我将使用一个叫着Northwind的例子数据库。所收集到的信息格式如下:
ClientWeather{
SalesPerson,
City,
Country,
Weather}
我最少需要两个数据源才能得到所有信息:首先是Northwind数据库。其查询如下:
SELECT DISTINCT
Employees.FirstName + ' ' + Employees.LastName AS FullName,
Customers.City,
Customers.Country
FROM
Orders
INNER JOIN
Customers ON Orders.CustomerID = Customers.CustomerID
INNER JOIN
Employees ON Orders.EmployeeID = Employees.EmployeeID
ORDER BY
FullName,
Customers.City,
Customers.Country
然后,我们需要一个可以根据城市和国家得到天气信息的Web服务,如Cape Clear.com的GlobalWeather。你可以在这里访问到该服务。
现在,我们已经得到了这些城市的天气报告。我们可以用一个foreach语句块来查找到某个城市的天气预报。
