<?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>Typescript --&gt; export</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/78428.aspx</link><pubDate>Sat, 25 Jan 2020 22:22:44 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:78428</guid><dc:creator>selemis1982</dc:creator><slash:comments>2</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/78428.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=14&amp;PostID=78428</wfw:commentRss><description>&lt;p&gt;Καλημέρα σας. Θα ήθελα να σας ρωτήσω να μου εξηγήσετε τι σημαίνει το export στην typescript, πχ:&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="font-size:13.3333px;"&gt;&lt;span style="font-size:10pt;"&gt;export interface IPerson&lt;/span&gt;&lt;/p&gt;&lt;p style="font-size:13.3333px;"&gt;&lt;span style="font-size:10pt;"&gt;{&lt;/span&gt;&lt;/p&gt;&lt;p style="font-size:13.3333px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; id: number;&lt;/p&gt;&lt;p style="font-size:13.3333px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; name: string;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:13.3333px;"&gt;}&lt;/span&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;export class Person implements IPerson &lt;/p&gt;&lt;p&gt;{&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:10pt;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; id: number;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="white-space:pre;"&gt;	&lt;/span&gt;name: string;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:10pt;"&gt;}&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;ενώ στο ίδιο typescript file υπάρχουν άλλα interfaces τα οποία δεν έχουν την λέξη export.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;ευχαριστώ&lt;/p&gt;</description></item><item><title>Μετατροπή Κώδικα VB.NET σε C#</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/78243.aspx</link><pubDate>Tue, 06 Mar 2018 05:22:31 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:78243</guid><dc:creator>imanos</dc:creator><slash:comments>3</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/78243.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=14&amp;PostID=78243</wfw:commentRss><description>&lt;div&gt;&amp;nbsp; &amp;nbsp; Public Shared Function DynamicGetFieldsInfo(AssemplyName As String, ObjectName As String) As Object&lt;/div&gt;&lt;div&gt;&lt;span style="font-size:10pt;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Dim a As [Assembly] = [Assembly].Load(AssemplyName)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Dim mytypes As Type() = a.GetTypes()&lt;/div&gt;&lt;div&gt;&lt;span style="font-size:10pt;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Dim t As Type = a.GetType(&lt;/span&gt;&lt;span style="font-size:13.3333px;"&gt;AssemplyName &amp;amp; "." &amp;amp;&amp;nbsp;&lt;/span&gt;&lt;span style="font-size:10pt;"&gt;ObjectName)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size:10pt;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Dim obj As [Object] = Activator.CreateInstance(t)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size:10pt;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Dim oFields As Object(,) = obj.GetFields(t)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size:10pt;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Return oFields&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size:10pt;"&gt;&amp;nbsp; &amp;nbsp; End Function&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size:10pt;"&gt;Υπάρχει ο παραπάνω κώδικας σε vb.net το ζητούμενο είναι να μπορέσω να πάρω το structure μίας κλάσης μαζί με τα Attributes . Στην vb δουλεύει μια χαρά.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;Θέλω να την μετατρέψω σε C#&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;public static object&amp;nbsp;&lt;span style="font-size:13.3333px;"&gt;DynamicGetFieldsInfo&lt;/span&gt;(string AssemplyName, string ObjectName)&lt;/div&gt;&lt;div&gt;{&lt;/div&gt;&lt;div&gt;&lt;span style="white-space:pre;"&gt;	&lt;/span&gt;Assembly a = Assembly.Load(AssemplyName);&lt;/div&gt;&lt;div&gt;&lt;span style="white-space:pre;"&gt;	&lt;/span&gt;Type[] mytypes = a.GetTypes();&lt;/div&gt;&lt;div&gt;&lt;span style="font-size:10pt;white-space:pre;"&gt;	&lt;/span&gt;&lt;span style="font-size:10pt;"&gt;Type t = a.GetType(ObjectName);&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size:10pt;white-space:pre;"&gt;	&lt;/span&gt;&lt;span style="font-size:10pt;"&gt;Object obj = Activator.CreateInstance(t);&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size:10pt;white-space:pre;"&gt;	&lt;/span&gt;&lt;span style="font-size:10pt;"&gt;object[,] oFields = obj.GetFields(t);&amp;nbsp; //&amp;nbsp; Το συγκεκριμμένο κομμάτι δεν παίζει σε C#&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size:10pt;white-space:pre;"&gt;	&lt;/span&gt;&lt;span style="font-size:10pt;"&gt;return oFields;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;}&amp;nbsp;&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;div&gt;Μπορεί κάποιος να βοηθήσει ?&lt;/div&gt;</description></item><item><title>.net DLL calling from DELPHI vcl</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/77797.aspx</link><pubDate>Fri, 02 Sep 2016 19:45:29 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:77797</guid><dc:creator>Bill </dc:creator><slash:comments>11</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/77797.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=14&amp;PostID=77797</wfw:commentRss><description>&lt;p&gt;&amp;nbsp; &amp;nbsp; Καλημέρα&lt;/p&gt;&lt;p&gt;Θέλω να φτιάξω ένα DLL C# .net 4 (το έχω φτιάξει ήδη) ωστόσο θέλω να το καλέσω μέσα από περιβάλλον Delphi. Εκεί διαπίστωσα ότι θα πρέπει από managed dll που παράγει το .net να το κάνω pe DLL. Η ερώτηση μου είναι απλή. Πως το κάνω αυτό με απλά βήματα ?&lt;/p&gt;&lt;p&gt;Είδα σε κάποια forums αλλά δε πολύ κατάλαβα. &lt;/p&gt;&lt;p&gt;Ευχαριστώ&amp;nbsp;&lt;/p&gt;</description></item><item><title>Βοήθεια σε LINQ</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/77714.aspx</link><pubDate>Thu, 19 May 2016 01:12:36 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:77714</guid><dc:creator>Panos Kousidis</dc:creator><slash:comments>1</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/77714.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=14&amp;PostID=77714</wfw:commentRss><description>&lt;p&gt;Καλησπέρα,&lt;/p&gt;&lt;p&gt;Δε βρήκα κατάλληλη κατηγορία για LinQ οπότε προσθέτω τη δημοσίευση εδώ&lt;/p&gt;&lt;p&gt;Είμαι νέος στη LinQ και θα ήθελα να μου εξηγήσει κάποιος πως μπορώ να καταφέρω το παρακάτω&lt;/p&gt;&lt;p&gt;Έχω μία class A που έχει μέσα σε μία μεταβλητή της ένα collection από Class B, η οποία B έχει μέσα σε μία μεταβλητή της collection από Class C, η οποία C με τη σειρά της έχει μια μεταβλητή τύπου collection από class D κ.ο.κ σαν treeview style&lt;/p&gt;&lt;p&gt;Έχω ένα object από την Class A. Υπάρχει τρόπος να κάνω query μέσα σε αυτό το object και να του πω να μου επιστρέψει όλα τα object C που έχουν πχ C.value=1?&lt;/p&gt;&lt;p&gt;Παράδειγμα&lt;/p&gt;&lt;p&gt;A.Name="C:\" &lt;br&gt;&lt;/p&gt;&lt;p&gt;A.Directories = {List(of B)}&lt;/p&gt;&lt;p&gt;Το κάθε entity στο A.Directories έχει μέσα φακέλους (class b)&lt;/p&gt;&lt;p&gt;B.Filenames = {List(of C)}&lt;/p&gt;&lt;p&gt;Το κάθε entity στο B.filenames έχει αρχεία (class c)&lt;/p&gt;&lt;p&gt;C.attributes = {list(of string)}&lt;/p&gt;&lt;p&gt;Το κάθε entity στο C.attributes έχει attributes (readonly,hidden,system κλπ)&lt;/p&gt;&lt;p&gt;Μπορώ να κάνω query στο object A και να μου επιστραφεί ένα collection των C objects που έχουν C.attributes.contains("ReadOnly")?&lt;br&gt;&lt;/p&gt;</description></item><item><title>Guid</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/77632.aspx</link><pubDate>Thu, 24 Mar 2016 09:11:31 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:77632</guid><dc:creator>gianestras</dc:creator><slash:comments>5</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/77632.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=14&amp;PostID=77632</wfw:commentRss><description>&lt;p&gt;&lt;span style="font-size:10pt;"&gt;καλημέρα σας..&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;Εξασφαλίζεται η μοναδικότητα, πάντα, σε έναν πίνακα πχ Users, της στήλης που γεμίζει με&amp;nbsp;&lt;span style="box-sizing:border-box;font-family:'Courier New';font-size:14.6667px;line-height:20.9524px;"&gt;Guid&lt;/span&gt;&lt;span style="font-family:'Courier New';font-size:14.6667px;line-height:20.9524px;"&gt;.NewGuid()&lt;/span&gt;&lt;span style="font-size:10pt;"&gt;&amp;nbsp;;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description></item><item><title>TLS 1.2 σε framework 4.0</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/77614.aspx</link><pubDate>Fri, 04 Mar 2016 21:22:38 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:77614</guid><dc:creator>Than</dc:creator><slash:comments>4</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/77614.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=14&amp;PostID=77614</wfw:commentRss><description>&lt;p&gt;Καλησπέρα.&lt;/p&gt;&lt;p&gt;Έχουμε μία web εφαρμογή, γραμμένη σε framework 4.0, η οποία χρησιμοποιώντας httpwebrequest, κάνει μία GET κλήση σε https URL, σε ένα web API στο εξωτερικό. Μέχρι εχθές όλα έπαιζαν μια χαρά. Εχθές όμως η επικοινωνία κόπηκε. Ο λόγος ήταν ότι το συγκεκριμένο API άρχισε να χρησιμοποιεί TLS 1.2 που δεν υποστηρίζεται από την έκδοση 4.0 του .net.&lt;/p&gt;&lt;p&gt;Η δική μας εφαρμογή γίνεται host σε server 2003 όποτε το framework 4.0 είναι και το ανώτερο που μπορεί να μπει.&lt;/p&gt;&lt;p&gt;Έχετε να μου προτείνετε κάποια λύση;&lt;/p&gt;&lt;p&gt;&amp;nbsp;Ευχαριστώ. &lt;br&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description></item><item><title>Bridge.NET</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/76888.aspx</link><pubDate>Fri, 03 Apr 2015 18:13:40 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:76888</guid><dc:creator>dpant</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/76888.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=14&amp;PostID=76888</wfw:commentRss><description>&lt;p&gt;Καλημέρα,&lt;/p&gt;&lt;p&gt;Βρήκα ιδιαίτερα ενδιαφέρον το &lt;a href="http://bridge.net" target="_blank"&gt;Bridge.NET&lt;/a&gt; ένα νέο "είδος μεταγλωττιστή" που ουσιαστικά μεταφράζει τον C# κώδικά σας σε JavaScript. Έχω κάνει κάποιες δοκιμές και έγραψα και ένα &lt;a href="http://www.codeproject.com/Articles/892443/Build-Platform-Independent-Applications-Using-Brid" target="_blank"&gt;σχετικό εισαγωγικό άρθρο&lt;/a&gt; και τα αποτελέσματα είναι εντυπωσιακά. Υπάρχει υποστήριξη για τις πλατφόρμες&lt;b&gt; HTML5, jQuery και Bootstrap&lt;/b&gt;.&lt;br&gt;&lt;/p&gt;&lt;p&gt;Το εργαλείο είναι &lt;b&gt;open source&lt;/b&gt; με Apache 2.0 license και λειτουργεί μέσω του (αγαπημένου μας) Visual Studio.&lt;/p&gt;&lt;p&gt;Πιστεύω πως θα ενδιαφέρει όλους όσους θεωρούν την C# ως την αγαπημένη τους γλώσσα αλλά θα ήθελαν ο κώδικας τους να μπορεί να δουλέψει ανεξαρτήτως πλατφόρμας, τομέας στον οποίο η JavaScript σαρώνει. &lt;/p&gt;&lt;p&gt;&lt;b&gt;Παραθέτω και ορισμένα links για όσους ενδιαφέρονται:&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://bridge.net" target="_blank"&gt;Επίσημο site Bridge.NET&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://bridge.net/download/" target="_blank"&gt;Κατέβασμα Bridge.NET&amp;nbsp;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="https://github.com/bridgedotnet/Bridge" target="_blank"&gt;Πρόσβαση στο GitHub για Pull Request&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://bridge.net/kb/" target="_blank"&gt;Knowledge Base&lt;br&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://forums.bridge.net/" target="_blank"&gt;Forum&lt;/a&gt; (ρωτήστε ελεύθερα για οποιαδήποτε απορία σας)&lt;br&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description></item><item><title>Web Browser  πρόβλημα συμβατότητα</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/75535.aspx</link><pubDate>Wed, 09 Jul 2014 01:29:59 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:75535</guid><dc:creator>seekerakos</dc:creator><slash:comments>1</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/75535.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=14&amp;PostID=75535</wfw:commentRss><description>&lt;p&gt;Γεια σας δουλεύω σε ένα project και θέλω να πάρω στοιχεία από μια σελίδα και να τα μεταφέρω σε μια άλλη για να κάνω κάποιες καταχωρίσεις.&amp;nbsp;&lt;br&gt;&lt;span style="font-size:10pt;"&gt;Το πρόβλημα μου είναι ότι η σελίδα δεν είναι συμβατή με το web browser control του VS , και μου λέει ότι πρέπει να απενεργοποιήσω την προβολή συμβατότητας αλλιώς σε κάθε σελίδα μου βγάζει το ίδιο μήνυμα . Δοκίμασα το webkit και geckofx αλλά δεν με ήταν αρκετά καλά και γρήγορα και οι μέθοδοι που έχουν είναι πολλοί λίγες . Έχετε να μου προτείνετε κάποιο control ή έναν τρόπο ώστε να αποφύγω αυτό το λάθος ;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:10pt;"&gt;ευχαριστώ πολύ!&amp;nbsp;&lt;/span&gt;&lt;/p&gt;</description></item><item><title>RSA Encryption πανω σε ArrayList.</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/75114.aspx</link><pubDate>Fri, 07 Mar 2014 03:33:55 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:75114</guid><dc:creator>Alexpap</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/75114.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=14&amp;PostID=75114</wfw:commentRss><description>&lt;p&gt;Καλησπέρα σε όλους,&lt;/p&gt;&lt;p&gt;Έχω μια ArrayList γεμάτη με δικά μου custom objects. Προσπαθώντας να την κρυπτογραφήσω ως ένα αντικείμενο, σηκώνεται ένα ChryptographicException: Bad Length, και μετά από λίγο διάβασμα, είδα ότι το RSA μπορεί να κρυπτογραφήσει δεδομένα μεγέθους όσο είναι και το κλειδί (2048). Θα ήταν σωστό work-around, να κρυπτογραφήσω τα εσωτερικά object της λίστας, και όταν τα στείλω ο παραλήπτης να τα κάνει decrypt?&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Ευχαριστώ εκ των προτέρων.&lt;/p&gt;</description></item><item><title>Unit Testing Frameworks</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/75084.aspx</link><pubDate>Wed, 26 Feb 2014 21:55:32 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:75084</guid><dc:creator>Anastasios Piotopoulos</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/75084.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=14&amp;PostID=75084</wfw:commentRss><description>&lt;p&gt;Καλησπέρα σας!&lt;/p&gt;&lt;p&gt;Θα ήθελα τη γνώμη του community σχετικά με τα διάφορα unit testing frameworks που κυκλοφορούν για .net&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:10pt;"&gt;Προσωπικά έχω δει τα MSTest και Nunit, και τα δύο σε συνδυασμό με το Resharper. Έκαναν αρκετά παρόμοια δουλειά για τα concepts που τα χρησιμοποίησα. Άκουσα πρόσφατα και για το NCrunch που κάνει live τα tests ενώ γράφεις κώδικα.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:10pt;"&gt;&lt;/span&gt;Εσείς ποιο χρησιμοποιείτε, και γιατί το προτιμάτε έναντι κάποιου άλλου;&lt;/p&gt;</description></item><item><title>Τρόποι encryption σε δικτυακή εφαρμογη!</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/74672.aspx</link><pubDate>Tue, 19 Nov 2013 04:16:42 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:74672</guid><dc:creator>Alexpap</dc:creator><slash:comments>1</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/74672.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=14&amp;PostID=74672</wfw:commentRss><description>&lt;p&gt;Καλησπέρα,&lt;/p&gt;&lt;p&gt;Μου έχει ζητηθεί να κατασκευάσω μια εφαρμογή secure chat και θα ήθελα να ρωτήσω, μιας και δεν έχω ασχοληθεί ιδιαίτερα με το network security, αν θα μπορούσε κάποιος να μου δώσει κάποια κατεύθυνση σχετικά με τεχνικές data encryption σε δυκτιακες επικοινωνίες.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Ευχαριστώ εκ των προτέρων&lt;span style="font-size:10pt;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;</description></item><item><title>Iteration σε List&lt;Τ&gt; με μεταβλητό μεγεθος!</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/74547.aspx</link><pubDate>Sun, 27 Oct 2013 01:52:22 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:74547</guid><dc:creator>Alexpap</dc:creator><slash:comments>6</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/74547.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=14&amp;PostID=74547</wfw:commentRss><description>&lt;p&gt;Καλησπέρα σε όλους,&lt;/p&gt;&lt;p&gt;Έχω ένα object τύπου List&amp;lt;T&amp;gt;, το οποίο χρησιμοποιείται ως κοινό resource από κάποια threads. Κάνοντας iterate την λίστα, υπάρχει περίπτωση να αλλάξει το πλήθος των στοιχείων από κάποιο από τα threads, με αποτέλεσμα να δημιουργείται πρόβλημα σε ένα for...each loop. Σκέφτηκα να χρησιμοποιήσω την εντολή lock(), για να κλειδώνει το object κάθε φορά που θα ελέγχει τα στοιχεία της. Υπάρχει κάποιος καλύτερος/σωστότερος τρόπος?&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;ΥΓ: Το thread που κάνει loop στην λίστα τρέχει συνεχώς, οπότε και κάποιο στοιχείο να μην μπει την ώρα του ελέγχου θα μπει μόλις τελειώσει.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;Ευχαριστώ εκ των προτέρων&lt;span style="font-size:10pt;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;</description></item><item><title>Προσθήκη συναρτήσεων δυναμικά σε F#</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/74459.aspx</link><pubDate>Fri, 04 Oct 2013 01:54:04 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:74459</guid><dc:creator>opterios</dc:creator><slash:comments>4</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/74459.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=14&amp;PostID=74459</wfw:commentRss><description>&lt;p&gt;Έχω σε ένα project της F# μία λίστα συναρτήσεων με signature&lt;br&gt;-------------------------------------------------&lt;br&gt;&lt;span style="font-size:10pt;"&gt;val myFunctionsList : (MyType -&amp;gt; bool) list&lt;br&gt;&lt;/span&gt;-------------------------------------------------&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:10pt;"&gt;Τη λίστα συναρτήσεων αυτή θα την εφαρμόζω ως φίλτρο σε κάποια τιμή τύπου myType και θέλω να ξέρω&amp;nbsp;&lt;/span&gt;&lt;span style="font-size:10pt;"&gt;αυτή η τιμή&amp;nbsp;&lt;/span&gt;&lt;span style="font-size:10pt;"&gt;ποιες από τις συναρτήσεις της λίστας&amp;nbsp;&lt;/span&gt;&lt;span style="font-size:10pt;"&gt;ικανοποιεί&lt;/span&gt;&lt;span style="font-size:10pt;"&gt;. Δηλαδή θα γίνεται κάτι σαν το εξής:&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:10pt;"&gt;myFunctionsList&lt;br&gt;&lt;/span&gt;&lt;span style="font-size:10pt;"&gt;|&amp;gt; List.filter (fun f -&amp;gt; f(myValue))&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:10pt;"&gt;Σήμερα που αναπτύσσεται το project οι συναρτήσεις αυτές είναι περίπου 30 και είναι υλοποιημένες. Το θέμα μου είναι ότι θέλω να εμπλουτίζεται συνεχώς η λίστα αυτή με νέες συναρτήσεις, των οποίων η υλοποίηση δε θα είναι εκ των προτέρων γνωστή. Υπάρχει κάποιος προτεινόμενος τρόπος να προσθέτω συναρτήσεις χωρίς να χρειάζεται να ανεβάζω κάθε φορά έκδοση; Πχ. θα μπορούσα να χρησιμοποιήσω κάποιο script αρχείο όπου να έχω εκεί υλοποιημένες αυτές τις συναρτήσεις, ώστε κάθε φορά που προκύπτει κάποια νέα, να συμπληρώνω στο script απλώς μία ακόμα συνάρτηση;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:10pt;"&gt;Δεν έχω δουλέψει ποτέ με scripts (σε κανένα περιβάλλον), γι' αυτό ρωτάω μήπως υπάρχει κάποιος common τρόπος χρήσης τους που αγνοώ. Δ&lt;/span&gt;&lt;span style="font-size:10pt;"&gt;εν έχω ιδέα πώς να το αντιμετωπίσω, αλλά εφόσον η F# διαχειρίζεται τις συναρτήσεις ως...data, υποθέτω πως είναι σχετικά κοινή ανάγκη κάτι τέτοιο κι ελπίζω πως κάποιο τρόπο θα έχει που αγνοώ ;)&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:10pt;"&gt;&lt;/span&gt;&lt;/p&gt;</description></item><item><title>ReactiveCollection </title><link>https://www.dotnetzone.gr:443/cs/forums/thread/72493.aspx</link><pubDate>Wed, 17 Apr 2013 17:28:29 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:72493</guid><dc:creator>KelMan</dc:creator><slash:comments>1</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/72493.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=14&amp;PostID=72493</wfw:commentRss><description>&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Λοιπόν, έχουμε ένα&amp;nbsp;ObservableCollection&amp;nbsp;που λέγεται Feeds και περιέχει κάποια URLs που&amp;nbsp;είναι RSS Feeds. Φορτώνω το feed και το περνάω από ένα async process που ξεχωρίζει δύο links για κάθε item του feed. Αυτά τα ρίχνει σε ένα ReactiveCollection και μόλις πέσουν μέσα τα τσιμπάει ο subscriber του ItemsAdded και τα περνάει από ένα δεύτερο process. Δουλεύει μια χαρά. Το θέμα είναι ότι ο subscriber περιμένει συνεχώς για νέα items οπότε δεν μπορώ να ξέρω πότε έχει τελειώσει η διαδικασία. Υπάρχει τρόπος να το βελτιώσω ώστε μπορώ να ξέρω πότε έχει τελειώσει;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;pre style="font-family:Consolas;font-size:13px;"&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;source&amp;nbsp;&lt;span&gt;=&lt;/span&gt;&amp;nbsp;Feeds&lt;span&gt;.&lt;/span&gt;ToObservable();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;resourceList&amp;nbsp;&lt;span&gt;=&lt;/span&gt;&amp;nbsp;&lt;span&gt;new&lt;/span&gt;&amp;nbsp;ReactiveUI&lt;span&gt;.&lt;/span&gt;&lt;span&gt;ReactiveCollection&lt;/span&gt;&lt;span&gt;&amp;lt;&lt;/span&gt;&lt;span&gt;string&lt;/span&gt;&lt;span&gt;&amp;gt;&lt;/span&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;var&lt;/span&gt;&amp;nbsp;source2&amp;nbsp;&lt;span&gt;=&lt;/span&gt;&amp;nbsp;resourceList&lt;span&gt;.&lt;/span&gt;ToObservable();
&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;&amp;nbsp;&lt;span&gt;IObserver&lt;/span&gt;&lt;span&gt;&amp;lt;&lt;/span&gt;&lt;span&gt;Feed&lt;/span&gt;&lt;span&gt;&amp;gt;&lt;/span&gt;&amp;nbsp;obs1&amp;nbsp;&lt;span&gt;=&lt;/span&gt;&amp;nbsp;&lt;span&gt;Observer&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;Create&lt;span&gt;&amp;lt;&lt;/span&gt;&lt;span&gt;Feed&lt;/span&gt;&lt;span&gt;&amp;gt;&lt;/span&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;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;(x)&amp;nbsp;&lt;span&gt;=&amp;gt;&lt;/span&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;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ProcessFeed(x);
&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;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;(ex)&amp;nbsp;&lt;span&gt;=&amp;gt;&lt;/span&gt;&amp;nbsp;&lt;span&gt;Debug&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;WriteLine(&lt;span&gt;"OnError&amp;nbsp;::&amp;nbsp;"&lt;/span&gt;&amp;nbsp;&lt;span&gt;+&lt;/span&gt;&amp;nbsp;ex&lt;span&gt;.&lt;/span&gt;Message),
&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;()&amp;nbsp;&lt;span&gt;=&amp;gt;&lt;/span&gt;&amp;nbsp;&lt;span&gt;Debug&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;WriteLine(&lt;span&gt;"ProcessFeed&amp;nbsp;Completed"&lt;/span&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;&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;&amp;nbsp;resourceList&lt;span&gt;.&lt;/span&gt;ItemsAdded&lt;span&gt;.&lt;/span&gt;Subscribe(x&amp;nbsp;&lt;span&gt;=&amp;gt;&lt;/span&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ProcessUrl(x);
&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;=&amp;gt;&lt;/span&gt;&amp;nbsp;&lt;span&gt;Debug&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;WriteLine(&lt;span&gt;"ProcessUrl&amp;nbsp;Completed"&lt;/span&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;&amp;nbsp;&lt;span&gt;IDisposable&lt;/span&gt;&amp;nbsp;sub1&amp;nbsp;&lt;span&gt;=&lt;/span&gt;&amp;nbsp;source&lt;span&gt;.&lt;/span&gt;Subscribe(obs1);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;sub1&lt;span&gt;.&lt;/span&gt;Dispose();&lt;/pre&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description></item><item><title>Authentication through smtp with System.Net fails </title><link>https://www.dotnetzone.gr:443/cs/forums/thread/72311.aspx</link><pubDate>Wed, 13 Mar 2013 22:05:32 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:72311</guid><dc:creator>Chrysostomos Kolovos</dc:creator><slash:comments>4</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/72311.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=14&amp;PostID=72311</wfw:commentRss><description>Έχω ένα πρόβλημα με την αποστολή ενός Mail από ένα mail server τρίτου. Εκ τον&amp;nbsp;προτέρων&amp;nbsp;αναφέρω ότι δεν έχω καμία πρόσβαση στο mail server. Η πρόσβαση&amp;nbsp;γίνετε&amp;nbsp;με απλό smtp authentication στην 25 χωρίς ssl. Με τα στοιχεία που έχω στο outlook και στο thunderbird που δοκίμασα όλα λειτουργούν&amp;nbsp;κανονικά. Όταν&amp;nbsp;πάω&amp;nbsp;να στείλω όμως από .net application μου βγάζει authentication fail. Παραθέτω τις ρυθμίσεις και τον κώδικα.&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;pre&gt;&lt;span style="color:Black;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;&lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;try&lt;/span&gt;
            {
                MailMessage mail &lt;span style="color:Red;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;=&lt;/span&gt; &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;new&lt;/span&gt; MailMessage(&lt;span style="color:#666666;background-color:#e4e4e4;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;"user@mydomain.gr"&lt;/span&gt;, &lt;span style="color:#666666;background-color:#e4e4e4;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;"mygmail@gmail.com"&lt;/span&gt;);
                SmtpClient client &lt;span style="color:Red;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;=&lt;/span&gt; &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;new&lt;/span&gt; SmtpClient();
                client.Port &lt;span style="color:Red;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;=&lt;/span&gt; 25;
                client.DeliveryMethod &lt;span style="color:Red;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;=&lt;/span&gt; SmtpDeliveryMethod.Network;
                &lt;span style="color:Green;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;//client.UseDefaultCredentials = true;&lt;/span&gt;
                &lt;span style="color:Green;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;//client.EnableSsl = false;&lt;/span&gt;
                &lt;span style="color:Green;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;//client.Credentials = new System.Net.NetworkCredential("user@mydomain.gr", "123");&lt;/span&gt;

                &lt;span style="color:Green;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;//client.DeliveryFormat = SmtpDeliveryFormat.International;&lt;/span&gt;
                &lt;span style="color:Green;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;//client.ServicePoint.Expect100Continue = false;&lt;/span&gt;

                mail.Subject &lt;span style="color:Red;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;=&lt;/span&gt; &lt;span style="color:#666666;background-color:#e4e4e4;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;"this is a test email."&lt;/span&gt;;
                mail.Body &lt;span style="color:Red;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;=&lt;/span&gt; &lt;span style="color:#666666;background-color:#e4e4e4;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;"this is my test email body"&lt;/span&gt;;
                client.Send(mail);
            }
            &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;catch&lt;/span&gt; (SmtpException smtpex)
            {
                &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;throw&lt;/span&gt; smtpex;
            }
            &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;catch&lt;/span&gt; (Exception ex)
            {
                &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;throw&lt;/span&gt; ex;
            }&lt;/span&gt;&lt;/pre&gt;και το config&lt;/div&gt;&lt;div&gt;&lt;pre&gt;&lt;span style="color:Black;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;&amp;lt;system.net&amp;gt;
      &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:Maroon;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;mailSettings&lt;/span&gt;&lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;&amp;gt;&lt;/span&gt;
        &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:Maroon;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;smtp&lt;/span&gt; &lt;span style="color:Red;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;deliveryMethod&lt;/span&gt;&lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;="Network"&lt;/span&gt; &lt;span style="color:Red;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;from&lt;/span&gt;&lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;="user@mydomain.gr"&lt;/span&gt; &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;&amp;gt;&lt;/span&gt;
          &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:Maroon;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;network&lt;/span&gt; &lt;span style="color:Red;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;host&lt;/span&gt;&lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;="mail.mydomain.gr"&lt;/span&gt;
                    &lt;span style="color:Red;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;port&lt;/span&gt;&lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;="25"&lt;/span&gt;
                    &lt;span style="color:Red;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;defaultCredentials&lt;/span&gt;&lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;="false"&lt;/span&gt;  
                    &lt;span style="color:Red;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;userName&lt;/span&gt;&lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;="user"&lt;/span&gt;
                    &lt;span style="color:Red;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;password&lt;/span&gt;&lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;="pass"&lt;/span&gt; &lt;span style="color:Red;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;enableSsl&lt;/span&gt;&lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;="false"&lt;/span&gt;&lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;/&amp;gt;&lt;/span&gt;
        &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:Maroon;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;smtp&lt;/span&gt;&lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;&amp;gt;&lt;/span&gt;
      &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:Maroon;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;mailSettings&lt;/span&gt;&lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;&amp;gt;&lt;/span&gt;
    &amp;lt;/system.net&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;Τα στοιχεία σύνδεσης(κωδικοί,user,host, μπλα μπλα) έχουν χιλιοτσεκαριστεί και από το ίδιο pc στο Outlook/&lt;span style="font-size:10pt;"&gt;thunderbird&lt;/span&gt;&lt;span style="font-size:10pt;"&gt;&amp;nbsp;δουλεύουν.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;/div&gt;</description></item><item><title>State and behavior testing στο ίδιο τεστ </title><link>https://www.dotnetzone.gr:443/cs/forums/thread/72236.aspx</link><pubDate>Sun, 03 Mar 2013 23:41:08 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:72236</guid><dc:creator>xabikos</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/72236.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=14&amp;PostID=72236</wfw:commentRss><description>Στην προσπάθεια που κάνω να βελτιώσω τον τρόπο που γράφω τεστ για τον κώδικα δεν μπορώ να αποφασίσω με σιγουριά πως ακριβώς πρέπει να γράφεται ένα τεστ. Σύμφωνα με αυτό που θεωρείται best practice το τεστ πρέπει να αφορά και να τεστάρει ένα και μόνο πράγμα. Έτσι δεν ξέρω αν το να τεστάρω τόσο την κατάσταση-αποτέλεσμα (state) όσο και την συμπεριφορά (behavior) του συστήματος στο ίδιο τεστ δεν είναι καλή πρακτική. &lt;br&gt;Για να γίνω πιο κατανοητός θα παραθέσω ένα παράδειγμα με κώδικα.&lt;br&gt;&lt;br&gt;&lt;table style="background-color:#f2f2f2;border:solid 1px #e5e5e5;" border="0" cellpadding="0" cellspacing="0" width="100%"&gt;&lt;tr style="vertical-align:top;line-height:normal;"&gt;&lt;td style="width:40px;text-align:right;"&gt;&lt;pre style="font-family:courier new;font-size:11px;color:gray;margin:0px;padding:2px;border-right:solid 1px #e7e7e7;"&gt;1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
 &lt;/pre&gt;&lt;/td&gt;&lt;td&gt;&lt;pre style="margin:0px;padding:2px;padding-left:8px;"&gt;&lt;span style="color:Black;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;&lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;class&lt;/span&gt; UsersService
    {
        &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;private&lt;/span&gt; &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;readonly&lt;/span&gt; IUnitOfWorkFactory _unitOfWorkFactory;
        &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;private&lt;/span&gt; &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;readonly&lt;/span&gt; IUsersRespository _repository;

        &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;public&lt;/span&gt; UsersService(IUnitOfWorkFactory unitOfWorkFactory, IUsersRespository repository)
        {
            _unitOfWorkFactory &lt;span style="color:Red;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;=&lt;/span&gt; unitOfWorkFactory;
            _repository &lt;span style="color:Red;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;=&lt;/span&gt; repository;
        }

       &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;long&lt;/span&gt; Insert(User user)
        {
            &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;using&lt;/span&gt; (var uow &lt;span style="color:Red;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;=&lt;/span&gt; _unitOfWorkFactory.Create())
            {
                _repository.InsertOrUpdate(user);
                    uow.Commit();
                    &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;return&lt;/span&gt; user.Id;
                
            }
        }

    }

    &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;interface&lt;/span&gt; IUsersRespository
    {
        &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;void&lt;/span&gt; InsertOrUpdate(User user);
    }

    &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;interface&lt;/span&gt; IUnitOfWorkFactory
    {
        IUnitOfWork Create();
    }

    &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;interface&lt;/span&gt; IUnitOfWork : IDisposable
    {
        &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;void&lt;/span&gt; Commit();
    }&lt;/span&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br&gt;Και θέλουμε να τεστάρουμε την μέθοδο insert του service. Αυτό που μπορώ να σκεφτώ είναι δυο προσεγγίσεις. Η πρώτη σε μια μέθοδο τεστάρουμε τόσο την σωστή αλληλεπίδραση μεταξύ των objects αλλά και το αποτέλεσμα που επιστρέφει η μέθοδος. Ο κώδικας μοιάζει με τον παρακάτω:&lt;br&gt;&lt;br&gt;&lt;table style="background-color:#f2f2f2;border:solid 1px #e5e5e5;" border="0" cellpadding="0" cellspacing="0" width="100%"&gt;&lt;tr style="vertical-align:top;line-height:normal;"&gt;&lt;td style="width:40px;text-align:right;"&gt;&lt;pre style="font-family:courier new;font-size:11px;color:gray;margin:0px;padding:2px;border-right:solid 1px #e7e7e7;"&gt;1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 &lt;/pre&gt;&lt;/td&gt;&lt;td&gt;&lt;pre style="margin:0px;padding:2px;padding-left:8px;"&gt;&lt;span style="color:Black;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;&lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;void&lt;/span&gt; TestInsert_ValidUser_ReturnsId()
        {
            &lt;span style="color:Green;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;//Arrange&lt;/span&gt;
            _mockedRepository.Setup(r =&amp;gt; r.InsertOrUpdate(It.IsAny&amp;lt;User&amp;gt;())).Callback((User u) =&amp;gt; { u.Id++; });
            User newUser &lt;span style="color:Red;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;=&lt;/span&gt; &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;new&lt;/span&gt; User {UserName &lt;span style="color:Red;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;=&lt;/span&gt; &lt;span style="color:#666666;background-color:#e4e4e4;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;"username"&lt;/span&gt;, Password &lt;span style="color:Red;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;=&lt;/span&gt; &lt;span style="color:#666666;background-color:#e4e4e4;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;"Password"&lt;/span&gt;};

            &lt;span style="color:Green;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;//Act&lt;/span&gt;
            var result &lt;span style="color:Red;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;=&lt;/span&gt; _service.Insert(newUser);

            &lt;span style="color:Green;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;//Assert&lt;/span&gt;
            Assert.AreNotEqual(0, result, &lt;span style="color:#666666;background-color:#e4e4e4;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;"Id not set"&lt;/span&gt;);
            _mockedUnitOfWorkFactory.Verify(uof =&amp;gt; uof.Create(), Times.AtLeast(1));
            _mockedRepository.Verify(r =&amp;gt; r.InsertOrUpdate(It.IsAny&amp;lt;User&amp;gt;()), Times.Once());
            _mockedUnitOfWork.Verify(uow=&amp;gt;uow.Commit(), Times.Once());
        }&lt;/span&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br&gt;Έτσι σε αυτή την μέθοδο τεστάρουμε τόσο ότι η οντότητα απέκτησε κάποιο Id διαφορετικό από το 0 (state) όσο και το ότι κλήθηκαν μέθοδοι στα άλλα αντικείμενα (behavior).&lt;br&gt;&lt;br&gt;Η άλλη προσέγγιση που μπορώ να σκεφτώ είναι χωρίζουμε το παραπάνω τεστ σε τέσσερις διαφορετικές μεθόδους που η κάθε μία από αυτή θα είναι υπεύθυνη για έναν και μόνο έλεγχο.&lt;br&gt;Για παράδειγμα η μια θα ελέγχει για το Id η άλλη ότι κλήθηκε η μέθοδος create τουλάχιστον μια φορά κ.ο.κ.&lt;br&gt;Προσωπικά προτιμώ την πρώτη προσέγγιση μιας δεν υπάρχουν τόσες πολλές μέθοδοι για συντήρηση. Από την άλλη βέβαια η συγκεκριμένη μέθοδος εξαρτάται πάρα πολύ από την συγκεκριμένη υλοποίηση και σε μια αλλαγή θα πρέπει να αλλάξει αντίστοιχα και το τεστ.&lt;br&gt;&lt;br&gt;Περιμένω να ακούσω γνώμες και οποιεσδήποτε παρατηρήσεις πάνω στο θέμα.&lt;br&gt;&lt;br&gt;</description></item><item><title>Unit Test σε Console Application</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/72068.aspx</link><pubDate>Thu, 07 Feb 2013 22:56:40 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:72068</guid><dc:creator>diasonidis</dc:creator><slash:comments>3</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/72068.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=14&amp;PostID=72068</wfw:commentRss><description>Καλησπέρα,&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Έχω μια εφαρμογή console σε c# η οποία αποτελείται απο ένα μόνο αρχείο με μια κλάση.&amp;nbsp;&lt;span style="font-size:10pt;"&gt;Η εφαρμογή δημιουργεί&amp;nbsp;multiplication table και έχει τη δυνατότητα να τα αποθηκέυσει ως html ή csv αρχεία ή απλά να τα τυπώσει στη γραμμή εντολών. Τα ορίσματα που δέχετε κατα την εκκίνηση είναι ο αριθμός των γραμμών, ο αριθμός των στηλών η μορφή που θα γίνει η εξαγωγή (csv, html, console).&amp;nbsp;&lt;/span&gt;&lt;span style="font-size:10pt;"&gt;Μου ζητήθηκε να δημιουργήσω unit tests για την εφαρμογή, αλλά δυστηχώς δεν έχω ξαναδουλέψει με κάτι αντίστοιχο. Μπορεί να με βοηθήσει κάποιος?&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Ευχαριστώ&lt;/div&gt;</description></item><item><title>SmtpClient Ο ίδιος κώδικας κάνει throw διαφορετικό exception?</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/72059.aspx</link><pubDate>Wed, 06 Feb 2013 01:27:33 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:72059</guid><dc:creator>micfarmakis</dc:creator><slash:comments>3</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/72059.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=14&amp;PostID=72059</wfw:commentRss><description>Έχω το παρακάτω απλό console application&amp;nbsp;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre;"&gt;	&lt;/span&gt;private static void Main(string[] args)&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; MailMessage message = new MailMessage { From = new MailAddress("xxxx@yyy.com") };&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; message.Body = "Test!";&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; message.To.Add(new MailAddress("ZZZZZZZ@zzz.com"));&lt;/div&gt;&lt;div&gt;&lt;span style="font-size:10pt;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; using (SmtpClient smtp = new SmtpClient())&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size:10pt;"&gt;&lt;span class="Apple-tab-span" style="white-space:pre;"&gt;		&lt;/span&gt;smtp.Host = "mail.adactus64.co.uk";&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; smtp.Port = 25;&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; smtp.Timeout = 10; --in purpose to test wcf service binding timeout later&lt;/div&gt;&lt;div&gt;&lt;span style="font-size:10pt;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; try&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; smtp.Send(message);&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; catch (SmtpException ex)&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {&lt;/div&gt;&lt;div&gt;&lt;span style="font-size:10pt;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Console.WriteLine(ex);&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;/div&gt;&lt;div&gt;&lt;span style="font-size:10pt;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Console.ReadLine();&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Αυτό που μου κινεί το ενδιαφέρον είναι ότι ο παραπάνω κώδικας μου κάνει raise&amp;nbsp;&lt;span style="font-size:10pt;"&gt;SmtpException&lt;/span&gt;&lt;span style="font-size:10pt;"&gt;&amp;nbsp;άλλοτε Τhe operation has timed out είτε Τhe remote server could not be resolved που ήταν και αυτό που ανέμενα. Υπάρχει κάποια εξήγηση για αυτό? (η ίδια συμπεριφορά είτε ορίσω είτε όχι το Timeout property).&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size:10pt;"&gt;Aφορμή για τα παραπάνω στάθηκε το γεγονός ότι στο log file εφαρμογής είχα σποραδικά εγγραφές τύπου Operation time out και με to stack trace να δείχνει στη stmp.Send μολονότι τα settings ήταν σωστά καθότι η ευρεία πλειοψηφία των emails στέλνονταν κανονικά.&amp;nbsp;&lt;/span&gt;&lt;/div&gt;</description></item><item><title>Immutable Collections? Yumm!</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/71806.aspx</link><pubDate>Sat, 29 Dec 2012 01:21:38 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:71806</guid><dc:creator>Παναγιώτης Καναβός</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/71806.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=14&amp;PostID=71806</wfw:commentRss><description>Ψάχνοντας για κάτι άλλο, πέτυχα το &lt;a href="https://nuget.org/packages/Microsoft.Bcl.Immutable"&gt;Microsoft.Bcl.Immutable &lt;/a&gt;package το οποίο προσθέτει immutable collections στο .NET. Τα collections αυτά δεν μπορούν να τροποποιηθούν από τη στιγμή που δημιουργηθούν. Αντί γι αυτό, επιστρέφεται ένα νέο collection με τις αλλαγές που έχουν ζητηθεί. Η "μαγκιά" είναι ότι το παλιό και το νέο collection χρησιμοποιούν όσο γίνεται την ίδια μνήμη με αποτέλεσμα να μην χάνεται μνήμη.&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Με τον τρόπο αυτό γίνεται πολύ ευκολότερος ο παράλληλος προγραμματισμός (δεν χρειάζονται locks), ενώ μπορεί να γραφτεί πολύ ευκολότερα exception-safe κώδικας όταν πρέπει να πειράξουμε collections.&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Περισσότερες λεπτομέρειες για τα Immutable collections υπάρχουν στο &lt;a href="http://blogs.msdn.com/b/bclteam/archive/2012/12/18/preview-of-immutable-collections-released-on-nuget.aspx"&gt;Preview of Immutable Collections released on NuGet&lt;/a&gt;&lt;/div&gt;</description></item><item><title>code analysis</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/71750.aspx</link><pubDate>Fri, 14 Dec 2012 07:37:00 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:71750</guid><dc:creator>evagelos</dc:creator><slash:comments>2</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/71750.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=14&amp;PostID=71750</wfw:commentRss><description>&lt;p&gt;Γεια σας παιδιά.&lt;/p&gt;&lt;p&gt;Εχω φτιάξει αυτήν την μεθοδο που λειτουργεί μια χαρα ή έτσι νομίζω τουλάχιστον.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&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;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; insData()
        {
            &lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;if&lt;/span&gt; (resultGV.Rows.Count &amp;gt; 0)
            {

                DataTable insdt &lt;span style="color:red;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;=&lt;/span&gt; &lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;new&lt;/span&gt; DataTable();

                insdt &lt;span style="color:red;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;=&lt;/span&gt; resultGV.DataSource &lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;as&lt;/span&gt; DataTable;

                &lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;using&lt;/span&gt; (SqlBulkCopy bulkCopy &lt;span style="color:red;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;=&lt;/span&gt;
                            &lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;new&lt;/span&gt; SqlBulkCopy(connection.ConnectionString))
                {
                    &lt;span style="color:green;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;// column mappings fyeid, un_custid, qty, val, code&lt;/span&gt;
                    bulkCopy.ColumnMappings.Add(&lt;span style="font-family:Courier New;font-size:11px;font-weight:normal;"&gt;"id"&lt;/span&gt;, &lt;span style="font-family:Courier New;font-size:11px;font-weight:normal;"&gt;"id"&lt;/span&gt;);
                    bulkCopy.ColumnMappings.Add(&lt;span style="font-family:Courier New;font-size:11px;font-weight:normal;"&gt;"code"&lt;/span&gt;, &lt;span style="font-family:Courier New;font-size:11px;font-weight:normal;"&gt;"code"&lt;/span&gt;);
                    bulkCopy.ColumnMappings.Add(&lt;span style="font-family:Courier New;font-size:11px;font-weight:normal;"&gt;"descr"&lt;/span&gt;, &lt;span style="font-family:Courier New;font-size:11px;font-weight:normal;"&gt;"descr"&lt;/span&gt;);
                    bulkCopy.ColumnMappings.Add(&lt;span style="font-family:Courier New;font-size:11px;font-weight:normal;"&gt;"catid1"&lt;/span&gt;, &lt;span style="font-family:Courier New;font-size:11px;font-weight:normal;"&gt;"catid1"&lt;/span&gt;);
                    bulkCopy.ColumnMappings.Add(&lt;span style="font-family:Courier New;font-size:11px;font-weight:normal;"&gt;"cost1"&lt;/span&gt;, &lt;span style="font-family:Courier New;font-size:11px;font-weight:normal;"&gt;"cost1"&lt;/span&gt;);
                    bulkCopy.ColumnMappings.Add(&lt;span style="font-family:Courier New;font-size:11px;font-weight:normal;"&gt;"vtcid"&lt;/span&gt;, &lt;span style="font-family:Courier New;font-size:11px;font-weight:normal;"&gt;"vtcid"&lt;/span&gt;);
                    bulkCopy.ColumnMappings.Add(&lt;span style="font-family:Courier New;font-size:11px;font-weight:normal;"&gt;"grouptxt"&lt;/span&gt;, &lt;span style="font-family:Courier New;font-size:11px;font-weight:normal;"&gt;"grouptxt"&lt;/span&gt;);

                    bulkCopy.DestinationTableName &lt;span style="color:red;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;=&lt;/span&gt; &lt;span style="font-family:Courier New;font-size:11px;font-weight:normal;"&gt;"material"&lt;/span&gt;;
                    bulkCopy.WriteToServer(insdt);
                }                
                MessageBox.Show(&lt;span style="font-family:Courier New;font-size:11px;font-weight:normal;"&gt;"Τέλος εξαγωγής"&lt;/span&gt;, &lt;span style="font-family:Courier New;font-size:11px;font-weight:normal;"&gt;"Τέλος"&lt;/span&gt;, MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
        }&lt;/span&gt;&lt;/pre&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Η ερώτησεις μου:&lt;/p&gt;&lt;ol&gt;&lt;li&gt;Βλέπετε κάποιο λάθος;&lt;/li&gt;&lt;li&gt;Στο code analysis μου βγάζει ότι δεν κάνω dispose το datateble μου. Και εδώ έχω τα ερωτήματά μου: Δεν πρέπει να το κάνει μονο του αυτό το .net; Τι θα "πρέπει" να κάνω;&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;Ευχαριστώ&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description></item><item><title>ΕΚΤΥΠΩΣΗ ΑΠΟ C# ΣΕ ΕΚΤΥΠΩΤΗ DOT MATRIX</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/61672.aspx</link><pubDate>Wed, 15 Dec 2010 21:11:19 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:61672</guid><dc:creator>vtops</dc:creator><slash:comments>8</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/61672.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=14&amp;PostID=61672</wfw:commentRss><description>&lt;P&gt;Καλημέρα σε όλους,&lt;/P&gt;
&lt;P&gt;Δεν έχω ιδιαίτερη εμπειρία με εκτπωτές dot matrix και θα ήθελα παρακαλώ τα φώτα σας.&lt;/P&gt;
&lt;P&gt;έχω να υλοποιήσω ένα project σε C# όπου έχω κάποιες ετικέτες σε τρέχω μέτρο χαρτί, όπου η κάθε ετικέτα έχει συγκεκριμένο πλάτος και ύψος και πρέπει ένας εκτυπωτής dot matrix να πηγαίνει να εκτυπώνει ένα πλήθος ετικετών που εξαρτάται από κάποιες παραμέτρους του προγράμματος και να σταματάει η κεφαλή&amp;nbsp; ακριβώς στην επόμενη ετικέτα προς εκτύπωση.&lt;/P&gt;
&lt;P&gt;Αρχικά ανέπτυξα μια ρουτίνα όπου παράγει ένα word document , όπου μέσα του να παράγεται ένας πίνακας μια στήλης και τόσων γραμμών όσων ορίζονται και μέσα στα κελιά του πίνακα να πέφτουν τα δεδομένα. (ΤΟ ύψος της κάθε γραμμής είναι ίσο με το ύψος της κάθε ετικέτας)&lt;/P&gt;
&lt;P&gt;Προσπαθώντας να εκτυπώσω το αποτέλεσμα μέσα από το word αντιμετωπίζω τα εξής προβλήματα:&lt;/P&gt;
&lt;P&gt;1) Οι ετικέτες δεν εκτπυπώνονται ομοιόμορφα, δηλαδή παρόλου που μέσα στο αρχείο του word τα βλέπω σωστά μετά στην εκτύπωση χάνουν πάνω στην ετικέτα (δηλαδή η πρώτη ετικέτα ξεκινάει πάνω πάνω, μετά η δεύτερη πάει 0,5 χιλιοστό παρά κάτω, η τρίτη 1 χιλιοστό κλπ κλπ και ξαφνικά στην 10η έχει χαθεί ένας πόντος)&lt;/P&gt;
&lt;P&gt;2) Και το ποιο σημαντικό είναι πως ακόμη και με αυτό το χάσιμο, μετά την εκτύπωση της τελευταίας ετικέτας ο εκτυπωτής τραβάει κενό χαρτί (παρόλου που κατά την δημιουργία του document έχω ορίσει το ύψος του χαρτιού να είναι ίσο το άθροισμα όλων των ετικετών που πάνε προς εκτύπωση)&lt;/P&gt;
&lt;P&gt;Μάλλον αυτό που επιχείρησα δεν είναι η σωστή προσσέγγιση του προβλήματος&lt;/P&gt;
&lt;P&gt;Έχει κανείς καμιά ιδέα για το πως μπορούμε να εκτυπώσουμε από C# σε dot matrix και να σταματάμε το χαρτί εκεί που θέλουμε;&lt;/P&gt;</description></item><item><title>C# ή VB.NET ?</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/1311.aspx</link><pubDate>Sat, 26 Feb 2005 04:00:46 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:1311</guid><dc:creator>Παναγιώτης Καναβός</dc:creator><slash:comments>51</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/1311.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=14&amp;PostID=1311</wfw:commentRss><description>Διαβάστε μια ενδιαφέρουσα άποψη για τις διαφορές C# και VB.NET με τίτλο "&lt;a target="_blank" title="http://blog.signaleleven.com/index.php?itemid=9" href="http://blog.signaleleven.com/index.php?itemid=9"&gt;VB.Net ruined my day: Part 1&lt;/a&gt;". Συνοπτικά, ο αρθρογράφος ανακαλύπτει ότι όταν κάνεις cast ένα double σε int η VB.Net τον στρογγυλοποιεί στον πλησιέστερο ζυγό αριθμό. Η κατάληξή του (με την οποία συμφωνώ &lt;strong&gt;μόνο&lt;/strong&gt; στο 50%): "&lt;em&gt;Like all strange VBisms, this one has a historical reason for existing. It's because historically VB was created by a bunch of drunken monkeys&lt;/em&gt;." &lt;img src="/forums//emoticons/emotion-2.gif" alt="Big Smile" /&gt;&lt;br /&gt;&lt;br /&gt;Κάποτε πίστευα κι εγώ ότι δεν υπάρχει σημαντική διαφορά μεταξύ C# και VB.Net. Έχω αρχίσει να αλλάζω γνώμη και οι λόγοι δεν έχουν άμεση σχέση με τη γλώσσα. Ναι, κάτι περίεργα σαν τη στρογγυλοποίηση ή το Option Explicit έχουν σχέση, αλλά υπάρχουν για ιστορικούς λόγους. Δυστυχώς, όλο και κάποιος επιμένει να έχει το Option Explicit Off ή κάποια στιγμή ξεχνάς την περίεργη συμπεριφορά του cast και μετά ψάχνεσαι και δεν φτάνεις ...&lt;br /&gt;&lt;br /&gt;Υπάρχει όμως και άλλοι, σοβαρότεροι λόγοι. &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Πρώτον, τα εργαλεία και addins, κυρίως τα open-source, φτιάχνονται σε C#. Αλλά και εμπορικά όπως το Resharper, φτιάχνονται σε C# ενώ είναι δύσκολο να φτιαχτούν για VB.Net, κυρίως λόγω των "παραδοσιακών δυστροπιών" της γλώσσας. Από την άλλη, μπορούν να χρησιμοποιηθούν οι αλγόριθμοι που φτιάχτηκαν για C++ ή Java για code metrics, refactoring, beautifying κλπ με ελάχιστες αλλαγές.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Δεύτερον, οι ενδιαφέρουσες εξελίξεις γίνονται σχεδόν όλες στη C#! Generics, Cω, aspects, αλλά και ports από τη Java όπως το nHibernate και το nSpring. &lt;br /&gt;&lt;br /&gt;Λοιπόν, ως τώρα δεν είχα λόγους να επιλέξω τη VB.Net. Σίγά-σιγά όμως αρχίζω να αποκτώ λόγους να την αποφύγω ...</description></item><item><title>Invalid entry point exception σε κλήση F# συνάρτησης από C#</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/71523.aspx</link><pubDate>Sat, 03 Nov 2012 01:29:40 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:71523</guid><dc:creator>opterios</dc:creator><slash:comments>4</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/71523.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=14&amp;PostID=71523</wfw:commentRss><description>Καλησπέρα σε όλους.&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Έχω φτιάξει στην F# μία συνάρτηση (primesTo x) που επιστρέφει μία λίστα από όλους τους ακέραιους διαιρέτες μίας ακολουθίας αριθμών. Δηλαδή, για είσοδο x θα επιστρέψει μία λίστα διάστασης x, όπου κάθε στοιχείο της λίστας θα περιέχει τους ακέραιους διαιρέτες όλων των ακέραιων από το 1 μέχρι το x. Για παράδειγμα, για είσοδο "10":&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;pre&gt;&lt;span style="color:Black;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;&amp;gt; primesTo 10;;
val it : &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;int&lt;/span&gt; list list &lt;span style="color:Red;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;=&lt;/span&gt;
  [[1]; [2; 1]; [3; 1]; [4; 2; 1]; [5; 1]; [6; 3; 2; 1]; [7; 1]; [8; 4; 2; 1];
   [9; 3; 1]; [10; 5; 2; 1]]
&amp;gt; &lt;/span&gt;&lt;/pre&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Επίσης, έχω και μία άλλη (divs x) που χρησιμοποιείται από την primesTo, η οποία επιστρέφει μία λίστα από όλους τους ακέραιους διαιρέτες ενός αριθμού (εκτός του εαυτού του). Παράδειγμα:&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;pre&gt;&lt;span style="color:Black;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;&amp;gt; divs 10;;
val it : &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;int&lt;/span&gt; list &lt;span style="color:Red;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;=&lt;/span&gt; [5; 2; 1]
&amp;gt; &lt;/span&gt;&lt;/pre&gt;Τις συναρτήσεις αυτές τις έβαλα σε μία βιβλιοθήκη και θέλω να τις καλέσω από ένα WebForms C# project. Ενώ λοιπόν η κλήση για την divs τρέχει κανονικά, όπως φαίνεται εδώ:&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;pre style="font-family:Consolas;background-position:initial initial;background-repeat:initial initial;"&gt;&lt;span style="color:blue;"&gt;foreach&lt;/span&gt;&amp;nbsp;(&lt;span style="color:blue;"&gt;int&lt;/span&gt;&amp;nbsp;i&amp;nbsp;&lt;span style="color:blue;"&gt;in&lt;/span&gt;&amp;nbsp;&lt;span style="color:#2b91af;"&gt;TestFSharp&lt;/span&gt;.divs(&lt;font color="#0000ff"&gt;10&lt;/font&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:blue;"&gt;this&lt;/span&gt;.listBox1.Items.Add(i.ToString());
&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;/pre&gt;&lt;/div&gt;&lt;div&gt;στην κλήση της primeTo μου χτυπά exception "&lt;span style="font-family:Tahoma, Arial, Helvetica;font-size:12px;"&gt;EntryPointNotFound&lt;/span&gt;".&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;System.EntryPointNotFoundException was unhandled&lt;/div&gt;&lt;div&gt;&lt;div&gt;&amp;nbsp; HResult=-2146233053&lt;/div&gt;&lt;div&gt;&amp;nbsp; Message=Entry point was not found.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;Παραθέτω και τον C# κώδικα που καλεί την primeTo (δοκιμάζω με τιμές τάξεως του 10):&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;pre style="font-family:Consolas;background-position:initial initial;background-repeat:initial initial;"&gt;&lt;span style="color:#2b91af;"&gt;List&lt;/span&gt;&amp;lt;&lt;span style="color:blue;"&gt;int&lt;/span&gt;&amp;gt;&amp;nbsp;innerList&amp;nbsp;=&amp;nbsp;&lt;span style="color:blue;"&gt;new&lt;/span&gt;&amp;nbsp;&lt;span style="color:#2b91af;"&gt;List&lt;/span&gt;&amp;lt;&lt;span style="color:blue;"&gt;int&lt;/span&gt;&amp;gt;();
&lt;span&gt;List&lt;/span&gt;&amp;lt;&lt;span&gt;List&lt;/span&gt;&amp;lt;&lt;span style="color:blue;"&gt;int&lt;/span&gt;&amp;gt;&amp;gt;&amp;nbsp;returnList&amp;nbsp;=&amp;nbsp;&lt;span style="color:blue;"&gt;new&lt;/span&gt;&amp;nbsp;&lt;span&gt;List&lt;/span&gt;&amp;lt;&lt;span&gt;List&lt;/span&gt;&amp;lt;&lt;span style="color:blue;"&gt;int&lt;/span&gt;&amp;gt;&amp;gt;();
&lt;span style="color:blue;"&gt;foreach&lt;/span&gt;&amp;nbsp;(&lt;span&gt;FSharpList&lt;/span&gt;&amp;lt;&lt;span style="color:blue;"&gt;int&lt;/span&gt;&amp;gt;&amp;nbsp;l&amp;nbsp;&lt;span style="color:blue;"&gt;in&lt;/span&gt;&amp;nbsp;&lt;span&gt;&lt;b&gt;&lt;span&gt;TestFSharp&lt;/span&gt;.primesTo(10)&lt;/b&gt;&lt;/span&gt;)&lt;/pre&gt;&lt;pre style="font-family:Consolas;background-position:initial initial;background-repeat:initial initial;"&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:blue;"&gt;foreach&lt;/span&gt;&amp;nbsp;(&lt;span style="color:blue;"&gt;int&lt;/span&gt;&amp;nbsp;v&amp;nbsp;&lt;span style="color:blue;"&gt;in&lt;/span&gt;&amp;nbsp;l)
&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;&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;innerList.Add(v);
&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;&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;returnList.Add(innerList);
&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:blue;"&gt;return&lt;/span&gt;&amp;nbsp;returnList;&lt;/pre&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Με λίγα λόγια, η primeTo επιστρέφει μία nested FSharpList&amp;lt;FSharpList&amp;lt;int&amp;gt;&amp;gt; που θεωρώ έχει interface IEnumerable (αφού μπορεί και κάνει iteration σε FSharpList). Το πρόβλημα που αντιμετωπίζω είναι επειδή κάνω κάτι λάθος εγώ, ή υπάρχει κάποιος ειδικός χειρισμός στην κλήση nested λιστών έξω από το περιβάλλον της F#;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Αν θέλετε, να βάλω και τον κώδικα της F#, ωστόσο οι συναρτήσεις στο FSI εκτελούνται κανονικά χωρίς πρόβλημα όπως είδαμε και πιο πάνω, ακόμα και για αριθμούς της τάξεως 10^5, οπότε τον παραλείπω για να μη μεγαλώσει πολύ το post. Το πρόβλημά μου εμφανίζεται αποκλειστικά στην C#.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Ευχαριστώ εκ των προτέρων.&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;</description></item><item><title>Χρησιμοποιεί κανείς Task Parallel Library, Async ή Dataflow?</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/70577.aspx</link><pubDate>Mon, 11 Jun 2012 18:36:18 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:70577</guid><dc:creator>Παναγιώτης Καναβός</dc:creator><slash:comments>1</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/70577.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=14&amp;PostID=70577</wfw:commentRss><description>Το Task Parallel Library πρέπει να είναι το πιο δυνατό ίσως χαρακτηριστικό του .NET 4 και όμως φαίνεται ότι λίγοι το χρησιμοποιούν. Αντί γι αυτό ακούω να χρησιμοποιούνται ακόμα πολύ πιο εύθραυστες/περίπλοκες λύσεις όπως η χύμα χρήση threads και locks, ή ακόμα χειρότερα backgroundworkers και locks.&amp;nbsp;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Χρησιμοποιεί κανείς TPL και που?&lt;br&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;/div&gt;</description></item><item><title>Διαγραμμένη Δημοσίευση</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/70575.aspx</link><pubDate>Mon, 11 Jun 2012 15:14:56 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:70575</guid><dc:creator>sathiya</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/70575.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=14&amp;PostID=70575</wfw:commentRss><description>Αυτή η δημοσίευση έχει διαγραφεί.</description></item></channel></rss>