# Monday, 05 April 2004

The MSI toolset the Office group uses (apparently)

WiX became the first project from Microsoft to be released under an OSS approved license, namely the Common Public License.

Before everyone gets sidetracked by the Open Source implications, let’s talk about exactly what WiX is.  WiX is a toolset composed of a compiler, a linker, a lib tool and a decompiler.  The compiler, called candle, is used to compile XML source code into object files that contain symbols and references to symbols.  The linker, called light, is fed one or more object files and links the references in the object files to the appropriate symbols in other object files.  Light is also responsible for collecting all of the binaries, packaging them appropriately, and generating the final MSI or MSM file.  The lib tool, called lit, is an optional tool that can be used to combine multiple object files into libraries that can be consumed by light.  Finally, the decompiler, called dark, can take existing MSI and MSM files and generate XML source code that represents the package.

 [via when setup isn't just xcopy]

 Like probably a lot of other people I hate the supposedly professional tools such as Wise and InstallShield either because they are not very good or because the are expensive or both! This toolset might well be worth a look at as an 'understandable' way of editing MSI files.


#    Comments [1] |
# Thursday, 01 April 2004

XP SP2 IE API Changes

OK, this is all I can find about IE relevant API bits on MSDN for XP SP2:

CompatFlagsFromClsid Function (Internet Explorer - URL Monikers)
Reads the Microsoft ActiveX Compatibility registry entries for the specified ActiveX control.

CoInternetIsFeatureEnabledForUrl Function (Internet Explorer - Security)
Determines whether the specified security feature control is enabled for the security zone of the specified URL.

CoInternetIsFeatureZoneElevationEnabled Function (Internet Explorer - Security)
Determines the URL policy for for the specified URL. When the policy is , this function displays a dialog that allows the user to decide whether to allow the zone elevation.

CoInternetIsFeatureEnabled Function (Internet Explorer - Security)
Determines whether the specified security feature control is enabled.

CoInternetSetFeatureEnabled Function (Internet Explorer - Security)
Enables or disables that specified security feature control.

INTERNETFEATURELIST Enumerated Type (Internet Explorer - Security)
Contains the security feature controls for Microsoft Internet Explorer.

IWinInetCacheHints Interface (Internet Explorer - URL Monikers)
Allows an URLMON client to change the file extension on the Microsoft Win32 Internet (WinInet) cache file.

Updated 01.04:

INewWindowManager interface

NewWindow3 Event (Internet Explorer - WebBrowser)
Raised when a new window is to be created. Extends NewWindow2 with additional information about the new window.

IAttachmentExecute Interface
Helps client applications safely manage the saving and opening ofattachments for users.

If anyone finds more, please let me know (not that I am becoming obsessive about this!).

#    Comments [0] |

XAML Communications failure

Chris Anderson doesn't think he was clear about the 'hack' in XAML and I misunderstood....

Pete Cole said .... That's OK a) the hack works and b) its invisible to the 'user' (they just see the programming formatting correctly as they expect) - hacking implementation of a 'programming' language ain't going to work."

The interesting to note, it is actually the Style object that implements the custom parsing and serialization of markup to support the "as use" syntax. This interface is documented and discoverable (both by tools and developers). In addition any component can implement the interface and customize their parsing.

Hack, maybe. Invisible, no.

 [via simplegeek]

The problem is I should have said "(they just see the application formatting text correctly as they expect)".

My point was hacks in Word processor code seem to be a fact of life and one 'gets away' with it because the hack is invisible to the end-user.

There may be trouble with XAML in that the hacks are visible to the end user (the developer), this is what, it seemed to me, Marc Clifton was saying (or at least one of the things he was saying).

I'm afraid I am one of those people to whom code needs to be readable; the hacks that are becoming apparent in XAML mean that, to me, it is difficult to read, i.e. to translate it in your mind to what is going on. One should be able to read a piece of code and get a sense of what it is doing, even if you've never seen the language before - this just doesn't seem to be true in XAML - tags are sometimes classes, they are sometimes instructions and unless you know the entire .NET framework off by heart you will never know just by reading a piece of code what it is you are looking at?

What does this do:

   <menuitem text="Hello" prompt="This option will cause an explosion" />

It seems that it depends upon whether I, the developer of the implementation of menuitem have implemented custom parsing. But just by reading it, do you, the XAML developer, know?

It may be that my model of what XAML is is just completely wrong and therefore I'm reading XAML samples with the wrong mindset

#    Comments [0] |
# Wednesday, 31 March 2004

The future today

According to the Platform SDK - Last updated: April 2004

And yet overhere, where we are ahead in time, it is still March 2004. Still, who is complaining, at least it says: "The next scheduled update of the Platform SDK will be for the release of Windows XP SP2".


#    Comments [0] |

XP SP2 won't be documented till after RTM?

(1) Yes- you can turn them off and on, and there are some registry keys to control finer points in the algorithm. I will discuss these keys at some point after we RTM, since they are still changing. [via jeffdav]

So all of us who write code against this stuff have to wait until some time after the thing is RTM until we can test whether our stuff works/whether it behaves as you describe.

The api CoInternetSetFeatureEnabled has appeared on MSDN, this seems to be an API to control behaviour on a per process basis (although its not at all clear from the docs) and therefore registry keys are irrelevant? Ahhhh, but registry keys are relevant to the finer points in the algorithm - so the API isn't going to be enough.

I have no idea when this API appeared, it is inconsistent with the documentation currrently/previously available. The (ta da) 'Developer Training' doesn't mention any of this. How are we supposed to track this stuff dribbling out? Where is the SDK, presumably also some time after RTM?

#    Comments [0] |
# Tuesday, 30 March 2004

IE back on the roadmap?

Want to work in one of the best teams at Microsoft? Both the Shell (as in Explorer, not cmd.exe (or Monad)*) and Internet Explorer teams are hiring SDEs and SDETs. Heck, maybe you could be the one who helps implement tabbed browsing, rendering transparent PNG files, or CSS 2.0.  :-) [via Tony Schreiner's WebLog]

 With the implication, since one would help, that tabbed browsing etc are in the pot (see disclaimer in original entry).

#    Comments [0] |

XAML is a hack

.... We then applied the same hack (uhm, i mean design) to the element explar ....  [via simplegeek]

And there we have it - they came across some problems with the initial (very cute) idea and its been one hack after another thereafter. That a hack is 'by design' doesn't make it any less of an inelegant, unsatisfactory hack. This does explain some of the bizarre syntax I have previously complained about. One wonders if the implementation of XAML is becoming like writing Word Processors - you end up putting in kludges/hacks in the code to cope with particular strange cases. That's OK a) the hack works and b) its invisible to the 'user' (they just see the programming formatting correctly as they expect) - hacking implementation of a 'programming' language ain't going to work.

