<?xml version="1.0" encoding="UTF-8"?><!-- generator="wordpress.com" -->
<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/"
	>

<channel>
	<title>mvc &amp;laquo; WordPress.com Tag Feed</title>
	<link>http://en.wordpress.com/tag/mvc/</link>
	<description>Feed of posts on WordPress.com tagged "mvc"</description>
	<pubDate>Fri, 27 Nov 2009 09:40:45 +0000</pubDate>

	<generator>http://en.wordpress.com/tags/</generator>
	<language>en</language>

<item>
<title><![CDATA[todo FIX NAMESPACES]]></title>
<link>http://poisonbit.wordpress.com/2009/11/26/todo-fix-namespaces/</link>
<pubDate>Thu, 26 Nov 2009 00:19:54 +0000</pubDate>
<dc:creator>poisonbit</dc:creator>
<guid>http://poisonbit.wordpress.com/2009/11/26/todo-fix-namespaces/</guid>
<description><![CDATA[That is my today commit, after interesting readings. The rest of the day, I was working and then wit]]></description>
<content:encoded><![CDATA[That is my today commit, after interesting readings. The rest of the day, I was working and then wit]]></content:encoded>
</item>
<item>
<title><![CDATA[Senior Flash developer - West London - Upto £45k]]></title>
<link>http://calvinjnr.wordpress.com/2009/11/25/senior-flash-developer-west-london-upto-45k/</link>
<pubDate>Wed, 25 Nov 2009 12:39:05 +0000</pubDate>
<dc:creator>calvinjnr</dc:creator>
<guid>http://calvinjnr.wordpress.com/2009/11/25/senior-flash-developer-west-london-upto-45k/</guid>
<description><![CDATA[Digital agency in west London is looking for a talented flash developer to join their Digital team, ]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>Digital agency in west London is looking for a talented flash developer to join their Digital team, you’ll produce highly creative Flash on wide range of online projects.  Your work will demonstrate a balance of creativity, usability, and development expertise.  You’ll produce clean, well structured object orientated code in AS3, and regularly work with video and audio. You’ll spend your time working closely with user experience architects, designers and developers, and project managers, and will be a key member of the team.</p>
<p>&#160;</p>
<p>&#160;</p>
<p>Job  Responsibilities</p>
<p>• Take overall responsibility for Flash development for the agency.</p>
<p>• Produce high quality, creative, and technically robust Flash animations and applications</p>
<p>• Work on project teams alongside project managers, IAs, designers, and developers</p>
<p>• Lead and mentor junior and freelance Flash developers</p>
<p>• Constantly trial, shape and improve Flash methodologies and deliverables</p>
<p>• Keep abreast of latest Flash developments and communicate this to internal teams</p>
<p>&#160;</p>
<p>&#160;</p>
<p>Required skills</p>
<p>• You’ll have proven experience in Flash development, including animation, action-scripting, and video/audio production. Your specific Flash skills will include:</p>
<p>o  Expertise in AS3, AS2, and object orientated programming</p>
<p>o XML parsing and handling</p>
<p>o  Flash video creation compression and playback</p>
<p>o  JavaScript integration</p>
<p>o Flash accessibility</p>
<p>o Integrating 3rd party libraries and plug-ins</p>
<p>• You’ll have relevant design agency experience</p>
<p>• You’ll have a professional approach and good communication skills. Being organised, pro-active and efficient with excellent attention to detail is an essential aspect of this role.</p>
<p>• You’ll have experience of working with, and mentoring other Flash developers</p>
<p>• You’ll have experience in estimating timescales on Flash projects</p>
<p>&#160;</p>
<p>Key points:</p>
<p>1. Some kind of portfolio site, even if it&#8217;s a play area.</p>
<p>2. Recent work demonstrating an artistic eye, great technical ability &#38; design flair.</p>
<p>3. We don&#8217;t want see under-construction.</p>
<p>4. Variety of work is key.</p>
<p>5. They use flash for interaction, so a good user experience is important on your work.</p>
<p>&#160;</p>
<p>&#160;</p>
<p>Desirable skills</p>
<p>• Experience with PureMVC and/or FlashMVC frameworks</p>
<p>• Flash and/or Air experience</p>
<p>• Experience of Papervision, or another Flash 3d framework</p>
<p>Collating CV&#8217;s  now so if your interested send yours to: neil@majorplayers.co.uk</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Mi fán terem az MVC?]]></title>
<link>http://devjungle.wordpress.com/2009/11/23/mi-fan-terem-az-mvc/</link>
<pubDate>Mon, 23 Nov 2009 21:07:49 +0000</pubDate>
<dc:creator>michelbergert</dc:creator>
<guid>http://devjungle.wordpress.com/2009/11/23/mi-fan-terem-az-mvc/</guid>
<description><![CDATA[Néha ilyen elméletet tárgyaló cikkek is lesznek, már amennyire tőlem telik. Nem lesz tudományos szín]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>Néha ilyen elméletet tárgyaló cikkek is lesznek, már amennyire tőlem telik. Nem lesz tudományos színvonal, de azért érthető lesz.</p>
<p>Elsőnek az MVC-t veszem elő, ha már a Pong projekt kapcsán úgyis beleütköztem és használtam. Az MVC feloldása a <strong>Model-View-Control</strong>. Ez egy tervezési minta, aminek a lényege, hogy három elkülönülő részre bontjuk a programunkat. Modellre, a megjelenítőre és a vezérlőre. Ezen tervezési minta használatának több előnye is van. Az egyes részek fejlesztése teljesen elkülöníthető, csak az interfészek ismerete szükséges. Egy modellhez több egymástól független megjelenítő és vezérlő is kapcsolható és ezek akár különbözhetnek is (pl. konzolos vagy grafikus megjelenítés).</p>
<p>A <strong>modell </strong>a nevéből adódóan a modellt tartalmazza. Ez a program &#8220;lényegi&#8221; része, ide pakoljuk bele az üzleti logikát, azaz itt kap értelmet a puszta adat. Az adatokat sokszor adatbázisban tároljuk, az adatelérés is a modellhez tartozik (az MVC nem különböztet meg külön adatelérési réteget). A Pong program esetében ez például a pályát és a rajta lévő egységeket menedzselő rész. Nyilvántartja, hogy mi hol van a pályán, mekkora a sebessége a labdának, vagy éppen azt számolja ki, hogy a labda a következő lépésnél visszapattanjon, vagy haladjon tovább egyenesen.</p>
<p>A <strong>view</strong>, azaz a megjelenítő az adatok megjelenítéséért felel. Nem kell semmit tudnia a modell működéséről, csak az adatokat kell elkérnie tőle. Innentől már mindent megold maga. A Pong esetében egy Canvas-ra rajzoljuk ki a pályát és a rajta lévő elemeket.</p>
<p>A <strong>control</strong>, azaz a vezérlő egység interakciót biztosít a felhasználó számára. Jellemzően eseményeket dolgoz fel és válaszol rájuk.</p>
<p>A három rész együttes működését az alábbi ábra mutatja:</p>
<p><a href="http://www.enode.com/x/markup/tutorial/mvc.html"><img class="aligncenter size-full wp-image-60" title="mvc" src="http://devjungle.wordpress.com/files/2009/11/mvc.gif" alt="" width="370" height="248" /></a>Beérkezik egy esemény, amit a vezérlő feldolgoz. Ezután értesíti a modellt és a megjelenítőt a változásokról. A modell elvégzi a saját feladatát, majd értesíti a megjelenítőt, s elküldi neki az új adatokat. A megjelenítő frissíti magát, majd minden kezdődik előröl, mikor egy másik esemény üt be.</p>
<p><strong>Fontos megjegyezni, hogy a view nem fér hozzá közvetlenül a modellhez, és fordítva.</strong> A kapcsolatot a controller tartja fenn.</p>
<p>A teljes elszaparálást nagyon nehéz fentartani, ez megmutatkozott a Pong fejlesztése közben is. Viszont érdemes törekedni rá, mert ha csorbul az egyes részek szuverenitása, utána nehezebb új megjelenítőt vagy vezérlőt csatlakoztatni a modellre.</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Naming Your Action Methods in ASP.Net MVC]]></title>
<link>http://andrewmyhre.wordpress.com/2009/11/24/naming-your-action-methods-in-asp-net-mvc/</link>
<pubDate>Mon, 23 Nov 2009 15:42:50 +0000</pubDate>
<dc:creator>andrewmyhre</dc:creator>
<guid>http://andrewmyhre.wordpress.com/2009/11/24/naming-your-action-methods-in-asp-net-mvc/</guid>
<description><![CDATA[Something that I always do now and might in fact be quite obvious to regular people but I&#8217;m qu]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>Something that I always do now and might in fact be quite obvious to regular people but I&#8217;m quite slow so it took me a little while to realise this was a good practise.</p>
<p>Let&#8217;s say I have a page for editing a blog post. I want the form to be at /BlogManagement/Edit/postId.</p>
<p>So I write my first action method:</p>
<p><!-- {\rtf1\ansi\ansicpg\lang1024\noproof1252\uc1 \deff0{\fonttbl{\f0\fnil\fcharset0\fprq1 Courier New;}}{\colortbl;??\red0\green0\blue0;\red255\green255\blue255;\red43\green145\blue175;\red163\green21\blue21;\red0\green0\blue255;}??\fs20 [\cf3 AcceptVerbs\cf0 (\cf3 HttpVerbs\cf0 .Get)]\par ??        [\cf3 Authorize\cf0 (Roles = \cf4 "administrator"\cf0 )]\par ??        \cf5 public\cf0  \cf3 ActionResult\cf0  Edit(\cf5 int\cf0  ID)} --></p>
<div style="font-family:Courier New;font-size:10pt;color:black;background:white;">[<span style="color:#2b91af;">Authorize</span>(Roles = <span style="color:#a31515;">"administrator"</span>)]
<p>&#160;</p>
<p style="margin:0;"><span style="color:blue;">public</span> <span style="color:#2b91af;">ActionResult</span> Edit(<span style="color:blue;">int</span> ID)</p>
</div>
<p>And here&#8217;s what the URL looks like in my browser:</p>
<p><a href="http://andrewmyhre.wordpress.com/files/2009/11/actionmethodnames_12.png"><img class="alignnone size-full wp-image-298" title="ActionMethodNames_1" src="http://andrewmyhre.wordpress.com/files/2009/11/actionmethodnames_12.png" alt="" width="337" height="30" /></a></p>
<p>Cool. Now I write the method for the edit form view to post to:</p>
<p><!-- {\rtf1\ansi\ansicpg\lang1024\noproof1252\uc1 \deff0{\fonttbl{\f0\fnil\fcharset0\fprq1 Courier New;}}{\colortbl;??\red0\green0\blue0;\red255\green255\blue255;\red0\green0\blue255;\red43\green145\blue175;}??\fs20         \cf3 public\cf0  \cf4 ActionResult\cf0  UpdateBlogPost(\cf4 FormCollection\cf0  formData)\par ??        \{\par ??            ...\par ??        \}} --></p>
<div style="font-family:Courier New;font-size:10pt;color:black;background:white;">
<p style="margin:0;"><span style="color:blue;">public</span> <span style="color:#2b91af;">ActionResult</span> UpdateBlogPost(<span style="color:#2b91af;">FormCollection</span> formData)</p>
<p style="margin:0;">{</p>
<p style="margin:0;">&#8230;</p>
<p style="margin:0;">}</p>
</div>
<p>This will work of course. But what happens if validation fails? We get send back to the edit form. But we don&#8217;t want to redirect, we&#8217;ll just return the appropriate view and viewdata. So what will the URL be now?</p>
<p><a href="http://andrewmyhre.wordpress.com/files/2009/11/actionmethodnames_22.png"><img class="alignnone size-full wp-image-299" title="ActionMethodNames_2" src="http://andrewmyhre.wordpress.com/files/2009/11/actionmethodnames_22.png" alt="" width="406" height="34" /></a></p>
<p>Oh dear. That&#8217;s no good at all. Now our visitors have this erroneous entry in their history. No, this will not do.</p>
<p>To tidy this up we&#8217;ll make use of method overloading and the AcceptVerbs action method attribute. Here&#8217;s the signature of the GET action method which displays the edit form view:</p>
<p><!-- {\rtf1\ansi\ansicpg\lang1024\noproof1252\uc1 \deff0{\fonttbl{\f0\fnil\fcharset0\fprq1 Courier New;}}{\colortbl;??\red0\green0\blue0;\red255\green255\blue255;\red43\green145\blue175;\red163\green21\blue21;\red0\green0\blue255;}??\fs20         [\cf3 AcceptVerbs\cf0 (\cf3 HttpVerbs\cf0 .Get)]\par ??        [\cf3 Authorize\cf0 (Roles = \cf4 "administrator"\cf0 )]\par ??        \cf5 public\cf0  \cf3 ActionResult\cf0  Edit(\cf5 int\cf0  ID)\par ??        \{} --></p>
<div style="font-family:Courier New;font-size:10pt;color:black;background:white;">
<p style="margin:0;">[<span style="color:#2b91af;">AcceptVerbs</span>(<span style="color:#2b91af;">HttpVerbs</span>.Get)]</p>
<p style="margin:0;">[<span style="color:#2b91af;">Authorize</span>(Roles = <span style="color:#a31515;">"administrator"</span>)]</p>
<p style="margin:0;"><span style="color:blue;">public</span> <span style="color:#2b91af;">ActionResult</span> Edit(<span style="color:blue;">int</span> ID)</p>
<p style="margin:0;">{</p>
</div>
<p>and here&#8217;s the signature of the POST action method that validates, updates and redirects:</p>
<p><!-- {\rtf1\ansi\ansicpg\lang1024\noproof1252\uc1 \deff0{\fonttbl{\f0\fnil\fcharset0\fprq1 Courier New;}}{\colortbl;??\red0\green0\blue0;\red255\green255\blue255;\red43\green145\blue175;\red0\green0\blue255;\red163\green21\blue21;}??\fs20         [\cf3 ValidateInput\cf0 (\cf4 false\cf0 )]\par ??        [\cf3 AcceptVerbs\cf0 (\cf3 HttpVerbs\cf0 .Post)]\par ??        [\cf3 Authorize\cf0 (Roles = \cf5 "administrator"\cf0 )]\par ??        \cf4 public\cf0  \cf3 ActionResult\cf0  Edit(\cf3 FormCollection\cf0  formData)\par ??        \{\par ??} --></p>
<div style="font-family:Courier New;font-size:10pt;color:black;background:white;">
<p style="margin:0;">[<span style="color:#2b91af;">ValidateInput</span>(<span style="color:blue;">false</span>)]</p>
<p style="margin:0;">[<span style="color:#2b91af;">AcceptVerbs</span>(<span style="color:#2b91af;">HttpVerbs</span>.Post)]</p>
<p style="margin:0;">[<span style="color:#2b91af;">Authorize</span>(Roles = <span style="color:#a31515;">"administrator"</span>)]</p>
<p style="margin:0;"><span style="color:blue;">public</span> <span style="color:#2b91af;">ActionResult</span> Edit(<span style="color:#2b91af;">FormCollection</span> formData)</p>
<p style="margin:0;">{</p>
</div>
<p>This works because the ASP.Net MVC routing engine understands method overloading and, providing you are using the AcceptVerbs attribute, it will route each request to the appropriate method.</p>
<p>Doing this will make sure that the URL in the browser stays the same during the whole process. Much neater, no?</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[PHP Framework - Siapa yang tercepat?]]></title>
<link>http://mul14.wordpress.com/2009/11/23/php-framework-siapa-yang-tercepat/</link>
<pubDate>Mon, 23 Nov 2009 11:05:25 +0000</pubDate>
<dc:creator>mul14</dc:creator>
<guid>http://mul14.wordpress.com/2009/11/23/php-framework-siapa-yang-tercepat/</guid>
<description><![CDATA[Kali ini saya membandingkan enam PHP Framework berbasis MVC (Model View Controller) yang populer. Ke]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p><img style="float:right;" src="http://d.yimg.com/gg/doophp/avatars/45ae52322e02e416e5d02221c5e31abdd9925032.png" alt="" /></p>
<p>Kali ini saya membandingkan enam PHP Framework berbasis MVC (Model View Controller) yang populer. Keenam framework itu adalah CakePHP, CodeIgniter, Kohana v2 dan v3, Yii, dan &#8220;new kid on the block&#8221; DooPHP. Semua menggunakan versi terbaru saat ini (2009-11-22) kecuali Yii. Berikut informasi detail mengenai versi yang di-test:<br />
- <a href="http://www.cakephp.org">Cake PHP</a> 1.2.5<br />
- <a href="http://www.codeigniter.com">Code Igniter</a> 1.7.2<br />
- <a href="http://www.kohanaphp.com">Kohana</a> 2.3.4<br />
- <a href="http://v3.kohanaphp.com">Kohana</a> 3.0.1.2<br />
- <a href="http://www.yiiframework.com">Yii</a> 1.0.10<br />
- <a href="http://www.doophp.com">Doo</a> 1.2</p>
<p>Mesin yang digunakan<br />
Acer Aspire 4520<br />
AMD Turion 64 X2 TL-58 1.9 GHz<br />
RAM 3 GiB</p>
<p>Software yang digunakan<br />
- Windows 7 Ultimate<br />
- <a href="http://httpd.apache.org">Apache</a> 2.2.12<br />
- <a href="http://id.php.net">PHP</a> 5.3</p>
<p>Hampir semua framework konfigurasi-nya tidak diubah sama sekali (kondisi default). Kecuali Cake PHP yang sudah dimatikan konfigurasi session, cache, database, log, dan debug.</p>
<p>Metode test yang digunakan mencetak tulisan &#8220;Hello World!&#8221; lalu langsung exit;.</p>
<p>Hasil yang didapat adalah nilai rata-rata dalam satuan rps (request per second). Berikut dari yang terlambat hingga yang tercepat:</p>
<blockquote><p>- CakePHP      ==&#62; 19.72 rps<br />
- CodeIgniter  ==&#62; 71.23 rps<br />
- Yii          ==&#62; 73.68 rps<br />
- Kohana v2    ==&#62; 76.31 rps<br />
- Kohana v3    ==&#62; 103.39 rps<br />
- Doo          ==&#62; 200.32 rps</p></blockquote>
<p>Terlihat Doo buatan negri tetangga adalah yang tercepat dalam test &#8220;Hello World!&#8221; ini.</p>
<p>Tapi dalam memilih suatu framework, bukan mana yang tercepat. Tapi yang paling nyaman anda gunakan sehingga mempersingkat waktu <em>developing</em> dan meningkatkan produktivitas anda.</p>
<p>Berikutnya akan ada tambahan dari PHP Framework berbasis MVC lainnya seperti <a href="http://www.symfony-project.org">Symfony</a>, <a href="http://framework.zend.com">Zend Framework</a>, dan <a href="http://adventure-php-framework.org">APF</a>, <a href="http://solarphp.com/">Solar Framework</a>. Dan agar lebih fair, semua session, cache, database, dll akan di-non aktifkan. &#8220;Hello World!&#8221; juga akan dicetak pada view, bukan pada controller lalu exit.</p>
<p>Nb: Konfigurasi module dan extension yang sedang berjalan pada Apache dan PHP tidak diikutsertakan dalam tulisan ini.</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[MVC och Avocado]]></title>
<link>http://mamzter.wordpress.com/2009/11/20/mvc-och-avocado/</link>
<pubDate>Fri, 20 Nov 2009 18:37:51 +0000</pubDate>
<dc:creator>mamzter</dc:creator>
<guid>http://mamzter.wordpress.com/2009/11/20/mvc-och-avocado/</guid>
<description><![CDATA[Idag har jag och Noah varit hos barnmorskorna i gamla stan, jag kom äntligen iväg på efterkontrollen]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>Idag har jag och Noah varit hos barnmorskorna i gamla stan, jag kom äntligen iväg på efterkontrollen&#8230; Fick tid i december för att sätta in en hormonspiral, ska bli skönt att slippa tänka på piller och så! Sen åkte vi hem och jag städade undan lite innan vi hämtade Wilmer. Sen har vi inte gjort så mycket, mer än att laga mat. Det blev tacos ikväll, när jag fixade maten passade jag på att ge Noah lite avocado. Han blev jätteförtjust! Kul att avocado föll honom i smaken, han har varit lite kräsen hittills&#8230;.</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Architecting Your Models by Matthew Weier O'Phinney]]></title>
<link>http://bleroutoolkit.wordpress.com/2009/11/20/architecting-your-models-by-matthew-weier-ophinney/</link>
<pubDate>Fri, 20 Nov 2009 16:09:32 +0000</pubDate>
<dc:creator>Szabolcs Sulik</dc:creator>
<guid>http://bleroutoolkit.wordpress.com/2009/11/20/architecting-your-models-by-matthew-weier-ophinney/</guid>
<description><![CDATA[]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p><!-- SlideShare error: doc is missing or has illegal characters /[^-_a-zA-Z0-9]/ --></p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[It is always easier than I thought]]></title>
<link>http://poisonbit.wordpress.com/2009/11/19/it-is-always-easier-than-i-thought/</link>
<pubDate>Thu, 19 Nov 2009 20:16:43 +0000</pubDate>
<dc:creator>poisonbit</dc:creator>
<guid>http://poisonbit.wordpress.com/2009/11/19/it-is-always-easier-than-i-thought/</guid>
<description><![CDATA[Praticing my favorite hobby, I think about a topic unknown to me: I want my application to work on d]]></description>
<content:encoded><![CDATA[Praticing my favorite hobby, I think about a topic unknown to me: I want my application to work on d]]></content:encoded>
</item>
<item>
<title><![CDATA[Nytt besök hos barnmorskan]]></title>
<link>http://livmodern.wordpress.com/2009/11/19/nytt-besok-hos-barnmorskan/</link>
<pubDate>Thu, 19 Nov 2009 19:33:35 +0000</pubDate>
<dc:creator>livmodern</dc:creator>
<guid>http://livmodern.wordpress.com/2009/11/19/nytt-besok-hos-barnmorskan/</guid>
<description><![CDATA[Mitt blodvärde var jättebra (136) och blodtrycket var ok (110/67), så det är inte det som gör mig yr]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>Mitt blodvärde var jättebra (136) och blodtrycket var ok (110/67), så det är inte det som gör mig yr och matt. Men jag ska bli duktigare på att äta frukost och mellanmål. Det är ju inte konstigt om man blir matt när man spyr på morgnarna.</p>
<p>På måndag ska jag lämna blodprov för att kolla sköldkörteln också. Det var för sent för att lämna blodprov när jag var där.</p>
<p>Dessutom fick jag lyssna på hjärtljud igen! Underbart. Det lilla hjärtat pickade så fint <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Handling Exceptions in ASP.Net MVC 1]]></title>
<link>http://andrewmyhre.wordpress.com/2009/11/20/handling-exceptions-in-asp-net-mvc-1/</link>
<pubDate>Thu, 19 Nov 2009 17:30:06 +0000</pubDate>
<dc:creator>andrewmyhre</dc:creator>
<guid>http://andrewmyhre.wordpress.com/2009/11/20/handling-exceptions-in-asp-net-mvc-1/</guid>
<description><![CDATA[Here&#8217;s a handy way to handle uncaught exceptions in ASP.Net MVC 1. Make a base controller with]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>Here&#8217;s a handy way to handle uncaught exceptions in ASP.Net MVC 1.</p>
<p>Make a base controller with the following code:</p>
<p><!-- {\rtf1\ansi\ansicpg\lang1024\noproof1252\uc1 \deff0{\fonttbl{\f0\fnil\fcharset0\fprq1 Courier New;}}{\colortbl;??\red0\green0\blue255;\red255\green255\blue255;\red0\green0\blue0;\red43\green145\blue175;\red163\green21\blue21;\red0\green128\blue0;}??\fs20 \cf1 public\cf0  \cf1 class\cf0  \cf4 BaseController\cf0  : \cf4 Controller\par ??\cf0     \{\par ??        \cf4 ILog\cf0  log = \cf4 LogManager\cf0 .GetLogger(\cf5 "BaseController"\cf0 );\par ??\par ??        \cf1 string\cf0  actionName = \cf5 ""\cf0 ;\par ??        \cf1 string\cf0  controllerName = \cf5 ""\cf0 ;\par ??\par ??        \cf1 protected\cf0  \cf1 override\cf0  \cf1 void\cf0  OnActionExecuting(\cf4 ActionExecutingContext\cf0  filterContext)\par ??        \{\par ??            \cf1 base\cf0 .OnActionExecuting(filterContext);\par ??            actionName = filterContext.ActionDescriptor.ActionName;\par ??            controllerName = filterContext.ActionDescriptor.ControllerDescriptor.ControllerName;\par ??        \}\par ??\par ??        \cf1 protected\cf0  \cf1 override\cf0  \cf1 void\cf0  OnException(\cf4 ExceptionContext\cf0  filterContext)\par ??        \{\par ??            log.Fatal(\cf5 "Unhandled Exception"\cf0 , filterContext.Exception);\par ??\par ??            \cf6 //Displays a friendly error, doesn't require HandleError\par ??\cf0             filterContext.ExceptionHandled = \cf1 true\cf0 ;\par ??            \cf1 this\cf0 .View(\cf5 "Error"\cf0 , \cf1 new\cf0  \cf4 HandleErrorInfo\cf0 (filterContext.Exception, controllerName, actionName)).ExecuteResult(\cf1 this\cf0 .ControllerContext);\par ??        \}\par ??    \}} --></p>
<div style="font-family:Courier New;font-size:10pt;color:black;background:white;">
<p style="margin:0;"><span style="color:blue;">public</span> <span style="color:blue;">class</span> <span style="color:#2b91af;">BaseController</span> : <span style="color:#2b91af;">Controller</span></p>
<p style="margin:0;">{</p>
<p style="margin:0;"><span style="color:#2b91af;">ILog</span> log = <span style="color:#2b91af;">LogManager</span>.GetLogger(<span style="color:#a31515;">&#8220;BaseController&#8221;</span>);</p>
<p style="margin:0;">
<p style="margin:0;"><span style="color:blue;">string</span> actionName = <span style="color:#a31515;">&#8220;&#8221;</span>;</p>
<p style="margin:0;"><span style="color:blue;">string</span> controllerName = <span style="color:#a31515;">&#8220;&#8221;</span>;</p>
<p style="margin:0;">
<p style="margin:0;"><span style="color:blue;">protected</span> <span style="color:blue;">override</span> <span style="color:blue;">void</span> OnActionExecuting(<span style="color:#2b91af;">ActionExecutingContext</span> filterContext)</p>
<p style="margin:0;">{</p>
<p style="margin:0;"><span style="color:blue;">base</span>.OnActionExecuting(filterContext);</p>
<p style="margin:0;">actionName = filterContext.ActionDescriptor.ActionName;</p>
<p style="margin:0;">controllerName = filterContext.ActionDescriptor.ControllerDescriptor.ControllerName;</p>
<p style="margin:0;">}</p>
<p style="margin:0;">
<p style="margin:0;"><span style="color:blue;">protected</span> <span style="color:blue;">override</span> <span style="color:blue;">void</span> OnException(<span style="color:#2b91af;">ExceptionContext</span> filterContext)</p>
<p style="margin:0;">{</p>
<p style="margin:0;">log.Fatal(<span style="color:#a31515;">&#8220;Unhandled Exception&#8221;</span>, filterContext.Exception);</p>
<p style="margin:0;">
<p style="margin:0;"><span style="color:green;">//Displays a friendly error, doesn&#8217;t require HandleError</span></p>
<p style="margin:0;">filterContext.ExceptionHandled = <span style="color:blue;">true</span>;</p>
<p style="margin:0;"><span style="color:blue;">this</span>.View(<span style="color:#a31515;">&#8220;Error&#8221;</span>, <span style="color:blue;">new</span> <span style="color:#2b91af;">HandleErrorInfo</span>(filterContext.Exception, controllerName, actionName)).ExecuteResult(<span style="color:blue;">this</span>.ControllerContext);</p>
<p style="margin:0;">}</p>
<p style="margin:0;">}</p>
</div>
<p>Then make your other controllers derive from this one and hey presto, friendly(er) error messages and better exception logging in your site.</p>
<p>Sources:</p>
<p><a href="http://geekswithblogs.net/SanjayU/archive/2009/11/09/error-handling-in-asp.net-mvc-1-part-2-of-2.aspx">http://geekswithblogs.net/SanjayU/archive/2009/11/09/error-handling-in-asp.net-mvc-1-part-2-of-2.aspx</a></p>
<p><a href="http://stackoverflow.com/questions/362514/asp-net-mvc-current-action">http://stackoverflow.com/questions/362514/asp-net-mvc-current-action</a></p>
<p>&#160;</p>
<p>&#160;</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Voyage vers MVC 2 et Entity Framework 2 : &eacute;tape 2 on quitte le port doucement&hellip;.]]></title>
<link>http://yoannr.wordpress.com/2009/11/19/voyage-vers-mvc-2-et-entity-framework-2-tape-2-on-quitte-le-port-doucement/</link>
<pubDate>Thu, 19 Nov 2009 09:15:07 +0000</pubDate>
<dc:creator>yoannr</dc:creator>
<guid>http://yoannr.wordpress.com/2009/11/19/voyage-vers-mvc-2-et-entity-framework-2-tape-2-on-quitte-le-port-doucement/</guid>
<description><![CDATA[Avant de se lancer dans des développements un peu trop compliqué, je voudrais savoir un peu comment ]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>Avant de se lancer dans des développements un peu trop compliqué, je voudrais savoir un peu comment marche la chose, au moins dans ses grandes lignes, et comment je vais pouvoir en tirer parti.</p>
<h2>Entity Framework</h2>
<p>&#160;</p>
<p>Le modele edmx ( il va falloir que je me renseigne sur les termes avant la fin, moi…) me génère mes objets tout seul. ca j’apprécie beaucoup. je me retrouve donc avec un objet comme suit ( en fait c’est beaucoup plus long, mais j’ai décidé de me retreindre à l’essentiel) :</p>
<p><em>[EdmEntityTypeAttribute(NamespaceName="Localisation", Name="Culture")]<br />
[Serializable()]<br />
[DataContractAttribute(IsReference=true)]<br />
public partial class Culture : EntityObject<br />
{<br />
    public global::System.Int32 Id {get; set;}<br />
    public global::System.String Language {get; set;}<br />
    public global::System.String Country {get; set;}<br />
}</em></p>
<p>Pour l’instant, je ne regarderais pas plus avant ce qu&#8217; il y a dedans.</p>
<p>Et je ne m’attarderais pas non plus sur toutes les fonctions possibles contenues le modele edmx, mais par contre je vais les utiliser dans un classe RepositoryCulture.</p>
<p><em>public class CultureRepository: ICultureRepository<br />
   { </em></p>
<p><em>       LocalisationContainer container ; </em></p>
<p><em>       public CultureRepository(string connectionstring)<br />
       {<br />
           container = new LocalisationContainer(connectionstring);<br />
       } </em></p>
<p><em>       // Query Methods<br />
       public IQueryable&#60;Culture&#62; FindAllCulture()<br />
       {<br />
           return  container.T_Culture;<br />
       }<br />
       public Culture FindCulture(int CultureId)<br />
       {<br />
           var culture=  from c in FindAllCulture()<br />
                          where c.Id == CultureId<br />
                           select c;<br />
           return culture.SingleOrDefault();<br />
       } </em></p>
<p><em>       // Insert/Delete<br />
       public void AddCulture(Culture c)<br />
       {<br />
           container.T_Culture.AddObject(c);<br />
           container.SaveChanges();<br />
       }<br />
       public void DeleteCulture(Culture c)<br />
       {<br />
           container.T_Culture.DeleteObject(c);<br />
           container.SaveChanges();<br />
       } </em></p>
<p><em>       // Persistence<br />
       public void Save()<br />
       {<br />
           container.SaveChanges();<br />
       }<br />
   }</em></p>
<p>Cette dernière va me permettre de manipuler mon edmx, de façon sereine. Mais cela veut donc dire que je vais utiliser une interface afin de me préserver d’un éventuel changement d’humeur de ma part ( je pourrais avoir envie d’essayer Nhibernate par exemple, plus tard…  grrr…)</p>
<p><em>public interface ICultureRepository<br />
    {<br />
    // Query Methods<br />
    IQueryable&#60;Culture&#62; FindAllCulture();<br />
    Culture FindCulture(int CultureId); </em></p>
<p><em>    // Insert/Delete<br />
    void AddCulture(Culture c);<br />
    void DeleteCulture(Culture c);<br />
    // Persistence<br />
    void Save(); </em></p>
<p><em>    }</em></p>
<p>&#160;</p>
<p>Je dispose donc maintenant d’une méthode conviviale pour jouer avec mes données de Culture. Passons au coté MVC…</p>
<h3>MVC</h3>
<h4>l’acces aux donnés</h4>
<p>De la même façon, que je suis parti sur un concept simple pour le coté Entity Framework, je ferais de même pour ma première approche de MVC.</p>
<p>La première chose que je veux faire, c’est de pouvoir accéder aux donnés facilement dans mon application MVC, je vais donc poursuivre le travail effectué plus avant, et généraliser ma façon d’accéder aux infos. Pour ce faire, je vais utilser un composant d’injection de dépendance / Inversion de Contrôle  nommé <a href="http://structuremap.sourceforge.net/Default.htm" target="_blank">StructureMap</a></p>
<p>Je ne susi réellement pas un expert de ce genre de composé, j ai donc repiqué beaucoup d’idée a un tutorial MVC de microsoft. Mais voilà ce que j’ai pu en tirer pour mon cas présent.</p>
<p>dans mon application_start , j’ai rajouté</p>
<blockquote><p><em>        BootStrapper.ConfigureStructureMap(); </em></p></blockquote>
<p><em>           ControllerBuilder.Current.SetControllerFactory(<br />
               new StructureMapControllerFactory()<br />
               );</em></p>
<p>Cela me permet d’initialiser le composant. la classe BootStrapper consiste en deux lignes :</p>
<p><em>public class BootStrapper<br />
   {<br />
       public static void ConfigureStructureMap()<br />
       {<br />
           StructureMapConfiguration.AddRegistry(new DBServiceRegistry()); <br />
           StructureMapConfiguration.AddRegistry(new StorefrontRegistry());<br />
       }<br />
   }</em></p>
<p>Et la classe DBServiceReigistry, va me permettre d’instancier ma conenction à la bonne base pour entity :</p>
<p><em>public class DBServiceRegistry : Registry<br />
    {<br />
        public string ConnectionString<br />
        {<br />
            get<br />
            {<br />
                if (WebConfigurationManager.ConnectionStrings["Application"]==null)<br />
                    throw new InvalidOperationException(&#8220;Conenction string Application cannot be null.&#8221;);<br />
                if (string.IsNullOrEmpty(WebConfigurationManager.ConnectionStrings["Application"].ToString()))<br />
                    throw new InvalidOperationException(&#8220;Connection string Application cannot be empty.&#8221;); </em></p>
<p><em>                return WebConfigurationManager.ConnectionStrings["Application"].ToString();<br />
            }<br />
        } </em></p>
<p><em>        protected override void configure()<br />
        { </em></p>
<p><em>            ForRequestedType&#60;System.Data.EntityClient.EntityConnection&#62;()<br />
                .TheDefaultIs(() =&#62; new System.Data.EntityClient.EntityConnection(ConnectionString))<br />
                .CacheBy(InstanceScope.Hybrid); </em></p>
<p><em>        }<br />
    }</em></p>
<p>tandis que StoreFrontRegistryx lui cataloguera, les différents repository que je peux avoir et instanciera la bonne classe.</p>
<p><em>public class StorefrontRegistry : Registry<br />
    {<br />
        protected override void configure()<br />
        { </em></p>
<p><em>            #region repository<br />
            ForRequestedType&#60;ICultureRepository&#62;()<br />
              .TheDefaultIsConcreteType&#60;CultureRepository&#62;(); </em></p>
<p><em>            ForRequestedType&#60;ILocalisationRepository&#62;()<br />
              .TheDefaultIsConcreteType&#60;LocalisationRepository&#62;();<br />
            #endregion<br />
        }<br />
    }</em></p>
<p>Pour l’instant, j’utilise une autre classe StructureMapControllerFactory, mais je n’ai pas encore pris le temps de changer quelque chose à l’intérieur, le besoin ne s’en est pas fait sentir tout du moins.</p>
<h4>les routes</h4>
<p>Pour mes routes je ne me suis pas trop embêté pour l’instant, et j ‘ai tapé dans le simple et efficace. J’ai codé en dur Localisation/Culture afin de faire un différence significative avec ce qui pourrait arrivé ensuite :</p>
<p>&#160;</p>
<p><em>public static void RegisterRoutes(RouteCollection routes)<br />
        {<br />
            routes.IgnoreRoute(&#8220;{resource}.axd/{*pathInfo}&#8221;); </em></p>
<p><em>            routes.MapRoute(<br />
                &#8220;home&#8221;,                                                  // Route name<br />
                &#8220;home/{controller}/{action}/{id}&#8221;,                       // URL with parameters<br />
                new { controller = &#8220;Home&#8221;, action = &#8220;Index&#8221;, id = &#8220;&#8221; }   // Parameter defaults<br />
            ); </em></p>
<p><em>            routes.MapRoute(<br />
               &#8220;localisation&#8221;,                                              // Route name<br />
               &#8220;localisation/culture/{action}/{id}&#8221;,                        // URL with parameters<br />
                new { controller = &#8220;Culture&#8221;, action = &#8220;Index&#8221;, id = &#8220;&#8221; }   // Parameter defaults<br />
           ); </em></p>
<p><em>        }</em></p>
<p>Par ailleurs avant d’aller plus loin , j ai installé un autre composant RouteDebug.dll qui me permet de debugger mes routes, je pense que tôt ou tard, j’en aurais besoin.</p>
<p>Pour ce faire, j’ai rajouter mais commenté pour le moment l’instruction suivante :</p>
<p>          <em>// ROUTES<br />
           RegisterRoutes(RouteTable.Routes);<br />
           //uncomment this line for route debugging<br />
           //RouteDebug.RouteDebugger.RewriteRoutesForTesting(RouteTable.Routes);</em></p>
<p>On peut voir dans ma route que j’instancie :</p>
<p><em>       new { controller = &#8220;Culture&#8221;, action = &#8220;Index&#8221;, id = &#8220;&#8221; }  </em></p>
<p>Ce faisant, j’instancie un contrôle nommé Culture.</p>
<h4>le controller</h4>
<p>Rien de plus simple que ce controller. Mais tout d’abord, faire attention à son vrai nom CultureController. C’est important afin que MVC ne se mélange pas les pinceaux.</p>
<p>Ensuite détaillons le controller :</p>
<p><span style="text-decoration:underline;">son constructeur :</span></p>
<p><em>#region constructor </em></p>
<p><em>       public CultureController(ICultureRepository repository)<br />
       {<br />
           _repository = repository;<br />
           if (_repository == null)<br />
               throw new Exception(&#8220;Repository cannot be null&#8221;);<br />
       } </em></p>
<p><em>       #endregion</em></p>
<p>Il prend en entrée un ICultureRepository  qui sera instancié par StructureMap avec la bonne classe.</p>
<p>et ensuite correspondant à l’ {action} de ma route :</p>
<p><em>      // GET: /Localisation/Culture/Index ou /Localisation/Culture<br />
        public ActionResult Index()<br />
        {<br />
            IQueryable&#60;Culture&#62; cultures = _repository.FindAllCulture();<br />
            return View(&#8220;Index&#8221;, cultures);<br />
        }</em></p>
<p>Suivant l’url /Localisation/Culture/Index ou /Localisation/Culture, j’appellerais le Controller Culture et j’effectuerais l’action Index, qui me renverra la vue Index.</p>
<p>La vue Index prend en parametre un IQueryable&#60;Cultures&#62;, que je vais chercher au moment ou j’en ai besoin.</p>
<p>Cela fonctionne de la même facon pour les autres actions, avec un petit détail à voir, à savoir la méthode utilisé pour appeler l’url qui permettra sur la même Url De procéder à plusieurs actions différentes :</p>
<p><em>public ActionResult Details(int id)<br />
public ActionResult Create()</em></p>
<p><em>[AcceptVerbs(HttpVerbs.Post)]<br />
public ActionResult Create(FormCollection collection)</em></p>
<p><em>[AcceptVerbs(HttpVerbs.Get)]<br />
public ActionResult Edit(int id)</em></p>
<p><em>[AcceptVerbs(HttpVerbs.Post)]<br />
public ActionResult Edit(int id, FormCollection collection)</em></p>
<p><em>[AcceptVerbs(HttpVerbs.Get)]<br />
public ActionResult Delete(int id)</em></p>
<p>Sur ce , il n’ y a plus qu’à créer les vues correspondantes</p>
<h4>les Views</h4>
<p>Personnellement, et pour le début, je ne me suis pas embêté, et j’ai pris l’assistant de visual studio pour les créer.  J’ai donc créé un répertoire Culture dans Views. Ceci est aussi important pour MVC.</p>
<p>Je pense qu il doit y avoir un moyen de changer ce paramètre par défaut , mais ce sera l’occasion de plus amples investigations.</p>
<p>Voilà ,c’est tout pour aujourd’hui. Bon c’est bien évidemment hyper débutant comme approche, mais c’Est ce que je suis, et je me disais que d’autres pourraient être intéressé par mon cheminement personnel, si jamais il y avait des amateurs de MVC et d’entity framework dans les parages!</p>
<p>La suite la semaine prochaine,</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Voyage vers MVC 2 et Entity Framework 2 :                &eacute;tape 1 on pr&eacute;pare le bateau et on  largue les amarres]]></title>
<link>http://yoannr.wordpress.com/2009/11/18/voyage-vers-mvc-2-et-entity-framework-2-tape-1-on-prpare-le-bateau-et-on-largue-les-amarres/</link>
<pubDate>Wed, 18 Nov 2009 15:23:22 +0000</pubDate>
<dc:creator>yoannr</dc:creator>
<guid>http://yoannr.wordpress.com/2009/11/18/voyage-vers-mvc-2-et-entity-framework-2-tape-1-on-prpare-le-bateau-et-on-largue-les-amarres/</guid>
<description><![CDATA[L’objectif que je me fixe dans les jours qui viennent est de réaliser une petite application de loca]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>L’objectif que je me fixe dans les jours qui viennent est de réaliser une petite application de localisation en ASP.net et MVC. Il s’agit pour moi surtout de me familiariser avec ces techniques, et peut être que je pourrais vous emmener avec moi sur un petit bout de chemin, qui sait?</p>
<p>Tout d’abord le but, je vais m’exprimer avec les mots que je connais a savoir ceux de l’univers webform: Avoir une librairie de contrôle qui accepteront un clé (localisationKey) et un langage. Cette clé possède une date de départ et une date de fin. Et associé à cette clé, je veux avoir un article (LocalisationItem) qui lui contiendra le texte a afficher en fonction du langage. Cela permettra de pouvoir aficher un texte en plusieurs langues et qui pourra changer aussi en fonction de la date.</p>
<p>Bref, rien de bien compliqué, surtout que j’ai déjà fait tout ca en webform. Il s’agit aussi pour moi, de voir l’effort à fournir pour transoposer vers le support MVC.net du travail déjà fait en webform.</p>
<p>Dernière petite précision, l’intérêt va être aussi d’utiliser Entity framework de façon à générer ma base de données à partir du modèle.</p>
<p>Les outils à ma disposition :</p>
<ul>
<li>Visual Studio 2010</li>
<li>Visual Studio 2005 expresse édition</li>
</ul>
<p>Tout d’abord mon premier schéma de données :</p>
<p><a href="http://yoannr.files.wordpress.com/2009/11/mvc1.gif"><img style="display:inline;border:0;" title="MVC1" src="http://yoannr.files.wordpress.com/2009/11/mvc1_thumb.gif?w=240&#038;h=105" border="0" alt="MVC1" width="240" height="105" /></a></p>
<p>Comme vous pouvez le constater, je pars du principe que je vais avoir des groupes qui contiendront des  groupes enfants, ou et des clés.</p>
<p>Et à chacune de ces clés, j’associe un item.</p>
<p>Lors de la création de mon schéma j’ai pris soin de spécifier pour chacun des id , la propriété StoreGeneratedPAttern=Identity. Cela me permet d’avoir un champ auto incrémenté du coté de ma base de données.</p>
<p>Du coté de ma solution, je m’oriente vers différents projets :</p>
<ul>
<li>site MVC</li>
<li>Data</li>
<li>Services</li>
<li>Test</li>
</ul>
<p>Tout ce ci n’est évidemment qu’une première approche, au fur et á mesure de l’avancée du projet j’affinerais un peu tout ca.</p>
<p>Voici le projet utilisé actuellement : <a href="http://dl.free.fr/bw9mru0KX" target="_blank">solution VS 2010</a></p>
<p>Suite dans l’étape 2&#8230;</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[jQuery i łobiektowe php]]></title>
<link>http://piotrnerc.wordpress.com/2009/11/18/jquery-i-lobiektowe-php/</link>
<pubDate>Wed, 18 Nov 2009 04:03:00 +0000</pubDate>
<dc:creator>piotrnerc</dc:creator>
<guid>http://piotrnerc.wordpress.com/2009/11/18/jquery-i-lobiektowe-php/</guid>
<description><![CDATA[Oł maj gad &#8211; takiej sieczki dawno nie miałem. Skaczę od przykładu do przykładu i w kod, który ]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>Oł maj gad &#8211; takiej sieczki dawno nie miałem. Skaczę od przykładu do przykładu i w kod, który poprawiam. Dobrze, że mam wsparcie bo inaczej to bym zginął w całym tym gąszczu MVC (trochę naciąganego ; ) ). Dziś prawdopodobnie dostanę robotę, która wybiegnie poza okres próbny &#8211; dlatego spinam się z niedokończonymi zadaniami, bo nie lubię zosta&#8230; o tym pisałem na prywatnym blogu ; )</p>
<p>Dobra &#8211; wracam do livesearch endżejnu.</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Java EE Got it Wrong]]></title>
<link>http://zerocredibility.wordpress.com/2009/11/17/java-ee-got-it-wrong/</link>
<pubDate>Tue, 17 Nov 2009 18:08:14 +0000</pubDate>
<dc:creator>Jeffrey Blattman</dc:creator>
<guid>http://zerocredibility.wordpress.com/2009/11/17/java-ee-got-it-wrong/</guid>
<description><![CDATA[After working on two large-scale, cross contains / platform, web application projects, I&#8217;ve co]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>After working on two large-scale, cross contains / platform, web application projects, I&#8217;ve come to the conclusion that Java EE is fatally flawed.</p>
<p>If someone asked you to state the most important, guiding principle of the Java language, what would you say? You would would probably say &#8220;write once, run anywhere.&#8221; Indeed, for Java SE this holds true most all of the time. In Java EE however, it is hopelessly broken. The reality is that every web container is slightly different in ways that force developers work around problems, avoid certain features, or even have different code paths. Different code paths in a language that was never designed for it.</p>
<p>Different aspects of Java EE have different levels of stability. JSP works almost the same across all containers. Things like JSF and Java Persistence (JPA) however are hopeless. My most recent experience is writing a web administration console using JSF for the <a href="https://opensso.dev.java.net/">OpenSSO</a> project. OpenSSO claims to support at at least 8 different web containers. Every container required JSF tweaking that ranged from annoying to just plain terrible. Needless to say I had egg on my face to some degree over the choice to use JSF. It was a no-brainer for me. JSF is the chosen MVC framework for Java EE. My mistake.</p>
<p>The only container where JSF &#8220;just worked&#8221; was Tomcat. Tomcat isn&#8217;t a Java EE container at all.Tomcat doesn&#8217;t include JSF or any of it&#8217;s dependencies. We might be on to something here. Let&#8217;s look at another example: Spring. Spring is essentially a lighter-weight, simpler replacement for Java EE. Why is Spring so popular? One reason is that it is an elegant design. But another, perhaps more important reasons is that no matter what container you are developing on, Spring is Spring. It&#8217;s the same JAR, the same code, the same implementation. It makes very few assumptions about the capabilities of the underlying container. Another example is Facelets, a light-weight JSP replacment. I use JSF+Facelets on the OpenSSO project, and it has been flawless (the Facelets part). Why? Because I include the Facelets JAR, it is not provided by the system.</p>
<p>What if Java EE had followed the same model? Java EE should have been nothing more than a plugin framework and some base services. Want to use JSF in your project? Just include it from a managed, networked Java EE module repository. Include the one, common implementation of JSF. Include the approved version for your level of Java EE. If you support Java EE 5, you get JSF version X, across all web containers.</p>
<p>&#160;</p>
<p>&#160;</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Create an Asp.Net MVC HtmlHelper for use in unit tests ]]></title>
<link>http://eliasbland.wordpress.com/2009/11/17/create-an-asp-mvc-htmlhelper-for-use-in-unit-tests/</link>
<pubDate>Tue, 17 Nov 2009 17:47:38 +0000</pubDate>
<dc:creator>Rupert Bates</dc:creator>
<guid>http://eliasbland.wordpress.com/2009/11/17/create-an-asp-mvc-htmlhelper-for-use-in-unit-tests/</guid>
<description><![CDATA[Here&#8217;s a utility factory class to create an HtmlHelper instance so that you can unit test exte]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>Here&#8217;s a utility factory class to create an HtmlHelper instance so that you can unit test extension methods written on it. It will take a controller and a model for methods which rely on those. I adapted it from <a title="link to original post" href="http://forums.asp.net/t/1355902.aspx" target="_blank">this post</a>, and changed it to work with Asp.Net version 1.0 and to accept a model.</p>
<pre class="brush: csharp;">

class HtmlHelperFactory
 {
 public static HtmlHelper CreateInstance(RouteData route, Controller controller)
 {
 return CreateInstance(route, controller, null);
 }
 public static HtmlHelper CreateInstance(RouteData route, Controller controller, object model)
 {
 HttpContextBase httpContext = new HttpContextDummy();

 var cc = new ControllerContext(httpContext, route, controller);
 var vd = new ViewDataDictionary(model);
 ViewContext vc = new ViewContext(cc, new ViewDummy(), vd, new TempDataDictionary());
 return new HtmlHelper(vc, new ViewDataContainerDummy(vd), new RouteCollection());
 }

 // Dummy classes needed to be able to create HtmlHelper

 private class HttpRequestDummy : HttpRequestBase
 {
 public override string ApplicationPath
 {
 get { return &#34;&#34;; }
 }

 public override string AppRelativeCurrentExecutionFilePath
 {
 // Any shorter string here gives exception:
 // index larger than length of string
 get { return &#34;~/&#34;; }
 }

 public override string PathInfo
 {
 get { return &#34;&#34;; }
 }
 }

 private class HttpResponseDummy : HttpResponseBase
 {
 public override string ApplyAppPathModifier(string virtualPath)
 {
 return virtualPath;
 }
 }

 private class HttpContextDummy : HttpContextBase
 {
 public override HttpRequestBase Request
 {
 get { return new HttpRequestDummy(); }
 }

 public override HttpResponseBase Response
 {
 get { return new HttpResponseDummy(); }
 }
 }

 private class ViewDummy : IView
 {
 public void Render(ViewContext viewContext, System.IO.TextWriter writer)
 {
 throw new NotImplementedException();
 }
 }

 private class ViewDataContainerDummy : IViewDataContainer
 {
 public ViewDataContainerDummy()
 {
 }

 public ViewDataContainerDummy(ViewDataDictionary dataDictionary)
 {
 _data = dataDictionary;
 }

 private ViewDataDictionary _data;
 public ViewDataDictionary ViewData
 {
 get { return _data; }
 set { _data = value; }
 }
 }
 }
</pre>
<p>&#160;</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Spring MVC Tutorial &ndash; Hibernate Integration]]></title>
<link>http://mhimu.wordpress.com/2009/11/16/spring-mvc-tutorial-hibernate-integration/</link>
<pubDate>Mon, 16 Nov 2009 08:44:00 +0000</pubDate>
<dc:creator>mhimu</dc:creator>
<guid>http://mhimu.wordpress.com/2009/11/16/spring-mvc-tutorial-hibernate-integration/</guid>
<description><![CDATA[After a long gap… For introduction to Spring MVC in particular, see Spring MVC Tutorial and Spring M]]></description>
<content:encoded><![CDATA[After a long gap… For introduction to Spring MVC in particular, see Spring MVC Tutorial and Spring M]]></content:encoded>
</item>
<item>
<title><![CDATA[Enumerating Madness]]></title>
<link>http://mypersonalfailures.wordpress.com/2009/11/14/enumerating-madness/</link>
<pubDate>Sat, 14 Nov 2009 22:12:59 +0000</pubDate>
<dc:creator>Andy Grant</dc:creator>
<guid>http://mypersonalfailures.wordpress.com/2009/11/14/enumerating-madness/</guid>
<description><![CDATA[We have a fairly typical comparison site where our customers can select various search criteria and ]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>We have a fairly typical comparison site where our customers can select various search criteria and get back ordered search results of 50 a page. There is an agreement in place with a third party to list their review scores of these products and a link to the reviews on their site. Obviously our product ID&#8217;s and their ID&#8217;s don&#8217;t match up so they regularly supply us with a (rather large) XML file containing information to match up our ID&#8217;s to a review score and a matching ID on their site. The XML file is de-serialized into a list and cached with a file dependency so that updating the XML file invalidates the cached list.</p>
<p><span style="background-color:#ffffff;">The problem was that rendering a page of 50 results was taking seconds. The view model contained a list of the 50 products to be displayed and a list of all the reviews. Whacking a profiler on revealed that the getter method for the Review.IdMatchUp property was being hit over 2 million times.</span></p>
<p>A look at the view showed a foreach loop that rendered the results. Here it is in a boiled down form with all the rendering removed.</p>
<pre>foreach (Product product in products)
{
Product inner = product;
Review review = reviews.Where(r =&#62; r.IdMatchUp == inner.Id).FirstOrDefault();
}</pre>
<p>Can you spot the obvious problem?</p>
<p>Quite simply for every single product on the page we will be enumerating through the review list in its entirety comparing ids. It&#8217;s also quite possible that there are no matching reviews for a product. The review list contains thousands of items.</p>
<p>How can we optimise this mess? Fortunately for us we can use a bit of LINQ on the controller to cut this right down.</p>
<pre>IDictionary reviewDictionary = (from id in products.Select(x =&#62; x.Id)
join review in reviews on id equals review.IdMatchUp
select review).ToDictionary(r=&#62;r.IdMatchUp, r=&#62;r);</pre>
<p>We have now efficiently produced a dictionary of reviews indexed on the product ID&#8217;s we&#8217;re going to display. Passing that dictionary to the view and attaching the profiler again we now saw the number of hits to the Review.IdMatchUp property drop from millions to just 150.</p>
<p>The moral of this story is that whilst LINQ makes it easy to write short and concise filtering and selection code where your intent is clear, you still need to give thought to how it will achieve your aims.</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Fisico y Logico ¿Son lo mismo?]]></title>
<link>http://simplementedotnet.wordpress.com/2009/11/14/fisico-y-logico-%c2%bfson-lo-mismo/</link>
<pubDate>Sat, 14 Nov 2009 14:22:15 +0000</pubDate>
<dc:creator>uhilari</dc:creator>
<guid>http://simplementedotnet.wordpress.com/2009/11/14/fisico-y-logico-%c2%bfson-lo-mismo/</guid>
<description><![CDATA[En todo sistema que sea de tamaño mediano a grande, es necesario tener una division de las responsab]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><div><a href="http://www.amazon.com/gp/product/1430210079?ie=UTF8&#38;tag=simplnet-20&#38;linkCode=as2&#38;camp=1789&#38;creative=9325&#38;creativeASIN=1430210079"><img class="alignleft size-full wp-image-16" title="PRO ASP.NET MVC" src="http://simplementedotnet.wordpress.com/files/2009/11/51ehghc6odl__sl160_.jpg" alt="PRO ASP.NET MVC" width="121" height="160" /></a><img style="border:none!important;margin:0!important;" src="http://www.assoc-amazon.com/e/ir?t=simplnet-20&#38;l=as2&#38;o=1&#38;a=1430210079" border="0" alt="" width="1" height="1" /></div>
<p>En todo sistema que sea de tamaño mediano a grande, es necesario tener una division de las responsabilidades, esto se puede lograr a traves de capas lógicas, que no necesariamente son capas fisicas.</p>
<p>¿La Diferencia?, En realidad no estoy muy seguro si estos sean los terminos correctos, pero yo los he denominado asi por que tuve un cliente que me hizo la siguiente pregunta: ¿Cuantas capas tiene el sistema? obviamente mi pregunta fue 4 capas: Interfaz de Usuario, Reglas de Negocio, Entidades, Acceso a Datos; pero luego de una revisión el llego a la conclusión de que solo teniamos 2 capas.</p>
<p>¿Cual fue la diferencia?, en realidad es simple, estas 4 capas en las que dividimos la aplicación cuando las compilamos para luego implantarlas, se quedo en el siguiente esquema: los ejecutables (cliente) y la Base de datos (servidor).</p>
<p>Entonces para el usuario, solo teniamos 2 capas y no 4 como le habiamos dicho, fue aca donde pense cual seria el término correcto para poder explicarle al usuario que habia una diferencia entre lo que nosotros habiamos programado y como se veia una vez implantado pero (seguro que esto ya lo saben) el usuario era un cabezota que no entendia lo que se le explicaba (en realidad hablaba en chino para él), asi que quedamos en que ambos conceptos eran diferentes y decidi llamarlos Lógico y Fisico.</p>
<p>El diseño Lógico es el esquema de como hacemos la programación por ejemplo crear capas que luego se convertiran en DLLs, para que contengan una gran responsabilidad del proyecto.</p>
<p>El diseño Fisico es el esquema de como se va a implementar esta solución es decir que archivos iran a la parte cliente y que archivos iran al servidor. A primera vista pareciera que siempre van a ser 2, es decir el Cliente y el Servidor, pero esto puede cambiarse, por ejemplo en una aplicación WEB (que a esto va el MVC), no interactuan 2 equipos en realidad deberian de interactuar minimo 3, el Cliente, el Servidor y la Base de Datos, ahora podriamos implementar la logica del negocio como un SOA a fin de poder reutilizar los componentes, entonces fisicamente tendriamos 4 capas, y asi sucesivamente.</p>
<p>A veces es una frustración ver como el usuario conceptualiza las cosas, pero esto nos debe dar una mejor perspectiva para explicarle algunos temas, ya que muchas veces hablamos en chino con el usuario.</p>
<p>    <img src="http://www.assoc-amazon.com/s/noscript?tag=simplnet-20" alt="" /></p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Some useful Terminology (acronyms)]]></title>
<link>http://indiandotnet.wordpress.com/2009/11/14/some-useful-terminology-acronyms/</link>
<pubDate>Sat, 14 Nov 2009 05:22:37 +0000</pubDate>
<dc:creator>indiandotnet</dc:creator>
<guid>http://indiandotnet.wordpress.com/2009/11/14/some-useful-terminology-acronyms/</guid>
<description><![CDATA[Hello friends, Cheers! Here I am with some useful terminology and these acronyms are generally used ]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>Hello friends,<br />
Cheers!<br />
Here I am with some useful terminology and these acronyms are generally used now days in broad way take a look.<br />
1) <strong>ESB </strong>: Enterprise Service Bus<br />
2) <strong>POX </strong>: Plain OLD XML<br />
3) <strong>REST</strong>: Representational State Transfer<br />
4) <strong>SOAP</strong>: Simple Object Access Protocol<br />
5) <strong>RIA </strong>: Rich Internet Application<br />
6) <strong>XML </strong>: Extensible Markup Language<br />
7) <strong>JASON</strong>: Java Script Object Notation<br />
 <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_cool.gif' alt='8)' class='wp-smiley' /> <strong>DOM </strong>: Document Object Modeling<br />
9) <strong>XAML </strong>: Extensible Application Markup Language<br />
10) <strong>LINQ </strong>: Language Integrated Query<br />
11) <strong>RSS</strong>: Really Simple Syndication<br />
12) <strong>WCF</strong>: Windows Communication Foundation<br />
13) <strong>WF</strong>: Windows Foundation<br />
14) <strong>WPF</strong>: Windows Presentation Foundation<br />
15) <strong>AJAX</strong>: Asynchronous Java script and XML<br />
16) <strong>XLST</strong>: Extensible Style Sheet Language Transformation<br />
17) <strong>INDIGO</strong>: Code name of Microsoft windows Communication foundation Technology<br />
18) <strong>OSLO</strong>: Code name of Microsoft Modeling Technology<br />
19) <strong>SOA</strong>: Service Oriented Architecture<br />
20) <strong>ORCAS</strong>: dot net 3.5 Version called ORCAS<br />
21) <strong>AVALON</strong>: code name of Microsoft Windows Presentation foundation Technology<br />
22) <strong>Azure</strong>: Microsoft new Operation system Related to Cloud computing<br />
23) <strong>Astoria </strong>: Code name of Ado.net Data services</p>
<p>I hope you people like it.<br />
Enjoy life with dot net.</p>
<p>Your host<br />
Rajat Jaiswal</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[ASP.Net MVC Html.BeginForm]]></title>
<link>http://mytechref.wordpress.com/2009/11/14/asp-net-mvc-html-beginform/</link>
<pubDate>Sat, 14 Nov 2009 04:55:59 +0000</pubDate>
<dc:creator>DKB</dc:creator>
<guid>http://mytechref.wordpress.com/2009/11/14/asp-net-mvc-html-beginform/</guid>
<description><![CDATA[namespace System.Web.Mvc.Html No params &lt;% Html.BeginForm(); %&gt; Action, Controller &lt;% Html.]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>namespace System.Web.Mvc.Html</p>
<p>No params</p>
<blockquote><p>&#60;% Html.BeginForm(); %&#62;</p></blockquote>
<p>Action, Controller</p>
<blockquote><p>&#60;% Html.BeginForm(&#8220;MyAction&#8221;, &#8220;MyController&#8221;); %&#62;</p></blockquote>
<p>Action, Controller, Form Method</p>
<blockquote><p>&#60;% Html.BeginForm(&#8220;MyAction&#8221;, &#8220;MyController&#8221;, FormMethod.Post); %&#62;</p></blockquote>
<p>Action, Controller, Form Method, Html Attributes</p>
<blockquote><p>&#60;% Html.BeginForm(&#8220;MyAction&#8221;, &#8220;MyController&#8221;, FormMethod.Post, new Dictionary&#60;string, object&#62; { { &#8220;class&#8221;, &#8220;MyCssClass&#8221; } }); %&#62;</p></blockquote>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Zend Framework + PHP]]></title>
<link>http://junioalbino.wordpress.com/2009/11/14/zend-framework-php/</link>
<pubDate>Sat, 14 Nov 2009 04:19:17 +0000</pubDate>
<dc:creator>Junio</dc:creator>
<guid>http://junioalbino.wordpress.com/2009/11/14/zend-framework-php/</guid>
<description><![CDATA[Estou fazendo pesquisa sobre Zend Framework + PHP A seguir posto links relevantes: Comunidades e sit]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p><img class="alignnone" title="Zend Studio" src="http://www.rapee3.com/programs/images/592009-e62e6.jpg" alt="" width="198" height="252" /></p>
<h4>Estou fazendo pesquisa sobre Zend Framework + PHP</h4>
<p>A seguir posto links relevantes:</p>
<h4><strong>Comunidades e sites sobre PHP:</strong></h4>
<ul>
<li><a title="PHP Brasil" href="http://phpbrasil.com/">PHP Brasil</a></li>
<li><a title="PHP Mania" href="http://www.phpmania.org/index.php">PHP Mania</a></li>
<li><a title="Revista PHP" href="http://www.revistaphp.com.br/">Revista PHP</a></li>
<li><a title="Site oficial do PHP" href="http://php.net/index.php">Site oficial do PHP</a></li>
</ul>
<h4><strong>Comunidades e sites sobre Zend:</strong></h4>
<ul>
<li><a href="http://www.zfbrasil.com/">Zend Brasil</a></li>
<li><a title="Site oficial do Zend" href="http://www.zend.com/en/">Site oficial do Zend</a></li>
<li><a title="IDE Zend Studio" href="http://www.zend.com/en/products/studio/">IDE Zend Studio</a></li>
<li><a title="Zend Framework" href="http://framework.zend.com/">Zend Framework</a></li>
<li><a title="Instalando o Zend no Windows" href="http://framework.zend.com/wiki/display/ZFDEV/Installing+Zend+Framework+on+Windows">Instalando o Zend no Windows</a></li>
</ul>
<h4>Livros sobre Zend:</h4>
<ul>
<li><a title="Zend Framework em Ação" href="http://www.linuxmall.com.br/index.php?product_id=6275">Zend Frameword em Ação</a></li>
<li><a title="Livro Zend Frameword" href="http://novatec.com.br/livros/zend/">Zend Frameword: Desenvolvimento em PHP Orientado a Objetos com MVC</a></li>
<li><a title="Livro Guia de Programação com Zend Framework" href="http://www.linuxmall.com.br/index.php?product_id=5822">Guia de Programação com Zend Framework</a></li>
</ul>
<h4>Apostilas sobre PHP:</h4>
<ul>
<li><a title="Apostilas  de PHP" href="http://cid-b8bb8a2cfc310d6e.skydrive.live.com/self.aspx/Sistemas/Apostilas%20de%20PHP.zip">Apostilas em .zip</a></li>
</ul>
<h4>Artigos sobre Zend:</h4>
<ul>
<li><a title="Frameworks no PHP" href="http://imasters.uol.com.br/artigo/13718/php/frameworks_no_php_o_que_quando_por_que_e_qual/">Frameworks no PHP O que, quando, por que e qual?</a></li>
<li><a title="Zend Framework" href="http://imasters.uol.com.br/artigo/4609/zend/zend_framework_uma_visao_geral/">Zend Framework &#8211; Uma visão geral</a></li>
<li><a title="Flex e PHP com Zend" href="http://imasters.uol.com.br/artigo/14258/zend/flex_e_php_com_zend_framework/">Flex e PHP com Zend</a></li>
</ul>
<p>Lembrando que para desenvolver Zend você deve conhecer de programação, orientação a objetos e php.</p>
<p><img style="border:medium none;position:absolute;z-index:2147483647;opacity:0.6;display:none;" src="image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAADsElEQVR4nK2VTW9VVRSGn33OPgWpYLARbKWhQlCHTogoSkjEkQwclEQcNJEwlfgD/AM6NBo1xjhx5LyJ0cYEDHGkJqhtBGKUpm3SFii3vb2956wPB/t+9raEgSs52fuus89613rftdcNH8/c9q9++oe/Vzb5P+3McyNcfm2CcPj9af9w6gwjTwzvethx3Bx3x8xwd1wNM8dMcTNUHTfFLPnX6nVmZpeIYwf3cWD/PhbrvlPkblAzVFurKS6GmmGqqComaS+qmBoTI0Ncu3mXuGvWnrJ+ZSxweDgnkHf8ndVTdbiT3M7cQp2Z31dRTecHAfqydp4ejhwazh6Zezfnu98E1WIQwB3crEuJ2Y45PBTAQUVR9X4At66AppoEVO1Q8sgAOKJJjw6Am6OquDmvHskZ3R87gW+vlHz98zpmiqphkkRVbQtsfPTOC30lJKFbFTgp83bWh7Zx/uX1B6w3hI3NkkZTqEpBRDBRzG2AQHcwcYwEkOGkTERREbLQ/8HxJwuW7zdYrzfZ2iopy4qqEspKaDYravVm33k1R91Q69FA1VBRzFIVvXbx5AgXT44A8MWP81yfu0utIR2aVK3vfCnGrcUNxp8a7gKYKiLCvY2SUvo/aNtnM3e49ucK9S3p0aDdaT0UAVsKi2tVi6IWwNL9JvdqTdihaz79/l+u/rHMxmaJVMLkS2OoKKLWacdeE3IsSxctc2D5Qcl6vUlVVgNt+fkPPcFFmTw1xruvT7SCd7nuVhDQvECzJH90h0azRKoKFRkAmP5lKTWAGRdefoZL554FQNUxB92WvYeA5UN4PtSqwB2phKqsqMpBgAunRhFR3j49zuU3jnX8k6fHEQKXzh1jbmGDuYU6s4t1rt6socUeLLZHhYO2AHSHmzt19ihTZ48O8Hzl/AmunD/BjTvrvPfNX3hWsNpwJCvwYm+ngug4UilSCSq6k8YPtxDwfA+WRawIWFbgscDiULcCEaWqBFOlrLazurupOSHLqGnEKJAY8TwBEHumqUirAjNm52vEPPRV4p01XXMPAQhUBjcWm9QZwijwokgAeYHlHYA06KR1cT6ZvoV56pDUJQEjw0KeaMgj1hPEY4vz2A4eW0/e1qA7KtQdsxTYAG0H3iG4xyK1Y+xm7XmEPOJZDiENzLi2WZHngeOjj2Pe+sMg4GRYyLAsx7ME4FnsyTD9pr0PEc8zPGRAwKXBkYOPEd96cZRvf11g9MDe7e3R4Z4Q+vyEnn3P4t0XzK/W+ODN5/kPfRLewAJVEQ0AAAAASUVORK5CYII%3D" alt="" width="24" height="24" /></p>
<p><img style="border:medium none;position:absolute;z-index:2147483647;opacity:0.6;display:none;" src="image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAADsElEQVR4nK2VTW9VVRSGn33OPgWpYLARbKWhQlCHTogoSkjEkQwclEQcNJEwlfgD/AM6NBo1xjhx5LyJ0cYEDHGkJqhtBGKUpm3SFii3vb2956wPB/t+9raEgSs52fuus89613rftdcNH8/c9q9++oe/Vzb5P+3McyNcfm2CcPj9af9w6gwjTwzvethx3Bx3x8xwd1wNM8dMcTNUHTfFLPnX6nVmZpeIYwf3cWD/PhbrvlPkblAzVFurKS6GmmGqqComaS+qmBoTI0Ncu3mXuGvWnrJ+ZSxweDgnkHf8ndVTdbiT3M7cQp2Z31dRTecHAfqydp4ejhwazh6Zezfnu98E1WIQwB3crEuJ2Y45PBTAQUVR9X4At66AppoEVO1Q8sgAOKJJjw6Am6OquDmvHskZ3R87gW+vlHz98zpmiqphkkRVbQtsfPTOC30lJKFbFTgp83bWh7Zx/uX1B6w3hI3NkkZTqEpBRDBRzG2AQHcwcYwEkOGkTERREbLQ/8HxJwuW7zdYrzfZ2iopy4qqEspKaDYravVm33k1R91Q69FA1VBRzFIVvXbx5AgXT44A8MWP81yfu0utIR2aVK3vfCnGrcUNxp8a7gKYKiLCvY2SUvo/aNtnM3e49ucK9S3p0aDdaT0UAVsKi2tVi6IWwNL9JvdqTdihaz79/l+u/rHMxmaJVMLkS2OoKKLWacdeE3IsSxctc2D5Qcl6vUlVVgNt+fkPPcFFmTw1xruvT7SCd7nuVhDQvECzJH90h0azRKoKFRkAmP5lKTWAGRdefoZL554FQNUxB92WvYeA5UN4PtSqwB2phKqsqMpBgAunRhFR3j49zuU3jnX8k6fHEQKXzh1jbmGDuYU6s4t1rt6socUeLLZHhYO2AHSHmzt19ihTZ48O8Hzl/AmunD/BjTvrvPfNX3hWsNpwJCvwYm+ngug4UilSCSq6k8YPtxDwfA+WRawIWFbgscDiULcCEaWqBFOlrLazurupOSHLqGnEKJAY8TwBEHumqUirAjNm52vEPPRV4p01XXMPAQhUBjcWm9QZwijwokgAeYHlHYA06KR1cT6ZvoV56pDUJQEjw0KeaMgj1hPEY4vz2A4eW0/e1qA7KtQdsxTYAG0H3iG4xyK1Y+xm7XmEPOJZDiENzLi2WZHngeOjj2Pe+sMg4GRYyLAsx7ME4FnsyTD9pr0PEc8zPGRAwKXBkYOPEd96cZRvf11g9MDe7e3R4Z4Q+vyEnn3P4t0XzK/W+ODN5/kPfRLewAJVEQ0AAAAASUVORK5CYII%3D" alt="" width="24" height="24" /></p>
</div>]]></content:encoded>
</item>

</channel>
</rss>
