Expert Texture Home Contact me About Subscribe Digipede Connect on LinkedIn rwandering on Twitter rwandering on FriendFeed

rwandering.net

The blogged wandering of Robert W. Anderson

Author Archive

Scobleations

Congratulations, Robert. I agree with the masses that you did a great job in opening up Microsoft. I’ll miss your angle on Microsoft and your ability to bridge the Microsoft / Web 2.0 world. Of course, I’ll probably run into you more now. Especially if you listen to Dave Winer — the East Bay is a great place to be.

.NET 3.0 (née WinFx) — now with CLR 2.0!

I wrote about the WinFx name change on Friday, WinFx becomes .NET 3.0.

One of my questions had to do with .NET 2.0 and whether there will be a new CLR. Jason Zander clears that up here: .NET 3.0 is the combination of what was WinFx (WCF, WF, WPF, WCS), and .NET 2.0. So, no, there will not be a new CLR.

Some people have complained that this introduces some confusion because the .NET product version number doesn’t match the CLR. Of course, it could get pretty harry going forward, because .NET is more than just the CLR.

I agree that this can be confusing, but if you buy that the name change is a good idea (which I do) then this is the best solution. The alternative — arbitrarily bumping up component versions to match the product version — is misleading and will cause developers much more headache.

I do hope, though, that we are not heading back to a time when it was nearly impossible to detect what versions of .NET are actually installed. Remember the list of file versions and manifests that you had to pour over to detect which Visual Studio 6 service-pack you had? Did this ever match what was installed on your machine? Not for me.

What we need is a simple tool to tell us what is installed. How about it? Microsoft, can you commit to a simple tool (supported, unmanaged, open-source, available in binary with a free redistributable) to determine exactly which .NET is installed? This will save your ISVs some headache.

So, I was right in the first place . . .

I figured that if Brad Abrams, Kryzysztof Cwalina, and Joe Duffy all agreed that you call the async callback before you signal the wait handle, then they must be right. Sure, blocking on the wait handle in the callback results in a deadlock, but perhaps (I reasoned) that is not a supported use case.

Joe refers to a customer who emailed Brad and Kryzsztof about this. That’s me. Then I backed off, figuring that Joe’s original post shed some light on the issue. I’m not usually so quick to defer in this way, but at least I deferred to some really bright guys.

Note: I turned off comments because this post is a major recipient of comment spam.

WinFx becomes .NET 3.0

S. Somasegar has announced that WinFx was confusing and so they have renamed it to .NET 3.0.

I’m indifferent or its good, wierd, or bad. What?

Indifferent: It is just a name.

Good: I like the idea that WinFx == .NET 3.0. It definitively shows how these technologies relate.

Wierd: I liked the name WinFx. As one of my Digipede presentations says, WinFx is was the new Windows API. Is Microsoft saying that .NET 3.0 is the new Windows API? That is hard to believe. Will WinFS end up being in .NET 3.0 or is that something else altogether?

Bad: Does this mean that the CLR is about to have a new version number? As Jesse Kaplan told me at PDC05, the biggest compatibility problem for .NET 2.0 was the version # (oh and installs that rely on the version # or some installation artifact to detect .NET). So is this going to happen again? So soon?

So, does it all matter in the end? I don’t know . . . it probably helps Microsoft focus its branding . . . that is a good thing.

Partnering with Microsoft

If you are an ISV interested in partnering with Microsoft, I recommend John’s post, Partnering with Microsoft. His advice is top notch.

He follows it up by railing on the Microsoft partner Web sites in Part Deux. This post had me laughing out loud; however, you might not truly get it unless you’ve experienced the pain yourself.

Tags: ,

Three deficiencies in the C# preprocessor

Here are three things I want the C# preprocessor to do. Together they would better support cross-compilation for different .NET versions. Of course, this means that I really want these for C# / .NET 1.1. Too late for that?

1. Ignore all text in #if‘ed out code. Ideally this would simply ignore all text between the #if and the matching #else or #endif. You may think it already does this, but of course it does not. It looks at all of the preprocessor commands. Why do I care? Well, I want to use #pragma warning disable around some specific method-calls to members we plan to make obsolete. This doesn’t work before C# 2.0, so I would like to #if out these pragmas (and turn off all such warnings globally in those builds too, by the way):

#if !__DOTNET11__
#pragma warning disable 618
#endif

Of course, this doesn’t work at all because previous versions of C# choke on the warning pragma. It may be too much to call this one a deficiency, but it sure would be nice if it worked.

2. Allow expressions in #if. See the next one for the reason.

3. Provide compiler-version and .NET version constants. This is kind of obvious, but why do I have to define my own constant (as in the above example)? C++ supports the __CLR_VER constant. Why not C#? I would prefer:

#if __CLR_VER < 2.0
. . . 
#endif

