<?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>SharePoint Development</title><link>https://www.dotnetzone.gr:443/cs/forums/95/ShowForum.aspx</link><description>Ανάπτυξη εφαρμογών / λύσεων βασισμένες στα Windows SharePoint Services (WSS) και τον SharePoint Portal Server</description><dc:language>el</dc:language><generator>CommunityServer 2.1 SP3 (Build: 20423.1)</generator><item><title>Απ: Client Object Model Context χρησιμοποιει Lambda Εxpression αντι Field Names ?</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/66878.aspx</link><pubDate>Mon, 22 Aug 2011 23:50:47 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:66878</guid><dc:creator>Παναγιώτης Καναβός</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/66878.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=95&amp;PostID=66878</wfw:commentRss><description>&lt;p&gt;Κάθε προσθήκη στη γλώσσα έχει το δικό της κόστος (περιπλοκότητα, "ρύπανση", ταχύτητα). Προφανώς ο Hejlsberg και η ομάδα του θεώρησαν ότι το κόστος της προσθήκης π.χ. του Title.Property ή Description.Member θα είχε σχετικά περιορισμένη χρήση ενώ μπορούσε να καλυφθεί από άλλες μεθόδους. &lt;/p&gt;&lt;p&gt;Τέτοια σύνταξη υπάρχει σε αρκετές δυναμικές γλώσσες, και στην ουσία εκτελούν ένα function που σου επιστρέφει την πληροφορία που θέλεις. Εκεί όμως αυτή η δυνατότητα υπάρχει εξαρχής και χρησιμοποιεί μία υποδομή που επιτρέπει και επιταχύνει αυτό τον τρόπο κλήσης. Στην περίπτωση της C# όμως, θα έπρεπε ο compiler να "μαντέψει" ουσιαστικά σε ποιά περίπτωση θέλεις να καλέσεις ένα property και σε ποιά να το περάσεις ως member. Επιπλέον, ο compiler θα έπρεπε να αποφύγει τη δημιουργία κώδικα για reflection γιατί είναι πολύ πιο αργό.&lt;/p&gt;&lt;p&gt;Με το lambda μπορώ να πάρω πληροφορίες για το property που έδωσα χωρίς να χρησιμοποιήσω reflection. Στην C#, ένα lambda μπορείς άνετα να το δεις ως Expression χωρίς να το εκτελέσεις και να δεις από τί αποτελείται. Για παράδειγμα, το signature της Load δέχεται Expression&amp;lt;Func&amp;lt;T,Object&amp;gt;&amp;gt;. Χωρίς να κοιτάξω τον κώδικα της με το Reflector ή κάτι παρόμοιο, βλέπω ότι μπορώ να φτιάξω την παρακάτω μέθοδο:&lt;/p&gt;&lt;pre&gt;&lt;span style="color:black;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt; &lt;pre&gt;&lt;span style="color:black;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;        &lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;private&lt;/span&gt; &lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;void&lt;/span&gt; MyLoad&amp;lt;TRoot&amp;gt;(TRoot root, Expression&amp;lt;Func&amp;lt;TRoot, &lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;object&lt;/span&gt;&amp;gt;&amp;gt; expression)
        {
            var member &lt;span style="color:red;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;=&lt;/span&gt; ((expression.Body &lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;as&lt;/span&gt; LambdaExpression).Body &lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;as&lt;/span&gt; MemberExpression).Member;
            var memberName &lt;span style="color:red;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;=&lt;/span&gt; member.Name;
            var myFunction &lt;span style="color:red;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;=&lt;/span&gt; expression.Compile();
            var value=myFunction(root);            
        }&lt;/span&gt;&lt;/pre&gt;&lt;/span&gt;&lt;span style="color:black;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;&lt;font size="2" face="Tahoma"&gt;&lt;/font&gt;&lt;/span&gt;&lt;/pre&gt;&lt;p&gt;&lt;span style="color:black;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;&lt;font size="2" face="Tahoma"&gt;Όπως βλέπεις, από την παραπάνω σύνταξη μπορώ να πάρω τόσο το ίδιο το property (member), όσο και ένα function (myFunction)&amp;nbsp;το οποίο θα καλέσει το property επάνω σε όποιο αντικείμενο του περάσω. Όταν έρθει η ώρα μπορώ να καλέσω αυτό το function. Στην πραγματικότητα, σε κανένα σημείο δεν έχω χρησιμοποιήσει Reflection, ούτε καν όταν βρίσκω το όνομα του Property γιατί αυτές οι κλάσεις δημιουργήθηκαν όταν έγινε compile το lambda. Εγώ απλά έκανα τα casts για να πάρω την πληροφορία που ήθελα στο τέλος.&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:black;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;&lt;font size="2" face="Tahoma"&gt;Προφανώς, έχει μεγάλη σημασία το τί θέλει να κάνει το function. Για παράδειγμα, η MyLoad μου επιτρέπει και να βρω το όνομα του property αλλά και να εκτελέσω το lambda δίνοντας όποιο root αντικείμενο θέλω. Η NotifyPropertyChange που είχα δείξει νωρίτερα από την άλλη, δουλεύει μόνο με τα properties του αντικειμένου στο οποίο έχει οριστεί:&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;span style="color:black;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;&lt;font size="2" face="Tahoma"&gt;&lt;pre&gt;&lt;span style="color:black;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt; &lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;public&lt;/span&gt; &lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;virtual&lt;/span&gt; &lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;void&lt;/span&gt; NotifyOfPropertyChange&amp;lt;TProperty&amp;gt;(Expression&amp;lt;Func&amp;lt;TProperty&amp;gt;&amp;gt; property) &lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style="color:black;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;{
     RaisePropertyChanged(property.GetMemberInfo().Name);
}&lt;/span&gt;&lt;/pre&gt;&lt;p&gt;Και το καλώ ως NotifyOfPropertyChange (()=&amp;gt;MyProperty). &lt;p&gt;Τέλος, χωρίς να αλλάξω τον τρόπο κλήσης μπορώ να αλλάξω το τί κανεί το function αλλάζοντας το signature από Expression&amp;lt;Func&amp;lt;T&amp;gt;&amp;gt; σε Func&amp;lt;T&amp;gt;. Σε ένα&amp;nbsp;τέτοιο function μπορώ να καλέσω απευθείας το function ή να το κρατήσω για αργότερα, αλλά&amp;nbsp;δεν θα μπορούσα να βρω το όνομα του. Παρόλα αυτά, η σύνταξη παραμένει η ίδια, π.χ. GetTheValueLater(()=&amp;gt;MyProperty). &lt;p&gt;Όπως βλέπεις, το lambda επιτρέπει να κάνω πολύ περισσότερα πράγματα χωρίς να δυσκολεύει ιδιαίτερα χωρίς κάποια ιδιαίτερη επιβάρυνση. &lt;p&gt;&lt;/font&gt;&lt;/span&gt;&amp;nbsp;&lt;/p&gt;</description></item><item><title>Απ: Client Object Model Context χρησιμοποιει Lambda Εxpression αντι Field Names ?</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/66876.aspx</link><pubDate>Mon, 22 Aug 2011 22:30:15 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:66876</guid><dc:creator>Underwater</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/66876.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=95&amp;PostID=66876</wfw:commentRss><description>&lt;P&gt;το Code Snippet ειναι&lt;/P&gt;
&lt;TABLE style="BORDER-BOTTOM:#e5e5e5 1px solid;BORDER-LEFT:#e5e5e5 1px solid;BACKGROUND-COLOR:#f2f2f2;BORDER-TOP:#e5e5e5 1px solid;BORDER-RIGHT:#e5e5e5 1px solid;" border=0 cellSpacing=0 cellPadding=0 width="100%"&gt;

