<?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>ASP.NET WebForms</title><link>https://www.dotnetzone.gr:443/cs/forums/13/ShowForum.aspx</link><description>Θέματα για web εφαρμογές, σε ASP.NET WebForms</description><dc:language>el</dc:language><generator>CommunityServer 2.1 SP3 (Build: 20423.1)</generator><item><title>Απ: Μεταφορά κώδικα από το UI στην DB</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/43326.aspx</link><pubDate>Tue, 08 Jul 2008 09:00:02 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:43326</guid><dc:creator>dimik</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/43326.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=13&amp;PostID=43326</wfw:commentRss><description>&lt;P&gt;Γεια σου KelMan,&lt;/P&gt;
&lt;P&gt;Η απάντησή σου είναι τραγικά ενδιαφέρουσα και πιστεύω ότι καταλαβαίνω τι εννοείς. &lt;/P&gt;
&lt;P&gt;Σε ευχαριστώ πολύ !!!&lt;/P&gt;</description></item><item><title>Απ: Μεταφορά κώδικα από το UI στην DB</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/43322.aspx</link><pubDate>Tue, 08 Jul 2008 05:22:03 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:43322</guid><dc:creator>KelMan</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/43322.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=13&amp;PostID=43322</wfw:commentRss><description>&lt;P&gt;To ότι ένα ORM σου δίνει τη δυνατότητα να κάνεις "low-level" κλήσεις προς τη βάση δεν σημαίνει ότι είναι ο τυπικός τρόπος λειτουργίας του. Συνήθως αυτό γίνεται σε ειδικές περιπτωσεις, όταν δεν σε καλύπτει το μοντέλο που σου παρέχει. Συνήθως δεν δουλεύεις με αυτόν τον τρόπο.&lt;/P&gt;
&lt;P&gt;Από εκεί και πέρα, δεν υπάρχει "πρέπει". Απλά η εξέλιξη σε οδηγεί σε λύσεις που θα σε βοηθήσουν στο να έχεις ένα &lt;U&gt;ομαλότερο κύκλο ζωής εφαρμογής&lt;/U&gt;. Εφαρμογές πάντα έβγαιναν στην παραγωγή και data access κάναμε με DAO, με RDO, με ADO, με ADO.NET και DataSets και τώρα κάνουμε με Linq To SQL, Entity Framework και ORMs. Δεν είναι ότι αν δεν είχαμε ORMs δεν θα μπορούσαμε να φτιάξουμε κάποια εφαρμογή της προκοπής. Απλά, έρχεται η στιγμή όπου δεν θες πλέον να γράφεις τον ίδιο και τον ίδιο κώδικα, όπου θες να επαναχρησιμοποιείς τον κώδικα σου χωρίς χαζά copy/paste, όπου θα μπορείς εύκολα να τεστάρεις την εφαρμογή και εύκολα να ανταποκρίνεσαι σε αλλαγές που σου ζητάει ο πελάτης χωρίς να χρειάζεται να κάνεις rewire το σύμπαν. Δες κι αυτή τη κουβέντα, λίγο-πολύ αφορά στο ίδιο θέμα &lt;A href="http://www.dotnetzone.gr/cs/forums/thread/43290.aspx"&gt;http://www.dotnetzone.gr/cs/forums/thread/43290.aspx&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Ως προς το performance, δεν έχω κάνει ούτε έχω δει κάποιο benchmark, ωστόσο δεν πιστεύω ότι θα υπάρχουν τρομερές διαφορές ανάμεσα στο να γράψεις εσύ τον data access κώδικα και να χρησιμοποιήσεις κάποιο ORM. Κατ' εμέ δεν είναι εκεί&amp;nbsp;το ζητούμενο. Στην πλειοψηφία των εφαρμογών σε ενδιαφέρουν αυτά που αναφέρω παραπάνω καθώς "κοστίζουν" πολύ περισσότερο από το h/w. Στην τελική, η εφαρμογή σου πάντοτε μπορεί να γίνει scale-up ενώ αν έχει κατάλληλη αρχιτεκτονική, θα μπορεί να γίνει και scale-out.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description></item><item><title>Απ: Μεταφορά κώδικα από το UI στην DB</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/43278.aspx</link><pubDate>Sun, 06 Jul 2008 10:03:59 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:43278</guid><dc:creator>dimik</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/43278.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=13&amp;PostID=43278</wfw:commentRss><description>KelMan, σε ευχαριστώ πολύ για την απάντηση. Η μέθοδος που προτείνεις (την είχα δει παλαιότερα αλλά δεν την θυμόμουνα - γιατί δεν την είχα χρησιμοποιήσει) είναι πράγματι αυτό που έψαχνα.&lt;br&gt;&lt;br&gt;Επίσης τα ORMs που αναφέρεις είναι πράγματι πολύ πολύ ενδιαφέροντα. Θα κοιτάξω αναλυτικότερα πως λειτουργούν και πώς θα μπορούσα να τα χρησιμοποιήσω. &lt;br&gt;&lt;br&gt;Είδα κάπως βιαστικά το NHibernate μιας και ήταν το πρώτο open source που βρήκα κάνοντας μια αναζήτηση. Αναρωτιέμαι για θέματα σχετικά με τις επιδόσεις που έχει μια εφαρμογή με ORMs καθώς και το κατά πόσο μπορείς να εκτελέσεις πολύπλοκα queries. Δηλαδή ανησυχώ πως θα αντικαταστήσω πολύπλοκα stored procedures ή inline queries. Βέβαια θα έπρεπε πρώτα να το ψάξω περισσότερο πριν ρωτήσω κάτι τόσο γενικό αλλά μιας και έχεις ασχοληθεί πολύ με αυτά ίσως θα μπορούσες να μου δώσεις μερικές απαντήσεις. &lt;br&gt;&lt;br&gt;Επίσης μια ακόμη ερώτηση: Παραθέτω από το documentation του NHibernate το εξής:&lt;br&gt;&lt;br&gt;&lt;pre class="programlisting"&gt;IList cats = session.CreateSQLQuery(&lt;br&gt;    "SELECT {cat}.ID AS {cat.Id}, {cat}.SEX AS {cat.Sex}, " +&lt;br&gt;           "{cat}.MATE AS {cat.Mate}, {cat}.SUBCLASS AS {cat.class}, ... " +&lt;br&gt;    "FROM CAT {cat} WHERE ROWNUM&amp;lt;10",&lt;br&gt;    "cat",&lt;br&gt;    typeof(Cat)&lt;br&gt;).List()&lt;br&gt;&lt;/pre&gt;Νόμιζα ότι σκοπός μας είναι να ξεχωρίσουμε το DB layer από το UI. Τώρα βλέπω μια νέα τεχνική, object oriented, αλλά πάλι βλέπω queries μέσα στον κώδικα... Έχω μπερδευτεί... Τι πρέπει να κάνουμε τελικά; Τι είναι το σωστό;&lt;br&gt;&lt;br&gt;Ευχαριστώ πολύ :-)&lt;br&gt;</description></item><item><title>Απ: Μεταφορά κώδικα από το UI στην DB</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/43262.aspx</link><pubDate>Sat, 05 Jul 2008 02:41:22 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:43262</guid><dc:creator>Παναγιώτης Καναβός</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/43262.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=13&amp;PostID=43262</wfw:commentRss><description>Πλάκα-πλάκα, ένα απλό LINQ to SQL query κάνει άνετα την ίδια δουλειά, σου φτιάχνει και αυτόματα παραμετρικό dynamic sql query.</description></item><item><title>Απ: Μεταφορά κώδικα από το UI στην DB</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/43261.aspx</link><pubDate>Sat, 05 Jul 2008 01:57:57 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:43261</guid><dc:creator>KelMan</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/43261.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=13&amp;PostID=43261</wfw:commentRss><description>&lt;P&gt;To είχα κάνει κάποτε με αυτό εδώ: &lt;A href="http://www.dotnetzone.gr/cs/forums/thread/869.aspx"&gt;http://www.dotnetzone.gr/cs/forums/thread/869.aspx&lt;/A&gt;&amp;nbsp;(παίζει και για πολλαπλά κριτήρια). Από τότε μεγάλωσα, σοβαρεύτηκα και υποσχέθηκα στον εαυτό μου να κόψω το αλκοόλ. &lt;img src="http://www.dotnetzone.gr/cs/emoticons/emotion-2.gif" alt="Big Smile" /&gt;&lt;/P&gt;
&lt;P&gt;Βέβαια, όταν έκανα αυτά τα κόλπα τότε, δεν είχα ανακαλύψει τον υπέροχο κόσμο των ORMs...&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description></item><item><title>Μεταφορά κώδικα από το UI στην DB</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/43245.aspx</link><pubDate>Fri, 04 Jul 2008 20:58:08 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:43245</guid><dc:creator>dimik</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/43245.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=13&amp;PostID=43245</wfw:commentRss><description>Καλησπέρα σε όλους,&lt;br&gt;&lt;br&gt;Έχω ένα πρόβλημα/προβληματισμό σχετικά με μια γενικότερη τακτική για αναζήτηση σε πίνακες με φίλτρα...&lt;br&gt;Για να γίνω πιό κατανοητός:&lt;br&gt;&lt;br&gt;Έχω ένα TextBox και ένα DropDownList. Ο χρήστης στο TextBox μπορεί να γράψει ότι επιθυμεί και από το DropDownList μπορεί να επιλέξει ποιό πεδίο θα ψάξει.&lt;br&gt;Δηλαδή: Ας πούμε ότι έχουμε τον πίνακα Clients που έχει ένα σωρό πεδία... Καταλαβαίνετε τώρα...&lt;br&gt;Ο χρήστης λοιπόν διαλέγει από τη λίστα το πεδίο "Διεύθυνση" και γράφει στο TextBox τη λέξη "Σόλωνος"...&lt;br&gt;&lt;br&gt;Ο κώδικας από πίσω φτιάχνει δυναμικά το query, δηλαδή κάτι σαν.... " Select * from Clients where address like '%Σόλωνος%' " ... &lt;br&gt;&lt;br&gt;Αυτό που θέλω λοιπόν είναι να βγάλω αυτόν τον τρόπο υλοποίησης και να χρησιμοποιώ Stored Procedures... &lt;br&gt;&lt;br&gt;&lt;b&gt;Ξέρει κανείς ποιά λογική πρέπει να χρησιμοποιηθεί;;;&lt;/b&gt;&lt;br&gt;&lt;br&gt;Επίσης, αν είχαμε κι άλλο ένα ζευγάρι TextBox-DropDownList γίνεται πιό πολύπλοκο το θέμα...&lt;br&gt;&lt;br&gt;Ευχαριστώ.&lt;br&gt;</description></item></channel></rss>