<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="https://www.dotnetzone.gr:443/cs/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>.NET Framework</title><link>https://www.dotnetzone.gr:443/cs/forums/14/ShowForum.aspx</link><description>Θέματα για threading, remoting, reflection, exception handling, security, regex κλπ.</description><dc:language>el</dc:language><generator>CommunityServer 2.1 SP3 (Build: 20423.1)</generator><item><title>O Controller / Dispatcher. View Management &amp; Reusability.</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/15355.aspx</link><pubDate>Tue, 01 Aug 2006 05:15:20 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:15355</guid><dc:creator>anjelinio</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/15355.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=14&amp;PostID=15355</wfw:commentRss><description>&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;Πόσο λατρεύω την άδεια ! Έχω
τόσο χρόνο, που δεν έφυγα τελικά, και να ‘μαι εδώ να γράφω &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;sequel&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;span&gt;στο χτεσινό &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;post&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;. Είμαι τόσο καμένος;&amp;nbsp;&lt;/span&gt;



&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;Είχαμε μείνει στο σημείο χτες,
που πλέον έχουμε κάνει &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;map&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;span&gt;όλα τα .&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;aspx&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;span&gt;αρχεία στο μικρό μας &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;mvc&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;, και με το κάθε &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;request&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;span&gt;τα «γεμίζει» με το
απαραίτητο &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;data&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;span&gt;αντικείμενο που χρειάζονται. Μια μικρή αλλαγή στη διατύπωση θα μπορούσε
όμως να πεί ότι κάναμε &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;map&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;span&gt;σε όλα τα .&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;aspx&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;span&gt;αρχεία της εφαρμογής μας, στο ίδιο,
μοναδικό &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;data&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;source&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; ! Είπαμε, &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;reusability, &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;αλλά αυτό
παραπάει &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;:D&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;



&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;Στο σημερινό επεισόδιο κώδικα,
πρόσθεσα στο &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;xml&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;span&gt;της αλυσίδας την πληροφορία που κάνει &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;map&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;span&gt;τα &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;views&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;span&gt;με &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;urls&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;, και τα
αντίστοιχα &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;data&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;sources&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;span&gt;για το κάθε &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;view&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;. Τώρα πλέον, ο &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;Dispatcher&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;span&gt;διαβάζει το &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;request&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;url&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;, και το
αντιστοιχεί με το κατάλληλο &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;view&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;span&gt;που είναι ορισμένο στην &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;xml&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;. Από ‘κεί θα
βρεί το &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;path&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;span&gt;της πραγματικής σελίδας η οποία θα εξυπηρετήσει το &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;request&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;, καθώς και το
&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;data&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;source&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;span&gt;αντικείμενο για το &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;view&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;. &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;



&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;br&gt;Ας δούμε τη νέα &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;xml&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;span&gt;που περιέχει όλα
αυτά τα ωραία … &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;&lt;o:p&gt;&lt;br&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;&amp;lt;?&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: maroon;"&gt;xml&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt; &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: red;"&gt;version&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;=&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;"&lt;span style="color: blue;"&gt;1.0&lt;/span&gt;"&lt;span style="color: blue;"&gt; &lt;/span&gt;&lt;span style="color: red;"&gt;encoding&lt;/span&gt;&lt;span style="color: blue;"&gt;=&lt;/span&gt;"&lt;span style="color: blue;"&gt;utf-8&lt;/span&gt;"&lt;span style="color: blue;"&gt; ?&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: maroon;"&gt;simple-view-chain&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;&lt;span style=""&gt;&amp;nbsp; &lt;/span&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: maroon;"&gt;filters&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;&amp;gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: maroon;"&gt;authorization-filter&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;/&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: maroon;"&gt;view-dispatcher-filter&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: maroon;"&gt;view-set&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: maroon;"&gt;view&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt; &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: red;"&gt;id&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;=&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;"&lt;span style="color: blue;"&gt;/MVC/CustomersList.aspx&lt;/span&gt;"&lt;span style="color: blue;"&gt;
&lt;/span&gt;&lt;span style="color: red;"&gt;url&lt;/span&gt;&lt;span style="color: blue;"&gt;=&lt;/span&gt;"&lt;span style="color: blue;"&gt;/MVC/CustomersList.aspx&lt;/span&gt;"&lt;span style="color: blue;"&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: maroon;"&gt;datasource-type&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt; &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: red;"&gt;class&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;=&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;"&lt;span style="color: blue;"&gt;Controller.DataSources.CustomerEditBean&lt;/span&gt;"&lt;span style="color: blue;"&gt; &lt;/span&gt;&lt;span style="color: red;"&gt;assembly&lt;/span&gt;&lt;span style="color: blue;"&gt;=&lt;/span&gt;"&lt;span style="color: blue;"&gt;Controller&lt;/span&gt;"&lt;span style="color: blue;"&gt; &amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: maroon;"&gt;parameters&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&amp;lt;!--&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: green;"&gt; add an http-param to auto-set the UserID
property of the datasource instance &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;--&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: maroon;"&gt;http-param&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt; &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: red;"&gt;id&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;=&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;"&lt;span style="color: blue;"&gt;CustomerID&lt;/span&gt;"&lt;span style="color: blue;"&gt; &lt;/span&gt;&lt;span style="color: red;"&gt;auto-set&lt;/span&gt;&lt;span style="color: blue;"&gt;=&lt;/span&gt;"&lt;span style="color: blue;"&gt;true&lt;/span&gt;"&lt;span style="color: blue;"&gt;/&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&amp;lt;/&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: maroon;"&gt;parameters&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&amp;lt;/&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: maroon;"&gt;datasource-type&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&amp;lt;/&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: maroon;"&gt;view&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: maroon;"&gt;view&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt; &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: red;"&gt;id&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;=&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;"&lt;span style="color: blue;"&gt;/MVC/UsersList.aspx&lt;/span&gt;"&lt;span style="color: blue;"&gt; &lt;/span&gt;&lt;span style="color: red;"&gt;url&lt;/span&gt;&lt;span style="color: blue;"&gt;=&lt;/span&gt;"&lt;span style="color: blue;"&gt;/MVC/CustomersList.aspx&lt;/span&gt;"&lt;span style="color: blue;"&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: maroon;"&gt;datasource-type&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt; &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: red;"&gt;class&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;=&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;"&lt;span style="color: blue;"&gt;Controller.DataSources.UserEditBean&lt;/span&gt;"&lt;span style="color: blue;"&gt; &lt;/span&gt;&lt;span style="color: red;"&gt;assembly&lt;/span&gt;&lt;span style="color: blue;"&gt;=&lt;/span&gt;"&lt;span style="color: blue;"&gt;Controller&lt;/span&gt;"&lt;span style="color: blue;"&gt; &amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: maroon;"&gt;parameters&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&amp;lt;!--&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: green;"&gt; add an http-param to auto-set the UserID
property of the datasource instance &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;--&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: maroon;"&gt;http-param&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt; &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: red;"&gt;id&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;=&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;"&lt;span style="color: blue;"&gt;UserID&lt;/span&gt;"&lt;span style="color: blue;"&gt; &lt;/span&gt;&lt;span style="color: red;"&gt;auto-set&lt;/span&gt;&lt;span style="color: blue;"&gt;=&lt;/span&gt;"&lt;span style="color: blue;"&gt;true&lt;/span&gt;"&lt;span style="color: blue;"&gt;/&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&amp;lt;/&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: maroon;"&gt;parameters&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&amp;lt;/&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: maroon;"&gt;datasource-type&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&amp;lt;/&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: maroon;"&gt;view&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: maroon;"&gt;view&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt; &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: red;"&gt;id&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;=&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;"&lt;span style="color: blue;"&gt;/MVC/CustomerEdit.aspx&lt;/span&gt;"&lt;span style="color: blue;"&gt;
&lt;/span&gt;&lt;span style="color: red;"&gt;url&lt;/span&gt;&lt;span style="color: blue;"&gt;=&lt;/span&gt;"&lt;span style="color: blue;"&gt;/MVC/CustomerEdit.aspx&lt;/span&gt;"&lt;span style="color: blue;"&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: maroon;"&gt;datasource-type&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt; &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: red;"&gt;class&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;=&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;"&lt;span style="color: blue;"&gt;Controller.DataSources.CustomerEditBean&lt;/span&gt;"&lt;span style="color: blue;"&gt; &lt;/span&gt;&lt;span style="color: red;"&gt;assembly&lt;/span&gt;&lt;span style="color: blue;"&gt;=&lt;/span&gt;"&lt;span style="color: blue;"&gt;Controller&lt;/span&gt;"&lt;span style="color: blue;"&gt; &amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: maroon;"&gt;parameters&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&amp;lt;!--&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: green;"&gt; add an http-param to auto-set the UserID property
of the datasource instance &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;--&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: maroon;"&gt;http-param&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt; &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: red;"&gt;id&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;=&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;"&lt;span style="color: blue;"&gt;CustomerID&lt;/span&gt;"&lt;span style="color: blue;"&gt; &lt;/span&gt;&lt;span style="color: red;"&gt;auto-set&lt;/span&gt;&lt;span style="color: blue;"&gt;=&lt;/span&gt;"&lt;span style="color: blue;"&gt;true&lt;/span&gt;"&lt;span style="color: blue;"&gt;/&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&amp;lt;/&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: maroon;"&gt;parameters&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&amp;lt;/&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: maroon;"&gt;datasource-type&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&amp;lt;/&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: maroon;"&gt;view&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&amp;lt;/&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: maroon;"&gt;view-set&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&amp;lt;/&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: maroon;"&gt;view-dispatcher-filter&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;&amp;gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;&lt;span style=""&gt;&amp;nbsp; &lt;/span&gt;&amp;lt;/&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: maroon;"&gt;filters&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: maroon;"&gt;simple-view-chain&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;



&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;Σαφώς αλλαγμένη, έτσι;&lt;o:p&gt; &lt;br&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;Οι βασικές αλλαγές είναι λείπει
ένα φίλτρο, ο &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;ViewInitFilter&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;, του
οποίου οι αρμοδιότητες έχουν πλέον μεταφερθεί μέσα στο &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;View&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;object&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;το οποίο θα δούμε μετά. Η επόμενη και
βασικότερη αλλαγή είναι μέσα στο &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;ViewDispatchFilter&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;, όπου έχει προστεθεί το &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;element&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &amp;lt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;view&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;-&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;set&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;&amp;gt;, το οποίο
περιέχει περιγραφές των διαφόρων &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;views&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;span&gt;που έχουν οριστεί στο σύστημα.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;Ας δούμε από κοντά το &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;definition&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;span&gt;ενός &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;view&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: maroon;"&gt;view&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt; &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: red;"&gt;id&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;=&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;"&lt;span style="color: blue;"&gt;/MVC/UsersList.aspx&lt;/span&gt;"&lt;span style="color: blue;"&gt; &lt;/span&gt;&lt;span style="color: red;"&gt;url&lt;/span&gt;&lt;span style="color: blue;"&gt;=&lt;/span&gt;"&lt;span style="color: blue;"&gt;/MVC/CustomersList.aspx&lt;/span&gt;"&lt;span style="color: blue;"&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: maroon;"&gt;datasource-type&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt; &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: red;"&gt;class&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;=&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;"&lt;span style="color: blue;"&gt;Controller.DataSources.UserEditBean&lt;/span&gt;"&lt;span style="color: blue;"&gt; &lt;/span&gt;&lt;span style="color: red;"&gt;assembly&lt;/span&gt;&lt;span style="color: blue;"&gt;=&lt;/span&gt;"&lt;span style="color: blue;"&gt;Controller&lt;/span&gt;"&lt;span style="color: blue;"&gt; &amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: maroon;"&gt;parameters&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&amp;lt;!--&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: green;"&gt;
add an http-param to auto-set the UserID property of the datasource instance &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;--&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: maroon;"&gt;http-param&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt; &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: red;"&gt;id&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;=&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;"&lt;span style="color: blue;"&gt;UserID&lt;/span&gt;"&lt;span style="color: blue;"&gt; &lt;/span&gt;&lt;span style="color: red;"&gt;auto-set&lt;/span&gt;&lt;span style="color: blue;"&gt;=&lt;/span&gt;"&lt;span style="color: blue;"&gt;true&lt;/span&gt;"&lt;span style="color: blue;"&gt;/&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&amp;lt;/&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: maroon;"&gt;parameters&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: maroon;"&gt;datasource-type&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: maroon;"&gt;view&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;



&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;Περιέχει το &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;virtual&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;url&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;span&gt;στο οποίο «ακούει»,
στην περίπτωσή μας /&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;MVC&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;/&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;UsersList&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;.&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;aspx&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;. Επίσης
περιέχει το &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;path&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;span&gt;της πραγματικής σελίδας η οποία θα εξυπηρετήσει το &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;request&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;, και τέλος
περιέχει τις πληροφορίες για το &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;data&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;source&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;object&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;span&gt;του &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;view&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;. &lt;span style=""&gt;&amp;nbsp;&lt;/span&gt;Στην ουσία, πέρα από τα &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;url&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;mappings&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;, περιέχει ότι περιείχε στο χτεσινό &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;post&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;span&gt;το &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;ViewInitFilter&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;.&lt;br&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;Στον κώδικα, έχουν προστεθεί οι
αντίστοιχες 2 κλάσεις, όπως φαίνονται στο διάγραμμα:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;





&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;img src="http://www.handmade.gr/angel/wp-content/viewsetview.JPG"&gt;&amp;nbsp; &lt;br&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;



&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;Μια ακόμη αλλαγή που έκανα,
ήταν ότι πλέον τα &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;data&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;sources&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; υλοποιούν
συγκεκριμένα &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;interfaces&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;, ανάλογα
με τον τύπο των δεδομένων που επιστρέφουν. Όρισα λοιπόν 2 &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;interfaces&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;, ένα για &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;DataView&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; και ένα για &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;DataSet&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;.&lt;br&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;



