tags:

views:

239

answers:

5

I like my learning projects to also be useful. If not to me then to somebody around me.

What are some good projects I could code using WCF (to learn it) that I will be able to put to use for myself, or for someone or some organization I may know?

What I am not interested in tutorials, or books on how to learn it.

Thanks.

A: 

Whilst not answering your question I would strongly recommend that you have a look at a number of sample applications developed by the IDesign team who is headed up by Juval Lowy http://www.idesign.net/idesign/DesktopDefault.aspx?tabindex=5&tabid=11. The IDesign guys provide lots of sample applications and know the inner workings of WCF better than most.

Good luck learning WCF as there is quite a lot to it.

Kane
A: 

Well, what about a WCF-based FTP server of sorts?

You could expose one or several directories on a server via a webservice, create operations such as:

  • list contents of a directory
  • get all the details for a given file
  • upload a file
  • download a file

You could use regular endpoints for the listing / details operations, get to know how to deal with streamed transfer on uploading and downloading files, and you could possibly also expose the informational methods (list contents and file details) using REST (WCF: webHttpBinding).

Marc

marc_s
I didn't down vote you. but I wonder if there is something I could do that woudl be of more practical use...?
Alex Baranosky
Sorry for the down vote. Here is my reasoning. The most important use for WCF is to essentially replace asmx Web Services for SOA initiatives. The application you suggested would be PERFECT if you wanted to learn how to integrate WCF with Biztalk (WCF is the primary mechanism for creating Biztalk adapters). Also, the REST support for WCF is...well...lacking. You'll initially use WCF "soapfully" before you'll ever use it "restfully". It's always a good point to understand how WCF will interact with a database (which may or may not be needed given your application). Hope that helps.
Amir
That and a great FTP implementation already exists...the FTP protocol ;-)
Amir
@aikr473: sure - FTP already exists. I just imagined this could be a fairly flexible, easy enough to understand project, which would show off a lot of the various features of what you can do in WCF (buffered vs. streamed message transfer, REST etc.)
marc_s
@aikr473: downvote seems a bit harsh for this....
marc_s
+1  A: 

A useful project would be a user interface to edit/create new definitions for quantitation modes and peptide modifications for MSQuant (open source project). The definitions are in XML format and a 7-zip compressed sample is availaible. The application would read the definitions and write them out again after editing.

Here is a sample XML definitions file (7-Zip'ped).

Peter Mortensen
+3  A: 

-----Recommendation:
Hate to say it, but I used to do the "kill two birds with one stone". You'll find that it's too hard to do. You'll spend countless hours learning the technology and making a lot of mistakes/lessons learned. You may end up with a useful app...but it wont be as "pretty" as you'd like it to be and you'll end up wishing you could rewrite it. Especially if you are trying to learn WCF, there is so much to the technology....either way.....here is an app:

-----Application
I did a WCF chat application. I created a web version (thin client) and a WPF version (thick client). By doing the chat application:

-----Thin Client web app
teaches you how WCF works with ajax
teaches you how to use the BasicHttpBinding
teaches you how to host WCF in IIS
teaches you about how WCF will scale given multiple users
teaches you "pull" architectures

-----Thick Client Winforms/WPF app
teaches you how WCF works in a thick client (duh)
teaches you how to use a Duplex binding
teaches you how to host you WCF app in either a windows service, console app, or IIS7
gives you insight on security/firewall requirements when dealing with thick clients
teaches you "push" architectures
gives you insight on thread safety when dealing with OneWay calls

-----How to make it useful
It would be great if there was a "plug-able" chat application out there that I could put on my websites. You can provide it as a service to other developers.

-----Books (even though you don't want it)
Intro book:
http://www.amazon.com/Learning-WCF-Hands-Michele-Bustamante/dp/0596101627

Advanced book:
http://www.amazon.com/Programming-WCF-Services-Juval-Lowy/dp/0596521308/ref=sr%5F1%5F1?ie=UTF8&qid=1253113250&sr=1-1-fkmr0

Amir
Well I also find it more personally enjoyable to make something knowing I will actually do something with it. Even if that "something" is pretty simple, as long as it is of SOME use, I feel much more motivated to code.
Alex Baranosky
A: 

Any project that involves out of process communication would be good, especially if multiple carriers would be a benefit, for example, start with inter-process communication on one machine with named pipes, then ramp up to TCP communication between two clients on the same network, then perhaps more sophisticated transports.

Some great ideas would be:

  • Anything client/server (chat application has already been mentioned here)
  • A program to execute certain tasks remotely (like a server monitor/commander)
  • Cache management (allow several servers in a web farm to coordinate with each other on how they manage their web caches, refresh a cache entry on one server and send messages so that it's refreshed everywhere, etc.)
  • Silverlight applications that talk to a server, like a browser-based game
David