.NET - project ideas (a bit off-topic)

  • Thread starter Piotrek Stachowicz
  • Start date
P

Piotrek Stachowicz

Hi,
Sorry, it's gonna be a bit off-topic but I'm looking for experienced
..NET (c#) developers and I guess there're quite many here.
I'm looking for a topic for my final year project (B.sc). It has to do
with .NET and preferably something with network programming (webservices)
I'd like to learn something interesting and practical as well. Have you
got any ideas?!

Thanks,


Piotrek
 
N

Nick Malik [Microsoft]

not quite sure what kinds of projects you did for your Junior year, so I
don't know the level you are at.
Can you give us some ideas of projects that were considered acceptible in
the past for this kind of effort?

(also: any constraints that we may not know of, rules you have to follow in
choosing a project...)

--
--- Nick Malik [Microsoft]
MCSD, CFPS, Certified Scrummaster
http://blogs.msdn.com/nickmalik

Disclaimer: Opinions expressed in this forum are my own, and not
representative of my employer.
I do not answer questions on behalf of my employer. I'm just a
programmer helping programmers.
 
G

Garry Freemyer

Ok, I guess I'll bite. I image this doesn't have to be a unique project does
it?

1. Forum server where a user could setup a forum. You could have little ads
on the side.

2. Remote data strongbox. What that is, is a service where a person can
upload files to somewhere, and there would need to be a kind of encryption
involved using a keythat the user recieves via email. The files have a
lifetime of X hours, and the service charges X per hour of storage per
megabyte, or a flat rate per month.

3. A mail client plug in that could be inserted between a standard email
client and the internet or intranet that would weed out emails based on
language set. No chinese, no korean, no this no that, you could even have it
work both ways in that it might only allow emails with chinese in, or
doesn't allow engish email in. Now, pictures and stuff might be a problem
oh well.

4. A homeforum client and server. What this would do is use emails as a
medium for a forum that is stored on a home system that would look like a
real forum but is email based, it would request an xml file containing
forums subscribed to and articles by number, and then send them what is new.
If a user wished they could have the option to drop what was there. The
email subject would have to be prepended by a special series of characters,
that would be used to alert the client that this is a forum email and to
download it and add it to the database. This way, a person could set up a
forum with a small group of friends and be able to chat with them rather
than having a machine actually acting as a full fledged web server. Emails
requesting articles could be recieved and responded to.
 
P

Piotrek Stachowicz

Well, I've been doing some programming in .NET for a while
- ASP.NET (forums, heavy ADO.NET & XML use)
- desktop applications (some utilities e.g. editors for proprietry file
formats,fancy database interfaces)
- some fairly basic webservices ( providing processed data from SQLServer)

As for past projects, they were usually focused on algorithms rather than
"technology", we had things like:
pattern(images) recognition, applications of travelling salesman
algorithms,compilers etc.
I think there was also editor for .chm files.

I'm looking for something different though. I'd like a project solving some
more-or-less real-life problem, involving rather advanced .NET programming.
.. Something which would make me read quite a lot on .NET /windows/web
designing (UML) etc.
Maybe a distributed applications involving webservices, MSMQ, asp.net, t-sql

I have 6 months to complete the project.

Thanks,
Piotrek
 
N

Nick Malik [Microsoft]

If you like web services, you may be interested in a project that explores
the underlying reason for distributing a system in the first place: to
reduce complexity while enabling collaboration between applications.

You know that UDDI is a mechanism for systems to register the web SERVICES
that they provide. How about a system to register the web EVENTS that
applications can provide and to distribute those events to subscribers.

So your system exposes web services that do the following:
--- return the list of events that can be subscribed to. (Initially empty)
--- allow a system to subscribe to the event, and provide a mechanism for
the event to be sent to the system
--- allow a system to register a set of events that it will provide and info
on each event (for the first call to return).

Then, when an event comes in, the system will determine who subscribed to
it, and will dispatch the event to the subscriber.

Sound easy? Consider this:
-- What if system A wants to subscribe to events that occur, but system A is
not online when the event occurs? How can you make sure that system A gets
the event?
-- What if a malicious user creates a system to send "false" events that
look like an event that system A cares about? How do you insure that system
A doesn't get the false event message?
-- The events from any system must be XML documents. However, they can be
different documents for each event. Should you validate that the event is
valid by checking against a schema? (Schema provided by the publishing
system when they register the event).
-- What happens when your server goes down? Are any undelivered events
lost? They shouldn't be.
-- How would you scale? Can you set up a mechanism for this app to
communicate with another version of itself running on another server? I.E.
a mechanism for all messages to be sent to another system that asks for "all
events"? How would you share the catalog of events? What if these systems
don't have access to the same database server?
-- How do you insure that a message is sent once-and-only-once to a
recipient? Do recipients send acknowledgements? What do you do if your app
sends a message downstream that the downstream app returns a SOAP exception?
Do you send it again? Can you provide options? Can the app be taken down
and brought back up (presumably after it is fixed), and then subscribe to
the event that failed in addition to any other events it missed along the
way?

You can take this from the simple all the way to the very very very complex.
Your project would not only need to create this middleware component, but
also a couple of "test harness" mini-apps to consume the web services and
demonstrate that a message is sent from the publisher, via the event
dispatcher, to only those apps that choose to subscribe to the event.

This is an excellent introduction to the key concepts of systems
integration, SOA, middleware technologies, and the fundamental concepts
behind brokers. There is a lot of very well paid work in this area, and a
huge gap in understanding of these key concepts, making people who know this
stuff pretty valuable.

Good luck,
--
--- Nick Malik [Microsoft]
MCSD, CFPS, Certified Scrummaster
http://blogs.msdn.com/nickmalik

Disclaimer: Opinions expressed in this forum are my own, and not
representative of my employer.
I do not answer questions on behalf of my employer. I'm just a
programmer helping programmers.
 

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