The wyDay blog is where you find all the latest news and tips about our existing products and new products to come.

wyDay blog

If you've done any Windows Forms designing then you've undoubtedly used the LinkLabel control. You've also likely noticed its hideous look:

The ugliness of the LinkLabel that ships with Windows Forms is four fold.

  1. The repulsive navy blue color reminds me of Netscape Navigator (anyone else remember the graceful Illegal Operation crashes?).
  2. There's no hover effect. OK, I lied. There's a hover effect but you have to code it. And if you do code it, you better put on your epilepsy goggles it's gonna flicker.
  3. The non-standard hand cursor is missing the shadow and the gradient.
  4. The LinkLabel font is oddly rendered:

The Windows.Forms LinkLabel looks as though the text was drawn to the screen once, then drawn again without erasing the first copy. This gives the LinkLabel a jagged, blocky look.

LinkLabel2 - How I fixed it

It was a simple bit of code. I used 'TextRenderer.DrawText(...)' to do the actual drawing. The hand cursor was simply a matter of intercepting the WM_SETCURSOR message to my LinkLabel2 control:

[DllImport("user32.dll")]
public static extern int LoadCursor(int hInstance, int lpCursorName); [DllImport("user32.dll")]
public static extern int SetCursor(int hCursor); protected override void WndProc(ref Message m)
{
//WM_SETCURSOR == 32
if (m.Msg == 32)
{
//IDC_HAND == 32649
SetCursor(LoadCursor(0, 32649)); //the message has been handled
m.Result = IntPtr.Zero;
return;
} base.WndProc(ref m);
}

But what about SysLink?

SysLink is a link control added to ComCtl32.dll in Windows XP. So, why not use SysLink? Because SysLink doesn't exist in Windows 2000/98.

Maybe in 3 years, when Windows 2000 is dead, a simple SysLink wrapper for C# can be written.

Get it

It works with all the .NET 2.0 + languages (C#, VB.NET, etc.).

Download LinkLabel2 now

Also while you're at it download wyUpdate, or any of my other open source projects.

Go to the LinkLabel2 site for further updates.

For the last four years we've been developing wyBuildunder a tackier name: InstantUpdate. Today we're officially dropping both the InstantUpdate name and its slightly perplexing logo for a nonsensical name with an even more perplexing logo. (And it's purple!)

If you've never used wyBuild, here's a quick intro: wyBuild comes in two parts. The first part is wyBuild, obviously, whichyou use to manage your versions and create your updates. wyBuild is also used to generate the second part, wyUpdate, which is the updater program that you include with your application.

wyUpdate: Open Source

wyUpdate is now completely open source. It's licensed under the BSD license (the most liberal open source license) and the zip file containing the C# sources is available for immediate download.

wyBuild

With wyBuild you design the updater client, wyUpdate, by choosing its theme and lanuage. You also manage versions of your software using the tabbed interface.

Additionally, wyBuild has two major features that will help small and large software companies alike. The first of which is version management.

Version Management

Managing past and future versions of your software is simple. Just drag the files into the wyBuild window. Adding registry modifications is just a simple and intuitive. You won't even need to visit the help documents or the forum (but they're there just in case you get stuck).

Update Patches

The second major feature in wyBuild is patch creation. A patch is the data required to get from one version of a file to another:

The patches created by wyBuild are much smaller than the zipped files that are used with typical update programs. And much much smaller than releasing a new installer for every update to your program.

An example to illustrate my point is Nero Burning ROM. Nero Burning ROM is CD/DVD writing software that has been popular for many years, and Nero is updated frequently. One big problem, though, is their lack of a good update creation and distribution method. Instead of using an updater program like wyUpdate, they release full installers to their existing users. That's over 300 megabytes for very small changes to Nero.

The graph below shows how enormous just the bare minimum installation of Nero Burning ROM is. Notice the tiny size of the update when created with wyBuild (just over a megabyte!):

Why should you care?

Because your users care. It's no coincidence that I used Nero Burning ROM as my example. They have a very large user base. Their computer savvy users like to use the latest version of Nero. But every time an update to Nero comes out this same complaint is raised again and again:

Why do I have to download 300 megabytes when all I'm using is the main Nero program?

And that's the non-vulgar version of what's being said about Nero.

For every new release of Nero their reputation should go up not get worse by all the bad buzz surrounding their slow, bloated, distribution system.

Hawking wyBuild

Ok, ok. You get it. I'm trying to sell wyBuild. Even for all my shameless plugging, a program like wyBuildis necessary to keep your users happy. Our program can create tiny updates that download quickly and install quickly. This saves you money on bandwidth costs all while keeping your users deliriously happy.

(Hell, you can even create a competing product using the open source wyUpdate. But I think you'll find the $249 is a small price to pay for the monetary benefits of using wyBuild.)

Download wyBuild It's a free 14-day trial of wyBuild that you can use to release updates to your users right now.

Buy wyBuild If youre not satisfied, for any reason, within 90 days you get a full refund. No questions asked. We dont want your money if youre not incredibly happy.

Peppier Website

5 comments

Today I changed the style of wyDay.com to be much brighter. I felt that if this site didn't burn out your retinas while simultaneously giving you a cavity, then it just wasn't good enough.

A notable addition to the site is the open source list. It lists the dedicated pages for VistaMenu, SplitButton, wyUpdate Client, and some of my older projects.

I've also uploaded version 1.0 final of wyBuild(a.k.a. InstantUpdate). I'll have a blog post later on explaining all of the many changes. But, for now, just download wyBuildand begin exploring. It was designed to be easy to use right out of the box.
Download wyBuild