Of course, this requires expression evaluation and I’m intentionally blurring the distinction between textual constants and mathematical operators.

There are workarounds to these issues, but handling the warnings properly is kind of thorny. I’m a big believer in clean builds, so I think it is worth the time to implement this, but I sure do wish Microsoft had built this in. My understanding is that cross-compilation was not considered a requirement for VS2005 and MSBuild when it was released — not having this kind of support built into the language is another example of that.

Free Developer Edition

I almost forgot . . . thanks to Dan for the reminder . . . we are making it even easier to try out the Digipede Network.

Today we announced that the Digipede Network Developer Edition is free. This has all the capabilities of Team Edition, but it is limited to two processors.

Go here to fill out a form to get your copy.

Tags: , ,

Enterprise Ventures Conference

At the Dow Jones Enterprise Ventures conference in San Jose today. John will be making a couple of presentations later today.

The opening panel consisted of Jason Maynard (Credit Suisse), Douglas Kehring (Oracle), Terry Garnett (Garnett & Helfrich Capital), and David Skok (Matrix Partners). The overall topic was consolidation, business models, etc. and how these changes effect startups.

I don’t think I disagreed with a single thing except for something the Oracle guy said. Frankly, I found it odd to put a guy from Oracle on the panel with these other guys. He did a good job certainly; however, he (i.e., Oracle) ended up being ganged up on a bit as an obvious target. You can guess how it went:

  • How do the changes in business models effect the incumbents?
  • Well, lets take Oracle as an example . . .

Anyway, Mr. Garnett mentioned that large enterprises are tired of paying the large maintenance / support fees to the incumbent database companies. Mr. Kehring noted that the price / performance and capabilities (i.e., features) of Oracle continue to increase greatly; making the maintenance worth it.

Right, but a very many of these big enterprises don’t want the new features and new performance. Their Oracle install licenses already do what they need. They aren’t upgrading. They don’t need the new features — they don’t care. Mr. Garnett made this point, too, that a large percentage (I think he said 33%) are still running Oracle 7.

This is something that we all have to understand as vendors: many customers don’t upgrade.

Most of them do value maintenance and support for a time, but don’t actually want or need the new features. Driving upgrades is important for vendors for a couple of reasons. More on this later.

Safe and sound

I brought my kids to Merced for the weekend. It gives them a chance to spend time with their grandparents. My wife asked me to drive carefully — she is not a worrier by nature. I understand the feeling of seeing the rest of your immediate family drive off in a car on a road trip. Accidents do happen.

As one did while we drove through Livermore.

Heavy traffic, moving quickly. In the fast lane. Workers on the shoulder picking up debris. Traffic slows ahead. I slow and nearly stop. One of those times when you have to brake hard making sure that you don’t hit nor get hit. No problem for me. No problem for the white car behiind. A red car darts onto the shoulder. Luckily, no workers here. Red car comes along side and veers into my lane. I move to the right (staying in the lane) and narrowly avoid getting hit. At the same time I hear a crash behind me (not my car). Red car falls behind and hits the white car. Another crash. Look behind and see the front-end of the white car crushed. The red car is back there too but I didn’t get a good look at it.

I don’t know how many cars were involved nor if anyone was hurt.

We are fortunate tonight. I hope, perhaps in vain, that no one was hurt.

Tags:

Might Softricity enable a real Office Live?

Many people would like to see an online Office product. Bill Gates says that what people really want are online documents. That is, if Office is available everywhere (with a full-desktop license or through some other interface) then the users need to get to their documents from any machine.

Setting aside this storage requirement (and the services to support it) for a moment, making Office available everywhere requires one of two things:

  1. An Office Live strategy that actually includes Office products — meaning re-writing or newly written Office applications for the Web (which is apparently what Bill Gates doesn’t think people want); or
  2. Easy deployment of the existing Office desktop products anywhere.

Isn’t that what Softricity’s SoftGrid product does? From their site:

All applications are instantly available anywhere in the world – from a user’s desktop or a browser . . . whether the machine is the user’s own computer or a device shared by many users; or whether the user is on a high-speed or dialup connection — or even completely disconnected.

In addition, they claim that they can rapidly pull just the part of the application needed by the user (again, from their site):

. . . the Softricity client rapidly responds and “pulls” only the code necessary to start the program from a central Server — typically 20-40% of the total code. This happens without any degradation in functionality or response time; applications launch within seconds, based on application size and connection speed.

So, Office 2007 + Softricity = Office Live?

Is this the real reason Microsoft is buying Softricity? Is this the Office Live strategy? Mr. Ozzie, is this your online strategy? Robert, do I have it right?

Yesterday I wondered about the overlap between Softricity and FlexGo. So, alternatively, Office 2007 + FlexGo = Office Live.

Tags: , , , , , ,

« Previous entries · Next entries »