<?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>Project Trackr Development Log &#187; System Architecture</title>
	<atom:link href="http://logbook.projecttrackr.com/category/system-architecture/feed/" rel="self" type="application/rss+xml" />
	<link>http://logbook.projecttrackr.com</link>
	<description>Building a better web based project management solution</description>
	<lastBuildDate>Mon, 15 Mar 2010 15:33:37 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>MVC Architecture</title>
		<link>http://logbook.projecttrackr.com/system-architecture/mvc-architecture/</link>
		<comments>http://logbook.projecttrackr.com/system-architecture/mvc-architecture/#comments</comments>
		<pubDate>Sat, 01 Aug 2009 21:17:53 +0000</pubDate>
		<dc:creator>Damian Jakusz-Gostomski</dc:creator>
				<category><![CDATA[System Architecture]]></category>

		<guid isPermaLink="false">http://logbook.projecttrackr.com/?p=137</guid>
		<description><![CDATA[


As I&#8217;ve mentioned previously, I will be using the MVC design pattern as implemented by CodeIgniter. The key principle behind the Model – View – Controller design pattern is the separation of code from the presentation.
The diagram on the right shows the application flow, which starts with a user request, such as loading a page. [...]]]></description>
			<content:encoded><![CDATA[<div class="wp-caption alignright" style="width: 314px"><img class=" " src="http://logbook.projecttrackr.com/wp-content/uploads/2009/08/080109_2117_MVCArchitec1.png" alt="" width="304" height="373" align="right" /><p class="wp-caption-text">Image taken from Blufusion.net</p></div>
<p>As I&#8217;ve mentioned previously, I will be using the MVC design pattern as implemented by CodeIgniter. The key principle behind the Model – View – Controller design pattern is the separation of code from the presentation.</p>
<p>The diagram on the right shows the application flow, which starts with a user request, such as loading a page. This loads the controller, which builds the page on the fly with the help of models, libraries and helpers before sending it to the browser as rendered HTML. Lets take a look at each parts role:</p>
<h3>Model</h3>
<p>These are responsible for data manipulation, most commonly as a result of interacting with a database. They can also read/write data to/from files, feeds, other web services etc. My using a models, it keeps all data processing such as My SQL in one place, making it easier to maintain.</p>
<h3>View</h3>
<p>This is what the end user sees. It contains HTML, CSS and JavaScript. These are static files with dynamic data passed in. The only processing and logic you should find here is presentational, such as for loops, basic if/else conditions etc.</p>
<h3>Controller</h3>
<p>This is where each request starts. It gets any dynamic data it needs from models (and libraries and helpers) before passing it into the view files. Business logic, data validation etc can be found here.</p>
<h3>Libraries and Helpers</h3>
<p>These are classes and collections of functions which can be used throughout the application. They simplify repetitive tasks such as form validation, image manipulation, file handling etc. These are generally called from the controller, although you can have view helpers, such as CodeIgniters HTML helper.</p>
]]></content:encoded>
			<wfw:commentRss>http://logbook.projecttrackr.com/system-architecture/mvc-architecture/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
