Along with garbage collection, another element of the .NET wave that I always thought wasn't entirely thought out, and perhaps rushed to market, was .NET Remoting. There are just so many things about it that seem wrong (not the least that it has a relatively short lifespan before it is superceded by Indigo), and it seemed to be a downgrade from the so-called .dll hell of DCOM/COM+. Not only was it lacking many of the historic enterprise features of COM+ (even seemingly critical features like native authentication and encryption), but the performance was deficient compared to legacy communications technologies, and little quirks like each channel being unidirectional just seemed absurd.
Thankfully, the performance issue has been improved dramatically for same-machine communications with the addition of a new communications channel called IpcChannel. Using classic named-pipes, IpcChannel has demonstrated dramatic speed improvements even over the binary TcpChannel. If you've properly configured remoting declaratively in your config file, it's a simple change to switch to IpcChannel where both ends of the conversation exist on the same logical machine. IpcChannel even lets you specify an Access Control List (ACL) to limit who can connect, which makes sense as authentication and authorization is a native feature of named pipes.
Couple this with the new, easy to use authentication and encryption of .NET Remoting in 2.0 and it has turned into a pretty nice out-of-the-box solution.
Microsoft to Release New Developers Tools (AP). AP - Microsoft Corp. is releasing several new tools to help developers build software applications that work with its online search and communication products. [Yahoo! News: Technology News]
Fascinating seeing competition changing the marketplace. A year or so ago I considered some business ideas that were heavily dependent upon the ability to map data through some sort of web GIS. At the time you could either buy a very expensive product that you ran on your own servers, serving rather craptacular raster graphics, or you could sign-up for MapPoint Web Services (MWS). MWS was very expensive (I can't remember the details, but I believe it was something like $50,000 up front, and then a considerable per transaction fee - considerable relative to the extremely low yield of most web ventures, though it would have been very worthwhile for many internal asset tracking style apps). I abandoned the idea as it was too speculative.
Of course now countless sites are popping up utilizing Google Maps as their GIS back-end system. That seems like a very tenuous decision to me (at least until Google figures out their mapping revenue model), but the result is some outstanding graphical mapping apps that look spectacular and respond fantastically. I find it remarkable that Google Maps offers a more responsive (and more aesthetically pleasing) experience than running a thick-client MapPoint app locally.
This isn't a very hardcore developer tip, but it can significantly affect productivity and communications: Learn how to type properly.
A good portion of two-finger typists, when advised to do this, will reply that they can type faster than any "formal" technique already, often referencing dubious online tests that affirm their mastery (claiming some ludicrous number to go along with their 170 IQ). It's highly unlikely - not impossible, but unlikely. I say this with inside information, as I, too, started as a two-finger typist, teaching myself all the wrong techniques on my Atari 800XL. I became so confident in my mastery that in my first year of high-school I signed up for a course called "keyboarding" - basically training for a classic prototypical 1970s secretary (learning margins, various letter layout standards, and of course typing...err "keyboarding"). It satisfied the need for a business credit, and I figured it'd be an easy period, so there I was.
This course taught proper form, and it was no time at all before I was typing with the best of them. My accuracy and speed increased dramatically, and I could spin off paragraphs with a minimum of fuss and spectacle. So much so that they sent me to the county-wide business "Olympics", where I won the lucrative and heavily sought after typing contest. How nerdy is that? Yes, very.
Of course the rate of data entry for software development is hardly the limiting factor when you consider that most developers complete a couple of dozen lines of code a day (averaged over a year, and that's actually overstating the average): Instead good development often entails a lot of research, planning, and thought, and a minimum of actual coding. Nonetheless, once you factor in communications (e.g. emails, IMs, and so on), comments, and documentation, the average developer actually types an enormous amount of information into their PC every day, and the capabilities of their person-machine interface becomes extraordinarily important: The last thing you want is negligent documentation, deficient comments, or spartan and poorly communicated emails, all because one can't efficiently and effectively turn their thoughts into digital form.
So if you want to maximize your ability to use this medium, and reduce the amount of shock and awe (and time) required to convey a point, make sure you're using proper form when you're typing. Don't get bogged into debates over Dvorak vs QWERTY to justify poor form -- just pick one and do it right.
Much of the development on .NET 2.0 is wrapping up (the release is closing in on us fast), and the teams are setting their mandates for the next release (Orcas). Now is the time for the development community to convey their wishes to the teams, letting them know where there are gaps, and what doesn't provide the solutions it should. The System.Net team is actively soliciting for input. Take a moment and let them know what you think. The results will be a better long term development platform for all of us.
This is a bit off the topic of software development, but I find it fascinating, so please excuse the detour.
Bloggers bemoan Yahoo's role in writer's arrest. Blog: There's lots of buzz out there about a media watchdog group's claim that Yahoo provided information that helped Chinese officials... [CNET News.com]
That's so funny - one of the features of Radio Userland is that it lists current news stories from several major feeds, letting me perform a single click and turn it into a blog post. Voila, I'm a pretend newspaper!
Personally I find this a bit disturbing - are people signing up for feeds from bloggers to allow them to be their news filters, carefully applying their bias to whatever stories they want people to hear? Are we in a world where there are half a dozen sources of information, and there are vast armies of Winston Smiths manipulating feeds to fit their perspective?
Secondly, this story above details how "bloggers bemoan" (including some snippets from blogs, which is a pretty fragile basis of a news story), as if "bloggers" are some sort of collective consciousness (which has been a bit of a mantra in the media as of late). Bloggers, as a composite, have very little in common with each other, and this constant portrayal of some underlying binding thread is ridiculous. Having, or writing in, a blog is universally accessible. There is no great skill, sacrifice, or motivation in being a "blogger" (why blogger is being linked is a mystery to me - it's just the word in quotation marks. Sort of annoying). Furthermore, I've been seeing some readership numbers for some of the most popular blogs, and man are they a world less than you would think. Many of them were less than 1% of the daily reads that I would have expected given the perspective of blogs.
Two more Visual Studio.NET quick-tips while I'm doing a flyby (again because I've seen so many developers that don't take advantage of these simple productivity improvements)
If you do .NET development, you owe it to yourself to use FxCop. This tool evaluates your assemblies (it analyzes the IL assembly, rather than the sourcecode itself), and flags possible deviations from best practices with varying severity levels. You can also easily create your own modules for FxCop, imposing team or organizational specific guidelines. All in all it's a very useful tool, and it's free. Even if you don't plan on following all of the framework guidelines, it's still interesting in that it points out nuances that you probably didn't know about.
This tool has been out for quite a long time, but I'm still amazed how many .NET developers have never heard of it, let alone used it, so I thought I'd drop some props for it.