Do these Sun guys (McNealy, Gosling, et al) really think baseless jabs at .NET do anything to help their cause? These constant barbs, which almost always lack substance, surely can't be helping Java's cause.
McNealy calls .Net a 'joke' [news.com]
Paul Thurrott has posted a nice review of the latest leaked Longhorn build. In one of the screen shots I noticed a breadcrumb bar in Windows Explorer. It looked like a good idea, so I took a couple hours and wrote one to see if it was something that was actually useful. I'm not sure yet.
(Click here for the whole picture)
Essentially, you get a typical breadcrumb trail of the ancestors of the current folder, which you can click on to go directly to that folder. In addition, you can click the arrow, which presents you with that folder's siblings. Clicking on a sibling brings you to said folder.
If anyone would find this useful, please let me know and I'll wrap it up and post it.
Someone asked for the source to the sliver.Net assembly, so I've posted it below:
You know it had to happen sooner or later -- MSDN now has a sample aggregator app. Hopefully this will inspire someone to write a really nice aggregator. (I still haven't found one I want to use full time and won't have the time to write one in the foreseeable future.)
Building a Desktop News Aggregator [MSDN]
Don Box's Spoutlet
I thought I'd give the Google web service API thing a go and added a search feature to the blog. If anyone's interested in how I did this, let me know and I'll post instructions.
Wow, what a great find. Anyone that's built distributed applications using COM+ (or God forbid, MTS) knows what a pain debugging, distribution, etc. is. The benefits unquestionably outweigh the headaches, so it's a necessary evil.
V1.1 of the framework running on Windows Server 2003 lets you interact with Enterprise Services without having to create COM+ packages/applications and so on..it's a huge step up. Basically, you enter and leave contexts by calling ServiceDomain.Enter() and ServiceDomain.Leave(). Beautiful!
For a nice, quick overview, check out the following article
COM+ 1.5, Services Without Components [Early & Adopter]
Has anyone checked this out? Could be promising...
by way of Windows Developer News [Chris Sells' blog]
So I've done hundreds of Windows installs over the years (I've been beta testing Windows since Win95) and never had a problem with data loss. There's a first time for everything. While installing XP Pro on a "new" hard drive in my main system, somehow my old drive got formatted. (Of course user error is out of the question!) I didn't realize this until I booted into the new install, went to my old C: drive to get my source files and it was clean as a whistle. My heart sank and I felt slightly nauseated.
Remembering I did a quick NTFS format in setup, I hoped that whatever killed my drive didn't destroy the files as well. I searched google for a data-recovery tool and tried the first hit. It didn't find anything. I tried the second and third and fourth, all of which linked to the same program as the first. Very sneaky Google-manipulation by those folks. I finally found a few other tools and they gave the same results: Nothing.
I back up my My Documents folder every night @ 5am to an external drive, so most of my really important stuff was safe. Unfortunately, I still had things from my desktop, temp folders, etc. which I had been working on the past few days that I didn't have in source or in the My Documents folder and would be out a few days work if I couldn't get the data back. After getting the same results from those 3-4 programs, I decided to give up and just deal with the loss. Then I remembered that just prior to installing the new version of XP, I had moved all of my old, archived files (things back to '95) to that drive from an external drive. If I didn't recover that drive, I would lose years and years worth of files.
I gave it one last google and found File Scavenger 2.1. I ran it and it found 192,572 files. Joy! I purchased it and restored everything that was of value -- about 3G worth of stuff. A few files didn't make it, which you'd expect, but by and large it has really saved my butt. And it's only $40!
So, long story short, back up everything you don't want to lose (which seems like a no-brainer, but usually isn't) and if the worst happens, check out this program.
I whipped together a little util a few weeks ago whose source might be useful for someone that's new to reflection or using the property grid.
The util itself simply lists all of the static members of ControlPaint and a property grid. (ControlPaint paints everything you need to draw controls: parts of controls, resize handles, etc.) You select a method, fill in the parameters in the property grid and it paints the control based on your input. I found this necessary because I wanted to see all of the possibilities and hand-coding them would've taken too long. (And I needed to get some experience using the property grid with more than simple binding.)
For reflection, I'm inspecting members and parameters, then invoking methods using parameters taken from the property grid.
For the property grid, I created an object that implemented ICustomTypeDescriptor, which gives you complete control over what is displayed in the property grid. This is great to have when you want to do more than simply display the "real" properties of an object. Using this approach, that one class can appear to have an unlimited number of properties, all of different types and whatnot. Rather than binding your objects directly to the property browser, you can use this object as a sort of proxy and show whatever you want in the property grid.
I'm fairly certain not everyone is hip to this, so hopefully this is helpful. Contrary to what VS.NET says, you can rename source controlled VS.NET files w/o losing history, but it takes a few steps:
- Exclude the file to be renamed from your project.
- Rename the file.
- Rename the file in VSS.
- Re-add the file to your project.
The same applies to moving files; you just need to remove the file from the project, move locally and in VSS, then re-add.