Click here to Skip to main content
15,885,546 members
Articles / Programming Languages / C#
Article

Info.NET, the way to collect and organize your data on the side of your screen, similar to Dashboard on MSN 8

Rate me:
Please Sign up or sign in to vote.
3.77/5 (13 votes)
8 Dec 20024 min read 158.9K   3K   103   38
This application provides the underlying framework to create your own panels on this side bar, and then freely distribute it to your own audience. Included in the existing application are the following panels: Stocks, Internet search, Weather, News, Dictionary, Sports, and Messenger.

Sample Image - screen.jpg

Introduction

Our life is surrounded by data. For example, your calendar, events, appointments, special dates, current projects, job data, friends, family, books, research, and anything in between. It is getting to point that it is uncontrollable. One cannot finish jobs by their priority because knowledge and data are continuously flowing in. There must be a solution. There is, but it is currently in MSR (Microsoft Research), still being developed. In the mean time, there must be an application to organize data, but in a way that is always accessible. Enter Dashboard in MSN 8, and Side Bar in Longhorn. The only problem is that Dashboard is part of a parent program, and Side Bar is long from materializing, besides in beta groups. Even when Side Bar is released, it still will not be open to third party development. These problems and more were my primary motivations in writing this program.

For now, I only have written panels (or a tile, depending on your preference) that are most commonly used: Stocks, Internet Search, Weather, News, Dictionary, Sports Scores and Messenger contacts. My goal is to develop a tile for every piece of information that would ever be wanted in this format. This is where everyone else come in. Use this as a framework, and then go develop your own panels, ones that more accurately present your interests. Then, go and distribute this program. Don’t just give this to the development community, but give it to your friends, family, and coworkers. Anyone is a worthy candidate for data organization. I mean anyone. For example, say your company likes stocks, but they also need a way for people to easily grab documents over the network. Well, get rid of all the panels except for stocks, and then write your own panel to show and easily enable workers to distribute files over the network. You are not only limited to these panels, or even any of these at all. Write all your own. As I said, the framework is in place. All that is needed is creativity. Then come and post your new panels to this web site and spur more innovation.

New Panels

  • 12/11/02
    • Longhorn Clock

      Longhorn clock.jpg

      Developer - EDM Software

      This is a beautiful mixture of the .NET image power and the elegance of timepieces.

Enter the programmer

You may be wondering how you can develop you own panels. What you put on the panel is totally up to you. This gives the freedom to accomplish the most challenging presentation. In order to develop an application, all you must do is create a class that inherits from Dashboard.Windows.Forms.CollapsiblePanel, as in such:

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

Inside the class, there are some functions that should be implemented in all panels. For example, a constructor that accepts the variable of type PanelSettings, which will pass the panel variables. Further, there is an override function that is called when the program is exiting, and basically you put any class of data in the PanelSettings.classobject and then the program will automatically take the PanelSettings class and serialize it, unto which it gives it back when the constructor is called. The specific function for saving functions is called PrepareSettingsObject. Examples of constructor and destruction are followed:

C#
/// <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;
}

Besides this, all you need to supply is a small XML file that describes important DLL data, and then it can be installed easily. Here is a sample file called newsinstall.xml which is used to install:

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>

The common points of interest are:

  • GetPanel – A function in the class which returns the class object or this identifier. This function is imperative, or else the panel will not work.
    C#
    /// <summary>
    /// Method exposed for reflecting type.
    /// </summary>
    /// <returns></returns>
    public Dashboard.Windows.Forms.CollapsiblePanel GetPanel ()
    {
        return this;
    }
  • SystemType – The exact namespace and class of the panel class, including the name of the DLL in which the panel is in. As in this example: Dashboard.Components.News, Components.

    Dashboard.Components is the namespace, and News is the class name. Components is the name of the assembly.

Documentation

As of now, there is no supporting text for features or an SDK. But, in time, I plan to write something similar. If you would like to help, please go ahead.

Works Cited

I would graciously like to thank the following:

Feedback

The reason many of Microsoft applications succeed is because the product is supported by the developers. The same holds true; without you, there is no program. Therefore, to make this program work to the greatest benefit, you must make panels. Ones that interest you. I will be developing many more panels and will update this page as they become available, so check back. Further, I would be more than happy to hear feedback concerning the application, bugs, or need-to-be features.

Updates

  • 12/10/02
    • News item for Health News is fixed
    • Stock Reader fixed
  • 12/12/02
    • Internet search
    • Dictionary word of the day

License

This article has no explicit license attached to it but may contain usage terms in the article text or the download files themselves. If in doubt please contact the author via the discussion board below.

A list of licenses authors might use can be found here


