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

Automatic Properties Follow-up

Back in March, I posted Automatic Properties in C# 3.0 which included a couple of questions.  At the time I hadn’t installed any Orcas beta.  My post was based on other posts (including one from Bart DeSmet’s excellent blog: C# 3.0 Automatic Properties Explained).  My questions leapt out at me (maybe I’ll post about why that is . . .). Since that post, I have played a bit with the VS 2008 betas as well as built and tested the Digipede SDK samples.

A recent comment reminded me that I should revisit the questions.

Question 1: Is there an attribute to set the automatic field name?

Reason?  To maintain binary-serialization compatibility when moving from automatic properties to “normal” properties. 

Answer:  I don’t know if there is explicitly.  The underlying field name seems to have been changed since Bart’s first post and VS 2008 beta 2 (they have improved it so the field name can be derived from the property name).  This is good, because it might mean that the automatic property could be converted to the “normal” kind of property while maintaining default binary serialization; however, the backing field name looks like:

<PropertyName>k_BackingField.   

. . . and angle brackets are not valid for member names — the compiler can generate them, but aren’t valid C# syntax.  So, this is not quite what I want.

Question 2: Is there an attribute you can put on the automatic property to hide the underlying field or is it automatic?

Reason?  By default, properties with backing fields result in (usually) duplicated information in the debugging views.  If the backing field is generated by the compiler, it would make sense to just hide it (with the DebuggerBrowsableAttribute or some other way).

Answer:  This is automatic.  Good.  Probably a result of the CompilerGeneratedAttribute that is added to the generated backing field.

Summary

Based on what I know now, I wouldn’t use automatic properties if default binary serialization is likely to be used.  Regardless of this possibly arcane issue, automatic properties are cool.  I like them.

[tags]Digipede, C#, C#3.0, .NET, .NET3.5[/tags]

Tags: , , , ,

System.Uri.Equals(…) What?

Can someone explain why the following expression evaluates to true?  There must be some historical perspective that I’m just missing.

new Uri("mailto:somebody@example.com") == new Uri("mailto:somebodyelse@example.com")

I would understand:

  1. A use case for a separate Uri.Compare method giving the caller control over which components should be compared;
  2. If Uri.Equals performed its comparison against canonicalized URIs.

The docs say that the user info, fragment, and  (in older .NETs) query are all ignored for comparison.  There is no mention for the email address in a mailto; however.

What?  Why?

[tags].NET, C#, Microsoft, BCL[/tags]

Tags: , , ,

The Linux Religion . . .vs. Windows (yawn)

The Linux-guru crowd continues to discount the complexity of installation, maintenance, use, and actual cost of Linux-based OSes. 

It would be a full time job to debunk these arguments over and over again.  Occasionally, Dan takes the time to do just this:  see him dismantle another one of Joe Landman’s CCS attack pieces in Yet another poof piece.  And Dan doesn’t even mention the developer-productivity story . . .

Personally, I tend to ignore the “I hate Microsoft, Linux is the answer to everything” arguments.   You can build a feasible solution with either platform.  As Dan said in his post (specifically about HPC):

Look, I’m not deriding Linux as an OS, or as an HPC OS. It’s been very successful, and it will continue to have success.

The fact is: if you’re using UNIX or Linux, it probably doesn’t make sense to port to Windows.

But if you’re already using Windows, it certainly doesn’t make sense to port to Linux.

They are different toolboxes full of different (albeit similar and overlapping) tools.  Depending on all sorts of criteria, different organizations will do better with one platform than the other.

There is huge growth potential in the market for both platforms.  Can’t we just get past this? 

Or has this truly become a religion?

[tags]Digipede, Microsoft, Windows, HPC, CCS, Linux, .NET, Grid[/tags]

Tags: , , , , , , ,

Microsoft postpones PDC and more

Robert Scoble had a great post on the PDC and what is going on at Microsoft.   I liked it so much I included most of it here with my comments.

The PDC stands for “Professional Developer’s Conference.” It happens only when Microsoft knows it’ll have a major new platform to announce. Usually a new version of Windows or a new Internet strategy.

So, this means a couple of things: no new Windows and no major new Internet strategy this year.

I agree there is no new strategy this year and that is disappointing; however, Silverlight is huge and this year, and if not an Internet strategy it is an Internet developer strategy. 

Cleary Mix07 was the place to be — I would have made sure I went if I had known that PDC was going to be cancelled.

Some other things I’m hearing about the next version of Windows? There still is a ban on .NET code in core parts of Windows. They aren’t getting enough performance yet from .NET to include code written in it inside major parts of Windows. This is a bummer, because .NET is a lot easier to write than C++ and letting Microsoft’s developers write .NET code for Windows would unleash a bunch of innovation.

