Need architecture suggestion

S

Steve B.

Hi,

I'm planning to build a small application that can manage and share
favorites as a self learing app. I'd like your inputs to help me correctly
design the application.

The goal of the app is to help the user to keep its favorite, and share
favorites between other users (corporate favorites).

The application should be able to "query" several types of sources : File
Share, SharePoint list (mysite for per user favorite or any wss list for
shared favorites), RSS feed, xml file... The sources should be shipped as
plugin in order to help extending the application.

The application should also have different destinations : file on the
computer, Ie favorites folder (a folder too) and mozilla firefox bookmarks
file. The destination should also be shipped as plugin, in order to support
adding new "destination".

I'm not asking how to connect to source and destinations, but how I have to
"organise" my code.

I'm thinking about something like this (the requirement of the app can be
..Net 3.0):

- I create a Core library that define the interfaces for both sources and
destinations
- I create some basics classes that implements theses interfaces in
separates assemblies
- I create an "host" application that can load at run time the pluggins
selected by the users using reflection and appdomains
- The host application will wait for any source to give a new item to add.
- This host application then will "send" the item to all destinations

So these interfaces are defined :

IEndPoint :
ICredentials Credentials { get; set; }
UseDefaultCredentials {get; set;}

IStore : IEndPoint {
ItemCollection GetAllItems();
ItemCollection GetItemsAddedSince(DateTime dt);
event ItemAdded;
}

IDestination : IEndPoint {
AddItem(Item newItem);
Uri destinationUri { get; set; }
}

Do you think I'm on the right way ?

I think something is missing : the configuration. I suppose I can rely on
the settings class for each store and destination, and for the list of
pluggin to load.

Thanks in advance for the help.

Steve
 
K

Kevin Spencer

Hi Steve,

You're already doing the right thing by thinking out the design of your
application, so that is encouraging!

However, there is a problem with your request for advice. You started out by
saying that you want to be able to share "favorites." Now, "favorites" have
a definition in Microsoft terms, and that is an Internet Shortcut (*.url)
file. All Favorites are Internet Shortcut files. So, when you talk about
being able to "query for several types of sources" you are not making sense,
as all Favorites are of the same type (Internet Shortcut file).

So, can you be a bit more clear about your requirements?

--
HTH,

Kevin Spencer
Microsoft MVP
Professional Chicken Salad Alchemist

What You Seek Is What You Get.
 
S

Steve B.

Ok sorry if I was not clear.

The term "Favorite" is for me on couple of Description/Url value whatever
the storage format, then sources do not need to contain .url files.
A favorite can actually be extracted from a .url file, a link item in a WSS
link list or anything else that can can store desc/url values...

Destinations have the same requirements... the destination plugin has the
responsibility to store the favorite in its own format (.url for IE,
bookmark.html for FireFox, etc...)


Steve
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top