News

September 2006 Entries


TDD and Designing for Testability

The jury is still out on this one, but Eli Lopian has thoughts from 14 of the jurors. I've blogged about Eli's opinion on this subject before. Personally, I like mocks, but I sure wish there was something better. Later this year, I hope to have some more time to give this some real thought

ADO.NET vNext Entity Data Model Designer Prototype, CTP

I blogged previously about the ADO.NET Entity Framework Overview whitepaper. Now you can download a CTP to play with. Note that these features will NOT be in ADO.NET 3.0. This is in some future version. This is a very early CTP and is extremely limited. The “ADO.NET vNext Entity Data Model Designer Prototype CTP” enables developers to design their data access stack using a designer in Visual Studio.This is an unsupported tool that showcases upcoming ideas for ADO.NET vNext tooling and Visual Studio...

Battlestar Galactica Season 3

Battlestar Galactica starts it's third season on the Sci Fi Channel next Friday (October 6). For those of you who haven't watched it, this is not your father's Battlestar Galactica. TV Guide has called it "The best show on TV", and NEWSDAY has called it "the Year's Best Drama". There's a good cover story on it on Entertainment Weekly (when will this be available on Zinio?) This even has some stars that you may know. Edward James Olmos plays Commander (now Admiral) Adama, Mary McDonnell plays Laura...

Firefox 2 RC1 Now Available

You can get the build here. I've yet to install any of the Firefox 2 builds, which is totally unlike me. I'm not usually happy unless I have at least 3 or 4 major alpha or beta applications on my desktop. I'll take a peak at this one, but I'll probably continue to wait. Why? Two reasons: Firefox 1.5 already does everything I want. I'm addicted to my Firefox extensions and too many of them (as of the last time I checked) don't yet work with Firefox 2. Don't take my extensions away from me! I know...

NY Times Reader Public BETA

You can now read the NYT from Vista with the Times Reader BETA. It's built using WinFX to make the most enjoyable reading experience, and uses the same font styles as the print edition. This is one of the few "Designed for Vista" apps I've seen, so is worth a look for that reason, I guess, but it'd be more worthwhile if It was a Drudge Reader, I think. ;-)

Entlib v3: What Might/Will Be In It

Tom Hollander blogs about the results of the voting and their prioritization meetings with a planned feature list for Entlib v3. Here's the base list: Medium Trust support Manageability extensions for configuration (WMI, Group Policy) Simple Strong-naming Mini-Factory for building your own blocks and providers Validation Application Block Exception Handling: WCF integration (exception shielding / fault mapping) Logging: WCF pipeline integration AuthZ: WCF Pipeline integration And, as time allows:...

E=mc2

On this day (September 27), in 1905, Albert Einstein published the article "Does the Inertia of a Body Depend Upon Its Energy Content?", which introduced the famous equation E=mc2

Optimizing ASP.NET 2.0 Web Builds

There's a lot here in Scott Guthrie's blog about improving your build performance. He talks not only about how to improve your build times, but also on how to decide whether to use Web Application Projects or Web Site Projects and what the differences are between them. There are several useful nuggest and links here for any kind of ASP.NET Web site build issues. As they say, read the whole thing...

Vista's Approach to Memory Management

Jeff Atwood has an interesting post on Vista's memory management and how it differs from Windows XP. Vista treats your system memory as a cache and uses it aggressively. In other words, don't be surprised or upset if Vista consumes all your available memory. It's not a bug, it's a feature! In summary, here's how much faster each cache memory type in your computer is than the hard drive: System memory37x faster CPU Level 2 cache82x faster CPU Level 1 cache283x faster Those figures explain why I only...

Battery Drain on Windows XP SP2 portable computer

Useful KB Article: SYMPTOMS When you unplug the AC power from a Microsoft Windows XP-based portable computer, the battery may drain more quickly than you expect. Therefore, the operating system may shut down prematurely. CAUSE This problem may occur if one of the following conditions is true: • The portable computer cannot enter the deeper Advanced Configuration and Power Interface (ACPI) processor idle sleep states.This occurs when the USB 2.0 driver leaves the asynchronous scheduler component running...

