Category Archives: microsoft

Are you Mort, Elvis or Einstein?

Old news to some, but I’d not come across this until Paul Vick mentioned it on his blog. Microsoft uses the concept of personas when designing its developer tools. Nikhil Kothari explains all, in this post from 2004:

Mort, the opportunistic developer, likes to create quick-working solutions for immediate problems and focuses on productivity and learn as needed. Elvis, the pragmatic programmer, likes to create long-lasting solutions addressing the problem domain, and learn while working on the solution. Einstein, the paranoid programmer, likes to create the most efficient solution to a given problem, and typically learn in advance before working on the solution. In a way, these personas have helped guide the design of features during the Whidbey product cycle.

Whidbey was the codename for Visual Studio 2005.

Vick notes that these three personas map very loosely to Visual Basic, C# and C++. I can see what he means, though I’d have thought that all three personality types (and more) could be working in any language. You can do quick pragmatic hacks in C++ as well as in VB. Vick wants to retire Mort because he may be giving VB a bad image (internally?). Certainly it’s an unfortunate name; I’m not sure where it comes from (Terry Pratchett?).

It’s not a bad thing to have some idea of the range of users you are catering for, though a range of 3 personas strikes me as restrictive. It is also thought-provoking in the light of recent development trends. Now we have the whole designer/developer thing; and separately, there is a new focus on modeling within Microsoft – see Oslo. How will Mort, Elvis and Einstein cope with all that?

Technorati tags: , , , ,

Windows Media Center madness

I use Windows Vista Media Center with a digital TV card. It had been working fine for a year, until last week.

Then it started playing up. Browsing TV recordings would raise an error: “A critical Windows Media Center process has failed. Please restart the computer and try again.” In addition, one particular TV program was reported as still recording, days after it had ended. Nothing was being written to the drive, but nothing else would record.

Needless to say, restarting the computer fixed nothing. For all the song and dance about self-healing applications, Windows Error Reporting, and the rest of it, the reality is that Google searches and fiddling with the registry and configuration files often remains the only way to fix things.

After a couple of a false trails, I found the help I wanted on the Green Button site. Stop the Media Center services, delete the files recording.xml and recording.bak in C:\ProgramData\Microsoft\eHome\Recording, restart Media Center. All is fine, except that any existing recording schedules are lost.

A small price for domestic harmony.

Technorati tags:

Tech Ed reflections

Tech Ed Barcelona has been a low-key affair in some ways, with little in the way of exciting news; yet I was impressed with several pieces of technology which I had not looked at closely before.

I found it curious that the keynote made so little of these. In particular, I’m thinking about Silverlight 1.1, SQL Server 2008, and Project Astoria (also known as ADO.NET Data Services).

SQL Sever 2008 is a big release, though it is easy to get confused over what is part of SQL Server, and what is part of ADO.NET. I will be posting more on this subject, following my interview today with Michael Rys, Principal Program Manager of SQL Server Engine, Relational and XML (don’t try to say that quickly). One of the points of interest for those who follow Microsoft technology is the new FILESTREAM data type – in fact it is not strictly a data type, but another way to store blobs. This is a way to store unstructured data under SQL Server control, giving you the benefits of transactions, SQL Server security, backup, etc, but with the performance of the file system. In fact, each blob is stored as an individual file though you are not expected to find it using Windows Explorer. Using the SQL Server API you can get a WIn32 file handle to the blob, and there are no size limits other than those which the file system imposes. Result: faster access to the data.

Another piece of the puzzle is that full-text indexing is now fully integrated into the SQL Server engine. Right, so now we have indexed, queryable, high performance access to data in a transactional file system. Remind you of WinFS?

This will also give Sharepoint a significant performance boost in some future release, and Sharepoint is of strategic importance for Microsoft.

I’m also interested in Project Astoria, an easy to use a REST API into your database. This makes huge sense in the context of AJAX and Silverlight, and if you want to do mashups with other web services. I got the impression that Microsoft is being deliberately low key about this, pending an announcement at some future date. My guess is that it will be released at the same time as SQL Server 2008 – June next year? – but it is only a guess.

I fear much of this passed by many of the Tech Ed delegates. Talking to them at the party last night, I found that several were in the early stages of moving from .NET 1.1 to .NET 2.0. There is a substantial time lag between release and real-world adoption.

Plane about to leave so I’ll wrap up here. I do have more to post from Tech Ed, so check back soon.

Project Astoria a hit at TechEd

There is a buzz here at TechEd about Project Astoria. The reason is that it promises to simplify development of web applications that deal with data, which is most of them. Astoria is a REST API for ADO.NET, and hooks into the new Entity Framework object-relational mapping layer. Therefore, it solves two problems in one go.

Here’s a quick look at how it works. Let’s assume that you have a database which stores some information you want to present in your web application. Step one is to use Visual Studio to generate an Entity Data Model from your database.

