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

Info.NET,一种在屏幕侧边收集和组织数据的方式,类似于 MSN 8 上的 Dashboard

starIconstarIconstarIcon
emptyStarIcon
starIcon
emptyStarIcon

3.77/5 (13投票s)

2002年12月9日

4分钟阅读

viewsIcon

161125

downloadIcon

3003

此应用程序提供了创建您自己侧边栏面板的基础框架,然后可以自由分发给您的受众。现有应用程序中包含以下面板:股票、互联网搜索、天气、新闻、字典、体育和 Messenger。

Sample Image - screen.jpg

引言

我们的生活被数据包围。例如,您的日历、事件、约会、特殊日期、当前项目、工作数据、朋友、家人、书籍、研究以及介于两者之间的任何内容。情况正变得难以控制。由于知识和数据不断涌入,人们无法按优先级完成工作。必须有一个解决方案。确实有,但目前它还在 MSR(Microsoft Research)中,仍在开发中。在此期间,必须有一个应用程序来组织数据,并且始终可以访问。MSN 8 中的 Dashboard 和 Longhorn 中的 Side Bar 就是例子。唯一的问题是 Dashboard 是一个父程序的一部分,而 Side Bar 距离实际可用还很遥远,即使在测试组中也是如此。即使 Side Bar 发布了,它也不会对第三方开放。这些问题以及更多问题是我编写此程序的主要动机。

目前,我只编写了最常用的面板(或磁贴,取决于您的偏好):股票、互联网搜索、天气、新闻、字典、体育比分和 Messenger 联系人。我的目标是为这种格式中可能想要的每条信息开发一个磁贴。这就是其他人可以介入的地方。以此为框架,然后去开发您自己的面板,更准确地呈现您的兴趣。然后,去分发此程序。不要只把这个给开发社区,而是给您的朋友、家人和同事。任何人都是数据组织的有价值的候选人。我是说任何人。例如,假设您的公司喜欢股票,但他们还需要一种方法,让人们可以轻松地通过网络获取文档。那么,去掉所有股票以外的面板,然后编写您自己的面板来显示并轻松启用员工通过网络分发文件。您不仅限于这些面板,甚至可以完全不使用这些面板。全部自己编写。如前所述,框架已经就位。唯一需要的是创造力。然后来这个网站发布您新开发的面板,激发更多的创新。

新面板

  • 12/11/02

程序员入门

您可能想知道如何开发您自己的面板。您在面板上放置什么完全取决于您。这为您提供了实现最具挑战性呈现的自由。要开发一个应用程序,您只需要创建一个继承自 Dashboard.Windows.Forms.CollapsiblePanel 的类,如下所示

public class News : Dashboard.Windows.Forms.CollapsiblePanel
{
    // ...
}

在类中,有一些函数应该在所有面板中实现。例如,一个接受 PanelSettings 类型变量的构造函数,它将传递面板变量。此外,还有一个覆盖函数,在程序退出时调用,基本上您可以将任何类的数据放入 PanelSettings.classobject 中,然后程序会自动获取 PanelSettings 类并将其序列化,在调用构造函数时将其返回。用于保存功能的特定函数称为 PrepareSettingsObject。下面是构造函数和析构函数的示例

/// <summary>
/// Constructor
/// </summary>
public News (PanelSettings ps)
{
    Initialize(ps);
}

/// <summary>
/// Records the variables for save.
/// </summary>
public override void PrepareSettingsObject()
{
    nsc.updateInterval = this.updateInterval;
    nsc.rotateSpeed = this.rotateSpeed;
    this.SettingsObject = (object) nsc;
}

除此之外,您只需要提供一个小的 XML 文件来描述重要的 DLL 数据,然后就可以轻松安装。这是一个名为 newsinstall.xml 的示例文件,用于安装

<?xml version="1.0"?>
<Dashboard>
    <gUID>news1.01</gUID>
    <invokeMember>GetPanel</invokeMember>
    <name>News</name>
    <titleText>News</titleText>
    <systemType>Dashboard.Components.News, Components</systemType>
</Dashboard>

共同的关注点是

  • GetPanel – 类中的一个函数,它返回类对象或 this 标识符。此函数是必需的,否则面板将无法工作。
    /// <summary>
    /// Method exposed for reflecting type.
    /// </summary>
    /// <returns></returns>
    public Dashboard.Windows.Forms.CollapsiblePanel GetPanel ()
    {
        return this;
    }
  • SystemType – 面板类确切的命名空间和类,包括面板所在的 DLL 的名称。例如:Dashboard.Components.NewsComponents

    Dashboard.Components 是命名空间,News 是类名。Components 是程序集的名称。

文档

目前,没有支持功能或 SDK 的文本。但随着时间的推移,我计划编写类似的东西。如果您想帮忙,请随意。

引文

我非常感谢以下人员

反馈

许多 Microsoft 应用程序之所以成功,是因为产品得到了开发者的支持。同样,没有你们,就没有这个程序。因此,为了使此程序发挥最大效益,您必须创建面板。选择您感兴趣的面板。我将开发更多面板,并在它们可用时更新此页面,所以请回来查看。此外,我非常乐意收到关于应用程序、错误或需要的功能的 反馈

更新

  • 12/10/02
    • 健康新闻新闻项目已修复
    • 股票阅读器已修复
  • 12/12/02
    • 互联网搜索
    • 每日字典词
© . All rights reserved.