Archive: October, 2008
Some highlights from a nice article that I found in my feeds. They are excerpts of the document, text in italic was written by me. Please note that the lines lack some context.
.NET Services
.NET Access Control Service
All communication with the Access Control Service relies on standard protocols such as WS-Trust and WS-Federation. This makes the service accessible from any kind of application on any platform.
Claims-based identity is on its way to becoming the standard approach for distributed environments.
By providing an STS (Securtity Token Service) in the cloud, complete with rules-based claims transformation, the Access Control Service makes this modern approach to identity more attractive.
.NET Service Bus
The Service Bus assigns your organization a URI root, below which you’re free to create any naming hierarchy you like.
This allows your endpoints to be assigned specific, discoverable URIs.
Your application must also open a connection with the Service Bus for each endpoint it exposes.
The Service Bus holds this connection open, which solves two problems.
First, NAT is no longer an issue, since traffic on the open connection with the Service Bus will always be routed to your application. Second, because the connection was initiated from inside the firewall, there’s no problem passing information back to the application—the firewall won’t block this traffic.
.NET Workflow Service
Running (workflows) in the cloud brings some limitations, however.(not all Windows Workflow Foundation activities are available: code activity isn’t).
WF-based applications running in the Workflow Service can only use WF’s sequential workflow model, for example.
Also, running arbitrary code isn’t allowed, and so neither the BAL’s Code activity nor custom activities can be used.
SQL Services
SQL Services is an umbrella name for what will be a group of cloud-based technologies.
(the first one available is SQL Data Services)
SQL Data Services doesn’t provide a standard relational database, nor does it support SQL queries.
LINQ C# syntax, with queries sent via either SOAP or a RESTful approach. The other is to use ADO.NET Data Services
Live Services
A mesh-enabled Web application must be implemented using a multi-platform technology, such as Microsoft Silverlight, DHTML, or Adobe Flash. These technologies are supported on all of the operating systems that can run the Live Framework.(targeting Windows Vista/XP, Macintosh OS X, and Windows Mobile 6).

After the yesterday’s announcement of Windows Azure, the brand new cloud-based Windows, today I started reading a little bit about it. This new platform seems promising, and I’ll write a bit about it in some of my next blog entries.
First of all I’ll talk about the Windows Azure, which is a part of the Azure Services Platform. It allows you to run applications and store data on the cloud (replace cloud by “a bunch o Microsoft data centers”). You can reduce the Total Cost of Ownership (I don’t say eliminate, because you will have to pay for the service), because you don’t have to build/buy/care about the infrastructure. You contract a service that is payed based on usage, so you can get scalable solutions even for start-up projects for which is difficult to predict the needs.
Computing
You can have 2 kind of applications running on Windows Azure. Web applications and workers (asp.net applications vs. something like the Windows services).
Web Role
Web applications are just like any web app that you write nowadays (receiving HTTP requests and responding) but in order to take advantage of the farm of virtual servers that Windows Azure provides you, your web applications should be stateless.
Well, not really stateless, but the state must be stored in a particular way. If you used session variables stored in the web server, you app would be attached to a particular server (the one to which the first request was made), this way any load balancing decision that lead your end-user to another server would lead to loss of that session data in the subsequent request… The right way to do it is to use cookies or (to prevent overhead on communications, or for security concerns) Windows Azure storage, which is available from all the virtual servers that serve your application.
Worker Role
Another option is to have an application that does some background work. They can’t have inbound communication, but can connect the outside world. They can read data from the Windows Azure Storage, and in the typical scenario, they get data from queues (which is one of the 3 storage mechanism of Azure). This kind of application can run indefinitely just like a Windows Service.
Storage
What about storage? There are 3 kind of storage that I’ll briefly refer.
Blobs - to store large amounts of unstructured data such as images, movies, binary data, etc. You can associate meta-data to blobs such as location and tags for a photograph or title of an audio file, etc. Whatever you need.
Tables - not regular relational tables, just a hierarchical set of entities and properties. You can access it’s data using LINQ and not SQL (to reinforce that this isn’t an SQL table :P)
Queues - As I wrote before the main purpose of queues is communication to and between applications instances with the worker role
All the storage is replicated 3 times in order to tolerate faults (at least some of them).
As far as I read, I wasn’t able to try it yet, the Windows Azure SDK allows you to develop your applications locally and getting some guaranties that when you deploy it into to the cloud it will work smoothly. Locally you can debug you application, which you won’t be able to in the cloud.
Next: .NET Services, SQL Services and Live Services