Next, you tweak the model so that it looks as close as possible to the objects you are storing. The framework should deal with the complexities of mapping collections to linked tables and so on.

Now you create a new ADO.NET Data Service (sadly, this may well be the official name for Astoria), and point the service at your model. By default a new service does not expose any data, for security reasons, but by writing an InitializeService method you can configure which objects you want to publish.

Run the service, and the objects in your model are now URL-addressable. It’s pretty flexible. For example:

[serviceurl]/Products : return all the products (yes, you can do paging).

[serviceurl]/Products[2]: return the product with an ID of 2.

[serviceurl]/Products[Color eq ‘Blue’]: return all the blue products.

[serviceurl]/Customers[2]/Orders/:return all the orders for the customer with an ID of 2.

The data comes back in either ATOM or JSON format. Naturally, each element in the returned data includes its URL. Let’s say you have an AJAX application so you are calling this service from JavaScript. Iterating through the results and populating an HTML list or table is easy, especially as Astoria includes a client JavaScript library. There is also a client library for .NET applications. You can also add or update data with HTTP PUT, or remove it with DELETE.

You can extend your Astoria API by adding arbitrary methods that have the [WebGet] (or presumably [WebPut] or [WebDelete]) attribute. You can also add “interceptors” – code that gets called just before requests are executed, to enable validation or custom security.

Presuming it works as advertised, Astoria is a more natural and concise way to handle data than SOAP web services, and easier than devising your own techniques. It should work well with other technologies such as Adobe’s Flex. It will play nicely with mash-ups, since many other services out there use ATOM or JSON. it is a natural fit with AJAX and will work well with Silverlight – see http://www.silverlightdata.com [Silverlight 1.1 Alpha required] for an example.

Astoria will not be finished in time for the initial release of Visual Studio 2008, though reading between the lines it might be done in time for SQL Server 2008. It will work with any database server for which there is an Entity Framework provider. I was assured that creating such a provider is relatively easy, if you already have an ADO.NET 2.0 provider, so it is reasonable to expect wide support.

I think this will be popular.

Technorati tags: , , , , ,

SQL Server 2008 will miss own launch party

Excellent session here at Tech-Ed from Francois Ajenstat (Director of Product Management for SQL Server) and others on new features in SQL Server 2008. It looks good: transparent data encryption; new policy-based admin; data compression that actually speeds performance; new datatypes including FILESTREAM, for queryable but unstructured data, and DATETIME2 for high-precision date/time; spatial data support so you can query by distance, for example; new entity-data framework (not the same as LINQ but works with it) for object-relational mapping; new REST-based data API code-named Astoria; richer reporting including features acquired from Dundas and removing the dependence on Internet Information Services.

It’s a significant upgrade, but when do we get it? I had previously assumed that it would be no later than February 27th 2008, the announced launch date for Windows Server 2008, Visual Studio 2008 and SQL Server 2008. Visual Studio will actually be available to developers three months earlier, at the end of November. Not so SQL Server. Ajenstat said the version available at the launch will be a CTP (Community Tech Preview), with the final version coming in the “second quarter” – in other words, perhaps as late as June 2008.

By way of compensation, an earlier CTP coming later this month should contain most of the new features, unlike the preview available now.

Ajenstat also noted that SQL Server “vNext” is set for 2010-2011. I’m betting on 2011 at the earliest.

Visual Studio 2008 release by end November, Sync Framework announced

News from Tech-Ed Developers in Barcelona: Microsoft has announced that Visual Studio 2008 will be available to MSDN subscribers “by the end of November 2007”. I’m a little disappointed not to find the RTM build here at Tech-Ed, but that’s not long to wait. Along with Visual Studio we get .NET Framework 3.5. The package includes LINQ (Language Integrated Query), and full designer support at last for WPF (Windows Presentation Framework) as well as WF (Workflow Foundation) and WCF (Windows Communication Foundation). It has taken a year since the first release of Vista to provide proper developer support for the frameworks which shipped with it.

S Somasegar, Corporate VP of the Developer Division, is also announcing the first preview of the Microsoft Sync Framework. Mary Jo Foley has a good summary. Interesting, given that  building online/offline synch into applications can be challenging. You can download it here. The description says it is “a comprehensive synchronization platform”.

He also has a few stats. He says:

  • Over 1 million professional developers use Visual Studio 2005
  • 17 million downloads of Visual Studio Express
  • 25% of Visual Studio developers are using Visual Studio Team System.

This last statistic is higher than I expected. I spoke recently to a Team System early adopter, who told me that while he was not exactly disappointed with it, nevertheless he had come across significant problems. His biggest issue was that you cannot manage work items across team projects, making it difficult for developers involved in several different projects. He also found the integration with Office poor, and the lack of a full Web UI frustrating. Nothing more than you would expect for a version 1 release.

