<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet title="XSL formatting" type="text/xsl" href="/atom.xsl" ?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="fr">
  <title>Geoffrey Vandiest WebLog</title>
  <link rel="self" type="application/atom+xml" href="http://geoffrey-vandiest.skynetblogs.be/atom.xml"/>
  <link rel="alternate" type="text/html" href="http://geoffrey-vandiest.skynetblogs.be/" />
  <subtitle>This blog is made by a developer for developers, it's about Information technology,  Web 2.0, robotics, ASP.NET, PHP,...</subtitle>
  <updated>2012-02-02T13:55:01+01:00</updated>
  <rights>All Rights Reserved blogSpirit</rights>
  <generator uri="http://myblog.skynet.be/admin/" version="6.0"></generator>
  <id>http://geoffrey-vandiest.skynetblogs.be/</id>
      <entry>
      <author>
        <name>Geoffrey Vandiest</name>
        <uri>http://geoffrey-vandiest.skynetblogs.be/about.html</uri>
      </author>
      <title>This Blog has moved</title>
      <link rel="alternate" type="text/html" href="http://geoffrey-vandiest.skynetblogs.be/archive/2008/10/06/this-blog-has-moved.html" />
            <id>tag:geoffrey-vandiest.skynetblogs.be,2008-10-06:2376300</id>
      <updated>2008-10-06T21:41:25+02:00</updated>
      <published>2008-10-06T21:41:25+02:00</published>
                            <category term="Web" scheme="http://www.blogspirit.com/ns/types#category" />
                              <summary>   This blog has moved!!!!!      http://geoffrey.vandiest.biz </summary>
      <content type="html" xml:base="http://geoffrey-vandiest.skynetblogs.be/">
          &lt;p&gt;&lt;a target=&quot;_self&quot; href=&quot;http://geoffrey.vandiest.biz&quot;&gt;&lt;font size=&quot;5&quot;&gt;This blog has moved!!!!!&lt;/font&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;http://geoffrey.vandiest.biz&lt;/p&gt;
      </content>
    </entry>
      <entry>
      <author>
        <name>Geoffrey Vandiest</name>
        <uri>http://geoffrey-vandiest.skynetblogs.be/about.html</uri>
      </author>
      <title>MVC with ASP.NET</title>
      <link rel="alternate" type="text/html" href="http://geoffrey-vandiest.skynetblogs.be/archive/2008/02/09/mvc-with-asp-net.-1.html" />
            <id>tag:geoffrey-vandiest.skynetblogs.be,2008-02-09:2376299</id>
      <updated>2008-02-09T16:31:39+01:00</updated>
      <published>2008-02-09T16:31:39+01:00</published>
                            <category term="Web" scheme="http://www.blogspirit.com/ns/types#category" />
                                    <category term="mvc" scheme="http://www.blogspirit.com/ns/types#tag" />
                    <category term="mvp" scheme="http://www.blogspirit.com/ns/types#tag" />
                    <category term="model view controller" scheme="http://www.blogspirit.com/ns/types#tag" />
                    <category term="model view presenter" scheme="http://www.blogspirit.com/ns/types#tag" />
                    <category term="tdd" scheme="http://www.blogspirit.com/ns/types#tag" />
                    <category term="unit test" scheme="http://www.blogspirit.com/ns/types#tag" />
                    <category term="monorail" scheme="http://www.blogspirit.com/ns/types#tag" />
                    <category term="system web mvc" scheme="http://www.blogspirit.com/ns/types#tag" />
              <summary>             Model view controller with ASP.NET        Post was moved to...</summary>
      <content type="html" xml:base="http://geoffrey-vandiest.skynetblogs.be/">
          &lt;p&gt;&lt;font face=&quot;Arial&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;h1 style=&quot;MARGIN: 12pt 0cm 3pt&quot;&gt;&lt;span style=&quot;mso-ansi-language: EN-GB&quot; lang=&quot;EN-GB&quot;&gt;&lt;font size=&quot;5&quot;&gt;&lt;font face=&quot;Arial&quot;&gt;Model view controller with ASP.NET&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/h1&gt;&lt;p&gt;&lt;span style=&quot;mso-ansi-language: EN-GB&quot; lang=&quot;EN-GB&quot;&gt;&lt;font size=&quot;5&quot;&gt;&lt;font face=&quot;Arial&quot;&gt;Post was moved to &lt;a href=&quot;http://geoffrey.vandiest.biz/post/ASPNET-MVC-with-Webforms.aspx&quot;&gt; here&lt;/a&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;MARGIN: 0cm 0cm 0pt&quot; class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;mso-ansi-language: EN-GB&quot; lang=&quot;EN-GB&quot;&gt;&lt;font face=&quot;Verdana&quot;&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;MARGIN: 0cm 0cm 0pt&quot; class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: Verdana;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://static.skynetblogs.be/media/89204/dyn004_original_797_607_pjpeg_2579043_0cfb9b9da651d32b784855910022b243.jpg&quot; alt=&quot;clip_image001&quot; title=&quot;clip_image001&quot; /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;mso-ansi-language: EN-GB&quot; lang=&quot;EN-GB&quot;&gt;&lt;font face=&quot;Verdana&quot;&gt;&lt;span style=&quot;TEXT-ALIGN: left&quot;&gt; &lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;font face=&quot;Verdana&quot;&gt;&lt;p style=&quot;MARGIN: 0cm 0cm 0pt 18pt&quot; class=&quot;MsoNormal&quot;&gt;&amp;nbsp;&lt;/p&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;mso-ansi-language: EN-GB&quot; lang=&quot;EN-GB&quot;&gt;&lt;font face=&quot;Verdana&quot;&gt;&lt;/font&gt;&lt;/span&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;mso-ansi-language: EN-GB&quot; lang=&quot;EN-GB&quot;&gt;&lt;font face=&quot;Verdana&quot;&gt;&lt;/font&gt;&lt;/span&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;mso-ansi-language: EN-GB&quot; lang=&quot;EN-GB&quot;&gt;&lt;font face=&quot;Verdana&quot;&gt;&lt;/font&gt;&lt;/span&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;mso-ansi-language: EN-GB&quot; lang=&quot;EN-GB&quot;&gt;&lt;font face=&quot;Verdana&quot;&gt;&lt;/font&gt;&lt;/span&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;mso-ansi-language: EN-GB&quot; lang=&quot;EN-GB&quot;&gt;&lt;font face=&quot;Verdana&quot;&gt;&lt;/font&gt;&lt;/span&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;mso-ansi-language: EN-GB&quot; lang=&quot;EN-GB&quot;&gt;&lt;font face=&quot;Verdana&quot;&gt;&lt;/font&gt;&lt;/span&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;mso-ansi-language: EN-GB&quot; lang=&quot;EN-GB&quot;&gt;&lt;font face=&quot;Verdana&quot;&gt;&lt;/font&gt;&lt;/span&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;mso-ansi-language: EN-GB&quot; lang=&quot;EN-GB&quot;&gt;&lt;font face=&quot;Verdana&quot;&gt;&lt;/font&gt;&lt;/span&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;mso-ansi-language: EN-GB&quot; lang=&quot;EN-GB&quot;&gt;&lt;font face=&quot;Verdana&quot;&gt;&lt;/font&gt;&lt;/span&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;mso-ansi-language: EN-GB&quot; lang=&quot;EN-GB&quot;&gt;&lt;font face=&quot;Verdana&quot;&gt;&lt;/font&gt;&lt;/span&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;mso-ansi-language: EN-GB&quot; lang=&quot;EN-GB&quot;&gt;&lt;font face=&quot;Verdana&quot;&gt;&lt;/font&gt;&lt;/span&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;mso-ansi-language: EN-GB&quot; lang=&quot;EN-GB&quot;&gt;&lt;font face=&quot;Verdana&quot;&gt;&lt;/font&gt;&lt;/span&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;mso-ansi-language: EN-GB&quot; lang=&quot;EN-GB&quot;&gt;&lt;font face=&quot;Verdana&quot;&gt;&lt;/font&gt;&lt;/span&gt;&amp;nbsp;&lt;/p&gt;&lt;p style=&quot;MARGIN: 0cm 0cm 0pt&quot; class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;mso-ansi-language: EN-GB&quot; lang=&quot;EN-GB&quot;&gt;&lt;font face=&quot;Verdana&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;mso-ansi-language: EN-GB&quot; lang=&quot;EN-GB&quot;&gt;&lt;o:p&gt;&lt;font face=&quot;Verdana&quot;&gt;&lt;span style=&quot;TEXT-ALIGN: left&quot;&gt;&lt;div&gt;&lt;img border=&quot;0&quot; src=&quot;http://static.skynetblogs.be/media/89204/dyn004_original_276_355_pjpeg_2579043_7bcff7bf45228d0d6eb1ec24d5c2b51e.jpg&quot; alt=&quot;image002&quot; title=&quot;image002&quot; /&gt;&lt;/div&gt;&lt;p style=&quot;MARGIN: 0cm 0cm 0pt&quot; class=&quot;MsoNormal&quot;&gt;&amp;nbsp;&lt;/p&gt;&lt;/span&gt;&lt;/font&gt;&lt;p&gt;&lt;span style=&quot;mso-ansi-language: EN-GB&quot; lang=&quot;EN-GB&quot;&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;MARGIN: 0cm 0cm 0pt&quot; class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;mso-ansi-language: EN-GB&quot; lang=&quot;EN-GB&quot;&gt;&lt;font face=&quot;Verdana&quot;&gt;T&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;MARGIN: 0cm 0cm 0pt&quot; class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;mso-ansi-language: EN-GB&quot; lang=&quot;EN-GB&quot;&gt;&lt;o:p&gt;&lt;font face=&quot;Verdana&quot;&gt;&amp;nbsp;&lt;/font&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;span style=&quot;mso-ansi-language: EN-GB&quot; lang=&quot;EN-GB&quot;&gt;&lt;o:p&gt;&lt;span style=&quot;TEXT-ALIGN: left&quot;&gt;&lt;div&gt;&lt;img border=&quot;0&quot; src=&quot;http://static.skynetblogs.be/media/89204/dyn004_original_1024_651_pjpeg_2579043_0cf30808f852df31dc1182842c584ff2.jpg&quot; alt=&quot;image004&quot; title=&quot;image004&quot; /&gt;&lt;/div&gt;&lt;p style=&quot;MARGIN: 0cm 0cm 0pt&quot; class=&quot;MsoNormal&quot;&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;font face=&quot;Verdana&quot;&gt;&lt;/font&gt;&lt;span style=&quot;mso-ansi-language: EN-GB&quot; lang=&quot;EN-GB&quot;&gt;&lt;font face=&quot;Verdana&quot;&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;MARGIN: 0cm 0cm 0pt&quot; class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;mso-ansi-language: EN-GB&quot; lang=&quot;EN-GB&quot;&gt;&lt;font face=&quot;Verdana&quot;&gt;Our mo&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;/span&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;
      </content>
    </entry>
      <entry>
      <author>
        <name>Geoffrey Vandiest</name>
        <uri>http://geoffrey-vandiest.skynetblogs.be/about.html</uri>
      </author>
      <title>MVC with ASP.NET</title>
      <link rel="alternate" type="text/html" href="http://geoffrey-vandiest.skynetblogs.be/archive/2008/02/09/mvc-with-asp-net.html" />
            <id>tag:geoffrey-vandiest.skynetblogs.be,2008-02-09:2376298</id>
      <updated>2008-02-09T16:24:58+01:00</updated>
      <published>2008-02-09T16:24:58+01:00</published>
                            <category term="mvc" scheme="http://www.blogspirit.com/ns/types#tag" />
                    <category term="asp net" scheme="http://www.blogspirit.com/ns/types#tag" />
                    <category term="tdd" scheme="http://www.blogspirit.com/ns/types#tag" />
                    <category term="sysetm web mvc" scheme="http://www.blogspirit.com/ns/types#tag" />
                    <category term="monorail" scheme="http://www.blogspirit.com/ns/types#tag" />
                    <category term="model" scheme="http://www.blogspirit.com/ns/types#tag" />
                    <category term="view" scheme="http://www.blogspirit.com/ns/types#tag" />
                    <category term="controller" scheme="http://www.blogspirit.com/ns/types#tag" />
                    <category term="model view controller" scheme="http://www.blogspirit.com/ns/types#tag" />
              <summary>    Model view controller with ASP.NET          &amp;nbsp;        It’s now...</summary>
      <content type="html" xml:base="http://geoffrey-vandiest.skynetblogs.be/">
          &lt;H1 style=&quot;MARGIN: 12pt 0cm 3pt&quot;&gt;&lt;SPAN lang=EN-GB style=&quot;mso-ansi-language: EN-GB&quot;&gt;&lt;FONT size=5&gt;&lt;FONT face=Arial&gt;Model view controller with ASP.NET&lt;?xml:namespace prefix = o ns = &quot;urn:schemas-microsoft-com:office:office&quot; /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/H1&gt;&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt&quot;&gt;&lt;SPAN lang=EN-GB style=&quot;mso-ansi-language: EN-GB&quot;&gt;&lt;FONT face=Verdana&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt&quot;&gt;&lt;SPAN lang=EN-GB style=&quot;mso-ansi-language: EN-GB&quot;&gt;&lt;FONT face=Verdana&gt;It’s now generally admitted in the community that Unit testing and TDD (Test Driven Development) are valuable techniques when it comes to increasing the overall quality of our code. Nevertheless unit testing can be costly especially when you’ve applications with a lot of logic implemented in the UI.&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt&quot;&gt;&lt;SPAN lang=EN-GB style=&quot;mso-ansi-language: EN-GB&quot;&gt;&lt;FONT face=Verdana&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt&quot;&gt;&lt;SPAN lang=EN-GB style=&quot;mso-ansi-language: EN-GB&quot;&gt;&lt;FONT face=Verdana&gt;Therefore if we want to make our application testable we need to separates the UI from the rest of the application.&amp;nbsp; Martin Fowler described on his site some patterns that separate and diminish the UI logic to a bare minimum.&amp;nbsp; They are all variants of the classical MVC (Model View Controller) pattern.&amp;nbsp; The MVC split the application in 3 parts: the view handles the display, the controller that responds to user gestures and the model that contains the domain logic.&amp;nbsp; &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt&quot;&gt;&lt;SPAN lang=EN-GB style=&quot;mso-ansi-language: EN-GB&quot;&gt;&lt;FONT face=Verdana&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt&quot;&gt;&lt;SPAN lang=EN-GB style=&quot;mso-ansi-language: EN-GB&quot;&gt;&lt;FONT face=Verdana&gt;The MVC is the foundation of very popular portal frameworks like Ruby on Rails.&amp;nbsp; To build web sites applying the MVC pattern with .Net developers can choose among several MVC frameworks like &lt;/FONT&gt;&lt;A href=&quot;http://www.castleproject.org/monorail/index.html&quot;&gt;&lt;FONT face=Verdana color=#800080&gt;Monorail&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=Verdana&gt;.&amp;nbsp; In anyway, MVC frameworks like Monorail are based on completely different paradigm as the ASP.NET framework.&amp;nbsp; This means that you have to re-learn to program web apps from scratch.&amp;nbsp; Another setback is that there are no ways to refactor your old ASP.NET applications so that they can fit into the MVC framework. &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt&quot;&gt;&lt;SPAN lang=EN-GB style=&quot;mso-ansi-language: EN-GB&quot;&gt;&lt;FONT face=Verdana&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt&quot;&gt;&lt;SPAN lang=EN-GB style=&quot;mso-ansi-language: EN-GB&quot;&gt;&lt;FONT face=Verdana&gt;I want to make myself clear, I believe that frameworks like Monorail or the coming &lt;/FONT&gt;&lt;A href=&quot;http://weblogs.asp.net/scottgu/archive/2007/10/14/asp-net-mvc-framework.aspx&quot;&gt;&lt;FONT face=Verdana color=#800080&gt;System.Web.MVC&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=Verdana&gt; are the future way of programming web apps in .NET but it demands a considerable amount of effort to learn new frameworks. It’s difficult for someone like me who has invested lots of years in mastering the classical ASP.NET code-behind model to re-learn everything from scratch. In the meantime this should not be an excuse to not make my code more testable. &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt&quot;&gt;&lt;SPAN lang=EN-GB style=&quot;mso-ansi-language: EN-GB&quot;&gt;&lt;FONT face=Verdana&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt&quot;&gt;&lt;SPAN lang=EN-GB style=&quot;mso-ansi-language: EN-GB&quot;&gt;&lt;FONT face=Verdana&gt;In this post I will explicit through a simple example how to use the model view controller pattern on top of the code-behind model.&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt&quot;&gt;&lt;SPAN lang=EN-GB style=&quot;mso-ansi-language: EN-GB&quot;&gt;&lt;o:p&gt;&lt;FONT face=Verdana&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt&quot;&gt;&lt;SPAN lang=EN-GB style=&quot;mso-ansi-language: EN-GB&quot;&gt;&lt;FONT face=Verdana&gt;We will create a login form with the MVC pattern. &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt&quot;&gt;&lt;SPAN lang=EN-GB style=&quot;mso-ansi-language: EN-GB&quot;&gt;&lt;FONT face=Verdana&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt&quot;&gt;&lt;SPAN lang=EN-GB style=&quot;mso-ansi-language: EN-GB&quot;&gt;&lt;FONT face=Verdana&gt;Setup your solution&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt&quot;&gt;&lt;SPAN lang=EN-GB style=&quot;mso-ansi-language: EN-GB&quot;&gt;&lt;FONT face=Verdana&gt;Create a new solution “Zoo” with 3 projects -&amp;gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt 36pt; TEXT-INDENT: -18pt&quot;&gt;&lt;FONT face=Verdana&gt;&lt;SPAN lang=EN-GB style=&quot;mso-ansi-language: EN-GB&quot;&gt;-&lt;/SPAN&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 7pt; mso-ansi-language: EN-GB&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN lang=EN-GB style=&quot;mso-ansi-language: EN-GB&quot;&gt;ZooWebsite-&amp;gt; ASP.NET web appplication &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt 36pt; TEXT-INDENT: -18pt&quot;&gt;&lt;FONT face=Verdana&gt;&lt;SPAN lang=EN-GB style=&quot;mso-ansi-language: EN-GB&quot;&gt;-&lt;/SPAN&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 7pt; mso-ansi-language: EN-GB&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN lang=EN-GB style=&quot;mso-ansi-language: EN-GB&quot;&gt;ZooLibrary &amp;nbsp;-&amp;gt; Class library&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt 36pt; TEXT-INDENT: -18pt&quot;&gt;&lt;FONT face=Verdana&gt;&lt;SPAN lang=EN-GB style=&quot;mso-ansi-language: EN-GB&quot;&gt;-&lt;/SPAN&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 7pt; mso-ansi-language: EN-GB&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN lang=EN-GB style=&quot;mso-ansi-language: EN-GB&quot;&gt;&amp;nbsp;ZooTest &amp;nbsp;- Class library&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt 18pt&quot;&gt;&lt;SPAN lang=EN-GB style=&quot;mso-ansi-language: EN-GB&quot;&gt;&lt;FONT face=Verdana&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt 18pt&quot;&gt;&lt;SPAN lang=EN-GB style=&quot;mso-ansi-language: EN-GB&quot;&gt;&lt;?xml:namespace prefix = v ns = &quot;urn:schemas-microsoft-com:vml&quot; /&gt;&lt;v:shapetype id=_x0000_t75 stroked=&quot;f&quot; filled=&quot;f&quot; path=&quot;m@4@5l@4@11@9@11@9@5xe&quot; o:preferrelative=&quot;t&quot; o:spt=&quot;75&quot; coordsize=&quot;21600,21600&quot;&gt;&lt;v:stroke joinstyle=&quot;miter&quot;&gt;&lt;/v:stroke&gt;&lt;v:formulas&gt;&lt;v:f eqn=&quot;if lineDrawn pixelLineWidth 0&quot;&gt;&lt;/v:f&gt;&lt;v:f eqn=&quot;sum @0 1 0&quot;&gt;&lt;/v:f&gt;&lt;v:f eqn=&quot;sum 0 0 @1&quot;&gt;&lt;/v:f&gt;&lt;v:f eqn=&quot;prod @2 1 2&quot;&gt;&lt;/v:f&gt;&lt;v:f eqn=&quot;prod @3 21600 pixelWidth&quot;&gt;&lt;/v:f&gt;&lt;v:f eqn=&quot;prod @3 21600 pixelHeight&quot;&gt;&lt;/v:f&gt;&lt;v:f eqn=&quot;sum @0 0 1&quot;&gt;&lt;/v:f&gt;&lt;v:f eqn=&quot;prod @6 1 2&quot;&gt;&lt;/v:f&gt;&lt;v:f eqn=&quot;prod @7 21600 pixelWidth&quot;&gt;&lt;/v:f&gt;&lt;v:f eqn=&quot;sum @8 21600 0&quot;&gt;&lt;/v:f&gt;&lt;v:f eqn=&quot;prod @7 21600 pixelHeight&quot;&gt;&lt;/v:f&gt;&lt;v:f eqn=&quot;sum @10 21600 0&quot;&gt;&lt;/v:f&gt;&lt;/v:formulas&gt;&lt;v:path o:connecttype=&quot;rect&quot; gradientshapeok=&quot;t&quot; o:extrusionok=&quot;f&quot;&gt;&lt;/v:path&gt;&lt;o:lock aspectratio=&quot;t&quot; v:ext=&quot;edit&quot;&gt;&lt;/o:lock&gt;&lt;/v:shapetype&gt;&lt;v:shape id=_x0000_i1025 style=&quot;WIDTH: 597.75pt; HEIGHT: 455.25pt&quot; alt=&quot;&quot; type=&quot;#_x0000_t75&quot;&gt;&lt;v:imagedata o:href=&quot;Model%20view%20controller%20with%20ASP_files/image001.jpg&quot; src=&quot;file:///C:DOCUME~1VANDIE~1LOCALS~1Tempmsohtml113clip_image001.jpg&quot;&gt;&lt;FONT face=Verdana&gt;&lt;/FONT&gt;&lt;/v:imagedata&gt;&lt;/v:shape&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt 18pt&quot;&gt;&lt;SPAN lang=EN-GB style=&quot;mso-ansi-language: EN-GB&quot;&gt;&lt;FONT face=Verdana&gt;- Create a reference from ZooWebsite to ZooLibrary &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt 18pt&quot;&gt;&lt;SPAN lang=EN-GB style=&quot;mso-ansi-language: EN-GB&quot;&gt;&lt;FONT face=Verdana&gt;(ZooWebsite , add reference, project tab select ZooLibrary)&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt 18pt&quot;&gt;&lt;SPAN lang=EN-GB style=&quot;mso-ansi-language: EN-GB&quot;&gt;&lt;FONT face=Verdana&gt;- On ZooLibrary add a reference to System.Web &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt 18pt&quot;&gt;&lt;SPAN lang=EN-GB style=&quot;mso-ansi-language: EN-GB&quot;&gt;&lt;FONT face=Verdana&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt&quot;&gt;&lt;SPAN lang=EN-GB style=&quot;mso-ansi-language: EN-GB&quot;&gt;&lt;FONT face=Verdana&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;H2 style=&quot;MARGIN: 12pt 0cm 3pt&quot;&gt;&lt;SPAN lang=EN-GB style=&quot;mso-ansi-language: EN-GB&quot;&gt;&lt;EM&gt;&lt;FONT face=Arial&gt;The View&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/EM&gt;&lt;/SPAN&gt;&lt;/H2&gt;&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt&quot;&gt;&lt;SPAN lang=EN-GB style=&quot;mso-ansi-language: EN-GB&quot;&gt;&lt;FONT face=Verdana&gt;To make our code testable it’s very important to be able to decouple the UI from the ASP.NET code-behind. &amp;nbsp;Therefore we will create an interface our ASP.NET page should implement. &amp;nbsp;This View interface will represent the contract the UI as to conform to.&amp;nbsp; When we will test our controller we will not do this with our actual web page but through a mock object that implements the View interface.&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt&quot;&gt;&lt;SPAN lang=EN-GB style=&quot;mso-ansi-language: EN-GB&quot;&gt;&lt;FONT face=Verdana&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt&quot;&gt;&lt;SPAN lang=EN-GB style=&quot;mso-ansi-language: EN-GB&quot;&gt;&lt;FONT face=Verdana&gt;Add an interface ILoginView on the project ZooLibrary:&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt&quot;&gt;&lt;SPAN lang=EN-GB style=&quot;mso-ansi-language: EN-GB&quot;&gt;&lt;FONT face=Verdana&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none&quot;&gt;&lt;B&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: #fcc867; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;namespace&lt;/SPAN&gt;&lt;/B&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: white; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt; ZooApplication.Library&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none&quot;&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: white; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none&quot;&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: white; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;B&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: #fcc867; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;public&lt;/SPAN&gt;&lt;/B&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: white; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt; &lt;/SPAN&gt;&lt;B&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: #fcc867; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;interface&lt;/SPAN&gt;&lt;/B&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: white; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt; &lt;/SPAN&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: fuchsia; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;ILoginView&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none&quot;&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: white; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none&quot;&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: white; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;B&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: #fcc867; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;string&lt;/SPAN&gt;&lt;/B&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: white; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt; ErrorMessage { &lt;/SPAN&gt;&lt;B&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: #fcc867; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;get&lt;/SPAN&gt;&lt;/B&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: white; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;;&lt;/SPAN&gt;&lt;B&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: #fcc867; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;set&lt;/SPAN&gt;&lt;/B&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: white; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none&quot;&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: white; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;B&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: #fcc867; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;string&lt;/SPAN&gt;&lt;/B&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: white; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt; EmailAddress { &lt;/SPAN&gt;&lt;B&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: #fcc867; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;get&lt;/SPAN&gt;&lt;/B&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: white; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;;&lt;/SPAN&gt;&lt;B&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: #fcc867; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;set&lt;/SPAN&gt;&lt;/B&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: white; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none&quot;&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: white; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;B&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: #fcc867; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;string&lt;/SPAN&gt;&lt;/B&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: white; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt; Password { &lt;/SPAN&gt;&lt;B&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: #fcc867; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;get&lt;/SPAN&gt;&lt;/B&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: white; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;;&lt;/SPAN&gt;&lt;B&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: #fcc867; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;set&lt;/SPAN&gt;&lt;/B&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: white; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none&quot;&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: white; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;B&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: #fcc867; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;void&lt;/SPAN&gt;&lt;/B&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: white; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt; RedirectFromLoginPage();&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none&quot;&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: white; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;System.Web.UI.WebControls.&lt;/SPAN&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: yellow; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;Button&lt;/SPAN&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: white; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt; BtnLogin { &lt;/SPAN&gt;&lt;B&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: #fcc867; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;get&lt;/SPAN&gt;&lt;/B&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: white; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;;&lt;/SPAN&gt;&lt;B&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: #fcc867; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;set&lt;/SPAN&gt;&lt;/B&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: white; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none&quot;&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: white; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: white; FONT-FAMILY: 'MS Reference Sans Serif'; mso-highlight: black; mso-no-proof: yes&quot;&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt&quot;&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: white; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;}&lt;/SPAN&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; COLOR: white; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-no-proof: yes&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt&quot;&gt;&lt;SPAN lang=EN-GB style=&quot;mso-ansi-language: EN-GB&quot;&gt;&lt;FONT face=Verdana&gt;-&amp;gt; Edit the default aspx page and enter: Welcome you are authenticated!&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt&quot;&gt;&lt;SPAN lang=EN-GB style=&quot;mso-ansi-language: EN-GB&quot;&gt;&lt;FONT face=Verdana&gt;-&amp;gt; Add the login.aspx to the ZooWebsite project.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt&quot;&gt;&lt;SPAN lang=EN-GB style=&quot;mso-ansi-language: EN-GB&quot;&gt;&lt;FONT face=Verdana&gt;&amp;nbsp;-&amp;gt; Edit the source of the login.aspx part -&amp;gt; add two textboxes, a button, and validators:&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt&quot;&gt;&lt;SPAN lang=EN-GB style=&quot;mso-ansi-language: EN-GB&quot;&gt;&lt;o:p&gt;&lt;FONT face=Verdana&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none&quot;&gt;&lt;B&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: yellow; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: yellow; mso-no-proof: yes&quot;&gt;&amp;lt;%&lt;/SPAN&gt;&lt;/B&gt;&lt;B&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: white; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;@ &lt;/SPAN&gt;&lt;/B&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: #ff9e3e; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;Page&lt;/SPAN&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: white; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt; &lt;/SPAN&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: red; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;Language&lt;/SPAN&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: white; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;=&quot;C#&quot; &lt;/SPAN&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: red; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;AutoEventWireup&lt;/SPAN&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: white; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;=&quot;true&quot; &lt;/SPAN&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: red; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;Codebehind&lt;/SPAN&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: white; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;=&quot;Login.aspx.cs&quot; &lt;/SPAN&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: red; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;Inherits&lt;/SPAN&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: white; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;=&quot;ZooApplication.Website.Login&quot; &lt;/SPAN&gt;&lt;B&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: yellow; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: yellow; mso-no-proof: yes&quot;&gt;%&amp;gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: yellow; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: yellow; mso-no-proof: yes&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none&quot;&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: yellow; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: yellow; mso-no-proof: yes&quot;&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none&quot;&gt;&lt;B&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: white; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;&amp;lt;!&lt;/SPAN&gt;&lt;/B&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: #ff9e3e; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;DOCTYPE&lt;/SPAN&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: white; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt; &lt;/SPAN&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: red; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;html&lt;/SPAN&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: white; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt; &lt;/SPAN&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: red; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;PUBLIC&lt;/SPAN&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: white; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt; &quot;-//W3C//DTD XHTML 1.0 Transitional//EN&quot; &quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&quot;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none&quot;&gt;&lt;B&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: white; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;&amp;lt;&lt;/SPAN&gt;&lt;/B&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: #ff9e3e; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;html&lt;/SPAN&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: white; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt; &lt;/SPAN&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: red; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;xmlns&lt;/SPAN&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: white; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;=&quot;http://www.w3.org/1999/xhtml&quot;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none&quot;&gt;&lt;B&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: white; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;&amp;lt;&lt;/SPAN&gt;&lt;/B&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: #ff9e3e; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;head&lt;/SPAN&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: white; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt; &lt;/SPAN&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: red; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;runat&lt;/SPAN&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: white; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;=&quot;server&quot;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none&quot;&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: white; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: #ff9e3e; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;title&lt;/SPAN&gt;&lt;B&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: white; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;&amp;gt;Login page&amp;lt;/&lt;/SPAN&gt;&lt;/B&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: #ff9e3e; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;title&lt;/SPAN&gt;&lt;B&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: white; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;&amp;gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: white; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none&quot;&gt;&lt;B&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: white; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;&amp;lt;/&lt;/SPAN&gt;&lt;/B&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: #ff9e3e; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;head&lt;/SPAN&gt;&lt;B&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: white; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;&amp;gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: white; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none&quot;&gt;&lt;B&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: white; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;&amp;lt;&lt;/SPAN&gt;&lt;/B&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: #ff9e3e; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;body&lt;/SPAN&gt;&lt;B&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: white; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;&amp;gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: white; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none&quot;&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: white; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: #ff9e3e; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;form&lt;/SPAN&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: white; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt; &lt;/SPAN&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: red; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;id&lt;/SPAN&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: white; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;=&quot;form1&quot; &lt;/SPAN&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: red; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;runat&lt;/SPAN&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: white; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;=&quot;server&quot;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none&quot;&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: white; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: #ff9e3e; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;div&lt;/SPAN&gt;&lt;B&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: white; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;&amp;gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: white; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none&quot;&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: white; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;Login form&amp;lt;&lt;/SPAN&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: #ff9e3e; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;br&lt;/SPAN&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: white; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt; /&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none&quot;&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: white; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: #ff9e3e; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;asp&lt;/SPAN&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: white; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;:&lt;/SPAN&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: #ff9e3e; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;Label&lt;/SPAN&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: white; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt; &lt;/SPAN&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: red; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;ID&lt;/SPAN&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: white; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;=&quot;LblErrorMsg&quot; &lt;/SPAN&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: red; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;runat&lt;/SPAN&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: white; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;=&quot;server&quot; &lt;/SPAN&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: red; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;Text&lt;/SPAN&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: white; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;=&quot;Invalid login&quot; &lt;/SPAN&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: red; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;Visible&lt;/SPAN&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: white; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;=&quot;false&quot; &amp;gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: #ff9e3e; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;asp&lt;/SPAN&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: white; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;:&lt;/SPAN&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: #ff9e3e; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;Label&lt;/SPAN&gt;&lt;B&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: white; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;&amp;gt;&amp;lt;&lt;/SPAN&gt;&lt;/B&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: #ff9e3e; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;br&lt;/SPAN&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: white; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt; /&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none&quot;&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: white; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;Email Address:&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none&quot;&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: white; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: #ff9e3e; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;asp&lt;/SPAN&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: white; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;:&lt;/SPAN&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: #ff9e3e; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;TextBox&lt;/SPAN&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: white; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt; &lt;/SPAN&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: red; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;ID&lt;/SPAN&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: white; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;=&quot;TxbEmailAddress&quot; &lt;/SPAN&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: red; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;runat&lt;/SPAN&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: white; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;=&quot;server&quot;&amp;gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: #ff9e3e; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;asp&lt;/SPAN&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: white; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;:&lt;/SPAN&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: #ff9e3e; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;TextBox&lt;/SPAN&gt;&lt;B&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: white; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;&amp;gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: white; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none&quot;&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: white; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: #ff9e3e; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;asp&lt;/SPAN&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: white; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;:&lt;/SPAN&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: #ff9e3e; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;RequiredFieldValidator&lt;/SPAN&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: white; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt; &lt;/SPAN&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: red; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;ID&lt;/SPAN&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: white; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;=&quot;RfvEmailAddress&quot; &lt;/SPAN&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: red; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;runat&lt;/SPAN&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: white; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;=&quot;server&quot; &lt;/SPAN&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: red; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;ErrorMessage&lt;/SPAN&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: white; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;=&quot;Enter your email address!&quot;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none&quot;&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: white; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: red; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;ControlToValidate&lt;/SPAN&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: white; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;=&quot;TxbEmailAddress&quot;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none&quot;&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: white; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: #ff9e3e; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;asp&lt;/SPAN&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: white; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;:&lt;/SPAN&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: #ff9e3e; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;RequiredFieldValidator&lt;/SPAN&gt;&lt;B&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: white; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;&amp;gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: white; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none&quot;&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: white; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: #ff9e3e; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;asp&lt;/SPAN&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: white; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;:&lt;/SPAN&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: #ff9e3e; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;RegularExpressionValidator&lt;/SPAN&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: white; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt; &lt;/SPAN&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: red; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;ID&lt;/SPAN&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: white; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;=&quot;RevEmailAddress&quot; &lt;/SPAN&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: red; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;runat&lt;/SPAN&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: white; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;=&quot;server&quot; &lt;/SPAN&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: red; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;ControlToValidate&lt;/SPAN&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: white; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;=&quot;TxbEmailAddress&quot;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none&quot;&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: white; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: red; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;ErrorMessage&lt;/SPAN&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: white; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;=&quot;Invalid email address!&quot; &lt;/SPAN&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: red; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;ValidationExpression&lt;/SPAN&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: white; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;=&quot;w+([-+.']w+)*@w+([-.]w+)*.w+([-.]w+)*&quot;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none&quot;&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: white; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: #ff9e3e; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;asp&lt;/SPAN&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: white; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;:&lt;/SPAN&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: #ff9e3e; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;RegularExpressionValidator&lt;/SPAN&gt;&lt;B&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: white; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;&amp;gt;&amp;lt;/&lt;/SPAN&gt;&lt;/B&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: #ff9e3e; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;div&lt;/SPAN&gt;&lt;B&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: white; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;&amp;gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: white; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none&quot;&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: white; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: #ff9e3e; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;div&lt;/SPAN&gt;&lt;B&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: white; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;&amp;gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: white; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none&quot;&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: white; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;Password:&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none&quot;&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: white; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: #ff9e3e; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;asp&lt;/SPAN&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: white; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;:&lt;/SPAN&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: #ff9e3e; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;TextBox&lt;/SPAN&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: white; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt; &lt;/SPAN&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: red; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;ID&lt;/SPAN&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: white; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;=&quot;TxbPassword&quot; &lt;/SPAN&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: red; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;runat&lt;/SPAN&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: white; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;=&quot;server&quot;&amp;gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: #ff9e3e; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;asp&lt;/SPAN&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: white; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;:&lt;/SPAN&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: #ff9e3e; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;TextBox&lt;/SPAN&gt;&lt;B&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: white; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;&amp;gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: white; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none&quot;&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: white; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: #ff9e3e; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;asp&lt;/SPAN&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: white; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;:&lt;/SPAN&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: #ff9e3e; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;RequiredFieldValidator&lt;/SPAN&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: white; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt; &lt;/SPAN&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: red; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;ID&lt;/SPAN&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: white; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;=&quot;RfvPassword&quot; &lt;/SPAN&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: red; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;runat&lt;/SPAN&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: white; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;=&quot;server&quot; &lt;/SPAN&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: red; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;ErrorMessage&lt;/SPAN&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: white; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;=&quot;Enter your password!&quot;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none&quot;&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: white; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: red; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;ControlToValidate&lt;/SPAN&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: white; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;=&quot;TxbPassword&quot;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none&quot;&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: white; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: #ff9e3e; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;asp&lt;/SPAN&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: white; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;:&lt;/SPAN&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: #ff9e3e; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;RequiredFieldValidator&lt;/SPAN&gt;&lt;B&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: white; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;&amp;gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: white; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none&quot;&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: white; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: #ff9e3e; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;div&lt;/SPAN&gt;&lt;B&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: white; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;&amp;gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: white; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none&quot;&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: white; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: #ff9e3e; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;div&lt;/SPAN&gt;&lt;B&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: white; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;&amp;gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: white; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none&quot;&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: white; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: #ff9e3e; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;asp&lt;/SPAN&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: white; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;:&lt;/SPAN&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: #ff9e3e; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;Button&lt;/SPAN&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: white; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt; &lt;/SPAN&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: red; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;ID&lt;/SPAN&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: white; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;=&quot;PageBtnLogin&quot; &lt;/SPAN&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: red; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;runat&lt;/SPAN&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: white; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;=&quot;server&quot; &lt;/SPAN&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: red; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;Text&lt;/SPAN&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: white; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;=&quot;Login&quot; /&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none&quot;&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: white; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: #ff9e3e; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;div&lt;/SPAN&gt;&lt;B&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: white; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;&amp;gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: white; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none&quot;&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: white; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: #ff9e3e; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;div&lt;/SPAN&gt;&lt;B&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: white; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;&amp;gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: white; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none&quot;&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: white; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: #ff9e3e; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;form&lt;/SPAN&gt;&lt;B&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: white; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;&amp;gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: white; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none&quot;&gt;&lt;B&gt;&lt;SPAN style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: white; FONT-FAMILY: 'MS Reference Sans Serif'; mso-highlight: black; mso-no-proof: yes&quot;&gt;&amp;lt;/&lt;/SPAN&gt;&lt;/B&gt;&lt;SPAN style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: #ff9e3e; FONT-FAMILY: 'MS Reference Sans Serif'; mso-highlight: black; mso-no-proof: yes&quot;&gt;body&lt;/SPAN&gt;&lt;B&gt;&lt;SPAN style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: white; FONT-FAMILY: 'MS Reference Sans Serif'; mso-highlight: black; mso-no-proof: yes&quot;&gt;&amp;gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;SPAN style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: white; FONT-FAMILY: 'MS Reference Sans Serif'; mso-highlight: black; mso-no-proof: yes&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt&quot;&gt;&lt;B&gt;&lt;SPAN style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: white; FONT-FAMILY: 'MS Reference Sans Serif'; mso-highlight: black; mso-no-proof: yes&quot;&gt;&amp;lt;/&lt;/SPAN&gt;&lt;/B&gt;&lt;SPAN style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: #ff9e3e; FONT-FAMILY: 'MS Reference Sans Serif'; mso-highlight: black; mso-no-proof: yes&quot;&gt;html&lt;/SPAN&gt;&lt;B&gt;&lt;SPAN style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: white; FONT-FAMILY: 'MS Reference Sans Serif'; mso-highlight: black; mso-no-proof: yes&quot;&gt;&amp;gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;B&gt;&lt;SPAN style=&quot;FONT-SIZE: 13pt; COLOR: white; FONT-FAMILY: 'MS Reference Sans Serif'; mso-no-proof: yes&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt&quot;&gt;&lt;SPAN lang=EN-GB style=&quot;mso-ansi-language: EN-GB&quot;&gt;&lt;o:p&gt;&lt;FONT face=Verdana&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt&quot;&gt;&lt;SPAN lang=EN-GB style=&quot;mso-ansi-language: EN-GB&quot;&gt;&lt;FONT face=Verdana&gt;&amp;nbsp;Because the code-behind is not testable and don’t make part of the SUT (Subject Under Test) we want to diminish the code-behind logic to a bare minimum. &amp;nbsp; The view responsibility is limited to output&amp;nbsp; the data coming from our model in a human readable way and to expose user input to the controller.&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt&quot;&gt;&lt;SPAN lang=EN-GB style=&quot;mso-ansi-language: EN-GB&quot;&gt;&lt;FONT face=Verdana&gt;Therefore we implement our interface through an aspx page that only contains a set of properties that binds data coming from the controller with our web controls.&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt&quot;&gt;&lt;SPAN lang=EN-GB style=&quot;mso-ansi-language: EN-GB&quot;&gt;&lt;FONT face=Verdana&gt;Generally we will try to implement all the presentation logic into the controller.&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/SPAN&gt;The only exception here will be the RedirectFromLoginPage() method.&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt&quot;&gt;&lt;SPAN lang=EN-GB style=&quot;mso-ansi-language: EN-GB&quot;&gt;&lt;FONT face=Verdana&gt;We could use a provider pattern to abstract this from the page but for the sake of simplicity I’ve decided to implement it directly in the page.&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt&quot;&gt;&lt;SPAN lang=EN-GB style=&quot;mso-ansi-language: EN-GB&quot;&gt;&lt;o:p&gt;&lt;FONT face=Verdana&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt&quot;&gt;&lt;SPAN lang=EN-GB style=&quot;mso-ansi-language: EN-GB&quot;&gt;&lt;o:p&gt;&lt;FONT face=Verdana&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none&quot;&gt;&lt;B&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: #fcc867; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;using&lt;/SPAN&gt;&lt;/B&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: white; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt; System;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none&quot;&gt;&lt;B&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: #fcc867; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;using&lt;/SPAN&gt;&lt;/B&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: white; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt; System.Data;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none&quot;&gt;&lt;B&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: #fcc867; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;using&lt;/SPAN&gt;&lt;/B&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: white; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt; System.Configuration;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none&quot;&gt;&lt;B&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: #fcc867; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;using&lt;/SPAN&gt;&lt;/B&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: white; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt; System.Collections;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none&quot;&gt;&lt;B&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: #fcc867; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;using&lt;/SPAN&gt;&lt;/B&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: white; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt; System.Web;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none&quot;&gt;&lt;B&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: #fcc867; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;using&lt;/SPAN&gt;&lt;/B&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: white; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt; System.Web.Security;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none&quot;&gt;&lt;B&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: #fcc867; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;using&lt;/SPAN&gt;&lt;/B&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: white; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt; System.Web.UI;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none&quot;&gt;&lt;B&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: #fcc867; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;using&lt;/SPAN&gt;&lt;/B&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: white; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt; System.Web.UI.WebControls;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none&quot;&gt;&lt;B&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: #fcc867; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;using&lt;/SPAN&gt;&lt;/B&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: white; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt; System.Web.UI.WebControls.WebParts;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none&quot;&gt;&lt;B&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: #fcc867; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;using&lt;/SPAN&gt;&lt;/B&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: white; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt; System.Web.UI.HtmlControls;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none&quot;&gt;&lt;B&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: #fcc867; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;using&lt;/SPAN&gt;&lt;/B&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: white; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt; ZooApplication.Library;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none&quot;&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: white; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none&quot;&gt;&lt;B&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: #fcc867; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;namespace&lt;/SPAN&gt;&lt;/B&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: white; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt; ZooApplication.Website&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none&quot;&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: white; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none&quot;&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: white; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;B&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: #fcc867; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;public&lt;/SPAN&gt;&lt;/B&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: white; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt; &lt;/SPAN&gt;&lt;B&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: #fcc867; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;partial&lt;/SPAN&gt;&lt;/B&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: white; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt; &lt;/SPAN&gt;&lt;B&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: #fcc867; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;class&lt;/SPAN&gt;&lt;/B&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: white; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt; &lt;/SPAN&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: yellow; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt;Login&lt;/SPAN&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 13pt; BACKGROUND: black; COLOR: white; FONT-FAMILY: 'MS Reference Sans Serif'; mso-ansi-language: EN-GB; mso-highlight: black; mso-no-proof: yes&quot;&gt; : System.Web.UI.&lt;/SPAN&gt;&lt;SPAN lang=EN-G
      </content>
    </entry>
      <entry>
      <author>
        <name>Geoffrey Vandiest</name>
        <uri>http://geoffrey-vandiest.skynetblogs.be/about.html</uri>
      </author>
      <title>Existe what's next?</title>
      <link rel="alternate" type="text/html" href="http://geoffrey-vandiest.skynetblogs.be/archive/2007/11/01/existe-what-s-next.html" />
            <id>tag:geoffrey-vandiest.skynetblogs.be,2007-11-01:2376297</id>
      <updated>2007-11-01T10:39:13+01:00</updated>
      <published>2007-11-01T10:39:13+01:00</published>
                            <category term="Web" scheme="http://www.blogspirit.com/ns/types#category" />
                                    <category term="exist" scheme="http://www.blogspirit.com/ns/types#tag" />
                    <category term="existe" scheme="http://www.blogspirit.com/ns/types#tag" />
                    <category term="gallery" scheme="http://www.blogspirit.com/ns/types#tag" />
              <summary>  Hello folks,      We just released a new version of  Exist  .&amp;nbsp;...</summary>
      <content type="html" xml:base="http://geoffrey-vandiest.skynetblogs.be/">
          &lt;span style=&quot;font-size: 4.5pt; font-family: Verdana&quot;&gt;&lt;font size=&quot;2&quot;&gt;Hello folks,&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;span style=&quot;font-size: 4.5pt; font-family: Verdana&quot;&gt;&lt;font size=&quot;2&quot;&gt;We just released a new version of &lt;a href=&quot;http://existe.skynet.be&quot; title=&quot;Existe&quot;&gt;Exist&lt;/a&gt; .&amp;nbsp;&lt;/font&gt;&lt;/span&gt; &lt;p&gt;&lt;span style=&quot;font-size: 4.5pt; font-family: Verdana&quot;&gt;&lt;font size=&quot;2&quot;&gt;This version contains a Gallery application.&amp;nbsp; The Gallery&amp;nbsp;enables users to post pictures on their profile.&amp;nbsp; Other users can come to admire your pictures and rate them.&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 4.5pt; font-family: Verdana&quot;&gt;&lt;font size=&quot;2&quot;&gt;Next week we will launch a new feature: The Graph,&amp;nbsp;through the graph visitors&amp;nbsp;will be able to&amp;nbsp;leave some comments on your profile.&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;span style=&quot;font-size: 4.5pt; font-family: Verdana&quot;&gt;&lt;font size=&quot;2&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;span style=&quot;font-size: 4.5pt; font-family: Verdana&quot;&gt;&lt;font size=&quot;2&quot;&gt;During the month of November we plan to review some existing features like the widget. &lt;span&gt;&amp;nbsp;&lt;/span&gt;You will be able to put your Gallery onto your widget. &lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;span style=&quot;font-size: 4.5pt; font-family: Verdana&quot;&gt;&lt;font size=&quot;2&quot;&gt;Don&amp;rsquo;t hesitate to give us feedback about the existing features or to propose new ones.&lt;/font&gt;&lt;/span&gt;&lt;span style=&quot;font-size: 4.5pt; font-family: Verdana&quot;&gt;&lt;font size=&quot;2&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;span style=&quot;font-size: 4.5pt; font-family: Verdana&quot;&gt;&lt;font size=&quot;2&quot;&gt;Stay tuned&amp;hellip;&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt;
      </content>
    </entry>
      <entry>
      <author>
        <name>Geoffrey Vandiest</name>
        <uri>http://geoffrey-vandiest.skynetblogs.be/about.html</uri>
      </author>
      <title>Web setup project walkthrough</title>
      <link rel="alternate" type="text/html" href="http://geoffrey-vandiest.skynetblogs.be/archive/2007/08/17/web-setup-project-walkthrough.html" />
            <id>tag:geoffrey-vandiest.skynetblogs.be,2007-08-17:2376295</id>
      <updated>2007-08-17T17:14:27+02:00</updated>
      <published>2007-08-17T17:14:27+02:00</published>
                            <category term="Web" scheme="http://www.blogspirit.com/ns/types#category" />
                                    <category term="setup" scheme="http://www.blogspirit.com/ns/types#tag" />
                    <category term="msi" scheme="http://www.blogspirit.com/ns/types#tag" />
                    <category term="install" scheme="http://www.blogspirit.com/ns/types#tag" />
                    <category term="web setup" scheme="http://www.blogspirit.com/ns/types#tag" />
              <summary> &amp;nbsp;   This blog has moved!!!!!    </summary>
      <content type="html" xml:base="http://geoffrey-vandiest.skynetblogs.be/">
          &lt;div&gt;&amp;nbsp;&lt;p&gt;&lt;a target=&quot;_self&quot; href=&quot;http://geoffrey-vandiest.blogspot.com/&quot;&gt;&lt;font size=&quot;5&quot;&gt;This blog has moved!!!!!&lt;/font&gt;&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;
      </content>
    </entry>
      <entry>
      <author>
        <name>Geoffrey Vandiest</name>
        <uri>http://geoffrey-vandiest.skynetblogs.be/about.html</uri>
      </author>
      <title>&amp;nbsp;</title>
      <link rel="alternate" type="text/html" href="http://geoffrey-vandiest.skynetblogs.be/archive/2007/08/17/nbsp.html" />
            <id>tag:geoffrey-vandiest.skynetblogs.be,2007-08-17:2376282</id>
      <updated>2007-08-17T16:57:46+02:00</updated>
      <published>2007-08-17T16:57:46+02:00</published>
                            <category term="Web" scheme="http://www.blogspirit.com/ns/types#category" />
                              <summary> Web setup project walkthrough &amp;nbsp;  This document contains a walkthrough...</summary>
      <content type="html" xml:base="http://geoffrey-vandiest.skynetblogs.be/">
          &lt;h1&gt;Web setup project walkthrough&lt;br /&gt;&amp;nbsp;&lt;/h1&gt;&lt;p&gt;This document contains a walkthrough that will help you understand the basic tasks to accomplish to create an MSI packages for deploying your web application. The walkthrough describes the most common scenario of deploying a web project.&amp;nbsp; We will create a standard Web setup project.&amp;nbsp; This project will generate as output an msi package that will create and configure the application IIS and copy the application&amp;rsquo;s file to a specific location on the server.&amp;nbsp;&amp;nbsp; This walkthrough also describes how to modify the web.config file for providing a connectionstring or change any of the configuration sections.&amp;nbsp; &lt;/p&gt;&lt;p&gt;Because msi packages are mostly deployed by system engineers from the command line, this walkthrough will also pay attention on how to enable quiet installs and how to pass parameters to the installer from the command line.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;h3&gt;1.&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Create a &amp;ldquo;Hello World&amp;rdquo; web service&lt;/h3&gt;&lt;p&gt;&lt;br /&gt;To be able to create a setup will need a sample project that will be deployed by the setup project.&amp;nbsp; So we create a new empty ASP.NET website application.&lt;/p&gt;&lt;p&gt;File-&amp;gt;new -&amp;gt;ASP.NET WebService&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Add&amp;nbsp; a Class library project to your solution.&lt;/p&gt;&lt;p&gt;File-&amp;gt;Add-&amp;gt;Class Librrary &lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Now we should have 2 projects inside our solution.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Add a static method SayHello() to the class1. &lt;br /&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Reference this class in your web service project:&lt;/p&gt;&lt;p&gt;Add Reference-&amp;gt; Projects-&amp;gt;SayHelloLibrary&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Change the code of the Hello world method to use the Library static method SayHello()&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Hit F5, your solution should compile.&amp;nbsp; Test the application through the invoke button of the test web page, you should see the following:&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;h3&gt;2.&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Add a Web setup project&lt;/h3&gt;&lt;p&gt;&lt;br /&gt;We will add the web setup deployment project to the solution.&lt;/p&gt;&lt;p&gt;File-&amp;gt;Add-&amp;gt;New Project-&amp;gt;Other Project Types-&amp;gt;Web Setup Project&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Now our solution should look like this:&lt;/p&gt;&lt;p&gt;. &lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Now the real work begins, we will configure our web setup project to hold our content and our compiled assemblies. &lt;/p&gt;&lt;h3&gt;3.&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Add content and assemblies to your web setup project&lt;br /&gt;&amp;nbsp;&lt;/h3&gt;&lt;p&gt;First we will add the content of our web service project.&amp;nbsp; These are the asmx pages and the content of the APP_CODE folder.&amp;nbsp; They will be compiled by the host IIS server the first time the site will be hit. &lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Right click on the setup project-&amp;gt;Add-&amp;gt;Project output.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;A &amp;ldquo;Add project output Group&amp;rdquo; dialog box should appear.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;Because our Web setup project does not have any compiled assemblies as output we only can select &amp;ldquo;Content Files&amp;rdquo;.&amp;nbsp; When you choose another ASP.NET project template like the &amp;ldquo;ASP.NET web service application&amp;rdquo; template (available since SP2 of VS2005) you&amp;rsquo;ll have to choose &amp;ldquo;Content Files&amp;rdquo; and &amp;ldquo;Primary Output&amp;rdquo; as well.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;You should be in the file system view.&lt;/p&gt;&lt;p&gt;If you don&amp;rsquo;t see the above screen, right-click on the web project setup folder and choose view-&amp;gt;File system.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Now we will add our web service application compiled assemblies.&amp;nbsp; Right-click again on the web-setup project and choose Add-&amp;gt;Project Output and select the SayHelloLibrary project and click on &amp;ldquo;Primary Output&amp;rdquo;.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;After we click on the ok button Visual studio has added the &amp;ldquo;Primary Output&amp;rdquo; to the root of the Web Application Folder. This will result in a compile error the first time we try to hit the application we deploy. &lt;/p&gt;&lt;p&gt;To correct this error we must move the &amp;ldquo;Primary output&amp;rdquo; to the Bin folder of our web application.&amp;nbsp; Simply drag &amp;amp; drop the &amp;ldquo;Primary Output&amp;rdquo; to the bin folder.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Before we test our first installation package we&amp;rsquo;ve to compile it because Visual studio will not compile it as part of the solution. When we compile our project, visual studio will generate an msi file containing all parts of our application. &lt;/p&gt;&lt;p&gt;It&amp;rsquo;s time to test our first installation packet.&amp;nbsp; &lt;/p&gt;&lt;p&gt;Select the setup project-&amp;gt;richt-click-&amp;gt;Install&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;The setup wizard pops-up, click next.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;You can change the default value of the&amp;nbsp; Virtual directory textbox.&amp;nbsp; The default Virtual Directory is a property of your &amp;ldquo;Web application folder&amp;rdquo; available in the File system view.&amp;nbsp; Important: If you want to be able of passing the virtual directory as a parameter through the console for a quiet installation you should set this property to a blank field otherwise the msi package will overwrite a blank value with the value of the property.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;When the installation is completed successfully the web service should be available on the your local IIS server under the path &lt;a href=&quot;http://localhost/HelloWorldSetup/service.asmx&quot;&gt;http://localhost/HelloWorldSetup/service.asmx&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;The application should also be visible in the &amp;ldquo;Add or Remove Programs&amp;rdquo; in the Windows Control Panel.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;h3&gt;4.&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Adapt the connectionString property of the Web.Config file.&lt;br /&gt;&amp;nbsp;&lt;/h3&gt;&lt;p&gt;The web setup project wizard alow us to change common IIS settings through the File System view (View-&amp;gt;File System) by changing the properties of the &amp;ldquo;Web Application Folder&amp;rdquo;.&amp;nbsp; &lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;We can also add prerequisits of our solution (the .net framework2 is a standard prerequisit). &lt;/p&gt;&lt;p&gt;To adapt the connectionString property of our Web.Config file we will have to add custom code to our project that will edit the config file.&amp;nbsp; To be able to this type of actions during a setup we&amp;rsquo;ve to create custom actions.&amp;nbsp; Custom actions are code that is executed during the installation process.&amp;nbsp; Therefore we&amp;rsquo;ve to create a new ClassLibrary project.&amp;nbsp; &lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Add a classlibrary project and name it HelloWorldCustomActions.&lt;/p&gt;&lt;p&gt;Add following assemblys references: System.Configuration.dll, System.Configuration.Install.dll, System.Web.dll.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Add a new class to MyCustomAction.cs your project that will be used during the installation of your project.&amp;nbsp;&amp;nbsp;&amp;nbsp; This class must inherit from &amp;ldquo;System.Configuration.Install.Installer&amp;rdquo; class and be annotated with the RunInstaller(True) attribute. using System;&lt;/p&gt;&lt;p&gt;&lt;font color=&quot;#3366ff&quot; face=&quot;Courier New&quot;&gt;using System.Collections.Generic;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font color=&quot;#3366ff&quot; face=&quot;Courier New&quot;&gt;using System.Text;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font color=&quot;#3366ff&quot; face=&quot;Courier New&quot;&gt;using System.Configuration.Install;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font color=&quot;#3366ff&quot; face=&quot;Courier New&quot;&gt;using System.ComponentModel;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font color=&quot;#3366ff&quot; face=&quot;Courier New&quot;&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font color=&quot;#3366ff&quot; face=&quot;Courier New&quot;&gt;namespace HelloWorldCustomActions&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font color=&quot;#3366ff&quot; face=&quot;Courier New&quot;&gt;{&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font color=&quot;#3366ff&quot; face=&quot;Courier New&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; [RunInstaller(true)]&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font color=&quot;#3366ff&quot; face=&quot;Courier New&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public class MyCustomAction:Installer&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font color=&quot;#3366ff&quot; face=&quot;Courier New&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font color=&quot;#3366ff&quot; face=&quot;Courier New&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public override void Install(System.Collections.IDictionary stateSaver)&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font color=&quot;#3366ff&quot; face=&quot;Courier New&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font color=&quot;#3366ff&quot; face=&quot;Courier New&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; base.Install(stateSaver);&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font color=&quot;#3366ff&quot; face=&quot;Courier New&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font color=&quot;#3366ff&quot; face=&quot;Courier New&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font color=&quot;#3366ff&quot; face=&quot;Courier New&quot;&gt;}&lt;br /&gt;&lt;/font&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Now we need to create our custom action and associate it with our class.&lt;/p&gt;&lt;p&gt;First we need to add the output of the HelloWorldCustomActions assembly in our Setup project.&lt;/p&gt;&lt;p&gt;Right-click &amp;ldquo;HelloWorldSetup&amp;rdquo; project-&amp;gt;Add-&amp;gt;Primary Output&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;From the File System View move the &amp;ldquo;Primary output from HelloWorld actions&amp;rdquo; to the bin folder.&lt;/p&gt;&lt;p&gt;Now we will make sure that our code is executed as a custom action during the installation.&lt;/p&gt;&lt;p&gt;Right-click the project folder-&amp;gt;view-&amp;gt;CustomActions.&lt;/p&gt;&lt;p&gt;The Custom action view should be displayed.&lt;/p&gt;&lt;p&gt;Right-click on the install folder-&amp;gt;Add Custom Action-&amp;gt;select &amp;ldquo;Primary output from HelloWorldCustomActions (Active)&amp;rdquo;.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;The web setup project wizard contains a form where the user must select the application site and the virtual directory. To be able to locate and change the web.config file of our application we need to read these parameters.&amp;nbsp; We can also pass these arguments by the command line and provide a targetdirectory.&amp;nbsp; &lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;To be able to access these parameters we need to declare them in the &amp;ldquo;CustomActionData&amp;rdquo; property of our CustomAction:&amp;nbsp; &lt;/p&gt;&lt;p&gt;Select your custom action-&amp;gt;In the property window select &amp;ldquo;CustomActionData&amp;rdquo; Insert the following values: &lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;font color=&quot;#ff0000&quot;&gt;/targetdir=&amp;quot;[TARGETDIR]&amp;quot; /targetvdir=&amp;quot;[TARGETVDIR]&amp;quot; /targetsite=&amp;quot;[TARGETSITE]&amp;quot; /targetconn=&amp;quot;[EDITA1]&amp;quot;&amp;nbsp; /db=&amp;quot;[DB]&amp;quot;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;We will now add a screen to our wizard that prompts the user for a connectionString.&amp;nbsp; &lt;/p&gt;&lt;p&gt;Right click the project-&amp;gt;View -&amp;gt;User Interface.&lt;/p&gt;&lt;p&gt;Right click start-&amp;gt; Add Dialog&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Select Textboxes(A) and move it between &amp;ldquo;Installation Address&amp;rdquo; and &amp;ldquo;Confirm Installation&amp;rdquo;.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Set the following properties:&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Now we will code our custom action.&lt;/p&gt;&lt;p&gt;First check you have following references in you CustomAction project. &lt;br /&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Set following using statements in your CustomAction class:&lt;/p&gt;&lt;p&gt;&lt;font color=&quot;#3366ff&quot; face=&quot;Courier New&quot;&gt;using System;&lt;br /&gt;&lt;/font&gt;&lt;font color=&quot;#3366ff&quot; face=&quot;Courier New&quot;&gt;using System.Configuration;&lt;br /&gt;&lt;/font&gt;&lt;font color=&quot;#3366ff&quot; face=&quot;Courier New&quot;&gt;using System.Configuration.Install;&lt;br /&gt;&lt;/font&gt;&lt;font color=&quot;#3366ff&quot; face=&quot;Courier New&quot;&gt;using System.ComponentModel;&lt;br /&gt;&lt;/font&gt;&lt;font color=&quot;#3366ff&quot; face=&quot;Courier New&quot;&gt;using System.Diagnostics;&lt;br /&gt;&lt;/font&gt;&lt;font color=&quot;#3366ff&quot; face=&quot;Courier New&quot;&gt;using System.IO;&lt;br /&gt;&lt;/font&gt;&lt;font color=&quot;#3366ff&quot; face=&quot;Courier New&quot;&gt;using System.DirectoryServices;&lt;br /&gt;&lt;/font&gt;&lt;font color=&quot;#3366ff&quot; face=&quot;Courier New&quot;&gt;using System.Web.Configuration;&lt;br /&gt;&lt;/font&gt;&lt;font color=&quot;#3366ff&quot; face=&quot;Courier New&quot;&gt;using System.Windows.Forms;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;your install method should look like:&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;font color=&quot;#3366ff&quot; face=&quot;Courier New&quot;&gt;public override void Install(System.Collections.IDictionary stateSaver)&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font color=&quot;#3366ff&quot; face=&quot;Courier New&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font color=&quot;#3366ff&quot; face=&quot;Courier New&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; base.Install(stateSaver);&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font color=&quot;#3366ff&quot; face=&quot;Courier New&quot;&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font color=&quot;#3366ff&quot; face=&quot;Courier New&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Retrieve configuration settings&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font color=&quot;#3366ff&quot; face=&quot;Courier New&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; string targetSite = Context.Parameters[&amp;quot;targetsite&amp;quot;];&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font color=&quot;#3366ff&quot; face=&quot;Courier New&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; string targetVDir = Context.Parameters[&amp;quot;targetvdir&amp;quot;];&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font color=&quot;#3366ff&quot; face=&quot;Courier New&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; string targetDirectory = Context.Parameters[&amp;quot;targetdir&amp;quot;];&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font color=&quot;#3366ff&quot; face=&quot;Courier New&quot;&gt;string targetConnectionString = Context.Parameters[&amp;quot;targetconn&amp;quot;];&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font color=&quot;#3366ff&quot; face=&quot;Courier New&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //if this is a quiet install &lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font color=&quot;#3366ff&quot; face=&quot;Courier New&quot;&gt;//the connectionstring is passed as with a parameter named &amp;quot;db&amp;quot;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font color=&quot;#3366ff&quot; face=&quot;Courier New&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (targetConnectionString.Length &amp;lt; 1)&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font color=&quot;#3366ff&quot; face=&quot;Courier New&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; targetConnectionString = Context.Parameters[&amp;quot;db&amp;quot;];&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font color=&quot;#3366ff&quot; face=&quot;Courier New&quot;&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font color=&quot;#3366ff&quot; face=&quot;Courier New&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (targetConnectionString.Length &amp;lt; 1)&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font color=&quot;#3366ff&quot; face=&quot;Courier New&quot;&gt;throw new InstallException(&amp;quot;Please provide a connectionstring!&amp;quot;);&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font color=&quot;#3366ff&quot; face=&quot;Courier New&quot;&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font color=&quot;#3366ff&quot; face=&quot;Courier New&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (targetSite == null)&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font color=&quot;#3366ff&quot; face=&quot;Courier New&quot;&gt;throw new InstallException(&amp;quot;IIS Site Name Not Specified!&amp;quot;);&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font color=&quot;#3366ff&quot; face=&quot;Courier New&quot;&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font color=&quot;#3366ff&quot; face=&quot;Courier New&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (targetSite.StartsWith(&amp;quot;/LM/&amp;quot;))&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font color=&quot;#3366ff&quot; face=&quot;Courier New&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; targetSite = targetSite.Substring(4);&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font color=&quot;#3366ff&quot; face=&quot;Courier New&quot;&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font color=&quot;#3366ff&quot; face=&quot;Courier New&quot;&gt;ConfigureWebConfig(targetSite, targetVDir, targetConnectionString);&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font color=&quot;#3366ff&quot; face=&quot;Courier New&quot;&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font color=&quot;#3366ff&quot; face=&quot;Courier New&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; void ConfigureWebConfig(string targetSite, string targetVDir, string targetConn)&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Retrieve &amp;quot;Friendly Site Name&amp;quot; from IIS for TargetSite&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; DirectoryEntry entry = &lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; new DirectoryEntry(&amp;quot;IIS://LocalHost/&amp;quot; + targetSite);&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; string friendlySiteName = &lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; entry.Properties[&amp;quot;ServerComment&amp;quot;].Value.ToString();&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Open Application's Web.Config&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Configuration config = &lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; WebConfigurationManager.OpenWebConfiguration(&amp;quot;/&amp;quot; + targetVDir, friendlySiteName);&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; addConnectionStringAttribute(targetConn, config);&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; togleCompilationAttribute(config);&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Persist web.config settings&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; config.Save();&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&lt;br /&gt;Add the ConfigureWebConfig method:&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Method to add the connectionstring to your web.config:&lt;/p&gt;&lt;p&gt;private static void addConnectionStringAttribute(string connectionStringValue, Configuration config)&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ConnectionStringSettings appDatabase = new ConnectionStringSettings();&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; appDatabase.Name = &amp;quot;db&amp;quot;;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; appDatabase.ConnectionString = connectionStringValue;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; appDatabase.ProviderName = &amp;quot;System.Data.SqlClient&amp;quot;;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; config.ConnectionStrings.ConnectionStrings.Clear();&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; config.ConnectionStrings.ConnectionStrings.Add(appDatabase);&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;This method will set the compilation attribute to debug=false&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;private static void togleCompilationAttribute(Configuration config)&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CompilationSection compilation;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; compilation = config.GetSection(&amp;quot;system.web/compilation&amp;quot;) as CompilationSection;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (compilation != null)&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; compilation.Debug = !compilation.Debug;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Now you can test your installation package.&amp;nbsp; Right-click Setup project-&amp;gt;Install.&lt;/p&gt;&lt;p&gt;The second screen should ask for a connectionstring.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;5.&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Quiet install &lt;br /&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;When distributing a setup package you will mostly install the application through a quiet install.&amp;nbsp; Therefore you&amp;rsquo;ve to pass the parameter through the command line.&amp;nbsp;&amp;nbsp; I experienced that the parameters you pass through the console are sometimes overwritten by the parameters you&amp;rsquo;ve added in your custom screens.&amp;nbsp; This is why I added a supplementary parameter &amp;ldquo;db&amp;rdquo; and don&amp;rsquo;t use the parameter &amp;ldquo;targetconn&amp;rdquo;.&amp;nbsp; The installer first checks if the parameter is empty.&amp;nbsp; This will be the case if you install the application through a quiet install.&amp;nbsp; &lt;/p&gt;&lt;p&gt;You will find this parameter in the CustomactionData property of the custom action:&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;/targetdir=&amp;quot;[TARGETDIR]&amp;quot; /targetvdir=&amp;quot;[TARGETVDIR]&amp;quot; /targetsite=&amp;quot;[TARGETSITE]&amp;quot; /targetconn=&amp;quot;[EDITA1]&amp;quot;&amp;nbsp; /db=&amp;quot;[DB]&amp;quot;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;The code that handles the parameter in the Install method:&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;if (targetConnectionString.Length &amp;lt; 1)&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; targetConnectionString = Context.Parameters[&amp;quot;db&amp;quot;];&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;You can launch the msi setup package with the folowing command line:&lt;/p&gt;&lt;p&gt;(First navigate to the directory containing the builded release version of the msi)&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;gt;HelloWorldSetup.msi /qb targetvdir=&amp;quot;HelloWorld&amp;quot; db=&amp;quot;Test for connectionstring&amp;quot;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;If you want to specify the target website you need to specify the website IIS metabase targetsite path.&amp;nbsp; This path mostly begins with &amp;ldquo;/LM/W3SVC/&amp;rdquo; followed by the site id.&amp;nbsp; &lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;A trick to find the site id or to debug the setup application is to use the /l* option.&amp;nbsp; Launch the installer with the /l* option and follow the wizard.&amp;nbsp; The /l* will log all the parameters passed to the installation program.&amp;nbsp; After the installation completes you can retrieve website metabase path by searching for the &amp;ldquo;targetsite&amp;rdquo; in the log file.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;gt;HelloWorldSetup.msi /l* log.txt&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;I hope this tutorial help you to understand the basics of creating a web setup project.&amp;nbsp; This type of setup will enable you creating testable and repeatable deployment scenarios.&amp;nbsp; It will also help our IT engineers to deploy web applications gracefully on production machines.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;GVD&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;
      </content>
    </entry>
      <entry>
      <author>
        <name>Geoffrey Vandiest</name>
        <uri>http://geoffrey-vandiest.skynetblogs.be/about.html</uri>
      </author>
      <title>Subsonic</title>
      <link rel="alternate" type="text/html" href="http://geoffrey-vandiest.skynetblogs.be/archive/2007/08/10/subsonic.html" />
            <id>tag:geoffrey-vandiest.skynetblogs.be,2007-08-10:2376292</id>
      <updated>2007-08-10T13:23:23+02:00</updated>
      <published>2007-08-10T13:23:23+02:00</published>
                            <category term="Web" scheme="http://www.blogspirit.com/ns/types#category" />
                                    <category term="orm" scheme="http://www.blogspirit.com/ns/types#tag" />
                    <category term="subsonic" scheme="http://www.blogspirit.com/ns/types#tag" />
                    <category term="mvc" scheme="http://www.blogspirit.com/ns/types#tag" />
              <summary>  Have a look at subsonic!        It’s a lightweight, open source ORM mapper...</summary>
      <content type="html" xml:base="http://geoffrey-vandiest.skynetblogs.be/">
          &lt;P&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: Verdana&quot;&gt;Have a look at subsonic!&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: Verdana&quot;&gt;&lt;O:P&gt;&lt;/O:P&gt;&lt;/SPAN&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: Verdana&quot;&gt;It’s a lightweight, open source ORM mapper for ASP.NET but it’s more than that!&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: Verdana&quot;&gt;&lt;/SPAN&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: Verdana&quot;&gt;&lt;O:P&gt;&lt;/O:P&gt;&lt;/SPAN&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: Verdana&quot;&gt;Subsonic is an implementation of the &quot;Active Record&quot; pattern used in rails for the data mapping. It also tries to mimic some of the MVC concepts of rails.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/O:P&gt;&lt;O:P&gt;&lt;/O:P&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: Verdana&quot;&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: Verdana&quot;&gt;Subsonic site: &lt;A href=&quot;http://www.subsonicproject.com&quot;&gt;&lt;FONT color=#800080&gt;http://www.subsonicproject.com&lt;/FONT&gt;&lt;/A&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: Verdana&quot;&gt;&lt;/SPAN&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: Verdana&quot;&gt;&lt;O:P&gt;&lt;/O:P&gt;&lt;/SPAN&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: Verdana&quot;&gt;Subsonic on codeplex: &lt;A href=&quot;http://www.codeplex.com/subsonic&quot;&gt;http://www.codeplex.com/subsonic&lt;/A&gt;&lt;O:P&gt;&lt;/O:P&gt;&lt;/SPAN&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: Verdana&quot;&gt;&lt;O:P&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: Verdana&quot;&gt;&lt;/O:P&gt;&lt;/SPAN&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: Verdana&quot;&gt;&lt;O:P&gt;&lt;/O:P&gt;&lt;/SPAN&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: Verdana&quot;&gt;Introduction webcasts:&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: Verdana&quot;&gt;&lt;/SPAN&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: Verdana&quot;&gt;&lt;O:P&gt;&lt;/O:P&gt;&lt;/SPAN&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: Verdana&quot;&gt;Subsonic intro:&lt;O:P&gt;&lt;/O:P&gt;&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: Verdana&quot;&gt;&lt;A href=&quot;http://www.wekeroad.com/ss_setup2.html&quot;&gt;&lt;SPAN lang=EN-GB&gt;&lt;FONT color=#800080&gt;http://www.wekeroad.com/ss_setup2.html&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/A&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: Verdana&quot;&gt;&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: Verdana&quot;&gt;&lt;/SPAN&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: Verdana&quot;&gt;&lt;O:P&gt;&lt;/O:P&gt;&lt;/SPAN&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: Verdana&quot;&gt;MVC with subsonic:&lt;O:P&gt;&lt;/O:P&gt;&lt;/SPAN&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: Verdana&quot;&gt;&lt;A href=&quot;http://www.subsonicproject.com/view/soniccast-3---all-about-mvc.aspx&quot;&gt;&lt;FONT color=#800080&gt;http://www.subsonicproject.com/view/soniccast-3---all-about-mvc.aspx&lt;/FONT&gt;&lt;/A&gt;&lt;O:P&gt;&lt;/O:P&gt;&lt;/SPAN&gt; &lt;/P&gt;
      </content>
    </entry>
      <entry>
      <author>
        <name>Geoffrey Vandiest</name>
        <uri>http://geoffrey-vandiest.skynetblogs.be/about.html</uri>
      </author>
      <title>Agile &amp; Finance</title>
      <link rel="alternate" type="text/html" href="http://geoffrey-vandiest.skynetblogs.be/archive/2007/07/30/agile-finance.html" />
            <id>tag:geoffrey-vandiest.skynetblogs.be,2007-07-30:2376293</id>
      <updated>2007-07-30T18:04:51+02:00</updated>
      <published>2007-07-30T18:04:51+02:00</published>
                            <category term="Web" scheme="http://www.blogspirit.com/ns/types#category" />
                                    <category term="agile mathematics finance" scheme="http://www.blogspirit.com/ns/types#tag" />
              <summary>  In  this episode  of the&amp;nbsp;agile podcast C  hriss Matts&amp;nbsp;explains...</summary>
      <content type="html" xml:base="http://geoffrey-vandiest.skynetblogs.be/">
          &lt;P&gt;&lt;FONT face=&quot;Verdana, Arial, Helvetica, sans-serif&quot;&gt;In &lt;A href=&quot;http://agiletoolkit.libsyn.com/index.php?post_id=121123&quot; target=_blank border=&quot;0&quot;&gt;this episode&lt;/A&gt; of the&amp;nbsp;agile podcast C&lt;/FONT&gt;&lt;FONT face=&quot;Verdana, Arial, Helvetica, sans-serif&quot;&gt;hriss Matts&amp;nbsp;explains how&amp;nbsp;he applied agile&amp;nbsp;practices&amp;nbsp;in&amp;nbsp;financial&amp;nbsp;managment.&amp;nbsp;&amp;nbsp;He also explains how certain&amp;nbsp;agile concepts can be proven by mathematics&amp;nbsp;and how&amp;nbsp;agile&amp;nbsp;could change the way you take decsisions in your personal life.&lt;/FONT&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;
      </content>
    </entry>
      <entry>
      <author>
        <name>Geoffrey Vandiest</name>
        <uri>http://geoffrey-vandiest.skynetblogs.be/about.html</uri>
      </author>
      <title>Model View Controler revisited</title>
      <link rel="alternate" type="text/html" href="http://geoffrey-vandiest.skynetblogs.be/archive/2007/06/09/model-view-controler-revisited.html" />
            <id>tag:geoffrey-vandiest.skynetblogs.be,2007-06-09:2376286</id>
      <updated>2007-06-09T16:11:49+02:00</updated>
      <published>2007-06-09T16:11:49+02:00</published>
                            <category term="Web" scheme="http://www.blogspirit.com/ns/types#category" />
                                    <category term="pattern" scheme="http://www.blogspirit.com/ns/types#tag" />
                    <category term="mvc" scheme="http://www.blogspirit.com/ns/types#tag" />
                    <category term="martin fowler" scheme="http://www.blogspirit.com/ns/types#tag" />
                    <category term="gui" scheme="http://www.blogspirit.com/ns/types#tag" />
                    <category term="architecture" scheme="http://www.blogspirit.com/ns/types#tag" />
              <summary>  The Model View Controler is one if not the most used patterns in software...</summary>
      <content type="html" xml:base="http://geoffrey-vandiest.skynetblogs.be/">
          &lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt&quot;&gt;&lt;SPAN lang=EN-US style=&quot;FONT-FAMILY: Verdana; mso-ansi-language: EN-US&quot;&gt;The Model View Controler is one if not the most used patterns in software engineering.&lt;?xml:namespace prefix = o ns = &quot;urn:schemas-microsoft-com:office:office&quot; /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt&quot;&gt;&lt;SPAN lang=EN-US style=&quot;FONT-FAMILY: Verdana; mso-ansi-language: EN-US&quot;&gt;&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp;&lt;/SPAN&gt;I just came along an article of Martin fowler “&lt;A href=&quot;http://www.martinfowler.com/eaaDev/uiArchs.html&quot;&gt;&lt;FONT color=#800080&gt;GUI Architectures&lt;/FONT&gt;&lt;/A&gt;” describing this pattern and his modern contra part the Model View Presenter.&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/SPAN&gt;Everyone who is interested in patterns should read this article and (re)-discover the father of all patterns. &lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
      </content>
    </entry>
      <entry>
      <author>
        <name>Geoffrey Vandiest</name>
        <uri>http://geoffrey-vandiest.skynetblogs.be/about.html</uri>
      </author>
      <title>Ajax best practices</title>
      <link rel="alternate" type="text/html" href="http://geoffrey-vandiest.skynetblogs.be/archive/2007/05/23/ajax-best-practices.html" />
            <id>tag:geoffrey-vandiest.skynetblogs.be,2007-05-23:2376284</id>
      <updated>2007-05-23T18:00:47+02:00</updated>
      <published>2007-05-23T18:00:47+02:00</published>
                            <category term="Web" scheme="http://www.blogspirit.com/ns/types#category" />
                                    <category term="patterns" scheme="http://www.blogspirit.com/ns/types#tag" />
                    <category term="ui" scheme="http://www.blogspirit.com/ns/types#tag" />
                    <category term="development" scheme="http://www.blogspirit.com/ns/types#tag" />
                    <category term="ajax" scheme="http://www.blogspirit.com/ns/types#tag" />
                    <category term="practices" scheme="http://www.blogspirit.com/ns/types#tag" />
                    <category term="javascript" scheme="http://www.blogspirit.com/ns/types#tag" />
              <summary>        &amp;nbsp;    &amp;nbsp;      -...</summary>
      <content type="html" xml:base="http://geoffrey-vandiest.skynetblogs.be/">
          &lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt 18pt&quot;&gt;&lt;B style=&quot;mso-bidi-font-weight: normal&quot;&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-FAMILY: Verdana; mso-ansi-language: EN-GB&quot;&gt;&lt;?xml:namespace prefix = o ns = &quot;urn:schemas-microsoft-com:office:office&quot; /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/B&gt;&amp;nbsp;&lt;/P&gt;&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt 18pt&quot;&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-FAMILY: Verdana; mso-ansi-language: EN-GB&quot;&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt 36pt; TEXT-INDENT: -18pt; mso-list: l0 level1 lfo1; tab-stops: list 36.0pt&quot;&gt;&lt;SPAN lang=EN-GB style=&quot;mso-ansi-language: EN-GB&quot;&gt;&lt;SPAN style=&quot;mso-list: Ignore&quot;&gt;-&lt;SPAN style=&quot;FONT: 7pt 'Times New Roman'&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-FAMILY: Verdana; mso-ansi-language: EN-GB&quot;&gt;Don’t misuse it: use it when it has a real added value for the user.&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/SPAN&gt;I already heard people proposing to implement the entire navigation through &lt;?xml:namespace prefix = st1 ns = &quot;urn:schemas-microsoft-com:office:smarttags&quot; /&gt;&lt;st1:City w:st=&quot;on&quot;&gt;&lt;st1:place w:st=&quot;on&quot;&gt;ajax.&amp;nbsp;The application runs with a single page with&amp;nbsp;&lt;/st1:place&gt;&lt;/st1:City&gt;a div in the centre. When the user wants to navigate just refresh the div!&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/SPAN&gt;This is typically a misuse of the technology; it will enhance the complexity of the entire application and lowers the user experience because the user will be confused. e.g. user will be unable to use the back button.&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt 36pt; TEXT-INDENT: -18pt; mso-list: l0 level1 lfo1; tab-stops: list 36.0pt&quot;&gt;&lt;SPAN lang=EN-GB style=&quot;mso-ansi-language: EN-GB&quot;&gt;&lt;SPAN style=&quot;mso-list: Ignore&quot;&gt;-&lt;SPAN style=&quot;FONT: 7pt 'Times New Roman'&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-FAMILY: Verdana; mso-ansi-language: EN-GB&quot;&gt;Always provide a fallback solution because: &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt 72pt; TEXT-INDENT: -18pt; mso-list: l0 level2 lfo1; tab-stops: list 72.0pt&quot;&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-FAMILY: 'Courier New'; mso-ansi-language: EN-GB; mso-fareast-font-family: 'Courier New'&quot;&gt;&lt;SPAN style=&quot;mso-list: Ignore&quot;&gt;o&lt;SPAN style=&quot;FONT: 7pt 'Times New Roman'&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;st1:City w:st=&quot;on&quot;&gt;&lt;st1:place w:st=&quot;on&quot;&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-FAMILY: Verdana; mso-ansi-language: EN-GB&quot;&gt;ajax&lt;/SPAN&gt;&lt;/st1:place&gt;&lt;/st1:City&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-FAMILY: Verdana; mso-ansi-language: EN-GB&quot;&gt; isn’t compatible with old browser&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt 72pt; TEXT-INDENT: -18pt; mso-list: l0 level2 lfo1; tab-stops: list 72.0pt&quot;&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-FAMILY: 'Courier New'; mso-ansi-language: EN-GB; mso-fareast-font-family: 'Courier New'&quot;&gt;&lt;SPAN style=&quot;mso-list: Ignore&quot;&gt;o&lt;SPAN style=&quot;FONT: 7pt 'Times New Roman'&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-FAMILY: Verdana; mso-ansi-language: EN-GB&quot;&gt;disabled people usually are not able to use features that are only available through &lt;st1:City w:st=&quot;on&quot;&gt;&lt;st1:place w:st=&quot;on&quot;&gt;ajax&lt;/st1:place&gt;&lt;/st1:City&gt;,&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt 72pt; TEXT-INDENT: -18pt; mso-list: l0 level2 lfo1; tab-stops: list 72.0pt&quot;&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-FAMILY: 'Courier New'; mso-ansi-language: EN-GB; mso-fareast-font-family: 'Courier New'&quot;&gt;&lt;SPAN style=&quot;mso-list: Ignore&quot;&gt;o&lt;SPAN style=&quot;FONT: 7pt 'Times New Roman'&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-FAMILY: Verdana; mso-ansi-language: EN-GB&quot;&gt;people who have javascript disabled can’t use it. &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt 72pt; TEXT-INDENT: -18pt; mso-list: l0 level2 lfo1; tab-stops: list 72.0pt&quot;&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-FAMILY: 'Courier New'; mso-ansi-language: EN-GB; mso-fareast-font-family: 'Courier New'&quot;&gt;&lt;SPAN style=&quot;mso-list: Ignore&quot;&gt;o&lt;SPAN style=&quot;FONT: 7pt 'Times New Roman'&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-FAMILY: Verdana; mso-ansi-language: EN-GB&quot;&gt;most important: search engines&amp;nbsp;are unable to&amp;nbsp;index information only available through &lt;st1:City w:st=&quot;on&quot;&gt;&lt;st1:place w:st=&quot;on&quot;&gt;ajax&lt;/st1:place&gt;&lt;/st1:City&gt;.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt 36pt; TEXT-INDENT: -18pt; mso-list: l0 level1 lfo1; tab-stops: list 36.0pt&quot;&gt;&lt;SPAN lang=EN-GB style=&quot;mso-ansi-language: EN-GB&quot;&gt;&lt;SPAN style=&quot;mso-list: Ignore&quot;&gt;-&lt;SPAN style=&quot;FONT: 7pt 'Times New Roman'&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-FAMILY: Verdana; mso-ansi-language: EN-GB&quot;&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-FAMILY: Verdana; mso-ansi-language: EN-GB&quot;&gt;Delay as much as possible: &lt;st1:City w:st=&quot;on&quot;&gt;&lt;st1:place w:st=&quot;on&quot;&gt;Ajax&lt;/st1:place&gt;&lt;/st1:City&gt; and JavaScript in particular should be used as lately as possible in the development cycle.&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/SPAN&gt;Incorporating &lt;st1:City w:st=&quot;on&quot;&gt;&lt;st1:place w:st=&quot;on&quot;&gt;ajax&lt;/st1:place&gt;&lt;/st1:City&gt; too soon tends to make changes more costly. In my opinion it's&amp;nbsp;a bad idea to use &lt;st1:City w:st=&quot;on&quot;&gt;&lt;st1:place w:st=&quot;on&quot;&gt;ajax&lt;/st1:place&gt;&lt;/st1:City&gt; when the project is still in a early period of his lifecycle because their is a high probability that many changes will happen. Best practice is to use a dedicated iteration for adding the &lt;st1:City w:st=&quot;on&quot;&gt;&lt;st1:place w:st=&quot;on&quot;&gt;ajax&lt;/st1:place&gt;&lt;/st1:City&gt; and JavaScript effects.&lt;/SPAN&gt;&lt;SPAN lang=EN-GB style=&quot;mso-ansi-language: EN-GB&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt 36pt; TEXT-INDENT: -18pt; mso-list: l0 level1 lfo1; tab-stops: list 36.0pt&quot;&gt;&lt;/SPAN&gt;&lt;SPAN lang=EN-GB style=&quot;mso-ansi-language: EN-GB&quot;&gt;&lt;SPAN style=&quot;mso-list: Ignore&quot;&gt;-&lt;SPAN style=&quot;FONT: 7pt 'Times New Roman'&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-FAMILY: Verdana; mso-ansi-language: EN-GB&quot;&gt;When the UI and the backend are not made by the same developers, UI developer and backend developer should absolutely be physically close making part of the same team. &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt 36pt; TEXT-INDENT: -18pt; mso-list: l0 level1 lfo1; tab-stops: list 36.0pt&quot;&gt;&lt;SPAN lang=EN-GB style=&quot;mso-ansi-language: EN-GB&quot;&gt;&lt;SPAN style=&quot;mso-list: Ignore&quot;&gt;-&lt;SPAN style=&quot;FONT: 7pt 'Times New Roman'&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-FAMILY: Verdana; mso-ansi-language: EN-GB&quot;&gt;Decouple the presentation layer with the application logic and decompose the UI (pages) in different parts (modules).&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/SPAN&gt;This practice will facilitate the integration afterwards of the &lt;st1:City w:st=&quot;on&quot;&gt;&lt;st1:place w:st=&quot;on&quot;&gt;ajax&lt;/st1:place&gt;&lt;/st1:City&gt; effects.&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/SPAN&gt;Our team use a specific pattern.&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;Basically the module code is used in the classical way (without &lt;st1:City w:st=&quot;on&quot;&gt;&lt;st1:place w:st=&quot;on&quot;&gt;ajax&lt;/st1:place&gt;&lt;/st1:City&gt;) and re-used afterwards by javascript code that calls these modules through the scriptacoulous &lt;A href=&quot;http://wiki.script.aculo.us/scriptaculous/show/Ajax.Updater&quot;&gt;&lt;FONT color=#800080&gt;Ajax.Updater&lt;/FONT&gt;&lt;/A&gt; method.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
      </content>
    </entry>
      <entry>
      <author>
        <name>Geoffrey Vandiest</name>
        <uri>http://geoffrey-vandiest.skynetblogs.be/about.html</uri>
      </author>
      <title> The good, the bad and the ugly</title>
      <link rel="alternate" type="text/html" href="http://geoffrey-vandiest.skynetblogs.be/archive/2007/05/18/ the-good-the-bad-and-the-ugly.html" />
            <id>tag:geoffrey-vandiest.skynetblogs.be,2007-05-18:2376290</id>
      <updated>2007-05-18T16:20:40+02:00</updated>
      <published>2007-05-18T16:20:40+02:00</published>
                            <category term="Web" scheme="http://www.blogspirit.com/ns/types#category" />
                                    <category term="agile" scheme="http://www.blogspirit.com/ns/types#tag" />
                    <category term="waterfall" scheme="http://www.blogspirit.com/ns/types#tag" />
                    <category term="software engineering" scheme="http://www.blogspirit.com/ns/types#tag" />
                    <category term="architecture" scheme="http://www.blogspirit.com/ns/types#tag" />
                    <category term="xp" scheme="http://www.blogspirit.com/ns/types#tag" />
              <summary>   The bad old days   Long ago I strongly believed in deterministic...</summary>
      <content type="html" xml:base="http://geoffrey-vandiest.skynetblogs.be/">
          &lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: verdana&quot;&gt;&lt;STRONG&gt;The bad old days&lt;/STRONG&gt;&lt;BR&gt;&lt;BR&gt;Long ago I strongly believed in deterministic approaches for software engineering. At school I learned the classical way to build software. It’s based on the experience of how&amp;nbsp;we build stuff in the concrete world. In&amp;nbsp;software development&amp;nbsp;literatur you find the analogy between building a house and building a piece of software. First you need an architect&amp;nbsp;who will draw the plan of the house. Every aspect of what will be in the house has to be described in the plan. When the plan is ready the entrepreneur can start with building the house. The architect will inspect regularly the house making sure that everything is like he described on his plan. &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: verdana&quot;&gt;&lt;BR&gt;&lt;/P&gt;&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt&quot;&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-FAMILY: Verdana; mso-ansi-language: EN-GB&quot;&gt;For a large majority of software professionals this is the model inspiring the way they build software.&amp;nbsp;&amp;nbsp;B&lt;/SPAN&gt;ig upfront design has to take place and the result of it is a detailed analyse. Only when the analyse is complete we can start developing. We are supposed&amp;nbsp;to follow what is specified and at the end&amp;nbsp;we should get the application that our customer desire. I remember the time when I learned engineering software this way. It was at the university, I already was graduated but I decided to further specialise in what was called IT management. On that time I already worked for the IT industry. So because I couldn’t be present on the daily courses I had made a deal with my professors to see them once a week to review what I had studied during the week. This provided me the opportunity to better interact with my teachers and I remember a talk with my professor for software engineering.&lt;BR&gt;&lt;BR&gt;During that week I had reviewed the famous waterfall model of software engineering. This model is completely based on the classical approach: you start with an analysis, you design the architecture, you build the software after you test every piece and finally you integrate the whole. I found the concept appealing but I couldn’t recognize this way of working in the organization I was working for at that time. So I asked my professor if he had really seen this type of model working in the real life. This was the only time when I saw the man, for which I had and still have a huge respect, showing signs of contempt. He overreacted, basically he answered that in his organization he conducted projects based on this model but that lots of organization didn’t because they where unprofessional.&lt;BR&gt;&lt;BR&gt;I remember that in the beginning of my career I constantly was frustrated because I never encountered projects where this recipe actually worked. Especially when working for smaller organizations the customer was not willing to play this type of game. I thought that the reason for this was that they didn’t understand what software engineering&amp;nbsp;is and how complex it is. Now I realize that we are wrong. We are all actors playing the software engineering game, fooling ourselves and the customer.&lt;BR&gt;&lt;BR&gt;Usually we begin by&amp;nbsp;interviewing the&amp;nbsp;customer&amp;nbsp;and try to understand what his problem is and how we could help him solve that specific problem. Because we are self confident and&amp;nbsp;because&amp;nbsp;the customer has a business to run this type of interview remains mostly short. We go back to our offices and writes documents describing what should be build. Writing this type of document is fastidious and time and resource consuming. When, months later we present this document to our customer where we describe in details what we intend to build he’s not willing to spend days reading it. In fact I never had a customer that actually reed and understand what was described in the analyses, just because they had a business to run and couldn’t afford spending hours reading this document as big a phonebook full of incomprehensive technical terms. It’s the reason why we make powerpoint presentations summarizing what is described in the analyses. What happen usually is that the developers working in the project don’t read the analyses too. Partially for the same reason as the customer, they have a work to do. But the main reason why developers don’t read the document is simply because they know that it isn’t valid anymore. Between the time the analysis was written and that the developers start coding, things have changed.&lt;BR&gt;&lt;BR&gt;&lt;STRONG&gt;The ugly rules of software engineering&lt;/STRONG&gt;&lt;BR&gt;&lt;BR&gt;This is the first rule I discovered: customers change their minds all the time, especially when you show them the final product! But why do customers change their minds? Simply because when they are confronted with the actual product they suddenly dispose of more information on the product as when it was only a mental representation. Changes occur also because you realize that some aspects of the application should be improved. When you are building the product piece by piece you are confronted to some aspects of the reality you hadn’t anticipated before. Also you are getting more and more info from the customer and your understanding of the problem domain constantly evolves. I remember projects we begun to truly understand what we were building when we had already build a consequent part of the application.&lt;BR&gt;The point is that we already are getting late on the project because all this analyses has taken a lot of time and the time we used to make the analyses will not help us as it should be. When the project finally arrives in the development team the expert developers try to figure out what has to be build. The system is divided into the technical core concepts, the user interface, and the backend. Code skeletons are generated and assigned to the developers for implementation. It soon becomes apparent that the modelled solution cannot be implemented without problems. The result is that what is implemented isn’t what is described in the analyses and the analyses document becomes completely obsolete. At the end the project is not completed on time and after months of pressure we produce an inconsistent system that contains many errors. Subsequently the development is chaotic. Users find errors in the application and establish that many of their requirements were not implemented adequately. The developers are informed of this and they try to implement the changes as quickly as possible. In this process, the internal structure of the application degenerates and the cost of future changes increase further. In the end the maintenance of the software becomes a nightmare and the cost of maintenance rises exponentially till we decide to re-build the software from scratch.&lt;BR&gt;&lt;BR&gt;Another well know problem we constantly encountered is that analysts tend to increase the complexity of the system in order to foresee every possible problem. Recently I participated on a project where the project started without a real customer and without clear business objectives. The analysis was full of technical requirement describing how the portal should be build but their was nearly no reference on what the portal should actually contain and for what it should be used. The result was that the analyst and developers increased the complexity of the modelling in order to foresee every possible problem. This leads to unused technologies, which simply means a waste of money. So the second rule in software engineering is: deciding what to build is more important than how.&lt;BR&gt;&lt;BR&gt;The classical process of software engineering leads also to separation of people. Customer, analyst, developers works not with each other but separated by place and time. In general, it is bad when analysis, design and construction are separated. This separation enhance the gaps between the vision of what should be build and how. It is not unusual that the people who has initiated the project and so has dictated the vision are not available anymore when the actual implementation occurs. This leads to misunderstandings on the actual goals that should be fulfilled. This is the third rule of software engineering: Most of problems that arise in software projects can be tracked back to lack of communication.&lt;BR&gt;&lt;BR&gt;&lt;STRONG&gt;Adopting good practices&lt;/STRONG&gt;&lt;BR&gt;People who are interested in software engineering know that this kind of problems has been detected long ago and people have begun to think about other methods for making software. Other development methods have come to my attention over the last few years. It has come to my attention when I was realizing that building a house is not the same as building software. The classical rational approaches are very good in dealing with complex but immutable things like constructions or mathematics. But when dealing with rapidly changing environments like software engineering these methods tend to be ineffective. When working for things that tend to change constantly you need more agility. This is why Agile methodologies have arisen and nearly are becoming the norm now. Agile methodologies strive for a slimmer, more lightweight development process. In my opinion when it comes to time and resource consuming factors like processes, the principle that should be haunted is that every process should have a clear justification for everything that it incorporates. Even agile methodologies are sometimes going against this rule but they are nevertheless a breath of fresh air. They help us at better managing change. They definitely enforce a good communication between everybody on the team and so help us to build what the customer wants.&lt;BR&gt;&lt;BR&gt;Agile methodologies come with many variants, one of them is Xp. Xp is certainly one the most used agile development process used these days. The father of Xp is Kent Beck, he published the first book on Xp but Xp is not the invention of one man. A number of very respected software engineers like Ron Jeffries, Martin Fowler and Robert C. Martin started to use Xp and a community has grown up around it.&lt;BR&gt;Advantages of agile methodologies&lt;BR&gt;Agile methodologies encourage rapid feedback from the customer and simple practices that leads to a better quality and rapid discovery of defects. Some of these practices are:&lt;BR&gt;- Pair programming: developers always work in pair so that each developer can check the work of the other and help to discover errors soon.&lt;BR&gt;- Continous integration: In the classical approach every module is build by a developer and at the end all modules are assembled, this usually lead to lots of integration problems because the pieces don’t fit to each others. In an agile project the modules making the entire solution are constantly integrated so that integration problems are detected immediately.&lt;BR&gt;- Test driven programming: programmer constantly writes test that constantly test the software&lt;BR&gt;&lt;BR&gt;Many studies have proven that agile practices lead to the following advantages: &lt;/SPAN&gt;&lt;BR&gt;&lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: verdana&quot;&gt;- Cost effective: One of the major advantages of agile methodologies over traditional methodologies is that agile methodologies are less costly. The practices that the agile methodology promotes have all a common goal: reducing the cost of change. In place of trying to foresee everything in advance we use our energy to make things easier to change.&lt;BR&gt;&lt;/SPAN&gt;&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;&lt;/P&gt;&lt;IMG id=BLOGGER_PHOTO_ID_5065915997802701378 style=&quot;DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center&quot; alt=&quot;&quot; src=&quot;http://bp0.blogger.com/_abE3ofiRYcI/Rk2_wnb_okI/AAAAAAAAAAM/GMrTo1HFGQ4/s320/clip_image002.jpg&quot; border=0&gt;&lt;BR&gt;&lt;BR&gt;&lt;SPAN style=&quot;FONT-SIZE: 78%&quot;&gt;&lt;FONT size=2&gt;source: &lt;/FONT&gt;&lt;/SPAN&gt;&lt;A href=&quot;http://www.ambysoft.com/essays/whyAgileWorksFeedback.html&quot;&gt;&lt;SPAN style=&quot;FONT-SIZE: 78%; FONT-FAMILY: verdana&quot;&gt;&lt;FONT color=#999999 size=2&gt;http://www.ambysoft.com/essays/whyAgileWorksFeedback.html&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/A&gt;&lt;SPAN style=&quot;FONT-FAMILY: verdana&quot;&gt;&lt;SPAN style=&quot;FONT-SIZE: 78%&quot;&gt;&lt;BR&gt;&lt;/SPAN&gt;&lt;BR&gt;&lt;BR&gt;Higher customer satisfactionAgile methodologies favour an incremental approach. The increment is determined by the customer. The customer prioritises the requirements and the developers are responsible for estimating the cost.&lt;BR&gt;- Rapid time to marketIn place of spending months on documents that will never be used the stakeholders simply describes their requirements then the developer spend several hours or days implementing the feature that can be rapidly show to the stakeholders.&lt;BR&gt;- Lower financial riskRapid time to market leads to a shorter payback period.&lt;BR&gt;&lt;IMG id=BLOGGER_PHOTO_ID_5065916195371197010 style=&quot;DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center&quot; alt=&quot;&quot; src=&quot;http://bp2.blogger.com/_abE3ofiRYcI/Rk2_8Hb_olI/AAAAAAAAAAU/0UsflA-PKik/s320/070501sa01_f2.gif&quot; border=0&gt;&lt;BR&gt;&lt;BR&gt;I’m convinced that nobody should ever follow blindly any process. Each team and each project is unique and therefore needs its own custom-made process. A process must be adapted to the locale and be continuously improved. It requires constant reflexion to constantly improve and adapt a local process. That’s why it’s so important to be aware of your environment and what the process used elsewhere are. Post-mortems are meetings where everybody of the team can speak about what went wrong during the project. These meetings can help us continuously improve the development process and to avoid the same mistakes twice. Finally I should stress the fact that at the end it’s the people that make the difference and not the process. This is why every good process should tend to make it self irrelevant.&lt;BR&gt;&lt;/SPAN&gt;
      </content>
    </entry>
      <entry>
      <author>
        <name>Geoffrey Vandiest</name>
        <uri>http://geoffrey-vandiest.skynetblogs.be/about.html</uri>
      </author>
      <title>I Exist</title>
      <link rel="alternate" type="text/html" href="http://geoffrey-vandiest.skynetblogs.be/archive/2007/05/12/i-exist.html" />
            <id>tag:geoffrey-vandiest.skynetblogs.be,2007-05-12:2376287</id>
      <updated>2007-05-12T11:42:46+02:00</updated>
      <published>2007-05-12T11:42:46+02:00</published>
                            <category term="Web" scheme="http://www.blogspirit.com/ns/types#category" />
                                    <category term="exist" scheme="http://www.blogspirit.com/ns/types#tag" />
                    <category term="rss" scheme="http://www.blogspirit.com/ns/types#tag" />
                    <category term="ajax" scheme="http://www.blogspirit.com/ns/types#tag" />
                    <category term="wcf" scheme="http://www.blogspirit.com/ns/types#tag" />
                    <category term="php" scheme="http://www.blogspirit.com/ns/types#tag" />
                    <category term="community" scheme="http://www.blogspirit.com/ns/types#tag" />
                    <category term="agregator" scheme="http://www.blogspirit.com/ns/types#tag" />
                    <category term="networkingweb 2 0" scheme="http://www.blogspirit.com/ns/types#tag" />
              <summary>  My team has worked hard last months to develop the latest Skynet...</summary>
      <content type="html" xml:base="http://geoffrey-vandiest.skynetblogs.be/">
          &lt;P&gt;&lt;FONT face=&quot;Verdana, Arial, Helvetica, sans-serif&quot;&gt;My team has worked hard last months to develop the latest Skynet application: &lt;A href=&quot;http://exist.skynet.be/&quot;&gt;Exist&lt;/A&gt;! &lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face=&quot;Verdana, Arial, Helvetica, sans-serif&quot;&gt;This application is primarily a social networking site addressed to Belgians who want to aggregate not only all the digital content they create and/or are interested in, but also all the digital information they may have compulsed over the time, into one place. It is also an opportunity to reinforce the social networking dimension we offer through our products. The main features of the site are to search by tags in order to find interesting profiles and to aggregate content in order to share your centres of interest.&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face=&quot;Verdana, Arial, Helvetica, sans-serif&quot;&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;FONT face=&quot;Verdana, Arial, Helvetica, sans-serif&quot;&gt;During all stages of the development lifecycle we used web 2.0. technologies and paradigms. Therefore, all the effort has been brought to implement a feed aggregator, clean and meaningful URL and provide a rich end user experience through the use of ajax. The most difficult was to be able to provide a rich user experience with ajax but at the same time guarantee that the site remain crawler friendly. &lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face=&quot;Verdana, Arial, Helvetica, sans-serif&quot;&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;FONT face=&quot;Verdana, Arial, Helvetica, sans-serif&quot;&gt;This application was build using the latest technologies of two worlds that most web developers consider as concurrent: PHP and .Net. For the presentation layer we used a mix of the &lt;A href=&quot;http://developer.yahoo.com/yui/&quot;&gt;Yahoo YUI control library&lt;/A&gt; and &lt;A href=&quot;http://www.prototypejs.org/&quot;&gt;prototype&lt;/A&gt; and the server side code was written in PHP 5.2&amp;nbsp; using our portal framework: ATOM.&amp;nbsp;&amp;nbsp; For the backend we used &lt;A href=&quot;http://wcf.netfx3.com/&quot;&gt;WCF&lt;/A&gt; the latest Microsoft framework for building distributed applications.&amp;nbsp; By combining these technologies we tried to use the best tools available from the enterprise and open source world.&amp;nbsp; &lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face=&quot;Verdana, Arial, Helvetica, sans-serif&quot;&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;FONT face=&quot;Verdana, Arial, Helvetica, sans-serif&quot;&gt;Currently the application is online but not officially launched. So subscribe now exclusively and be one of the first on this new community. &lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face=&quot;Verdana, Arial, Helvetica, sans-serif&quot;&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;FONT face=&quot;Verdana, Arial, Helvetica, sans-serif&quot;&gt;Dutch version:&amp;nbsp; &lt;/FONT&gt;&lt;A href=&quot;http://exist.skynet.be/&quot;&gt;&lt;FONT face=&quot;Verdana, Arial, Helvetica, sans-serif&quot;&gt;http://exist.skynet.be&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=&quot;Verdana, Arial, Helvetica, sans-serif&quot;&gt; &lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face=&quot;Verdana, Arial, Helvetica, sans-serif&quot;&gt;French version: &lt;/FONT&gt;&lt;A href=&quot;http://existe.skynet.be/&quot;&gt;&lt;FONT face=&quot;Verdana, Arial, Helvetica, sans-serif&quot;&gt;http://existe.skynet.be&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=&quot;Verdana, Arial, Helvetica, sans-serif&quot;&gt; &lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face=&quot;Verdana, Arial, Helvetica, sans-serif&quot;&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;FONT face=&quot;Verdana, Arial, Helvetica, sans-serif&quot;&gt;Bye.&lt;/FONT&gt;&lt;/P&gt;
      </content>
    </entry>
      <entry>
      <author>
        <name>Geoffrey Vandiest</name>
        <uri>http://geoffrey-vandiest.skynetblogs.be/about.html</uri>
      </author>
      <title>Comparing ASP.NET with PHP</title>
      <link rel="alternate" type="text/html" href="http://geoffrey-vandiest.skynetblogs.be/archive/2007/03/18/comparing-asp-net-with-php.html" />
            <id>tag:geoffrey-vandiest.skynetblogs.be,2007-03-18:2376279</id>
      <updated>2007-03-18T14:58:09+01:00</updated>
      <published>2007-03-18T14:58:09+01:00</published>
                            <category term="Web" scheme="http://www.blogspirit.com/ns/types#category" />
                                    <category term="asp net vs  php" scheme="http://www.blogspirit.com/ns/types#tag" />
                    <category term="comparing" scheme="http://www.blogspirit.com/ns/types#tag" />
                    <category term="asp net" scheme="http://www.blogspirit.com/ns/types#tag" />
                    <category term="php" scheme="http://www.blogspirit.com/ns/types#tag" />
                    <category term="web" scheme="http://www.blogspirit.com/ns/types#tag" />
                    <category term="technologies" scheme="http://www.blogspirit.com/ns/types#tag" />
              <summary>              In 2005 my management asked me to write a report comparing...</summary>
      <content type="html" xml:base="http://geoffrey-vandiest.skynetblogs.be/">
          &lt;TABLE cellSpacing=5 cellPadding=0 width=&quot;100%&quot; border=0&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD class=post_header&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD class=post_content&gt;&lt;SPAN lang=EN-GB style=&quot;mso-ansi-language: EN-GB&quot;&gt;&lt;FONT face=&quot;Verdana, Arial, Helvetica, sans-serif&quot;&gt;&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt&quot;&gt;&lt;SPAN lang=EN-GB style=&quot;mso-ansi-language: EN-GB&quot;&gt;&lt;FONT face=&quot;Verdana, Arial, Helvetica, sans-serif&quot;&gt;&lt;EM&gt;In 2005 my management asked me to write a report comparing ASP.NET and PHP.&amp;nbsp; &lt;?xml:namespace prefix = o ns = &quot;urn:schemas-microsoft-com:office:office&quot; /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/EM&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt&quot;&gt;&lt;SPAN lang=EN-GB style=&quot;mso-ansi-language: EN-GB&quot;&gt;&lt;FONT face=&quot;Verdana, Arial, Helvetica, sans-serif&quot;&gt;&lt;EM&gt;These technologies have evolved since 2005 and so has my opinion.&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/SPAN&gt;Nevertheless I think that the comparison I made remains valid.&amp;nbsp;&lt;/EM&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt&quot;&gt;&lt;SPAN lang=EN-GB style=&quot;mso-ansi-language: EN-GB&quot;&gt;&lt;EM&gt;&lt;/EM&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;&lt;SPAN lang=EN-GB style=&quot;mso-ansi-language: EN-GB&quot;&gt;&lt;H1 style=&quot;MARGIN: 12pt 0cm 3pt&quot;&gt;&lt;FONT size=5&gt;&lt;FONT face=Arial&gt;&lt;I style=&quot;mso-bidi-font-style: normal&quot;&gt;&lt;SPAN lang=EN-US&gt;Introduction&lt;/SPAN&gt;&lt;/I&gt;&lt;SPAN lang=EN-US style=&quot;FONT-SIZE: 11pt; FONT-FAMILY: Verdana&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/H1&gt;&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt&quot;&gt;&lt;SPAN lang=EN-US style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: Verdana&quot;&gt;When I compared J2EE, the Sun’s Java enterprise platform, with .Net I found lots of articles, studies and benchmarks. So I started this analysis by collecting articles that compared .NET and PHP and was rapidly disappointed because I found very few articles on this subject.&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/SPAN&gt;In fact this didn’t surprise me because these technologies are very difficult to compare.&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/SPAN&gt;You can easily compare J2EE and .NET because these have clear resemblance in the way they are used, in their architecture and programming model but PHP and .Net have only one thing in common, they can be used to build websites. &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt&quot;&gt;&lt;SPAN lang=EN-US style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: Verdana&quot;&gt;Nevertheless I go for the challenge, I will compare Skynet most used technologies PHP and .Net.&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/SPAN&gt;In this document I give a brief history of PHP and .Net, explain what they are and analyze the strengths and weaknesses of both and how these could fit in a growing organization as Skynet.&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;H2 style=&quot;MARGIN: 12pt 0cm 3pt&quot;&gt;&lt;EM&gt;&lt;SPAN lang=EN-US&gt;&lt;FONT face=Arial&gt;History of &lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN lang=EN-US style=&quot;FONT-SIZE: 11pt; FONT-FAMILY: Verdana&quot;&gt;PHP&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/EM&gt;&lt;/H2&gt;&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt&quot;&gt;&lt;SPAN lang=EN-US style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: Verdana&quot;&gt;1995 - Rasmus Lerdorf creates a perl bibliotheque and named it PHP ‘Personal Home Page Tools’.&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt&quot;&gt;&lt;SPAN lang=EN-US style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: Verdana&quot;&gt;1997 - PHP2 (stayed mostly in beta stadium) &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt&quot;&gt;&lt;SPAN lang=EN-US style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: Verdana&quot;&gt;1998 - PHP3 : was first version of the actual php language &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt&quot;&gt;&lt;SPAN lang=EN-US style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: Verdana&quot;&gt;2005 - PHP5 introduced notions of Object Oriented paradigm into the language.&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/SPAN&gt;PHP was initially an open source project that has constantly grown in popularity especially against webmasters.&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;H2 style=&quot;MARGIN: 12pt 0cm 3pt&quot;&gt;&lt;SPAN lang=EN-US&gt;&lt;EM&gt;&lt;FONT face=Arial&gt;History of ASP.NET &lt;/FONT&gt;&lt;/EM&gt;&lt;/SPAN&gt;&lt;/H2&gt;&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt&quot;&gt;&lt;SPAN lang=EN-US style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: Verdana&quot;&gt;1995 - ASP was first released. &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt&quot;&gt;&lt;SPAN lang=EN-US style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: Verdana&quot;&gt;2001 – Microsoft released his new vision and technology: .Net. It englobes he whole new set of technologies like the web application part ASP.NET. ASP.NET has the same name as ASP but it is a completely new technology. From ASP it has only the name in common. The father of .Net is Anders Hejlsberg inventor of Pascal language.&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/SPAN&gt;.Net was mainly the response of Microsft to Sun’s Java platform. &lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt&quot;&gt;&lt;SPAN lang=EN-US style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: Verdana&quot;&gt;2005 - .NET2 is released with Visual Studio2005 – SQL2005 – Biztalk2006&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt&quot;&gt;&lt;SPAN lang=EN-US style=&quot;FONT-SIZE: 11pt; FONT-FAMILY: Verdana&quot;&gt;&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;H2 style=&quot;MARGIN: 12pt 0cm 3pt&quot;&gt;&lt;SPAN lang=EN-US&gt;&lt;EM&gt;&lt;FONT face=Arial&gt;What is PHP?&lt;/FONT&gt;&lt;/EM&gt;&lt;/SPAN&gt;&lt;/H2&gt;&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt&quot;&gt;&lt;SPAN lang=EN-US style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: Verdana&quot;&gt;PHP: Hypertext Preprocessor is an open source server side programming language extensively used for web scripts and to process data passed via the Common Gateway Interface from HTML forms etc.&lt;I style=&quot;mso-bidi-font-style: normal&quot;&gt;[2] &lt;/I&gt;PHP can be written as scripts that reside on the server and may produce HTML output that downloads to the web browser. When the PHP preprocessor in your Web server notices a PHP language tag like the following, the &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt&quot;&gt;&lt;SPAN lang=EN-US style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: Verdana&quot;&gt;PHP engine is invoked to execute that code: &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt&quot;&gt;&lt;SPAN lang=EN-US style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: Verdana&quot;&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt&quot;&gt;&lt;SPAN lang=EN-US style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: Verdana&quot;&gt;Hello&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt&quot;&gt;&lt;SPAN lang=EN-US style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: Verdana&quot;&gt;&amp;lt;?php&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt&quot;&gt;&lt;SPAN lang=EN-US style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: Verdana&quot;&gt;some code here that output the word WORLD!&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt&quot;&gt;&lt;SPAN lang=EN-US style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: Verdana&quot;&gt;?&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt&quot;&gt;&lt;SPAN lang=EN-US style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: Verdana&quot;&gt;Result of the html page:&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt&quot;&gt;&lt;SPAN lang=EN-US style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: Verdana&quot;&gt;Hello WORLD!!!&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt&quot;&gt;&lt;SPAN lang=EN-US style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: Verdana&quot;&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt&quot;&gt;&lt;SPAN lang=EN style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: Verdana; mso-ansi-language: EN&quot;&gt;PHP is similar to Microsoft's Active Server Page technology (ASP) the ancestor of ASP.NET.&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/SPAN&gt;PHP runs mostly on UNIX servers but it can also run on Windows based servers. It is used for connecting to a database to create all kinds of web applications, such as product catalogs, changing content, calendars, and e-commerce.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt&quot;&gt;&lt;SPAN lang=EN style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: Verdana; mso-ansi-language: EN&quot;&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;H2 style=&quot;MARGIN: 12pt 0cm 3pt&quot;&gt;&lt;SPAN lang=EN-US&gt;&lt;EM&gt;&lt;FONT face=Arial&gt;What is .Net?&lt;/FONT&gt;&lt;/EM&gt;&lt;/SPAN&gt;&lt;/H2&gt;&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt&quot;&gt;&lt;SPAN lang=EN style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: Verdana; mso-ansi-language: EN&quot;&gt;Is Microsoft's set of software technologies for connecting information, people, systems and devices. It is based on web services which are small applications that can connect to each other as well as to other larger applications over the Internet. .Net is made to run on any type of devices and for the development of all type of applications: web sites, web services, &lt;/SPAN&gt;&lt;SPAN lang=EN-US style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: Verdana&quot;&gt;windows applications, windows services…&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt&quot;&gt;&lt;SPAN lang=EN-US style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: Verdana&quot;&gt;&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp;&lt;/SPAN&gt;Although .Net is a set of proprietary technologies developed by Microsoft to offer an alternative to Java and J2EE that runs only on windows based machines Microsoft published the definitions of the.Net technologies as open standards. This allows projects like Mono.&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;Mono is the name of an open source project led by Novell (formerly by Ximian) to create an ECMA Standard compliant (Ecma-334 and Ecma-335), .NET compatible set of tools. Mono can be run on GNU/Linux, UNIX, Mac OS X, and Windows based computers.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt&quot;&gt;&lt;SPAN lang=EN-US style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: Verdana&quot;&gt;&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt&quot;&gt;&lt;SPAN lang=EN style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: Verdana; mso-ansi-language: EN&quot;&gt;ASP.NET is the technology built into .NET that you use to create Web pages and other Internet-based applications. ASP.NET is not merely the next version of ASP (Active Server pages). ASP was thrown out and ASP.NET was written from the ground up. It's a brand new, object-oriented platform with a completely different programming model as ASP or PHP.&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/SPAN&gt;In ASP.NET developers are able to write web applications on the same manner as they writes other programs like windows applications.&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt&quot;&gt;&lt;SPAN lang=EN style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: Verdana; mso-ansi-language: EN&quot;&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt&quot;&gt;&lt;SPAN lang=EN style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: Verdana; mso-ansi-language: EN&quot;&gt;Another big difference of ASP.NET with ASP or PHP is the separations of the HTML and the program part.&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/SPAN&gt;In ASP.NET the code part of the web application is completely separated from the visual part.&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/SPAN&gt;Separation of the code and html is entirely new for web development.&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/SPAN&gt;PHP code consists of HTML and code mixed together but there are tinplating frameworks available that brake the html from the code.&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/SPAN&gt;With ASP.NET the coding and design part can completely be separated and the design and development work can be done by different teams.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt&quot;&gt;&lt;SPAN lang=EN style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: Verdana; mso-ansi-language: EN&quot;&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt&quot;&gt;&lt;SPAN lang=EN-US style=&quot;FONT-SIZE: 11pt; FONT-FAMILY: Verdana&quot;&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;H2 style=&quot;MARGIN: 12pt 0cm 3pt&quot;&gt;&lt;SPAN lang=EN-US&gt;&lt;EM&gt;&lt;FONT face=Arial&gt;PHP Strength and Weaknesses&lt;/FONT&gt;&lt;/EM&gt;&lt;/SPAN&gt;&lt;/H2&gt;&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt&quot;&gt;&lt;SPAN lang=EN-US style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: Verdana&quot;&gt;PHP is very &lt;B style=&quot;mso-bidi-font-weight: normal&quot;&gt;easy&lt;/B&gt; to learn as most of all scripting languages (javascript, vbscript,…).&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/SPAN&gt;Especially for programmers that knows the C language.&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/SPAN&gt;As most of the scripting languages it’s &lt;B style=&quot;mso-bidi-font-weight: normal&quot;&gt;not strongly typed&lt;/B&gt; what give PHP flexibility but this comes at the expense of robustness. &lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN lang=EN style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: Verdana; mso-ansi-language: EN&quot;&gt;Most generally, &quot;strong typing&quot; implies that the programming language or implementation enforces some kind of constraints upon programs, preventing them from running code which uses data in an invalid way. For instance, an integer &lt;A title=Addition href=&quot;http://en.wikipedia.org/wiki/Addition&quot;&gt;&lt;SPAN lang=EN-US style=&quot;COLOR: windowtext; TEXT-DECORATION: none; mso-ansi-language: EN-US; text-underline: none&quot;&gt;addition&lt;/SPAN&gt;&lt;/A&gt; (1+1=2) operation may not be used upon strings; (“1” + “1”=”11”) a procedure which operates upon &lt;A title=&quot;Linked list&quot; href=&quot;http://en.wikipedia.org/wiki/Linked_list&quot;&gt;&lt;SPAN lang=EN-US style=&quot;COLOR: windowtext; TEXT-DECORATION: none; mso-ansi-language: EN-US; text-underline: none&quot;&gt;linked lists&lt;/SPAN&gt;&lt;/A&gt; may not be used upon numbers.&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN lang=EN-US style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: Verdana&quot;&gt;The flexibility of weak typing of scripting languages causes bugs that are very hard to detect.&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt&quot;&gt;&lt;SPAN lang=EN style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: Verdana; mso-ansi-language: EN&quot;&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt&quot;&gt;&lt;SPAN lang=EN style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: Verdana; mso-ansi-language: EN&quot;&gt;Also as most of all scripting languages php is interpreted.&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/SPAN&gt;Again interpreted languages are easy to handle because you don’t need to compile the code but this come at the expense of efficiency because interpreted code is always &lt;B style=&quot;mso-bidi-font-weight: normal&quot;&gt;slower&lt;/B&gt; as compiled code. Some optimizer are available that &lt;/SPAN&gt;&lt;SPAN lang=EN-US style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: Verdana&quot;&gt;compiles PHP code to speed performance. Additional commercial products also exist, such as the Zend Performance Suite, which can cache precompiled PHP pages, further speeding overall performance but these remains external products. &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt&quot;&gt;&lt;SPAN lang=EN-US style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: Verdana&quot;&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt&quot;&gt;&lt;SPAN lang=EN-US style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: Verdana&quot;&gt;But t&lt;/SPAN&gt;&lt;SPAN lang=EN style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: Verdana; mso-ansi-language: EN&quot;&gt;he greatest advantage to use a compiler is not performance but checking for errors.&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/SPAN&gt;Good type checking is a well proven part of software engineering. A strongly typed language complier &lt;B style=&quot;mso-bidi-font-weight: normal&quot;&gt;picks up errors and this is not possible&lt;/B&gt; for weak typed languages. &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt&quot;&gt;&lt;SPAN lang=EN style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: Verdana; mso-ansi-language: EN&quot;&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt&quot;&gt;&lt;SPAN lang=EN style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: Verdana; mso-ansi-language: EN&quot;&gt;Other advantages of typed languages are that the &lt;B style=&quot;mso-bidi-font-weight: normal&quot;&gt;IDE&lt;/B&gt; (development tool) can help the programmer.&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/SPAN&gt;The programmer &lt;/SPAN&gt;&lt;SPAN lang=EN-US style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: Verdana&quot;&gt;doesn’t have to do manual type inference or read documentation.&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/SPAN&gt;All this is not possible for PHP due to he’s weak typing.&lt;/SPAN&gt;&lt;SPAN lang=EN style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: Verdana; mso-ansi-language: EN&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt&quot;&gt;&lt;SPAN lang=EN style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: Verdana; mso-ansi-language: EN&quot;&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt&quot;&gt;&lt;SPAN lang=EN style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: Verdana; mso-ansi-language: EN&quot;&gt;PHP &lt;B style=&quot;mso-bidi-font-weight: normal&quot;&gt;don’t enforce at all Object Orientation.&lt;/B&gt; Even PHP5 is not truly object oriented because it has to stay compatible with the older versions.&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/SPAN&gt;What give the ability to programmers to really play with the code and don’t enforce at all Object Oriented structure.&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/SPAN&gt;This is also a great shame, as there is much to be gained from adopting an object oriented approach to developing object oriented applications, perhaps the most important being code reuse. A well written piece of object oriented code can easily be employed to solve the same problem in other projects; we can simply slot it in whenever we need it.&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/SPAN&gt;This is why &lt;B style=&quot;mso-bidi-font-weight: normal&quot;&gt;code reuse happens less frequently&lt;/B&gt; in PHP.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt&quot;&gt;&lt;SPAN lang=EN style=&quot;FONT-SIZE: 11pt; FONT-FAMILY: Verdana; mso-ansi-language: EN&quot;&gt;&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt&quot;&gt;&lt;I style=&quot;mso-bidi-font-style: normal&quot;&gt;&lt;SPAN lang=EN-US style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: Verdana; mso-bidi-font-weight: bold&quot;&gt;“The object oriented paradigm is an approach to programming that’s intended to encourage the development of maintainable and well structured applications. Many &lt;A title=&quot;PHP, or Hypertext Preprocessor, is an open source, server-side programming language.&quot; href=&quot;http://www.sitepoint.com/glossary.php?q=P#term_1&quot;&gt;&lt;SPAN style=&quot;COLOR: windowtext; TEXT-DECORATION: none; text-underline: none&quot;&gt;PHP&lt;/SPAN&gt;&lt;/A&gt; coders regard object oriented programming (&lt;A title=&quot;An programming methodology involving the building of abstracted code objects designed to interact with each other. &quot; href=&quot;http://www.sitepoint.com/glossary.php?q=O#term_10&quot;&gt;&lt;SPAN style=&quot;COLOR: windowtext; TEXT-DECORATION: none; text-underline: none&quot;&gt;OOP&lt;/SPAN&gt;&lt;/A&gt;) as some kind of mystic art, given that frequently, examples of PHP look only at procedural approaches to problem solving. (Note that procedural programming is the name given to non-object oriented programming.” [1] &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/I&gt;&lt;/P&gt;&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt&quot;&gt;&lt;SPAN lang=EN-US style=&quot;FONT-SIZE: 11pt; FONT-FAMILY: Verdana&quot;&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt&quot;&gt;&lt;SPAN lang=EN-US style=&quot;FONT-SIZE: 11pt; FONT-FAMILY: Verdana&quot;&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;H2 style=&quot;MARGIN: 12pt 0cm 3pt&quot;&gt;&lt;EM&gt;&lt;FONT face=Arial&gt;&lt;SPAN lang=EN style=&quot;mso-ansi-language: EN&quot;&gt;ASP.NET Strength and &lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;Weaknesses&lt;/SPAN&gt;&lt;SPAN lang=EN style=&quot;mso-ansi-language: EN&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/EM&gt;&lt;/H2&gt;&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt&quot;&gt;&lt;SPAN lang=EN style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: Verdana; mso-ansi-language: EN&quot;&gt;ASP.NET has a more rigorous Object Oriented programming model as PHP what makes it more complicated to learn. To master the power of ASP.NET developers must have a through understanding of the Object Oriented paradigm but for programmers who master this paradigm ASP.NET code is easier to write, debug, and maintain&amp;nbsp;as PHP, particularly for larger projects. &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt&quot;&gt;&lt;SPAN lang=EN style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: Verdana; mso-ansi-language: EN&quot;&gt;.Net is an object-oriented programmer's dream, with language flexibility, and with sophisticated object-oriented features supported.&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/SPAN&gt;The object-oriented foundation of ASP.NET programming make it easier to read, reuse, maintain, and share code among groups of programmers who must work together on a single project. &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt&quot;&gt;&lt;SPAN lang=EN style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: Verdana; mso-ansi-language: EN&quot;&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt&quot;&gt;&lt;SPAN lang=EN-US style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: Verdana&quot;&gt;Therefore ASP.NET uses the &lt;B style=&quot;mso-bidi-font-weight: normal&quot;&gt;descriptive programming paradigm&lt;/B&gt;. The paradigm is based on the idea that most of the programming tasks consist of solving common problem.&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/SPAN&gt;One goal of ASP.NET was to eliminate much of the tedious coding. By solving these problems by using reusable components, wizards or patterns we are able to reduce drastically the amount of coding and also increase the quality.&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/SPAN&gt;ASP.NET provides an incredible amount of components, wizards and patterns.&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/SPAN&gt;This is also why some beginning developers find &lt;/SPAN&gt;&lt;SPAN lang=EN style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: Verdana; mso-ansi-language: EN&quot;&gt;ASP.NET complicated. ASP.NET is also more difficult to learn for web developers because they have to completely change the way they write web applications.&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/SPAN&gt;But ASP.NET code can be written in any language, so developers can leverage their existing programming knowledge, transferring their experience from one language to .Net. PHP developers can even choose for the PHP language in .Net. &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt&quot;&gt;&lt;SPAN lang=EN-US style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: Verdana&quot;&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt&quot;&gt;&lt;SPAN lang=EN style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: Verdana; mso-ansi-language: EN&quot;&gt;ASP.NET provides the developer with a generous suite of debugging tools (including breakpoints, tracing, and extensive error messages).&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN lang=EN-US style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: Verdana&quot;&gt;Having a &lt;B style=&quot;mso-bidi-font-weight: normal&quot;&gt;great IDE&lt;/B&gt; is the central factor to increase developer’s productivity and overall quality.&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN lang=EN style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: Verdana; mso-ansi-language: EN&quot;&gt;.Net comes with many IDE where &lt;/SPAN&gt;&lt;SPAN lang=EN-US style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: Verdana&quot;&gt;the developer can develop any kind of applications with&lt;/SPAN&gt;&lt;SPAN lang=EN style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: Verdana; mso-ansi-language: EN&quot;&gt; the most powerful WYSIWYG design and editing tools and wizards that can help him through tedious or complex tasks.&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;Developers can choose for the enterprise or professional edition of Visual Studio but Microsoft also released several free versions: Visual Studio C# Express, Web Express, VB Express.&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/SPAN&gt;Where in Visual Studio you can program all types of applications the Express editions are limited to Web development or Windows development. Beside Microsoft lots of different IDE are also available like from Borland.&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt&quot;&gt;&lt;SPAN lang=EN style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: Verdana; mso-ansi-language: EN&quot;&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt&quot;&gt;&lt;SPAN lang=EN style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: Verdana; mso-ansi-language: EN&quot;&gt;.Net code is compiled in native processor code.&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/SPAN&gt;Compiled code is a lot faster as interpreted code like PHP. &lt;/SPAN&gt;&lt;SPAN lang=EN-US style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: Verdana&quot;&gt;&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp;&lt;/SPAN&gt;ASP.NET comes also out of the box with powerful caching capabilities what makes it very scalable.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt 18pt&quot;&gt;&lt;SPAN lang=EN-US style=&quot;FONT-SIZE: 11pt; FONT-FAMILY: Verdana&quot;&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;H2 style=&quot;MARGIN: 12pt 0cm 3pt&quot;&gt;&lt;SPAN lang=EN-US&gt;&lt;EM&gt;&lt;FONT face=Arial&gt;Facing growth&lt;/FONT&gt;&lt;/EM&gt;&lt;/SPAN&gt;&lt;/H2&gt;&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt&quot;&gt;&lt;SPAN lang=EN-US style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: Verdana&quot;&gt;Web development in PHP becomes harder to maintain and develop when the scope of the projects and the teams grows.&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt&quot;&gt;&lt;SPAN lang=EN-US style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: Verdana&quot;&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt&quot;&gt;&lt;SPAN lang=EN-US style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: Verdana&quot;&gt;PHP is perfectly suited for applications with a low degree of complexity.&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/SPAN&gt;It makes webmaster able to easily maintain the design and coding part of the applications.&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/SPAN&gt;When the complexity and size of the projects increase above a certain level it is not possible for one individual to have a complete picture of the application.&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/SPAN&gt;Organizations have to adapt and face new challenges.&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/SPAN&gt;Because the higher complexity demands more specialized skills webmasters have to specialize themselves in coders or webmasters and the development of web applications have to be more organized.&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/SPAN&gt;This is the time in the organization lifecycle where development processes arises.&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/SPAN&gt;With these processes more and diversified tasks have to be done like business analyses, functional analyses, testing and decision processes must be formalized. All theses tasks demand further specializations and organization members that are involved in the process of building new applications have to play new roles like the role of tester, architect, business analyst, project manager.&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt&quot;&gt;&lt;SPAN lang=EN-US style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: Verdana&quot;&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt&quot;&gt;&lt;SPAN lang=EN-US style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: Verdana&quot;&gt;To be able to work with many developers and to support the development process new tools have to be setup that helps maintaining the quality and productivity of the development and facilitates the communication between the different roles.&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt&quot;&gt;&lt;SPAN lang=EN-US style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: Verdana&quot;&gt;Growing organizations needs tools that sustain the project lifecycle like source controllers that let several developers work on the same applications, release management tools where version of different applications are stored, process guidance tools that help the project manager gather data on the productivity or quality of the project, testing automation tools, reporting and planning tools. &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt&quot;&gt;&lt;SPAN lang=EN-US style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: Verdana&quot;&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt&quot;&gt;&lt;SPAN lang=EN-US style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: Verdana&quot;&gt;Although some project lifecycle management software exist for PHP they are hard to integrate and to setup. This is the reason why at Skynet for PHP development we still miss all these tools that enhance the quality and productivity of the developments. .Net and other enterprise platforms like J2EE offer a large amount of such software.&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/SPAN&gt;Most of them can be integrated into the development environment of the developers or can be deployed as separated software for project managers, business analyst, testers. &lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp;&lt;/SPAN&gt;Developments of projects in larger teams in .Net can be completely supported with Team System and it integrates perfectly into the usual tools used by the project manager or business analyst like Word or Excel. It comes out of the box with several processes like Agile or CMMI but can also be adapted to the organization existing processes.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt&quot;&gt;&lt;SPAN lang=EN-US style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: Verdana&quot;&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt&quot;&gt;&lt;SPAN lang=EN-US style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: Verdana&quot;&gt;PHP was and remain an open source project.&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/SPAN&gt;This explains why tools for the support of lifecycle management are hard to find and to integrate.&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/SPAN&gt;Nevertheless this could change in the future because PHP is now conducted by a commercial organization: ‘Zend Technologies’.&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/SPAN&gt;Zend is currently investing in the development of lifecycle management tools.&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/SPAN&gt;Nevertheless Zend is just a beginner and started to penetrate the market.&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/SPAN&gt;It could last for years before Zend will be able to compete with organizations as Microsoft, IBM or Sun that have invested since years in the development of lifecycle management tools.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt&quot;&gt;&lt;SPAN lang=EN-US style=&quot;FONT-SIZE: 11pt; FONT-FAMILY: Verdana&quot;&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt&quot;&gt;&lt;SPAN lang=EN-US style=&quot;FONT-SIZE: 11pt; FONT-FAMILY: Verdana&quot;&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt&quot;&gt;&lt;SPAN lang=EN-US style=&quot;FONT-SIZE: 11pt; FONT-FAMILY: Verdana&quot;&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt&quot;&gt;&lt;B&gt;&lt;I&gt;&lt;SPAN lang=EN-US style=&quot;FONT-SIZE: 14pt; FONT-FAMILY: Arial; mso-ansi-language: EN-US; mso-fareast-font-family: 'Times New Roman'; mso-fareast-language: EN-US; mso-bidi-language: AR-SA&quot;&gt;&lt;BR style=&quot;PAGE-BREAK-BEFORE: always&quot; clear=all&gt;&lt;/SPAN&gt;&lt;/I&gt;&lt;/B&gt;&amp;nbsp;&lt;/P&gt;&lt;H2 style=&quot;MARGIN: 12pt 0cm 3pt&quot;&gt;&lt;SPAN lang=EN-US&gt;&lt;EM&gt;&lt;FONT face=Arial&gt;Summary&lt;/FONT&gt;&lt;/EM&gt;&lt;/SPAN&gt;&lt;/H2&gt;&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt&quot;&gt;&lt;TABLE class=MsoNormalTable style=&quot;WIDTH: 423.75pt; mso-cellspacing: 0cm; mso-padding-alt: 0cm 0cm 0cm 0cm&quot; cellSpacing=0 cellPadding=0 width=565 border=1&gt;&lt;TBODY&gt;&lt;TR style=&quot;mso-yfti-irow: 0; mso-yfti-firstrow: yes&quot;&gt;&lt;TD style=&quot;BORDER-RIGHT: #ece9d8; PADDING-RIGHT: 0cm; BORDER-TOP: #ece9d8; PADDING-LEFT: 0cm; PADDING-BOTTOM: 0cm; BORDER-LEFT: #ece9d8; WIDTH: 153.75pt; PADDING-TOP: 0cm; BORDER-BOTTOM: #ece9d8; BACKGROUND-COLOR: transparent&quot; vAlign=top width=205&gt;&lt;P&gt;&lt;B&gt;&lt;SPAN lang=EN-US style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: Arial&quot;&gt;Feature &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD style=&quot;BORDER-RIGHT: #ece9d8; PADDING-RIGHT: 0cm; BORDER-TOP: #ece9d8; PADDING-LEFT: 0cm; PADDING-BOTTOM: 0cm; BORDER-LEFT: #ece9d8; WIDTH: 72pt; PADDING-TOP: 0cm; BORDER-BOTTOM: #ece9d8; BACKGROUND-COLOR: transparent&quot; vAlign=top width=96&gt;&lt;P&gt;&lt;B&gt;&lt;SPAN lang=EN-US style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: Arial&quot;&gt;.Net &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD style=&quot;BORDER-RIGHT: #ece9d8; PADDING-RIGHT: 0cm; BORDER-TOP: #ece9d8; PADDING-LEFT: 0cm; PADDING-BOTTOM: 0cm; BORDER-LEFT: #ece9d8; WIDTH: 77.25pt; PADDING-TOP: 0cm; BORDER-BOTTOM: #ece9d8; BACKGROUND-COLOR: transparent&quot; vAlign=top width=103&gt;&lt;P&gt;&lt;B&gt;&lt;SPAN lang=EN-US style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: Arial&quot;&gt;Java &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD style=&quot;BORDER-RIGHT: #ece9d8; PADDING-RIGHT: 0cm; BORDER-TOP: #ece9d8; PADDING-LEFT: 0cm; PADDING-BOTTOM: 0cm; BORDER-LEFT: #ece9d8; WIDTH: 120.75pt; PADDING-TOP: 0cm; BORDER-BOTTOM: #ece9d8; BACKGROUND-COLOR: transparent&quot; vAlign=top width=161&gt;&lt;P&gt;&lt;B&gt;&lt;SPAN lang=EN-US style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: Arial&quot;&gt;PHP &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR style=&quot;mso-yfti-irow: 1&quot;&gt;&lt;TD style=&quot;BORDER-RIGHT: #ece9d8; PADDING-RIGHT: 0cm; BORDER-TOP: #ece9d8; PADDING-LEFT: 0cm; PADDING-BOTTOM: 0cm; BORDER-LEFT: #ece9d8; WIDTH: 153.75pt; PADDING-TOP: 0cm; BORDER-BOTTOM: #ece9d8; BACKGROUND-COLOR: transparent&quot; vAlign=top width=205&gt;&lt;P&gt;&lt;SPAN lang=EN-US style=&quot;FONT-SIZE: 9pt; FONT-FAMILY: Arial&quot;&gt;Integrates tools for &lt;B style=&quot;mso-bidi-font-weight: normal&quot;&gt;working in team&lt;/B&gt;&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/SPAN&gt;like source controller, process guidance tools, architecture tools&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD style=&quot;BORDER-RIGHT: #ece9d8; PADDING-RIGHT: 0cm; BORDER-TOP: #ece9d8; PADDING-LEFT: 0cm; PADDING-BOTTOM: 0cm; BORDER-LEFT: #ece9d8; WIDTH: 72pt; PADDING-TOP: 0cm; BORDER-BOTTOM: #ece9d8; BACKGROUND-COLOR: transparent&quot; vAlign=top width=96&gt;&lt;P&gt;&lt;SPAN lang=EN-US style=&quot;FONT-SIZE: 9pt; FONT-FAMILY: Arial&quot;&gt;Yes&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD style=&quot;BORDER-RIGHT: #ece9d8; PADDING-RIGHT: 0cm; BORDER-TOP: #ece9d8; PADDING-LEFT: 0cm; PADDING-BOTTOM: 0cm; BORDER-LEFT: #ece9d8; WIDTH: 77.25pt; PADDING-TOP: 0cm; BORDER-BOTTOM: #ece9d8; BACKGROUND-COLOR: transparent&quot; vAlign=top width=103&gt;&lt;P&gt;&lt;SPAN lang=EN-US style=&quot;FONT-SIZE: 9pt; FONT-FAMILY: Arial&quot;&gt;Yes&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD style=&quot;BORDER-RIGHT: #ece9d8; PADDING-RIGHT: 0cm; BORDER-TOP: #ece9d8; PADDING-LEFT: 0cm; PADDING-BOTTOM: 0cm; BORDER-LEFT: #ece9d8; WIDTH: 120.75pt; PADDING-TOP: 0cm; BORDER-BOTTOM: #ece9d8; BACKGROUND-COLOR: transparent&quot; vAlign=top width=161&gt;&lt;P&gt;&lt;SPAN lang=EN-US style=&quot;FONT-SIZE: 9pt; FONT-FAMILY: Arial&quot;&gt;Yes, open source tools are available but they are not integrated&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR style=&quot;mso-yfti-irow: 2&quot;&gt;&lt;TD style=&quot;BORDER-RIGHT: #ece9d8; PADDING-RIGHT: 0cm; BORDER-TOP: #ece9d8; PADDING-LEFT: 0cm; PADDING-BOTTOM: 0cm; BORDER-LEFT: #ece9d8; WIDTH: 153.75pt; PADDING-TOP: 0cm; BORDER-BOTTOM: #ece9d8; BACKGROUND-COLOR: transparent&quot; vAlign=top width=205&gt;&lt;P&gt;&lt;SPAN lang=EN-US style=&quot;FONT-SIZE: 9pt; FONT-FAMILY: Arial&quot;&gt;IDE with Integrated testing tools (Unit – Load).&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/SPAN&gt;Improve the overall &lt;B style=&quot;mso-bidi-font-weight: normal&quot;&gt;quality of the development process&lt;/B&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD style=&quot;BORDER-RIGHT: #ece9d8; PADDING-RIGHT: 0cm; BORDER-TOP: #ece9d8; PADDING-LEFT: 0cm; PADDING-BOTTOM: 0cm; BORDER-LEFT: #ece9d8; WIDTH: 72pt; PADDING-TOP: 0cm; BORDER-BOTTOM: #ece9d8; BACKGROUND-COLOR: transparent&quot; vAlign=top width=96&gt;&lt;P&gt;&lt;SPAN lang=EN-US style=&quot;FONT-SIZE: 9pt; FONT-FAMILY: Arial&quot;&gt;Yes&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD style=&quot;BORDER-RIGHT: #ece9d8; PADDING-RIGHT: 0cm; BORDER-TOP: #ece9d8; PADDING-LEFT: 0cm; PADDING-BOTTOM: 0cm; BORDER-LEFT: #ece9d8; WIDTH: 77.25pt; PADDING-TOP: 0cm; BORDER-BOTTOM: #ece9d8; BACKGROUND-COLOR: transparent&quot; vAlign=top width=103&gt;&lt;P&gt;&lt;SPAN lang=EN-US style=&quot;FONT-SIZE: 9pt; FONT-FAMILY: Arial&quot;&gt;Yes &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD style=&quot;BORDER-RIGHT: #ece9d8; PADDING-RIGHT: 0cm; BORDER-TOP: #ece9d8; PADDING-LEFT: 0cm; PADDING-BOTTOM: 0cm; BORDER-LEFT: #ece9d8; WIDTH: 120.75pt; PADDING-TOP: 0cm; BORDER-BOTTOM: #ece9d8; BACKGROUND-COLOR: transparent&quot; vAlign=top width=161&gt;&lt;P&gt;&lt;SPAN lang=EN-US style=&quot;FONT-SIZE: 9pt; FONT-FAMILY: Arial&quot;&gt;No&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR style=&quot;mso-yfti-irow: 3&quot;&gt;&lt;TD style=&quot;BORDER-RIGHT: #ece9d8; PADDING-RIGHT: 0cm; BORDER-TOP: #ece9d8; PADDING-LEFT: 0cm; PADDING-BOTTOM: 0cm; BORDER-LEFT: #ece9d8; WIDTH: 153.75pt; PADDING-TOP: 0cm; BORDER-BOTTOM: #ece9d8; BACKGROUND-COLOR: transparent&quot; vAlign=top width=205&gt;&lt;P&gt;&lt;SPAN lang=EN-US style=&quot;FONT-SIZE: 9pt; FONT-FAMILY: Arial&quot;&gt;Compiled Code – &lt;B style=&quot;mso-bidi-font-weight: normal&quot;&gt;Increases website speed&lt;/B&gt; (precompiled is the fastest)&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD style=&quot;BORDER-RIGHT: #ece9d8; PADDING-RIGHT: 0cm; BORDER-TOP: #ece9d8; PADDING-LEFT: 0cm; PADDING-BOTTOM: 0cm; BORDER-LEFT: #ece9d8; WIDTH: 72pt; PADDING-TOP: 0cm; BORDER-BOTTOM: #ece9d8; BACKGROUND-COLOR: transparent&quot; vAlign=top width=96&gt;&lt;P&gt;&lt;SPAN lang=EN-US style=&quot;FONT-SIZE: 9pt; FONT-FAMILY: Arial&quot;&gt;Yes – both precompiled and dynamically compiled when a page is requested&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD style=&quot;BORDER-RIGHT: #ece9d8; PADDING-RIGHT: 0cm; BORDER-TOP: #ece9d8; PADDING-LEFT: 0cm; PADDING-BOTTOM: 0cm; BORDER-LEFT: #ece9d8; WIDTH: 77.25pt; PADDING-TOP: 0cm; BORDER-BOTTOM: #ece9d8; BACKGROUND-COLOR: transparent&quot; vAlign=top width=103&gt;&lt;P&gt;&lt;SPAN lang=EN-US style=&quot;FONT-SIZE: 9pt; FONT-FAMILY: Arial&quot;&gt;Yes – both precompiled and dynamically compiled when a page is requested&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD style=&quot;BORDER-RIGHT: #ece9d8; PADDING-RIGHT: 0cm; BORDER-TOP: #ece9d8; PADDING-LEFT: 0cm; PADDING-BOTTOM: 0cm; BORDER-LEFT: #ece9d8; WIDTH: 120.75pt; PADDING-TOP: 0cm; BORDER-BOTTOM: #ece9d8; BACKGROUND-COLOR: transparent&quot; vAlign=top width=161&gt;&lt;P&gt;&lt;SPAN lang=EN-US style=&quot;FONT-SIZE: 9pt; FONT-FAMILY: Arial&quot;&gt;No – a 3&lt;SUP&gt;rd&lt;/SUP&gt; party accelerator (zend core) can be used to increase performance &lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR style=&quot;mso-yfti-irow: 4&quot;&gt;&lt;TD style=&quot;BORDER-RIGHT: #ece9d8; PADDING-RIGHT: 0cm; BORDER-TOP: #ece9d8; PADDING-LEFT: 0cm; PADDING-BOTTOM: 0cm; BORDER-LEFT: #ece9d8; WIDTH: 153.75pt; PADDING-TOP: 0cm; BORDER-BOTTOM: #ece9d8; BACKGROUND-COLOR: transparent&quot; vAlign=top width=205&gt;&lt;P&gt;&lt;SPAN lang=EN-US style=&quot;FONT-SIZE: 9pt; FONT-FAMILY: Arial&quot;&gt;Compiled Code – Compiler detect compile time errors what increase the &lt;B style=&quot;mso-bidi-font-weight: normal&quot;&gt;early fault detection&lt;/B&gt; in code&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD style=&quot;BORDER-RIGHT: #ece9d8; PADDING-RIGHT: 0cm; BORDER-TOP: #ece9d8; PADDING-LEFT: 0cm; PADDING-BOTTOM: 0cm; BORDER-LEFT: #ece9d8; WIDTH: 72pt; PADDING-TOP: 0cm; BORDER-BOTTOM: #ece9d8; BACKGROUND-COLOR: transparent&quot; vAlign=top width=96&gt;&lt;P&gt;&lt;SPAN lang=EN-US style=&quot;FONT-SIZE: 9pt; FONT-FAMILY: Arial&quot;&gt;Yes&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD style=&quot;BORDER-RIGHT: #ece9d8; PADDING-RIGHT: 0cm; BORDER-TOP: #ece9d8; PADDING-LEFT: 0cm; PADDING-BOTTOM: 0cm; BORDER-LEFT: #ece9d8; WIDTH: 77.25pt; PADDING-TOP: 0cm; BORDER-BOTTOM: #ece9d8; BACKGROUND-COLOR: transparent&quot; vAlign=top width=103&gt;&lt;P&gt;&lt;SPAN lang=EN-US style=&quot;FONT-SIZE: 9pt; FONT-FAMILY: Arial&quot;&gt;Yes&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD style=&quot;BORDER-RIGHT: #ece9d8; PADDING-RIGHT: 0cm; BORDER-TOP: #ece9d8; PADDING-LEFT: 0cm; PADDING-BOTTOM: 0cm; BORDER-LEFT: #ece9d8; WIDTH: 120.75pt; PADDING-TOP: 0cm; BORDER-BOTTOM: #ece9d8; BACKGROUND-COLOR: transparent&quot; vAlign=top width=161&gt;&lt;P&gt;&lt;SPAN lang=EN-US style=&quot;FONT-SIZE: 9pt; FONT-FAMILY: Arial&quot;&gt;No&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR style=&quot;mso-yfti-irow: 5&quot;&gt;&lt;TD style=&quot;BORDER-RIGHT: #ece9d8; PADDING-RIGHT: 0cm; BORDER-TOP: #ece9d8; PADDING-LEFT: 0cm; PADDING-BOTTOM: 0cm; BORDER-LEFT: #ece9d8; WIDTH: 153.75pt; PADDING-TOP: 0cm; BORDER-BOTTOM: #ece9d8; BACKGROUND-COLOR: transparent&quot; vAlign=top width=205&gt;&lt;P&gt;&lt;SPAN lang=EN-US style=&quot;FONT-SIZE: 9pt; FONT-FAMILY: Arial&quot;&gt;Scripted Language – results in &lt;B style=&quot;mso-bidi-font-weight: normal&quot;&gt;poor website performance&lt;/B&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD style=&quot;BORDER-RIGHT: #ece9d8; PADDING-RIGHT: 0cm; BORDER-TOP: #ece9d8; PADDING-LEFT: 0cm; PADDING-BOTTOM: 0cm; BORDER-LEFT: #ece9d8; WIDTH: 72pt; PADDING-TOP: 0cm; BORDER-BOTTOM: #ece9d8; BACKGROUND-COLOR: transparent&quot; vAlign=top width=96&gt;&lt;P&gt;&lt;SPAN lang=EN-US style=&quot;FONT-SIZE: 9pt; FONT-FAMILY: Arial&quot;&gt;No&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD style=&quot;BORDER-RIGHT: #ece9d8; PADDING-RIGHT: 0cm; BORDER-TOP: #ece9d8; PADDING-LEFT: 0cm; PADDING-BOTTOM: 0cm; BORDER-LEFT: #ece9d8; WIDTH: 77.25pt; PADDING-TOP: 0cm; BORDER-BOTTOM: #ece9d8; BACKGROUND-COLOR: transparent&quot; vAlign=top width=103&gt;&lt;P&gt;&lt;SPAN lang=EN-US style=&quot;FONT-SIZE: 9pt; FONT-FAMILY: Arial&quot;&gt;No&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD style=&quot;BORDER-RIGHT: #ece9d8; PADDING-RIGHT: 0cm; BORDER-TOP: #ece9d8; PADDING-LEFT: 0cm; PADDING-BOTTOM: 0cm; BORDER-LEFT: #ece9d8; WIDTH: 120.75pt; PADDING-TOP: 0cm; BORDER-BOTTOM: #ece9d8; BACKGROUND-COLOR: transparent&quot; vAlign=top width=161&gt;&lt;P&gt;&lt;SPAN lang=EN-US style=&quot;FONT-SIZE: 9pt; FONT-FAMILY: Arial&quot;&gt;Yes – a 3&lt;SUP&gt;rd&lt;/SUP&gt; party accelerator can be used to increase performance but it s not standard and outside component&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR style=&quot;mso-yfti-irow: 6&quot;&gt;&lt;TD style=&quot;BORDER-RIGHT: #ece9d8; PADDING-RIGHT: 0cm; BORDER-TOP: #ece9d8; PADDING-LEFT: 0cm; PADDING-BOTTOM: 0cm; BORDER-LEFT: #ece9d8; WIDTH: 153.75pt; PADDING-TOP: 0cm; BORDER-BOTTOM: #ece9d8; BACKGROUND-COLOR: transparent&quot; vAlign=top width=205&gt;&lt;P&gt;&lt;SPAN lang=EN-US style=&quot;FONT-SIZE: 9pt; FONT-FAMILY: Arial&quot;&gt;Strong &lt;B style=&quot;mso-bidi-font-weight: normal&quot;&gt;error handling&lt;/B&gt; features&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD style=&quot;BORDER-RIGHT: #ece9d8; PADDING-RIGHT: 0cm; BORDER-TOP: #ece9d8; PADDING-LEFT: 0cm; PADDING-BOTTOM: 0cm; BORDER-LEFT: #ece9d8; WIDTH: 72pt; PADDING-TOP: 0cm; BORDER-BOTTOM: #ece9d8; BACKGROUND-COLOR: transparent&quot; vAlign=top width=96&gt;&lt;P&gt;&lt;SPAN lang=EN-US style=&quot;FONT-SIZE: 9pt; FONT-FAMILY: Arial&quot;&gt;Yes&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD style=&quot;BORDER-RIGHT: #ece9d8; PADDING-RIGHT: 0cm; BORDER-TOP: #ece9d8; PADDING-LEFT: 0cm; PADDING-BOTTOM: 0cm; BORDER-LEFT: #ece9d8; WIDTH: 77.25pt; PADDING-TOP: 0cm; BORDER-BOTTOM: #ece9d8; BACKGROUND-COLOR: transparent&quot; vAlign=top width=103&gt;&lt;P&gt;&lt;SPAN lang=EN-US style=&quot;FONT-SIZE: 9pt; FONT-FAMILY: Arial&quot;&gt;Yes&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD style=&quot;BORDER-RIGHT: #ece9d8; PADDING-RIGHT: 0cm; BORDER-TOP: #ece9d8; PADDING-LEFT: 0cm; PADDING-BOTTOM: 0cm; BORDER-LEFT: #ece9d8; WIDTH: 120.75pt; PADDING-TOP: 0cm; BORDER-BOTTOM: #ece9d8; BACKGROUND-COLOR: transparent&quot; vAlign=top width=161&gt;&lt;P&gt;&lt;SPAN lang=EN-US style=&quot;FONT-SIZE: 9pt; FONT-FAMILY: Arial&quot;&gt;Yes&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR style=&quot;mso-yfti-irow: 7&quot;&gt;&lt;TD style=&quot;BORDER-RIGHT: #ece9d8; PADDING-RIGHT: 0cm; BORDER-TOP: #ece9d8; PADDING-LEFT: 0cm; PADDING-BOTTOM: 0cm; BORDER-LEFT: #ece9d8; WIDTH: 153.75pt; PADDING-TOP: 0cm; BORDER-BOTTOM: #ece9d8; BACKGROUND-COLOR: transparent&quot; vAlign=top width=205&gt;&lt;P&gt;&lt;SPAN lang=EN-US style=&quot;FONT-SIZE: 9pt; FONT-FAMILY: Arial&quot;&gt;Object Oriented – Increases the ability for &lt;B style=&quot;mso-bidi-font-weight: normal&quot;&gt;code reuse&lt;/B&gt; and provides enhanced features as well as reduced development time; since code is more reusable, results in fewer bugs that can be discovered by any client and fixed for everyone; encourages developers to write more maintainable code.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD style=&quot;BORDER-RIGHT: #ece9d8; PADDING-RIGHT: 0cm; BORDER-TOP: #ece9d8; PADDING-LEFT: 0cm; PADDING-BOTTOM: 0cm; BORDER-LEFT: #ece9d8; WIDTH: 72pt; PADDING-TOP: 0cm; BORDER-BOTTOM: #ece9d8; BACKGROUND-COLOR: transparent&quot; vAlign=top width=96&gt;&lt;P&gt;&lt;SPAN lang=EN-US style=&quot;FONT-SIZE: 9pt; FONT-FAMILY: Arial&quot;&gt;Yes&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD style=&quot;BORDER-RIGHT: #ece9d8; PADDING-RIGHT: 0cm; BORDER-TOP: #ece9d8; PADDING-LEFT: 0cm; PADDING-BOTTOM: 0cm; BORDER-LEFT: #ece9d8; WIDTH: 77.25pt; PADDING-TOP: 0cm; BORDER-BOTTOM: #ece9d8; BACKGROUND-COLOR: transparent&quot; vAlign=top width=103&gt;&lt;P&gt;&lt;SPAN lang=EN-US style=&quot;FONT-SIZE: 9pt; FONT-FAMILY: Arial&quot;&gt;Yes&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD style=&quot;BORDER-RIGHT: #ece9d8; PADDING-RIGHT: 0cm; BORDER-TOP: #ece9d8; PADDING-LEFT: 0cm; PADDING-BOTTOM: 0cm; BORDER-LEFT: #ece9d8; WIDTH: 120.75pt; PADDING-TOP: 0cm; BORDER-BOTTOM: #ece9d8; BACKGROUND-COLOR: transparent&quot; vAlign=top width=161&gt;&lt;P&gt;&lt;SPAN lang=EN-US style=&quot;FONT-SIZE: 9pt; FONT-FAMILY: Arial&quot;&gt;No, even PHP5 is not truly Object Oriented&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR style=&quot;mso-yfti-irow: 8&quot;&gt;&lt;TD style=&quot;BORDER-RIGHT: #ece9d8; PADDING-RIGHT: 0cm; BORDER-TOP: #ece9d8; PADDING-LEFT: 0cm; PADDING-BOTTOM: 0cm; BORDER-LEFT: #ece9d8; WIDTH: 153.75pt; PADDING-TOP: 0cm; BORDER-BOTTOM: #ece9d8; BACKGROUND-COLOR: transparent&quot; vAlign=top width=205&gt;&lt;P&gt;&lt;SPAN lang=EN-US style=&quot;FONT-SIZE: 9pt; FONT-FAMILY: Arial&quot;&gt;Strong Typed – Demand more effort to the programmer but pays of in&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;B style=&quot;mso-bidi-font-weight: normal&quot;&gt;quality and robustness&lt;/B&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD style=&quot;BORDER-RIGHT: #ece9d8; PADDING-RIGHT: 0cm; BORDER-TOP: #ece9d8; PADDING-LEFT: 0cm; PADDING-BOTTOM: 0cm; BORDER-LEFT: #ece9d8; WIDTH: 72pt; PADDING-TOP: 0cm; BORDER-BOTTOM: #ece9d8; BACKGROUND-COLOR: transparent&quot; vAlign=top width=96&gt;&lt;P&gt;&lt;SPAN lang=EN-US style=&quot;FONT-SIZE: 9pt; FONT-FAMILY: Arial&quot;&gt;Yes&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD style=&quot;BORDER-RIGHT: #ece9d8; PADDING-RIGHT: 0cm; BORDER-TOP: #ece9d8; PADDING-LEFT: 0cm; PADDING-BOTTOM: 0cm; BORDER-LEFT: #ece9d8; WIDTH: 77.25pt; PADDING-TOP: 0cm; BORDER-BOTTOM: #ece9d8; BACKGROUND-COLOR: transparent&quot; vAlign=top width=103&gt;&lt;P&gt;&lt;SPAN lang=EN-US style=&quot;FONT-SIZE: 9pt; FONT-FAMILY: Arial&quot;&gt;Yes&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD style=&quot;BORDER-RIGHT: #ece9d8; PADDING-RIGHT: 0cm; BORDER-TOP: #ece9d8; PADDING-LEFT: 0cm; PADDING-BOTTOM: 0cm; BORDER-LEFT: #ece9d8; WIDTH: 120.75pt; PADDING-TOP: 0cm; BORDER-BOTTOM: #ece9d8; BACKGROUND-COLOR: transparent&quot; vAlign=top width=161&gt;&lt;P&gt;&lt;SPAN lang=EN-US style=&quot;FONT-SIZE: 9pt; FONT-FAMILY: Arial&quot;&gt;No&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR style=&quot;mso-yfti-irow: 9&quot;&gt;&lt;TD style=&quot;BORDER-RIGHT: #ece9d8; PADDING-RIGHT: 0cm; BORDER-TOP: #ece9d8; PADDING-LEFT: 0cm; PADDING-BOTTOM: 0cm; BORDER-LEFT: #ece9d8; WIDTH: 153.75pt; PADDING-TOP: 0cm; BORDER-BOTTOM: #ece9d8; BACKGROUND-COLOR: transparent&quot; vAlign=top width=205&gt;&lt;P&gt;&lt;SPAN lang=EN-US style=&quot;FONT-SIZE: 9pt; FONT-FAMILY: Arial&quot;&gt;Supported Development Languages – easier to find developers&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD style=&quot;BORDER-RIGHT: #ece9d8; PADDING-RIGHT: 0cm; BORDER-TOP: #ece9d8; PADDING-LEFT: 0cm; PADDING-BOTTOM: 0cm; BORDER-LEFT: #ece9d8; WIDTH: 72pt; PADDING-TOP: 0cm; BORDER-BOTTOM: #ece9d8; BACKGROUND-COLOR: transparent&quot; vAlign=top width=96&gt;&lt;P&gt;&lt;SPAN lang=EN-US style=&quot;FONT-SIZE: 9pt; FONT-FAMILY: Arial&quot;&gt;C++, C#, Visual Basic.NET, Jscript.NET, Python, Perl, Java (J#), COBOL, Eiffel, &lt;?xml:namespace prefix = st1 ns = &quot;urn:schemas-microsoft-com:office:smarttags&quot; /&gt;&lt;st1:place w:st=&quot;on&quot;&gt;Delphi&lt;/st1:place&gt; – 25 languages supported currently&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD style=&quot;BORDER-RIGHT: #ece9d8; PADDING-RIGHT: 0cm; BORDER-TOP: #ece9d8; PADDING-LEFT: 0cm; PADDING-BOTTOM: 0cm; BORDER-LEFT: #ece9d8; WIDTH: 77.25pt; PADDING-TOP: 0cm; BORDER-BOTTOM: #ece9d8; BACKGROUND-COLOR: transparent&quot; vAlign=top width=103&gt;&lt;P&gt;&lt;SPAN lang=EN-US style=&quot;FONT-SIZE: 9pt; FONT-FAMILY: Arial&quot;&gt;Java&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD style=&quot;BORDER-RIGHT: #ece9d8; PADDING-RIGHT: 0cm; BORDER-TOP: #ece9d8; PADDING-LEFT: 0cm; PADDING-BOTTOM: 0cm; BORDER-LEFT: #ece9d8; WIDTH: 120.75pt; PADDING-TOP: 0cm; BORDER-BOTTOM: #ece9d8; BACKGROUND-COLOR: transparent&quot; vAlign=top width=161&gt;&lt;P&gt;&lt;SPAN lang=EN-US style=&quot;FONT-SIZE: 9pt; FONT-FAMILY: Arial&quot;&gt;PHP&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR style=&quot;mso-yfti-irow: 10&quot;&gt;&lt;TD style=&quot;BORDER-RIGHT: #ece9d8; PADDING-RIGHT: 0cm; BORDER-TOP: #ece9d8; PADDING-LEFT: 0cm; PADDING-BOTTOM: 0cm; BORDER-LEFT: #ece9d8; WIDTH: 153.75pt; PADDING-TOP: 0cm; BORDER-BOTTOM: #ece9d8; BACKGROUND-COLOR: transparent&quot; vAlign=top width=205&gt;&lt;P&gt;&lt;SPAN lang=EN-US style=&quot;FONT-SIZE: 9pt; FONT-FAMILY: Arial&quot;&gt;Browser Specific HTML Rendering – different HTML is automatically sent to IE than to Netscape, &lt;B style=&quot;mso-bidi-font-weight: normal&quot;&gt;reducing incompatibility issues&lt;/B&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD style=&quot;BORDER-RIGHT: #ece9d8; PADDING-RIGHT: 0cm; BORDER-TOP: #ece9d8; PADDING-LEFT: 0cm; PADDING-BOTTOM: 0cm; BORDER-LEFT: #ece9d8; WIDTH: 72pt; PADDING-TOP: 0cm; BORDER-BOTTOM: #ece9d8; BACKGROUND-COLOR: transparent&quot; vAlign=top width=96&gt;&lt;P&gt;&lt;SPAN lang=EN-US style=&quot;FONT-SIZE: 9pt; FONT-FAMILY: Arial&quot;&gt;Yes&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD style=&quot;BORDER-RIGHT: #ece9d8; PADDING-RIGHT: 0cm; BORDER-TOP: #ece9d8; PADDING-LEFT: 0cm; PADDING-BOTTOM: 0cm; BORDER-LEFT: #ece9d8; WIDTH: 77.25pt; PADDING-TOP: 0cm; BORDER-BOTTOM: #ece9d8; BACKGROUND-COLOR: transparent&quot; vAlign=top width=103&gt;&lt;P&gt;&lt;SPAN lang=EN-US style=&quot;FONT-SIZE: 9pt; FONT-FAMILY: Arial&quot;&gt;No&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD style=&quot;BORDER-RIGHT: #ece9d8; PADDING-RIGHT: 0cm; BORDER-TOP: #ece9d8; PADDING-LEFT: 0cm; PADDING-BOTTOM: 0cm; BORDER-LEFT: #ece9d8; WIDTH: 120.75pt; PADDING-TOP: 0cm; BORDER-BOTTOM: #ece9d8; BACKGROUND-COLOR: transparent&quot; vAlign=top width=161&gt;&lt;P&gt;&lt;SPAN lang=EN-US style=&quot;FONT-SIZE: 9pt; FONT-FAMILY: Arial&quot;&gt;No&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR style=&quot;mso-yfti-irow: 11; mso-yfti-lastrow: yes&quot;&gt;&lt;TD style=&quot;BORDER-RIGHT: #ece9d8; PADDING-RIGHT: 0cm; BORDER-TOP: #ece9d8; PADDING-LEFT: 0cm; PADDING-BOTTOM: 0cm; BORDER-LEFT: #ece9d8; WIDTH: 153.75pt; PADDING-TOP: 0cm; BORDER-BOTTOM: #ece9d8; BACKGROUND-COLOR: transparent&quot; vAlign=top width=205&gt;&lt;P&gt;&lt;B style=&quot;mso-bidi-font-weight: normal&quot;&gt;&lt;SPAN lang=EN-US style=&quot;FONT-SIZE: 9pt; FONT-FAMILY: Arial&quot;&gt;Open Source&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD style=&quot;BORDER-RIGHT: #ece9d8; PADDING-RIGHT: 0cm; BORDER-TOP: #ece9d8; PADDING-LEFT: 0cm; PADDING-BOTTOM: 0cm; BORDER-LEFT: #ece9d8; WIDTH: 72pt; PADDING-TOP: 0cm; BORDER-BOTTOM: #ece9d8; BACKGROUND-COLOR: transparent&quot; vAlign=top width=96&gt;&lt;P&gt;&lt;SPAN lang=EN-US style=&quot;FONT-SIZE: 9pt; FONT-FAMILY: Arial&quot;&gt;No&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD style=&quot;BORDER-RIGHT: #ece9d8; PADDING-RIGHT: 0cm; BORDER-TOP: #ece9d8; PADDING-LEFT: 0cm; PADDING-BOTTOM: 0cm; BORDER-LEFT: #ece9d8; WIDTH: 77.25pt; PADDING-TOP: 0cm; BORDER-BOTTOM: #ece9d8; BACKGROUND-COLOR: transparent&quot; vAlign=top width=103&gt;&lt;P&gt;&lt;SPAN lang=EN-US style=&quot;FONT-SIZE: 9pt; FONT-FAMILY: Arial&quot;&gt;Yes&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD style=&quot;BORDER-RIGHT: #ece9d8; PADDING-RIGHT: 0cm; BORDER-TOP: #ece9d8; PADDING-LEFT: 0cm; PADDING-BOTTOM: 0cm; BORDER-LEFT: #ece9d8; WIDTH: 120.75pt; PADDING-TOP: 0cm; BORDER-BOTTOM: #ece9d8; BACKGROUND-COLOR: transparent&quot; vAlign=top width=161&gt;&lt;P&gt;&lt;SPAN lang=EN-US style=&quot;FONT-SIZE: 9pt; FONT-FAMILY: Arial&quot;&gt;Yes&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt&quot;&gt;&lt;SPAN lang=EN-GB style=&quot;mso-ansi-language: EN-GB&quot;&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt&quot;&gt;&lt;SPAN lang=EN-GB style=&quot;mso-ansi-language: EN-GB&quot;&gt;&lt;FONT face=&quot;Times New Roman&quot;&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;
      </content>
    </entry>
      <entry>
      <author>
        <name>Geoffrey Vandiest</name>
        <uri>http://geoffrey-vandiest.skynetblogs.be/about.html</uri>
      </author>
      <title>End To End testing</title>
      <link rel="alternate" type="text/html" href="http://geoffrey-vandiest.skynetblogs.be/archive/2007/02/13/end-to-end-testing.html" />
            <id>tag:geoffrey-vandiest.skynetblogs.be,2007-02-13:2376272</id>
      <updated>2007-02-13T22:15:36+01:00</updated>
      <published>2007-02-13T22:15:36+01:00</published>
                            <category term="Web" scheme="http://www.blogspirit.com/ns/types#category" />
                                    <category term="testing" scheme="http://www.blogspirit.com/ns/types#tag" />
                    <category term="xp" scheme="http://www.blogspirit.com/ns/types#tag" />
                    <category term="tdd" scheme="http://www.blogspirit.com/ns/types#tag" />
                    <category term="usability" scheme="http://www.blogspirit.com/ns/types#tag" />
                    <category term="end to end" scheme="http://www.blogspirit.com/ns/types#tag" />
              <summary>  I truly believe in TDD (Test driven development).&amp;nbsp; Nevertheless I...</summary>
      <content type="html" xml:base="http://geoffrey-vandiest.skynetblogs.be/">
          &lt;P&gt;&lt;FONT face=&quot;Verdana, Arial, Helvetica, sans-serif&quot;&gt;I truly believe in TDD (Test driven development).&amp;nbsp; Nevertheless I think that just TDD and refactoring don’t imply that the developers are writing first time right code.&amp;nbsp; TDD will only test the case the developer has thought of.&amp;nbsp; It’s a coding practice that is helping in improving the design but it’s not a guarantee&amp;nbsp;for perfect quality.&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face=&quot;Verdana, Arial, Helvetica, sans-serif&quot;&gt;On the project we are currently working on, we’ve planned some end to end testing sessions. Each testing session’s goal is to test a couple of stories. We hope that these tests will be helpful to better understand what our end-users really want.&amp;nbsp;&amp;nbsp; As we don’t have a dedicated QA team the responsibility of the tests is handled by our usability team.&amp;nbsp; They invited some end users for testing sessions. We already do a lot of tests but this is the first time we are organizing formal end to end tests during the development process.&amp;nbsp; &lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face=&quot;Verdana, Arial, Helvetica, sans-serif&quot;&gt;Although the first testing session will be held tomorrow I’ve the feeling that the investment we made by preparing these tests is already paying off. Usually a couple of weeks before the delivery date a lot of pressure are put on the head of the team.&amp;nbsp;&amp;nbsp;&amp;nbsp; The sessions are motivating the team to deliver a complete set of features at regular moments in time.&amp;nbsp; Because we organised these tests all over the development period we’ve divided the delivery of the product into small releases. The developers are therefore making regular sprints and this is improving our productivity and quality.&amp;nbsp; &lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face=&quot;Verdana, Arial, Helvetica, sans-serif&quot;&gt;Knowing that the fearless end-users are coming to evaluate our product stimulates us to deliver more quality.&amp;nbsp; It helped us discover bugs sooner because someone else that is not as close to the code check that the code is doing what he expects. &lt;BR&gt;&lt;/FONT&gt;&lt;/P&gt;
      </content>
    </entry>
      <entry>
      <author>
        <name>Geoffrey Vandiest</name>
        <uri>http://geoffrey-vandiest.skynetblogs.be/about.html</uri>
      </author>
      <title>Web technology cocktail</title>
      <link rel="alternate" type="text/html" href="http://geoffrey-vandiest.skynetblogs.be/archive/2007/02/08/web-technology-cocktail.html" />
            <id>tag:geoffrey-vandiest.skynetblogs.be,2007-02-08:2376255</id>
      <updated>2007-02-08T13:20:20+01:00</updated>
      <published>2007-02-08T13:20:20+01:00</published>
                            <category term="Web" scheme="http://www.blogspirit.com/ns/types#category" />
                                    <category term="interoperability" scheme="http://www.blogspirit.com/ns/types#tag" />
                    <category term="php" scheme="http://www.blogspirit.com/ns/types#tag" />
                    <category term="asp net" scheme="http://www.blogspirit.com/ns/types#tag" />
                    <category term="wcf" scheme="http://www.blogspirit.com/ns/types#tag" />
              <summary>   Interoperability between PHP &amp;amp; .Net       &amp;nbsp;   In my team, we are...</summary>
      <content type="html" xml:base="http://geoffrey-vandiest.skynetblogs.be/">
          &lt;P&gt;&lt;FONT face=&quot;Verdana, Arial, Helvetica, sans-serif&quot;&gt;&lt;EM&gt;Interoperability between PHP &amp;amp; .Net&lt;/EM&gt; &lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face=&quot;Verdana, Arial, Helvetica, sans-serif&quot;&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;FONT face=&quot;Verdana, Arial, Helvetica, sans-serif&quot; size=4&gt;In my team, we are currently testing a new type of architecture. We decided to mix technologies and uses PHP for the front-end of our application and WCF for the business tyre. &lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face=&quot;Verdana, Arial, Helvetica, sans-serif&quot; size=4&gt;One advantage of PHP over .Net is that there are a lot more PHP developers available on the market and they are usually cheaper as their ASP.NET colleagues. Most of the developers working on the web started their career as webmasters. They learned programming on PHP because of the simplicity of the PHP language and the fact that Microsoft never made a product that was appealing to them. For most of this type of autodidacts it’s really hard to master an OO platform as ASP.NET of JSP. So in my opinion despite the fact that ASP.NET or JSP are far more advanced and proposes a better set of tools, PHP will remain for a long time the most used web platform. For the same reasons I predict that it will be very hard for Microsoft to sell his “expression” suite to webmasters. &lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face=&quot;Verdana, Arial, Helvetica, sans-serif&quot; size=4&gt;The PHP language is very flexible and easy. The entering cost was really low, in a couple of days we where able to master the language. We found a very effective way of interoperate both technologies by using &lt;/FONT&gt;&lt;A href=&quot;http://www.urdalen.no/wsdl2php&quot;&gt;&lt;FONT face=&quot;Verdana, Arial, Helvetica, sans-serif&quot; size=4&gt;wsdl2php&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=&quot;Verdana, Arial, Helvetica, sans-serif&quot; size=4&gt;. &lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face=&quot;Verdana, Arial, Helvetica, sans-serif&quot; size=4&gt;Nevertheless I’m a bit disappointed over PHP because we are missing a good development environment. For the moment we are using Zend Studio and it really sucks. The auto completion is not working properly and we were unable to configure it for remote debugging or for source control. We use a distant development server because the application will be deployed on linux clusters and we wanted to have the same development environment as our deployment environment.&amp;nbsp;Zend is really bad with this type of configuration. &lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face=&quot;Verdana, Arial, Helvetica, sans-serif&quot; size=4&gt;It’s like we are back to the stone age of development; no debugger, no source controller. Because of that we are forced to phone to all members of the team to know who is working on what. Our code is full of &quot;echo&quot; and &quot;print_r&quot; statements. Bugs appears because someone else has saved some new files on the server that are incompatible with the current version of the files.&lt;/FONT&gt;&lt;/P&gt;&lt;FONT face=&quot;Verdana, Arial, Helvetica, sans-serif&quot; size=4&gt;PHP is a nice little platform but it really miss an IDE as VS.NET 2005 IDE and other tools that boost up productivity and quality.&lt;/FONT&gt; 
      </content>
    </entry>
      <entry>
      <author>
        <name>Geoffrey Vandiest</name>
        <uri>http://geoffrey-vandiest.skynetblogs.be/about.html</uri>
      </author>
      <title>MySpace or how to handle 40 Billion page views</title>
      <link rel="alternate" type="text/html" href="http://geoffrey-vandiest.skynetblogs.be/archive/2007/02/04/myspace-or-how-to-handle-40-billion-page-views.html" />
            <id>tag:geoffrey-vandiest.skynetblogs.be,2007-02-04:2376261</id>
      <updated>2007-02-04T22:28:23+01:00</updated>
      <published>2007-02-04T22:28:23+01:00</published>
                            <category term="Web" scheme="http://www.blogspirit.com/ns/types#category" />
                                    <category term="page views" scheme="http://www.blogspirit.com/ns/types#tag" />
                    <category term="myspace" scheme="http://www.blogspirit.com/ns/types#tag" />
              <summary>  An article about how the guys working for MySpace manage to handle 40...</summary>
      <content type="html" xml:base="http://geoffrey-vandiest.skynetblogs.be/">
          &lt;P&gt;&lt;FONT face=&quot;Verdana, Arial, Helvetica, sans-serif&quot;&gt;An article about how the guys working for MySpace manage to handle 40 Billion page views a day!&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;A href=&quot;http://www.baselinemag.com/article2/0,1540,2082921,00.asp&quot;&gt;http://www.baselinemag.com/article2/0,1540,2082921,00.asp&lt;/A&gt;&lt;/P&gt;
      </content>
    </entry>
      <entry>
      <author>
        <name>Geoffrey Vandiest</name>
        <uri>http://geoffrey-vandiest.skynetblogs.be/about.html</uri>
      </author>
      <title>Web 2.0 or the self organizing web</title>
      <link rel="alternate" type="text/html" href="http://geoffrey-vandiest.skynetblogs.be/archive/2007/02/04/web-2-0-or-the-self-organizing-web.html" />
            <id>tag:geoffrey-vandiest.skynetblogs.be,2007-02-04:2376277</id>
      <updated>2007-02-04T12:30:40+01:00</updated>
      <published>2007-02-04T12:30:40+01:00</published>
                            <category term="Web" scheme="http://www.blogspirit.com/ns/types#category" />
                                    <category term="web" scheme="http://www.blogspirit.com/ns/types#tag" />
                    <category term="web 2 0" scheme="http://www.blogspirit.com/ns/types#tag" />
                    <category term="tag" scheme="http://www.blogspirit.com/ns/types#tag" />
                    <category term="tagging" scheme="http://www.blogspirit.com/ns/types#tag" />
                    <category term="ajax" scheme="http://www.blogspirit.com/ns/types#tag" />
                    <category term="web 2 0  tags tagging" scheme="http://www.blogspirit.com/ns/types#tag" />
              <summary>   Till recently I thought that Web 2.0 didn’t mean anything but last year I...</summary>
      <content type="html" xml:base="http://geoffrey-vandiest.skynetblogs.be/">
          &lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt&quot;&gt;&lt;SPAN lang=EN-GB style=&quot;mso-ansi-language: EN-GB&quot;&gt;&lt;FONT face=&quot;Verdana, Arial, Helvetica, sans-serif&quot;&gt;Till recently I thought that Web 2.0 didn’t mean anything but last year I had the opportunity to participate at the SAF summit in &lt;?xml:namespace prefix = st1 ns = &quot;urn:schemas-microsoft-com:office:smarttags&quot; /&gt;&lt;st1:City w:st=&quot;on&quot;&gt;&lt;st1:place w:st=&quot;on&quot;&gt;Redmond&lt;/st1:place&gt;&lt;/st1:City&gt;. &lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp;&lt;/SPAN&gt;Their I talked to people like Michael Platt who is primarily f&lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: Verdana; mso-ansi-language: EN-GB&quot;&gt;&lt;FONT size=3&gt;&lt;FONT face=&quot;Verdana, Arial, Helvetica, sans-serif&quot;&gt;ocussed on everything that is in connection with the Web 2.0 hype.&lt;/FONT&gt;&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/SPAN&gt;Now I’m convinced that we should (re-)think our business and techniques to be part of the revolution that Web 2.0 will be for our industry. &lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp;&lt;/SPAN&gt;We are at the beginning of a new era, a time of rapid evolution in the IT industry that will cause considerable changes.&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp;&lt;/SPAN&gt;This disruption is underway but the baseline of what will happen in the future or who will be the new leaders have not yet emerged.&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/SPAN&gt;Specifically online media companies like Skynet are facing big opportunities but before realizing these opportunities we’ve to rethink our business if we want to survive.&lt;?xml:namespace prefix = o ns = &quot;urn:schemas-microsoft-com:office:office&quot; /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt&quot;&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: Verdana; mso-ansi-language: EN-GB&quot;&gt;&lt;o:p&gt;&lt;FONT size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt&quot;&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: Verdana; mso-ansi-language: EN-GB&quot;&gt;&lt;FONT size=3&gt;I believe that moving forward advertising based companies, like ours, will be one of the pillars of the new revenue models with great profit potentials.&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/SPAN&gt;I also believe that the market will localize and that the future belongs to local companies because the advertisement in the future will grow horizontally. Advertising based companies will attract more and more little companies and local players as Skynet have a big advantage towards big multinational players.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt&quot;&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: Verdana; mso-ansi-language: EN-GB&quot;&gt;&lt;o:p&gt;&lt;FONT size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt&quot;&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: Verdana; mso-ansi-language: EN-GB&quot;&gt;&lt;FONT size=3&gt;Web 2.0. is mostly associated to new technologies like &lt;st1:City w:st=&quot;on&quot;&gt;&lt;st1:place w:st=&quot;on&quot;&gt;Ajax&lt;/st1:place&gt;&lt;/st1:City&gt;, REST, Mashups but in fact it is the least relevant part of it. In fact I have to confess that I hate the &lt;st1:City w:st=&quot;on&quot;&gt;&lt;st1:place w:st=&quot;on&quot;&gt;Ajax&lt;/st1:place&gt;&lt;/st1:City&gt; hype. &lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp;&lt;/SPAN&gt;For me Web 2.0 is more about the web organizing the knowledge generated by the web. It is partially about organizing content and communication in accordance with a new paradigm. But what are the components of this new paradigm? I believe that Tagging is one of them. &lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp;&lt;/SPAN&gt;Tagging is a great example of how Web 2.0. enables the web to self organizing itself. &lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt&quot;&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: Verdana; mso-ansi-language: EN-GB&quot;&gt;&lt;o:p&gt;&lt;FONT size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt&quot;&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: Verdana; mso-ansi-language: EN-GB&quot;&gt;&lt;FONT size=3&gt;Tagging could change the way we organize our advertisement and could be an incredible value differentiator towards our customers. By allowing users to bookmark our content we get also a way to know our self and the content we own better.&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/SPAN&gt;Tagging could be a way to generate knowledge around our content and make invisible connections appear.&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/SPAN&gt;We should think about different ways of letting the user tagging all types of our content on our site (pages, rss feeds, music, video’s).&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/SPAN&gt;This will increase the user experience because the user will be able to retrieve more easily content by the way he organized the content for his own.&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/SPAN&gt;This will also give the user the ability to retrieve content by the way other users has tagged the content. This intelligence could be an immense asset for our customers.&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/SPAN&gt;Think about the way we could organize their advertisement campaigns by using the intelligence that the users have created for us.&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/SPAN&gt;We could also re-unify the people and the content by making links between tags describing people and tags describing content.&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt&quot;&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: Verdana; mso-ansi-language: EN-GB&quot;&gt;&lt;o:p&gt;&lt;FONT size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt&quot;&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: Verdana; mso-ansi-language: EN-GB&quot;&gt;&lt;FONT size=3&gt;Also for direct marketing tagging could mean a revolution in the way we organize new services.&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/SPAN&gt;It seems obvious to me that we should re-invent the way we qualify our users.&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/SPAN&gt;Let them decide how they describe themselves; don’t format the answer like we do now!&lt;/FONT&gt;&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
      </content>
    </entry>
      <entry>
      <author>
        <name>Geoffrey Vandiest</name>
        <uri>http://geoffrey-vandiest.skynetblogs.be/about.html</uri>
      </author>
      <title> My Block - Is left further than right?</title>
      <link rel="alternate" type="text/html" href="http://geoffrey-vandiest.skynetblogs.be/archive/2007/01/20/ my-block-is-left-further-than-right.html" />
            <id>tag:geoffrey-vandiest.skynetblogs.be,2007-01-20:2376253</id>
      <updated>2007-01-20T16:15:33+01:00</updated>
      <published>2007-01-20T16:15:33+01:00</published>
                            <category term="Web" scheme="http://www.blogspirit.com/ns/types#category" />
                              <summary>   This is the tutorial to build a my block &quot;Is left further than right&quot;. The...</summary>
      <content type="html" xml:base="http://geoffrey-vandiest.skynetblogs.be/">
          &lt;P&gt;&lt;SPAN lang=EN-GB style=&quot;mso-ansi-language: EN-GB&quot;&gt;&lt;FONT face=&quot;Verdana, Arial, Helvetica, sans-serif&quot;&gt;This is the tutorial to build a my block &quot;Is left further than right&quot;. The robot makes out whether of not the objects located on his left are further than on his right.&amp;nbsp; Therefore the robot turns first left register the distance and stores it into a variable &quot;LeftSensor&quot;, then it turns right register the distance again and compares it with the variable “LeftSensor”.&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;?xml:namespace prefix = o ns = &quot;urn:schemas-microsoft-com:office:office&quot; /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN lang=EN-GB style=&quot;mso-ansi-language: EN-GB&quot;&gt;&lt;o:p&gt;&lt;FONT face=&quot;Verdana, Arial, Helvetica, sans-serif&quot;&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN lang=EN-GB style=&quot;mso-ansi-language: EN-GB&quot;&gt;&lt;FONT face=&quot;Verdana, Arial, Helvetica, sans-serif&quot;&gt;To make a “my block” you just start up a new program. &lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp;&lt;/SPAN&gt;Once the program is completed you select the part of it you want to be reusable.&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp; &lt;/SPAN&gt;The variables that are outside your selection but where data are coming in or out become the input or output variables of your program.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN lang=EN-GB style=&quot;mso-ansi-language: EN-GB&quot;&gt;&lt;o:p&gt;&lt;FONT face=&quot;Verdana, Arial, Helvetica, sans-serif&quot;&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN lang=EN-GB style=&quot;mso-ansi-language: EN-GB&quot;&gt;&lt;FONT face=&quot;Verdana, Arial, Helvetica, sans-serif&quot;&gt;So lets start, open a new program.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN lang=EN-GB style=&quot;mso-ansi-language: EN-GB&quot;&gt;&lt;FONT face=&quot;Verdana, Arial, Helvetica, sans-serif&quot;&gt;Select Edit &lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&amp;nbsp;&lt;/SPAN&gt;- Define variable – Define the variables: Input, Left sensor and Output.&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN lang=EN-GB style=&quot;mso-ansi-language: EN-GB&quot;&gt;&lt;FONT face=&quot;Verdana, Arial, Helvetica, sans-serif&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN lang=EN-GB style=&quot;mso-ansi-language: EN-GB&quot;&gt;&lt;FONT face=&quot;Verdana, Arial, Helvetica, sans-serif&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;&lt;SPAN lang=EN-GB style=&quot;mso-ansi-language: EN-GB&quot;&gt;&lt;SPAN style=&quot;TEXT-ALIGN: left&quot;&gt;&lt;DIV&gt;&lt;FONT face=&quot;Verdana, Arial, Helvetica, sans-serif&quot;&gt;&lt;IMG title=image012 alt=image012 src=&quot;http://static.skynetblogs.be/media/89204/dyn003_original_279_310_pjpeg_2579043_98ce37a103e6e6cb4802e6a665026647.jpg&quot; border=0&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN style=&quot;TEXT-ALIGN: left&quot;&gt;&lt;DIV&gt;&lt;FONT face=&quot;Verdana, Arial, Helvetica, sans-serif&quot;&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face=Verdana&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face=&quot;Verdana, Arial, Helvetica, sans-serif&quot;&gt;&lt;IMG title=image013 alt=image013 src=&quot;http://static.skynetblogs.be/media/89204/dyn003_original_240_368_pjpeg_2579043_fc1a3f2791f2440d54cdbb5d891f9084.jpg&quot; border=0&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face=Verdana&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/DIV&gt;&lt;/SPAN&gt;&lt;SPAN style=&quot;TEXT-ALIGN: left&quot;&gt;&lt;DIV&gt;&lt;FONT face=Verdana&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face=&quot;Verdana, Arial, Helvetica, sans-serif&quot;&gt;&lt;IMG title=image014 alt=image014 src=&quot;http://static.skynetblogs.be/media/89204/dyn003_original_300_368_pjpeg_2579043_41bc1556105bd1e3a0af7571d2d13632.jpg&quot; border=0&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face=&quot;Verdana, Arial, Helvetica, sans-serif&quot;&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face=Verdana&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/DIV&gt;&lt;P&gt;&lt;FONT face=&quot;Verdana, Arial, Helvetica, sans-serif&quot;&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;SPAN style=&quot;TEXT-ALIGN: left&quot;&gt;&lt;DIV&gt;&lt;FONT face=&quot;Verdana, Arial, Helvetica, sans-serif&quot;&gt;&lt;IMG title=image016 alt=image016 src=&quot;http://static.skynetblogs.be/media/89204/dyn003_original_604_434_pjpeg_2579043_2b6534b7dae388c0e313a303c7acfab8.jpg&quot; border=0&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;P&gt;&lt;FONT face=&quot;Verdana, Arial, Helvetica, sans-serif&quot;&gt;&lt;/FONT&gt;&amp;nbsp;&lt;P&gt;&lt;FONT face=Verdana&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;P&gt;&lt;SPAN style=&quot;TEXT-ALIGN: left&quot;&gt;&lt;FONT face=&quot;Verdana, Arial, Helvetica, sans-serif&quot;&gt;&lt;IMG title=image016 alt=image016 src=&quot;http://static.skynetblogs.be/media/89204/dyn003_original_604_434_pjpeg_2579043_fe19e9be55be8f0efbf0401603954dd8.jpg&quot; border=0&gt;&lt;/FONT&gt;&lt;P&gt;&lt;FONT face=&quot;Verdana, Arial, Helvetica, sans-serif&quot;&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;&lt;SPAN style=&quot;TEXT-ALIGN: left&quot;&gt;&lt;DIV&gt;&lt;FONT face=&quot;Verdana, Arial, Helvetica, sans-serif&quot;&gt;&lt;IMG title=image017 alt=image017 src=&quot;http://static.skynetblogs.be/media/89204/dyn003_original_448_322_pjpeg_2579043_6f59c19070812f581618bd3a8e99c26d.jpg&quot; border=0&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face=&quot;Verdana, Arial, Helvetica, sans-serif&quot;&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face=Verdana&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN style=&quot;TEXT-ALIGN: left&quot;&gt;&lt;DIV&gt;&lt;FONT face=&quot;Verdana, Arial, Helvetica, sans-serif&quot;&gt;&lt;IMG title=image018 alt=image018 src=&quot;http://static.skynetblogs.be/media/89204/dyn003_original_1024_736_pjpeg_2579043_a10d29c3e0e34a0562206e9456836126.jpg&quot; border=0&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face=&quot;Verdana, Arial, Helvetica, sans-serif&quot;&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face=Verdana&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/DIV&gt;&lt;SPAN style=&quot;TEXT-ALIGN: left&quot;&gt;&lt;DIV&gt;&lt;FONT face=&quot;Verdana, Arial, Helvetica, sans-serif&quot;&gt;&lt;IMG title=image022 alt=image022 src=&quot;http://static.skynetblogs.be/media/89204/dyn003_original_448_322_pjpeg_2579043_982e4e0a4558141a2442d402ab2325ee.jpg&quot; border=0&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;/SPAN&gt;&lt;P&gt;&lt;/SPAN&gt;&lt;P&gt;&lt;FONT face=&quot;Verdana, Arial, Helvetica, sans-serif&quot;&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;DIV&gt;&lt;SPAN style=&quot;TEXT-ALIGN: left&quot;&gt;&lt;FONT face=&quot;Verdana, Arial, Helvetica, sans-serif&quot;&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN style=&quot;TEXT-ALIGN: left&quot;&gt;&lt;FONT face=Verdana&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN style=&quot;TEXT-ALIGN: left&quot;&gt;&lt;FONT face=&quot;Verdana, Arial, Helvetica, sans-serif&quot;&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN style=&quot;TEXT-ALIGN: left&quot;&gt;&lt;FONT face=&quot;Verdana, Arial, Helvetica, sans-serif&quot;&gt;&lt;IMG title=image020 alt=image020 src=&quot;http://static.skynetblogs.be/media/89204/dyn003_original_1024_736_pjpeg_2579043_c4dce876ee8813f1202b0efde711b04e.jpg&quot; border=0&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN style=&quot;TEXT-ALIGN: left&quot;&gt;&lt;FONT face=Verdana&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/DIV&gt;&lt;P&gt;&lt;/P&gt;&lt;/DIV&gt;&lt;/SPAN&gt;&lt;P&gt;&lt;FONT face=&quot;Verdana, Arial, Helvetica, sans-serif&quot;&gt;&lt;/FONT&gt;&lt;P&gt;&lt;FONT face=&quot;Verdana, Arial, Helvetica, sans-serif&quot;&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;SPAN style=&quot;TEXT-ALIGN: left&quot;&gt;&lt;DIV&gt;&lt;FONT face=&quot;Verdana, Arial, Helvetica, sans-serif&quot;&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face=&quot;Verdana, Arial, Helvetica, sans-serif&quot;&gt;&lt;IMG title=image023 alt=image023 src=&quot;http://static.skynetblogs.be/media/89204/dyn003_original_448_322_pjpeg_2579043_0937b4cedeb5c3ba6b4c11068cb7f7e4.jpg&quot; border=0&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face=&quot;Verdana, Arial, Helvetica, sans-serif&quot;&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face=&quot;Verdana, Arial, Helvetica, sans-serif&quot;&gt;Select Edit- Make a new My block&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face=&quot;Verdana, Arial, Helvetica, sans-serif&quot;&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face=Verdana&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN style=&quot;TEXT-ALIGN: left&quot;&gt;&lt;DIV&gt;&lt;FONT face=&quot;Verdana, Arial, Helvetica, sans-serif&quot;&gt;&lt;IMG title=image025 alt=image025 src=&quot;http://static.skynetblogs.be/media/89204/dyn003_original_371_336_pjpeg_2579043_269130a77bf7802a9bcb4f859a953cf7.jpg&quot; border=0&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face=&quot;Verdana, Arial, Helvetica, sans-serif&quot;&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face=&quot;Verdana, Arial, Helvetica, sans-serif&quot;&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face=&quot;Verdana, Arial, Helvetica, sans-serif&quot;&gt;Folow the wizard and click Finish.&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face=&quot;Verdana, Arial, Helvetica, sans-serif&quot;&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face=&quot;Verdana, Arial, Helvetica, sans-serif&quot;&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face=&quot;Verdana, Arial, Helvetica, sans-serif&quot;&gt;Have fun.&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face=&quot;Verdana, Arial, Helvetica, sans-serif&quot;&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face=&quot;Verdana, Arial, Helvetica, sans-serif&quot;&gt;Bye&lt;/FONT&gt;&lt;/DIV&gt;&lt;/SPAN&gt;&lt;P&gt;&lt;/P&gt;&lt;/DIV&gt;&lt;P&gt;&lt;/SPAN&gt;&lt;P&gt;&lt;/P&gt;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;/SPAN&gt;
      </content>
    </entry>
      <entry>
      <author>
        <name>Geoffrey Vandiest</name>
        <uri>http://geoffrey-vandiest.skynetblogs.be/about.html</uri>
      </author>
      <title>Lego Mindstorm Nxt intro</title>
      <link rel="alternate" type="text/html" href="http://geoffrey-vandiest.skynetblogs.be/archive/2007/01/20/lego-mindstorm-nxt-intro.html" />
            <id>tag:geoffrey-vandiest.skynetblogs.be,2007-01-20:2376275</id>
      <updated>2007-01-20T14:01:03+01:00</updated>
      <published>2007-01-20T14:01:03+01:00</published>
                            <category term="Web" scheme="http://www.blogspirit.com/ns/types#category" />
                                    <category term="lego" scheme="http://www.blogspirit.com/ns/types#tag" />
                    <category term="mindstorm" scheme="http://www.blogspirit.com/ns/types#tag" />
                    <category term="nxt" scheme="http://www.blogspirit.com/ns/types#tag" />
                    <category term="robotics" scheme="http://www.blogspirit.com/ns/types#tag" />
              <summary>  In November 2006 I went to Redmond for an architecture conference at the...</summary>
      <content type="html" xml:base="http://geoffrey-vandiest.skynetblogs.be/">
          &lt;P&gt;&lt;FONT face=&quot;Verdana, Arial, Helvetica, sans-serif&quot;&gt;In November 2006 I went to Redmond for an architecture conference at the Microsoft campus.&amp;nbsp; My agenda was fully booked and I had very few time for myself.&amp;nbsp;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face=Verdana&gt;&lt;/FONT&gt;&lt;FONT face=&quot;Verdana, Arial, Helvetica, sans-serif&quot;&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;FONT face=&quot;Verdana, Arial, Helvetica, sans-serif&quot;&gt;Nevertheless I managed to free one hour just before taking my plane back.&amp;nbsp; I went to the local Lego shop in the shopping center near my hotel and bought a Lego mindstorm NXT kit.&amp;nbsp; In fact I promised to my oldest son to bring him a robot back from the US.&amp;nbsp; I have to confess that for the moment it’s papa that exclusively play with the Robot.&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face=&quot;Verdana, Arial, Helvetica, sans-serif&quot;&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;FONT face=&quot;Verdana, Arial, Helvetica, sans-serif&quot;&gt;Back to home I spend many evenings at experimenting with my son new toy.&amp;nbsp; I first assembled the basic Tribot and made some very cool little programs with the Lego visual development environment.&amp;nbsp;&amp;nbsp; I found this environment very well designed and easy to use.&amp;nbsp; The documentation is also very complete but the tutorials are very basic. I suppose this will improve in the future.&amp;nbsp; Unfortunately I experimented also lots of frustrations when my programs became bigger.&amp;nbsp; The development environment crashed many times and I loosed many programs.&amp;nbsp; To avoid this&amp;nbsp;I used “my blocks” this are reusable program components.&amp;nbsp; In traditional programming environment this type of reusable programming parts are called functions or methods.&amp;nbsp; “My blocks” can have input and output arguments.&amp;nbsp; &lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face=&quot;Verdana, Arial, Helvetica, sans-serif&quot;&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/P&gt;&lt;FONT face=Verdana&gt;&lt;P class=MsoNormal style=&quot;MARGIN: 0cm 0cm 0pt&quot;&gt;&lt;SPAN lang=EN-GB style=&quot;FONT-FAMILY: Verdana; mso-ansi-language: EN-GB&quot;&gt;In this post I attached some picture of one of the robots I build.&amp;nbsp; It's based on the T-Rex but on wheels.&amp;nbsp; I modified the T-Rex design and replaced the legs with wheels because the legs of the T-Rex consume a lot of energy, are innefective&amp;nbsp;nor practical to control.&lt;/SPAN&gt;&lt;SPAN lang=EN-GB style=&quot;mso-ansi-language: EN-GB&quot;&gt;&lt;?xml:namespace prefix = o ns = &quot;urn:schemas-microsoft-com:office:office&quot; /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/FONT&gt;&lt;P&gt;&lt;FONT face=Verdana&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;FONT face=&quot;Verdana, Arial, Helvetica, sans-serif&quot;&gt;In the next posts I will present one of the &quot;My blocks&quot; I programmed and try to&amp;nbsp;provide a basic tutorial on developing your own &quot;My blocks&quot;. &amp;nbsp;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face=&quot;Verdana, Arial, Helvetica, sans-serif&quot;&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;FONT face=&quot;Verdana, Arial, Helvetica, sans-serif&quot;&gt;A very cool site to learn programming NXT with the lego IDE can be found on: &lt;/FONT&gt;&lt;A href=&quot;http://www.ortop.org/NXT_Tutorial/html/essentials.html&quot;&gt;&lt;FONT face=&quot;Verdana, Arial, Helvetica, sans-serif&quot;&gt;http://www.ortop.org/NXT_Tutorial/html/essentials.html&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=&quot;Verdana, Arial, Helvetica, sans-serif&quot;&gt; This site contains lots a video lessons on how to program the NXT.&lt;/FONT&gt;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;SPAN style=&quot;TEXT-ALIGN: left&quot;&gt;&lt;DIV&gt;&lt;IMG title=STA70400 alt=STA70400 src=&quot;http://static.skynetblogs.be/media/89204/dyn006_original_448_336_pjpeg_2579043_5fbce28fcead36b54f6465d4c0be354f.jpg&quot; border=0&gt;&lt;/DIV&gt;&lt;P&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;&lt;SPAN style=&quot;TEXT-ALIGN: left&quot;&gt;&lt;DIV&gt;&lt;IMG title=STA70401 alt=STA70401 src=&quot;http://static.skynetblogs.be/media/89204/dyn006_original_448_336_pjpeg_2579043_f5a1d501e61f7f3a51857629d1585cdc.jpg&quot; border=0&gt;&lt;/DIV&gt;&lt;P&gt;&lt;/SPAN&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;SPAN style=&quot;TEXT-ALIGN: left&quot;&gt;&lt;DIV&gt;&lt;IMG title=STA70403 alt=STA70403 src=&quot;http://static.skynetblogs.be/media/89204/dyn006_original_448_336_pjpeg_2579043_71430ccb08d9105e3aa7a39087480b1c.jpg&quot; border=0&gt;&lt;/DIV&gt;&lt;P&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;P&gt;&lt;BR&gt;&lt;/P&gt;
      </content>
    </entry>
      <entry>
      <author>
        <name>Geoffrey Vandiest</name>
        <uri>http://geoffrey-vandiest.skynetblogs.be/about.html</uri>
      </author>
      <title> Welcome</title>
      <link rel="alternate" type="text/html" href="http://geoffrey-vandiest.skynetblogs.be/archive/2007/01/20/ welcome.html" />
            <id>tag:geoffrey-vandiest.skynetblogs.be,2007-01-20:2376259</id>
      <updated>2007-01-20T11:55:26+01:00</updated>
      <published>2007-01-20T11:55:26+01:00</published>
                            <category term="Général" scheme="http://www.blogspirit.com/ns/types#category" />
                                    <category term="welcome" scheme="http://www.blogspirit.com/ns/types#tag" />
                    <category term="geoffrey vandiest" scheme="http://www.blogspirit.com/ns/types#tag" />
              <summary>  Welcome to my blog.&amp;nbsp; As this is my first blog I don’t know exactly...</summary>
      <content type="html" xml:base="http://geoffrey-vandiest.skynetblogs.be/">
          &lt;P&gt;&lt;FONT face=&quot;Verdana, Arial, Helvetica, sans-serif&quot;&gt;Welcome to my blog.&amp;nbsp; As this is my first blog I don’t know exactly what kind of things I will write about. This blog will be dedicated to information I want to share with others. I guess most of what I will write will be about internet and development and it will be technology oriented.&amp;nbsp; My goal is to share useful information with other people. To discus about technologies, provide useful tips.&amp;nbsp; I decided to choose for Skynetblogs not only because Skynet is my employer but also because this bloging site provide a great visibility in Belgium. &lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face=Verdana&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/P&gt;
      </content>
    </entry>
  </feed>