Written By
Web Developer
United States United States
I attend Midland High School in Midland Texas. My current research interest is the architecture of the file system for Windows. Some of the features that are going into Longhorn I have been thinking about for a while, but there is still much more to do in order to distibrute content seamlessly. In order to increase productivity by a factor of one thousand, it only takes a couple of redesigns. The materials to build the product are available; all that is needed is the builder. To redesign the file system to this degree would be a huge undertaking, but the rewards would be Incomprehensible. The professional and personal sources come together to form a partnership that neither could provide alone. But, everyone has data to offer. It is just a matter of uncovering that data and distributing it. The file system then turns the personal computer into the personal enterprise server. In result, this is a world driven on knowledge and information; all that is needed are the data facilities which enable the greatest amount of portability and compatibility. Finding the data that is needed, when it is needed, and where it is needed on any device, anywhere, any time. This is the goal. This is software. This is Microsoft.

Comments and Discussions

 
Generalrealize this article is quite old but.... Pin
codegalaxy1-Jun-07 8:11
codegalaxy1-Jun-07 8:11 
QuestionPlan to add Flyouts too ? Pin
navinmishra6-Nov-03 10:35
navinmishra6-Nov-03 10:35 
AnswerRe: Plan to add Flyouts too ? Pin
navinmishra6-Nov-03 11:50
navinmishra6-Nov-03 11:50 
GeneralRe: Plan to add Flyouts too ? Pin
raffa27-Nov-03 8:14
raffa27-Nov-03 8:14 
GeneralLanguage interpreter panels Pin
Keith Farmer16-Apr-03 12:38
Keith Farmer16-Apr-03 12:38 
GeneralMSN Messenger.. Pin
riddler18-Dec-02 4:32
riddler18-Dec-02 4:32 
GeneralRe: MSN Messenger.. Pin
Ryan Dawson18-Dec-02 8:02
Ryan Dawson18-Dec-02 8:02 
GeneralC# Docking.. Pin
riddler17-Dec-02 11:27
riddler17-Dec-02 11:27 
GeneralRe: C# Docking.. Pin
Ryan Dawson17-Dec-02 12:07
Ryan Dawson17-Dec-02 12:07 
GeneralWeather pannel Pin
orcas12-Dec-02 14:05
orcas12-Dec-02 14:05 
GeneralRe: Weather pannel Pin
Ryan Dawson12-Dec-02 14:21
Ryan Dawson12-Dec-02 14:21 
GeneralRe: Weather pannel Pin
orcas12-Dec-02 14:41
orcas12-Dec-02 14:41 
GeneralRe: Weather pannel Pin
Ryan Dawson12-Dec-02 15:12
Ryan Dawson12-Dec-02 15:12 
The messenger panel loads the contacts that are online when the program starts.

As far as rebuilding. I suppose you are using visual studio.NET. Correct? You should not have to mess with any of the xml files. All you have to do is select the debug menu, then click Start. If you are not using VS.NET, please post back.

Ryan Dawson
GeneralQuestion about the Non-Everett one... Pin
Daniel Bright12-Dec-02 8:38
Daniel Bright12-Dec-02 8:38 
GeneralRe: Question about the Non-Everett one... Pin
Ryan Dawson12-Dec-02 13:24
Ryan Dawson12-Dec-02 13:24 
GeneralThanks Pin
elnino11-Dec-02 7:19
elnino11-Dec-02 7:19 
GeneralRe: Thanks Pin
Ryan Dawson11-Dec-02 10:57
Ryan Dawson11-Dec-02 10:57 
GeneralSimple (1 line) TODO Pin
elnino11-Dec-02 11:55
elnino11-Dec-02 11:55 
GeneralRe: Simple (1 line) TODO Pin
Ryan Dawson11-Dec-02 13:50
Ryan Dawson11-Dec-02 13:50 
GeneralVS.NET 2003 Beta Pin
micjohnson11-Dec-02 3:59
micjohnson11-Dec-02 3:59 
GeneralRe: VS.NET 2003 Beta Pin
Ryan Dawson11-Dec-02 10:55
Ryan Dawson11-Dec-02 10:55 
Generalwhy .net sdk 1.1 Pin
Kannan Kalyanaraman10-Dec-02 18:28
Kannan Kalyanaraman10-Dec-02 18:28 
GeneralRe: why .net sdk 1.1 Pin
Ryan Dawson11-Dec-02 3:25
Ryan Dawson11-Dec-02 3:25 
GeneralCannot load .sln solution file after installing .net sdk 1.1 Pin
NelsonKL10-Dec-02 14:14
NelsonKL10-Dec-02 14:14 
GeneralRe: Cannot load .sln solution file after installing .net sdk 1.1 Pin
Ryan Dawson10-Dec-02 14:56
Ryan Dawson10-Dec-02 14:56 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.