Clipboard Backup in C#

Here's a library for manipulating the clipboard using C#. Why do we need such a library? Because the Windows.Forms.Clipboard class only allows you to manipulate serializable data. You need to escape out to the Windows API if your data doesn't conform. This class does all that magic for you. From the introduction: The code uses Windows API calls to read and write into the clipboard. It provides a ClipboardHelper, an easy to use API bridge, which offers, in addition, functions to serialize complex...

BPMN Diagrams

There's a great series of posts on BPMN diagrams at Tyner Blain. Foundation Series: Business Process Modeling BPMN Diagrams - Introduction to Intermediate Events BPMN Diagrams - Make It Right With Intermediate Compensation Events BPMN Diagrams - Hit the Links With Intermediate Events BPMN Diagrams - Intermediate Multiple Events BPMN Compensation Event Correction UPDATE: Free BPMN Stencils for Visio 2003 What are BPMN diagrams? They are Business Process Modeling (as-is, to-be, etc) diagrams that conform...

An API for Google Image Search

If you're still using Google and you want to add image searching capabilities to your app, here's how. What I'd really like to see here would be an option to choose from multiple search engines (I only use Ask.com), or even a meta-engine like DogPile, but this is a good start

Listing All Workstations And Servers In Your Network

H. S. Masud has written a nifty little collection class for listing all the workstations and servers on your network. There appears to be a small issue with SQL servers. They're repeated for every domain and workgroup on the local network. I'll look into that. It takes a while to load the collection if you have a fairly large network. ...

Windows Vista UX Guidelines

Microsoft has released the official Microsoft® Windows Vista™ User Experience Guidelines. The following guidelines are currently available: Design Principles Controls Text Interaction Windows Aero Aesthetics...

SolutionZipper

SolutionZipper is a very nice little VS2005 Add-in. It cleans up your Visual Studio 2005 Solution and zips it up for backup. I can't even count the number of times I've done this by hand over the years

NtRegEdit

Nice little replacement for regedt32.exe

Dropdown Button for .NET

The author of this control on CodeProject calls it a "split button". I'm sure there's a reason he came up with that particular nomenclature, but I prefer dropdown button. Basically, it's a button that acts like a dropdown list. You can push it and select the default actions, or select one of the other actions from the dropdown menu. Whatever you call it, it's pretty sweet...

Is Your IDE Hot or Not?

Apparently, mine is exceptionally bland. But if you like having your IDE font and color schemes customized, this site is for you. I like ZenBurn, I think

Vista has "Command Prompt Here"

Shift=Right click on a folder and choose "Open Command Windows Here"

NLog 1.0 Available

Jaroslaw Kowalski has announced the birth of NLog 1.0. This is a free logging library for .NET. It seems to be much more streamlined than what's in EntLib, which is probably a good thing. From the website: NLog is a .NET logging library designed with simplicity and flexibility in mind. With NLog you can process diagnostic messages emitted from any .NET language, augment them with contextual information, format them according to your preference and send them to one or more targets. The API (application...

Visual Studio 2005 Tools for Office Second Edition Beta

The Visual Studio 2005 Tools for Office Second Edition Beta (called VSTO 2005 SE Beta for short of course--I mean what else would you call it?) is now available. This lets you build applications for Microsoft Office 2007. VSTO 2005 SE Beta includes the following functionality: Managed code application-level add-ins for some of the most popular Office applications: Outlook, Excel, Word, PowerPoint, InfoPath and Visio. Programming model and runtime support for key Office 2007 features including the...

ANTS Profiler 2.7

On the heels of my posting about dotTrace 2.0 Beta (I have so much influence), red-date has updated their ANTS Profiler to version 2.7. It looks like the biggest change in this version is making it "Vista ready"

Bringing .NET to VB6

Okay, I admit I'm not sure exactly why you'd want to do this, but if you have a VB 6 app that needs migration to .NET, the Interop Forms Toolkit will let you do it in pieces. With this toolkit, you can add .NET WinForms to your VB6 application. The Interop Forms Toolkit 1.0 is a free add-in that simplifies the process of displaying .NET WinForms in a Visual Basic 6 application. Instead of upgrading the entire code base, these applications can now be extended one form at a time. The goal is a phased...

