<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>I _Really_ Don&#039;t Know &#187; Enterprise Architecture</title>
	<atom:link href="http://dynamicorange.com/category/enterprise-architecture/feed/" rel="self" type="application/rss+xml" />
	<link>http://dynamicorange.com</link>
	<description>A low-frequency blog by Rob Styles</description>
	<lastBuildDate>Mon, 11 Apr 2011 09:43:28 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>The Hum^H^H^HBabble of The Machine</title>
		<link>http://dynamicorange.com/2005/07/05/the-humhhhbabble-of-the-machine/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=the-humhhhbabble-of-the-machine</link>
		<comments>http://dynamicorange.com/2005/07/05/the-humhhhbabble-of-the-machine/#comments</comments>
		<pubDate>Tue, 05 Jul 2005 13:08:40 +0000</pubDate>
		<dc:creator>Rob</dc:creator>
				<category><![CDATA[Enterprise Architecture]]></category>

		<guid isPermaLink="false">http://dynamicorange.com/wpblog/2005/07/05/the-humhhhbabble-of-the-machine/</guid>
		<description><![CDATA[Ward Cunningham has been using automated speech to monitor activity on his wiki&#8230;]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.artima.com/weblogs/viewpost.jsp?thread=81963">Ward Cunningham has been using automated speech to monitor activity on his wiki</a>&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://dynamicorange.com/2005/07/05/the-humhhhbabble-of-the-machine/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Where does the time go&#8230;</title>
		<link>http://dynamicorange.com/2005/06/15/where-does-the-time-go/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=where-does-the-time-go</link>
		<comments>http://dynamicorange.com/2005/06/15/where-does-the-time-go/#comments</comments>
		<pubDate>Wed, 15 Jun 2005 19:22:01 +0000</pubDate>
		<dc:creator>Rob</dc:creator>
				<category><![CDATA[Enterprise Architecture]]></category>

		<guid isPermaLink="false">http://dynamicorange.com/wpblog/2005/06/15/where-does-the-time-go/</guid>
		<description><![CDATA[Busy times, child number three on the way, due at the end of next month; along with trying to buy and sell houses and work has been great fun. I want to blog about some of the technicalities of what &#8230; <a href="http://dynamicorange.com/2005/06/15/where-does-the-time-go/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Busy times, child number three on the way, due at the end of next month; along with trying to buy and sell houses and work has been great fun. I want to blog about some of the technicalities of what we&#8217;ve been building, and will try to get around to that, but in the meantime we&#8217;re talking about some of it at:</p>
<p><a href="http://silkworm.talis.com">http://silkworm.talis.com</a></p>
<p>Essentially, we&#8217;re working on services out in the cloud that provide content discovery, interoperability and access services for content providers. I can highly recommend the white paper by our CTO Justin, available for download from above.</p>
<p>more coming soon.</p>
]]></content:encoded>
			<wfw:commentRss>http://dynamicorange.com/2005/06/15/where-does-the-time-go/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Hum of The Machine gaining ground</title>
		<link>http://dynamicorange.com/2005/01/31/the-hum-of-the-machine-gaining-ground/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=the-hum-of-the-machine-gaining-ground</link>
		<comments>http://dynamicorange.com/2005/01/31/the-hum-of-the-machine-gaining-ground/#comments</comments>
		<pubDate>Mon, 31 Jan 2005 12:33:14 +0000</pubDate>
		<dc:creator>Rob</dc:creator>
				<category><![CDATA[Enterprise Architecture]]></category>

		<guid isPermaLink="false">http://dynamicorange.com/wpblog/2005/01/31/the-hum-of-the-machine-gaining-ground/</guid>
		<description><![CDATA[previously I wrote about The Hum of The Machine, an idea I&#8217;d like to see^H^H^Hhear much more of. Seems PragDave has picked up on people doing it for real and even has it &#8216;by default&#8217; on his Apple G5.]]></description>
			<content:encoded><![CDATA[<p>previously I wrote about <a href="http://www.dynamicorange.com/blog/archives/000052.html">The Hum of The Machine</a>, an idea I&#8217;d like to see^H^H^Hhear much more of.</p>
<p>Seems <a href="http://blogs.pragprog.com/cgi-bin/pragdave.cgi/Random/FanNoise.rdoc">PragDave has picked up on people doing it for real and even has it &#8216;by default&#8217; on his Apple G5<a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://dynamicorange.com/2005/01/31/the-hum-of-the-machine-gaining-ground/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>More Security or Different Security</title>
		<link>http://dynamicorange.com/2004/05/19/more-security-or-different-security/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=more-security-or-different-security</link>
		<comments>http://dynamicorange.com/2004/05/19/more-security-or-different-security/#comments</comments>
		<pubDate>Wed, 19 May 2004 19:19:28 +0000</pubDate>
		<dc:creator>Rob</dc:creator>
				<category><![CDATA[Enterprise Architecture]]></category>

		<guid isPermaLink="false">http://dynamicorange.com/wpblog/2004/05/19/more-security-or-different-security/</guid>
		<description><![CDATA[We&#8217;ve just been having a discussion at work about the benefits of Impersonation and Delegation in .Net. That is, the ability of an application to perform actions using the identity of the human user driving them. For web applications, web &#8230; <a href="http://dynamicorange.com/2004/05/19/more-security-or-different-security/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>We&#8217;ve just been having a discussion at work about the benefits of Impersonation and Delegation in .Net. That is, the ability of an application to perform actions using the identity of the human user driving them.</p>
<p>For web applications, web services, database access etc this can be very useful, giving a trail throughout a multi-tier application showing which user performed an action.</p>
<p>The obvious perception is that this is, of course, more secure. But that&#8217;s just not true&#8230;</p>
<p><span id="more-52"></span><br />
If you impersonate a user when doing things like database access then what you&#8217;re left with is an audit trail that says &#8220;Alice updated row 971 in Table Foo&#8221;, but if you go and ask Alice she&#8217;ll quite clearly tell you she did no such thing. Nor should she be able to.</p>
<p>More worrying is the situation where you ask Alice and she says &#8220;Oh, yeah, that web app you wrote is so bad. I just set up an ODBC link and I put my stuff straight in using Access&#8221;.</p>
<p>If this system is impersonating Alice when accessing databases then Alice&#8217;s account requires access rights which she clearly shouldn&#8217;t have.</p>
<p>Extend this to a situation where there are several client systems all talking to the same database, via a shared data access layer, or service obviously. Now we have a situation where an update happened in Alice&#8217;s name, but we have no idea how. So we end up writing tracking logic in so we know which system did what &#8211; a homegrown audit trail.</p>
<p>Now, a mailicuous application can, without knowing any credentials, do things in the database using a genuine user&#8217;s identity, perhaps using the &#8216;application name&#8217; of another application and do damage that is difficult to trace.</p>
<p>If we weren&#8217;t impersonating this would not be possible, but we would have to track which user actions triggered which database events.</p>
<p>This brings me to the problem at hand. Impersonation isn&#8217;t enough. We need to know two things. Who or What is performing the action and Who the action is being performed for or on behalf of. A dual-authentication, knowing both the application and the user.</p>
<p>Without knowing both parts securely, Impersonation gives you a different audit trail, not necessarily a better one.</p>
]]></content:encoded>
			<wfw:commentRss>http://dynamicorange.com/2004/05/19/more-security-or-different-security/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Data Latency and Astronomy</title>
		<link>http://dynamicorange.com/2004/03/22/data-latency-and-astronomy/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=data-latency-and-astronomy</link>
		<comments>http://dynamicorange.com/2004/03/22/data-latency-and-astronomy/#comments</comments>
		<pubDate>Mon, 22 Mar 2004 16:38:31 +0000</pubDate>
		<dc:creator>Rob</dc:creator>
				<category><![CDATA[Enterprise Architecture]]></category>

		<guid isPermaLink="false">http://dynamicorange.com/wpblog/2004/03/22/data-latency-and-astronomy/</guid>
		<description><![CDATA[I found these posts on Pat Helland&#8217;s Blog, actually, I didn&#8217;t, Dave did, but hey. SOA is like the Night Sky&#8230; It&#8217;s All in a Name: What&#8217;s a Service? The timing was really interesting&#8230; because I&#8217;ve been conversing about a &#8230; <a href="http://dynamicorange.com/2004/03/22/data-latency-and-astronomy/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I found these posts on <a href="http://blogs.msdn.com/pathelland/">Pat Helland&#8217;s Blog</a>, actually, I didn&#8217;t, <a href="http://www.twelve71.com/dave/archives/000492.html">Dave did</a>, but hey.</p>
<p><a href="http://blogs.msdn.com/pathelland/archive/2004/03/18/91825.aspx">SOA is like the Night Sky&#8230;</a><br />
<a href="http://blogs.msdn.com/pathelland/archive/2004/03/11/88058.aspx">It&#8217;s All in a Name: What&#8217;s a Service?</a></p>
<p>The timing was really interesting&#8230;</p>
<p><span id="more-43"></span><br />
because I&#8217;ve been conversing about a similiar problem on the project I&#8217;m on. We have three organisation, Alice, Bob and Charlie. Alice and Bob both have contact with each other and a number of shared clients; they both keep their own records about those clients in their own databases. Charlie is responsible for analysing Alice&#8217;s and Bob&#8217;s data, ensuring they reconcile and producing statistical analysis from it.</p>
<p>The process, however, is that Alice and Bob are contractually obliged to provide their data to Charlie, but not to accept any changes back. As both Alice and Bob are also limited in their technology capabilities the route that has always been taken is for them both to provide a dump of their data &#8220;whenever they&#8217;ve made some changes&#8221;.</p>
<p>Charlie is also considering providing dumps of data back to both Alice and Bob.</p>
<p>As both Alice and Bob are, in effect, working on caches of subsets of the data that Charlie has (although they don&#8217;t think of it that way) the latency of starlight image is very instructuive here. Alice and Bob only know what the system <i>used to be like</i>.</p>
<p>My suggestion is that when Alice and Bob send through their changes they say what they want to change from&#8230; i.e.</p>
<p>Alice: &#8220;The data said &#8216;baz&#8217; when I looked at it, please change it to &#8216;quux&#8217; for me&#8221;<br />
Charlie: &#8220;Yeah, the value is still &#8216;baz&#8217;, I&#8217;ll change it&#8221;<br />
Bob: &#8220;The data said &#8216;baz&#8217; when I looked at it, please change it to &#8216;pre&#8217; for me&#8221;<br />
Charlie: &#8220;Sorry, the data has been changed to &#8216;quux&#8217; since then, try again&#8221;</p>
<p>I&#8217;m sure there is a name for this pattern somewhere, it can&#8217;t be new. The only problem I have now is to find an easy way for Alice and Bob to produce these change logs from inside their systems&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://dynamicorange.com/2004/03/22/data-latency-and-astronomy/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Term: Technology Previa</title>
		<link>http://dynamicorange.com/2004/03/22/term-technology-previa/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=term-technology-previa</link>
		<comments>http://dynamicorange.com/2004/03/22/term-technology-previa/#comments</comments>
		<pubDate>Mon, 22 Mar 2004 09:44:29 +0000</pubDate>
		<dc:creator>Rob</dc:creator>
				<category><![CDATA[Enterprise Architecture]]></category>

		<guid isPermaLink="false">http://dynamicorange.com/wpblog/2004/03/22/term-technology-previa/</guid>
		<description><![CDATA[As in &#8220;Placenta Previa&#8221; where the placenta is positioned to arrive before the child. Technology Previa is the positioning of a technology to arrive before the requirement.]]></description>
			<content:encoded><![CDATA[<p>As in <a href="http://www.google.com/search?num=50&#038;hl=en&#038;lr=lang_en&#038;ie=UTF-8&#038;oe=UTF-8&#038;newwindow=1&#038;q=placenta+previa">&#8220;Placenta Previa&#8221;</a> where the placenta is positioned to arrive before the child. Technology Previa is the positioning of a technology to arrive before the requirement. <img src='http://dynamicorange.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://dynamicorange.com/2004/03/22/term-technology-previa/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Subversive Patterns</title>
		<link>http://dynamicorange.com/2004/03/19/subversive-patterns/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=subversive-patterns</link>
		<comments>http://dynamicorange.com/2004/03/19/subversive-patterns/#comments</comments>
		<pubDate>Fri, 19 Mar 2004 10:22:54 +0000</pubDate>
		<dc:creator>Rob</dc:creator>
				<category><![CDATA[Enterprise Architecture]]></category>

		<guid isPermaLink="false">http://dynamicorange.com/wpblog/2004/03/19/subversive-patterns/</guid>
		<description><![CDATA[Well, we all do a jolly good job at making the right technology decisions and having a good go at building great systems for our customers, but from time to time you get one of those situations where some functionality &#8230; <a href="http://dynamicorange.com/2004/03/19/subversive-patterns/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Well, we all do a jolly good job at making the right technology decisions and having a good go at building great systems for our customers, but from time to time you get one of those situations where some functionality has been chosen or bought and mandated despite it&#8217;s lack of suitability.</p>
<p>You know the situation, flashy sales demo is followed by a purchase, the CTO/Strategy Team/Architecture Group/Project Sponsor hands you the box and says &#8220;we&#8217;re going to use this for our foobits logic processing&#8221;.</p>
<p>Well, here are two subversive patterns I&#8217;ve used to tackle the problem&#8230;</p>
<p><span id="more-41"></span><br />
Pre-Requisites: pinch of salt.</p>
<p>The first pattern is for situations where you need the lack of suitability to be visible; perhaps to get the product withdrawn or perhaps to pass the pain of the product back to the selector. In this case the most appropriate pattern is the &#8216;Zero-Touch&#8217; pattern.</p>
<p>In this you simply install and configure as standard a deployment of the platform as possible. Perhaps even allowing the vendor to perform the deployment design and sign it off. You perform no integration. Allow the users to switch from one to the other, or provide simple links between the two for things like web apps.</p>
<p><a href="http://www.dynamicorange.com/blog/archives/diagrams/zero-touch-pattern.html" onclick="window.open('http://www.dynamicorange.com/blog/archives/diagrams/zero-touch-pattern.html','popup','width=342,height=455,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://www.dynamicorange.com/blog/archives/diagrams/zero-touch-pattern-thumb.gif" width="75" height="99" border="0" /></a></p>
<p>If you&#8217;re right and the product is unsuitable then this will result in the project failing. The system will hopefully not get past UAT or pilot, but even if it doesn get into live the lack of integration will likely kill it later. Of course, if youre wrong and have to accept the product you may have a lot of work to do tidying up the mess created by the two systems being seperate.</p>
<p>The second pattern is what I like to call the &#8216;False-Touch&#8217; pattern. This is for use where the technology is unworkable but you need the project to succeed and you maybe wish to hide the misguided selection.</p>
<p><a href="http://www.dynamicorange.com/blog/archives/diagrams/false-touch-pattern.html" onclick="window.open('http://www.dynamicorange.com/blog/archives/diagrams/false-touch-pattern.html','popup','width=342,height=455,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://www.dynamicorange.com/blog/archives/diagrams/false-touch-pattern-thumb.gif" width="75" height="99" border="0" /></a></p>
<p>In this pattern you sit the new system alongside your existing systems in exactly the same way you would if you were genuinely using the system. Then, within the existing system, you make calls to the new system that provide just enough accuracy to make it appear to work. The key, though, is that you ignore all responses and build your own implementation in the existing system. Ideally calls to the duff system are done asynchronously, further reducing any dependance.</p>
<p>The elegance of this pattern is that the duff system becomes irrelevant and because the production system maintains it&#8217;s performance and stability profiles it is very unlikely anyone will ever investigate which bit is actually doing the work.</p>
]]></content:encoded>
			<wfw:commentRss>http://dynamicorange.com/2004/03/19/subversive-patterns/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Hum of The Machine</title>
		<link>http://dynamicorange.com/2004/03/09/the-hum-of-the-machine/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=the-hum-of-the-machine</link>
		<comments>http://dynamicorange.com/2004/03/09/the-hum-of-the-machine/#comments</comments>
		<pubDate>Tue, 09 Mar 2004 11:10:04 +0000</pubDate>
		<dc:creator>Rob</dc:creator>
				<category><![CDATA[Enterprise Architecture]]></category>

		<guid isPermaLink="false">http://dynamicorange.com/wpblog/2004/03/09/the-hum-of-the-machine/</guid>
		<description><![CDATA[Rachel Davies has been writing about some insights she gained from a tour of the Toyota plant in Derby, which reminded me I should write something about a couple of concepts Steve Jones (of Egg) and I worked on as &#8230; <a href="http://dynamicorange.com/2004/03/09/the-hum-of-the-machine/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Rachel Davies has been writing about <a href="http://www.twelve71.com/rachel/archives/000465.html">some insights she gained from a tour of the Toyota plant in Derby</a>, which reminded me I should write something about a couple of concepts Steve Jones (of Egg) and I worked on as analogies for large scale systems monitoring.</p>
<p><span id="more-38"></span><br />
We started by discussing what it was that made mechanical production systems easier to monitor than IT systems and were talking about visibility. This rapidly turned into a discussion about factories, and then cars and their engines. Put two blokes together and if they don&#8217;t end up talking about football they&#8217;ll end up talking about cars.</p>
<p>Only this time it was interesting becuase we realised that visibility is not the key. It&#8217;s audibility. The Hum of The Machine. When you&#8217;re driving you can&#8217;t see the engine, you rely on the sound of the car a lot &#8211; it&#8217;s the clunking sound that forces you to take a look or take it to the garage. It&#8217;s the same effect that allows an experienced supervisor on a printing press, or other automated mechanical machine, to sit and read a book or watch TV safe in the knowledge that all is well. If the tone or rhythm changes then the book gets put down and further investigation takes place.</p>
<p>But with IT systems the things that are most important to us are silent. I think the idea of having web servers shout out when they&#8217;ve successfully completed a request (or thousand) is very compelling and engaging at a level that systems monitoring tools like Patrol and OpenView just aren&#8217;t. The key difference between Rachel&#8217;s thoughts and the ideas Steve and I discussed is that Steve and I suggest having sound as the normal, healthy state as with a mechanical system.</p>
<p>The other concept we decided was worth pursuing was the idea of variable monitoring and tracking of individual transactions. A concept taken from, and named after, The Barium Swallow &#8211; a medical investigative procedure that involves swallowing a mildly radioactive liquid and watching the passage of that through the oesophagus on-screen.</p>
<p>The equivalent we discusssed here was the ability to send genuine requests into a live system, but tagged in some way, to trigger a higher level of logging and/or alerting. This kind of facility would allow diagnosis of problems in live systems easier and more viable than simply turning up the logging as it would provide detailed logging for a single transaction rather than the vast volumes of logging that you get otherwise.</p>
<p>If anyone knows of any commercial products doing this then I&#8217;d love to hear from you.</p>
]]></content:encoded>
			<wfw:commentRss>http://dynamicorange.com/2004/03/09/the-hum-of-the-machine/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Agile Techniques for Business</title>
		<link>http://dynamicorange.com/2004/03/05/agile-techniques-for-business/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=agile-techniques-for-business</link>
		<comments>http://dynamicorange.com/2004/03/05/agile-techniques-for-business/#comments</comments>
		<pubDate>Fri, 05 Mar 2004 16:47:06 +0000</pubDate>
		<dc:creator>Rob</dc:creator>
				<category><![CDATA[Enterprise Architecture]]></category>

		<guid isPermaLink="false">http://dynamicorange.com/wpblog/2004/03/05/agile-techniques-for-business/</guid>
		<description><![CDATA[Dave Fellows, a partner in crime on one or two projects has a note on his blog about releasing a business proposition but delaying the build of supporting IT infrastructure until just before its required This reminded of the heady &#8230; <a href="http://dynamicorange.com/2004/03/05/agile-techniques-for-business/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Dave Fellows, a partner in crime on one or two projects has a note on his blog about <i><a href="http://www.twelve71.com/dave/archives/000452.html">releasing a business proposition but delaying the build of supporting IT infrastructure until just before its required</a></i></p>
<p>This reminded of the heady days of Egg during the dotcom boom&#8230;</p>
<p><span id="more-37"></span><br />
Launching products and building systems faster than people could keep up with. We destroyed a few people during those days, but the buzz was amazing.</p>
<p>Anyway, it reminded me specificallyof the launch of Egg Card. The release dates were crucial for that product as a number of competitors were planning similar, but inferior, product launches around the same time and we desperately wanted to be first.</p>
<p>The priority, inline with that was to build the supporting literature and the account opening and card issuing processes first. Followed by the card activation processes and finally the account servicing functions. What made this a higher risk vernture than maybe a more established bank would have taken was that we launched the account opening processes before the card activation services had been built. Time available was, therefore, the time it took for an account to be opened, the customer to sign and return the Consumer Credit Agreement and a card to be embossed and posted. About ten days.</p>
<p>28 days following the first card activations was the deadline for account servicing. Based on the fact that Egg Card has online statements and a credit card company can&#8217;t debit your account for the balance on the card unless you&#8217;ve had opportunity to view your statement. Critical Deadline.</p>
<p>So, JIT systems for a live product has been done. I can&#8217;t say I can recommend it. There are 3 axes to software engineering in real world situations, Scope, Quality and Time. As many of us know, if you fix time and scope at points that create this level of pressure then the only thing that can happen is a reduction in quality.</p>
]]></content:encoded>
			<wfw:commentRss>http://dynamicorange.com/2004/03/05/agile-techniques-for-business/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ASP.Net Traditional Web Anti-Pattern</title>
		<link>http://dynamicorange.com/2004/03/03/aspnet-traditional-web-anti-pattern/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=aspnet-traditional-web-anti-pattern</link>
		<comments>http://dynamicorange.com/2004/03/03/aspnet-traditional-web-anti-pattern/#comments</comments>
		<pubDate>Wed, 03 Mar 2004 11:07:16 +0000</pubDate>
		<dc:creator>Rob</dc:creator>
				<category><![CDATA[Enterprise Architecture]]></category>

		<guid isPermaLink="false">http://dynamicorange.com/wpblog/2004/03/03/aspnet-traditional-web-anti-pattern/</guid>
		<description><![CDATA[ASP.Net introduces some new concepts in Web Development that many aren&#8217;t familiar with. I&#8217;ve come across enough projects done badly in the same way that I&#8217;ve concluded this must be an anti-pattern&#8230; &#8220;The ASP.Net Traditional Web Anti-Pattern&#8221; is what web &#8230; <a href="http://dynamicorange.com/2004/03/03/aspnet-traditional-web-anti-pattern/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>ASP.Net introduces some new concepts in Web Development that many aren&#8217;t familiar with. I&#8217;ve come across enough projects done badly in the same way that I&#8217;ve concluded this must be an anti-pattern&#8230;</p>
<p>&#8220;The ASP.Net Traditional Web Anti-Pattern&#8221; is what web developers coming from all web backgrounds Perl/CGI, ASP/COM, JSP, PHP and others all seem to build if not given adequate time, guidance or training in .Net Web Development.</p>
<p><span id="more-35"></span><br />
That shouldn&#8217;t be a surprise, of course. Microsoft have moved the goal-posts. When introducing .Net one of Microsoft&#8217;s major objectives was to bring the WinForms and Web Forms development models together. They did this by applying as many of the windows forms concepts to WebForms as they could.</p>
<p>The concepts are generally new to the web. ASP.Net introduces the idea of &#8216;postback&#8217; and event-driven development to the web in a far more consistent and holisitc manner than seen before.</p>
<p>But, they left all the old hooks for getting at post data, querystrings and cookies in place. So when developers steeped in handling these manually are given an ASP.Net development to do they naturally build things the same way they always have; with html controls and code to parse the form data.</p>
<p>This misses the value of ASP.Net though, with it&#8217;s web controls, event plumbing and state management making life so much easier and more powerful.</p>
<p>So, next time you&#8217;re parsing form post data, querystrings or cookies in ASP.Net ask yourself if you&#8217;re actually implementing &#8220;The ASP.Net Traditional Web Anti-Pattern&#8221;.</p>
]]></content:encoded>
			<wfw:commentRss>http://dynamicorange.com/2004/03/03/aspnet-traditional-web-anti-pattern/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

