<?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>Tech-Ed Developers 2008</title><link>https://www.dotnetzone.gr:443/cs/blogs/teched08/default.aspx</link><description>Οδοιπορικό στην Βαρκελώνη...</description><dc:language>el</dc:language><generator>CommunityServer 2.1 SP3 (Build: 20423.1)</generator><item><title>Moving to blogspot</title><link>https://www.dotnetzone.gr:443/cs/blogs/teched08/archive/2012/02/15/moving-to-blogspot.aspx</link><pubDate>Wed, 15 Feb 2012 08:08:00 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:75127</guid><dc:creator>George J. Capnias</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/blogs/teched08/comments/75127.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/blogs/teched08/commentrss.aspx?PostID=75127</wfw:commentRss><wfw:comment>https://www.dotnetzone.gr:443/cs/blogs/teched08/rsscomments.aspx?PostID=75127</wfw:comment><description>I had such a great time through this blog. I am moving to biboudis.wordpress.com http://biboudis.blogspot.gr/ (update your favorite RSS reader ). I always thought of blogging as a personal public notebook in which I can write some pieces for later reference. This list could be multiplied by 20, if I had taken some time every week to post various things that I liked, I wrote, I met, solved (or not). Some of my posts that I really went back to, at some point, to seek some information were the following. An Extensible WPF client layout with RibbonTab submenus using MEF CloseTabBehavior για TabItems σε Silverlight TabControl A note to self: Silverlight DataBinding awesomeness μέσα από Expression Blend, XAML και ... Silverlight animatable custom controls: quick ‘n’ dirty! [Μαθαίνοντας Design Patterns] Model – View – ViewModel Closures στη C# Πύργοι του Ανόι σε F# Εισαγωγή στα Expression Trees και στις δυναμικές μεθόδους (Visual Studio 2010) So update your RSS reader from this to my wordpress blogspot, always follow...(&lt;a href="https://www.dotnetzone.gr:443/cs/blogs/teched08/archive/2012/02/15/moving-to-blogspot.aspx"&gt;read more&lt;/a&gt;)&lt;img src="https://www.dotnetzone.gr:443/cs/aggbug.aspx?PostID=75127" width="1" height="1"&gt;</description></item><item><title>An Extensible WPF client layout with RibbonTab submenus using MEF</title><link>https://www.dotnetzone.gr:443/cs/blogs/teched08/archive/2010/12/01/an-extensible-wpf-client-layout-with-ribbontab-submenus-using-mef.aspx</link><pubDate>Wed, 01 Dec 2010 09:50:00 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:75128</guid><dc:creator>George J. Capnias</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/blogs/teched08/comments/75128.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/blogs/teched08/commentrss.aspx?PostID=75128</wfw:commentRss><wfw:comment>https://www.dotnetzone.gr:443/cs/blogs/teched08/rsscomments.aspx?PostID=75128</wfw:comment><description>I was just experimenting with extensibility using MEF ( MEF is a .NET resident for .NET4 and SL4 ), when I created a small proof of this functionality that I could share via my blog. It is a semi-patterned (only for the main shell, my shell, not a PRISM one with viewregions and stuff, just an MVVM main area implemented with MVVMLight ), but it does what it is supposed to do. So what is is supposed to do? It is an application, which can be extended by simply, drag and dropping, dlls in the Plugins directory. Every plugin, contains a certain amount, of RibbonTabs and each one, can provide applications, via RibbonTabItems ( utilized the Microsoft Ribbon for WPF October 2010 ). By clicking each one of these items, one can open the corresponding application in the closable TabControl next to the plugin option menu. This menu, by the way is a WPF Outlook bar reused by this codeproject . The Favorites menu is a subset of the Applications option. The plugin system is based on MEF, demonstrating a simple plugin system....(&lt;a href="https://www.dotnetzone.gr:443/cs/blogs/teched08/archive/2010/12/01/an-extensible-wpf-client-layout-with-ribbontab-submenus-using-mef.aspx"&gt;read more&lt;/a&gt;)&lt;img src="https://www.dotnetzone.gr:443/cs/aggbug.aspx?PostID=75128" width="1" height="1"&gt;</description><category domain="https://www.dotnetzone.gr:443/cs/blogs/teched08/archive/tags/C_2300_/default.aspx">C#</category><category domain="https://www.dotnetzone.gr:443/cs/blogs/teched08/archive/tags/MEF/default.aspx">MEF</category><category domain="https://www.dotnetzone.gr:443/cs/blogs/teched08/archive/tags/silverlight/default.aspx">silverlight</category><category domain="https://www.dotnetzone.gr:443/cs/blogs/teched08/archive/tags/WPF/default.aspx">WPF</category></item><item><title>IT Pro | Dev Connections 2010 - "Και Line-of-Business και Rich Internet Applications: The silver side of the moon"</title><link>https://www.dotnetzone.gr:443/cs/blogs/teched08/archive/2010/11/30/it-pro-dev-connections-2010-quot-line-of-business-rich-internet-applications-the-silver-side-of-the-moon-quot.aspx</link><pubDate>Wed, 01 Dec 2010 07:42:00 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:75129</guid><dc:creator>George J. Capnias</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/blogs/teched08/comments/75129.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/blogs/teched08/commentrss.aspx?PostID=75129</wfw:commentRss><wfw:comment>https://www.dotnetzone.gr:443/cs/blogs/teched08/rsscomments.aspx?PostID=75129</wfw:comment><description>Ευχαριστούμε όσους μας τίμησαν με την παρουσία τους στο IT Pro | Dev Connections 2010 , στην παρουσίαση μας ( Άγγελος Μπιμπούδης &amp;amp; Μάνος Κελαϊδίτης ) με τίτλο &amp;quot;Και Line-of-Business και Rich Internet Applications: The silver side of the moon&amp;quot;. Είδαμε πρακτικές και τεχνολογίες για RIA εφαρμογές σε Silverlight, πώς ξέραμε τις επιχειρησιακές εφαρμογές με Silverlight μέχρι τώρα και τι εφόδια έχουμε πια, για να φτιάχνουμε γρηγορότερα και πιο δομημένα web applications, συνδυάζοντας RIA και LoB χαρακτηριστικά. Προσπαθήσαμε να πούμε όσα περισσότερα πράγματα γίνεται, δίνοντας ένα κβάντο πληροφορίας που μπορεί να χρησιμοποιηθεί άμεσα, ξεκινώντας με WCF Ria Services, MVVM design pattern και MEF για extensibility. Ο χρόνος ήταν περιορισμένος, αλλά πιστεύουμε ότι τα καταφέραμε (φάνηκε και από την αξιολόγηση :D). Για όσους όμως, πιστεύουν ότι 75 λεπτά δεν έφτασαν (και αλήθεια θα είναι), σχεδιάζουμε να κάνουμε live meeting στο άμεσο μέλλον, οπότε stay tuned. *Για να τρέξετε τα demos, θα χρειαστείτε: WCF Ria Services,...(&lt;a href="https://www.dotnetzone.gr:443/cs/blogs/teched08/archive/2010/11/30/it-pro-dev-connections-2010-quot-line-of-business-rich-internet-applications-the-silver-side-of-the-moon-quot.aspx"&gt;read more&lt;/a&gt;)&lt;img src="https://www.dotnetzone.gr:443/cs/aggbug.aspx?PostID=75129" width="1" height="1"&gt;</description><category domain="https://www.dotnetzone.gr:443/cs/blogs/teched08/archive/tags/C_2300_/default.aspx">C#</category><category domain="https://www.dotnetzone.gr:443/cs/blogs/teched08/archive/tags/MEF/default.aspx">MEF</category><category domain="https://www.dotnetzone.gr:443/cs/blogs/teched08/archive/tags/MVVM/default.aspx">MVVM</category><category domain="https://www.dotnetzone.gr:443/cs/blogs/teched08/archive/tags/silverlight/default.aspx">silverlight</category></item><item><title>CloseTabBehavior για TabItems σε Silverlight TabControl</title><link>https://www.dotnetzone.gr:443/cs/blogs/teched08/archive/2010/11/29/closetabbehavior-tabitems-silverlight-tabcontrol.aspx</link><pubDate>Mon, 29 Nov 2010 22:39:00 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:75130</guid><dc:creator>George J. Capnias</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/blogs/teched08/comments/75130.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/blogs/teched08/commentrss.aspx?PostID=75130</wfw:commentRss><wfw:comment>https://www.dotnetzone.gr:443/cs/blogs/teched08/rsscomments.aspx?PostID=75130</wfw:comment><description>Χρησιμοποιώντας το tabcontrol του Silverlight, είδα ότι δεν έχει close button σε κάθε tab. Μερικές λύσεις που είδα από το net, έκαναν extend ένα tabItem, ή έβαζαν handler κάπου για να το υλοποιήσουν. Έτσι έφτιαξα ένα behavior το οποίο γίνεται attach, λίγο πιο κομψά. Στο OnClick, υλοποίησα ένα μικρό chunk λογικής για να διατηρείται το state. To itemtemplate &amp;lt;TabControl.ItemTemplate&amp;gt; &amp;lt;DataTemplate&amp;gt; &amp;lt;DockPanel Width=&amp;quot;120&amp;quot;&amp;gt; &amp;lt;Button Content=&amp;quot;X&amp;quot; Cursor=&amp;quot;Hand&amp;quot; DockPanel.Dock=&amp;quot;Right&amp;quot; Focusable=&amp;quot;False&amp;quot; FontFamily=&amp;quot;Courier&amp;quot; FontSize=&amp;quot;9&amp;quot; FontWeight=&amp;quot;Bold&amp;quot; Margin=&amp;quot;0,1,0,0&amp;quot; Padding=&amp;quot;0&amp;quot; VerticalContentAlignment=&amp;quot;Bottom&amp;quot; Width=&amp;quot;16&amp;quot; Height=&amp;quot;16&amp;quot; &amp;gt; &amp;lt;interactivity:Interaction.Behaviors&amp;gt; &amp;lt;behavior:CloseTabBehavior/&amp;gt; &amp;lt;/interactivity:Interaction.Behaviors&amp;gt; &amp;lt;/Button&amp;gt; &amp;lt;ContentPresenter Content=&amp;quot;{Binding ApplicationName}&amp;quot; VerticalAlignment=&amp;quot;Center&amp;quot;...(&lt;a href="https://www.dotnetzone.gr:443/cs/blogs/teched08/archive/2010/11/29/closetabbehavior-tabitems-silverlight-tabcontrol.aspx"&gt;read more&lt;/a&gt;)&lt;img src="https://www.dotnetzone.gr:443/cs/aggbug.aspx?PostID=75130" width="1" height="1"&gt;</description><category domain="https://www.dotnetzone.gr:443/cs/blogs/teched08/archive/tags/C_2300_/default.aspx">C#</category><category domain="https://www.dotnetzone.gr:443/cs/blogs/teched08/archive/tags/silverlight/default.aspx">silverlight</category></item><item><title>Ζωντανό, παγκόσμιο event για το μέλλον και για τα best practices του Silverlight</title><link>https://www.dotnetzone.gr:443/cs/blogs/teched08/archive/2010/11/12/event-best-practices-silverlight.aspx</link><pubDate>Sat, 13 Nov 2010 00:16:31 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:75131</guid><dc:creator>George J. Capnias</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/blogs/teched08/comments/75131.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/blogs/teched08/commentrss.aspx?PostID=75131</wfw:commentRss><wfw:comment>https://www.dotnetzone.gr:443/cs/blogs/teched08/rsscomments.aspx?PostID=75131</wfw:comment><description>Θα ήθελα να ενημερώσω ότι υπάρχει ένα πολύ δυνατό παγκόσμιο event&amp;#160; για silverlight στις 2 Δεκεμβρίου, 2010 το οποίο θα έχει live video steaming. Θα μιλήσει ο Scott Guthrie και άλλος κόσμος κατευθείαν από τα κεντρικά. Η Εγγραφή είναι free . Περισσότερες πληροφορίες, μπορείτε να βρείτε στο επίσημο site...(&lt;a href="https://www.dotnetzone.gr:443/cs/blogs/teched08/archive/2010/11/12/event-best-practices-silverlight.aspx"&gt;read more&lt;/a&gt;)&lt;img src="https://www.dotnetzone.gr:443/cs/aggbug.aspx?PostID=75131" width="1" height="1"&gt;</description><category domain="https://www.dotnetzone.gr:443/cs/blogs/teched08/archive/tags/silverlight/default.aspx">silverlight</category></item><item><title>Functional Programming Reading List</title><link>https://www.dotnetzone.gr:443/cs/blogs/teched08/archive/2010/11/03/functional-programming-reading-list.aspx</link><pubDate>Thu, 04 Nov 2010 05:11:49 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:75132</guid><dc:creator>George J. Capnias</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/blogs/teched08/comments/75132.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/blogs/teched08/commentrss.aspx?PostID=75132</wfw:commentRss><wfw:comment>https://www.dotnetzone.gr:443/cs/blogs/teched08/rsscomments.aspx?PostID=75132</wfw:comment><description>During the last months, I started to collect some readings (academic publications and books) that one should check out, as he learns functional programming. These are life changing readings (other pretty fundamendal, other very specific), and can be studied in a time frame of several months or more, so unless you are a doctoral researcher on the field of programming languages, take your time and enjoy. [ 1] J. V. Eijck and C. Unger, Computational Semantics with Functional Programming, 1st ed. Cambridge University Press, 2010. [ 2] R. Bird, Pearls of Functional Algorithm Design, 1st ed. Cambridge University Press, 2010. [ 3] D. Vytiniotis and P. Jones, “Let should not be generalized,” in Proceedings of the 5th ACM SIGPLAN workshop on Types in language design and implementation, pp. 39–50, 2010. [ 4] F. Kirchner and C. Munoz, “The proof monad,” Journal of Logic and Algebraic Programming, 2010. [ 5] A. Filinski, “Monads in action,” in Proceedings of the 37th annual ACM SIGPLAN-SIGACT symposium on Principles of programming...(&lt;a href="https://www.dotnetzone.gr:443/cs/blogs/teched08/archive/2010/11/03/functional-programming-reading-list.aspx"&gt;read more&lt;/a&gt;)&lt;img src="https://www.dotnetzone.gr:443/cs/aggbug.aspx?PostID=75132" width="1" height="1"&gt;</description><category domain="https://www.dotnetzone.gr:443/cs/blogs/teched08/archive/tags/f_2300_/default.aspx">f#</category><category domain="https://www.dotnetzone.gr:443/cs/blogs/teched08/archive/tags/Haskell/default.aspx">Haskell</category><category domain="https://www.dotnetzone.gr:443/cs/blogs/teched08/archive/tags/Monad/default.aspx">Monad</category></item><item><title>Silverlight Αttached Βehavior: Φτιάχνοντας ένα Marquee TextBox Control</title><link>https://www.dotnetzone.gr:443/cs/blogs/teched08/archive/2010/10/20/silverlight-ttached-ehavior-marquee-textbox-control.aspx</link><pubDate>Wed, 20 Oct 2010 11:23:30 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:75133</guid><dc:creator>George J. Capnias</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/blogs/teched08/comments/75133.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/blogs/teched08/commentrss.aspx?PostID=75133</wfw:commentRss><wfw:comment>https://www.dotnetzone.gr:443/cs/blogs/teched08/rsscomments.aspx?PostID=75133</wfw:comment><description>Έχω ένα Grid στο Silverlight Application και θέλω να κάνω ένα marquee textbox (autoscroll) από δεξιά προς τα αριστερά, μέσα στο κελί του Grid. Τι χρειάζεται να κάνω για να προσθέσω σε ένα control αυτή τη λειτουργία ; Για αρχή έχουμε ένα textbox και στα γρήγορα κάνουμε ένα Translate RenderTransform αλλάζοντας την τιμή, στον άξονα των x από θετικές σε αρνητικές τιμές. &amp;lt;TextBlock Grid.Row=&amp;quot;0&amp;quot; Grid.Column=&amp;quot;0&amp;quot; Foreground=&amp;quot;#FF2755AF&amp;quot; &amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; FontSize=&amp;quot;13.333&amp;quot; x:Name=&amp;quot;ScrollText&amp;quot; Text=&amp;quot;Really Really Really Really Really Really Large Text&amp;quot; &amp;gt; &amp;#160;&amp;#160;&amp;#160; &amp;lt;TextBlock.RenderTransform&amp;gt; &amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;TranslateTransform x:Name=&amp;quot;translate&amp;quot; /&amp;gt; &amp;#160;&amp;#160;&amp;#160; &amp;lt;/TextBlock.RenderTransform&amp;gt; &amp;#160;&amp;#160;&amp;#160; &amp;lt;TextBlock.Triggers&amp;gt; &amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;EventTrigger RoutedEvent=&amp;quot;Grid.Loaded&amp;quot;&amp;gt; &amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;...(&lt;a href="https://www.dotnetzone.gr:443/cs/blogs/teched08/archive/2010/10/20/silverlight-ttached-ehavior-marquee-textbox-control.aspx"&gt;read more&lt;/a&gt;)&lt;img src="https://www.dotnetzone.gr:443/cs/aggbug.aspx?PostID=75133" width="1" height="1"&gt;</description><category domain="https://www.dotnetzone.gr:443/cs/blogs/teched08/archive/tags/.Net/default.aspx">.Net</category><category domain="https://www.dotnetzone.gr:443/cs/blogs/teched08/archive/tags/C_2300_/default.aspx">C#</category><category domain="https://www.dotnetzone.gr:443/cs/blogs/teched08/archive/tags/silverlight/default.aspx">silverlight</category></item><item><title>A note to self: Silverlight DataBinding awesomeness μέσα από Expression Blend, XAML και κώδικα</title><link>https://www.dotnetzone.gr:443/cs/blogs/teched08/archive/2010/10/18/a-note-to-self-silverlight-databinding-awesomeness-expression-blend-xaml.aspx</link><pubDate>Mon, 18 Oct 2010 18:05:00 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:75134</guid><dc:creator>George J. Capnias</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/blogs/teched08/comments/75134.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/blogs/teched08/commentrss.aspx?PostID=75134</wfw:commentRss><wfw:comment>https://www.dotnetzone.gr:443/cs/blogs/teched08/rsscomments.aspx?PostID=75134</wfw:comment><description>Το πιο δυνατό στοιχείο του Silverlight είναι η εκφραστικότητα των data binding μηχανισμών του με όλες τις μορφές που μας το παρέχει. Separation of concerns, animations, visual states, MVVM, αλληλένδετα controls και πολλά ακόμα “βαριά” ή ελαφρά features οφείλουν την ύπαρξή τους στο Data Binding. Τι είναι Data Binding; Data Binding είναι η σύνδεση μεταξύ μίας πηγής δεδομένων και ενός προορισμού. Στο silverlight η πηγή είναι ένα CLR αντικείμενο που διατηρεί, ανανεώνει, κτλ πληροφορία (ένα object συγκεκριμένου τύπου) και ο προορισμός είναι ένα SL control. Όταν όλα είναι δηλωμένα σωστά, τότε όταν το CLR αντικείμενο αλλάζει με κάποιο τρόπο, μπορει να παρέχει ειδοποιήσεις για το τι άλλαξε, ποιό CLR property δηλαδή και όσα SL controls (elements) έχουν γίνει databound εκεί, μπορούν να ανανεώσουν τις τιμές τους. Η πρώτη επαφή με το DataBinding συνήθως έρχεται μέσα από τη XAML. Through Expression Blend Ας δούμε ένα μικρό παράδειγμα πριν πούμε τα βασικά του DataBinding και μάλιστα μέσα από το Blend, , ώστε να το γνωρίσουμε...(&lt;a href="https://www.dotnetzone.gr:443/cs/blogs/teched08/archive/2010/10/18/a-note-to-self-silverlight-databinding-awesomeness-expression-blend-xaml.aspx"&gt;read more&lt;/a&gt;)&lt;img src="https://www.dotnetzone.gr:443/cs/aggbug.aspx?PostID=75134" width="1" height="1"&gt;</description><category domain="https://www.dotnetzone.gr:443/cs/blogs/teched08/archive/tags/C_2300_/default.aspx">C#</category><category domain="https://www.dotnetzone.gr:443/cs/blogs/teched08/archive/tags/silverlight/default.aspx">silverlight</category><category domain="https://www.dotnetzone.gr:443/cs/blogs/teched08/archive/tags/tutorial/default.aspx">tutorial</category></item><item><title>Silverlight animatable custom controls: quick ‘n’ dirty!</title><link>https://www.dotnetzone.gr:443/cs/blogs/teched08/archive/2010/09/17/silverlight-animatable-custom-controls-quick-n-dirty.aspx</link><pubDate>Sat, 18 Sep 2010 06:00:01 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:75135</guid><dc:creator>George J. Capnias</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/blogs/teched08/comments/75135.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/blogs/teched08/commentrss.aspx?PostID=75135</wfw:commentRss><wfw:comment>https://www.dotnetzone.gr:443/cs/blogs/teched08/rsscomments.aspx?PostID=75135</wfw:comment><description>Παρακάτω θα φτιάξουμε βήμα-βήμα ένα Notification box για το silverlight, χρησιμοποιώντας μία ελαφρώς παραλλαγμένη έκδοση του style που βρίσκεται ήδη στη νέα έκδοση Silverlight 4, που εισήγαγε το συγκεκριμένο control. Η λειτουργικότητα θα είναι επίσης ελαφρώς διαφορετική, αφήνοντας στην ευθύνη του silverlight control την λειτουργία του αυτόματου ελέγχου, για το αν υπάρχουν ή όχι notifications για τον χρήστη. Σκοπός είναι, καθώς θα καταγράφουμε βήμα βήμα την πορεία κατασκευής του control, θα καταλαβαίνουμε παράλληλα και τον κύκλο ζωής του. Θα κατασκευάσουμε λοιπόν, μία κλάση που θα κληρονομεί το Control, καθώς θα χρησιμοποιήσουμε Custom Control με Template. Πριν ξεκινήσουμε, αξίζει να σημείωσουμε ότι θα χρησιμοποιηθεί το live template για τον resharper, d(ependency) p(roperty), για γρηγορότερη κατασκευή των dependency properties που δίνουν αυτή τη τρελή ελευθερία στη διαδικασία ανάπτυξης rich εφαρμογών Silverlight. Live Template #region $NAME$ Property public $DECLARINGTYPE$ $NAME$ { &amp;#160;&amp;#160;&amp;#160; get { return...(&lt;a href="https://www.dotnetzone.gr:443/cs/blogs/teched08/archive/2010/09/17/silverlight-animatable-custom-controls-quick-n-dirty.aspx"&gt;read more&lt;/a&gt;)&lt;img src="https://www.dotnetzone.gr:443/cs/aggbug.aspx?PostID=75135" width="1" height="1"&gt;</description><category domain="https://www.dotnetzone.gr:443/cs/blogs/teched08/archive/tags/C_2300_/default.aspx">C#</category><category domain="https://www.dotnetzone.gr:443/cs/blogs/teched08/archive/tags/silverlight/default.aspx">silverlight</category></item><item><title>What comes first, at your programming mind?</title><link>https://www.dotnetzone.gr:443/cs/blogs/teched08/archive/2010/07/05/what-comes-first-at-your-programming-mind.aspx</link><pubDate>Tue, 06 Jul 2010 06:39:44 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:75136</guid><dc:creator>George J. Capnias</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/blogs/teched08/comments/75136.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/blogs/teched08/commentrss.aspx?PostID=75136</wfw:commentRss><wfw:comment>https://www.dotnetzone.gr:443/cs/blogs/teched08/rsscomments.aspx?PostID=75136</wfw:comment><description>Copy-pasted from a conversation between geeks in live messenger. A ddress Binding Contract B oolean C losure D- Cup E vent F # G eometry (SQL Datatype) H igh Order Function I mpersonation (ASP.NET) J itter K – Means λ (lambda) M onad N -Tier O bservable P ervasive Computing Q uicksort R 8 (Audi :P) S ilverlight ( T Key) U kelele V okswagen W CF X axis (burned to my mind) Y axis (burned to my mind) Z -index...(&lt;a href="https://www.dotnetzone.gr:443/cs/blogs/teched08/archive/2010/07/05/what-comes-first-at-your-programming-mind.aspx"&gt;read more&lt;/a&gt;)&lt;img src="https://www.dotnetzone.gr:443/cs/aggbug.aspx?PostID=75136" width="1" height="1"&gt;</description></item><item><title>My live Q&amp;A with Eric Lippert, Luke Hoban and Mads Torgersen at Tech·Ed 2010, North America</title><link>https://www.dotnetzone.gr:443/cs/blogs/teched08/archive/2010/06/10/my-live-q-amp-a-with-eric-lippert-luke-hoban-and-mads-torgersen-at-tech-183-ed-2010-north-america.aspx</link><pubDate>Thu, 10 Jun 2010 09:33:00 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:75137</guid><dc:creator>George J. Capnias</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/blogs/teched08/comments/75137.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/blogs/teched08/commentrss.aspx?PostID=75137</wfw:commentRss><wfw:comment>https://www.dotnetzone.gr:443/cs/blogs/teched08/rsscomments.aspx?PostID=75137</wfw:comment><description>Yesterday I watched the live 3:30 PM: Languages Panel session, with Eric Lippert , Luke Hoban and Mads Torgersen and the niner Charles Torre , through ( http://www.msteched.com/ ), provided by Channel9 live ( http://channel9.msdn.com/ ). This wasn’t just a live panel, but an interactive QnA too, so as me and a friend / colleague of mine ( Nikos ), watched it, we asked a question through twitter of Channel9 ( http://twitter.com/ch9live ). The question (both actually) have been presented through the monitor, to the panel and was answered briefly (check screenshots). The following, are food for thought to everyone and anyone who would like to participate in a conversation about Types in C#, F#, Scala, Java, etc, provide clarifications or error corrections in the way I perceived the answers or else :):) Mads Torgersen seemed pretty sure and his initial reaction was original when answering the question! A bright “No”, from the member of the C# Language, designer group (he was speaking of his main domain of work, C#)....(&lt;a href="https://www.dotnetzone.gr:443/cs/blogs/teched08/archive/2010/06/10/my-live-q-amp-a-with-eric-lippert-luke-hoban-and-mads-torgersen-at-tech-183-ed-2010-north-america.aspx"&gt;read more&lt;/a&gt;)&lt;img src="https://www.dotnetzone.gr:443/cs/aggbug.aspx?PostID=75137" width="1" height="1"&gt;</description><category domain="https://www.dotnetzone.gr:443/cs/blogs/teched08/archive/tags/.Net/default.aspx">.Net</category><category domain="https://www.dotnetzone.gr:443/cs/blogs/teched08/archive/tags/C_2300_/default.aspx">C#</category><category domain="https://www.dotnetzone.gr:443/cs/blogs/teched08/archive/tags/f_2300_/default.aspx">f#</category><category domain="https://www.dotnetzone.gr:443/cs/blogs/teched08/archive/tags/Haskell/default.aspx">Haskell</category><category domain="https://www.dotnetzone.gr:443/cs/blogs/teched08/archive/tags/Monad/default.aspx">Monad</category><category domain="https://www.dotnetzone.gr:443/cs/blogs/teched08/archive/tags/side+effects/default.aspx">side effects</category><category domain="https://www.dotnetzone.gr:443/cs/blogs/teched08/archive/tags/teched/default.aspx">teched</category></item><item><title>[Μαθαίνοντας Design Patterns] Model – View – ViewModel</title><link>https://www.dotnetzone.gr:443/cs/blogs/teched08/archive/2010/03/11/design-patterns-model-view-viewmodel.aspx</link><pubDate>Thu, 11 Mar 2010 10:30:22 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:75138</guid><dc:creator>George J. Capnias</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/blogs/teched08/comments/75138.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/blogs/teched08/commentrss.aspx?PostID=75138</wfw:commentRss><wfw:comment>https://www.dotnetzone.gr:443/cs/blogs/teched08/rsscomments.aspx?PostID=75138</wfw:comment><description>Συνεχίζοντας τη σειρά με τα design patterns , σε αυτό το post γίνεται μία αναφορά στο MVVM, μέσα από μία αρκετά απλοϊκή προσέγγιση. Θα περιγραφεί το pattern, θα δωθούν μερικές base classes, ένα utility για το πώς γίνεται type-safely raise ένα event για ανανέωση UI, καθώς και ένα μικρό παράδειγμα, με Bing Maps σε μία Silverlight εφαρμογή. Τί είναι το MVVM; Το Model – View – ViewModel είναι ένα πρότυπο σχεδίασης για το σχεδιασμό διεπαφών χρήστη, το οποίο έχει επηρροές τόσο από το Model View Presenter, όσο και από το Model View Controller. Είναι γνωστό&amp;#160; και ως Presentation Model (σχεδόν ίδιο)(PM στο εξής), όπως το έχει καταγράψει ο Martin Fowler. To Model – View – ViewModel ( MVVM στο εξής) είναι επίσης ένας καθιερωμένος τρόπος, για τη δημιουργία εφαρμογών που βασίζονται και σε XAML και επιλέχθηκε για την ευελιξία που παρέχει στον προγραμματιστή κατά την ανάπτυξη (decoupling View-Model). Το design pattern που περιγράφεται στη συνέχεια με τη βοήθεια του παραδείγματος σε silverlight, παρουσιάζεται έχοντας κατα...(&lt;a href="https://www.dotnetzone.gr:443/cs/blogs/teched08/archive/2010/03/11/design-patterns-model-view-viewmodel.aspx"&gt;read more&lt;/a&gt;)&lt;img src="https://www.dotnetzone.gr:443/cs/aggbug.aspx?PostID=75138" width="1" height="1"&gt;</description><category domain="https://www.dotnetzone.gr:443/cs/blogs/teched08/archive/tags/bing+maps/default.aspx">bing maps</category><category domain="https://www.dotnetzone.gr:443/cs/blogs/teched08/archive/tags/C_2300_/default.aspx">C#</category><category domain="https://www.dotnetzone.gr:443/cs/blogs/teched08/archive/tags/design+patterns/default.aspx">design patterns</category><category domain="https://www.dotnetzone.gr:443/cs/blogs/teched08/archive/tags/silverlight/default.aspx">silverlight</category></item><item><title>Closures στη C#</title><link>https://www.dotnetzone.gr:443/cs/blogs/teched08/archive/2010/03/09/closures-c.aspx</link><pubDate>Tue, 09 Mar 2010 08:13:00 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:75139</guid><dc:creator>George J. Capnias</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/blogs/teched08/comments/75139.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/blogs/teched08/commentrss.aspx?PostID=75139</wfw:commentRss><wfw:comment>https://www.dotnetzone.gr:443/cs/blogs/teched08/rsscomments.aspx?PostID=75139</wfw:comment><description>Τελικά τα closures είναι ένα απλό concept, που όταν το κατανοήσει κάποιος, το βλέπει τετριμμένο μετά. Αν μπορούσα να δανειστώ από κάπου, δυό λόγια για ορισμό, νομίζω η wikipedia το περιγράφει αρκετά καλά. Τα closures είναι μία ιδέα των γλωσσών προγραμματισμού, που επιτρέπει, σε συναρτήσεις που αντιμετωπίζονται ως first-class objects, τον συσχετισμό ελεύθερων μεταβλητών τους, με τον λεκτικό περιβάλλοντα χώρο της συνάρτησης. Στη συνέχεια θα ήθελα να διατυπώσω το εν λόγω concept όσο πιο σύντομα γίνεται, δανειζόμενος (μερικώς ή πλήρως) κώδικα από το βιβλίο C# in Depth του Jon Skeet και από το Reference της C#. First – class functions στην C# First class functions είναι συναρτήσεις που έχουν όλες τις ιδιότητες των αντικειμένων, μπορούν να δημιουργηθούν δυναμικά, μπορούν να συμμετέχουν σε δομές δεδομένων, να ανατεθούν ως παράμετροι, καθώς και να επιστραφούν από κλήσεις άλλων συναρτήσεων. Στην οικογένεια των γλωσσών προγραμματισμού, η C# ανήκει σε εκείνες που υποστηρίζουν first class functions, μέσω του τύπου δεδομένων...(&lt;a href="https://www.dotnetzone.gr:443/cs/blogs/teched08/archive/2010/03/09/closures-c.aspx"&gt;read more&lt;/a&gt;)&lt;img src="https://www.dotnetzone.gr:443/cs/aggbug.aspx?PostID=75139" width="1" height="1"&gt;</description><category domain="https://www.dotnetzone.gr:443/cs/blogs/teched08/archive/tags/.Net/default.aspx">.Net</category><category domain="https://www.dotnetzone.gr:443/cs/blogs/teched08/archive/tags/C_2300_/default.aspx">C#</category><category domain="https://www.dotnetzone.gr:443/cs/blogs/teched08/archive/tags/delegates/default.aspx">delegates</category><category domain="https://www.dotnetzone.gr:443/cs/blogs/teched08/archive/tags/lambdas/default.aspx">lambdas</category></item><item><title>Αντιγραφή αρχείου σε UNC Path προγραμματιστικά (ASP.NET or just code)</title><link>https://www.dotnetzone.gr:443/cs/blogs/teched08/archive/2010/01/14/unc-path-asp-net-or-just-code.aspx</link><pubDate>Fri, 15 Jan 2010 07:02:24 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:75140</guid><dc:creator>George J. Capnias</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/blogs/teched08/comments/75140.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/blogs/teched08/commentrss.aspx?PostID=75140</wfw:commentRss><wfw:comment>https://www.dotnetzone.gr:443/cs/blogs/teched08/rsscomments.aspx?PostID=75140</wfw:comment><description>Η αντιγραφή αρχείου σε NAS, προγραμματιστικά (ή εν γένει σε κάποιο UNC location εκτός τοπικού μηχανήματος) είναι μία ανάλογη διαδικασία, όπως αν το κάνουμε μέσω του UI. Θα ανοίγαμε το Run, στην συνέχεια πληκτρολογούμε το unc path. Αν σε εκείνη την τοποθεσία έχουν τεθεί permissions για όλους, τότε το παράθυρο ανοίγει κατευθείαν. Σε αντίθετη περίπτωση θα πρέπει να εισαχθούν τα στοιχεία για να γίνει login ο χρήστης, είτε τοπικός, είτε domain (σε αυτήν την περίπτωση θα πρέπει να εισαχθεί και το domain με τον γνωστό τρόπο domain/username). Τι χρειάζεται όμως για να γίνει προγραμματιστικά η διεργασία και μάλιστα μέσα από κώδικα που εκτελείται στο περιβάλλον του IIS; Τότε αυτό που θέλουμε να κάνουμε λέγεται delegation και υπόκειται στο κεφάλαιο ASP.NET Delegation . Με βάση αυτό μπορεί η ASP.NET να προσπελάσει resources σε απομακρυσμένο σύστημα. Μία ειδική περίπτωση αυτού είναι το ASP.NET Impersonation με το οποίο το σύστημα είναι τοπικό. Mε αυτόν τον τρόπο οι ASP.NET εφαρμογές μπορούν να εκτελέσουν κώδικα κάτω από την...(&lt;a href="https://www.dotnetzone.gr:443/cs/blogs/teched08/archive/2010/01/14/unc-path-asp-net-or-just-code.aspx"&gt;read more&lt;/a&gt;)&lt;img src="https://www.dotnetzone.gr:443/cs/aggbug.aspx?PostID=75140" width="1" height="1"&gt;</description><category domain="https://www.dotnetzone.gr:443/cs/blogs/teched08/archive/tags/.Net/default.aspx">.Net</category><category domain="https://www.dotnetzone.gr:443/cs/blogs/teched08/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="https://www.dotnetzone.gr:443/cs/blogs/teched08/archive/tags/C_2300_/default.aspx">C#</category></item><item><title>Παρουσίαση .NET και C# στο ΠΜΣ Πληροφοριακά Συστήματα ΟΠΑ – Τεχνολογία Λογισμικού</title><link>https://www.dotnetzone.gr:443/cs/blogs/teched08/archive/2010/01/12/net-c.aspx</link><pubDate>Wed, 13 Jan 2010 00:43:29 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:75141</guid><dc:creator>George J. Capnias</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/blogs/teched08/comments/75141.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/blogs/teched08/commentrss.aspx?PostID=75141</wfw:commentRss><wfw:comment>https://www.dotnetzone.gr:443/cs/blogs/teched08/rsscomments.aspx?PostID=75141</wfw:comment><description>Παραθέτω το υλικό της σημερινής παρουσίασης για .NET, C# που είδαμε στο μάθημα Τεχνολογίας Λογισμικού (ευχαριστούμε τον καθηγητή Εμ. Γιακουμάκη που την πραγματοποιήσαμε επιτυχώς). Η παρουσίαση που διαδέχτηκε τη δική μου, από τον Μιχάλη Ζερβό, βρίσκεται εδώ . Και οι δύο, βρίσκονται στο e-class του μαθήματος. Στην παρουσίασή μου, προσπάθησα να δώσω όσες περισσότερες ιδέες μπορούσα (στο σύντομο χρονικό διάστημα της μίας ώρας) αναδεικνύοντας την εκφραστικότητά της και τις δυνατότητες που έχει. Καλύφθηκαν αρκετά θέματα, ξεκινώντας από τις βασικές δομές και εξηγώντας στη συνέχεια μία πληθώρα από άλλες όπως, delegates, anonymous functions, anonymous types, iterators, lambdas, extension methods, LINQ καθώς επίσης τα βασικά από τη λειτουργία του ίδιου του περιβάλλοντος εκτέλεσης και της εσωτερικής οργάνωσης του .NET. H παρουσίαση, είχε στόχο να δώσει πολλές ιδέες και ερεθίσματα, καθώς δύσκολα μία έννοια μπορεί να διατυπωθεί μέσα από μερικά slides σε περιορισμένο χρόνο. Τα Demos (WPF, F#) που παρουσίασα για τις ανάγκες...(&lt;a href="https://www.dotnetzone.gr:443/cs/blogs/teched08/archive/2010/01/12/net-c.aspx"&gt;read more&lt;/a&gt;)&lt;img src="https://www.dotnetzone.gr:443/cs/aggbug.aspx?PostID=75141" width="1" height="1"&gt;</description><category domain="https://www.dotnetzone.gr:443/cs/blogs/teched08/archive/tags/.Net/default.aspx">.Net</category><category domain="https://www.dotnetzone.gr:443/cs/blogs/teched08/archive/tags/C_2300_/default.aspx">C#</category><category domain="https://www.dotnetzone.gr:443/cs/blogs/teched08/archive/tags/f_2300_/default.aspx">f#</category><category domain="https://www.dotnetzone.gr:443/cs/blogs/teched08/archive/tags/Visual+studio+2010/default.aspx">Visual studio 2010</category></item><item><title>Πύργοι του Ανόι σε F#</title><link>https://www.dotnetzone.gr:443/cs/blogs/teched08/archive/2009/12/13/f.aspx</link><pubDate>Mon, 14 Dec 2009 00:22:00 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:77358</guid><dc:creator>George J. Capnias</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/blogs/teched08/comments/77358.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/blogs/teched08/commentrss.aspx?PostID=77358</wfw:commentRss><wfw:comment>https://www.dotnetzone.gr:443/cs/blogs/teched08/rsscomments.aspx?PostID=77358</wfw:comment><description>Θυμάστε πώς είχαμε υλοποιήσει τους πύργους του Ανόι σε C στη σχολή όταν πρωτοπήγαμε; Ορίστε πόσο απλή είναι η έκδοση του σε συναρτησιακό προγραμματισμό (με χρήση της F# ). Κατ’αρχάς μερικές νύξεις στο VS Studio 2010 που έχει ενσωματωμένα templates και debugging tools για αυτή τη νέα γλώσσα. Ανοίγουμε το VS Studio 2010 Beta 2 που μπορούμε να το κατεβάσουμε δωρεάν όσο διαρκεί η φάση Beta και διαλέγουμε να δημιουργήσουμε ένα Console Application σε F#. Στην συνέχεια κάνουμε paste τον παρακάτω κώδικα (προσέξτε το indentation στον κώδικα καθώς έχει σημασία να είναι σωστά στοιχειοθετημένες οι εντολές. Δεν γίνεται compile αν δεν ακολουθηθούν οι αντίστοιχοι απλοί κανόνες) που ορίζει δύο συναρτήσεις, την move (μετακίνησε από στύλο σε στύλο, στην ουσία απλά κάνει print την κίνηση για να βλέπουμε την αλλαγή της κατάστασης) και την hanoi η οποία υλοποιεί την αναδρομική συνάρτηση. Όποτε δοκιμάζω να μάθω την F#, μου αρέσει να στέλνω ότι γράφω στο interactive environment της. Ότι γράφεται σε αυτό το παράθυρο μοιάζει να περνάει...(&lt;a href="https://www.dotnetzone.gr:443/cs/blogs/teched08/archive/2009/12/13/f.aspx"&gt;read more&lt;/a&gt;)&lt;img src="https://www.dotnetzone.gr:443/cs/aggbug.aspx?PostID=77358" width="1" height="1"&gt;</description><category domain="https://www.dotnetzone.gr:443/cs/blogs/teched08/archive/tags/.Net/default.aspx">.Net</category><category domain="https://www.dotnetzone.gr:443/cs/blogs/teched08/archive/tags/f_2300_/default.aspx">f#</category><category domain="https://www.dotnetzone.gr:443/cs/blogs/teched08/archive/tags/Visual+studio+2010/default.aspx">Visual studio 2010</category></item><item><title>Εισαγωγή στα Expression Trees και στις δυναμικές μεθόδους (Visual Studio 2010)</title><link>https://www.dotnetzone.gr:443/cs/blogs/teched08/archive/2009/11/28/expression-trees-visual-studio-2010.aspx</link><pubDate>Sat, 28 Nov 2009 12:29:03 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:77359</guid><dc:creator>George J. Capnias</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/blogs/teched08/comments/77359.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/blogs/teched08/commentrss.aspx?PostID=77359</wfw:commentRss><wfw:comment>https://www.dotnetzone.gr:443/cs/blogs/teched08/rsscomments.aspx?PostID=77359</wfw:comment><description>Στο απόλυτο βιβλίο για compilers (καθιερωμένο ως Dragon Book εξαιτίας του concept art εξωφύλλου του στην πρώτη έκδοση) ως abtract syntax trees ή απλά syntax trees, ορίζονται οι ιεραρχικές συντακτικές δομές του πηγαίου κώδικα ενός προγράμματος. Όταν γράφουμε κώδικα, υπάρχει μία πάρα πολύ συγκεκριμένη διαδικασία η οποία μετατρέπει τις λέξεις και τα σύμβολα που γράφουμε, σε δομές που έχουν συγκεκριμένη σημασιολογία. Το πρώτο κομμάτι ενός μεταγλωττιστή ασχολείται με το “διάβασμα” του κώδικα που γράφουμε. Αυτή η διαδικασία αποτελείται από τρία στάδια. Στο πρώτο στάδιο υπάρχει ένας λεκτικός αναλυτής ο οποίος παίρνει ως είσοδο το αρχείο κειμένου που γράψαμε, και το σπάει σε τεμάχια ή αλλιώς tokens. Για παράδειγμα εμείς γράφουμε items + 1 και ο αναλυτής αναγνωρίζει ως token την λέξη item. Στην συνέχεια λαμβάνει χώρα η ανάλυση (parsing), που παίρνει τα tokens και σύμφωνα με τους κανόνες της γλώσσας, δημιουργεί συντακτικά δένδρα εκφράσεων. Στο τελευταίο βήμα λαμβάνονται οι εν λόγω δενδρικές δομές και παράγεται αυτό που...(&lt;a href="https://www.dotnetzone.gr:443/cs/blogs/teched08/archive/2009/11/28/expression-trees-visual-studio-2010.aspx"&gt;read more&lt;/a&gt;)&lt;img src="https://www.dotnetzone.gr:443/cs/aggbug.aspx?PostID=77359" width="1" height="1"&gt;</description><category domain="https://www.dotnetzone.gr:443/cs/blogs/teched08/archive/tags/C_2300_/default.aspx">C#</category><category domain="https://www.dotnetzone.gr:443/cs/blogs/teched08/archive/tags/Visual+studio+2010/default.aspx">Visual studio 2010</category></item><item><title>1st Architecture Days post-event comments</title><link>https://www.dotnetzone.gr:443/cs/blogs/teched08/archive/2009/10/23/1st-architecture-days-post-event-comments.aspx</link><pubDate>Fri, 23 Oct 2009 09:14:27 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:77360</guid><dc:creator>George J. Capnias</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/blogs/teched08/comments/77360.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/blogs/teched08/commentrss.aspx?PostID=77360</wfw:commentRss><wfw:comment>https://www.dotnetzone.gr:443/cs/blogs/teched08/rsscomments.aspx?PostID=77360</wfw:comment><description>Πριν μερικές ώρες γύρισα από το πολυαναμενόμενο event του dotnetzone.gr, για αρχιτεκτονική λογισμικού [ link ]. Θα ήθελα να συγχαρώ τους διοργανωτές για την οργάνωση και τη θεματολογία. Δυστυχώς έπρεπε να αποχωρήσω στο τελευταίο μέρος λόγω υποχρεώσεων αλλά θα ήθελα να σας μεταφέρω την εμπειρία από τα τρία πρώτα μέρη. Locating and addressing performance issues: From software to hardware architecture - Διομήδης Σπινέλλης Ο κύριος Διομήδης Σπινέλλης, μέσα σε μία ώρα έθιξε τα κύρια σημεία του code quality, και τρόπους και αρχές για ελέγχο του κώδικά μας, με στόχο την (ποιότητα)=&amp;gt;ταχύτητα, ασφάλεια, εξοικονόμηση. Οι πρακτικές και έννοιες πήγασαν από την δική του εμπειρία και μεθοδολογία, που εύκολα ένας συνειδητοποιημένος ακροατής, αν κρατήσει τις ιδέες και τις υλοποιήσει με τα δικά του εργαλεία και συστήματα, σίγουρα θα κάνει πολλά βήματα εμπρός σε οποιαδήποτε πλατφόρμα και αν εργάζεται. Η παρουσίαση πλούσια σε εικόνες, κώδικα, shell, profiling and more! Αριστούργημα. Συνοπτικά ο δεκάλογος που μου έμεινε: Ανάλυση...(&lt;a href="https://www.dotnetzone.gr:443/cs/blogs/teched08/archive/2009/10/23/1st-architecture-days-post-event-comments.aspx"&gt;read more&lt;/a&gt;)&lt;img src="https://www.dotnetzone.gr:443/cs/aggbug.aspx?PostID=77360" width="1" height="1"&gt;</description><category domain="https://www.dotnetzone.gr:443/cs/blogs/teched08/archive/tags/architecture/default.aspx">architecture</category><category domain="https://www.dotnetzone.gr:443/cs/blogs/teched08/archive/tags/Events/default.aspx">Events</category></item><item><title>Ασφαλής χρήση FileSystemWatcher</title><link>https://www.dotnetzone.gr:443/cs/blogs/teched08/archive/2009/10/12/filesystemwatcher.aspx</link><pubDate>Mon, 12 Oct 2009 08:24:27 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:77361</guid><dc:creator>George J. Capnias</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/blogs/teched08/comments/77361.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/blogs/teched08/commentrss.aspx?PostID=77361</wfw:commentRss><wfw:comment>https://www.dotnetzone.gr:443/cs/blogs/teched08/rsscomments.aspx?PostID=77361</wfw:comment><description>Υπάρχουν σενάρια που χρειάζεται να ξέρετε πότε ένα καινούριο αρχείο δημιουργείται σε έναν κατάλογο, ή πότε γίνεται rename, ή πότε αλλάζει το Last Changed timestamp για να κάνετε διάφορες εργασίες. Έστω το σενάριο, ότι έχετε ένα εξωτερικό εργαλείο που κάνει κάποια λειτουργία μετατροπής αρχείων. Για να μπορείτε να αντιληφθείτε πότε το αρχείο γράφτηκε στο folder που παρατηρείτε και να αντιγράψετε το αρχείο αυτό κάπου αλλού, ή να το επεξεργαστείτε, μπορείτε να χρησιμοποιήσετε το FileSystemWatcher του .NET. Παρόλα αυτά υπάρχει ένα θέμα εδώ. Ο FileSystemWatcher είναι καθαρά για reporting σκοπούς. Αν εσείς χρειάζεστε το αρχείο αυτούσιο, θα πρέπει να γνωρίζετε για το πότε το αρχείο είναι επιπλέον ελεύθερο από οποιοδήποτε άλλο process (π.χ., εκείνου που το αντιγράφει στο folder που κοιτάται). Ένα απλός και γρήγορος τρόπος, για να αποφύγουμε το IOException σε τέτοια περίπτωση είναι ο παρακάτω: Δημιουργούμε μία συνάρτηση που ελέγχει για το αν το αρχείο είναι κλειδωμένο. private static bool CheckFileLock( string filename)...(&lt;a href="https://www.dotnetzone.gr:443/cs/blogs/teched08/archive/2009/10/12/filesystemwatcher.aspx"&gt;read more&lt;/a&gt;)&lt;img src="https://www.dotnetzone.gr:443/cs/aggbug.aspx?PostID=77361" width="1" height="1"&gt;</description><category domain="https://www.dotnetzone.gr:443/cs/blogs/teched08/archive/tags/.Net/default.aspx">.Net</category><category domain="https://www.dotnetzone.gr:443/cs/blogs/teched08/archive/tags/C_2300_/default.aspx">C#</category></item><item><title>Tip of the day #2: Problem with your WCF hosting? Probably an ABC matter!</title><link>https://www.dotnetzone.gr:443/cs/blogs/teched08/archive/2009/09/30/tip-of-the-day-2-problem-with-your-wcf-hosting-probably-an-abc-matter.aspx</link><pubDate>Thu, 01 Oct 2009 04:19:46 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:77362</guid><dc:creator>George J. Capnias</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/blogs/teched08/comments/77362.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/blogs/teched08/commentrss.aspx?PostID=77362</wfw:commentRss><wfw:comment>https://www.dotnetzone.gr:443/cs/blogs/teched08/rsscomments.aspx?PostID=77362</wfw:comment><description>Today I faced a nice little issue. It wasn’t something mindblasting and the solution wasn’t somehow innovative, but rather a 5-minute issue to resolve (If I had said the ABC out loud first). Instead it was a 30 minutes work. I was asked to make a new WCF web service to provide some functionality for our business case. Some structural background on the project I was working on: It is a Silverlight application, with client-side data management UI, a server-side with (web) services supporting our business logic and a LOT of (disconnected) business objects flying around like crazy, between the web application and the client. This orchestration was ment to be disturbed until today, by me, creating two more WSs’, the first for a certain operation taking place server-side and a second, stand alone, little web service doing some stuff at a third tier in another machine (which is used by the former). I spent more than 30 minutes in the morning (before coffee) asking myself what have I done wrong, and the client (first...(&lt;a href="https://www.dotnetzone.gr:443/cs/blogs/teched08/archive/2009/09/30/tip-of-the-day-2-problem-with-your-wcf-hosting-probably-an-abc-matter.aspx"&gt;read more&lt;/a&gt;)&lt;img src="https://www.dotnetzone.gr:443/cs/aggbug.aspx?PostID=77362" width="1" height="1"&gt;</description><category domain="https://www.dotnetzone.gr:443/cs/blogs/teched08/archive/tags/tip/default.aspx">tip</category><category domain="https://www.dotnetzone.gr:443/cs/blogs/teched08/archive/tags/WCF/default.aspx">WCF</category></item><item><title>Tip of the day #1: Love and take care of your MSDTC connectivity</title><link>https://www.dotnetzone.gr:443/cs/blogs/teched08/archive/2009/09/30/tip-of-the-day-1-love-and-take-care-of-your-msdtc-connectivity.aspx</link><pubDate>Thu, 01 Oct 2009 04:14:06 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:77363</guid><dc:creator>George J. Capnias</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/blogs/teched08/comments/77363.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/blogs/teched08/commentrss.aspx?PostID=77363</wfw:commentRss><wfw:comment>https://www.dotnetzone.gr:443/cs/blogs/teched08/rsscomments.aspx?PostID=77363</wfw:comment><description>You have a nice day, but something is missing. Your first debug tryout, after some hours of refactoring and new feature coding. After the successful built, you get your first exception (the usual handled exception that is logging something). Usually the exception is self-explained, it gives you the right information and with a little bit of help from the call stack you pin-point the failure. So, let’s see the code…xmmmm…the error is somewhere on my tested-and-working-perfect-until-now part of my module… The exception is accompanied with a transaction lock . But why? You keep unlocking the database via the Activity Monitor of SQL Management Studio, you retest the code, step by step, but you can’t pinpoint the the problem. Why my thread does that to me, what have I done? Why does it lock my data during the business object save? As a matter of fact, during the day, I have done 3 things in general: I have been coding in a region, not even executed when the lockout occurs. I have participated in updating the db server...(&lt;a href="https://www.dotnetzone.gr:443/cs/blogs/teched08/archive/2009/09/30/tip-of-the-day-1-love-and-take-care-of-your-msdtc-connectivity.aspx"&gt;read more&lt;/a&gt;)&lt;img src="https://www.dotnetzone.gr:443/cs/aggbug.aspx?PostID=77363" width="1" height="1"&gt;</description><category domain="https://www.dotnetzone.gr:443/cs/blogs/teched08/archive/tags/msdtc/default.aspx">msdtc</category><category domain="https://www.dotnetzone.gr:443/cs/blogs/teched08/archive/tags/sql+server/default.aspx">sql server</category><category domain="https://www.dotnetzone.gr:443/cs/blogs/teched08/archive/tags/tip/default.aspx">tip</category></item><item><title>Tip of the day #0: Admit your SLCM’s</title><link>https://www.dotnetzone.gr:443/cs/blogs/teched08/archive/2009/09/30/tip-of-the-day-0-admit-your-slcm-s.aspx</link><pubDate>Thu, 01 Oct 2009 04:07:40 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:77364</guid><dc:creator>George J. Capnias</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/blogs/teched08/comments/77364.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/blogs/teched08/commentrss.aspx?PostID=77364</wfw:commentRss><wfw:comment>https://www.dotnetzone.gr:443/cs/blogs/teched08/rsscomments.aspx?PostID=77364</wfw:comment><description>How many of you, have experienced an embarrassing –at yourself- code bug situation? You know, that you were better than this one, but you don’t want to admit it. You go home at night, thinking about it. You dream of it, laughing in your face…it’s laugh jumps out, through the code blocks, haunting your existence… it isn’t a logical error in communication of the wireless sensor network you recently engineered, it is a bug, residing in your configuration file… it isn’t an algorithmic fault, in your genetic algorithm … your algorithm doesn’t execute well because of the non-printable character in this f%@#$@#$ string (or char* I still love you). Finally, your business object doesn’t lazy load… -why god…pls give me strength –[god]My child take some rest, you have a buggy old version of your ORMapper, go get some sleep. Admit your stupid little code mistakes. They are part of your professionalism. I will post some worth-mentioning situations just for fun (and non profit at all - :P:P:P). &amp;#160;...(&lt;a href="https://www.dotnetzone.gr:443/cs/blogs/teched08/archive/2009/09/30/tip-of-the-day-0-admit-your-slcm-s.aspx"&gt;read more&lt;/a&gt;)&lt;img src="https://www.dotnetzone.gr:443/cs/aggbug.aspx?PostID=77364" width="1" height="1"&gt;</description><category domain="https://www.dotnetzone.gr:443/cs/blogs/teched08/archive/tags/tip/default.aspx">tip</category></item><item><title>Windows Sensor and Location platform</title><link>https://www.dotnetzone.gr:443/cs/blogs/teched08/archive/2009/08/25/windows-sensor-and-location-platform.aspx</link><pubDate>Tue, 25 Aug 2009 07:58:15 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:77365</guid><dc:creator>George J. Capnias</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/blogs/teched08/comments/77365.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/blogs/teched08/commentrss.aspx?PostID=77365</wfw:commentRss><wfw:comment>https://www.dotnetzone.gr:443/cs/blogs/teched08/rsscomments.aspx?PostID=77365</wfw:comment><description>Τα Windows 7 περιέχουν ενσωματωμένη (native) υποστήριξη για διαχείριση αισθητήρων μαζί με μία προγραμματιστική πλατφόρμα που την συνοδεύει. Αφορά location sensors, temperature, accelerometer, ambient light, moisture, camera, RFID και πολλούς ακόμα τύπους αισθητήρων, που κοινώς φέρνουν τον enterprise developer πιο κοντά στις εφαρμογές διάχυτου υπολογισμού, από το να κάνουν μία απλή εφαρμογή mashup που θα χρησιμοποιεί δεδομένα από gps μέχρι μία sophisticated πλατφόρμα data fusion . H πλατφόρμα ονομάζεται Sensor and Location Platform και περιλαμβάνει τόσο managed API (C#) όσο και native (C++ με δικό μας memory management). Στην ουσία αποτελείται από 4 πράγματα όλη η πλατφόρμα: To DDI (device driver interface) παρέχει μέσω των Windows έναν πρότυπο τρόπο για να συνδέονται οι αισθητήρες στο σύστημα και να μπορούν να παρέχουν σε αυτό πληροφορίες Το Windows Sensor API για την διαχείριση των δεδομένων To Windows Location API (χρησιμοποιεί το 2 ο layer) για την διαχείριση χωρικών δεδομένων Το Location and Other Sensors...(&lt;a href="https://www.dotnetzone.gr:443/cs/blogs/teched08/archive/2009/08/25/windows-sensor-and-location-platform.aspx"&gt;read more&lt;/a&gt;)&lt;img src="https://www.dotnetzone.gr:443/cs/aggbug.aspx?PostID=77365" width="1" height="1"&gt;</description><category domain="https://www.dotnetzone.gr:443/cs/blogs/teched08/archive/tags/C_2300_/default.aspx">C#</category><category domain="https://www.dotnetzone.gr:443/cs/blogs/teched08/archive/tags/data+fusion/default.aspx">data fusion</category><category domain="https://www.dotnetzone.gr:443/cs/blogs/teched08/archive/tags/Pervasive+Computing/default.aspx">Pervasive Computing</category></item><item><title>NScanner: Port Scanner / Port Sweeper</title><link>https://www.dotnetzone.gr:443/cs/blogs/teched08/archive/2009/06/02/nscanner-port-scanner-port-sweeper.aspx</link><pubDate>Wed, 03 Jun 2009 04:23:00 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:77366</guid><dc:creator>George J. Capnias</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/blogs/teched08/comments/77366.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/blogs/teched08/commentrss.aspx?PostID=77366</wfw:commentRss><wfw:comment>https://www.dotnetzone.gr:443/cs/blogs/teched08/rsscomments.aspx?PostID=77366</wfw:comment><description>Πρόσφατα ολοκληρώσαμε έναν ανιχνευτή κατάστασης θυρών, ο οποίος να παρουσιάζει διπλή λειτουργικότητα, να είναι και Port scanner αλλά και Port sweeper. Ο Port Scanner θα δέχεται ως είσοδο μια δ/νση ΙΡ (ή hostname) και range από πόρτες (TCP/UDP) που θα θέλαμε να ανιχνεύσουμε. Ο Port Sweeper θα δέχεται ως είσοδο μια πόρτα (TCP/UDP) που θα θέλαμε να ανιχνεύσουμε και λίστα από δ/νσεις ΙΡ (ή DNS name). Η εφαρμογή υλοποιεί TCP, UDP και SYN scan με επιλογές που να τα παραμετροποιούν. Η εφαρμογή αποτελείται από το βασικό παράθυρο στο οποίο μπορεί ο χρήστης να κάνει τις κατάλληλες παραμετροποιήσεις και να εισάγει τα στοιχεία που αυτός θέλει. Τα αποτελέσματα εκτυπώνονται στα δεξιά του παραθύρου ενώ στο κάτω μέρος υπάρχει και ένα progress bar το οποίο ενημερώνει τον χρήστη για το ποσοστό του ελέγχου που έχει απομείνει. Λοιπές λειτουργίες όπως logging, εκτύπωση ονομάτων θυρών που αναφέρονται κτλ, περιγράφονται παρακάτω. TCP Scan Στο TCP Scan αξιοποιείται η αναλυτική διαδικασία σύνδεσης με Berkeley sockets σε .NET (Socket Class...(&lt;a href="https://www.dotnetzone.gr:443/cs/blogs/teched08/archive/2009/06/02/nscanner-port-scanner-port-sweeper.aspx"&gt;read more&lt;/a&gt;)&lt;img src="https://www.dotnetzone.gr:443/cs/aggbug.aspx?PostID=77366" width="1" height="1"&gt;</description><category domain="https://www.dotnetzone.gr:443/cs/blogs/teched08/archive/tags/C_2300_/default.aspx">C#</category><category domain="https://www.dotnetzone.gr:443/cs/blogs/teched08/archive/tags/Codeplex/default.aspx">Codeplex</category><category domain="https://www.dotnetzone.gr:443/cs/blogs/teched08/archive/tags/port+scanner/default.aspx">port scanner</category><category domain="https://www.dotnetzone.gr:443/cs/blogs/teched08/archive/tags/winforms/default.aspx">winforms</category></item><item><title>Enterprise Architect CASE Tool για Ανάπτυξη Λογισμικού</title><link>https://www.dotnetzone.gr:443/cs/blogs/teched08/archive/2009/03/15/enterprise-architect-case-tool.aspx</link><pubDate>Sun, 15 Mar 2009 09:15:55 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:77367</guid><dc:creator>George J. Capnias</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/blogs/teched08/comments/77367.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/blogs/teched08/commentrss.aspx?PostID=77367</wfw:commentRss><wfw:comment>https://www.dotnetzone.gr:443/cs/blogs/teched08/rsscomments.aspx?PostID=77367</wfw:comment><description>Μετά από μία συζήτηση που είχα σήμερα στο MediaCamp2 με τον συνάδελφο Γιώργο Κασσελάκη σχετικά με το Enterprise Architect της Sparx Systems , ήθελα να μοιραστώ μαζί σας την χρήση αυτού του εργαλείου. Το ανακάλυψα φέτος για μία εργασία Τεχνολογίας Λογισμικού στο αντίστοιχο πρόγραμμα του μεταπτυχιακού μου και μπορώ να πώ ότι ήταν πολύ καλή λύση για όσα θέλαμε να κάνουμε, ανακαλύπτωντας σε κάθε βήμα πόσες περισσότερες δυνατότητες έχει από όσες το θέλαμε για τις ανάγκες της εργασίας μας. To Enterprise Architect είναι μία ολοκληρωμένη σουιτα από CASE functionality . Case tools είναι κατά βάση τα εργαλεία που βοηθούν την διαδικασία ανάπτυξης λογισμικού καθόλες τις φάσεις ανάπτυξης, από Requirements Engineering μέχρι τελικό deployment modeling, εξοπλισμένο με πλήρες tracing από τα requirements μέχρι την υλοποίηση. Είναι χτισμένο πάνω στο 2.1 specification της UML αλλά δεν περιορίζεται μέχρι εκεί. Περιέχει extensions για modeling domain όπως για παράδειγμα, modeling επιχειρησιακών διαδικασιών μέσω workflows κτλ. Υποστηρίζει...(&lt;a href="https://www.dotnetzone.gr:443/cs/blogs/teched08/archive/2009/03/15/enterprise-architect-case-tool.aspx"&gt;read more&lt;/a&gt;)&lt;img src="https://www.dotnetzone.gr:443/cs/aggbug.aspx?PostID=77367" width="1" height="1"&gt;</description><category domain="https://www.dotnetzone.gr:443/cs/blogs/teched08/archive/tags/Software+Engineering/default.aspx">Software Engineering</category></item></channel></rss>