Last week I had a workshop about Microformats with André Luís sponsored by PrimeIT and Sapo. It was very interesting and really answered some of the questions I had about Microformats.
What are Microformats?
Designed for humans first and machines second, microformats are a set of simple, open data formats built upon existing and widely adopted standards.
Which Microformats did I implement in this blog after this workshop?
hAtom
hAtom is a microformat for identifying semantic information in weblog posts and practically any other place Atom (http://www.atomenabled.org/) may be used, such as news articles. hAtom content is easily added to most blogs by simple modifications to the blog’s template definitions.
Since, as André told us, the new feature of IE8 called Web Slices is based o hAtom, by adding the class
hslice next to the hentry class, now I also support Web Slices!
hCard
hCard is a simple, open, distributed format for representing people, companies, organizations, and places, using a 1:1 representation of vCard (RFC2426) properties and values in semantic HTML or XHTML.
xFolk
xFolk (from “xFolksomony”) is a simple and open format for publishing collections of bookmarks. It better enables services for improving user experience and sharing data in web-based bookmarking software.
I was glad to ear that support for Microformats is growing on the web, and the web browsers are becoming Microformats-aware. According to André, Firefox 3 (or 3.1, I don’t remember) already brings an API for Microformats, although there isn’t any support in the user interface. Maybe in FireFox 4 we’ll get it. And as I said before, IE is supporting one of the Microformats.
There are some web browser plugins that make Microformats usable. For FireFox you can get Operator which will add a toolbar like shown in the picture bellow. You can access the contacts, events, bookmarks, etc available in the current webpage.

For Internet Explorer you can get Oomph, but I wasn’t able to use it with my blog… Well, maybe in the future it will work better.
Adding Microformats support in your blog or website can be pretty simple. It took me about 2 hours in this blog, thanks to a nice base Wordpress theme easily customizable.
Rob Miles (a MVP from UK) has made available in his website a C# book for beginners that is used in this university in the First Year programming course. Download the PDF and happy reading.

In the last day of Shift’08 Conference I attended to a session about a project of investigation that I really liked. The speakers (authors of the project) weren’t good speakers and had difficulties to “sell the product”, but the project itself and their idea really pleased me. What is it?
TODAY is a piece of generative design for mobile phones.
It’s an application that visualizes personal mobile communication. It sits on the periphery of the machine, monitoring our connectivity through the number and type of calls we receive, subtly displaying them back to us, in the form of a generative graphic. Here, the visual result is a figurative and seemingly abstract picture – the story of your day. Some days will be really colorful and wired, others quieter and more reflective, either way the resulting visuals will always be personal, unrepeatable and unique.
They have a set of rules used in the creation of the elements of each drawing. Bellow you can have a taste of the main rules.

When I talked about this project to some people they were like “And what’s the use of it? Seems silly…” As far as I am concerned: NONE!!! But it is art! It is not meant to have an use. It is pretty and meaningful. Your day recorded in an image. Brilliant concept. That’s it. No “features”. This project gets funds from the Portuguese Ministry of Culture!
This software is free and it is available for download. The only drawback is that it targets only Symbian… When someone in the audience asked the authors about porting to other platforms they told that iPhone or Android would be great, but in the iPhone would be difficult to get information about your communications, so Android would be a nice option.
I was really sad that they didn’t even mentioned Windows Mobile, which I consider to be a great platform for development that is growing everyday. I haven’t ever tried something like this, but my feeling is that it wouldn’t be that difficult to get information regarding calls log and SMS’ log on a Windows Mobile powered phone.
Try this software if you can, really. Unfortunatly I won’t be able to… TODAY, Mobile Application.
Posted on 7:43am 10/17/2008 by Bruno Silva in
Utilities,
Web
What to print an article embebed on a webpage, or other online content, but what to reduce the paper consumption? Today I found out a nice online service that allow you to edit a webpage for printing really easily.
Sometimes web pages have printing style sheets, other times copy-paste to Word is really effective. But if the web page is messy, this is a great tool.

It is worth giving it a try! Go to PrintWhatYouLike.com and start printing in a ecologic and cheaper way.