Archive for the ‘.NET’ Category

Hold the Phone

Thursday, April 3rd, 2008

I jumped the gun on announcing my ‘Grom’ project. I realized today that my side projects are getting in the way of more important things.. namely my health. In an effort to get myself back into shape I decided to put all my little endeavors on hold for a while. Rather than leave a barely begun project on CodePlex I’ve decided to remove it for now.

Grom, SweetNES

Monday, March 31st, 2008

If anyone still reads this or is following the SweetNES project I regret to inform you that the project is dead. I’ve taken the most recent code and archived it on my personal storage should I every decide to return to it. I think my goals on the project were just a little too lofty.

The good news, however, is that I’ve started a new project that I call Grom. It is a text editor control.

(more…)

The SweetNES Project

Saturday, October 27th, 2007

SweetNES (pronounced “sweetness”) is my new pet project. It is an 8-bit Nintendo Entertainment System® emulator. Ya, the old one from 1985. For some reason I’ve always enjoyed that original Nintendo. Call it nostalgia, but there was something so entertaining about those first games that I still find many of them just as enjoyable to play now as I did then.

I’ve been throwing around the idea of writing my own emulator for some time now. As far back as two years. A question that I’ve asked myself many times and that readers may be asking now is “Why make another emulator when there are already so many available?” I assure you it’s not because I have an ego and think that I can do it better than anyone else has ever done. In fact I usually work on projects that teach me new skills and that’s a primary reason I’ve decided on this project. I’ve always found the principles of emulation fascinating. I’m comfortable with the fact that SweetNES may never gain widespread popularity.

(more…)

Open Source .NET?

Tuesday, October 23rd, 2007

I just read that Microsoft intents to release most of the .NET Framework as open source. The complete text of the article can be found at the link below. This would be fantastic! It would also make my .NET debugger project Clutch almost worthless. One of the big goals I had for Clutch was to be able to debug IL, or at least a decompiled representation of IL. The intention was to allow debugging of not only personal code but also the ability to drill right into the base class libraries and windows forms code. Microsoft’s announcement makes it sound like they’ll also be shipping .PDB files with debugging information and symbols. While this is great news, it also means that I’m officially shelving my Clutch project for the time being.

Resources:

Update [11/5/2007]: As it was pointed out to me, Microsoft will not be looking for community contributions and so the term “open source” is a bit misleading. At this point they only intend to make the source code available for viewing and debugging purposes and all future development will still be handled by Microsoft.

Gap Buffer Article

Wednesday, October 17th, 2007

Remind me never to write a technical book, because the amount of time and energy necessary for me to write a single technical article is tremendous. At the pace at which I work it would easily take me ten years to finish. My newest foray into the world of publications is an article entitled Generic Gap Buffer. This one deals more in the realm of computer science than anything else I’ve written recently. I won’t spoil it for you and suggest that you just take a look for yourself.

Resources:

Multiple File Upload

Thursday, September 13th, 2007

I’ve always found it unpleasant when I have a number of files to upload and the website I’m at only allows one file upload at a time. If you have multiple files to process it can seem like an eternity. Just ask my wife when she’s uploading all those family photos to her blog.

One possible solution is to place several file input controls on the page (say five) thereby reducing the number of roundtrips to the server, but that is still an artificial limit. What I wanted was a control that would dynamically allow any number of files to be uploaded all in one shot. Something that would increase usability and not take away from it.

Here’s what I came up with:

Multiple File Upload

(more…)

Tabs with a ToolStrip

Thursday, August 30th, 2007

Tabs XP Style

Tabs Classic Style

I’ve been working on a little text editor project recently and wanted a tabbed list of documents (ala Firefox). I found a couple free solutions on the web including a project on The Code Project, but I thought I could do one better. It occurred to me that it wouldn’t take much work to customize a ToolStrip to look and behave like tabs. Why make my own tab control when there already exist one you ask? Call me picky, but I’ve never like the TabControl that ships with .NET. I find it a little clunky. I also don’t like the look of the tab pages or that I have to place everything I want in the tab within a tab page. What I wanted was a control that was just the tabs and would let me decide what to show based on the tab selection events, and not the extra bloat that goes along with the TabControl. Yes I could just reduce the size of the TabControl so that only the tabs were showing but I’m not comfortable with the idea of hiding a big portion of the control just to show the part I wanted.

I’m happy to report that my little experiment is working perfectly! After setting a number of built-in properties on the ToolStrip and ToolStripButton to make them behave a little more like tabs it was simply a matter of creating a custom ToolStripRenderer to give it the appearance of tabs. That was also a breeze using the VisualStyleRenderer to give them the XP theme style of tabs.

(more…)

SystemParameters

Friday, June 29th, 2007

It takes time getting used to a new framework like WPF. The other day I was looking for system information similar to what the System.Windows.Forms.SystemInformation static class provided in Windows Forms. It took a little looking, but the equivalent WPF object is the System.Windows.SystemParameters class. It has all the same goodness that you would expect, like ScrollWidth and MenuBarHeight and some new things like IsTabletPC. I should also point out that there are similar classes for fonts and colors called System.Windows.SystemFonts and System.Windows.SystemColors respectively.

(more…)

Clutch

Tuesday, June 19th, 2007

Clutch

Clutch is my new pet programming project (say that five times fast). It’s an IL level .NET debugger, or at least it will be when it’s finished. It’s the result of the research I’ve been doing in IL and why I’m looking for information about writing debugging tools. The screenshot above is really just for kicks. I thought it would be funny to post the first ever screenshot of the program so that when it’s up and running in a year or so I could look back and laugh. It’s very incomplete right now, but can at least start a new process and list the modules and namespaces that are loaded into memory. It’s not much, but doing even something as simple as that is a pretty big learning curve when you’re working with the Unmanaged API.

(more…)

Where is the “Tool Developers Guide”?

Tuesday, June 5th, 2007

As I mentioned in a previous post, I’ve been studying IL recently and I’m exploring the idea of writing some .NET reversing tools. In my searching I’ve seen many people reference documents in the Tool Developers Guide found in the SDK (usually at: C:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\Tool Developers Guide”. However, when I browse my local copy of the SDK, I’m greeted with only a single file “Readme.doc” of which this is the entire contents:

The material that previously existed in this location have been added to the SDK documentation, as whitepapers on MSDN or moved to another location in the SDK.

• ECMA Partition documents are located at http://msdn.microsoft.com/net/ecma/default.asp
• asmparse.grammar was moved to ..\include\asmparse.grammar

(more…)