The ASP.NET AJAX Extensions UpdateProgress Control

ScottGu blogs about the ASP.NET AJAX Extensions UpdateProgress Control. This is sooo much cooler than what you typically see as a "wait" indicator on most websites. Simple, but cool

Windows Vista: The "choose your own adventure" UI

Here's a good blog entry on the different User Experiences in Vista, Aero Glass, Vista Standard, Vista Basic, and Windows Classic. It has several screen shots of various scenarios with only the UI Experience changed. Now you can see what has taken Vista so long

dotTrace 2.0 Beta from JetBrains

From the people that brought you ReSharper, comes dotTrace 2.0, which lets you do performance and memory profiling of your .NET app. What's New: Memory profiling With dotTrace 2.0, you can now quickly see what happens with the memory used by your .NET applications. Nine informative views, each tuned to a specific aspect of memory usage, enable you to quickly find memory leaks and optimize memory usage. A memory comparison tool is also provided for viewing the difference between two snapshots taken...

Do You Really Need That Quad Core Desktop? Maybe...

A little while ago, I read this post by Jeff Atwood on the subject. His conclusion is no, you don't. However, the results I did find are so poor that I wonder if any quad CPU system is good for much more than bragging rights. Of the desktop apps, only three truly benefit from a quad CPU configuration: 3D Studio Max, POV-Ray, and Cinebench 2003. Notice a pattern? Rendering and encoding tend to parallelize well. Unless you're often running a specific application that is optimized for multithreading,...

Addictive Typing Lessons for Firefox

Ok, I'm not sure this really needs to be a Firefox extension, but it is a free typing tutor and it's not bad

Determining Which Version of SQL Server Is Running

In older versions of SQL Server, we just used SELECT @@VERSION and we were happy. You can still use that if you wish, but the "new and improved and Microsoft recommended" way is the following: SELECT SERVERPROPERTY('productvers... SERVERPROPERTY ('productlevel'), SERVERPROPERTY ('edition') I just ran this on one of our servers and got: 9.00.2047.00 SP1 Standard Edition For those interested in associating version #'s with service packs: Release Sqlservr.exe RTM 2005 2005.90.1399 SQL Server 2005...

The Big Ten Rules - Writing Good Requirements

I've been meaning to blog about these for some time. The last of the rules was published on June 15th, so I've certainly had opportunity. The good folks at Tyner Blain have come up with what they think are the requirements for writing requirements. :) Characteristics of Good Requirements Valuable Concise Design Free Attainable Complete Consistent Unambiguous Verifiable Atomic Passionate All of the articles are worth a read. I'd add more info on the series, but I'd just be copying or re-wording what's...

NewsGator Allows You to Turn E-mail into RSS feeds

This is pretty cool. If you have some e-mail subscriptions that you'd rather view through RSS, NewsGator allows you to do that. Basically, you set up an e-mail address through NewsGator, and it publishes e-mail sent to that address as an RSS feed. Then you just change your subscription to use this new e-mail address. You can keep the feed private or make it public if you'd like to share it with others or make it available to an RSS reader outside of NewsGator. Gotta be a NewsGator subscriber to get...

Sandcastle GUI

The one thing that Sandcastle appears to be missing is an NDoc-like GUI front-end. Well, here you go. The GUI interface is almost identical to the NDoc interface so anyone familiar with NDoc should be quite comfortable using it. You can import several settings from an existing NDoc project to start a new Sandcastle Help File Builder project. You can import the assembly and documentation file information from a Visual Studio 2003/2005 solution or project file to start a new Sandcastle Help File Builder...

ASP.NET DropDownList with OptionGroup Support