I fully agree with you here — a definite bummer.  Yet I don’t agree about the performance of .NET.  Certainly there are parts of Windows that need to be unmanaged code; but Digipede has a slew of customers using .NET for computation and getting terrific performance from it.  Face it, this “not performant yet” argument is used by people at Microsoft from kernel / device authors (OK) to the Office team (what?).  It is hard to separate the good arguments here from just plain bias and inertia. 

The person who told me this (who works at Microsoft) told me .NET still takes too long to startup and load into memory and because Windows is now being compared to OSX they can’t afford to ship components that would slow down Windows.

What?  If this were baked into the OS, couldn’t they do a better job of sharing this startup cost (i.e., doing it once with reuse)? 

This gets right back to my posts about how the Windows .NET API is actually dead (see these: WinFx).

It also means that Ray Ozzie’s team probably doesn’t have anything dramatic to announce yet and they aren’t willing to have live within the bounds of a forcing function like the PDC (PDC forces teams to get their acts together and finish off stuff enough to at least get some good demos together).

This is the “no Internet strategy this year” part.  Yup.  Definite bummer.

Some other things I’m hearing from the Windows team? That they are still planning out the next version of Windows. So, I don’t expect to see a beta until 2008 (probably second half of the year, if we see one at all) and I don’t expect to see a major new version of Windows to ship until 2009.

Microsoft says it won’t be as long between releases of the OS now.  I think, though, we won’t see a major new version released until Windows till 2010.

Anyway, this is sad cause I was hoping to see Microsoft make an all out push for developers this year.

Well, I think they have.  Their developer story is getting better and better every quarter.  I think they should have had the PDC anyway and continued to flog the .NET 3.0 and new .NET 3.5 stuff particularly Silverlight. 

What do you think it all means? Am I reading too much in between the lines?

Maybe you are.  I think the timing for the PDC was definitely wrong for Microsoft.  The Microsoft Internet strategy we are really waiting for has to do with Office / other applications and Internet services.  When this is unveiled, I think it will have less to do with developers than warranted at a PDC.  Ironically that should have been announced at Mix, but will have to wait for the next one.

Will Microsoft unveil a new Internet strategy at Mix08?  I bet.

[tags]Microsoft, PDC, MIX07, Silverlight, .NET, .NET3.0, .NET3.5, Scoble, WinFx, Digipede[/tags]

Tags: , , , , , , , , ,

Silverlight and Ajax

I’m glad to see that the CLR story for Silverlight (aka WPF/E) has made it out.  There was much discussion about this at the recent Microsoft ISV CTO Summit.  Scott Guthrie let us know at the time that there would be announcements at MIX07 as there have been.

Silverlight really is a game changer.  It pushes the very compelling managed code and XAML stories into the browser.

At the Summit someone asked how Ajax (and ASP.NET AJAX Extensions) fits in with the WPF/E strategy.  The answer (from the ASP.NET AJAX guy) was something to the effect of “they are solutions to two different problems”.

Certainly this is true.  I put it a little differently:

  • Silverlight is a new way of deploying apps on the Web while leveraging the existing .NET tooling and languages.  It is an entire development platform and strategy for building rich applications in a browser.  It provides an OS and browser independent story (albeit limited on day one).
  • Ajax is a set of techniques to create dynamic HTML.  Basically this is to force dynamic Web applications into the browser.  Ajax (and HTML/XHTML/CSS for that matter) is notoriously browser dependent.  Much Ajax work is made more painful because of browser-specific hacks.  In addition, building extensible and maintainable Ajax is extremeley difficult.

So, one is a new way of building web apps with killer toolking.

The other is a way of building web apps with killer hacks.

Which would you rather build, deploy, support, and maintain?

[tags]Silverlight, Microsoft, .NET, .NET3.0, WPF, WPF/E, Ajax[/tags]

Tags: , , , , , ,

Digipede Sponsoring Microsoft FDC

Digipede is sponsoring the Microsoft Financial Developers Conference in New York City this week.  John and Dan will be there Wednesday and Thursday (April 25th and 26th) attending the conference and presenting on scaling SOA. 

John has more on his blog; Microsoft has registration here (note that last link is broken, but ought to be working soon enough).

BTW: The event is free.

[tags]Financial Services, Grid, Digipede, Microsoft, SOA, .NET[/tags]

Tags: , , , , ,

Digipede on ScobleShow

