<?xml version="1.0"?>
<rss version="2.0">
<channel>
  <title>Coding the Architecture - dotnet tag</title>
  <link>http://www.codingthearchitecture.com/tags/dotnet/</link>
  <description>Software architecture for developers</description>
  <language>en</language>
  <copyright>Coding the Architecture</copyright>
  <lastBuildDate>Wed, 16 May 2012 08:01:04 GMT</lastBuildDate>
  <generator>Pebble (http://pebble.sourceforge.net)</generator>
  <docs>http://backend.userland.com/rss</docs>
  
  
  <item>
    <title>Design software as a long running process</title>
    <link>http://www.codingthearchitecture.com/2009/11/05/design_software_as_a_long_running_process.html</link>
    
      
        <description>
          &lt;p&gt;
I had an interesting discussion today about the differences between writing a Windows service in .NET and an ASP.NET web application. Somebody made a comment that Windows services were harder to write because you need to make sure you deal with memory properly in order to avoid memory leaks, whereas you didn&#039;t need to do this with an ASP.NET web application. In short, the perception was that Windows services are long running processes and that ASP.NET applications running under IIS aren&#039;t. There are several things to pick up on here.
&lt;/p&gt;

&lt;p&gt;
First of all, .NET (like Java) is a managed platform that does its own garbage collection so you don&#039;t need to worry about explicitly allocating and disposing memory. Unless you&#039;re integrating with unmanaged code (e.g. older DLLs, COM objects, other native code, etc) you don&#039;t generally need to worry about low-level memory allocation.
&lt;/p&gt;

&lt;p&gt;
Memory leaks *are* something that you need to worry about though and they&#039;re really easy to cause in .NET or Java applications. All you need to do is cache lots of data in static references, not dispose of resources you are using, etc. You&#039;re not really &#034;leaking&#034; memory, you&#039;re just storing it away somewhere and never reusing it again. If you&#039;re interested in this topic, InfoQ published a good article today called &lt;a href=&#034;http://www.infoq.com/news/2009/11/Memory-Leaks-.NET&#034; target=&#034;_blank&#034;&gt;Dealing with Memory Leaks in .NET&lt;/a&gt; that digs into this some more.
&lt;/p&gt;

&lt;p&gt;
The thing that I found the most surprising is the difference in how Windows services and ASP.NET applications are often viewed. A Windows service is clearly a long running process because once it&#039;s up and running, that&#039;s it until it gets restarted manually or from a system reboot. With a Windows service, any memory leak will start to become very obvious as the system slowly grinds to a halt and it&#039;s this that caused the comment about Windows services being harder to write. For some reason, ASP.NET applications aren&#039;t necessarily perceived as long running processes. With my Java background, I find this odd and several times people have mentioned that they rely on AppDomain recycling in IIS to prevent their applications from consuming too much memory. AppDomain recycling is essentially the same as what happens when you hot-deploy a web application on a Java EE server - drop the classloader and plug-in a new one to reload everything from a fresh state. For a moment then, let&#039;s think about what happens when an AppDomain behind an ASP.NET application is recycled in IIS (there&#039;s a much more detailed explanation &lt;a href=&#034;http://blogs.msdn.com/tess/archive/2006/08/02/asp-net-case-study-lost-session-variables-and-appdomain-recycles.aspx&#034; target=&#034;_blank&#034;&gt;here&lt;/a&gt;).
&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Any shared state in your application (e.g. stored by static variables) disappears. If you&#039;re caching frequently used data or data that takes a long time to calculate, then this will all vanish.&lt;/li&gt;
&lt;li&gt;Any sessions backed by the in-process session store (i.e. in the AppDomain) get blasted.&lt;/li&gt;
&lt;li&gt;You&#039;ll normally see a performance hit the next you hit the site as pages are reloaded and recompiled, connections are re-established, etc.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
AppDomain recycling can have a fairly large overhead then, which brings me nicely onto the point of this. You&#039;re likely to have fewer issues in the future if you design every piece of software as a long running process. It doesn&#039;t matter whether you&#039;re building a Windows service, an ASP.NET web application or even a desktop application; you should always write code to avoid memory leaks rather than ignoring them. Relying on restarts or AppDomain recycling as a workaround for sloppy coding and memory leaks is not my idea of software craftsmanship.
&lt;/p&gt;
        </description>
      
      
    
    
    
    <category>How do you define software architecture?</category>
    
    <comments>http://www.codingthearchitecture.com/2009/11/05/design_software_as_a_long_running_process.html#comments</comments>
    <guid isPermaLink="true">http://www.codingthearchitecture.com/2009/11/05/design_software_as_a_long_running_process.html</guid>
    <pubDate>Thu, 05 Nov 2009 20:42:51 GMT</pubDate>
  </item>
  
  <item>
    <title>Broadening the T</title>
    <link>http://www.codingthearchitecture.com/2009/10/15/broadening_the_t.html</link>
    
      
        <description>
          &lt;p&gt;
&lt;a href=&#034;http://www.codingthearchitecture.com/presentations/sa2009-broadening-the-t/&#034;&gt;&lt;img src=&#034;http://www.codingthearchitecture.com/images/sa2009-broadening-the-t.png&#034; alt=&#034;Broadening the T&#034; border=&#034;0&#034; align=&#034;right&#034; style=&#034;padding: 0px 0px 8px 8px&#034; /&gt;&lt;/a&gt; One of the sessions that I delivered at the recent &lt;a href=&#034;http://www.software-architect.co.uk/&#034;&gt;Software Architect 2009 conference&lt;/a&gt; was entitled &#034;Broadening the T&#034; and covered the sort of skills and knowledge that I think are needed by hands-on software architects. This included things like seeing the big picture, dealing with non-functional requirements (we focussed on performance and scalability), using patterns at the architecture level, testing architectures, monitoring and diagnosing performance problems. Some concrete advice was given throughout the presentation with Java and .NET being used to give some real-world context.
&lt;/p&gt;

&lt;p&gt;
I have a load of notes on the Keynote version of the slides and I&#039;m going to put one or more essays together that cover the content in more detail. In the meantime, you can &lt;a href=&#034;http://www.codingthearchitecture.com/presentations/sa2009-broadening-the-t/&#034;&gt;view or download the slides&lt;/a&gt;.
&lt;/p&gt;
        </description>
      
      
    
    
    
    <category>What is the the role of a software architect?</category>
    
    <comments>http://www.codingthearchitecture.com/2009/10/15/broadening_the_t.html#comments</comments>
    <guid isPermaLink="true">http://www.codingthearchitecture.com/2009/10/15/broadening_the_t.html</guid>
    <pubDate>Thu, 15 Oct 2009 08:46:00 GMT</pubDate>
  </item>
  
  <item>
    <title>Simplifying deployment</title>
    <link>http://www.codingthearchitecture.com/2009/09/24/simplifying_deployment.html</link>
    
      
        <description>
          &lt;p&gt;
We had an interesting discussion about simplifying deployment on the &lt;a href=&#034;http://www.softwarearchitecturefordevelopers.com&#034;&gt;training course&lt;/a&gt; last week and I thought it would be good to re-iterate some of the points here. As part of the course, everybody is asked to put together an architecture for a small case study that can be decomposed into two major components. One of these is a scheduled/batch component responsible for processing some input files and the other is a user interface for users to modify some of the configuration used during the processing step. We&#039;ve seen many different architectural approaches to solving this case study although it&#039;s natural for people to think about them as components that are deployed separately. One typical example is a Java web application providing the user interface and a separate standalone Java program initiated by cron for the batch processing. Another option would be an ASP.NET application and a Windows service.
&lt;/p&gt;

&lt;p&gt;
We have a similar situation on one of my current projects. The main part of the system is an n-tier web application where the ASP.NET pages use WCF middle-tier services, which in turn communicate with either a backend system or a SQL Server database. There&#039;s also a batch element to the system, where a job is scheduled on the SQL Server box to look in the database and perform a very small amount of batch processing (in this case, generating files for onward transmission to another system). At a predefined interval, SQL server starts a standalone program up that looks for work to do, performs that work and then shuts down. At the next occurrence of the interval, the job is started up again. 
&lt;/p&gt;

&lt;p&gt;
In both of these cases, the architecture works and the use of a scheduled job means that we don&#039;t need to worry about failover and fault tolerance so much. If the job fails or crashes for some reason, the next run of the schedule will restart the process meaning that we don&#039;t (necessarily) need to worry about transient problems. We do need to make sure that the process initiating the scheduled job is always running, but typically this is something like an operating system or database, which are themselves usually monitored. One of the trade-offs with this approach is monitoring of the actual job though. Because such jobs are normally standalone programs that simply get executed on a scheduled basis, they have a very short window in which they are active and can be proactively monitored.
&lt;/p&gt;

&lt;p&gt;
Another trade-off is that we&#039;ve introduced a slightly more complicated deployment process. Okay, so it&#039;s not complicated to install a standalone application in the right place and schedule it to run, but we do have another *step* in the deployment process. In the case of our real-world system, we&#039;ve put a lot of effort into making the build and deployment process as streamlined as possible for the majority of the application, but sometimes we even forget to deploy the scheduled job! Partially this is because it rarely changes, but it&#039;s also because it sits on the edge of the overall architecture. It *is* an important component, but it&#039;s not immediately apparent if it stops working because (for example) the underlying database schema has changed. We tend to notice the website not working though.
&lt;/p&gt;

&lt;p&gt;
We&#039;re currently working on some new functionality that will see the introduction of another scheduled job into the architecture. In this case, we want to send e-mail from our application and have chosen to write e-mails into the database on an immediate basis so that they&#039;re captured, with a separate job sending them on a scheduled basis. With an existing scheduled job in place, it&#039;s very tempting to follow the same approach and build another standalone application that hooks into the same scheduler mechanism. But in doing this, we now have two components that we could potentially forget about and we&#039;ve introduced yet another step into the deployment process.
&lt;/p&gt;

&lt;p&gt;
This is one of those occasions where you can do some refactoring at the architecture level and simplify the deployment model by moving the scheduled jobs into our existing middle-tier. After all, it&#039;s a long running process with a very well understood build and deployment process, plus we have some bespoke diagnostics to monitor the status of the services it provides. Moving these standalone jobs into the middle-tier has been achieved by creating a very simple &#034;timer service&#034; framework (a wrapper around the platform provided timers) that kicks off a couple of timers to run the existing code every time an interval elapses. The benefits of doing this are that we&#039;ve (a) simplified the deployment process and (b) we&#039;ve introduced the ability to integrate these scheduled services with our existing middle-tier diagnostics.
&lt;/p&gt;

&lt;p&gt;
Coming back to the case study in the training course, again, merging both of the batch and UI components into a single process is a great way to simplify the deployment for what is essentially a very simple system. This also provides additional benefits when the operations and support team aren&#039;t familiar with the technology, perhaps because you&#039;re introducing something new to them. Logically, the batch and UI components are very separate in their behaviour and responsibilities, but this is one of those occasions where bringing the logical design back to reality can help you identify opportunities for simplification. The logical to physical mapping doesn&#039;t have to be one-to-one.
&lt;/p&gt;
        </description>
      
      
    
    
    
    <category>How do you define software architecture?</category>
    
    <comments>http://www.codingthearchitecture.com/2009/09/24/simplifying_deployment.html#comments</comments>
    <guid isPermaLink="true">http://www.codingthearchitecture.com/2009/09/24/simplifying_deployment.html</guid>
    <pubDate>Thu, 24 Sep 2009 15:29:58 GMT</pubDate>
  </item>
  
  <item>
    <title>Software architecture training in London</title>
    <link>http://www.codingthearchitecture.com/2009/09/01/software_architecture_training_in_london.html</link>
    
      
        <description>
          &lt;p&gt;
The next run of our &lt;a href=&#034;http://www.softwarearchitecturefordevelopers.com&#034;&gt;software architecture training course&lt;/a&gt; is taking place at &lt;a href=&#034;http://skillsmatter.com/course/design-architecture/coding-the-architecture-workshop&#034;&gt;Skills Matter in London on the 15th and 16th of September&lt;/a&gt;. I posted a &lt;a href=&#034;http://www.codingthearchitecture.com/2009/06/12/june_2009_training_course.html&#034;&gt;short review of the June 2009 course&lt;/a&gt; a while back but it&#039;s aimed squarely at software developers that want to get into software architecture and become more &#034;architecturally aware&#034;. We like to think that our approach to software architecture is down to earth and pragmatic, while &lt;a href=&#034;http://agoncal.wordpress.com/2009/06/10/coding-the-architecture/&#034;&gt;our training approach is a refreshing change&lt;/a&gt;:
&lt;/p&gt;

&lt;blockquote&gt;
This workshop is completly different from what you are used to where you are sent by your company to be trained. You don&#039;t arrive, sit down, listen and leave the room being an architect. Instead you only go through 50 slides in two days, and spend your time working in small groups and interacting with the others. At the end you leave the workshop with your head full of ideas.
&lt;/blockquote&gt;

&lt;p&gt;
We have some time in the schedule for one or two presentations so I might provide a preview of &lt;a href=&#034;http://static.codingthearchitecture.com/presentations/sa2009-d
ocumenting-your-software-architecture-why-and-how-preview.pdf&#034;&gt;Documenting your software architecture - why and how?&lt;/a&gt; or &lt;a href=&#034;http://static.codingthearchitecture.com/presentations/sa2009-b
roadening-the-t-preview.pdf&#034;&gt;Broadening the T&lt;/a&gt;, which I&#039;m presenting at the Software Architect 2009 conference at the end of the month. Either way, I&#039;m sure there&#039;ll be some great discussion about software architecture.
&lt;/p&gt;

&lt;p&gt;
You can book online via the &lt;a href=&#034;http://skillsmatter.com/course/design-architecture/coding-the-architecture-workshop&#034;&gt;Skills Matter website&lt;/a&gt;, and the price is £1095.
&lt;/p&gt;
        </description>
      
      
    
    
    
    <comments>http://www.codingthearchitecture.com/2009/09/01/software_architecture_training_in_london.html#comments</comments>
    <guid isPermaLink="true">http://www.codingthearchitecture.com/2009/09/01/software_architecture_training_in_london.html</guid>
    <pubDate>Tue, 01 Sep 2009 19:32:00 GMT</pubDate>
  </item>
  
  <item>
    <title>To SQL or not to SQL?</title>
    <link>http://www.codingthearchitecture.com/2009/07/21/to_sql_or_not_to_sql.html</link>
    
      
        <description>
          &lt;p&gt;
Eric Lai wrote an interesting article for Computerworld entitled &lt;a href=&#034;http://www.computerworld.com/s/article/9135086/No_to_SQL_Anti_database_movement_gains_steam_&#034;&gt;No to SQL? Anti-database movement gains steam&lt;/a&gt; that highlighted the small but growing trend for not using a traditional relational database for managing data. Nati Shalom&#039;s &lt;a href=&#034;http://natishalom.typepad.com/nati_shaloms_blog/2009/07/no-to-sql-anti-database-movement-gains-steam-my-take.html&#034;&gt;No to SQL? Anti-database movement gains steam - My Take&lt;/a&gt; is a good follow-up.
&lt;/p&gt;

&lt;p&gt;
I&#039;m sure that most of us have good experiences of using a relational database in our projects and, despite the pain of sometimes mapping the data into a relational schema, relational databases provide an easy to use known quantity
for managing data. With this in mind, you should certainly let your &lt;a href=&#034;http://www.codingthearchitecture.com/2008/07/30/experience_should_guide_not_constrain.html&#034;&gt;experience guide you&lt;/a&gt; but bear in mind that relational databases aren&#039;t the answer to every question.
&lt;/p&gt;

&lt;p&gt;
The case study that we use as a basis for the &lt;a href=&#034;http://www.softwarearchitecturefordevelopers.com&#034;&gt;exercises in our software architecture training course&lt;/a&gt; is relatively small yet most people decide to use a relational database to store the data without really giving the alternatives a second thought. Most of the time it comes down to experience in that most people are comfortable with using a relational database in their architecture. But there are many viable alternatives; from using flat files and object databases through to in-memory data structures, data grids and the cloud. So while relational databases might be a solution for your particular problem, it&#039;s always worth spending a couple of minutes assessing whether they are the *best* solution. Here are some things to think about before deciding on whether to go down the SQL or non-SQL route.
&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Do you have special non-functional requirements that would be hard to satisfy with a relational database? (e.g. high performance/low latency, massive scalability, etc)&lt;/li&gt;
&lt;li&gt;What is the available skillset of the team?&lt;/li&gt;
&lt;li&gt;Do you have existing licenses for an RDBMS?&lt;/li&gt;
&lt;li&gt;Could an open source RDBMS be appropriate?&lt;/li&gt;
&lt;li&gt;Do you need to access legacy systems where the data is already in an RDBMS?&lt;/li&gt;
&lt;li&gt;Do you have the hardware available to run an RDBMS?&lt;/li&gt;
&lt;li&gt;Do you already have existing backup and archival processes and procedures for relational databases?&lt;/li&gt;
&lt;li&gt;What are your management information and reporting requirements (scheduled and ad hoc)? Is it possible to satisfy these with a non-SQL solution?&lt;/li&gt;
&lt;li&gt;Do other systems need access to your data via a SQL interface? (a service gateway might be a better approach, but that&#039;s another issue)&lt;/li&gt;
&lt;li&gt;Do you have data migration requirements from an existing relational database?&lt;/li&gt;
&lt;li&gt;Can the data management problem be split up into transactional and non-transactional partitions, maybe using a relational database for only one of them?&lt;/li&gt;
&lt;li&gt;Do you really *need* persistence?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
Relational databases are established mainstream solutions that are applicable in many cases. Just don&#039;t forget that there are other alternatives too.
&lt;/p&gt;
        </description>
      
      
    
    
    
    <category>How do you define software architecture?</category>
    
    <comments>http://www.codingthearchitecture.com/2009/07/21/to_sql_or_not_to_sql.html#comments</comments>
    <guid isPermaLink="true">http://www.codingthearchitecture.com/2009/07/21/to_sql_or_not_to_sql.html</guid>
    <pubDate>Tue, 21 Jul 2009 10:07:00 GMT</pubDate>
  </item>
  
  <item>
    <title>A developer&#039;s guide to load testing - video</title>
    <link>http://www.codingthearchitecture.com/2009/06/15/a_developers_guide_to_load_testing_video.html</link>
    
      
        <description>
          &lt;p&gt;
Just a quickie ... the video from &lt;a href=&#034;http://www.codingthearchitecture.com/2009/06/11/a_developers_guide_to_load_testing_slides.html&#034;&gt;A developer&#039;s guide to load testing&lt;/a&gt; at Skills Matter last week is now available to &lt;a href=&#034;http://skillsmatter.com/podcast/design-architecture/a-developers-guide-to-load-testing&#034;&gt;view online&lt;/a&gt;. The microphone picked up the questions and comments quite well, which is excellent. Enjoy, and feel free to use the &lt;a href=&#034;http://groups.google.com/group/codingthearchitecture&#034;&gt;Google Group&lt;/a&gt; to continue the discussion.
&lt;/p&gt;

&lt;div align=&#034;center&#034;&gt;
&lt;object width=&#034;400&#034; height=&#034;300&#034;&gt;&lt;param name=&#034;allowfullscreen&#034; value=&#034;true&#034; /&gt;&lt;param name=&#034;allowscriptaccess&#034; value=&#034;always&#034; /&gt;&lt;param name=&#034;movie&#034; value=&#034;http://vimeo.com/moogaloop.swf?clip_id=5116578&amp;amp;server=vimeo.com&amp;amp;show_title=1&amp;amp;show_byline=1&amp;amp;show_portrait=0&amp;amp;color=&amp;amp;fullscreen=1&#034; /&gt;&lt;embed src=&#034;http://vimeo.com/moogaloop.swf?clip_id=5116578&amp;amp;server=vimeo.com&amp;amp;show_title=1&amp;amp;show_byline=1&amp;amp;show_portrait=0&amp;amp;color=&amp;amp;fullscreen=1&#034; type=&#034;application/x-shockwave-flash&#034; allowfullscreen=&#034;true&#034; allowscriptaccess=&#034;always&#034; width=&#034;400&#034; height=&#034;300&#034;&gt;&lt;/embed&gt;&lt;/object&gt;
&lt;/div&gt;

&lt;p&gt;
Thanks again to &lt;a href=&#034;http://skillsmatter.com&#034;&gt;Skills Matter&lt;/a&gt;.
&lt;/p&gt;
        </description>
      
      
    
    
    
    <category>How do you deliver software architecture?</category>
    
    <comments>http://www.codingthearchitecture.com/2009/06/15/a_developers_guide_to_load_testing_video.html#comments</comments>
    <guid isPermaLink="true">http://www.codingthearchitecture.com/2009/06/15/a_developers_guide_to_load_testing_video.html</guid>
    <pubDate>Mon, 15 Jun 2009 22:27:51 GMT</pubDate>
  </item>
  
  <item>
    <title>June 2009 training course</title>
    <link>http://www.codingthearchitecture.com/2009/06/12/june_2009_training_course.html</link>
    
      
        <description>
          &lt;p&gt;
I ran our &lt;a href=&#034;http://www.softwarearchitecturefordevelopers.com&#034;&gt;From Developer to Architect training course&lt;/a&gt; (Coding the Architecture Workshop) earlier this week at &lt;a href=&#034;http://skillsmatter.com/go/design-architecture&#034;&gt;Skills Matter&lt;/a&gt; in London. 8 people came along, all with slightly different levels of software development/architecture experience and technology background. Historically this course has predominantly attracted people with a Java background, although this is starting to change with more people having experience of the .NET framework. As &lt;a href=&#034;http://agoncal.wordpress.com/2009/06/10/coding-the-architecture/&#034;&gt;Antonio Goncalves mentions in his blog entry about the course&lt;/a&gt;:
&lt;/p&gt;

&lt;blockquote&gt;
This workshop is completly different from what you are used to where you are sent by your company to be trained. You don&#039;t arrive, sit down, listen and leave the room being an architect. Instead you only go through 50 slides in two days, and spend your time working in small groups and interacting with the others. At the end you leave the workshop with your head full of ideas.
&lt;/blockquote&gt;

&lt;p&gt;
If you&#039;ve been along to one of the Coding the Architecture user groups then you&#039;ll know what to expect from this course. There&#039;s an element of presentation to set a baseline level of knowledge, but most of the course is very interactive and collaborative, with a focus on nurturing discussion rather than just being a 2-day question and answer session. From my perspective, it&#039;s a fantastic course to run because even *I* leave the workshop with my head full of ideas! There&#039;s some interesting discussion on &lt;a href=&#034;http://twit.tv/197&#034;&gt;TWiT 197&lt;/a&gt; on how education should be less about learning how to pass exams and more about creativity/thinking for yourself. This is exactly the rationale behind our course too.
&lt;/p&gt;

&lt;p&gt;
You can find more information about what the course covers on our &lt;a href=&#034;http://www.codingthearchitecture.com/pages/training.html&#034;&gt;training page&lt;/a&gt;, but I wanted to share some insight into the case study exercise. It&#039;s a collaborative exercise where groups are asked to define an architecture from a small set of functional and non-functional requirements. Given that everybody has different backgrounds and experiences, there&#039;s no right answer and the range of technical solutions can often be quite vast. What&#039;s important about the case study is looking at how to approach the architecture definition exercise ... which inputs to consider, where to start, how to convey the architecture, what level of detail to go to and, of course, which technologies to choose. The file linked below includes some of the diagrams produced as part of the case study; highlighting the different views, level of detail and notation used to convey solutions.
&lt;/p&gt;

&lt;div align=&#034;center&#034;&gt;
&lt;a href=&#034;http://static.codingthearchitecture.com/presentations/from-developer-to-architect-diagrams.zip&#034;&gt;&lt;img src=&#034;http://www.codingthearchitecture.com/images/from-developer-to-architect-diagrams-thumbnail.jpg&#034; alt=&#034;Diagrams from the training course&#034; border=&#034;0&#034; /&gt;&lt;/a&gt;
&lt;br /&gt;
&lt;a href=&#034;http://static.codingthearchitecture.com/presentations/from-developer-to-architect-diagrams.zip&#034;&gt;Diagrams from our &#034;From Developer to Architect&#034; training course&lt;/a&gt; (ZIP, 2.7MB)
&lt;/div&gt;

&lt;p&gt;
Even without knowledge of the case study, the diagrams illustrate the variation in how architecture can be conveyed. Expect some essays about this and our overall approach to software architecture in the future; and feel free to &lt;a href=&#034;http://www.codingthearchitecture.com/authors/sbrown/&#034;&gt;get in touch&lt;/a&gt; if you have any questions about the course or how we can help you with your own software architectures. Oh, and thanks once again to everybody that came along and made it such an enjoyable couple of days. :-)
&lt;/p&gt;
        </description>
      
      
    
    
    
    <comments>http://www.codingthearchitecture.com/2009/06/12/june_2009_training_course.html#comments</comments>
    <guid isPermaLink="true">http://www.codingthearchitecture.com/2009/06/12/june_2009_training_course.html</guid>
    <pubDate>Fri, 12 Jun 2009 22:06:00 GMT</pubDate>
  </item>
  
  <item>
    <title>A developer&#039;s guide to load testing - slides</title>
    <link>http://www.codingthearchitecture.com/2009/06/11/a_developers_guide_to_load_testing_slides.html</link>
    
      
        <description>
          &lt;p&gt;
Thanks to everybody that came along to the &lt;a href=&#034;http://www.codingthearchitecture.com/2009/06/02/a_developers_guide_to_load_testing.html&#034;&gt;CTA user group earlier in the week&lt;/a&gt;. The tube strike may had reduced the numbers but we still had some great discussion about load testing. My slides are available to &lt;a href=&#034;http://static.codingthearchitecture.com/presentations/20090609-load-testing.pdf&#034;&gt;download&lt;/a&gt; (~4MB) and if anybody wants to continue the discussion, please feel free to use the &lt;a href=&#034;http://groups.google.com/group/codingthearchitecture&#034;&gt;Google Group&lt;/a&gt;.
&lt;/p&gt;

&lt;div align=&#034;center&#034;&gt;
&lt;a href=&#034;http://static.codingthearchitecture.com/presentations/20090609-load-testing.pdf&#034;&gt;&lt;img src=&#034;http://www.codingthearchitecture.com/images/20090609-load-testing-thumbnail.png&#034; alt=&#034;A developer&#039;s guide to load testing&#034; border=&#034;0&#034; /&gt;&lt;/a&gt;
&lt;br /&gt;
&lt;a href=&#034;http://static.codingthearchitecture.com/presentations/20090609-load-testing.pdf&#034;&gt;A developer&#039;s guide to load testing&lt;/a&gt; (PDF, ~4MB) 
&lt;/div&gt;

&lt;p&gt;
I&#039;ll post an update when the Skills Matter podcast/video is available to view online.
&lt;/p&gt;

        </description>
      
      
    
    
    
    <category>How do you deliver software architecture?</category>
    
    <comments>http://www.codingthearchitecture.com/2009/06/11/a_developers_guide_to_load_testing_slides.html#comments</comments>
    <guid isPermaLink="true">http://www.codingthearchitecture.com/2009/06/11/a_developers_guide_to_load_testing_slides.html</guid>
    <pubDate>Thu, 11 Jun 2009 18:40:49 GMT</pubDate>
  </item>
  
  <item>
    <title>A developer&#039;s guide to load testing</title>
    <link>http://www.codingthearchitecture.com/2009/06/02/a_developers_guide_to_load_testing.html</link>
    
      
        <description>
          &lt;p&gt;
Here are the details of the June 2009 &lt;a href=&#034;http://www.codingthearchitecture.com/pages/londonusergroup.html&#034;&gt;London User Group&lt;/a&gt;.
&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;b&gt;Title&lt;/b&gt; : A developer&#039;s guide to load testing&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Summary&lt;/b&gt; : Load testing is an often forgotten and seemingly difficult task that many people shy away from doing. It doesn&#039;t have to be this way though, with a basic level of load testing often enough to give you confidence that you&#039;ve satisfied your non-functional requirements around performance and scalability. This session will look at load testing a website from a developers perspective. We&#039;ll look at the differences between load testing, stress testing and soak testing along with a hands-on demonstration of an open source load testing tool that you can use to get started. If you&#039;re building websites in Java, .NET, PHP or indeed any other programming language, this session will show you how easy it is to load test your website.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Date&lt;/b&gt; : Tuesday, 9th June 2009&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Time&lt;/b&gt; : 18:30-20:00&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Location&lt;/b&gt; : Skills Matter, &lt;a href=&#034;http://maps.google.co.uk/maps?f=q&amp;hl=en&amp;q=1+Sekforde+Street+London&amp;sll=53.098145,-2.443696&amp;sspn=11.997343,29.619141&amp;ie=UTF8&amp;ll=51.523271,-0.104671&amp;spn=0.006061,0.014462&amp;z=16&amp;om=1&#034;&gt;1 Sekforde Street&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Format&lt;/b&gt; : Presentation and discussion, with further discussion in a local pub (The Crown).&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Cost&lt;/b&gt; : Free, but &lt;a href=&#034;http://skillsmatter.com/event/design-architecture/coding-the-architecture&#034;&gt;registration is required&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p align=&#034;center&#034;&gt;
&lt;a href=&#034;http://www.skillsmatter.com&#034;&gt;&lt;img src=&#034;http://www.codingthearchitecture.com/images/skillsmatter.gif&#034; alt=&#034;Skills Matter&#034; border=&#034;0&#034; /&gt;&lt;/a&gt;
&lt;br/&gt;
Many thanks to Skills Matter for sponsoring the user group. 
&lt;/p&gt;

&lt;p&gt;
p.s. this session is being run after the second day of our &lt;a href=&#034;http://www.codingthearchitecture.com/2009/04/30/software_architecture_training_in_london.html&#034;&gt;software architecture training at Skills Matter in London&lt;/a&gt; ... there are a couple of places left if you want to come along and learn about software architecture.
&lt;/p&gt;
        </description>
      
      
    
    
    
    <comments>http://www.codingthearchitecture.com/2009/06/02/a_developers_guide_to_load_testing.html#comments</comments>
    <guid isPermaLink="true">http://www.codingthearchitecture.com/2009/06/02/a_developers_guide_to_load_testing.html</guid>
    <pubDate>Tue, 02 Jun 2009 08:39:00 GMT</pubDate>
  </item>
  
  <item>
    <title>Interview from DevWeek 2009</title>
    <link>http://www.codingthearchitecture.com/2009/05/20/interview_from_devweek_2009.html</link>
    
      
        <description>
          &lt;p&gt;
&lt;a href=&#034;http://geekswithblogs.net/iupdateable/&#034;&gt;Eric Nelson&lt;/a&gt; from Microsoft interviewed me at the &lt;a href=&#034;http://www.codingthearchitecture.com/2008/12/01/speaking_at_devweek_2009.html&#034;&gt;DevWeek 2009 conference&lt;/a&gt; about our software architecture workshop, transitioning into an architecture role and whether architects should code. Take a look ... it&#039;s a nice overview of our approach to &lt;a href=&#034;http://www.codingthearchitecture.com/pages/book/role.html&#034;&gt;software architecture&lt;/a&gt; and to &lt;a href=&#034;http://www.codingthearchitecture.com/2009/04/30/software_architecture_training_in_london.html&#034;&gt;training software developers to be more architecturally aware&lt;/a&gt;.
&lt;/p&gt;

&lt;div align=&#034;center&#034;&gt;
&lt;object width=&#034;425&#034; height=&#034;344&#034;&gt;&lt;param name=&#034;movie&#034; value=&#034;http://www.youtube.com/v/RzU8A665iS4&amp;hl=en&amp;fs=1&#034;&gt;&lt;/param&gt;&lt;param name=&#034;allowFullScreen&#034; value=&#034;true&#034;&gt;&lt;/param&gt;&lt;param name=&#034;allowscriptaccess&#034; value=&#034;always&#034;&gt;&lt;/param&gt;&lt;embed src=&#034;http://www.youtube.com/v/RzU8A665iS4&amp;hl=en&amp;fs=1&#034; type=&#034;application/x-shockwave-flash&#034; allowscriptaccess=&#034;always&#034; allowfullscreen=&#034;true&#034; width=&#034;425&#034; height=&#034;344&#034;&gt;&lt;/embed&gt;&lt;/object&gt;
&lt;/div&gt;

&lt;p&gt;
There are some other interesting interviews from DevWeek 2009 on the &lt;a href=&#034;http://www.youtube.com/ukdpe&#034;&gt;YouTube channel&lt;/a&gt; too. Thanks Eric!
&lt;/p&gt;
        </description>
      
      
    
    
    
    <comments>http://www.codingthearchitecture.com/2009/05/20/interview_from_devweek_2009.html#comments</comments>
    <guid isPermaLink="true">http://www.codingthearchitecture.com/2009/05/20/interview_from_devweek_2009.html</guid>
    <pubDate>Wed, 20 May 2009 21:55:00 GMT</pubDate>
  </item>
  
  </channel>
</rss>