&lt;TR style="LINE-HEIGHT:normal;VERTICAL-ALIGN:top;"&gt;
&lt;TD style="TEXT-ALIGN:right;WIDTH:40px;"&gt;&lt;PRE style="PADDING-BOTTOM:2px;MARGIN:0px;PADDING-LEFT:2px;PADDING-RIGHT:2px;FONT-FAMILY:courier new;COLOR:gray;FONT-SIZE:11px;BORDER-RIGHT:#e7e7e7 1px solid;PADDING-TOP:2px;"&gt;1
2
3
4
5
6
7
8
 &lt;/PRE&gt;&lt;/TD&gt;
&lt;TD&gt;&lt;PRE style="PADDING-BOTTOM:2px;MARGIN:0px;PADDING-LEFT:8px;PADDING-RIGHT:2px;PADDING-TOP:2px;"&gt;&lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:black;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;var siteUrl &lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:red;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;=&lt;/SPAN&gt; &lt;SPAN style="BACKGROUND-COLOR:#e4e4e4;FONT-FAMILY:Courier New;COLOR:#666666;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;"http://localhost"&lt;/SPAN&gt;;
var context &lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:red;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;=&lt;/SPAN&gt; &lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:blue;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;new&lt;/SPAN&gt; ClientContext(siteUrl);
var web &lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:red;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;=&lt;/SPAN&gt; context.Web