In early April, John, Dan and I visited the offices of PodTech for an interview by Robert Scoble.  Dan wrote about it at the time (here).  It was fun, and Robert asked good questions.  He put the videos up over the weekend, included here by the magic of the PodTech player.

Editor’s Choice: highlights from Digipede’s interview and demo

 

Demo of building a grid with Digipede

 

Talking about Digipede’s grid technology

Robert asked me a question that I didn’t expect: what was challenging for me in desigining the Digipede Network.  In answering, I forgot to mention probably the most challenging part: designing the Digipede Framework API.  This is both the part that I have the most fun with and the most challenging.  Challenging or not, building usable APIs is a key part of any development platform and continues to be an important part of my job.

[tags]Grid, Digipede, .NET, API, Scoble, ScobleShow[/tags]

Tags: , , , , ,

HPC Presentation in Denver

If you will be in Denver on April 5th, come by and see my good friend Nathan Trueblood present on the Digipede Network.  

From John: 

The presentation is part of a Microsoft HPC event in Denver on April 5, 2007, featuring the new Windows Compute Cluster Server 2003 (CCS), the Digipede Network, and other Microsoft HPC partner offerings. 

All details about this free event, as well as the link to register, are here.

Source: Digipede and Microsoft — HPC Presentation

[tags].NET, grid computing, Digipede, HPC, Microsoft[/tags]

Tags: , , , ,

More on the death of WinFx (Part 3)

Andrew Hilton recently commented on WinFx is Dead Part 2.  I am promoting it to a post so I can better comment on the comments.

Andrew says:

I’m of the opinion that it is not yet the official windows API because it simply wasn’t ready, and using .NET 2 with WinForms would have been too restrictive and no doubt would not have integrated with the subsystems of Vista (such as graphics). The .NET framework 3.0 was not released until almost the final release of Vista. The risk of developing the windows front end under the managed API and still ship on time would have been too great.

I think you are correct regarding the .NET 3.0 components of WinFx: there was an early plan that Vista and Office would take advantage of these technologies, but of course, everything was late.   Using .NET the .NET 2 WinForms really didn’t make sense either.

From what I’ve heard early versions of Vista and Office 2007 did use the managed API (or at least an early version of WPF). My feeling is that the dev teams simply couldn’t cope with a large framework like that shifting beneath their feet causing all manner of chaos. Hence the move by both Vista and Office 2007 back to COM, which also gave leeway to the WinFX teams to change stuff radically if they needed to. My assumption is that given the large technical leap of WPF, WCF etc there would have been many back steps as they were trying to go forward.

Yeah, but I’ll bet the delays of .NET 2 had a bigger impact on the likelihood of managed APIs in Vista than, let’s say, WPF or WCF.

I’ll be very suprised if the consumer version of Vista does not include some managed code WPF apps. All the indications are that WPF will do very well (for example see the recent video of the WPF version of Yahoo messenger), . . .

Yes, I think this is all true, but hold on.

My post wasn’t about .NET 3.0 (or what they were calling WinFx), but of the original idea for WinFx: a full (or fairly full) Windows API.

WPF and WCF have little to do with that, certainly WF has nothing to do with it, and Info Cards, not really either.  Of course, this last one is a part of Vista though as kind of an add on. 

All of this stuff is very cool, but WinFx was supposed to push managed APIs deeper down into the OS, not to be extra layers on top of it.  The internalization of these APIs were to supply a more robust and secure OS. 

And it is that WinFx that appears to be dead.

[tags]Winfx, .NET, .NET3, mIcrosoft, windows, WCF, WF, InfoCards, WPF[/tags]

Tags: , , , , , , , ,

Ultimate .NET Developer’s Charity Auction

Jamie Cansdale, author of the excellent TestDriven.net, has organized several charity auctions to help people in Malawi.  In his words:

I have decided to organize a charity auction of a number of licenses for .NET developer tools. All proceeds of the auction will be given to Wells for Zoë, a charity dedicated to increasing the availability of safe drinking water and water for irrigation in rural areas of Malawi. You can read more about the project on their website or blog.

One unusual thing about this charity is that all travel and admin expenses are paid by the charity’s founders themselves. Therefore all donations go directly to sourcing the much needed equipment on the ground in Malawi. You can find out more about the equipment that is needed on the donation page here.

The software is being auctioned on eBay (they complete at the crack of dawn Pacific Standard Time on Wednesday):

If you want any of these excellent products, bid away!

[tags]Testdriven.NET, MSDN, SourceGear, TypeMock, CodeRush, DXperience, MegaPack.Net, Thycotic, C#, .NET, .NET3.0, VS2005[/tags]

Tags: , , , , , , , , , , ,

« Previous entries · Next entries »