Why doesn't ASP.NET 2.0 support the <optgroup> element? I don't know. But here's the solution for you, if you've been wishing it did. From the introduction: ASP.NET 2.0, for all its bells and whistles, lacks the odd bit of functionality for reasons completely unknown. One such notable omission is that of OptionGroup (<optgroup>) support in the DropDownList control. For those unfamiliar with the <optgroup> element, it is part of the XHTML standard and has the effect of categorising...

Refactoring Databases: Evolutionary Database Design

This looks like a really good book. They also have a website with examples and summaries of the refactorings. A refactoring is a small change to your code which improves its design without changing its semantics. A database refactoring is a small change to your database schema (the table structures, data itself, stored procedures, and triggers) which improves its design without changing its semantics. Database refactoring is a technique which supports evolutionary development processes. It has the...

Regulazy 1.02

Regulazy is what it sounds like. Regular-expressions for the lazy. :) Seriously, it helps beginners create solid regex's without having to have knowledge of the syntax using a nice simple point-and-click interface. Roy Osherove is the author and blogged about the release. You can download it here...

Ready-to-use Mass Emailing Functionality with C# and MS SQL 2005

An exceptional article on CodeProject detailing an extensible mass emailing framework using the MS SQL Server 2005 Service Broker. I'm not sure about the IM-conversation style of writing, but that's just taste. The content is first-rate. What's the Service Broker? Service Broker is a new feature of Microsoft® SQL Server 2005. It offers asynchronous messaging support, and is tightly integrated with the SQL Server database engine. Service Broker provides a new, queue-based durable messaging framework...

Atlas...err...Microsoft AJAX Library and ASP.NET 2.0 AJAX Extensions 1.0

Atlas 1.0 was announced earlier this week, and of course, re-branded as well. ScottGu blogged all about it. A couple highlights: I am excited to announce today that we are going to ship this fully supported “Atlas” 1.0 release on top of ASP.NET 2.0 and ensure that it works with Visual Studio 2005. Our goal is to ship the “Atlas” 1.0 release around the end of this year. The plan is to first have a Beta, then an RC, and then decide on the final date based on customer feedback. As part of releasing...

NameValueCollection vs. HashTable

