Tuesday, September 28, 2004
API Design Guidelines Digest
The full .NET Framework Design Guidelines document consists of more than 200 pages of detailed prescriptive guidance. In can be accesses at MSDN. This document is a distilled version highlighting the most important of those guidelines. Moving to a managed execution environment (the .NET Framework) offers an opportunity to improve the programming model. For several reasons, we strongly advise designers to treat the Design Guidelines as if they were prescriptive. We believe that developer productivity can be seriously hampered by inconsistent design.
Topics: Programming | BestPractices
Sunday, September 26, 2004
Presidential Candidate Website Smackdown
It's a good thing for President Bush that elections are not decided based on the quality of your website, or his presidential prospects would be hopeless. Like him or not, Kerry has the better website hands down. Perhaps his elitist lifestyle has contributed to the quality of his website. See also: Summer Olympic sites
Monday, September 20, 2004
IM, Robot
America Online Inc. (AOL) is launching a program Monday to promote and facilitate the creation of what it calls AIM Robots for its AIM instant messaging system. AIM Robots are sponsored and operated by AOL and other vendors and appear as buddy icons in the buddy lists of AIM users who install them. For example, users can send an instant message to the AOLYellowpages AIM Robot with the name of a local business or with simply a keyword and the robot replies with related directory listings. The Wall Street Journal robot lets users set up news alerts to be delivered via AIM, as well as request stock prices. A robot sponsored by the ABC quiz show "Who wants to be a millionaire?" polls users via AIM when a show contestant requests help with a particular question. A list of existing AIM Robots can be found here
Links: RunABot | Making a Bot | VB Bot code
Improving XML Document Validation with Schematron
Although XSD is capable of satisfying scenarios involving type annotated infosets it is fairly limited when it comes to describing constraints on the structure of an XML document. There are many examples of situations where common idioms in XML vocabulary design are impossible to express using the constraints available in W3C XML Schema. The three most commonly requested constraints that are incapable of being described by W3C XML Schema are:
- The ability to specify a choice of attributes. For example, a server-status element should either have a server-uptime attribute or a server-downtime attribute.
- The ability to group elements and attributes into model groups. Although one can group elements using compositors such as xs:sequence, xs:choice, and xs:all, the same cannot be done with both elements and attributes. For example, one cannot create a choice between one set of elements and attributes and another.
- The ability to vary the content model based on the value of an element or attribute. For example, if the value of the status attribute is available then the element should have an uptime child element; otherwise it should have a downtime child element. The technical name for such constraints is co-occurrence constraints.
Although these idioms are widely used in XML vocabularies it isn't possible to describe them using W3C XML Schema, which makes it difficult to rely on schema validation for enforcing the message contract. This article describes how to layer such functionality on top of the W3C XML Schema language using Schematron.
Friday, September 17, 2004
Asp.net Databinding (for XML)
Unfortunately there are XML structures a dataset can't stand, e.g. recursive structures. Of course one could redesign the structure of that document, but what if that structure already exists and you have no choice? (Or you are just a little bit bullheaded - like me :-) )
Messages vs. Documents in a Workflow System
Using workflow systems can be interesting. Everyone has a good idea of how to solve the "workflow problem," and it usually involves systems with various different basic features... however most are similar in that the problem doesn't allow for a lot of variety in how it is solved.
In fact, a rather nice reference (if you can tolerate the formality of the language), is a dissertation that compares the features of various commercial workflow systems from a standpoint of the which workflow patterns are supported by the system. A summary and the link to the original document can be found at http://tmitwww.tm.tue.nl/research/patterns/products.htm
One thing that is missed in a discussion of patterns, though, is the distinction between workflow messages, workflow documents and target documents. I find this troubling, because this is one of the key points that caused a rather embarassing project failure (for me personally), when I was attempting to create a workflow solution using Microsoft Biztalk Server.
Wednesday, September 15, 2004
Human Workflow Services and Visual Studio
Workflow Problem: The Interview ProcessEvery company has some type of interview process. This procedure usually requires coordination and communication of information between many people, some of whom are not privy to the overall process. Using HWS to model this process, participants are guided by the system to perform the correct steps in the correct order. This predefined process may be dynamically modified at run time to account for any of the one-off irregularities that typically occur in any human-driven process. Every time the process is run, all information relating to that run of the process will be stored for later retrieval for statistical analysis or legal documentation.
Tuesday, September 14, 2004
Reporting Services Links
Using an External DataSet with Reporting Services Reports Writing Custom Code for Reporting Services Reports
Support Economy Website
The Support Economy Ventures Website is an axis for regional Summits concerning the principles of The Support Economy by Shoshana Zuboff and James Maxmin.
Topics: SupportEconomy | Economics
Monday, September 13, 2004
Using the XML Features of the Excel 2003 Object Model
Microsoft Office Excel 2003 adds a number of significant features for working with XML data. This article explores the XML-related objects, methods, and properties for Excel 2003 and provides code samples illustrating their use. After completing this article, you will have a better understanding of how you can put these features to use in your own solutions.
Sunday, September 12, 2004
Using an ADO.NET DataSet as a Reporting Services Data Source
Learn how to build a data processing extension for Reporting Services that enables you to use an ADO.NET DataSet as a data source.
Friday, September 10, 2004
Fallacies of Validation
1. Fallacy of "THE Schema" 2. Fallacy of Schema Locality 3. Fallacy of Requisite Validation 4. Fallacy of Validation as a Pass/Fail Operation 5. Fallacy of a Universal Validation Language 6. Fallacy of Closed System Validation 7. Fallacy that Validation is Exclusively for Constraint Checking
Wednesday, September 08, 2004
Rationale for partial classes in XAML
The XAML file and the "code-behind" file are typically separate, so a mechanism is needed to weave them together. If each were compiled into a separate class, then composition or inheritance could be used to combine the two. Partial classes allow the two files to be compiled together into a single class. Is this necessary? No, but it might be "better" in some ways (at the cost of adding another language feature).. . . The real reason, I strongly suspect, is that weaving partial classes together is more like the way ASP.Net works, and makes XAML interface coding and web interface coding look more like each other. Don mentioned that his website is now served as XAML internally within Microsoft, where presumably it's rendered as a XAML document within the Longhorn browser/explorer. So XAML is meant to "stand alone" (within the context of a suitable browser) as well as provide a UI design markup for applications. XAML over HTTP rendered in Longhorn = the Microsoft web. Now doesn't that thought warm the heart of your cockles?
Topics: XML | XAML | Programming
How many schemas?
There are some interesting points about the general naivete of assuming that you can design a single schema (or even use a single schema language ;-) for an entire system of any complexity. I did a talk at the Applied XML DevCon last fall that described how the system I've been working on uses multiple schemas for the same XML dialect in order to assert different things at different points . . . The big issue in the Web Service space is the definition of a contract. If your schema is a localized view, how do you specify a shared contract? The WS-* specs define it in prose. But then how do you test it for compliance? There in lies the problem. Arguably each party should use schema that enforces as many requirements as they care to assert. Getting people to accept that view is an uphill battle.
Wednesday, September 01, 2004
Wikipedian Beauty
Maybe the Wikipedia is a short-lived fad, maybe it’ll get better, maybe it’ll get worse, but I was surprised that nobody pointed this out: The Wikipedia is beautiful. It’s an unexpected and unexplainable triumph of collective creativity and of order over entropy. I hope it lasts a long time, and those who criticize it Just Don’t Get It.
The SOA tenets == PEACE
The four fundamental transaction principles are nicely grouped into the acronym "ACID" that's simple to remember, and so I was looking for something that's doing the same for the SOA tenets and that sort of represents what the service idea has done to the distributed platform wars:
- Policy-Based Behavior Negotiation
- Explicitness of Boundaries
- Autonomy
- Contract
Exchange