Wednesday, 30 September 2009

70-536 exam links

A list of links which I found that was interesting for the certificate. (will be updated)

  • Nice friendly blogger who has decided to make a link to a page that describes every aspect of the 70-536 exam link

Sunday, 27 September 2009

WCF service behavior

Unlike the contracts and the addresses a behavior does not always affect both client and server. A behavior can be local and affect only the server sides way of processes the messages.

A behavior is not exposed as part of metadata.

A behavior can either be a service behavior or an endpoint behavior:

Service Behaviors (behaviors which implement IServiceBehavior

A typical service behavior is the debug logging behavior, which is enabled by adding a serviceBehavior in the config file.

Like this:
<behavior name="serviceBehavior">
<serviceDebug includeExceptionDetailInFaults="true"/>

One thing that is important to remember is to associate the service with this behavoir. like this:

<service behaviorConfiguration="ServiceBehavior" name="host.HelloIndigoService">

Behaviors can of cause also be added programmatically.

Endpoint Behaviors(behaviors which implement IEndpointBehavior

A endpoint behavior is defined in the same way, but here its not associate with a service but with the actual endpoint.

WCF Metadata Exchange (mex)

To my understanding, metadata exchange (in WCF) means whether the service will offer a WSDL or other types of metadata to a client to enable them to autogenerate a proxy for the web services.

By default it is not enabled to exchange metadata, so its something that has to be added as an extra endpoint.

The endpoint works as any other endpoint (see link), where the contract type IMetadataExchange is mandatory. This contract type is a predefined service contract which is found in System.ServiceModel.Description namespace.

The endpoint can have different kinds of bindings like MexHttpBinding (meaning HTTP), MexHttpsBinding (HTTPS)

From a web service perspective it seems a bit strange that you would have to specifically add an endpoint to allow metadata transfer. But since WCF is a general communication framework I'm sure there is lots of places where its better not to have a service sending out metadata.

WCF service endpoint

An endpoint is defined by an address, contract and binding.

A address can be defined in the following ways (in the config file) either as implicit using the base address (which is required to be defined):

<endpoint binding="basicHttpBinding" name="basicHttp" contract="Host.ItecneckService" />

Which would make the service address: "http://localhost:8000/tecneck/"
or as a relative url:

<endpoint address="TecneckService" binding="basicHttpBinding" name="basicHttp" contract="Host.ItecneckService" />

making the url: "http://localhost:8000/tecneck/TecneckService"

or full url:

<endpoint address="http://localhost:8000/tecneck/TecneckService" binding="basicHttpBinding" name="basicHttp" contract="Host.ItecneckService" />

The base address is added like this (under the <service> tag):
<add baseAddress="http://localhost:8000/tecneck"/>

A Service can have several endpoints but they have to be unique, and differ in either address, contract or transport protocol. There can be several reasons why a service would have multiple endpoints for example:

  • The service implements several contracts, which could each need their own endpoint

  • More the one protocol should be supported

  • same service must be accessible by clients with different binding requirements, possibly related to security, reliable messaging, or transactions.

Thursday, 17 September 2009

The Pomorodo order

One of the things I have realised after I started using the Pomorodo technique, is that I am very bad at working on one thing at the time. Not working and chatting, or checking emails and so on, but continue and finish working on one task without working on other problems also.

So I set a mark at the task I'm working on, when I start, so I don't get tempted to shift between them :-)

Tuesday, 8 September 2009

How do you keep the pauses short with the Pomodoro Technique?

After half a day of using the Pomodoro technique, it seems that my biggest problem is to keep the breaks between the pomodoro's (or is it pomodori as it would be in Italian) short. Because my purposeful going away from work always enters in a conversation with a colleague which everybody knows takes a lot more than 3-5 minutes in Rome, or reading an article online...

On the other hand it also seems a bit hash to start putting a clock on the pauses... hmm what to do?

Doing the pomodoro technique.

Today on facebook I saw a friend mention a new agile technique called the pomodoro technique. Since Im doing a lot of documentation these days, and not really that motivate, I tought that it would be fun to try.

I found a pomodoro-technique-in-5-minutes post.

After skimming the post, I am now ready with my pen, three sheets (Records sheet, Activity Inventory sheet and To Do Today sheet), to start out using this pomodoro technique.

Still feel a bit unsure about the Records sheet, but hopefully Im going to figure that out in my first pomodoro: "Read the pomodoro technique book". Since I have a lot to do I will only allow one pomodoro for this, and read the rest later.

book is downloadable here:

So first pomodoro is finished, and I read concentrated in his book about how to continue using his technique. First I love the fact that it is an Italian who came up with the idea, living in Rome I don't really feel that Italians have much need for structuring their time too carefully.

Francesco Cirillo explains that you should add a "'" in your "To Do Today" sheet when ever you get an impulse to do something else, checking email, check facebook ect. and write it down on your list of things to do either on the "To Do Today" list or the Activity Inventory sheet if it doesn't need to be done today.

Even if I only read the first 20 pages of the book (45 in total) I see I need to priorities my work day a bit, and focus on the things I need to finish, and read the rest of the book tonight ( should I put it on the Activity list :)).