There's a good writeup on the BCLTeam's blog comparing the performance of NameValueCollections with HashTables (HT's are faster). The #'s are only moderately surprising, but its the details behind the #'s that's the important stuff here

2996 Victims - Paul A. Skrzypek

I will be making two and only two blog posts today, both commemorating the five year anniversary of 9/11. This is the first of the two. 2996 is a blog memorial for all 2996 victims of the terrorist attacks on September 11, 2001. 2996 bloggers have signed up worldwide to celebrate the lives of the souls lost on that day. Paul A. Skrzypek was one of those souls. Paul worked for Cantor Fitzgerald in the North Tower (Building 1). He was a broker at the eSpeed division. His only sin that day was doing...

It's September 11, 2001 - Where Are You?

Note that the timeline used here comes from the Cooperative Research History Commons. Some people may consider this post to be too long and will complain about it. To all of you I say, "Get a life." It's the morning of September 11, 2001. Take a moment to think about where you are. It's now (all times EDT): 8:46 AM American Airlines Flight 11 Hits the North Tower of the World Trade Center. Two minutes later CNN would break off a commercial with live news on this. Carol Lin says, “This just in. You...

FairTax on Wikipedia

If you haven't read the FairTax article on Wikipedia, you should. It's a very good place to get started learning about it. The FairTax (H.R.25/S.25) is a proposal for changing United States tax laws to replace all federal personal income taxes, payroll taxes, corporate taxes, capital gains taxes, self-employment taxes, gift taxes and inheritance taxes with a national retail sales tax and monthly tax rebate to households of citizens and legal resident aliens. The FairTax would be levied once at the...

Team Foundation Power Toys

The Team Foundation Power Toys are now available for download. Brian Harry blogged about it, and there are definitely a couple that make me go "oooh", such as: Annotate (IDE & command line) Annotate is a version control feature that enables you to quickly and easily determine who last changed a section of code. It traverses the history of a file and "annotates" each line with the name of the user that last changed it and the change set # of the checkin. TreeDiff (IDE & command line) For a...

Fitts' Law and Infinite Width

You don't know what Fitts' Law is? Neither did I, but it's a very important one when considering UI design. From Wikipedia: In ergonomics, Fitts' law is a model of human movement, predicting the time required to rapidly move from a starting position to a final target area, as a function of the distance to the target and the size of the target. Fitts' law is used to model the act of pointing, both in the real world, for example, with a hand or finger and on computers, for example, with a mouse. It...

MSF For Agile Software Development Process Guidance

If you're a fan of the Microsoft Solutions Framework (I personally go back and forth--to me, there's a lot of "duh!" in it, and on the flip-side there's an awful lot of overkill), or a fan of Agile development with VS 2005, you'll probably want to look at this. This download contains the source code and HTML in the agile process guidance that ships with Visual Studio Team System. MSF for Agile Software Development is a scenario-driven, context-based, agile software development process that utilizes...

Save MS Office 2007 Document as PDF or XPS

This once was a built-in feature in the upcoming Office 2007 release. Due to complaints from Adobe it was removed from the base product, but has now been resurrected as an add-in

FreeDOS Goes 1.0

What is FreeDOS? FreeDOS is a free DOS-compatible operating system for IBM-PC compatible systems. FreeDOS is made of up many different, separate programs that act as "packages" to the overall FreeDOS Project. These days, there are three main uses of FreeDOS: To run old DOS games (like DOOM, etc.) To run old business software that only supports DOS To support an embedded DOS system, such as a computerized cash register or till You can run FreeDOS on pretty much anything. While can run FreeDOS on a...

Windows Vista RC1 Public Release

You'll have to register with the Customer Preview Program to receive a Product Key, but you can download it from the Microsoft Download Page

Thread-safe GUI's

As a follow-up on my post yesterday about threading, here's a good post on how to choose among the wide variety of choices to create a thread-safe GUI. After reading both of these, I've decided that I need to re-work the threading on an app I recently wrote. Live and learn. From the intro: With .NET 2.0 and with the new "anonymous delegates" feature in C#, doing multi threaded responsive GUIs is now easier. In fact, you get multiple choices on how to accomplish this task. But which choice is the...

Code Smells

No, not "your code stinks", but identifying "code smells", areas that are begging for refactoring. Jeff Atwood has a good post on what warning signs to look for

DotNetNuke And SharePoint Go Head-to-Head

Here's a very good blog post comparing and contrasting DNN with SPS (SharePoint Services). It's long, but well worth the read. Like anything, choose the right tool for the right job. Obviously DNN isn’t as scalable as SharePoint is and it can’t search file shares, web sites, Lotus Notes databases, etc. but then it also can’t be setup and running on an external web host where you don’t have console access in 10 minutes like DNN can. Choose, but choose wisely...

How Long Was GM's 2005 Federal Tax Return?

This was news a couple months ago, but I never had a chance to read up on it. The answer? 24,000 pages. The IRS is touting this on their website because GM was able to file electronically. Look at all the paper they saved. Yippee. But how much money did they spend on tax attorneys, management approval, etc.? How many man years did it take to complete this? And how much of my taxpayer money will it cost the IRS to review this return? And people still claim that our tax code isn't too complex and that...

Enterprise Library Feature Voting: The Polls Are Now Closed

Tom Hollander posts on the results from the voting. Apparently people really want new blocks dealing with Business Rules, Workflow, and Validation. Good luck to Tom and the team on pleasing everyone. :)

Expression Web Beta

Expression Web, formerly (and better) named "Sparkle" has moved up from CTP status to Beta status. Expression Web is Microsoft's attempt at a "Flash killer". I've seen it in action, and I'm very impressed with it's functionality and how well it fits into the VS 2005 Team System environment. However, I'm not a Flash developer, so I'm not the correct person to judge its features. I think that Microsoft has an uphill climb convincing Flash developers (definitely and indepent group) to "go corporate"...

IronPython 1.0