#    Comments [5] |

Good arguments against XAML

Something has been nagging me about XAML for a while - why didn't I like it? After all, it ought to be right up my street have spent a bunch of time in HTML etc with Zeepe. Marc Clifton (of MyXAML) comes up with a very good list of the problems - it's design is horrible.
#    Comments [0] |

ASPNET Issue Tracker Starter Kits B

ASP.NET: Issue Tracker Starter Kits Beta Release.  - the ASP.NET Issue Tracker Starter Kit Beta is available. 

Technologies and Design Approaches Demonstrated:

  • Best practices for building applications in preparation for ASP.NET 2.0
  • Multiple database support (Access (Jet) and SQL Server)
  • Mobile web application development

[via Microsoft WebBlogs]

 Another one to look at.

#    Comments [0] |
# Monday, 29 March 2004

And the left hand knows not what the right hand writes

Avalon SDK Team posts Performance Tips.  

In the microsoft.public.windows.developer.winfx.sdk news group the Avalon SDK team has begun posting Performance Tips.  They're great nice short notes that include sample code.  Perfect for a blog entry.  Avalon SDK team, why don't you setup a blog on LonghornBlogs.com?

I believe that they might reach more people and will then also make it into Google's search index.  If you don't want to run a blog, I can syndicate your posts for others to enjoy. :)

 [via LonghornBlogs.com]

So there's a significant chunk of the PMs etc of the Longhorn development teams blogging their hearts out and the SDK team do it in the newsgroups - will any of it ever make it into MSDN - that increasingly wierdo thing we pay $ for.

And while we're at it, perhaps the Avalon SDK team would like to take a few moments off and do an SDK for XP SP2 - something that's just around the next corner rather than over the hill and far away.

#    Comments [1] |