Bill Blogs in C# -- products

Bill Blogs in C# -- products

Created: 2/10/2010 2:27:35 PM

I spent all day yesterday working with VS2010 RC. (MSDN Subscribers could download late on Monday. It becomes public today).

First impression:  It is much faster, and more stable than the beta 2 build.

The reason for the extra public build and the delay in the launch date was performance. (Soma and the Gu discussed this previously).

Caveats:  It’s only been one day. If I were making a ship decision, I’d say VS2010 RC needs a lot more soak time.

I put VS2010 RC on the PDC Laptop. (The Windows Rating is a 3.2, due to the Windows Aero score). On that machine, the VS2010 Beta was rather painful. It worked, but I could type noticeably faster than VS2010 could display characters. Even worse, slewing characters would cause the display to fall more than a screen behind in drawing.

None of those effects occur in the the VS2010RC. (VS2010 RC uses the hardware rendering on this machine. See Jason Zander’s discussion of perf changes betwen B2 and the RC for more information.) I spent all day coding on the PDC laptop. It kept up during the entire day. Scrolling, slewing keys, intellisense. It’s downright zippy.

As an extra added bonus:  The Add Reference dialog appears in a heartbeat.

As of now, I am doing all development in VS2010 RC.

Created: 11/23/2008 5:38:01 PM

I use Live Writer to create weblog posts.  It’s a great way to compose thoughts that might not be ready for prime time, and then post them once I’ve completed and reviewed them.

This post from On10, shows how you can use LiveMesh to sync your drafts, and recent weblog posts, using LiveMesh.

Because I often switch back and forth between two different machines, tthis is sweet.

Created: 11/2/2008 10:57:00 PM

"Google Abandons Standards, forks Open ID"


Basically, Google has rewritten OpenID. Not only is it not exactly the same as the current OpenID protocol, it’s so different that existing OpenID relying parties won’t be able to use it. Only a handful of “partner sites” have been updated to understand Google’s perverted version of the OpenID standard, and anyone else hoping to authenticate via “OpenID” to Google’s servers will need to do the same.

You can read the entire blog post here.

Created: 9/22/2008 9:30:00 PM

The I'm a PC ads are great. 

I like the tone, the content, and the message: PCs create are world without walls, where communication is world wide, different industries, hobbies, goals, and types of hardware are supported.  It's great, and shows the incredible breadth and diversity of the PC and Windows community. Breadth of interests, breadth in geography, breadth of thought, breadth of problems, breadth of solutions.

You can view the videos here.

If you're different, not like that monolithic Mac world, you can upload your photo or video here:

Created: 9/4/2008 11:53:18 PM

Or the luster is already gone.

I used Chrome for some of my web browsing for about one day. It works alright, but it's clearly an early release.   Technically, Chrome can and will compete with Firefox 3 and IE 8. (I'm running a beta of IE 8 as my regular browser at the moment.)

The reason I removed Chrome is entirely based on the EULA (even though it is changing). It may be a bit of paranoia, but it is my opinion.

I freely admit to having concerns about Google and privacy, more so than any other software company. That's entirely because of their business model.  Other software companies want an ongoing relationship with their customers. That shortens the sales cycle. But Google is different. Google doesn't sell me anything. It sells access to me (and others like me) to advertisers. The more demographic information they have about me (and others like me) the better they are able to satisfy their customers: the advertisers. It's in their business interest to collect as much data about their users as possible. Note that I make the distinction between users and customers: Advertisers are Google's customers. You and I (and others like us) are users. Google must satisfy its customers: the advertisers.

Despite such platitudes as "don't be evil", Google must keep advertisers happy if they are to succeed. Keeping users happy is important only in so much as a lack of any users will affect how well Google can sell add space.

That analysis makes me somewhat concerned anytime Google wants to know something about me (and others like me). They have a profit motive to know enough about me to target ads at me (and others like me). I prefer Google know less about me.

If you've read anything about Chrome's EULA, you know that I'm concerned about Chrome, and Google's ability to track my every move online. They have a profit motive to know as much as possible. The biggest risk of this, (to me) is the way their Omnibar can track everything I type. Depending on Google's use of that data, it's almost spyware.

