.comment-link {margin-left:.6em;}
My Photo
Name:
Location: Unspecified, Mauritius

I too, am a bug within Māyā.

My Other Blog(s) and Site(s)
Friend sites and blogs
My Recent Posts
Tutorials
Best Articles
My C-Sharp Ideas
Archives
Blog Directories

Sunday, July 24, 2005

 

An Interesting C# Project

Missing the good ol' DOS console?
Let's revive the past!

I'm pretty nostalgic of MS-DOS... I was quite young when I first saw and used MS-DOS, which came with Basic. I used to copy examples from a Basic book, and then test them. That's when I began coding. I was five years old.

Languages have greatly evolved since Basic. C, C++, Pascal... and many many others. We're at a time when it'd take only a few months to develop a *really* cool console. However, when I say "cool", I don't mean a console using a single line Edit box, and a Multi line Edit box with a background on it. Hell, no.

I want a simple console, which is displayed on a real .Net console, with only a few inbuilt commands. The console would have a "Commands" directory, which would contain compiled .Net assemblies. The console, upon starting, would reflect inside of those dll's, and list out the commands available within them.

Of course, all commands would have to implement a "Command" interface, with an Execute method, which would accept as parameters an array of string (the list of arguments which the command should process), a Help method accepting a string as parameter and returning a string (which would provide help on a certain parameter), and a Description read-only property.

Does that sound too ambitious?

There are loads of problems that might arise during development of such a program. For example: what happens if there are two commands of the same name that exist?

Example:
Search.dll implements a Delete command
Files.dll Implements a Delete command

Could this issue be solved just like .Net deals with ambiguous names?

Does Search.Delete "expression" sound weird? Hmmm... it's something to look into. But for the moment, let me try to reflect inside assemblies, which aren't my own programs. That might be useful.


Comments:
You should try the Monad command shell:

http://channel9.msdn.com/wiki/default.aspx/Channel9.MSHWiki
 
Post a Comment



<< Home