﻿<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/">
  <channel>
    <title>public class ThreeNine : GaryWoodfine,IBlog</title>
    <description>.net development topics </description>
    <link>http://blog.threenine.co.uk/Posts/tabid/93/BlogId/1/Default.aspx</link>
    <language>en-GB</language>
    <webMaster>gary.woodfine@threenine.co.uk</webMaster>
    <pubDate>Thu, 18 Mar 2010 13:37:06 GMT</pubDate>
    <lastBuildDate>Thu, 18 Mar 2010 13:37:06 GMT</lastBuildDate>
    <docs>http://backend.userland.com/rss</docs>
    <generator>Blog RSS Generator Version 3.5.1.19887</generator>
    <item>
      <title>An Agile approach to avoiding failure</title>
      <description>&lt;p&gt;My points of view on agile software development process.&lt;/p&gt; &lt;a href=http://blog.threenine.co.uk/Posts/tabid/93/EntryId/34/An-Agile-approach-to-avoiding-failure.aspx&gt;More...&lt;/a&gt;</description>
      <link>http://blog.threenine.co.uk/Posts/tabid/93/EntryId/34/An-Agile-approach-to-avoiding-failure.aspx</link>
      <comments>http://blog.threenine.co.uk/Posts/tabid/93/EntryId/34/An-Agile-approach-to-avoiding-failure.aspx#Comments</comments>
      <guid isPermaLink="true">http://blog.threenine.co.uk/Posts/tabid/93/EntryId/34/An-Agile-approach-to-avoiding-failure.aspx</guid>
      <pubDate>Thu, 06 Aug 2009 15:24:00 GMT</pubDate>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://blog.threenine.co.uk/DesktopModules/Blog/Trackback.aspx?id=34</trackback:ping>
    </item>
    <item>
      <title>Consuming Last FM RESTful web services</title>
      <description>&lt;p&gt;I have been mucking about with &lt;a href="http://www.last.fm/user/threenine" target="_blank"&gt;Last.Fm&lt;/a&gt; a lot lately.  I started looking at the API’s for the service, and I noticed they are using REST as an architectural style for the web services.  I thought I would just try elaborate the differences and approaches between REST and SOAP. &lt;/p&gt; &lt;a href=http://blog.threenine.co.uk/Posts/tabid/93/EntryId/35/need-a-REST-from-web-services.aspx&gt;More...&lt;/a&gt;</description>
      <link>http://blog.threenine.co.uk/Posts/tabid/93/EntryId/35/need-a-REST-from-web-services.aspx</link>
      <comments>http://blog.threenine.co.uk/Posts/tabid/93/EntryId/35/need-a-REST-from-web-services.aspx#Comments</comments>
      <guid isPermaLink="true">http://blog.threenine.co.uk/Posts/tabid/93/EntryId/35/need-a-REST-from-web-services.aspx</guid>
      <pubDate>Sat, 06 Jun 2009 15:24:00 GMT</pubDate>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://blog.threenine.co.uk/DesktopModules/Blog/Trackback.aspx?id=35</trackback:ping>
    </item>
    <item>
      <title>Introducing the Service Factory for modelling WCF services</title>
      <description>&lt;p&gt;In this post I provide details on how to use the &lt;strong&gt;Service Factory,&lt;/strong&gt; provided by the team at Microsoft patterns and practices. This is partly for my benefit and also for whoever would like the information.  I will not be providing exhaustive information about this awesome bit of kit, but I will be supplying enough information to get you started on it&lt;/p&gt; &lt;div id='extendedEntryBreak' name='extendedEntryBreak'&gt;&lt;/div&gt;  &lt;p&gt;As I have mentioned &lt;a href="http://blog.threenine.co.uk/Posts/tabid/93/EntryId/5/Web-Client-Software-Factory.aspx" target="_blank"&gt;previously&lt;/a&gt; I like to use software factories to assist in my development efforts. This not only assists in reducing the amount of work required to develop software, but also helps to guide development process down the path of using recommended industry patterns and practices.  The Service Factory, formerly the Web Service Software Factory is another one of those great tools.&lt;/p&gt;  &lt;h2&gt;What is the Service Factory&lt;/h2&gt; &lt;a href="http://clkuk.tradedoubler.com/click?p=18461&amp;a=1278336&amp;g=16253272" target="_BLANK"&gt;&lt;img border="0" hspace="20" vspace="20" align="right" src="http://impgb.tradedoubler.com/imp?type(img)g(16253272)a(1278336)" /&gt;&lt;/a&gt;   &lt;p&gt;The service factory is an integrated collection of tools, patterns, source code and prescriptive guidance. It is designed to help you quickly and consistently construct WCF and ASMX web services that adhere to well known architecture and design patterns. It provides automation and guidance integrated into visual studio for building services. The core of the automation components is a web services domain model. The domain model contains elements such as service contracts, operations, messages, and data contracts. This domain model manifests itself in the form of three integrated domain-specific languages (DSLs) that are used to model services: the Service Contract Model, the Data Contract Model, and the Host Model.&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;Service Factory goals:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;provide higher productivity by  raising the abstraction level for building services. &lt;/li&gt;    &lt;li&gt;Services built using the Service Factory will have a higher quality because the generated code encapsulates best practices. &lt;/li&gt;    &lt;li&gt;designed to be extensible so that it can adapt to the needs of a particular team's development processes and organizational environment. &lt;/li&gt;    &lt;li&gt;When using the Service Factory, implementation technology related decisions should be delayed until as late as possible. These decisions include which messaging platform (WCF and ASMX) to use, and which Visual Studio projects to use in making up the solution for the service. &lt;/li&gt;    &lt;li&gt;Changes to the service and its design should require as little rework as possible. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;More information on Service Factory can be found here : &lt;a href="http://servicefactory.codeplex.com/" target="_blank"&gt;http://servicefactory.codeplex.com/&lt;/a&gt;.&lt;/p&gt;  &lt;h2&gt;Installing the Service Factory &lt;/h2&gt;  &lt;p&gt;To download and install the factory . Go Here &lt;a href="http://www.microsoft.com/downloads/details.aspx?displaylang=en&amp;FamilyID=f7aa544d-ad73-4b65-88d5-63f751844540" target="_blank"&gt;http://www.microsoft.com/downloads/details.aspx?displaylang=en&amp;FamilyID=f7aa544d-ad73-4b65-88d5-63f751844540&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Ensure you have downloaded and installed the &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=C0A394C0-5EEB-47C4-9F7B-71E51866A7ED&amp;displaylang=en" target="_blank"&gt;Guidance Automation Extension (GAX)&lt;/a&gt; and &lt;a href="http://www.microsoft.com/downloads/details.aspx?familyid=B91066B3-D1D6-4990-A45F-34CF8DBDC60C&amp;displaylang=en" target="_blank"&gt;Guidance Automation Toolkit (GAT)&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;If you are running Vista, there is a slight trick you need to carry out to install it.&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Once you have downloaded and extracted the files.  Rename the .msi file to test.msi ( This is so it’s easier to execute later) &lt;/li&gt;    &lt;li&gt;Open up the Visual Studio CMD prompt as Administrator . Start –&gt; All Programs –&gt; Microsoft Visual Studio 2008 –&gt; Visual Studio Tool –&gt; Visual Studio 2008 Command Prompt ( Right Click “Run as Administrator”) &lt;/li&gt;    &lt;li&gt;Navigate to the location you have extracted the files to i.e cd\somedirectory\Web Service Software Factory Feb 2008 Refresh &lt;/li&gt;    &lt;li&gt;type test.msi &lt;/li&gt;    &lt;li&gt;The setup should execute &lt;/li&gt;    &lt;li&gt;Once complete type devenv /setup &lt;/li&gt; &lt;/ol&gt; &lt;a href="http://scripts.affiliatefuture.com/AFClick.asp?affiliateID=194016&amp;merchantID=2016&amp;programmeID=5451&amp;mediaID=38959&amp;tracking=&amp;url="&gt;&lt;img border="0" src="http://banners.affiliatefuture.com/2016/38959.gif" align="right"&gt;&lt;/a&gt;  &lt;p&gt;The Service Factory should now be installed and ready to use.  The Service factory will assist in the development of WCF or ASMX services by enabling the developer to model their concepts for the service without the need to write any code that will tie the service to any specific technology. However to understand how the Service Factory modelling works it is important to understand some of the basic concepts behind WCF. &lt;/p&gt;  &lt;h2&gt;WCF ABCs&lt;/h2&gt;  &lt;p&gt;The ABC’s of WCF  basically consist of  address, binding, and contract:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;• The address specifies where the messages can be sent (or where the service lives).      &lt;br /&gt;• The binding describes how to send the messages.       &lt;br /&gt;• The contract describes what the messages should contain.&lt;/p&gt; &lt;/blockquote&gt;  &lt;h3&gt;Address&lt;/h3&gt;  &lt;p&gt;The specific location for a service. This is a specific place to which a message will be sent. All WCF services are deployed at a specific address, listening for incoming requests. This is usually specified as a URI, however Services can be hosted in different ways the following is a brief list of the types of service addresses that are possible:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;HTTP &lt;/li&gt;    &lt;li&gt;TCP &lt;/li&gt;    &lt;li&gt;MSMQ &lt;/li&gt;    &lt;li&gt;Named Pipes &lt;/li&gt;    &lt;li&gt;Base Addresses &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt; &lt;/p&gt;  &lt;h3&gt;Bindings&lt;/h3&gt;  &lt;p&gt;Used to specify the transport, encoding and protocol details required for clients and services to communicate with each other. These bindings are used by WCF to generate the underlying wire representation of the endpoint. This is made up of a collection of binding elements. A binding must include:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Transport &lt;/li&gt;    &lt;li&gt;Message encoding &lt;/li&gt;    &lt;li&gt;and any number of Protocol binding elements. &lt;/li&gt; &lt;/ul&gt;  &lt;h3&gt;Contract&lt;/h3&gt;  &lt;p&gt;A WCF contract is a set of specifications that define the interfaces of a WCF service. A WCF service communicates with other applications according to it’s contracts. &lt;/p&gt;  &lt;h6&gt;&lt;/h6&gt;  &lt;h4&gt;Service Contract&lt;/h4&gt;  &lt;p&gt;Is the interface of the WCF service. It provides details of the service. It may include service level settings such as the name and namespace of the service.  Normally a WCF service has at least one service contract.&lt;/p&gt;  &lt;h4&gt;Operation Contract&lt;/h4&gt;  &lt;p&gt;Defined within the service contract. It defines the parameters and return type of an operation. An operation can take a primitive data type or it can take a message. An operation contract is a definition of an operation. It has to be implemented in other that the service functions as a WCF service. It also defines operation level settings such as transaction flow, directions of operations and the fault contract.&lt;/p&gt;  &lt;h4&gt;Message Contract&lt;/h4&gt;  &lt;p&gt;If an operation contract needs to pass a message as a parameter of return a message, the type of messages will be defined as message contracts. A message contract defines the elements of the message, as well as any message related settings i.e. Message Security and Message Structure.&lt;/p&gt;  &lt;h4&gt;Data Contract&lt;/h4&gt;  &lt;p&gt;Data contracts are the data types of the WCF service. All data types used by the WCF service must be described in metadata to enable other applications to interoperate with the service. A data contract can be used as  as a parameter, return type or by a message contract to define elements.  &lt;/p&gt;  &lt;h4&gt;Fault Contract&lt;/h4&gt;  &lt;p&gt;If an error occurs in a operation contract the calling application should be warned of that error, these error types are defined as fault contracts. &lt;/p&gt;  &lt;h3&gt;Endpoint&lt;/h3&gt;  &lt;p&gt;Messages are sent between endpoints. Endpoints are places where messages are sent or received or both. They define all of the information required for the message exchange. A service exposes one or more endpoints. A service can expose this information as the metadata that clients can process to generate appropriate WCF clients and communication stacks. &lt;/p&gt;  &lt;h3&gt;Behaviour&lt;/h3&gt;  &lt;p&gt;A WCF behaviour is a type, or settings to extend the functionality of the original type. There are many types of behaviours in WCF:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Binding Behaviour &lt;/li&gt;    &lt;li&gt;Service Behaviour &lt;/li&gt;    &lt;li&gt;Security Behaviour &lt;/li&gt;    &lt;li&gt;Channel Behaviour. &lt;/li&gt; &lt;/ul&gt;  &lt;h3&gt;Hosting&lt;/h3&gt;  &lt;p&gt;A WCF service is a component that can be called by other applications. It must be hosted in an environment in order to be discovered and used. There are Several ways to host the service:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Self Hosting &lt;/li&gt;    &lt;li&gt;Windows Service Hosting &lt;/li&gt;    &lt;li&gt;IIS Hosting &lt;/li&gt;    &lt;li&gt;Windows Activation Services Hosting &lt;/li&gt; &lt;/ul&gt;  &lt;h3&gt;Channels&lt;/h3&gt;  &lt;p&gt;The WCF channels stack is a layered  communication stack with one or more channels that process messages. &lt;/p&gt;  &lt;h3&gt;Metadata&lt;/h3&gt;  &lt;p&gt;The metadata of a service describes the characteristics of the service that an external entity needs to understand in order to communicate with the service. &lt;/p&gt;  &lt;h3&gt;Useful Resources&lt;/h3&gt;  &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/magazine/cc164250.aspx" target="_blank"&gt;Service Station&lt;/a&gt; -  A great article by Gerardo de Geest and Gerben van Loon  &lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;h3&gt;&lt;/h3&gt;  &lt;p&gt;Keep Grinding the code,&lt;/p&gt;  &lt;p&gt;Gary&lt;/p&gt;</description>
      <link>http://blog.threenine.co.uk/Posts/tabid/93/EntryId/39/Modeling-a-WCF-Service-Factory-with-Web-Service-Software-Factory.aspx</link>
      <comments>http://blog.threenine.co.uk/Posts/tabid/93/EntryId/39/Modeling-a-WCF-Service-Factory-with-Web-Service-Software-Factory.aspx#Comments</comments>
      <guid isPermaLink="true">http://blog.threenine.co.uk/Posts/tabid/93/EntryId/39/Modeling-a-WCF-Service-Factory-with-Web-Service-Software-Factory.aspx</guid>
      <pubDate>Tue, 26 May 2009 16:03:55 GMT</pubDate>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://blog.threenine.co.uk/DesktopModules/Blog/Trackback.aspx?id=39</trackback:ping>
    </item>
    <item>
      <title>Asp Net won’t run on server</title>
      <description>&lt;p&gt;aspnet_wp.exe could not be started. The error code for the failure is 80004005. This error can be caused when the worker process account has insufficient rights to read the .NET Framework files. Please ensure that the .NET Framework is correctly installed and that the ACLs on the installation directory allow access to the configured account. &lt;/p&gt; &lt;a href=http://blog.threenine.co.uk/Posts/tabid/93/EntryId/38/Asp-Net-won-rsquo-t-run-on-server.aspx&gt;More...&lt;/a&gt;</description>
      <link>http://blog.threenine.co.uk/Posts/tabid/93/EntryId/38/Asp-Net-won-rsquo-t-run-on-server.aspx</link>
      <comments>http://blog.threenine.co.uk/Posts/tabid/93/EntryId/38/Asp-Net-won-rsquo-t-run-on-server.aspx#Comments</comments>
      <guid isPermaLink="true">http://blog.threenine.co.uk/Posts/tabid/93/EntryId/38/Asp-Net-won-rsquo-t-run-on-server.aspx</guid>
      <pubDate>Fri, 22 May 2009 12:11:12 GMT</pubDate>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://blog.threenine.co.uk/DesktopModules/Blog/Trackback.aspx?id=38</trackback:ping>
    </item>
    <item>
      <title>Setting up a virtual network of Virtual PC’s</title>
      <description>&lt;p&gt;In this post I provide instructions on how to set up a virtual network of Virtual PC’s on the same laptop.&lt;/p&gt; &lt;a href=http://blog.threenine.co.uk/Posts/tabid/93/EntryId/37/Setting-up-a-virtual-network-of-Virtual-PC-rsquo-s.aspx&gt;More...&lt;/a&gt;</description>
      <link>http://blog.threenine.co.uk/Posts/tabid/93/EntryId/37/Setting-up-a-virtual-network-of-Virtual-PC-rsquo-s.aspx</link>
      <comments>http://blog.threenine.co.uk/Posts/tabid/93/EntryId/37/Setting-up-a-virtual-network-of-Virtual-PC-rsquo-s.aspx#Comments</comments>
      <guid isPermaLink="true">http://blog.threenine.co.uk/Posts/tabid/93/EntryId/37/Setting-up-a-virtual-network-of-Virtual-PC-rsquo-s.aspx</guid>
      <pubDate>Wed, 20 May 2009 09:13:51 GMT</pubDate>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://blog.threenine.co.uk/DesktopModules/Blog/Trackback.aspx?id=37</trackback:ping>
    </item>
    <item>
      <title>Visual Studio 2008 : Websites and Web Projects</title>
      <description>&lt;p&gt;Somewhat confusingly, Visual Studio offers two ways to create an ASP.net-powered web application. In this post I discuss the differences between them and provide details as to which situation is best to use either.&lt;/p&gt; &lt;a href=http://blog.threenine.co.uk/Posts/tabid/93/EntryId/36/Visual-Studio-2008-Websites-and-Web-Projects.aspx&gt;More...&lt;/a&gt;</description>
      <link>http://blog.threenine.co.uk/Posts/tabid/93/EntryId/36/Visual-Studio-2008-Websites-and-Web-Projects.aspx</link>
      <comments>http://blog.threenine.co.uk/Posts/tabid/93/EntryId/36/Visual-Studio-2008-Websites-and-Web-Projects.aspx#Comments</comments>
      <guid isPermaLink="true">http://blog.threenine.co.uk/Posts/tabid/93/EntryId/36/Visual-Studio-2008-Websites-and-Web-Projects.aspx</guid>
      <pubDate>Mon, 18 May 2009 13:52:36 GMT</pubDate>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://blog.threenine.co.uk/DesktopModules/Blog/Trackback.aspx?id=36</trackback:ping>
    </item>
  </channel>
</rss>