&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;Το πολύ όμορφο όμως σε αυτή την
ιστορία, ήταν ο κώδικας που χρησιμοποίησα για να τα ορίσω !&lt;br&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;using&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt; System;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;using&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt; System.Collections.Generic;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;using&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt; System.Text;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;using&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt; System.Data;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;namespace&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt; Controller.DataSources&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;public&lt;/span&gt; &lt;span style="color: blue;"&gt;interface&lt;/span&gt; &lt;span style="color: teal;"&gt;IDataSource&lt;/span&gt;&amp;lt;DataType&amp;gt; { &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;DataType Data {&lt;span style="color: blue;"&gt;get&lt;/span&gt;;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;public&lt;/span&gt; &lt;span style="color: blue;"&gt;interface&lt;/span&gt; &lt;span style="color: teal;"&gt;IDataViewSource&lt;/span&gt; : &lt;span style="color: teal;"&gt;IDataSource&lt;/span&gt;&amp;lt;&lt;span style="color: teal;"&gt;DataView&lt;/span&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;



&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;o:p&gt;&lt;br&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;public&lt;/span&gt; &lt;span style="color: blue;"&gt;interface&lt;/span&gt; &lt;span style="color: teal;"&gt;IDataSetSource&lt;/span&gt; : &lt;span style="color: teal;"&gt;IDataSource&lt;/span&gt;&amp;lt;&lt;span style="color: teal;"&gt;DataSet&lt;/span&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;



&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;}&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;&lt;span style=""&gt;&amp;nbsp;&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;b style=""&gt;&lt;u&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;GENERICS
ABSOLUTELY RULE.&lt;/span&gt;&lt;/u&gt;&lt;/b&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;
&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;Δε&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;θα&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;ξαναδώ&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;ποτέ&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;το&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;μισητό&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; «object» &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;στα&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;interfaces &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;μου&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;Έκανα λοιπόν στη συνέχεια το &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;CustomerEditBean&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;span&gt;να &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;implements&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;IDataViewSource&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;, και έκανα
&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;copy&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;-&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;paste&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;span&gt;κι ένα &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;UserEditBean&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;span&gt;που παίζει με το διπλανό &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;table&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;span&gt;στη βάση, το &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;Users&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;img src="http://www.handmade.gr/angel/wp-content/datasources.JPG"&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;Μ’ αυτά και μ’ αυτά, έχω πλέον
2 &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;data&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;sources&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;, τα οποία μου
επιστρέφουν λίστα και &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;details&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; για 2
&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;tables&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;span&gt;στη βάση μου. Προς το παρόν, έχω μόνο 2 σελίδες στο &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;project&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;, μια για τη
λίστα πελατών, και μια για &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;details&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;span&gt;του εκάστοτε πελάτη. Έκανα όμως μια μικρή
αλλαγή στον κώδικα της εκάστοτε σελίδας:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;protected&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt; &lt;span style="color: blue;"&gt;void&lt;/span&gt; Page_Load(&lt;span style="color: blue;"&gt;object&lt;/span&gt;
sender, &lt;span style="color: teal;"&gt;EventArgs&lt;/span&gt; e)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;if&lt;/span&gt;(&lt;span style="color: blue;"&gt;null&lt;/span&gt;!=&lt;span style="color: blue;"&gt;this&lt;/span&gt;.Data)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;Response.Write(&lt;span style="color: blue;"&gt;string&lt;/span&gt;.Format(&lt;span style="color: maroon;"&gt;"Injected DataObject: {0}"&lt;/span&gt;, &lt;span style="color: blue;"&gt;this&lt;/span&gt;.Data.GetType().ToString()));&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;if&lt;/span&gt; (&lt;span style="color: blue;"&gt;this&lt;/span&gt;.Data &lt;span style="color: blue;"&gt;is&lt;/span&gt; &lt;span style="color: teal;"&gt;IDataViewSource&lt;/span&gt;) {&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: teal;"&gt;IDataViewSource&lt;/span&gt;
bean = (&lt;span style="color: teal;"&gt;IDataViewSource&lt;/span&gt;)&lt;span style="color: blue;"&gt;this&lt;/span&gt;.Data;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;this&lt;/span&gt;.lstCustomers.DataSource
= bean.Data;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;this&lt;/span&gt;.lstCustomers.DataBind();&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal"&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;}&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;&lt;span style=""&gt;&amp;nbsp;&lt;/span&gt;&lt;span&gt;Άλλαξα δηλαδή τον τύπο του &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;data&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;source&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;span&gt;που χρησιμοποιούσε, στο
&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;interface&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;. Το
αποτέλεσμα; Μπορώ πλέον να χρησιμοποιήσω την ίδια σελίδα είτε με το &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;CustomerEditBean&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;, είτε
με το &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;UserEditBean&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;. Με
λίγα λόγια, η σελίδα μου τώρα μπορεί να δείξει οποιαδήποτε από τις δύο λίστες.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;Αυτό το χρησιμοποιώ, όπως
φαίνεται στο &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;xml&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;span&gt;παρακάτω:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: maroon;"&gt;view&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt; &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: red;"&gt;id&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;=&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;"&lt;span style="color: blue;"&gt;/MVC/CustomersList.aspx&lt;/span&gt;"&lt;span style="color: blue;"&gt;
&lt;/span&gt;&lt;span style="color: red;"&gt;url&lt;/span&gt;&lt;span style="color: blue;"&gt;=&lt;/span&gt;"&lt;span style="color: blue;"&gt;/MVC/CustomersList.aspx&lt;/span&gt;"&lt;span style="color: blue;"&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: maroon;"&gt;datasource-type&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt; &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: red;"&gt;class&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;=&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;"&lt;span style="color: blue;"&gt;Controller.DataSources.CustomerEditBean&lt;/span&gt;"&lt;span style="color: blue;"&gt; &lt;/span&gt;&lt;span style="color: red;"&gt;assembly&lt;/span&gt;&lt;span style="color: blue;"&gt;=&lt;/span&gt;"&lt;span style="color: blue;"&gt;Controller&lt;/span&gt;"&lt;span style="color: blue;"&gt; &amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: maroon;"&gt;parameters&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&amp;lt;!--&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: green;"&gt;
add an http-param to auto-set the UserID property of the datasource instance &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;--&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: maroon;"&gt;http-param&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt; &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: red;"&gt;id&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;=&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;"&lt;span style="color: blue;"&gt;CustomerID&lt;/span&gt;"&lt;span style="color: blue;"&gt; &lt;/span&gt;&lt;span style="color: red;"&gt;auto-set&lt;/span&gt;&lt;span style="color: blue;"&gt;=&lt;/span&gt;"&lt;span style="color: blue;"&gt;true&lt;/span&gt;"&lt;span style="color: blue;"&gt;/&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&amp;lt;/&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: maroon;"&gt;parameters&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: maroon;"&gt;datasource-type&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: maroon;"&gt;view&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: maroon;"&gt;view&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt; &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: red;"&gt;id&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;=&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;"&lt;span style="color: blue;"&gt;/MVC/UsersList.aspx&lt;/span&gt;"&lt;span style="color: blue;"&gt; &lt;/span&gt;&lt;span style="color: red;"&gt;url&lt;/span&gt;&lt;span style="color: blue;"&gt;=&lt;/span&gt;"&lt;span style="color: blue;"&gt;/MVC/CustomersList.aspx&lt;/span&gt;"&lt;span style="color: blue;"&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: maroon;"&gt;datasource-type&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt; &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: red;"&gt;class&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;=&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;"&lt;span style="color: blue;"&gt;Controller.DataSources.UserEditBean&lt;/span&gt;"&lt;span style="color: blue;"&gt; &lt;/span&gt;&lt;span style="color: red;"&gt;assembly&lt;/span&gt;&lt;span style="color: blue;"&gt;=&lt;/span&gt;"&lt;span style="color: blue;"&gt;Controller&lt;/span&gt;"&lt;span style="color: blue;"&gt; &amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;&lt;span style=""&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: maroon;"&gt;parameters&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&amp;lt;!--&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: green;"&gt;
add an http-param to auto-set the UserID property of the datasource instance &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;--&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: maroon;"&gt;http-param&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt; &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: red;"&gt;id&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;=&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;"&lt;span style="color: blue;"&gt;UserID&lt;/span&gt;"&lt;span style="color: blue;"&gt; &lt;/span&gt;&lt;span style="color: red;"&gt;auto-set&lt;/span&gt;&lt;span style="color: blue;"&gt;=&lt;/span&gt;"&lt;span style="color: blue;"&gt;true&lt;/span&gt;"&lt;span style="color: blue;"&gt;/&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&amp;lt;/&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: maroon;"&gt;parameters&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;&lt;span style=""&gt;&amp;nbsp;&lt;/span&gt;&amp;lt;/&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: maroon;"&gt;datasource-type&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;&lt;span style=""&gt;&amp;nbsp;&lt;/span&gt;&amp;lt;/&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: maroon;"&gt;view&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;&lt;span style=""&gt;&amp;nbsp;&lt;/span&gt;&lt;span&gt;Όπως βλέπετε, χρησιμοποιώ την
ίδια σελίδα ως το &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;view&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;implementation&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;, για 2
διαφορετικές λίστες. Επιπλέον, θα μπορούσα να περνάω παραμέτρους στη σελίδα,
όπως &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;headers&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;, &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;navigation&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;info&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;, ή ότι άλλο
μπορείτε να σκεφτείτε. Για παράδειγμα στη δουλειά κρύβω κάποια &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;sections&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; / &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;custom&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;controls&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;span&gt;στις σελίδες, ή κόβω &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;fields&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;span&gt;που ο τρέχον χρήστης δεν
επιτρέπεται να δεί.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;



&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;br&gt;( &lt;i style=""&gt;Παρατήρησα μετά από λίγο καιρό που χρησιμοποίησα ένα τέτοιο μηχανισμό
παραμέτρων ότι, όσο το συνηθίζεις, να έχεις μια υποδομή που δίνει «τσάμπα» αυτό
το &lt;/i&gt;&lt;/span&gt;&lt;i style=""&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;functionality&lt;/span&gt;&lt;/i&gt;&lt;i style=""&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;, κατά κάποιο τρόπο … σου ανοίγει το μυαλό, και προχωράς πλέον σε άλλες
κατευθύνσεις που δε θα συνειδητοποιούσες ότι υπήρχαν πριν … η απλώς είμαι ψώνιο
με την πάρτη μου&lt;/span&gt;&lt;/i&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; :&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;D&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; ) &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;





&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;τρέχοντας την εφαρμογή, θα σας
βγάλει στην ίδια &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;CustomersList&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;.&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;aspx&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; σελίδα. Αν
όμως αλλάξετε το &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;url&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;span&gt;σε &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;UsersList&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;.&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;aspx&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;, θα σας φέρει
πλέον τη λίστα με τους χρήστες. Περνώντας &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;CustomerID&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;span&gt;ή &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;UserID&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;span&gt;παραμέτρους στο &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;url&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;span&gt;θα σας φέρουν τα δεδομένα μόνο για τον εκάστοτε πελάτη ή
χρήστη, ακριβώς όπως και πρίν.&lt;/span&gt;&lt;o:p&gt; &lt;br&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;



&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;Νομίζω οτι πλέον πρέπει να
αρχίζουν να φαίνονται τα πλεονεκτήματα του &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;MVC&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;span&gt;«πακέτου». Με τη βοήθεια του χρόνου, στα
επόμενα &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;posts&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;span&gt;θα κοιτάξω πώς να το «μαζέψουμε» λίγο από άποψη &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;performance&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;span&gt;όλο αυτό, και κάποια πιο &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;advanced&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;span&gt;παραδείγματα της χρήσης του.&lt;/span&gt;&lt;br&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;





&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;Ως τότε … ελπίζω να μαυρίζω την
υπόλοιπη ‘βδομάδα, και να μη γράφω ούτε κώδικα, ούτε &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;posts&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;!&lt;o:p&gt;&lt;/o:p&gt;&lt;br&gt;&lt;i&gt;Καλό μας καλοκαίρι !!!&lt;/i&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;</description></item><item><title>O Controller / Dispatcher: Inversion of Control, και Dependency Injection.</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/15306.aspx</link><pubDate>Sun, 30 Jul 2006 21:24:11 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:15306</guid><dc:creator>anjelinio</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/15306.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=14&amp;PostID=15306</wfw:commentRss><description>&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;b style=""&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;Controller /
Dispatcher: Inversion of Control, &lt;/span&gt;&lt;/b&gt;&lt;b style=""&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;και&lt;/span&gt;&lt;/b&gt;&lt;b style=""&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; Dependency Injection.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;Κάλιο αργά παρά ποτέ … &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;:P&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;Μέχρι τώρα, είδαμε τις επιλογές
μου για το μέρος του &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;Controller&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;span&gt;σε ένα &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;Model&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;View&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;Controller&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;span&gt;σχήμα, πάνω σε &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;ASP&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;.&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;NET&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;.&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;Προς το παρόν, έχουμε έναν
τρόπο με τον οποίο μπορούμε να επεξεργαστούμε όλα τα &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;incoming&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;requests&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;, ο οποίος μας
αφήνει να «επεξεργαστούμε» κεντρικά τόσο το &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;request&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;, όσο και τη σελίδα η οποία τελικά θα
το εξυπηρετήσει. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;Σε αυτό ακριβώς το σημείο,
κρύβεται το «μαγικό» &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;feature&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;span&gt;του &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;MVC&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;. Έχω
όλα τα δεδομένα από το &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;request&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;, και
έχω και το &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;instance&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;span&gt;της σελίδας η οποία θα την εξυπηρετήσει. Άρα, εδώ είναι το σημείο στο
οποίο μπορώ να «ξεφορτώσω» κώδικα από την ίδια τη σελίδα, και να τον μεταφέρω
σαν&lt;span style=""&gt;&amp;nbsp; &lt;/span&gt;κάποιο &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;pluggable&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;module&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;span&gt;σε αυτό το σημείο, προτού ο &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;controller&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;span&gt;επιστρέψει το &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;page&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;instance&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;span&gt;στο σύστημα.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;Υπάρχουν 2 &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;patterns&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;span&gt;τα οποία είναι πολύ σχετικά με αυτό το σημείο. &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;To Dependency Injection, &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;και&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;το&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;Invesion of Control. &lt;span style=""&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;Μάλλον, για να το θέσω καλύτερα, τα &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;DI&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &amp;amp; &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;IoC&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;span&gt;είναι
περισσότερο τεχνικές, οι οποίες υλοποιούνται με τη χρήση διάφορων &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;patterns&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;, αντί για
«καθαρά» ατομικά &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;patterns&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;span&gt;τα ίδια. Πολύ συχνά ο κόσμος φαίνεται να τα χρησιμοποιεί ως ακρώνυμα
εννοώντας το ίδιο πράγμα, αλλά η ταπεινή μου γνώμη είναι ότι πρόκειται για δύο
εντελώς διαφορετικά πράγματα.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;b style=""&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;To Dependency
Injection&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;είναι&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;πολύ&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;απλό&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;. &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;Ας πούμε ότι η
σελίδα μας που υλοποιεί το &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;View&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;, χρειάζεται κάποια δεδομένα τα οποία θα παρουσιάσει στο
χρήστη. Άρα, η σελίδα μας έχει ένα &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;dependency&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; σε αυτά τα δεδομένα. Δε μπορεί να
λειτουργήσει χωρίς αυτά. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;Συνήθως, στον κώδικα της
σελίδας, θα περίμενε να βρεί κάποιος τον κώδικα ο οποίος διαβάζει τις όποιες
παραμέτρους έρχονται στη σελίδα, και φέρνει τα ανάλογα δεδομένα από τη βάση, ή
από κάποιο &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;business&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;span&gt;ή &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;data&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;object&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;. Εξυπηρετεί
το &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;dependency&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;span&gt;του στα δεδομένα χωρίς τη βοήθεια κανενός.&lt;span style=""&gt;&amp;nbsp; &lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;Χρησιμοποιώντας το &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;dependency&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;injection&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;paradigm&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;, το σύστημα
είναι υπεύθυνο να δημιουργήσει αυτά τα δεδομένα, και να τα δώσει αυτό στη
σελίδα μας, ικανοποιώντας έτσι το &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;dependency&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;span&gt;στα δεδομένα. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;Προσωπικά εκτιμώ ότι χρησιμοποιώντας
τη &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;dependency&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;injection&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;span&gt;νοοτροπία, κάνω ευκολότερη τη μετάβαση από ένα &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;view&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;implementation&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;span&gt;σε ένα άλλο. Μη
σκεφτείτε μόνο την αλλαγή κάποιου &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;UI&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;, σκεφτείτε την πιθανότητα διαφορετικού τύπου &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;content&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;span&gt;ανα &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;view&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;. Π.χ.
όταν κάποτε δούλευα σε μια καθαρά &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;web&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;design&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;span&gt;εταιρία, παρουσιάστηκε η ανάγκη να δίνουμε το &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;content&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;span&gt;ενός &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;site&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;span&gt;στη &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;vodaphone&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; σε
ένα πολύ συγκεκριμένο &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;xml&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;format&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;, απαραίτητο
για να μετασχηματιστεί σε &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;content&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; για το &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;vodaphone&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;live&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;. Έχοντας
όλες τις σελίδες στο &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;site&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;span&gt;μας να περιέχουν τον &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;data&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;access&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;span&gt;κώδικά τους, μας οδήγησε στο να κάνουμε όλες αυτές τις σελίδες &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;copy&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;-&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;paste&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; και &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;rewrite&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;span&gt;για να σερβίρουν &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;Vodaphone&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;XML&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;span&gt;… &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;Σε ένα διπλανό &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;site&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;, στο οποίο
χρησιμοποιούσα πολύ πειραματικά &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;MVC&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;, &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;dependency&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;injection&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;span&gt;και &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;XSLT&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;span&gt;για την παραγωγή του &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;content&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;, η προσθήκη ενός ακόμη &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;content&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;-&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;type&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; μας πήρε 1-2
μέρες. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;b style=""&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;To&lt;/span&gt;&lt;/b&gt;&lt;b style=""&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;/span&gt;&lt;/b&gt;&lt;b style=""&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;Inversion&lt;/span&gt;&lt;/b&gt;&lt;b style=""&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;/span&gt;&lt;/b&gt;&lt;b style=""&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;of&lt;/span&gt;&lt;/b&gt;&lt;b style=""&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;/span&gt;&lt;/b&gt;&lt;b style=""&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;Control&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;span&gt;ίσως είναι κι αυτό
απλώς παρεξηγημένο από τον κόσμο. Για παράδειγμα, το προηγουμενο σενάριο, αυτό
του&lt;span style=""&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;dependency&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;injection&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;span&gt;θα μπορούσε να χαρακτηριστεί ως &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;inversion&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;of&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;control&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; από
την οπτική του ότι δεν είναι πλέον το &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;view&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;span&gt;στον έλεγχο της «παραγωγής» των δεδομένων
του. Αυτός ο έλεγχος έχει παραδοθεί στον &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;controller&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;, ή στο εκάστοτε &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;IoC&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;container&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;. Αλλά η δική μου ταπεινή γνώμη είναι
ότι το &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;Inversion&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;of&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;Control&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;span&gt;δεν πρέπει να μένει στο
μυαλό μας μόνο σε αυτό το επίπεδο. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;Η άποψή μου είναι ότι όταν
ξέρεις τα &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;processes&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;span&gt;που πρέπει να τρέξουν για να εκτελεστεί μια ενέργεια στο σύστημα σου,
σχεδιάζεις τα πάντα ως ένα &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;sequence&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;span&gt;από ατομικά &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;tasks&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;span&gt;τα οποία πρέπει
να εκτελεστούν, ορίζεις τα &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;interfaces&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;span&gt;τα οποία καθένας τύπος &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;task&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;span&gt;πρέπει να
υλοποιεί, και αφήνεις το &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;instrumentation&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; / &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;orchestration&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;span&gt;στο σύστημα από κάτω. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;Με άλλα λόγια, δεν αφήνεις τα
εκάστοτε μέρη του συστήματος να παίρνουν αποφάσεις, πέραν από το τι είναι
απολύτως απαραίτητο για να εκτελέσουν την ατομική τους εργασία. Κάθε υλοποίηση
απλώς γεμίζει κώδικα σε προκαθορισμένες μεθόδους οι οποίες καλούνται από το
σύστημα, ποτέ η μια από την άλλη. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;Δεν αφήνεις τον προγραμματιστή
να πάρει αποφάσεις … άρα … &lt;/span&gt;&lt;i style=""&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;Inversion&lt;/span&gt;&lt;/i&gt;&lt;i style=""&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;/span&gt;&lt;/i&gt;&lt;i style=""&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;of&lt;/span&gt;&lt;/i&gt;&lt;i style=""&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;/span&gt;&lt;/i&gt;&lt;i style=""&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;Control&lt;/span&gt;&lt;/i&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;i style=""&gt;&lt;span&gt;!!!&lt;/span&gt;&lt;/i&gt;&lt;span&gt; :&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;P&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;b style=""&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;Και το &lt;/span&gt;&lt;/b&gt;&lt;b style=""&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;sample&lt;/span&gt;&lt;/b&gt;&lt;b style=""&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; …&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;Όλα αυτά τα «&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;pattern&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;-ικά» δεν τα
σκεφτόμουν υλοποιώντας το σημερινό «επεισόδιο» κώδικα. Τα αναγνωρίζεις όμως
μετά, βλέποντας το σύστημά σου, από ψηλά. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;Όπως έλεγα και στο προηγούμενο &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;post&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;, συνδυάζω τον
&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;controller&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;, με
ακόμη ένα &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;pattern&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;, το &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;filter&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;chain&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;. Πρό λίγων
εβδομάδων, είχα γράψει ένα άρθρο όπου έδειχνα μια υλοποίηση του &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;filter&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;chain&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; το οποίο
μπορείτε να βρείτε &lt;a href="/cs/forums/12206/ShowPost.aspx"&gt;εδώ&lt;/a&gt;, σαν επιπλέον &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;reference&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;span&gt;τόσο για το &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;pattern&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; όσο και για
τον &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;sample&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;span&gt;κώδικα που θα δείτε στο &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;attachment&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;. &lt;span style=""&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;Η αλυσίδα που θα δείτε στο &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;sample&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; είναι σχετικά
απλή. Ορίζεται σαν &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;xml&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; ως εξής:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;&amp;lt;?&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: maroon;"&gt;xml&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt; &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: red;"&gt;version&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;=&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;"&lt;span style="color: blue;"&gt;1.0&lt;/span&gt;"&lt;span style="color: blue;"&gt; &lt;/span&gt;&lt;span style="color: red;"&gt;encoding&lt;/span&gt;&lt;span style="color: blue;"&gt;=&lt;/span&gt;"&lt;span style="color: blue;"&gt;utf-8&lt;/span&gt;"&lt;span style="color: blue;"&gt; ?&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: maroon;"&gt;simple-view-chain&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;&lt;span style=""&gt;&amp;nbsp; &lt;/span&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: maroon;"&gt;filters&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: maroon;"&gt;authorization-filter&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;/&amp;gt;&lt;span style=""&gt;&amp;nbsp; &lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: maroon;"&gt;view-dispatcher-filter&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;/&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: maroon;"&gt;view-init-filter&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&amp;lt;!--&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: green;"&gt; define the class
type that implements this view's datasource &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;--&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: maroon;"&gt;datasource-type&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt; &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: red;"&gt;class&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;=&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;"&lt;span style="color: blue;"&gt;Controller.DataSources.CustomerEditBean&lt;/span&gt;"&lt;span style="color: blue;"&gt; &lt;/span&gt;&lt;span style="color: red;"&gt;assembly&lt;/span&gt;&lt;span style="color: blue;"&gt;=&lt;/span&gt;"&lt;span style="color: blue;"&gt;Controller&lt;/span&gt;"&lt;span style="color: blue;"&gt; &amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: maroon;"&gt;parameters&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&amp;lt;!--&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: green;"&gt; add an
http-param to auto-set the UserID property of the datasource instance &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;--&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: maroon;"&gt;http-param&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt; &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: red;"&gt;id&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;=&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;"&lt;span style="color: blue;"&gt;CustomerID&lt;/span&gt;"&lt;span style="color: blue;"&gt; &lt;/span&gt;&lt;span style="color: red;"&gt;auto-set&lt;/span&gt;&lt;span style="color: blue;"&gt;=&lt;/span&gt;"&lt;span style="color: blue;"&gt;true&lt;/span&gt;"&lt;span style="color: blue;"&gt;/&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&amp;lt;/&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: maroon;"&gt;parameters&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&amp;lt;/&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: maroon;"&gt;datasource-type&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&amp;lt;/&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: maroon;"&gt;view-init-filter&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;&lt;span style=""&gt;&amp;nbsp; &lt;/span&gt;&amp;lt;/&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: maroon;"&gt;filters&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: maroon;"&gt;simple-view-chain&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;Ορίζει&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;τρία είδη
φίλτρων:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;ul style="margin-top: 0in;"&gt;&lt;li class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;AuthorizationFilter&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;.
     Θεωρητικά ελέγχει αν έχουμε &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;current&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;span&gt;χρήστη, και αν όχι
     και χρειάζεται &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;authentication&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;span&gt;για το συγκεκριμένο &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;view&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; κάνει &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;redirect&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;span&gt;στη &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;login&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;span&gt;σελίδα μας. Στο &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;sample &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;δεν κάνει στην πραγματικότητα
     τίποτα … &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;:P&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;ViewDispatcherFilter&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;.
     Αναγνωρίζει σε ποιο &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;view&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;span&gt;πρέπει να προωθήσει το &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;request&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;, και δημιουργεί ένα &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;instance&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; του.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;ViewInitFilter&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;.
     Αναλαμβάνει να «αρχικοποιήσει» &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;properties&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;span&gt;του &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;View&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;, κάνοντας
     στην ουσία &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;dependency&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;injection&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;span&gt;τις τιμές από τυχόν &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;request&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;parameters&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;, &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;data&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;source&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;objects&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;span&gt;κτλ.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;



&lt;p class="MsoNormal" style="text-align: center;" align="left"&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;br&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="text-align: center;" align="left"&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;Παρακάτω έχω το &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;class&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;diagram&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;span&gt;του &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;SimpleViewChain&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;:&amp;nbsp;&lt;img src="http://www.handmade.gr/angel/wp-content/SimpleViewChain.JPG"&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="text-align: center;" align="center"&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;&lt;br&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;Όπως&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;βλέπετε&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;, &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;έχω&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;το&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;SimpleViewChain, subclass &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;του&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;FilterChain &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;για&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;το&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;οποίο&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;είχα&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;μιλήσει&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;στο&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;προηγούμενο&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;post &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;μου&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;, &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;τα&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;τρία&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;ειδικά&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;φίλτρα&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;και&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;ένα&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;generic logging &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;φίλτρο&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;, &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;και&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;το&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;data object &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;για&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;το&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;SimpleViewChain, &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;το&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;SimpleViewData.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;To&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;SimpleViewData&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;span&gt;ορίζει ένα &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;structure&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;span&gt;το οποίο περιέχει όλα τα απαραίτητα
δεδομένα για να ολοκληρωθεί η λειτουργία της αλυσίδας:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;using&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt; System;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;using&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt; System.Web;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;using&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;
Controller.View;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;namespace&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt; Controller.ViewChain&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: gray;"&gt;///&lt;/span&gt;&lt;span style="color: green;"&gt; &lt;/span&gt;&lt;span style="color: gray;"&gt;&amp;lt;summary&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: gray;"&gt;///&lt;/span&gt;&lt;span style="color: green;"&gt; Wraps all the required data for the successful processing
of the SimpleViewChain &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: gray;"&gt;///&lt;/span&gt;&lt;span style="color: green;"&gt; chain of filters. It is the object that will get passed
through all the filters, before&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: gray;"&gt;///&lt;/span&gt;&lt;span style="color: green;"&gt; it is returned to the caller of the chain for final
processing&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: gray;"&gt;///&lt;/span&gt;&lt;span style="color: green;"&gt; &lt;/span&gt;&lt;span style="color: gray;"&gt;&amp;lt;/summary&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;public&lt;/span&gt; &lt;span style="color: blue;"&gt;class&lt;/span&gt; &lt;span style="color: teal;"&gt;SimpleViewData&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;private&lt;/span&gt;
&lt;span style="color: teal;"&gt;HttpContext&lt;/span&gt; m_Context = &lt;span style="color: blue;"&gt;null&lt;/span&gt;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;private&lt;/span&gt;
&lt;span style="color: teal;"&gt;ISimpleView&lt;/span&gt; m_View = &lt;span style="color: blue;"&gt;null&lt;/span&gt;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;private&lt;/span&gt;
&lt;span style="color: blue;"&gt;string&lt;/span&gt; m_Url = &lt;span style="color: blue;"&gt;null&lt;/span&gt;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;public&lt;/span&gt;
SimpleViewData() { }&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;public&lt;/span&gt;
SimpleViewData(&lt;span style="color: teal;"&gt;HttpContext&lt;/span&gt; context) {&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;this&lt;/span&gt;.Context
= context;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;public&lt;/span&gt;
SimpleViewData(&lt;span style="color: teal;"&gt;HttpContext&lt;/span&gt; context, &lt;span style="color: blue;"&gt;string&lt;/span&gt; url) : &lt;span style="color: blue;"&gt;this&lt;/span&gt;(context)
{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;this&lt;/span&gt;.Url
= url;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: gray;"&gt;///&lt;/span&gt;&lt;span style="color: green;"&gt; &lt;/span&gt;&lt;span style="color: gray;"&gt;&amp;lt;summary&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: gray;"&gt;///&lt;/span&gt;&lt;span style="color: green;"&gt; Wraps the HttpContext property of this simple data object,
so&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: gray;"&gt;///&lt;/span&gt;&lt;span style="color: green;"&gt; as to ensure that properties are intialized correctly, and
not used&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: gray;"&gt;///&lt;/span&gt;&lt;span style="color: green;"&gt; before they are initialized&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: gray;"&gt;///&lt;/span&gt;&lt;span style="color: green;"&gt; &lt;/span&gt;&lt;span style="color: gray;"&gt;&amp;lt;/summary&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;public&lt;/span&gt; &lt;span style="color: blue;"&gt;string&lt;/span&gt; Url&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;get&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;if&lt;/span&gt;
(&lt;span style="color: blue;"&gt;null&lt;/span&gt; == m_Url)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;throw&lt;/span&gt;
&lt;span style="color: blue;"&gt;new&lt;/span&gt; &lt;span style="color: teal;"&gt;ApplicationException&lt;/span&gt;(&lt;span style="color: maroon;"&gt;"Url has not yet been initialized"&lt;/span&gt;);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;return&lt;/span&gt;
m_Url;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;set&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;if&lt;/span&gt;
(&lt;span style="color: blue;"&gt;null&lt;/span&gt; == &lt;span style="color: blue;"&gt;value&lt;/span&gt;)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;throw&lt;/span&gt;
&lt;span style="color: blue;"&gt;new&lt;/span&gt; &lt;span style="color: teal;"&gt;ArgumentNullException&lt;/span&gt;(&lt;span style="color: maroon;"&gt;"Url"&lt;/span&gt;, &lt;span style="color: maroon;"&gt;"Cannot
be initialized to Null"&lt;/span&gt;);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;m_Url = &lt;span style="color: blue;"&gt;value&lt;/span&gt;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: gray;"&gt;///&lt;/span&gt;&lt;span style="color: green;"&gt; &lt;/span&gt;&lt;span style="color: gray;"&gt;&amp;lt;summary&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: gray;"&gt;///&lt;/span&gt;&lt;span style="color: green;"&gt; Wraps the HttpContext property of this simple data object,
so&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: gray;"&gt;///&lt;/span&gt;&lt;span style="color: green;"&gt; as to ensure that properties are intialized correctly, and
not used&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: gray;"&gt;///&lt;/span&gt;&lt;span style="color: green;"&gt; before they are initialized&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: gray;"&gt;///&lt;/span&gt;&lt;span style="color: green;"&gt; &lt;/span&gt;&lt;span style="color: gray;"&gt;&amp;lt;/summary&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;public&lt;/span&gt; &lt;span style="color: teal;"&gt;HttpContext&lt;/span&gt; Context {&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;get&lt;/span&gt;
{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;if&lt;/span&gt;
(&lt;span style="color: blue;"&gt;null&lt;/span&gt; == m_Context)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;throw&lt;/span&gt;
&lt;span style="color: blue;"&gt;new&lt;/span&gt; &lt;span style="color: teal;"&gt;ApplicationException&lt;/span&gt;(&lt;span style="color: maroon;"&gt;"Context has not yet been &lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;return&lt;/span&gt;
m_Context;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;set&lt;/span&gt;
{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;if&lt;/span&gt;
(&lt;span style="color: blue;"&gt;null&lt;/span&gt; == &lt;span style="color: blue;"&gt;value&lt;/span&gt;)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;throw&lt;/span&gt;
&lt;span style="color: blue;"&gt;new&lt;/span&gt; &lt;span style="color: teal;"&gt;ArgumentNullException&lt;/span&gt;(&lt;span style="color: maroon;"&gt;"Context"&lt;/span&gt;, &lt;span style="color: maroon;"&gt;"Cannot
be initialized to Null"&lt;/span&gt;);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;m_Context = &lt;span style="color: blue;"&gt;value&lt;/span&gt;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: gray;"&gt;///&lt;/span&gt;&lt;span style="color: green;"&gt; &lt;/span&gt;&lt;span style="color: gray;"&gt;&amp;lt;summary&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: gray;"&gt;///&lt;/span&gt;&lt;span style="color: green;"&gt; Wraps the ISimpleView property of this simple data object,
so&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: gray;"&gt;///&lt;/span&gt;&lt;span style="color: green;"&gt; as to ensure that properties are intialized correctly, and
not used&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: gray;"&gt;///&lt;/span&gt;&lt;span style="color: green;"&gt; before they are initialized&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: gray;"&gt;///&lt;/span&gt;&lt;span style="color: green;"&gt; &lt;/span&gt;&lt;span style="color: gray;"&gt;&amp;lt;/summary&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;public&lt;/span&gt; &lt;span style="color: teal;"&gt;ISimpleView&lt;/span&gt; View&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;get&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;if&lt;/span&gt;
(&lt;span style="color: blue;"&gt;null&lt;/span&gt; == m_View)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;throw&lt;/span&gt;
&lt;span style="color: blue;"&gt;new&lt;/span&gt; &lt;span style="color: teal;"&gt;ApplicationException&lt;/span&gt;(&lt;span style="color: maroon;"&gt;"View has not yet been initialized"&lt;/span&gt;);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;return&lt;/span&gt;
m_View;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;set&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;if&lt;/span&gt;
(&lt;span style="color: blue;"&gt;null&lt;/span&gt; == &lt;span style="color: blue;"&gt;value&lt;/span&gt;)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;throw&lt;/span&gt;
&lt;span style="color: blue;"&gt;new&lt;/span&gt; &lt;span style="color: teal;"&gt;ArgumentNullException&lt;/span&gt;(&lt;span style="color: maroon;"&gt;"View"&lt;/span&gt;, &lt;span style="color: maroon;"&gt;"Cannot
be initialized to Null"&lt;/span&gt;);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;m_View = &lt;span style="color: blue;"&gt;value&lt;/span&gt;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;&lt;span style=""&gt;&amp;nbsp;&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;Όπως βλέπετε, όλα τα &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;getters&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;span&gt;πετάνε &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;exception&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;span&gt;σε περίπτωση που το αντίστοιχο &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;member&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;variable&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;span&gt;δεν έχει αρχικοποιηθεί. Αυτό το
κάνω για καλύτερο &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;debugging&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;span&gt;της αλυσίδας σε περίπτωση που κάποια υλοποίηση ενός φίλτρου έχει
τοποθετηθεί σε λάθος σειρά ας πούμε, και κάποιο &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;member&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;span&gt;του &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;SimpleViewData&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;span&gt;που χρειάζεται δεν έχει αρχικοποιηθεί από κάποιο προηγούμενο φίλτρο.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;Το άλλο ενδιαφέρον στο &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;SimpleViewData&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;, είναι το &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;View&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;property&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;span&gt;το οποίο επιστρέφει ένα
&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;ISimpleView&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;. Ένα &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;interface&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;. Αυτό μας
δίνει τη δυνατότητα να αλλάζουμε &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;implementations&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;. Για παράδειγμα, μπορεί το &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;view&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;span&gt;μου να κάνει &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;render&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;HTML&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;. Αλλά μπορεί
να κάνει &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;render&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;span&gt;και οποιοδήποτε άλλο &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;content&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;-&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;type&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;. Εφ’ όσον η υλοποίηση κάνει &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;implement&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;span&gt;το &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;ISimpleView&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;, έχω
τη δυνατότητα να αλλάζω &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;implementations&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;span&gt;χωρίς να «σπάω» το &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;compatibility&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;span&gt;με το υπάρχον σύστημα.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;



&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;Ας ρίξουμε τώρα μια ματιά και
στο ίδιο το &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;ISimpleView&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;: &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;&lt;img src="http://www.handmade.gr/angel/wp-content/ISimpleView.JPG"&gt;&lt;br&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="text-align: center;" align="center"&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: maroon;"&gt;
 
&lt;br&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;Όνομα και πράμα έτσι; Ένας πολύ
απλός βασικός ορισμός για ένα &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;view&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;. Έχει ένα &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;property&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;span&gt;που λέγεται &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;Data&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;span&gt;και είναι
οποιουδήποτε τύπου. Υπο κανονικές συνθήκες, δε θα αφήναμε τον τύπο σε &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;object&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;, θα ορίζαμε &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;view&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;interfaces&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;span&gt;ανάλογα με τον τύπο των
δεδομένων τους, όπως π.χ. &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;DataSets&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;span&gt;ή κάποια &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;business&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;objects&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;. Π.χ. &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;AsyncOperationView&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;, του
οποίου το &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;Data&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;property&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;span&gt;θα ήταν κάποιο αντικείμενο που λειτουργεί ως &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;fa&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;ç&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;ade&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; για μια
ασύγχρονη διαδικασία.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;Για το πολύ απλό παράδειγμά
μας&lt;span style=""&gt;&amp;nbsp; &lt;/span&gt;όμως, αυτό το πολύ απλό &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;interface&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;span&gt;μας φτάνει. ( &lt;i style=""&gt;Σκέφτομαι τώρα ότι
το &lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;i style=""&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;IView&lt;/span&gt;&lt;/i&gt;&lt;i style=""&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; είναι φοβερός πειρασμός για μια &lt;/span&gt;&lt;/i&gt;&lt;i style=""&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;generic&lt;/span&gt;&lt;/i&gt;&lt;i style=""&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; κλάση …&lt;/span&gt;&lt;/i&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; )&lt;span style=""&gt;&amp;nbsp; &lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;Οκ, ως εδώ είδαμε ότι η αλυσίδα
μας έχει ένα κάποιο &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;data&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;object&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;, και το
τελικό μας &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;view&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;, η
σελίδα, υλοποιεί κάποιο συγκεκριμένο &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;interface&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;. Πως «δένουμε» τα δύο; Το όλο ..
μυστικό, βρίσκεται στο τρίτο φίλτρο της αλυσίδας, τον &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;ViewInitFilter&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;. &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;Ο ορισμός του φίλτρου στην &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;xml&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;span&gt;είναι ως εξής:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: maroon;"&gt;view-init-filter&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;&lt;span style=""&gt;&amp;nbsp;&lt;/span&gt;&amp;lt;!--&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: green;"&gt; define the class type
that implements this view's datasource &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;--&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;&lt;span style=""&gt;&amp;nbsp;&lt;/span&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: maroon;"&gt;datasource-type&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt; &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: red;"&gt;class&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;=&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;"&lt;span style="color: blue;"&gt;Controller.DataSources.CustomerEditBean&lt;/span&gt;"&lt;span style="color: blue;"&gt; &lt;/span&gt;&lt;span style="color: red;"&gt;assembly&lt;/span&gt;&lt;span style="color: blue;"&gt;=&lt;/span&gt;"&lt;span style="color: blue;"&gt;Controller&lt;/span&gt;"&lt;span style="color: blue;"&gt; &amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: maroon;"&gt;parameters&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&amp;lt;!--&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: green;"&gt; an http-param to
auto-set the CustomerID property of the d-source instance &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;--&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: maroon;"&gt;http-param&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt; &lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: red;"&gt;id&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;=&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;"&lt;span style="color: blue;"&gt;CustomerID&lt;/span&gt;"&lt;span style="color: blue;"&gt; &lt;/span&gt;&lt;span style="color: red;"&gt;auto-set&lt;/span&gt;&lt;span style="color: blue;"&gt;=&lt;/span&gt;"&lt;span style="color: blue;"&gt;true&lt;/span&gt;"&lt;span style="color: blue;"&gt;/&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&amp;lt;/&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: maroon;"&gt;parameters&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;&lt;span style=""&gt;&amp;nbsp;&lt;/span&gt;&amp;lt;/&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: maroon;"&gt;datasource-type&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: maroon;"&gt;view-init-filter&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;Στο &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;datasource&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;-&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;type&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;element&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;, ορίζεται το &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;class&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;name&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;span&gt;και το &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;assembly&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;span&gt;της κλάσης η οποία θα αποτελέσει το &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;datasource&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;span&gt;για το &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;view&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;span&gt;μας. Ένα &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;instance&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;span&gt;αυτού του τύπου θα μας δώσει το .&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;Data&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;span&gt;του &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;view&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;. &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;Πέρα από αυτό, μπορούμε στην &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;xml&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;span&gt;να ορίσουμε
κάποιες παραμέτρους, οι τιμές των οποίων θα δωθούν αυτόματα στο &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;datasource&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;instance&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;. Μαγεία; Για
παράδειγμα, από το &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;definition&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;span&gt;παραπάνω, εάν στο &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;Request&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;span&gt;υπάρχει παράμετρος &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;CustomerID&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;, και στο &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;datasource&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;span&gt;ένα &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;property&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;span&gt;με το ίδιο όνομα, η τιμή της παραμέτρου θα τεθεί αυτόματα ως τιμή στο &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;property&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;, κάνοντας
μάλιστα και το &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;parse&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;span&gt;στον σωστό τύπο ! ( Είχα αναφερθεί σε αυτό σε ένα πολύ παλιό αρθράκι,
αν θέλετε να δείτε περισσότερα, είναι &lt;a href="/cs/forums/5875/ShowPost.aspx"&gt;εδώ &lt;/a&gt;)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;Έτσι, το &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;ViewInitFilter&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; θα
δημιουργήσει ένα &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;instance&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;span&gt;του &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;Controller&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;.&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;DataSources&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;.&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;CurstomerEditBean&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;, και
αν υπάρχει &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;CustomerID&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;span&gt;παράμετρος στο &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;Request&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;, θα τη θέσει στο &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;CustomerID&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;property&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;span&gt;του &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;instance&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;span&gt;αυτού. Στη συνέχεια, θα
δώσει αυτό το &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;instance&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;span&gt;στο &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;view&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;span&gt;μας μέσω του &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;Data&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;property&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; … και
η ζωή συνεχίζεται. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;Ας ρίξουμε και μια ματιά σε
αυτό το &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;datasource&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;class&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;, και μετά
στον κώδικα του &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;view&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;span&gt;μας.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;using&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt; System;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;using&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;
System.Data;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;using&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;
System.Data.OleDb;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;namespace&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;
Controller.DataSources&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: gray;"&gt;///&lt;/span&gt;&lt;span style="color: green;"&gt; &lt;/span&gt;&lt;span style="color: gray;"&gt;&amp;lt;summary&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: gray;"&gt;///&lt;/span&gt;&lt;span style="color: green;"&gt; Retieves / Updates data regarding Customers&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: gray;"&gt;///&lt;/span&gt;&lt;span style="color: green;"&gt; &lt;/span&gt;&lt;span style="color: gray;"&gt;&amp;lt;/summary&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;public&lt;/span&gt; &lt;span style="color: blue;"&gt;class&lt;/span&gt; &lt;span style="color: teal;"&gt;CustomerEditBean&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;private&lt;/span&gt;
&lt;span style="color: blue;"&gt;int&lt;/span&gt; m_CustomerID = -1;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;public&lt;/span&gt;
CustomerEditBean() { }&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;public&lt;/span&gt; &lt;span style="color: blue;"&gt;int&lt;/span&gt; CustomerID {&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;get&lt;/span&gt;
{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;return&lt;/span&gt;
m_CustomerID;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;set&lt;/span&gt;
{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: green;"&gt;//
always check !&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;if&lt;/span&gt;
(-1 &amp;gt;= &lt;span style="color: blue;"&gt;value&lt;/span&gt;)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;throw&lt;/span&gt;
&lt;span style="color: blue;"&gt;new&lt;/span&gt; &lt;span style="color: teal;"&gt;ArgumentException&lt;/span&gt;(&lt;span style="color: maroon;"&gt;"Cannot initialize CustomerID to zero or less"&lt;/span&gt;);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;m_CustomerID = &lt;span style="color: blue;"&gt;value&lt;/span&gt;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;private&lt;/span&gt;
&lt;span style="color: teal;"&gt;DataSet&lt;/span&gt; m_CustomerData = &lt;span style="color: blue;"&gt;null&lt;/span&gt;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;public&lt;/span&gt; &lt;span style="color: teal;"&gt;DataView&lt;/span&gt; Data {&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;get&lt;/span&gt;
{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: green;"&gt;//
initialize the data if we have none ... &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;if&lt;/span&gt;
(&lt;span style="color: blue;"&gt;null&lt;/span&gt; == m_CustomerData)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;FetchData();&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: green;"&gt;//
Check what data I need to fetch ... &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;if&lt;/span&gt;
(&lt;span style="color: blue;"&gt;this&lt;/span&gt;.CustomerID &amp;gt; 0)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: green;"&gt;//
Fetch single customer data&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;m_CustomerData.Tables[0].DefaultView.RowFilter = &lt;span style="color: blue;"&gt;string&lt;/span&gt;.Format(&lt;span style="color: maroon;"&gt;"CustomerID =
{0}"&lt;/span&gt;, &lt;span style="color: blue;"&gt;this&lt;/span&gt;.CustomerID);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;return&lt;/span&gt;
m_CustomerData.Tables[0].DefaultView;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;public&lt;/span&gt; &lt;span style="color: blue;"&gt;bool&lt;/span&gt; Update() {&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;return&lt;/span&gt;
&lt;span style="color: blue;"&gt;true&lt;/span&gt;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;private&lt;/span&gt;
&lt;span style="color: blue;"&gt;void&lt;/span&gt; FetchData() {&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=""&gt;&amp;nbsp;&lt;/span&gt;m_CustomerData = &lt;span style="color: blue;"&gt;new&lt;/span&gt;
&lt;span style="color: teal;"&gt;DataSet&lt;/span&gt;();&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: teal;"&gt;OleDbDataAdapter&lt;/span&gt;
adapter = &lt;span style="color: blue;"&gt;new&lt;/span&gt; &lt;span style="color: teal;"&gt;OleDbDataAdapter&lt;/span&gt;(&lt;span style="color: maroon;"&gt;"select * from Customer"&lt;/span&gt;, &lt;span style="color: maroon;"&gt;"Provider=Microsoft.Jet.OLEDB.4.0;Data
Source=F:\\projects\\MVC\\mvc_sample.mdb"&lt;/span&gt;);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;adapter.Fill(m_CustomerData);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style=""&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;Τίποτα φοβερό. Παίζω με μια
τοπική &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;Access&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;, κι
ένα μόνο πίνακα, τον &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;customers&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;. Η
υλοποίηση είναι λίγο … άτσαλη, σε καμία περίπτωση δε θα γράφατε τέτοιο κώδικα
για &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;production&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;
υλοποίηση, αλλά για ένα γρήγορο παράδειγμα με 2 &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;rows&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;span&gt;στο &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;table&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;span&gt;είναι μια χαρά :&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;P&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;Θεωρητικά, όπως και τα &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;views&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;, έτσι και τα &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;data&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;sources&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;span&gt;θα πρέπει να υλοποιούν
κάποια συγκεκριμένα &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;interfaces&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;span&gt;ανάλογα τη χρήση και τα &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;data&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;span&gt;τους. Προς χάρην
… χρόνου, όμως, στο &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;sample&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;span&gt;κώδικα το έχω αφήσει «ελεύθερο» αυτό το
σημείο, και έχω «δέσει» το &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;datasource&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;span&gt;με το &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;view&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; στον ίδιο τον
κώδικα του &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;view&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;using&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt; System;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;using&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;
System.Data;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;using&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;
System.Configuration;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;using&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt; System.Web;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;using&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;
System.Web.Security;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;using&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;
System.Web.UI;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;using&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;
System.Web.UI.WebControls;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;using&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;
System.Web.UI.WebControls.WebParts;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;using&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;
System.Web.UI.HtmlControls;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;using&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;
Controller.View;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;using&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;
Controller.DataSources;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;public&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt; &lt;span style="color: blue;"&gt;partial&lt;/span&gt; &lt;span style="color: blue;"&gt;class&lt;/span&gt; &lt;span style="color: teal;"&gt;_Default&lt;/span&gt; : System.Web.UI.&lt;span style="color: teal;"&gt;Page&lt;/span&gt;,
&lt;span style="color: teal;"&gt;ISimpleView&lt;/span&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;protected&lt;/span&gt; &lt;span style="color: blue;"&gt;void&lt;/span&gt; Page_Load(&lt;span style="color: blue;"&gt;object&lt;/span&gt;
sender, &lt;span style="color: teal;"&gt;EventArgs&lt;/span&gt; e)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;if&lt;/span&gt;(&lt;span style="color: blue;"&gt;null&lt;/span&gt;!=&lt;span style="color: blue;"&gt;this&lt;/span&gt;.Data)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;Response.Write(&lt;span style="color: blue;"&gt;string&lt;/span&gt;.Format(&lt;span style="color: maroon;"&gt;"Injected DataObject: {0}"&lt;/span&gt;, &lt;span style="color: blue;"&gt;this&lt;/span&gt;.Data.GetType().ToString()));&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;if&lt;/span&gt; (&lt;span style="color: blue;"&gt;this&lt;/span&gt;.Data &lt;span style="color: blue;"&gt;is&lt;/span&gt; &lt;span style="color: teal;"&gt;CustomerEditBean&lt;/span&gt;) {&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: teal;"&gt;CustomerEditBean&lt;/span&gt;
bean = (&lt;span style="color: teal;"&gt;CustomerEditBean&lt;/span&gt;)&lt;span style="color: blue;"&gt;this&lt;/span&gt;.Data;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;this&lt;/span&gt;.lstCustomers.DataSource
= bean.Data;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;this&lt;/span&gt;.lstCustomers.DataBind();&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;#region&lt;/span&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt; ISimpleView Members&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;private&lt;/span&gt; &lt;span style="color: blue;"&gt;object&lt;/span&gt; m_Data = &lt;span style="color: blue;"&gt;null&lt;/span&gt;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;public&lt;/span&gt; &lt;span style="color: blue;"&gt;object&lt;/span&gt; Data&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;get&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;return&lt;/span&gt;
m_Data;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;set&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;m_Data = &lt;span style="color: blue;"&gt;value&lt;/span&gt;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;; color: blue;"&gt;&lt;span style=""&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;#endregion&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 8pt; font-family: &amp;quot;Courier New&amp;quot;;"&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;Βλέπετε, ότι το &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;view&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;span&gt;απαιτεί ένα &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;CustomerEditBean&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;instance&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;span&gt;για να παίξει. Σε αυτό το σημείο, εάν υλοποιούσαμε ένα &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;interface&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;span&gt;για τα &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;datasources&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;, θα
μπορούσαμε να αλλάζουμε &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;implementations&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; κατά
βούληση, από το &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;xml&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;span&gt;αρχείο. Στο επόμενο &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;sample &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;όμως αυτά … &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;:P&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;Για όσους ως τώρα δεν έχουν
καταλάβει τελικά τι συμβαίνει σε αυτό το &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;sample&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;span&gt;( μεταξύ αυτών κι εγώ .. είναι
Κυριακή πρωί και μάλλον δεν έχω συνέλθει από χτές … ), συνοψίζω:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;ol style="margin-top: 0in;"&gt;&lt;li class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;Έρχεται ένα &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;request&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;span&gt;για τη σελίδα &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;&lt;a href="http://locallhost/mvc/Default.aspx?CustomerID=1"&gt;http&lt;span style=""&gt;://&lt;/span&gt;locallhost&lt;span style=""&gt;/&lt;/span&gt;mvc&lt;span style=""&gt;/&lt;/span&gt;Default&lt;span style=""&gt;.&lt;/span&gt;aspx&lt;span style=""&gt;?&lt;/span&gt;CustomerID&lt;span style=""&gt;=1&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;O&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;Controller&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;span&gt;μας, δέχεται το &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;request&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;, και φτιάχνει μια &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;SimpleViewChain&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;
     για αν το επεξεργαστεί.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;Το πρώτο φίλτρο στην αλυσίδα ελέγχει αν ο
     χρήστης είναι &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;logged&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;in&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;. Στη
     συγκεκριμένη υλοποίηση … είναι πάντα.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;Το δεύτερο φίλτρο διαβάζει το &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;request&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;path&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;span&gt;και κάνει &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;compile&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; ένα &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;instance&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;span&gt;της σελίδας.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;Τα τρίτο φίλτρο δημιοργεί ένα &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;instance&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;span&gt;του &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;datasource&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;,
     του κάνει &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;inject&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;
     τις τιμές των όποιων παραμέτρων του, και το κάνιε με τη σειρά του &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;inject&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; στο &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;view&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;instance&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;Και τέλος, η αλυσίδα επιστρέφει το &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;data&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;structure&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;span&gt;της στον &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;Controller&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;, οποίος δίνει το &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;initialized&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;span&gt;πλέον &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;view&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;span&gt;πίσω στο &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;ASP&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;.&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;NET&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;span&gt;για να επιστρέψει &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;content&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;span&gt;στον &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;client&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;

&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;To&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;span&gt;απλό &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;sample&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; που έχω &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;attached&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;span&gt;δείχνει μια σελίδα, η οποία περιέχει το &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;grid&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;span&gt;με τους &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;customers&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;. Αν περάσετε
ως &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;GET&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;span&gt;παράμετρο ένα &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;CustomerID&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;, η σελίδα θα επιστρέψει τα δεδομένα μόνο του
συγκεκριμένου αυτού &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;customer&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;. &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;Ως επίλογο, πρέπει να πώ ότι το
&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;sample&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;span&gt;αυτό είναι μόνο μια «διατομή» ενός και μόνο σεναρίου. Δε γίνεται όλα τα
.&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;aspx&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;span&gt;ενός &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;site&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;span&gt;να έχουν το ίδιο &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;datasource&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;span&gt;– αυτό συμβαίνει στο σημερινό &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;sample&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;. Στη συνέχεια
αυτών των άρθρων, θα ασχοληθώ λίγο με το &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;view&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;management&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;, κοιτώντας
πως μπορούμε να δημιουργήσουμε έναν απλό μηχανισμό για να ορίζουμε τα &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;views&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;span&gt;της εφαρμογής
μας, και τα επιμέρους στοιχεία τους όπως &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;datasources&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;, παραμέτρους κτλ. Μετά κι από
αυτό, θα ήταν χρήσιμο να δούμε που μπορούμε να &lt;span style=""&gt;&amp;nbsp;&lt;/span&gt;κάνουμε πιο &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;optimized&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;span&gt;όλο αυτό το μηχανισμό,
με τεχνικές &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;caching&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;span&gt;και &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;object&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;pooling&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;Αλλά όλα αυτά … μετά από μια
‘βδομάδα ! Άυριο φεύγω για μια ‘βδομάδα διακοπές στο όμορφο Γύθειο Λακωνίας !!!&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;Καλή μας εβδομάδα λοιπόν.&lt;span style=""&gt;&amp;nbsp; &lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;Υ.Γ. Κάποια κομμάτια κώδικα στο
&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;sample&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;, χρησιμοποιούν
κώδικα που έχω γράψει για την εταιρία στην οποία δουλεύω. Έχω αφήσει τα &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt;namespaces&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Tahoma;"&gt; &lt;span&gt;ίδια, ελπίζοντας ότι εφ’ όσον δεν ενοχλεί την εταιρία να δίνει μέρη του
κώδικά της ελεύθερα, δεν πειράζει και αυτόν που το διαβάζει, ως τυχόν έμμεση
διαφήμιση. Σε περίπτωση που χρησιμοποιήσετε αυτόν τον κώδικα, παρακαλώ βάλτε
κάπου ένα σχόλιο ως την ελάχιστη αναγνώριση. Σας ευχαριστώ.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;</description></item><item><title>Απ: O Controller: MVC με ASP.NET</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/14819.aspx</link><pubDate>Mon, 17 Jul 2006 05:23:10 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:14819</guid><dc:creator>anjelinio</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/14819.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=14&amp;PostID=14819</wfw:commentRss><description>&lt;BLOCKQUOTE&gt;&lt;table width="85%"&gt;&lt;tr&gt;&lt;td class="txt4"&gt;&lt;img src="/cs/Themes/default/images/icon-quote.gif"&gt;&amp;nbsp;&lt;strong&gt;cgeo wrote:&lt;/strong&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="quoteTable"&gt;&lt;table width="100%"&gt;&lt;tr&gt;&lt;td valign="top" class="txt4"&gt;Μήπως κάνεις το θέμα υπερβολικά περίπλοκο; Ποιες είναι οι πραγματικές ανάγκες που σε οδηγούν σε ένα τέτοιο σχεδιασμό;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/BLOCKQUOTE&gt;&lt;br&gt;&lt;br&gt;Όσο περισσότερο κώδικα και orchestration φτιάξω εγώ, τόσο λιγότερο θα γράψει κάποιος junior μηχανικός, για να υλοποιήσει κάτι καινούργιο. &lt;br&gt;&lt;br&gt; Βασικά, η νοοτροπία είναι η δυνατότητα να προσθέτουμε καινούργια πράγματα πολύ γρήγορα. Και αυτό επιτυγχάνεται - πιστεύω - απο το "patternization"των features μιας εφαρμογής, έχοντας το όποιο framework να κάνει τα περισσότερα πράγματα για 'σενα, κι εσυ απλώς "γεμίζεις τα κενά", υλοποιώντας νέα features γράφοντας τον ελάχιστο δυνατό κώδικα, ο οποίος ακολουθεί πολύ "στανταρισμένη" δομή.&amp;nbsp;  &lt;br&gt;&lt;br&gt;Η πολυπλοκότητα προκύπτει απο την απαίτηση να μπορώ να προσθαφαιρώ κώδικα δυναμικά, και με ελεγχόμενο τρόπο. Άρα, χρειάζομαι πολύ συγκεκριμένο, και πολύ δυναμικό orchestration. Και επίσης, performant ! Πρέπει να εξυπηρετώ 1500 με 2000 ταυτόχρονα sessions στις ζόρικες ώρες της μέρας. Όλα αυτά δεν μπορείς να τα πετύχεις με μερικά aspx και user ή custom controls. Χρειάζεται πραγματικό orchestration και οργάνωση. &lt;br&gt;</description></item><item><title>Απ: O Controller: MVC με ASP.NET</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/14810.aspx</link><pubDate>Mon, 17 Jul 2006 04:17:01 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:14810</guid><dc:creator>Χρήστος Γεωργακόπουλος</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/14810.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=14&amp;PostID=14810</wfw:commentRss><description>Μήπως κάνεις το θέμα υπερβολικά περίπλοκο; Ποιες είναι οι πραγματικές ανάγκες που σε οδηγούν σε ένα τέτοιο σχεδιασμό;</description></item><item><title>O Controller: MVC με ASP.NET</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/14800.aspx</link><pubDate>Sun, 16 Jul 2006 20:57:58 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:14800</guid><dc:creator>anjelinio</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/14800.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=14&amp;PostID=14800</wfw:commentRss><description>&lt;i&gt;O Controller λοιπόν .... &lt;/i&gt;&lt;br&gt;&lt;br&gt;Στα πλαίσια του MVC, Ο Controller είναι ένα instance μίας κλάσης, απο τον οποίο περνάνε όλα τα incoming requests προτού εξυπηρετηθούν απο το κατάλληλο view. Μέσα στα πλαίσια της δουλειάς του Controller είναι το "φιλτράρισμα" των requests για authentication / authorization, η επιλογή του κατάλληλου view το οποίο θα εξυπηρετήσει τελικά το request, πιθανώς το initialization αυτού του view και του αντίστοιχου μοντέλου για αυτό, και τέλος η προώθηση του request στο ίδιο το view για το τελικό processing. &lt;br&gt;&lt;br&gt;Στο ASP.NET, έχουμε τρείς βασικές επιλογές όσον αφορά τον τύπο ενός Controller. *&lt;br&gt;&lt;br&gt;&lt;b&gt;The Page is the controller.&lt;/b&gt;&lt;br&gt;&lt;br&gt;Κάθε σελίδα κάνει inherit μια base class. Έτσι ο κοινός μας κώδικας, αυτός που είναι μέσα στον controller, "&lt;i&gt;τρέχει&lt;/i&gt;" πάντα, λόγω του ότι τον περιλαμβάνει η base class κάθε σελίδας μας. Αυτή είναι και η variation του MCV που προωθεί η Microsoft, και ονομάζεται MVP ( Model - View - Presenter ).&lt;br&gt;&lt;br&gt;Προσωπικά, δε μ'αρέσει αυτή η υλοποίηση. Η βασική "&lt;i&gt;ιδεολογική&lt;/i&gt;" διαφωνία μου είναι οτι δεν προωθεί τον "&lt;i&gt;καθαρό&lt;/i&gt;" διαχωρισμό των components του MVC. Σε ωθεί πολλές φορές να ξεφύγεις, και τελικά βρίσκεις μια base class η οποία είναι γεμάτη static μεθόδους οι οποίες τελικά αναλαμβάνουν .. τα πάντα. Και σύντομα ο controller σου έχει γίνει και data access helper, και το ένα και το άλλο, και σεντόνια κώδικα υπάρχουν μέσα σε μια κλάση η οποία δε διαβάζεται πλέον. &lt;br&gt;&lt;br&gt;Επίσης, δυσκολεύει πολύ με τη χρήση του Page Controller η χρήση "&lt;i&gt;ψεύτικων&lt;/i&gt;" urls - ένα είδος url rewritting αν προτιμάτε. Π.χ. δε μπορείς με εύκολο τρόπο να αντιστοιχήσεις το url http://mysite.com/products/carparts.list σε μια, μοναδική σελίδα. Βέβαια, αυτό είναι υποκειμενικό επιχείρημα, υπάρχει τρόπος, απλώς εμένα δε μ'αρέσει αυτή η μεθοδολογία, μ'αρέσει τα διαφορετικά μέρη ενός συστήματος να είναι και διαφορετικές κλάσεις/instances :P&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;b&gt;IHttpHandler Controller.&lt;/b&gt;&lt;br&gt;&lt;br&gt;Αν έχετε ασχοληθεί καθόλου με Java, η έννοια του http handler θα σας είναι πολύ οικεία. Κάνει "&lt;i&gt;map&lt;/i&gt;" ακριβώς στα Java Servlets. Για τους πιο παλιούς, σκεφτείτε το σαν ένα CGI script. Δεν έχει designer και controls, είναι μια απλή κλάσση η οποία υλοποιεί το IHttpHandler interface, και παράγει το content του response με κώδικα. &lt;br&gt;&lt;br&gt;Το IHttpHandler interface ορίζεται ώς εξής:&lt;br&gt;&lt;br&gt;&lt;font face="Courier New" size="2"&gt;bool IsReusable&amp;nbsp; - Gets a value indicating whether another request can use the IHttpHandler instance.&lt;br&gt;&lt;br&gt;void ProcessRequest( HttpContext context ); - Enables processing of HTTP Web requests by a custom HttpHandler that implements the IHttpHandler interface.&lt;/font&gt;&lt;br&gt;&lt;br&gt;Μέσα στην ProcessRequest, η παράμετρος context μας δίνει πρόσβαση στο Request &amp;amp; Response, στο Application, Session και όλα τα άλλα objects σχετικά με το Web App μας, και το συγκεκριμένο request που εξυπηρετούμε. Ένα απλοϊκό παράδειγμα απο το MSDN ακολουθεί:&lt;br&gt;using System.Web;&lt;br&gt;&lt;br&gt;namespace HandlerExample&lt;br&gt;{&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public class MyHttpHandler : IHttpHandler&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Override the ProcessRequest method.&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public void ProcessRequest(HttpContext context)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; context.Response.Write("&amp;lt;H1&amp;gt;This is an HttpHandler Test.&amp;lt;/H1&amp;gt;");&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; context.Response.Write("&amp;lt;p&amp;gt;Your Browser:&amp;lt;/p&amp;gt;");&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; context.Response.Write("Type: " + context.Request.Browser.Type + "&amp;lt;br&amp;gt;");&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; context.Response.Write("Version: " + context.Request.Browser.Version);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Override the IsReusable property.&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public bool IsReusable&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; get { return true; }&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;}&lt;br&gt;Μπορούμε να κάνουμε map μέσα στο Web.Config αυτή την κλάσση σε οποιοδήποτε pattern ενό url επιθυμούμε. Π.χ. &lt;br&gt;&lt;br&gt;&amp;lt;httpHandlers&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;add verb="*" path="*.aspx" type="HandlerExample.MyHttpHandler , HandlerExample"/&amp;gt;&lt;br&gt;&amp;lt;/httpHandlers&amp;gt;&lt;br&gt;&lt;br&gt;Αυτή η γραμμή στο web config, ορίζει στο σύστημα οτι οποιοδήποτε url ακολουθεί το pattern *.aspx θα εξυπηρετείται απο ένα instance της κλάσης HandlerExample.MyHttpHandler, η οποιά βρίσκεται στο assembly HandlerExample. &lt;br&gt;&lt;br&gt;Tέτοιοι handlers είναι ιδανικοί για περιπτώσεις που για οποιονδήποτε λόγο θες να "&lt;i&gt;κρύψεις&lt;/i&gt;" τα urls των σελίδων σου, ή θες να σερβίρεις binary content, ή τελος πάντων θες να κάνεις κατι που πέφτει στην αρμοδιότητα ενός Page class. Π.χ. αν επιστρέφεις κάποιο γράφημα, είναι overkill να το κάνεις απο ένα aspx - κάνοντάς το απο έναν Htpp Handler είναι πολύ πιο "&lt;i&gt;καθαρό&lt;/i&gt;". Κατα συνέπεια, η χρήση ενός Http Handler ως ο Controller τοτυ MVC μας φαίνεται οτι είναι πολύ καλή επιλογή. &lt;br&gt;&lt;br&gt;Υπάρχει όμως ένα μειονέκτημα. Ο IHttpHandler πρεέπι να επιστρέψει content στο Response. Kι άλλο ένα, μεγαλύτερο ... δεν μπορείς να κάνεις Server.Transfer μέσα σε έναν IHttpHandler. &lt;br&gt;&lt;br&gt;Στο υποθετικό σενάριο "&lt;i&gt;είμαι ο controller, διαβάζω το request, αποφασίζω ποιό view θα δείξω, κάνω instantiate το μοντέλο, και προωθώ στο view&lt;/i&gt;" με τη χρήση IHttpHandler κολλάμε στο .. "&lt;i&gt;προωθώ στο view&lt;/i&gt;". Άντε, πες οτι ξέρω ποια σελίδα είναι το view, και κάπως έχω καταφέρει να βρώ ένα instance αυτής της σελίδας, compiled and ready and willing ... τι κάνω; Κάνω Response.Redirect ή εκμεταλλεύομαι το γεγονός οτι το Page υλοποιεί το IHttpHandler interface, και του καλώ την ProcessRequest του.&amp;nbsp; &lt;br&gt;&lt;br&gt;Καλά ως εδώ ... αλλά κάτι δε μ' αρέσει σε αυτή την ιστορία. Ίσως το μόνο που χρειάζεται είναι όντως να καλέσω την Processrequest στο Page instance. Αλλά αυτή τη δουλειά την κάνει πολύ καλά το σύστημα για 'μένα υπο Κ.Σ. - μήπως εγώ κάνω καμμιά #$%^# και χαλασω τα πράγματα; Μήπως μπλέκω πολύ με το σύστημα;&lt;br&gt;&lt;br&gt;Θα προτιμούσα λοιπόν μια λύση κατα την οποία εγώ το μόνο που χρειάζεται να κάνω είναι να βρώ αυτο το page, να κάνω τα initializations που πιθανώς χρειάζονται, και να την επιστρέψω στο σύστημα για να κάνει αυτό τη δουλειά του - να μην την κάνω εγώ γι' αυτό. &amp;nbsp;&lt;br&gt;Η λύση που μου δίνει το ASP.NET για κάτι τέτοιο, είναι ο ... &lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;b&gt;IHttpHandlerFactory Controller.&lt;/b&gt;&lt;br&gt;&lt;br&gt;Το interface IHttpHandlerFactory νοηματικά μοιάζει πολύ με τον IHttpHandler. Με τον ίδιο ακριβώς τρόπο στο web config, και με την ίδια "νοοτροπία" κάνω map ένα url pattern σε ένα instance της κλάσσης μου, η οποία υλοποιεί το IHttpHandlerFactory interface. &lt;br&gt;&lt;br&gt;Το IHttpHandlerFactory interface ορίζεται ώς εξής:&lt;br&gt;&lt;br&gt;&lt;font face="Courier New"&gt;IHttpHandler GetHandler( HttpContext context, string requestType, string url, string pathTranslated );&lt;br&gt;&lt;br&gt;void ReleaseHandler( IHttpHandler handler ); &lt;/font&gt;&lt;br&gt;&lt;br&gt;H βασική του διαφορά απο τον απλό IHttpHandler είναι οτι το IHttpHandlerFactory είναι .. ο πατέρας του, ένα σκαλί πιο κάτω στο σύστημα. Δέχεται το incoming request, και επιστρέφει το instance ενός IHttpHandler το οποίο τελικά θα εξυπηρετήσει το request. &lt;br&gt;&lt;br&gt;Επίσης, υποστηρίζει out-of-the-box, τη δυνατότητα να κάνεις pooling στα instances των handlers που επιστρέφεις, μέσω της ReleaseHandler. Κάθε instnce που έχεις επιστρέψει απο την GetHandler τελικά θα σου επιστραφεί απο το σύστημα μόλις τελειώσει τη δουλειά της, για να κάνεις με αυτό οτι γουστάρεις. Όπως είναι προφανές, το IHttpHandlerFactory δίνει ξεκάθαρα την εντύπωση οτι είναι γραμμένο για να ικανοποιεί τυπάκια σαν την πάρτη μου, ούτε παραγγελία να το είχα !&lt;br&gt;&lt;br&gt;Στο ταπεινό παράδειγμα που έχω attached, θα βρείτε την υλοποίηση ενός IHttpHandlerFactory σε ένα ξεχωριστό class library, κι ένα web projectτο οποίο τον χρησιμοποιεί. Δεν κάνει κάτι σπουδαίο - κάνει intercept όλα τα requests για aspx σελίδες, κάνει αν χρειάζεται compile τη σελίδα, και επιστρέφει το compiled page instance στο σύστημα. Τρέχοντας το project και ζητώντας την default.aspx ... θα πάρετε πίσω κανονικά την default.aspx, λες και ο handler factory δεν υπήρξε ποτέ :P .. ένα breakpoint στην GetHandler όμως θα ξεκαθαρίσει τα πράγματα. Κάθε incoming request για *.aspx περνάει μέσα απο 'κεί.&lt;br&gt;&lt;br&gt;Το πολύπλοκο μέρος θα σκεφτόταν κανείς, είναι στο να κάνεις compile το .aspx και να πάρεις πίσω class instance. Ευτυχώς, το framework περιέχει την κλάση System.Web.UI.PageParser η οποία κάνει ακριβώς αυτό, οπότε η υλοποίηση είναι παιχνιδάκι. Αλλά το θέμα δεν είναι πλέον αυτό.&lt;br&gt;Αυτό που είναι το θέμα, είναι το γεγονός(τα) ότι:&lt;br&gt;&lt;br&gt;1. Σε κάθε request, έχω τη δυνατότητα να τρέχω κώδικα κάπου κεντρικά.&lt;br&gt;&lt;br&gt;2. Το URL του request δε με εμποδίζει πιά, και μπορώ να χρησιμοποιήσω οποιοδήποτε pattern θέλω, είτε αυτό είναι http://mysite/default.aspx?CatID=3&amp;amp;SubCatID=2 ή Http://mysite/company/about-us/&amp;nbsp; &lt;br&gt;&lt;br&gt;3. Έχω τον έλεγχο πλέον να επιλέξω ποια θα είναι η σελίδα που τελικά θα εξυπηρετήσει το request. Αν θέλω, μπορεί και να μην είναι καν σελίδα !&lt;br&gt;&lt;br&gt;4. Προτού η σελίδα αρχίσει να εξυπηρετεί, έχω το instance της. Μπορώ να της κάνω ότι θέλω. Σκεφτείτε σελίδες όπου δεν υπάρχει data access κώδικας μέσα, γιατί το data set τους ( ή το "μοντέλο" αν προτιμάτε ) έρχεται απο ένα property το οποίο έχει θέσει ο handler απ' έξω προτού εκτελεστεί η σελίδα απο το σύστημα.&lt;br&gt;&lt;br&gt;Κοντολογίς, προτιμώ την επιλογή του IHttpHandleFactory για τον controller μου, γιατί με αφήνει να επικεντρωθώ μόνο στις δουλειές που πρέπει να γίνουν μέσα σε έναν controller, χωρίς αν χρειάζεται να ασχοληθώ με το lifetime management της σελίδας / view. Κάνω ότι χρειάζεται να κάνω, και αφήνω το ASP.NEΤ να κάνει ότι κάνει ήδη καλά για 'μένα. &lt;br&gt;&lt;br&gt;Nομίζω οτι στο επόμενο post θα ασχοληθώ με το πόσο "&lt;i&gt;μονολιθικός&lt;/i&gt;" μπορεί στο τέλος να γίνει ένας τέτοιος controller, και πως επέλεξα να κάνω abstract away το πρόβλημα του "&lt;i&gt;τι κομμάτια κώδικα θα τρέξω στο handler και πως θα τα προσθαφαιρώ ευέλικτα"&lt;/i&gt; με τη χρήση ενός ακόμα pattern, του Filter Chain. &lt;br&gt;&lt;br&gt;Ως τότε όμως ... καλό απόγευμα Κυριακής :) &lt;br&gt;&lt;br&gt;Y.G. Έπρεπε να σταματήσω, έχει και Φόρμουλα 1 σε μισή ωρίτσα :D &lt;br&gt;&lt;br&gt;&lt;br&gt;</description></item><item><title>Απ: MVC  με Patterns &amp; ASP.NET</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/14764.aspx</link><pubDate>Sat, 15 Jul 2006 01:32:56 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:14764</guid><dc:creator>anjelinio</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/14764.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=14&amp;PostID=14764</wfw:commentRss><description>&lt;BLOCKQUOTE&gt;&lt;table width="85%"&gt;&lt;tr&gt;&lt;td class="txt4"&gt;&lt;img src="/cs/Themes/default/images/icon-quote.gif"&gt;&amp;nbsp;&lt;strong&gt;cgeo wrote:&lt;/strong&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="quoteTable"&gt;&lt;table width="100%"&gt;&lt;tr&gt;&lt;td valign="top" class="txt4"&gt;&lt;p&gt;Ρϊξε μια ματιά και σε αυτόν εδώ με MVP: &lt;a href="http://msdn.microsoft.com/msdnmag/issues/06/08/DesignPatterns/default.aspx"&gt;http://msdn.microsoft.com/msdnmag/issues/06/08/DesignPatterns/default.aspx&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;"As UI-creation technologies such as ASP.NET and Windows® Forms become more and more powerful, it's common practice to let the UI layer do more than it should. Without a clear separation of responsibilities, the UI layer can often become a catch-all for logic that really belongs in other layers of the application. One design pattern, the Model View Presenter (MVP) pattern, is especially well suited to solving this problem. In order to illustrate my point, I will build a display screen that follows the MVP pattern for customers in the Northwind database..." &lt;/em&gt;(χτίζει web form)&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/BLOCKQUOTE&gt;&lt;br&gt;&lt;br&gt;Χμμμ ... ο φίλος μας εδώ ακολουθεί το variation του MVC, το MVP - "έτσι το κάνουμε στη Microsoft" - όπου συνήθως ο Controller είναι στην ουσία το ίδιο το view, λόγω οτι το code behind μιας σελίδας κάνει inherit μια base class. Προσωπικά δε μ'αρέσει αυτή η ιδέα, γαιτί πολύ συχνά καταλήγει η base να έχει ένα σωρό static μεθόδους για τις ανάγκες όλου του project - ανάλογα πάντα με τον ποιός το σχεδίασε και ποιός το υλοποίησε :]&lt;br&gt;&lt;br&gt;Προτιμώ το ξεκάθαρο separation, ανα concern. Ο COntroller είναι μόνο controller, ο dispatcher μόνο dispatcher και τέτοια :)&lt;br&gt;&lt;br&gt;Τέλος πάντων ... αργότερα περισσότερα, και με κώδικα :P&lt;br&gt;</description></item><item><title>Απ: MVC  με Patterns &amp; ASP.NET</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/14762.aspx</link><pubDate>Sat, 15 Jul 2006 01:22:26 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:14762</guid><dc:creator>anjelinio</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/14762.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=14&amp;PostID=14762</wfw:commentRss><description>Σιγά - σιγά Χρήστο ... ένα-ένα αρθράκι θα περάσω πολύ αναλυτικά απο ολα τα μέρη, γιατί διάλεξα τί, οσο πιο καλά μπορώ, τα πάντα ... &lt;br /&gt;
&lt;br /&gt;
Δυστυχώς ενώ κάθησα χτες το βράδυ κι έγραφα 1-μισι ώρα άρθρο για τον Controller ...  όταν πάτησα submit είχα γίνει log-out και τα έχασα όλα ! :(&lt;br /&gt;
&lt;br /&gt;
Θα το ξαναγράψω σήμερα όμως ... :P τί να κάνεις ...</description></item><item><title>Απ: MVC  με Patterns &amp; ASP.NET</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/14732.aspx</link><pubDate>Fri, 14 Jul 2006 20:42:38 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:14732</guid><dc:creator>Χρήστος Γεωργακόπουλος</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/14732.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=14&amp;PostID=14732</wfw:commentRss><description>Θα μου πεις βέβαια, ότι εσύ έχει παίξει με chaining στον controller, αλλά δεν μπορώ να φανταστώ πολύ καλά πραγματικά παραδείγματα που οφελεί σε γενικές γραμμές. Μπορείς να μας δώσεις παραδείγματα που το έχεις εφαρμόσει και αξίζει τον κόπο;</description></item><item><title>Απ: MVC  με Patterns &amp; ASP.NET</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/14731.aspx</link><pubDate>Fri, 14 Jul 2006 20:40:40 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:14731</guid><dc:creator>Χρήστος Γεωργακόπουλος</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/14731.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=14&amp;PostID=14731</wfw:commentRss><description>&lt;P&gt;Ρϊξε μια ματιά και σε αυτόν εδώ με MVP: &lt;A href="http://msdn.microsoft.com/msdnmag/issues/06/08/DesignPatterns/default.aspx"&gt;http://msdn.microsoft.com/msdnmag/issues/06/08/DesignPatterns/default.aspx&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;"As UI-creation technologies such as ASP.NET and Windows® Forms become more and more powerful, it's common practice to let the UI layer do more than it should. Without a clear separation of responsibilities, the UI layer can often become a catch-all for logic that really belongs in other layers of the application. One design pattern, the Model View Presenter (MVP) pattern, is especially well suited to solving this problem. In order to illustrate my point, I will build a display screen that follows the MVP pattern for customers in the Northwind database..." &lt;/EM&gt;(χτίζει web form)&lt;/P&gt;</description></item><item><title>Απ: MVC  με Patterns &amp; ASP.NET</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/14691.aspx</link><pubDate>Fri, 14 Jul 2006 02:08:06 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:14691</guid><dc:creator>agmarios</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/14691.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=14&amp;PostID=14691</wfw:commentRss><description>&lt;P&gt;Ας πάρω τα πράγματα με τη σειρά:&lt;/P&gt;
&lt;P&gt;1. Πώς βάζω στον editor ένα κομμάτι από το post κάποιου άλλου (το έχω καταφέρει μία και μοναδική φορά)&lt;img src="/cs/emoticons/emotion-10.gif" alt="Embarrassed" /&gt;&lt;BR&gt;2. Πρέπει να παραδεχτώ ότι στο front end πολλές φορές μπαίνουν πράγματα που δεν έχουν καμία θέση εκεί.&lt;BR&gt;3. Ίσως να μην καταλαβαίνω την σημασία γιατί δεν έχω δουλέψει ποτέ σε κανονική ομάδα.&lt;BR&gt;4. Πιθανότατα όλα αυτά να ξεκαθαρίσουν όταν εμφανιστεί ο κώδικας.&lt;BR&gt;5. Τα πλεονεκτήματα που αναφέρεις δεν έχουν να κάνουν περισσότερο με την πιστή εφαρμογή σχεδιαστικών κανόνων και την αποφυγή "μπακαλίστικων λύσεων";&lt;BR&gt;6. "Περισσότερα, στα επόμενα ... " περισσότερες απορίες στα επόμενα&lt;/P&gt;
&lt;P&gt;Μάριος&lt;BR&gt;υ.γ. Νομίζω ότι αντιδρώ όπως κάποιος που οργάνωνε τον κώδικά του σωστά σε functions και libraries πριν από 10-13 χρόνια και άκουγε για objects και classes. Ευτυχώς αυτός ξεπεράστηκε&lt;img src="/cs/emoticons/emotion-2.gif" alt="Big Smile" /&gt;&lt;/P&gt;</description></item><item><title>Απ: MVC  με Patterns &amp; ASP.NET</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/14689.aspx</link><pubDate>Fri, 14 Jul 2006 00:53:02 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:14689</guid><dc:creator>anjelinio</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/14689.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=14&amp;PostID=14689</wfw:commentRss><description>&lt;BLOCKQUOTE&gt;&lt;table width="85%"&gt;&lt;tr&gt;&lt;td class="txt4"&gt;&lt;img src="/cs/Themes/default/images/icon-quote.gif"&gt;&amp;nbsp;&lt;strong&gt;cgeo wrote:&lt;/strong&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="quoteTable"&gt;&lt;table width="100%"&gt;&lt;tr&gt;&lt;td valign="top" class="txt4"&gt;Το MVC δεν καταργεί τα layers, αναλαμβάνει απλά να οργανώσει μπλεγμένα πράγματα μέσα στο ίδιο layer (Συνήθως στο front end).&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/BLOCKQUOTE&gt;&lt;br&gt;&lt;br&gt;Ακριβώς αυτό είναι που είπε ο Χρήστος φίλε Μάριε. Δεν καταργώ το n-tier, απλως το κρύβω πίσω απο το μοντέλο του εκάστοτε view ( όπου view, μπορείς τις περισσότερες φορές να αντικαταστήσεις με .. use case )&lt;br&gt;&lt;br&gt;Αυτό που κερδίζεις είναι:&lt;br&gt;&amp;nbsp;uniformity -&amp;gt; δε μπορεί ο καθένας να κάνει ότι του καπνίσει&lt;br&gt;Λιγότερο - τελικά - κώδικα -&amp;gt; για το χρήστη/implementer ενος feature, ο οποίος θα βασιστεί στα έτοιμα ... &lt;br&gt;Flexibility -&amp;gt; αλλάζω το config file των views, και άλλαξα το απο που τραβάει data ας πούμε, η τη σελίδα που τα δείχνει αυτα τα data, το view ... &lt;br&gt;More Flexibility -&amp;gt; Εφ' όσον έχω μια "αλυσίδα" μπροστά, μπορώ να προσθέσω / αφαιρέσω filters ανα πάσα στιγμη, at runtime&lt;br&gt;&lt;br&gt;Αυτού του τύπου είναι τα gains. Ακόμη ενα πολύ σημαντικό είναι οτι πιθανώς&amp;nbsp;&amp;nbsp; α ν ά μ ε σ α &amp;nbsp; σε αυτά τα steps, μπορείς να παρεμβάλλεις πράγματα όπως logging, ή γενικότερου τύπου functionality δυναμικά. Αλλά το κύριο gain είναι η ομοιομορφία του κώδικα της εφαρμογής, και ο ελάχιστος δυνατός νέος κώδικας.&lt;br&gt;&lt;br&gt;Περισσότερα, στα επόμενα ... &lt;br&gt;</description></item><item><title>Απ: MVC  με Patterns &amp; ASP.NET</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/14686.aspx</link><pubDate>Fri, 14 Jul 2006 00:29:20 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:14686</guid><dc:creator>Χρήστος Γεωργακόπουλος</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/14686.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=14&amp;PostID=14686</wfw:commentRss><description>Το MVC δεν καταργεί τα layers, αναλαμβάνει απλά να οργανώσει μπλεγμένα πράγματα μέσα στο ίδιο layer (Συνήθως στο front end).</description></item><item><title>Απ: MVC  με Patterns &amp; ASP.NET</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/14685.aspx</link><pubDate>Fri, 14 Jul 2006 00:15:05 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:14685</guid><dc:creator>agmarios</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/14685.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=14&amp;PostID=14685</wfw:commentRss><description>πολύ ενδιαφέρον. Πριν από τον κώδικα θα ήθελα να μας πεις και τα πλεονεκτήματα από αυτήν προσέγγηση σε σχέση με το (n-tier) μοντέλο.&lt;br /&gt;
&lt;br /&gt;
Αν κατάλαβα καλά το model είναι το business logic layer, το view είναι το UI, το data layer δεν το αποφεύγεις (και ας το κρύβεις μέσα στο model) και απλά φτιάχνεις ένα δικό σου httpHandler  (ο controller) αντί να χρησιμοποιείς αυτόν του .net&lt;br /&gt;
&lt;br /&gt;
Δδεν πιστεύω ότι όλοι αυτοί που ασχολούνται με την σχεδίαση νέων προγραμματιστικών μοντέλων απλά παιρνούν τον καιρό τους, θα υπάρχει κάποιος λόγος για όλα αυτά (και για τις ώωωωωωωρες σχεδίασης και υλοποίησης που αφιερώνεις), οπότε περιμένω με πραγματική ανυπομονεσία την συνέχεια των άρθρων σου.</description></item><item><title>Απ: MVC  με Patterns &amp; ASP.NET</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/14662.aspx</link><pubDate>Thu, 13 Jul 2006 20:30:30 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:14662</guid><dc:creator>anjelinio</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/14662.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=14&amp;PostID=14662</wfw:commentRss><description>.. χμμ ... μεγάλο font δε βγήκε αυτο; .. χμμμ ...</description></item><item><title>MVC  με Patterns &amp; ASP.NET</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/14661.aspx</link><pubDate>Thu, 13 Jul 2006 20:29:37 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:14661</guid><dc:creator>anjelinio</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/14661.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=14&amp;PostID=14661</wfw:commentRss><description>&lt;p class="MsoNormal" align="justify"&gt;&lt;font face="Arial" size="2"&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;Τον
τελευταίο καιρό στη δουλειά, γράφω κάτι που πολύ καιρό τώρα σκεφτόμουν. Μια &lt;/span&gt;&lt;b&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;MVC&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;&lt;b&gt; &lt;/b&gt;( &lt;/span&gt;&lt;i&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;Model&lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt; – &lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;View&lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt; – &lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;Controller&lt;/span&gt;&lt;/i&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt; ) υλοποίηση σε &lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;ASP&lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;.&lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;NET&lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt; &lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;για χρήση στην εφαρμογή μας.&lt;o:p&gt; &lt;br&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;div align="justify"&gt;



&lt;/div&gt;&lt;p class="MsoNormal" align="justify"&gt;&lt;font face="Arial" size="2"&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;Το &lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;MVC&lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;, αν και από τα πιο δημοφιλή
ακρώνυμα στον Πληροφορικόκοσμο, κατά την πενιχρή μου εμπειρία σπάνια το
συναντάς σε &lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;ASP&lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;.&lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;NET&lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt; &lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;εφαρμογές,
τουλάχιστον στην Ελλάδα. Εντάξει, από μια άποψη πιστεύω κι εγώ ότι το &lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;ASP&lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;.&lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;NET&lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt; &lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;και το &lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;Visual&lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt; &lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;Studio&lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt; &lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;δε σε σπρώχνουν προς τέτοιες
κατευθύνσεις με όλα τα καλούδια που σου έχουν έτοιμα. Μπορεί να είμαι άδικος,
αλλά αυτή είναι η εντύπωσή μου … τέλος πάντων.&lt;br&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;div align="justify"&gt;



&lt;/div&gt;&lt;p class="MsoNormal" align="justify"&gt;&lt;font face="Arial" size="2"&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;Η
&lt;i&gt;«πρόταση» &lt;/i&gt;του &lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;MVC&lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt; &lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;είναι
απλή. Κατά βάση, σπάς την εφαρμογή σου σε 3 μέρη:&lt;br&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;div align="justify"&gt;

&lt;ol style="margin-top: 0cm;"&gt;&lt;li class="MsoNormal" style=""&gt;&lt;font face="Arial" size="2"&gt;&lt;b&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;Το Μοντέλο ( &lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;Model&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;&lt;b&gt; ).&lt;/b&gt; Υποτίθεται
     ότι το μοντέλο είναι ένα &lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;encapsulation&lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt; &lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;των δεδομένων που θα
     χρησιμοποιήσει η εφαρμογή. Μπορεί να είναι οτιδήποτε από ένα απλό &lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;data&lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt; &lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;object&lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;, ως κάποιο περίπλοκο εσωτερικά &lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;business&lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt; &lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;object&lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt; &lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;με χιλιάδες γραμμές κώδικα λογικής μέσα, και όλα
     ανάμεσά τους. Πολύ συχνά μιλώντας με κόσμο, έχω την εντύπωση ότι ο κόσμος
     πιστεύει ότι το μοντέλο είναι &lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;encapsulation&lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt; &lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;ΟΛΩΝ των δεδομένων / λογικής
     της εφαρμογής μας, αλλά δεν πιστεύω ότι είναι έτσι. Αντίθετα, πιστεύω ότι
     το μοντέλο θα πρέπει να είναι ένα &lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;fine&lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;-&lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;grained&lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;, &lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;focused&lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt; &lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;business&lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt; &lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;object&lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;, το οποίο υλοποιεί τη λογική που χρειάζεσαι για μια
     συγκεκριμένη ενέργεια στα πλαίσια της εφαρμογής. Πάντα φυσικά, τα μεγέθη
     ποικίλλουν &lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;:P&lt;/span&gt;&lt;/font&gt;&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;&lt;font face="Arial" size="2"&gt;&lt;b&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;Η «οθόνη», ή το &lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;View&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;&lt;b&gt;. &lt;/b&gt;Το
     δύστυχο, μικρό &lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;View&lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt; &lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;δεν είναι τίποτα άλλο από ένα &lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;UI&lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;
     &lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;το οποίο
     απεικονίζει δεδομένα από το μοντέλο, και το αντίθετο. Τροφοδοτεί το
     μοντέλο με &lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;user&lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt; &lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;input&lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt; &lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;data&lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;. Ο
     προσωπικός μου κανόνας είναι ότι σε ένα &lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;view&lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt; &lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;δε θα πρέπει να υπάρχει ποτέ
     κάποιο &lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;block&lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt; &lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;business&lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt; &lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;κώδικα, ή &lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;rules&lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt; &lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;κώδικας
     πέραν απλών &lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;input&lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt; &lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;validators&lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;. Αυτός ο κώδικας ανήκει στο
     μοντέλο. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;&lt;font face="Arial" size="2"&gt;&lt;b&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;Ο&lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt; &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;&lt;b&gt;Controller.&lt;/b&gt; &lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;Ο
     &lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;Controller&lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt; &lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;είναι η κλάση της οποίας η
     ευθύνη είναι να αναλαμβάνει το κάθε &lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;incoming&lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt; &lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;request&lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;, να
     βρίσκει το κατάλληλο &lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;view&lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt; &lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;το οποίο θα εξυπηρετήσει το &lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;request&lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;, και
     να κάνει &lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;instantiate&lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt; &lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;το μοντέλο ( &lt;i style=""&gt;αν δεν υπάρχει ήδη κάπου, &lt;/i&gt;&lt;/span&gt;&lt;i style=""&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;accessible&lt;/span&gt;&lt;/i&gt;&lt;i style=""&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt; από όλους &lt;/span&gt;&lt;/i&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;). Αυτό βέβαια δεν σημαίνει απαραίτητα ότι ο &lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;controller&lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt; &lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;πρέπει ντε και καλά να είναι ΜΙΑ κλάση, η οποία κάνει ΟΛΑ αυτά τα
     πράγματα. Βασικά, οποιοδήποτε από τα 3 μέρη του &lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;MVC&lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt; μπορεί με τη σειρά του να
     σπάσει σε υπομέρη, με μια σειρά από κλάσεις να υλοποιούν το συνολικό &lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;functionality&lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;.&lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;&lt;o:p&gt; &lt;br&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/li&gt;&lt;/ol&gt;



&lt;/div&gt;&lt;p class="MsoNormal" align="justify"&gt;&lt;font face="Arial" size="2"&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;Ο σκοπός
μου είναι να γράψω μια σειρά από αρθράκια, τα οποία κάνουν στην ουσία &lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;document&lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt; &lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;την υλοποίηση πάνω στα σενάρια
χρήσης της. Είναι μια σχετικά απλοϊκή υλοποίηση, αλλά εμπλέκει διάφορα &lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;patterns&lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt; &lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;και τεχνικές μέσα της. Απώτερος
σκοπός μου είναι να προσπαθήσω να δείξω ( και να δώ ) τη &lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;real&lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;-&lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;life&lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt; &lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;χρήση κάποιων &lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;design&lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt; &lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;patterns&lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt; &lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;που ακούμε «ακαδημαϊκά» κάθε μέρα,
όπως τα &lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;singletons&lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;, &lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;factories&lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;, &lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;filter&lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt; &lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;chains&lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt; &lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;κ.α.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;div align="justify"&gt;



&lt;/div&gt;&lt;p class="MsoNormal" align="justify"&gt;&lt;font face="Arial" size="2"&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;Τα δύο
σενάρια χρήσης με τα οποία θα ασχοληθώ είναι η προβολή λιστών από &lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;data&lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt; ( &lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;grids&lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt; ), και σελίδες επεξεργασίας
δεδομένων ( &lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;edit&lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt; &lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;pages&lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt; ). &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;div align="justify"&gt;



&lt;/div&gt;&lt;p class="MsoNormal" align="justify"&gt;&lt;font face="Arial" size="2"&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;Και στις δύο
αυτές περιπτώσεις, η νοοτροπία είναι η ίδια. Σπάω τα διάφορα κομμάτια της διαδικασίας
σε επιμέρους υλοποιήσεις, τι ς οποίες «δένει» ένα &lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;filter&lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt; &lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;chain&lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt; το ποίο στην ουσία κάνει το όλο &lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;orchestration&lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt; &lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;της διαδικασίας. Με απλούστερα λόγια,
η διαδικασία είναι η εξής:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;div align="justify"&gt;

&lt;/div&gt;&lt;p class="MsoNormal" align="justify"&gt;&lt;font face="Arial" size="2"&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;div align="justify"&gt;

&lt;ol style="margin-top: 0cm;"&gt;&lt;li class="MsoNormal" style=""&gt;&lt;font face="Arial" size="2"&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;Ο &lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;Controller&lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;, υλοποιημένος σαν ένα &lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;IHttpHandlerFactory&lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt; &lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;«παίρνει» πρώτος κάθε &lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;incoming&lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt; &lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;request&lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;
     του τύπου /../&lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;myviewname&lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;.&lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;list&lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt; &amp;amp; /…/&lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;myviewname&lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;.&lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;edit&lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;&lt;font face="Arial" size="2"&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;O&lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;
     &lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;Controller&lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt; &lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;δημιουργεί ένα &lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;instance&lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt; &lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;μιας κλάσης
     η οποία είναι στην ουσία ένα απλό &lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;data&lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt; &lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;object&lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;, ένα
     &lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;struct&lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt; &lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;ας πούμε και του δίνει αρχικές τιμές όπως το &lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;HttpContext&lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;&lt;font face="Arial" size="2"&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;Περνάει μετά το &lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;data&lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt; &lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;object&lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt; &lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;αυτό από ένα &lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;Filter&lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt; &lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;Chain&lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;, τα
     επιμέρους στάδια του οποίου βρίσκουν το &lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;view&lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;, φέρνουν &lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;data&lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt; &lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;κτλ.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;&lt;font face="Arial" size="2"&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;Στο πρώτο φίλτρο του &lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;chain&lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;, ο &lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;ViewSelector&lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt; &lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;διαβάζει απ’το &lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;querystring&lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt; &lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;τις παραμέτρους που χρειάζεται,
     δηλαδή το &lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;view&lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt; &lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;type&lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt; (&lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;list&lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt; / &lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;edit&lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;) και το &lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;view&lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt; &lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;name&lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt; (&lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;myviewname&lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;). Μετά, χρησιμοποιώντας ένα &lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;factory&lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt; &lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;object&lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;, τον &lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;ViewManager&lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt; &lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;παίρνει πίσω ένα &lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;instance&lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt; &lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;ενός &lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;view&lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt; &lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;descriptor&lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;. Αυτό περιέχει τη σελίδα η οποία τελικά είναι το &lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;view&lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;, και ένα
     &lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;spec&lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt; &lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;των δεδομένων που θα χρησιμοποιηθούν από το &lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;view&lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;&lt;font face="Arial" size="2"&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;Στο τελευταίο στάδιο του &lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;chain&lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;, ο &lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;ViewInitializer&lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt; &lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;δημιουργεί ένα &lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;instance&lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt; &lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;της σελίδας η οποία είναι το &lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;view&lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;, και της
     δίνει τα &lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;data&lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt; &lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;ή &lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;data&lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt; &lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;objects&lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt; ( βασικά εμείς εδώ τα λέμε &lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;FormDataSources&lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;, και μοιάζουν πολύ με τα &lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;DataSources&lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt; &lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;του &lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;v&lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;.2.0 του &lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;framework&lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;
     ) που χρειάζεται για να παίξει … &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;&lt;font face="Arial" size="2"&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;Και τέλος, ο αρχικός &lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;handler&lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt; &lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;παίρνει
     το αποτέλεσμα του &lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;chain&lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;, και γυρίζει στο σύστημα το &lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;instance&lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt; &lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;της σελίδας
     για να εκτελεστεί&lt;span style=""&gt;&lt;/span&gt;&lt;o:p&gt; &lt;br&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/li&gt;&lt;/ol&gt;



&lt;/div&gt;&lt;p class="MsoNormal" align="justify"&gt;&lt;font face="Arial" size="2"&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;&lt;br&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p class="MsoNormal" align="justify"&gt;&lt;font face="Arial" size="2"&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;Δυστυχώς
δεν έχω σήμερα κώδικα να δώσω μαζί με το &lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;post&lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;, γιατί είναι τίγκα στα &lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;specific&lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt; &lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;classes&lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt; &lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;που χρησιμοποιούμε εσωτερικά και δε
θα κάνει &lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;compile&lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt; &lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;ποτέ
και πουθενά εκτός από ‘δω μέσα, οπότε … σιγά σιγά πορτάρω στο σπίτι ένα πιο απλό
&lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;version&lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;
&lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;&lt;span style=""&gt;&amp;nbsp;&lt;/span&gt;σε πολύ απλό “&lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;native&lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;” &lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;ASP&lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;.&lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;NET&lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt; &lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;χωρίς &lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;third&lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt; &lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;party&lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt; &lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;components&lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;. &lt;span style=""&gt;&amp;nbsp;&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;div align="justify"&gt;

&lt;/div&gt;&lt;p class="MsoNormal" align="justify"&gt;&lt;font face="Arial" size="2"&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;div align="justify"&gt;

&lt;/div&gt;&lt;p class="MsoNormal" align="justify"&gt;&lt;font face="Arial" size="2"&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;Ελπίζω τις
επόμενες μέρες να βρώ το χρόνο και να συνεχίσω αυτή τη σειρά από αρθράκια καθώς
υλοποιώ … για σήμερα όμως … &lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;time&lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;’&lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;s&lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt; &lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;up&lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt; &lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;δυστυχώς &lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Wingdings;"&gt;&lt;span style=""&gt;:(&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;&amp;nbsp; &lt;/span&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;Καλό απόγευμα !&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;div align="justify"&gt;

&lt;/div&gt;&lt;p class="MsoNormal" align="justify"&gt;&lt;font face="Arial" size="2"&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;div align="justify"&gt;

&lt;/div&gt;&lt;p class="MsoNormal" align="justify"&gt;&lt;span style="font-size: 11pt; font-family: Tahoma;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;</description></item></channel></rss>