Click here to Skip to main content
15,940,550 members
Please Sign up or sign in to vote.
4.33/5 (2 votes)
See more:
Hello community, I am a basic c# programmer. I am constantly faced with the task of checking accounts on a very regular time interval.

Where would be a good place to start to build a program that I could 'plug in' to my accounts;
or any generic account that I want to track activity from;
and implement a 'desktop' or even tray icon alert system that would notify me of any messages, paypal transactions, emails, or any activity changes etc..

Is that possible to do client-side? Where would I even start with this, has anybody else done it?

Thanks for your feedbacks -
Updated 25-Nov-13 19:12pm
Sergey Alexandrovich Kryukov 25-Nov-13 20:57pm    
I voted 5 for this little question, as it raises big problems.

A good place to start would be to look up any available public API's for each service you want to manage. Then you create small test programs that communicate with the API's, after you have each one working, start stitching them together.

There are tutorials out there on how to make a tray application, just search google for something like "C# Tray Application".

You can also look at doing plug-in type applications, I would recommend Mono.Addins, but if you are really ambitious then you can try using MEF.
Share this answer
Sergey Alexandrovich Kryukov 25-Nov-13 21:00pm    
Not as easy, I think. You touch some secondary issues involved, but there are much more difficult ones. Please see my answer...
Ron Beyer 25-Nov-13 21:12pm    
Not too horrible either, at least with the listed services. Google releases most of their API's as a downloadable C# library. Paypal has an extremely well documented API, and GMail is just SMTP which is built into .NET. Depending on how much interaction is needed it shouldn't be that hard to communicate with those services.
Sergey Alexandrovich Kryukov 25-Nov-13 21:20pm    
It depends how you count the degree of horror... In almost all cases, this is still polling. :-)
Would be a pretty good idea… At least, I can see some considerable value in it, but… Unfortunately, in general case, and, even more unfortunately, in most cases, this is impossible to have notifications on the client side. Why? In a few words: domination of client-server model, lack of server push, lack of publisher-subscriber model.

For some background, please see:[^],[^],[^],[^],[^].

Well, yes, on client side you still could resort to client polling of all the services, but this approach, being popular enough, is so disgusting that I don't want to discuss it. I think this approach is clear enough, especially if you read the articles referenced above.

Some thoughts:

A while ago, even the client-server approach, especially in database management field, was perceived as revolutionary and progressive by many naive users and developers, if not the most of them. The effect of the contrast with the nightmare of before-networks and file system based products has played its role. Even though the draconian limitations of client-server/pull technology was quite apparent to those who could really think, as well as the absolute feasibility of more comprehensive technologies, not many listened to the voice of the reason. And now, such think where the lack of server push because nearly 100% apparent, because it hurts even the very basic needs, such as reasonably designed chat application, people come back to server push or publisher-subscriber, feeling much more resistance due to standards and technologies created by inertia of thinking (and even such things as firewalls). Any example of such workaround? This is a pretty striking one:[^],[^].

Share this answer
Ron Beyer 25-Nov-13 21:12pm    
All good points, +5.
Sergey Alexandrovich Kryukov 25-Nov-13 21:19pm    
Thank you very much, Ron.
Abhinav S 25-Nov-13 22:51pm    
Sergey Alexandrovich Kryukov 26-Nov-13 0:05am    
Thank you, Abhinav.
Explore web sockets and way to implement them.
This could provide you with a platform where you can implement a publish - subscribe mechanism.
Share this answer

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900