IronPython 1.0 for .NET has been released on CodePlex. I haven't really done anything with dynamic languages, but I can certainly see their benefits, particularly in a RAD environment. I realize that both Python and Ruby make efforts to make sure the dynamic code is maintainable but I think the jury is still out on how easy/difficult that is. IronPython is a new implementation of the Python programming language running on .NET. It supports an interactive console with fully dynamic compilation. It...

Microsoft Research working on 'BrowserShield'

Microsoft is working on a project called 'BrowserShield', a browser add-on that will detect malicious code in web pages and remove it on-the-fly. Sounds interesting but conceivably dangerous to me. What if we disagree on what constitutes dangerous? Anyway, it will be interesting to see what comes out of this group. The BrowserShield project—the brainchild of Helen Wang, a project leader in Microsoft Research's Systems & Networking Research Group, and an outgrowth of the company's Shield initiative...

Windows Vista RC1

After you've gone out and gotten your new Treo 700wx, you can connect to it using Windows Vista RC1, if you're bold enough. That is, if you can download it. TechBeta and TAP users can get it now. MSDN and TechNet availability "real soon now"

Treo 700wx Now Available From Sprint

As I blogged about last week, the Treo 700wx is now available from Sprint. Rush out and get one now...

How Do I Thread Thee? Let Me Count The Ways...

One big complaint I have with .NET is that there are too many ways to launch one or more background threads. If you're interested in doing that, and you start perusing through the documentation, you'll immediately find lots of information on how to do it. In several different ways. And there's really no guidelines such as "Use this method if you're doing X, and this method if you're doing Y", etc. Mark Newman does a decent job of laying this all out and (sigh), gives you one more choice in his article...

.NET Framework 3.0 RC Available

The Microsoft .NET Framework 3.0 (formerly known as WinFX), is the new managed code programming model for Windows. It combines the power of the .NET Framework 2.0 with new technologies for building applications that have visually compelling user experiences, seamless communication across technology boundaries, and the ability to support a wide range of business processes. These new technologies are Windows Presentation Foundation, Windows Communication Foundation, Windows Workflow Foundation, and...

What You Search Defines Who You Are

Microsoft has been working on behavioral targeting systems, which determine information about users based on what they do. To state it more clearly, and give an example, they have a "Demographics Prediction Demo" The intro says: You can use adCenter technology to predict a customer’s age, gender, and other demographic information according to his or her online behavior—that is, from search queries and webpage views. I entered my car, Cadillac CTS, and it did pretty well on guessing my age group,...

Versioning Controlled Build

This is a Visual Studio add-in that automates the AssemblyVersion control. That's useful for managing version of multiple assemblies. From the introduction: As suggested on George Shepherd's Windows Forms FAQ, a simple solution to synchronize versions among multiple projects is to extract version information into a single file and reference it from each project. However, that approach has one drawback: if an assembly is used in different solutions, you may end up having two different versions of...

PullApartTabPage: Docking and Undocking Your TabPages

This is pretty neat. It's a TabPage control that allows you to drag out your tabs and dock them. Visual Studio has this feature, but I've never tried to do it on my own. From the introduction: Have you ever made a nice stable winForm application that had several tabs? Did it contain a nice clear distinction of workflow or had just a real nice component separation? Then did you find out some time later (weeks or months) that some of your users want to see some of the data side by side and that they...

Thinking About Assert Syntax

Charlie Poole has been thinking about changing the NUnit syntax for Asserts for his upcoming NUnitLite. One the one hand, it drives me crazy that the Assert syntax keeps changing. On the other hand, I think he's right on with his new idea. It will certainly make it easier to automate creation or at least standardize creation of unit tests

What Makes the FairTax Fair?

A good article comparing two different earners and how they'd be taxed under the FairTax

Treo 700wx Coming Soon

Engadget has the scoop on the upcoming Palm Treo 700wx. I still like my PPC-6700, but if you're looking for something from Palm, or just have to have the "latest and greatest", take a look at the 700wx

Office 2007 and Vista to be Released on January 30, 2007

According to Microsoft Watch, who got their data from Amazon.com, Office 2007 and Windows Vista will be available to the general public on January 30, 2007. Prepare to shell out a combined $900 for Office Professional and Vista Ultimate Edition...