The EULA has another clause (which Google is updating, but I haven't seen the updates) that gives Google a non-exclusive license to all content created with Chrome. That's also clearly part of Google's profit motive: the more content they can deliver to end users, the more advertisers are willing to pay Google to deliver ads. The simplest answer is that I don't intend to give Google (or anyone else) that kind of broad license. 

I'm sure Google will continue to address these issues over time, and I'm also sure I'll give Chrome another look as they do so.  In the meantime, I will be watching how much marketshare Chrome achieves. At the moment, I don't expect it will grow quickly: too many people have similar concerns about the EULA, and the privacy concerns.

Created: 8/21/2008 11:27:13 PM

A recent experience highlights how little anyone in any business thinks about software, especially web sites.

I was running out of checks in the home checking account. The handy-dandy reminder check came up. Normally, I would take that to the local branch and hand it to the teller. (I live in a small town, and the bank is just down the street.)

This time, the vendor wanted me to use the web, or an 800 number. I choose the web. They pointed me to www.<bankname>.com.

That site, like almost all company web sites, was designed as a marketing tool. There are pages upon pages on their product and service offerings, their competitive advantages, their strengths relative to their competitors and the like.

After several tries to find the page where I could order new checks, I tried their search functionality. Results 1-10 (of over 1,000) for "order new checks" did not give me any useful pages. I gave up and used the phone.

The core problem was that this vendor was mixing metaphors badly: a 'website' is a place on the web. With one part of their mind, they consider a website as a marketing tool. They tried to reach potential new customers. With another part of their collective corporate mind, they were trying to streamline communication with current customers. Those are two very different audiences, with very different goals. Would they have sent the same large envelope of brochures to existing customers and potential new customers? Of course not. It would cost money, and (more importantly) it wouldn't work. Yet this company, and many others would happily and unwisely use the answer "see our website" for everything. No matter the question, no matter the audience, the answer is "it's on the website."

Don't do that. It would be tragic to put everything in one place. None of the possible audiences would be able to find anything. That's exactly what this bank had done. "You can find it on the website" isn't an answer. Create different content areas for different purposes. And segregate those different purposes based on audience needs.

Created: 4/4/2008 10:09:00 PM

Earlier this week, Open XML won ISO approval.  By any objective measure, it won handily.  86% of the participants voted for the standard.

Does that mean that 16% of the voting countries are run by IBM officials?

One could make the case that it does.  Jan van den Beld's post provides far more evidence more eloquently than I ever could:  A few highlights:

 "I can see why IBM opposes more voices (at least those that don’t agree with its commercially motivated views). It has enjoyed unparalleled influence in international standardization for decades and may not now like more voices and decision makers in this process. Its allies could not have been clearer about that commercial agenda– to force the purchase of their products by blocking governments from procuring Microsoft Office, regardless of technical merit or actual demand."

"When IBM talks about independence, it really means that national standards bodies should be independent of anyone who disagrees with IBM’s position.

But, the only way to get the full picture is to read his post, including the evidence to which he provides links.

For my own standpoint, I have to look at this from the technology standpoint. I've looked inside a few Office XML documents. They are not simple, but they are understandable (if you understand XML). Can any company (or individual) create a parser to read or write Office XML documents? Sure. What's stopping you?  Your technical skill might, but legal restrictions and closed formats can't.  And to me, data transparency is more "open" that code transparency. If I can see the data (in XML format, possibly) I can certainly figure it out. Even if I can't see the internal algorithms inside Office, I can work with it's files. That's much more important than being able to see the code. Are you, or your customers, going to re-write your office apps?  Probably not. But, does an open format make changing vendors, or creating more addons easier?  Certainly. Open XML gives us that.

In fact, at this point, I would make the case that it's easier to work with office documents stored in Open XML than it is to work with google docs stored in the cloud. Can you program against google docs? Can you programmatically retrieve your data? If so, can you understand the internal format, and process those documents with your own algorithms? I don't believe so.



Created: 10/28/2007 3:22:12 PM

We interrupt this blog for an important public service announcement.

Microsoft has been telling folks that the Visual Studio 2008 Beta 2 VPC images are going to expire on November 1, 2007. The VS 2008 install doesn't expire, but the base OS does. That's even more serious. If you are using the VPC image for your VS 2008 testing, you should back up all projects, VSTS database, etc. before this coming Thursday. (Of course, you should probably be running backups on anything important, but that's another story.)

You can learn more here: and here The second one is particularly useful. Jeff has done some testing by simulating the timeout on one of his machines. He discusses several workarounds to get your data, etc. off the image.

Also note: None of this affects you if you have been running the installer for VS 2008 yourself (either on real hardware, or a VPC you built yourself.) It's only an issue if you've been using the VPC images from the MSDN download center.

Created: 9/28/2007 12:37:00 PM

Sara Ford has been posting tips about the VS 2005 editor.  Today's tip( shows a nifty little setting that disables Copy and Cut when you're on a blank line with no text selected.

 Why is that useful?

Well,how many times have you cut some code from one location, tried to put it somewhere else, and hit Ctrl-C instead (because C is so conveniently located right next to V).  Argh.  Three Undos later, and you're back to work.

Created: 12/10/2004 1:41:09 AM
The best tool (IMHO) for delivering database installations

I received this question via email recently:

"I have developed an application using and SQL.
I have to create the setup file so that I can install this application on another system
Forgive me I am a naive programmer, but when I tried to do this using setup wizard, the database won't work.
Although it was running on my system but it is not running on other systems.
Kindly advise."

Earlier this fall, I wrote a whitepaper for Wise Solutions on almost exactly this subject.  The only difference is that this paper was geared for ASP.NET applications.  One of the best features in this application, for you, is it's ability to create and install databases on the target machine.  You should check it out, using the links below.

The Wise Installer homepage
The home page for the Wise Installer
The Whitepaper
How to Seamlessly deploy ASP.NET Applications using the Wise Installer
Download the evaluation
Direct link to the evaluation version

Current Projects

I create content for .NET Core. My work appears in the .NET Core documentation site. I'm primarily responsible for the section that will help you learn C#.

All of these projects are Open Source (using the Creative Commons license for content, and the MIT license for code). If you would like to contribute, visit our GitHub Repository. Or, if you have questions, comments, or ideas for improvement, please create an issue for us.

I'm also the president of Humanitarian Toolbox. We build Open Source software that supports Humanitarian Disaster Relief efforts. We'd appreciate any help you can give to our projects. Look at our GitHub home page to see a list of our current projects. See what interests you, and dive in.

Or, if you have a group of volunteers, talk to us about hosting a codeathon event.