Finally, Somasegar mentions a new release of Popfly Explorer with “an easy way to add Silverlight gadgets built in Popfly to web pages,” to quote from the brief press overview.

Why does audio glitch in Vista?

I eagerly read An Overview of Windows Sound and Music “Glitching” Issues by Steve Ball, Senior Program Manager for Sound in Windows Vista, hoping to find out. Sadly, it offers no insight other than saying what a tough job it is for a busy operating system to play back audio smoothly.

I’d like to highlight a few of the comments to his post

The last time I remember my MP3s glitching was back when I had a P75mhz (which should be of no surprise). The only other time I had my MP3s glitch was when I upgraded my PC to Vista. This same machine (exact same hardware) which had XP running on it, *never* had an MP3 glitch. On Vista, sound **constantly** glitched. Merely scrolling web pages caused sound issues…honestly my mobile phone can play MP3s, while I surf the web, on a call and text message; all without any glitches. [from ateharani]

and this from explorer5:

Steve – Thanks for posting this article.. I’m hoping that in the second part of the series you will mention how and why “glitching” is appearing (sounding) on Windows Vista computers when those same exact computers when Windows XP was installed had no issues with sound quality.

and this, from divil:

When MS first announced that Vista could guarantee glitch-free media playback because of new kernel scheduling APIs my first thought was “what glitching?” since I’d never experienced it outside of DOS on slow machines. Now ironically, with Vista, I do get that wonderful experience. On a new PC.

Couldn’t agree more. See here for my earlier post: Audio in Vista: more hell than heaven.

Technorati tags: , , ,

Microsoft Oslo: now where have I heard this before?

“Oslo” is Microsoft’s latest pronouncement on the vexed subject of software modeling. This is from the backgrounder, which you can find here:

We are building a general-purpose modeling language, tools and repository to bridge all the models within an application, moving models to the center of application development. Models will no longer just describe the application, they will be the application.

Cool. But isn’t this reminiscent of what the OMG has talked about for years, with UML 2.x and Model Driven Architecture?

Why has MDA failed in mainstream development? I suspect the key question is whether it complicates rather than simplifies the software development process. In other words, the MDA overhead may exceed its benefits for the majority of applications. Looking at the list of OMG specifications that’s not hard to believe.

In relation to Oslo, I have a few questions.

First, why will Oslo succeed when other smart people have failed? Point of interest: they may even be the same people. Note this quote from Microsoft’s Jack Greenfield, whom I interviewed for the Register:

“We are the UML guys, that’s the funny part of it,” says Greenfield. “I was one of the chief architects at Rational; I spent a lot of time deeply steeped in the UML and in the committee work in the OMG. Other guys on team go deeper than I do.

Second, how serious is Microsoft about Oslo? When I spoke to Greenfield, I had the strong impression that modeling is an area of factional conflict within Microsoft. Thus, it could be the big thing one moment, then pushed to one side the next.

Third, how does Oslo simplify development, as opposed to giving developers yet another layer of complexity to worry about?

Irrespective of the above, it the parts of Oslo that talk about better integrating between BizTalk, the .NET Framework, and System Center do make sense:

There will also be investments aligning the metadata repositories across the Server & Tools Business products. System Center “5,” Visual Studio “10” and BizTalk Server “6” will utilize a common repository technology for managing, versioning and deploying models.

Further, who know whether Microsoft may yet do something wonderful with modeling that delivers on promises like:

In short, we want developers to be able to build [distributed] applications with one-tenth the code that is required today. And we want to establish a rich context in which those developers can interact with business analysts and IT professionals easily.

But count me in the sceptics camp until Microsoft comes up with something more convincing than rhetoric we have heard before.

How ASP.NET began in Java, and the truth about Project Cool

A bit of nostalgia for you. Cast your minds back to 1999 or thereabouts. Microsoft is finishing off IIS 4.0 and there is no such thing as C# or ASP.NET. However, there are rumours that Microsoft is creating a Java-like platform codenamed “Cool”, in the aftermath of a dispute with Sun that was making it impossible to use Java itself. Microsoft denies the rumours. Here’s a report from February 1999:

There is no Java-like language under development at Microsoft, said Michael Risse,  Microsoft’s product manager for application development tools. Risse said the company is talking to developers about a concept called Cool, a much less ambitious project intended to tie Microsoft’s Visual C++ development tool more closely to its COM+ middleware. However, Cool is not yet in development, and is unrelated to Java, said Risse. He said Cool is strictly a “whiteboard” concept, and that no software code connected to the concept has been written at Microsoft. Cool is also unrelated to any Java technology within the company, Risse stated. “There’s no connection between Cool and Visual J++, and the Java lawsuit is irrelevant to the thinking we are doing [with Cool],” he said.