context.Load (web, w =&amp;gt; w.Title, w =&amp;gt; w.Description);

context.ExecuteQuery();
Console.WriteLine(web.Title);&lt;/SPAN&gt;&lt;/PRE&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TABLE&gt;
&lt;P&gt;&lt;SPAN style="mso-ansi-language:EL;"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;&lt;o:p&gt;&lt;SPAN style="FONT-FAMILY:'Tahoma','sans-serif';COLOR:black;FONT-SIZE:10pt;mso-ansi-language:EL;mso-fareast-font-family:'Times New Roman';"&gt;στη γραμμή 5 θα δεις ότι αυτό που θέλουμε είναι απλά να &lt;/SPAN&gt;&lt;SPAN style="COLOR:black;FONT-SIZE:12pt;mso-ansi-language:EL;mso-fareast-font-family:'Times New Roman';mso-ascii-font-family:Calibri;mso-hansi-font-family:Calibri;mso-bidi-font-family:Calibri;"&gt;ορίσουμε ποια πεδία (&lt;/SPAN&gt;&lt;SPAN style="COLOR:black;FONT-SIZE:12pt;mso-fareast-font-family:'Times New Roman';mso-ascii-font-family:Calibri;mso-hansi-font-family:Calibri;mso-bidi-font-family:Calibri;"&gt;SharePoint&lt;/SPAN&gt;&lt;SPAN style="COLOR:black;FONT-SIZE:12pt;mso-ansi-language:EL;mso-fareast-font-family:'Times New Roman';mso-ascii-font-family:Calibri;mso-hansi-font-family:Calibri;mso-bidi-font-family:Calibri;"&gt; &lt;/SPAN&gt;&lt;SPAN style="COLOR:black;FONT-SIZE:12pt;mso-fareast-font-family:'Times New Roman';mso-ascii-font-family:Calibri;mso-hansi-font-family:Calibri;mso-bidi-font-family:Calibri;"&gt;List&lt;/SPAN&gt;&lt;SPAN style="COLOR:black;FONT-SIZE:12pt;mso-ansi-language:EL;mso-fareast-font-family:'Times New Roman';mso-ascii-font-family:Calibri;mso-hansi-font-family:Calibri;mso-bidi-font-family:Calibri;"&gt; &lt;/SPAN&gt;&lt;SPAN style="COLOR:black;FONT-SIZE:12pt;mso-fareast-font-family:'Times New Roman';mso-ascii-font-family:Calibri;mso-hansi-font-family:Calibri;mso-bidi-font-family:Calibri;"&gt;Fields&lt;/SPAN&gt;&lt;SPAN style="COLOR:black;FONT-SIZE:12pt;mso-ansi-language:EL;mso-fareast-font-family:'Times New Roman';mso-ascii-font-family:Calibri;mso-hansi-font-family:Calibri;mso-bidi-font-family:Calibri;"&gt;) να κάνουμε &lt;/SPAN&gt;&lt;SPAN style="COLOR:black;FONT-SIZE:12pt;mso-fareast-font-family:'Times New Roman';mso-ascii-font-family:Calibri;mso-hansi-font-family:Calibri;mso-bidi-font-family:Calibri;"&gt;retrieve&lt;/SPAN&gt;&lt;SPAN style="COLOR:black;FONT-SIZE:12pt;mso-ansi-language:EL;mso-fareast-font-family:'Times New Roman';mso-ascii-font-family:Calibri;mso-hansi-font-family:Calibri;mso-bidi-font-family:Calibri;"&gt;.&lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp; Μου φαινεται οιτ θ&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT:115%;FONT-FAMILY:'Calibri','sans-serif';COLOR:black;FONT-SIZE:12pt;mso-ansi-language:EL;mso-fareast-font-family:'Times New Roman';mso-fareast-language:EN-US;mso-bidi-language:AR-SA;"&gt;α μπορούσαμε με "ποιο απλό" &lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT:115%;FONT-FAMILY:'Calibri','sans-serif';COLOR:black;FONT-SIZE:12pt;mso-ansi-language:EN-US;mso-fareast-font-family:'Times New Roman';mso-fareast-language:EN-US;mso-bidi-language:AR-SA;"&gt;type&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT:115%;FONT-FAMILY:'Calibri','sans-serif';COLOR:black;FONT-SIZE:12pt;mso-ansi-language:EL;mso-fareast-font-family:'Times New Roman';mso-fareast-language:EN-US;mso-bidi-language:AR-SA;"&gt;-&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT:115%;FONT-FAMILY:'Calibri','sans-serif';COLOR:black;FONT-SIZE:12pt;mso-ansi-language:EN-US;mso-fareast-font-family:'Times New Roman';mso-fareast-language:EN-US;mso-bidi-language:AR-SA;"&gt;safe&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT:115%;FONT-FAMILY:'Calibri','sans-serif';COLOR:black;FONT-SIZE:12pt;mso-ansi-language:EL;mso-fareast-font-family:'Times New Roman';mso-fareast-language:EN-US;mso-bidi-language:AR-SA;"&gt; &lt;SPAN&gt;τρόπο να ορίσουμε τα πεδία...δεν ειναι?&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;</description></item><item><title>Απ: Client Object Model Context χρησιμοποιει Lambda Εxpression αντι Field Names ?</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/66875.aspx</link><pubDate>Mon, 22 Aug 2011 22:28:47 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:66875</guid><dc:creator>Panagiotis Kefalidis</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/66875.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=95&amp;PostID=66875</wfw:commentRss><description>&lt;p&gt;&lt;BLOCKQUOTE&gt;&lt;div&gt;&lt;img src="http://www.dotnetzone.gr/cs/Themes/default/images/icon-quote.gif"&gt; &lt;strong&gt;Παναγιώτης Καναβός:&lt;/strong&gt;&lt;/div&gt;&lt;div&gt;..ούτε το εργαλείο refactoring θα το εύρισκε.&lt;/div&gt;&lt;/BLOCKQUOTE&gt;&lt;/p&gt;&lt;p&gt;Εκτός κι εάν είναι Resharper 6.0 όπου κάτω απο συγκεκριμένες συνθήκες το βρίσκει και το αλλάζει (στο προτείνει κιόλας αμα θες να ψάξει), αλλα κατα βάση αυτό που λέει ο Παναγιώτης είναι το σωστό.. Lambda, always better.&lt;/p&gt;</description></item><item><title>Απ: Client Object Model Context χρησιμοποιει Lambda Εxpression αντι Field Names ?</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/66873.aspx</link><pubDate>Mon, 22 Aug 2011 21:32:54 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:66873</guid><dc:creator>Παναγιώτης Καναβός</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/66873.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=95&amp;PostID=66873</wfw:commentRss><description>&lt;p&gt;Καταρχήν, η εικόνα δεν φαίνεται, αλλά δεν πειράζει. Μάλλον ρωτάς για ένα από δύο πράγματα: ΄&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Ή δεν καταλαβαίνεις τη διαφορά μεταξύ των δύο μορφών&lt;/li&gt;&lt;li&gt;Ή έχεις δει σε πολλά σημεία να περνάνε το lambda αντί για το όνομα ενός πεδίου, property ή method (π.χ. NotifyPropertyChange(()=&amp;gt;MyPropertyName) αντί για NotifyPropertyChange("MyPropertyName") )&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Στην πρώτη περίπτωση, τα statement w=&amp;gt;w.Title και Title είναι εντελώς διαφορετικά. Το ένα είναι ένα function ενώ το δεύτερο ανακτά την τιμή της μεταβλητής του πεδίου Title που βρίσκεται στο scope εκείνη τη στιγμή.&lt;/p&gt;&lt;p&gt;Όταν περνάς w=&amp;gt;w.Title περνάς ένα function το οποίο θα εκτελεστεί τη στιγμή που θέλει η κλάση ή το function που το δέχεται, με παράμετρο w που θα δώσει η ίδια η κλάση ή το function. Όταν δίνεις το όνομα ενός πεδίου απευθείας (θεωρώντας ότι αυτό το πεδίο υπάρχει στον κώδικα σου) περνάς την τιμή του πεδίου εκείνη τη στιγμή.&lt;/p&gt;&lt;p&gt;Τώρα αν θα περάσεις αυτό το function ως lambda ή θα φτιάξεις ένα ξεχωριστό function και να περάσεις αυτό, είναι καθαρά θέμα του ποιά μορφή είναι πιο κατανοήτη. Αν το function χρησιμοποιείται μόνο για μία φορά, είναι καλύτερα να το περάσεις ως lambda για να μην αναγκάζεται κανείς να ψάχνει μπρος-πίσω στον κώδικα για να καταλάβει τί γίνεται σε ένα function. Ακόμα και αν το lambda αρχίζει και γίνεται μεγάλο, συνήθως είναι ευκολότερο να το κρατήσεις στο ίδιο σημείο που χρησιμοποιείται. Αν όμως αρχίζει και γίνεται τόσο μεγάλο που "χαλάει" τον κώδικα (υποκειμενικά φυσικά) είναι προτιμότερο να φτιάξεις ξεχωριστό function με ένα όνομα που περιγράφει τί συμβαίνει.&lt;/p&gt;&lt;p&gt;Αν η ερώτηση τώρα είναι "γιατί να περάσω lambda αντί για το όνομα του πεδίου με type-safe τρόπο" (χωρίς string φυσικά), η απάντηση είναι ότι το lambda είναι ΠΟΛΥ πιο ευέλικτο. Με το lambda μπορείς άνετα να περάσεις ένα πεδίο ή ένα statement (π.χ. συνδυασμό, trimming, uppercase). &lt;/p&gt;&lt;p&gt;Στην δεύτερη περίπτωση, το πλεονέκτημα είναι ότι o compiler&amp;nbsp; ο ίδιος καταλαβαίνει πότε αλλάζει το όνομα ενός property και βγάζει error αν δώσεις κάποιο λάθος όνομα. Επιπλέον, αν χρησιμοποιήσεις κάποιο rename refactoring για να αλλάξεις το όνομα του property, θα αλλάξει το όνομα σε όλα τα lambda. Αν ήταν ένα string ούτε ο compiler ούτε το εργαλείο refactoring θα το εύρισκε.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description></item><item><title>Client Object Model Context χρησιμοποιει Lambda Εxpression αντι Field Names ?</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/66872.aspx</link><pubDate>Mon, 22 Aug 2011 21:05:49 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:66872</guid><dc:creator>Underwater</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/66872.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=95&amp;PostID=66872</wfw:commentRss><description>&lt;P style="MARGIN:0in 0in 10pt;" class=MsoNormal&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;&lt;SPAN style="mso-ansi-language:EL;"&gt;Παρατήρησα ότι από τότε που εμφανίστηκαν τα &lt;/SPAN&gt;Lambda&lt;SPAN style="mso-ansi-language:EL;"&gt; &lt;/SPAN&gt;Expressions&lt;SPAN style="mso-ansi-language:EL;"&gt; &lt;SPAN&gt;χρησιμοποιώντας παντού (ακόμα και όταν κάνουν το κώδικα ποιο &lt;/SPAN&gt;&lt;/SPAN&gt;unreadable&lt;SPAN style="mso-ansi-language:EL;"&gt;).&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN:0in 0in 10pt;" class=MsoNormal&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;&lt;SPAN style="mso-ansi-language:EL;"&gt;Για παράδειγμα όταν διαβάζουμε από το &lt;/SPAN&gt;SP&lt;SPAN style="mso-ansi-language:EL;"&gt; 2010 χρησιμοποιώντας το &lt;/SPAN&gt;Client&lt;SPAN style="mso-ansi-language:EL;"&gt; &lt;/SPAN&gt;Object&lt;SPAN style="mso-ansi-language:EL;"&gt; &lt;/SPAN&gt;Model&lt;SPAN style="mso-ansi-language:EL;"&gt;, τα &lt;/SPAN&gt;Code&lt;SPAN style="mso-ansi-language:EL;"&gt; &lt;/SPAN&gt;Samples&lt;SPAN style="mso-ansi-language:EL;"&gt; &lt;SPAN&gt;δείχνου ότι περνάμε στο &lt;/SPAN&gt;&lt;/SPAN&gt;Context&lt;SPAN style="mso-ansi-language:EL;"&gt;.&lt;/SPAN&gt;Load&lt;SPAN style="mso-ansi-language:EL;"&gt; &lt;SPAN&gt;ένα &lt;/SPAN&gt;&lt;/SPAN&gt;Lambda&lt;SPAN style="mso-ansi-language:EL;"&gt; &lt;/SPAN&gt;Expression&lt;SPAN style="mso-ansi-language:EL;"&gt;, αντί το όνομα του &lt;/SPAN&gt;field&lt;SPAN style="mso-ansi-language:EL;"&gt;.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN:0in 0in 10pt;" class=MsoNormal&gt;&lt;SPAN style="mso-no-proof:yes;"&gt;&lt;/SPAN&gt;&lt;o:p&gt;&lt;IMG width=708 height=248&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P style="MARGIN:0in 0in 10pt;" class=MsoNormal&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;&lt;SPAN style="mso-ansi-language:EL;"&gt;Ξέρει κανείς εάν υπάρχει κάποιο &lt;/SPAN&gt;advantage&lt;SPAN style="mso-ansi-language:EL;"&gt; &lt;SPAN&gt;να περάσουμε &lt;SPAN style="mso-spacerun:yes;"&gt;&amp;nbsp;&lt;/SPAN&gt;«&lt;/SPAN&gt;&lt;/SPAN&gt;w&lt;SPAN style="mso-ansi-language:EL;"&gt; =&amp;gt; &lt;/SPAN&gt;w&lt;SPAN style="mso-ansi-language:EL;"&gt;.&lt;/SPAN&gt;Title&lt;SPAN style="mso-ansi-language:EL;"&gt;» αντί μόνο «&lt;/SPAN&gt;Title&lt;SPAN style="mso-ansi-language:EL;"&gt;».&amp;nbsp; δηλαδη γιατι στο Method Call &lt;SPAN style="mso-ansi-language:EL;"&gt;&lt;U&gt;ClientContext.Load(object, params retievals) &lt;/U&gt;&lt;/SPAN&gt;τα parameters "params retrievasl" Πρεπει να ειναι Lambda Expressions και οχι ενα απλο .net Type)&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN:0in 0in 10pt;" class=MsoNormal&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;&lt;SPAN style="mso-ansi-language:EL;"&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="MARGIN:0in 0in 10pt;" class=MsoNormal&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;&lt;SPAN style="mso-ansi-language:EL;"&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/P&gt;</description></item></channel></rss>