Even after C# was announced in 2000, Microsoft denied that it had anything to do with Cool:

Yesterday, Microsoft executives denied that C# was related to the rumored Cool project.

Now, over to Mark Anders, co-inventor of ASP.NET, whom I interviewed earlier this month at Adobe Max Europe. I asked Anders how ASP.NET came about.

Anders: “ASP.NET happened after we shipped IIS 4.0 and everyone went on vacation. Scott Guthrie and I – Scott worked for me at the time, he was 22 years old, straight out of college – and we took advantage of the time everyone was on vacation to start brainstorming new ideas. We looked at ASP and how it was being used. I had worked on Visual InterDev so I had a lot of friends on that team, and we were looking at the new version, I think it was Visual InterDev 6.0, and we noticed how messy the code was. We said, how can we do better? Scott and I worked for a month and a half, and then when everybody came back from vacation in January we showed them a prototype and a PowerPoint deck, showed them this vision, and people said, ‘keep working on it’.”

I asked whether the prototype was based on .NET from the beginning, or “Project Cool” as the rumour went?

Anders: “No, it was not. The original prototype was written in Java. I loved Java as a language and Scott did too. So it was done in Java, and we took that around to lots of different groups. The first group that we took it to was the tools team. The VB and the InterDev teams were in a feud, and when they saw our demo they liked it. They said, ‘If you build that, we will target it with our tools.’

“The VB team was working on developing a new runtime, what became the Common Language Runtime. It was not as complicated as COM, and it had a nice object system, it was garbage collected. So we made a decision that we would write our thing, which at the time was called XSP, in this new runtime. So we were the first ones to commit to writing anything on it. The VB team was going to be using it as their runtime, they were doing their forms, but we actually built the whole thing in .NET.

“The funny thing is, you mention Cool. It was called Cool at one time, but Microsoft denied it. Scott and I presented what was then called ASP Plus, but we presented it a long time before anybody talked about .NET. We went to a conference, I think it was in Washington DC or something, and Scott and I were up on stage. He is doing this demo, and he says, ‘Here is a directory listing’. And I glance up at the screen, and I see file1.cool, all these .cool files, and we’re busy denying that there is anything called Cool, and he has this directory listing. So I was worried that somebody would see that and put two and two together… but nobody picked up on it. They had asked if they could videotape me to re-broadcast, and I’d said fine, but when I realized that the Cool screenshot was shown, I contacted them and said, ‘I can’t let you have that videotape’, and they sent it back. So it never leaked.”

All these efforts did not prevent The Register posting a story in September 2000 which describes how a reader working with early C# samples:

…discovered that the original C# compiler was called coolc, subsequently renamed as csc.exec. Elsewhere, sample C# code has the HTML tag <script language=’COOL’ runat=’server’>, and Larry notes a couple of references to the string “C\temp\fact\factorial.cool”.

So why did Microsoft deny it? I’m guessing, but maybe the company felt that ‘Project Cool’ was related to Java in people’s minds, and wanted to emphasize that .NET was 100% Java-free. Any resemblance is purely coincidental, as novelists like to say.

Lessons from Microsoft’s WSUS blunder

What happened: Microsoft pushed out an update to Windows Desktop Search (WDS) through WSUS (Windows Software Update Services, used to keep large Windows networks up-to-date), but made an error.

I found I had to read this explanation three times before I understood it, so here’s my attempt to re-phrase it.

From time to time, Microsoft issues updates to WDS. One of these updates came out back in February. Sane administrators approved this because it applied only to desktops that already had WDS installed.

Last Tuesday another such update appeared, and was automatically approved on sites where the February update had already been approved. Microsoft’s error was to make the new update applicable to all Windows XP SP2 or Windows Server 2003 machines, rather than just those where WDS was already installed.

Why was it such a big blunder? Many Enterprise PCs are set to redirect the My Documents folder to the server, where it can be backed up. WDS always indexes My Documents. Result: heavy network traffic as all these new indexes were being built. Furthermore, Microsoft’s track record for unobtrusive background indexing is not particularly good. Crippled network = lots of support calls.

The lesson: Susan Bradley says never auto-approve patches. I tend to agree, though it is a dilemma since with security-related patches time is of the essence. But here’s another case. I noticed on a Small Business Server 2003 box recently that Windows Server 2003 SP2 was waiting to be installed. Before clicking OK, I had a quick look for any issues, and came across this support note:

After applying Windows 2003 Service pack 2 on Small Business Server 2003 you may see the following issues:
1.  For both Standard and Premium:
     Missing Help and Support service
     R2 patch approve console has error on approval
2.  For Premium with ISA Server 2004
     Networking issues including NAT and VPN connectivity programs, Outlook not connecting, RPC errors, etc.

Ouch. There are solutions; but that’s definitely one to defer for after hours maintenance.