<?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>Everyday's Software Design</title><link>https://www.dotnetzone.gr:443/cs/blogs/softwarebytes/default.aspx</link><description>Scribbles on Software Engineering</description><dc:language>el</dc:language><generator>CommunityServer 2.1 SP3 (Build: 20423.1)</generator><item><title>Living with async</title><link>https://www.dotnetzone.gr:443/cs/blogs/softwarebytes/archive/2012/06/05/living-with-async.aspx</link><pubDate>Tue, 05 Jun 2012 21:16:00 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:70535</guid><dc:creator>gnikolaropoulos</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/blogs/softwarebytes/comments/70535.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/blogs/softwarebytes/commentrss.aspx?PostID=70535</wfw:commentRss><description>I was watching once again The zen of async: Best practices for best performance talk of Stephen Toub ’s on //Build and I decided I should blog about how easy is to end up with a deadlock while writing asynchronous code with new C# 5.0 language features (AKA async/await). Here is the quick background first which I was aware of before I watch this talk. The talk that Toub has given was mostly about how you create better reusable libraries with asynchronous language features but there are lots of great information concerning application level code. When you are awaiting on a method with await keyword, compile generates bunch of code in behalf you. One of the purposes of this is to handle synchronization with the UI thread. The key component of this feature is the SynchronizationContext.Current which gets the synchronization context for the current thread. SynchronizationContext.Current is populated depending on the environment you are in. For example, if you are on a WPF application, SynchronizationContext.Current...(&lt;a href="https://www.dotnetzone.gr:443/cs/blogs/softwarebytes/archive/2012/06/05/living-with-async.aspx"&gt;read more&lt;/a&gt;)&lt;img src="https://www.dotnetzone.gr:443/cs/aggbug.aspx?PostID=70535" width="1" height="1"&gt;</description><category domain="https://www.dotnetzone.gr:443/cs/blogs/softwarebytes/archive/tags/.NET+Framework/default.aspx">.NET Framework</category><category domain="https://www.dotnetzone.gr:443/cs/blogs/softwarebytes/archive/tags/C_2300_/default.aspx">C#</category><category domain="https://www.dotnetzone.gr:443/cs/blogs/softwarebytes/archive/tags/Software+Engineering/default.aspx">Software Engineering</category><category domain="https://www.dotnetzone.gr:443/cs/blogs/softwarebytes/archive/tags/C_2300_+5.0/default.aspx">C# 5.0</category></item><item><title>WCF or ASP .NET 4.5 Web API</title><link>https://www.dotnetzone.gr:443/cs/blogs/softwarebytes/archive/2012/03/21/wcf-or-asp-net-4-5-web-api.aspx</link><pubDate>Thu, 22 Mar 2012 05:32:00 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:69738</guid><dc:creator>gnikolaropoulos</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/blogs/softwarebytes/comments/69738.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/blogs/softwarebytes/commentrss.aspx?PostID=69738</wfw:commentRss><description>A couple of weeks ago (around Feb. 16) the WCF WebAPIs - a framework for building RESTful/Hypermedia/HTTP services, which was in development over the past 1.5 years as a side-project on CodePlex , has been formally integrated into ASP.NET and its name changed to the ASP.NET Web API. These past two weeks, there has been a lot of questions among WCF developers: What does it mean that the Web APIs are no longer a part of WCF – is WCF dead? Has SOAP gone bankrupted? is HTTP the new way to go for interoperability? To get a better understanding of what happened and what is the way to go, we need to answer a couple of questions: What is the purpose of the WebAPIs? Why do we need HTTP services? What’s wrong with SOAP-over-HTTP? Why did the WebAPIs move from WCF to ASP.NET MVC? Is there still a use for WCF? When should I choose Web APIs over WCF? What is the purpose of the WebAPIs? When WCF was conceived back in its Indigo and .NET 3 days, the main goal was to support SOAP + WS-* over a wide variety of transports. However,...(&lt;a href="https://www.dotnetzone.gr:443/cs/blogs/softwarebytes/archive/2012/03/21/wcf-or-asp-net-4-5-web-api.aspx"&gt;read more&lt;/a&gt;)&lt;img src="https://www.dotnetzone.gr:443/cs/aggbug.aspx?PostID=69738" width="1" height="1"&gt;</description><category domain="https://www.dotnetzone.gr:443/cs/blogs/softwarebytes/archive/tags/.NET+Framework/default.aspx">.NET Framework</category><category domain="https://www.dotnetzone.gr:443/cs/blogs/softwarebytes/archive/tags/C_2300_/default.aspx">C#</category><category domain="https://www.dotnetzone.gr:443/cs/blogs/softwarebytes/archive/tags/Software+Engineering/default.aspx">Software Engineering</category><category domain="https://www.dotnetzone.gr:443/cs/blogs/softwarebytes/archive/tags/ASP+.NET/default.aspx">ASP .NET</category></item><item><title>Small Introduction to NuGet</title><link>https://www.dotnetzone.gr:443/cs/blogs/softwarebytes/archive/2012/02/01/small-introduction-to-nuget.aspx</link><pubDate>Wed, 01 Feb 2012 19:30:00 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:69094</guid><dc:creator>gnikolaropoulos</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/blogs/softwarebytes/comments/69094.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/blogs/softwarebytes/commentrss.aspx?PostID=69094</wfw:commentRss><description>Not too long ago, Microsoft released, NuGet , an automated packagemanager for Visual Studio. NuGet makes it easy to download and installassemblies, and their references, into a Visual Studio project. Theseassemblies, which I loosely refer to as packages, are often open source, andinclude projects such as Nhibernate .In this post, I'll explain how to get started in using NuGet with your projectsto include: installng NuGet, installing/uninstalling Nhibernate via consolecommand, and installing/uninstalling Nhibernate via graphical reference menu. Installing NuGet The first step you'll need to take is to installNuGet. Visit the NuGet site, at http://nuget.org/ , click on the Install NuGet button,and download the NuGet.Tools.vsix installation file, shownbelow. Each browser is different (i.e. FireFox, Chrome, IE, etc),so you might see options to run right away, save to a location, or access to thefile through the browser's download manager. Regardless of how youreceive the NuGet installer, execute the downloaded NuGet.Tools.vsix...(&lt;a href="https://www.dotnetzone.gr:443/cs/blogs/softwarebytes/archive/2012/02/01/small-introduction-to-nuget.aspx"&gt;read more&lt;/a&gt;)&lt;img src="https://www.dotnetzone.gr:443/cs/aggbug.aspx?PostID=69094" width="1" height="1"&gt;</description><category domain="https://www.dotnetzone.gr:443/cs/blogs/softwarebytes/archive/tags/.NET+Framework/default.aspx">.NET Framework</category><category domain="https://www.dotnetzone.gr:443/cs/blogs/softwarebytes/archive/tags/Software+Engineering/default.aspx">Software Engineering</category><category domain="https://www.dotnetzone.gr:443/cs/blogs/softwarebytes/archive/tags/NuGet/default.aspx">NuGet</category><category domain="https://www.dotnetzone.gr:443/cs/blogs/softwarebytes/archive/tags/Visual+Studio/default.aspx">Visual Studio</category></item><item><title>A wonderful weekend</title><link>https://www.dotnetzone.gr:443/cs/blogs/softwarebytes/archive/2011/12/05/a-wonderful-weekend.aspx</link><pubDate>Tue, 06 Dec 2011 05:18:00 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:68523</guid><dc:creator>gnikolaropoulos</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/blogs/softwarebytes/comments/68523.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/blogs/softwarebytes/commentrss.aspx?PostID=68523</wfw:commentRss><description>Believe in the community Last weekend I had a great time. That's thanks to ITPro|Dev Connections conference that took place in Glifada, Greece. It was my first Greek dev conferece as I have only a year and a half that I am back in my country. I never had the chance so far to take a closer look at the community and have a taste of the level and the experience of the developers. I have to admit that I was quite skeptical before going to the event. That's because of my disappointment from the interviews I have conducted for the company I work. There were people that have never heard the term "Design Patterns"!!! I won't get any deeper to the situation as there are many parts to blame and that is not the point of this post. Maybe I will write one in the future... What I want to point out though is that I have met some people that made me believe once again in the potential of my country. Because these people are GREAT programmers, great entrepreneurs and great minds! I would like to list them here (in alphabetical...(&lt;a href="https://www.dotnetzone.gr:443/cs/blogs/softwarebytes/archive/2011/12/05/a-wonderful-weekend.aspx"&gt;read more&lt;/a&gt;)&lt;img src="https://www.dotnetzone.gr:443/cs/aggbug.aspx?PostID=68523" width="1" height="1"&gt;</description></item><item><title>Book Read: Clean Coder</title><link>https://www.dotnetzone.gr:443/cs/blogs/softwarebytes/archive/2011/10/12/book-read-clean-coder.aspx</link><pubDate>Thu, 13 Oct 2011 06:17:00 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:67752</guid><dc:creator>gnikolaropoulos</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/blogs/softwarebytes/comments/67752.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/blogs/softwarebytes/commentrss.aspx?PostID=67752</wfw:commentRss><description>Being professional coder is harder than you think... I have again three books that I am hoping to finish this month, I will start here with one I just finished. It's the Clean Coder from the famous Uncle Bob . I add it on the Software Engineering Books and in my Highly Recommended l ist. It is a brilliant read. It is not the technical book one might be looking for. For a more technical approach on how to write clean code please read Clean Code (Robert C. Martin) for which I also have a review. This books is about what a professional coder is about. What behaviors should he follow on his everyday life as a coder on a big or a small firm. A lot of the content sounds obvious when you read it, but it's put together extremely well and will almost certainly relate to issues that you've had to deal with in your career, be it difficult colleagues or untrusting managers. It's easy to read and will probably open your eyes to becoming a more professional software developer who is better able to take responsibility for their...(&lt;a href="https://www.dotnetzone.gr:443/cs/blogs/softwarebytes/archive/2011/10/12/book-read-clean-coder.aspx"&gt;read more&lt;/a&gt;)&lt;img src="https://www.dotnetzone.gr:443/cs/aggbug.aspx?PostID=67752" width="1" height="1"&gt;</description><category domain="https://www.dotnetzone.gr:443/cs/blogs/softwarebytes/archive/tags/Software+Engineering/default.aspx">Software Engineering</category><category domain="https://www.dotnetzone.gr:443/cs/blogs/softwarebytes/archive/tags/Books/default.aspx">Books</category></item><item><title>Install Windows 8 Preview in Virtual Machine</title><link>https://www.dotnetzone.gr:443/cs/blogs/softwarebytes/archive/2011/09/16/install-windows-8-preview-in-virtual-machine.aspx</link><pubDate>Fri, 16 Sep 2011 07:27:00 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:67328</guid><dc:creator>gnikolaropoulos</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/blogs/softwarebytes/comments/67328.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/blogs/softwarebytes/commentrss.aspx?PostID=67328</wfw:commentRss><description>Install Windows 8 in VirtualBox Requirement: Oracle VM VirtualBox Windows 8 Developer Preview ISO file (32-bit or 64-bit) Windows Live ID* (for best testing experience, sign up here if you doesn’t have one) Internet Connection* * Nice to have, for best experience Besides that, also make sure that your computer have the Virtualization Technology (VT-x/AMD-V) activated in the BIOS. Proceed to the installation if you are ready with everything. Steps: 1. Get the Oracle VM VirtualBox installed in your PC. (VMWare player is not working but you can use VMWare Workstation 8, released two days ago just for Windows 8.) 2. For setting up the Virtual Machine, use the following settings: 3. Below screenshots show all the settings I used for that Virtual Machine: System It is important to have the chipset to PIIX3 and to check the Enable IO APIC as the installation will fail. Display Storage This part is easy. The .vdi will be mount as an IDE Controller and all you need to do is to right click on the IDE Controller and "Add...(&lt;a href="https://www.dotnetzone.gr:443/cs/blogs/softwarebytes/archive/2011/09/16/install-windows-8-preview-in-virtual-machine.aspx"&gt;read more&lt;/a&gt;)&lt;img src="https://www.dotnetzone.gr:443/cs/aggbug.aspx?PostID=67328" width="1" height="1"&gt;</description><category domain="https://www.dotnetzone.gr:443/cs/blogs/softwarebytes/archive/tags/Development/default.aspx">Development</category><category domain="https://www.dotnetzone.gr:443/cs/blogs/softwarebytes/archive/tags/Virtual+Machines/default.aspx">Virtual Machines</category><category domain="https://www.dotnetzone.gr:443/cs/blogs/softwarebytes/archive/tags/Windows+8/default.aspx">Windows 8</category></item><item><title>New Page, Recommended Books!</title><link>https://www.dotnetzone.gr:443/cs/blogs/softwarebytes/archive/2011/09/12/new-page-recommended-books.aspx</link><pubDate>Mon, 12 Sep 2011 17:44:00 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:67216</guid><dc:creator>gnikolaropoulos</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/blogs/softwarebytes/comments/67216.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/blogs/softwarebytes/commentrss.aspx?PostID=67216</wfw:commentRss><description>After getting some proper rest during my summer holidays and reading quite a few books (once again) I decided that I should publish my list of all time favorite books which I will continuously update from now on. I am a big fan of physical books and I try to buy my favorite books in physical form so that I can have them all in my room's shelves. The last years though I try to also read e-books as they are cheaper and easier to have with me. I am a big fan of apple books and kindle on iPhone although I have to admit that I would be more happy with a bigger screen. I might give a shot to the real Kindle in the future although I am not sure it's worth the money against an iPad. On the other hand, reading pdfs on my pc get's me soooooooo sleepy, I have never managed to finish a single book like that. I have two simple rules that i try to follow when reading books: read at most two books per month and read them from start to end. Read ALL of them! The last one is an old rule that a friend of mine taught me from my...(&lt;a href="https://www.dotnetzone.gr:443/cs/blogs/softwarebytes/archive/2011/09/12/new-page-recommended-books.aspx"&gt;read more&lt;/a&gt;)&lt;img src="https://www.dotnetzone.gr:443/cs/aggbug.aspx?PostID=67216" width="1" height="1"&gt;</description></item><item><title>It' all about Azure</title><link>https://www.dotnetzone.gr:443/cs/blogs/softwarebytes/archive/2011/08/30/it-all-about-azure.aspx</link><pubDate>Tue, 30 Aug 2011 18:13:00 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:66980</guid><dc:creator>gnikolaropoulos</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/blogs/softwarebytes/comments/66980.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/blogs/softwarebytes/commentrss.aspx?PostID=66980</wfw:commentRss><description>I have recently discovered two great sites which apart from their rich content they represent a great example of how to build rich Metro-like UI with Silverlight... Here they are: 1) http://azuredesignpatterns.com/ 2) http://azurehandbook.com/ They surely worth a read!...(&lt;a href="https://www.dotnetzone.gr:443/cs/blogs/softwarebytes/archive/2011/08/30/it-all-about-azure.aspx"&gt;read more&lt;/a&gt;)&lt;img src="https://www.dotnetzone.gr:443/cs/aggbug.aspx?PostID=66980" width="1" height="1"&gt;</description></item><item><title>Azure training</title><link>https://www.dotnetzone.gr:443/cs/blogs/softwarebytes/archive/2011/06/15/azure-training.aspx</link><pubDate>Wed, 15 Jun 2011 14:56:00 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:66301</guid><dc:creator>gnikolaropoulos</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/blogs/softwarebytes/comments/66301.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/blogs/softwarebytes/commentrss.aspx?PostID=66301</wfw:commentRss><description>Cloud =&amp;gt; Azure =&amp;gt; The future... Just a week ago I discovered Windows Azure AppFabric Learning Series ! In this learning series you will find short videos that are episodic for easy consumption. These videos are available via Silverlight streaming and available in full-screen and can be easily embedded in blogs, social media outlets, audience marketing campaigns, and upcoming enhancements to AppFabric . Episodes include technical samples, such as database scripts and code, and have all the technical assets available for download on the A ppFabric Codeplex (Public) site . If you are seriously interested in Azure you should not miss it!...(&lt;a href="https://www.dotnetzone.gr:443/cs/blogs/softwarebytes/archive/2011/06/15/azure-training.aspx"&gt;read more&lt;/a&gt;)&lt;img src="https://www.dotnetzone.gr:443/cs/aggbug.aspx?PostID=66301" width="1" height="1"&gt;</description></item><item><title>Moving from WPF to Silverlight (part 2)</title><link>https://www.dotnetzone.gr:443/cs/blogs/softwarebytes/archive/2011/05/23/moving-from-wpf-to-silverlight-part-2.aspx</link><pubDate>Mon, 23 May 2011 15:32:00 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:65920</guid><dc:creator>gnikolaropoulos</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/blogs/softwarebytes/comments/65920.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/blogs/softwarebytes/commentrss.aspx?PostID=65920</wfw:commentRss><description>Trouble appears when it's least expected. Continuing from part 1 let’s go into the things that not only will require more coding effort but will also change the whole design of your app. And if you are managing a team then it’s two times more difficult because you have to stand all their whimpering. Let the party begin: No default button! Long gone the simple WPF property on the Button class that was making it the default one for the page/form. What is even stranger though is that even in the web, typing in a textbox and then pressing Enter is the DEFAULT BEHAVIOUR! I mean why on earth someone wouldn’t provide this functionality on a web framework! No double click! Let’s say you have a grid for your search results. No you have to click (select) a row on the grid and then move the pointer to another button which will actually get your selection and do something with it! No more double click on a row and get things done. Focus on a control! So let’s say you move into a new screen and you want to focus on a textbox....(&lt;a href="https://www.dotnetzone.gr:443/cs/blogs/softwarebytes/archive/2011/05/23/moving-from-wpf-to-silverlight-part-2.aspx"&gt;read more&lt;/a&gt;)&lt;img src="https://www.dotnetzone.gr:443/cs/aggbug.aspx?PostID=65920" width="1" height="1"&gt;</description></item><item><title>Moving from WPF to Silverlight (part 1)</title><link>https://www.dotnetzone.gr:443/cs/blogs/softwarebytes/archive/2011/05/16/moving-from-wpf-to-silverlight-part-1.aspx</link><pubDate>Mon, 16 May 2011 16:00:00 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:65779</guid><dc:creator>gnikolaropoulos</dc:creator><slash:comments>1</slash:comments><comments>https://www.dotnetzone.gr:443/cs/blogs/softwarebytes/comments/65779.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/blogs/softwarebytes/commentrss.aspx?PostID=65779</wfw:commentRss><description>Never believe it is as easy as they say... I used to have a colleague in the team I manage that was sure that moving back and forth from WPF to Silverlight was easy!!! I will dedicate these series to him as reality proves us most of the times wrong. (Research is the only path to knowledge). So I am the architect of a quite big project and it was originally coded in WPF. But since we wanted to move to a unified architecture where both our users and the clients will have the same user-experience, we decided to move on to Silverlight. There are tons of things that are different and some of them are addressed to Silverlight 5 but still, there is quite a distance. First things first… When you just copy over the code you will see you xaml getting full of red lines. The exactly same controls are not on the same namespace!!! (WTF?). So let’s say you have a label, well your xaml tag is no more &amp;lt; Label &amp;gt; but instead it should be &amp;lt; sdk : Label &amp;gt; . Then I moved on to test my colors and text fonts. Again we had...(&lt;a href="https://www.dotnetzone.gr:443/cs/blogs/softwarebytes/archive/2011/05/16/moving-from-wpf-to-silverlight-part-1.aspx"&gt;read more&lt;/a&gt;)&lt;img src="https://www.dotnetzone.gr:443/cs/aggbug.aspx?PostID=65779" width="1" height="1"&gt;</description></item><item><title>MVVM frameworks</title><link>https://www.dotnetzone.gr:443/cs/blogs/softwarebytes/archive/2011/03/10/mvvm-frameworks.aspx</link><pubDate>Thu, 10 Mar 2011 16:23:00 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:64086</guid><dc:creator>gnikolaropoulos</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/blogs/softwarebytes/comments/64086.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/blogs/softwarebytes/commentrss.aspx?PostID=64086</wfw:commentRss><description>I have found a very interesting site the other days that would compare various MVVM frameworks from codeplex in terms of popularity, documentation and features. I think it's quite interesting so I decided to share it with people. http://www.japf.fr/silverlight/mvvm/index.html P.S. I really like Google bookmarks, I believe it's one of the most useful tools Google has ever given to us!...(&lt;a href="https://www.dotnetzone.gr:443/cs/blogs/softwarebytes/archive/2011/03/10/mvvm-frameworks.aspx"&gt;read more&lt;/a&gt;)&lt;img src="https://www.dotnetzone.gr:443/cs/aggbug.aspx?PostID=64086" width="1" height="1"&gt;</description><category domain="https://www.dotnetzone.gr:443/cs/blogs/softwarebytes/archive/tags/C_2300_/default.aspx">C#</category><category domain="https://www.dotnetzone.gr:443/cs/blogs/softwarebytes/archive/tags/Design+Patterns/default.aspx">Design Patterns</category><category domain="https://www.dotnetzone.gr:443/cs/blogs/softwarebytes/archive/tags/MVVM/default.aspx">MVVM</category></item><item><title>Reflector is dead. Long live Reflector! (or reflector alternatives)</title><link>https://www.dotnetzone.gr:443/cs/blogs/softwarebytes/archive/2011/03/02/reflector-is-dead-long-live-reflector-or-reflector-alternatives.aspx</link><pubDate>Wed, 02 Mar 2011 16:43:00 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:63909</guid><dc:creator>gnikolaropoulos</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/blogs/softwarebytes/comments/63909.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/blogs/softwarebytes/commentrss.aspx?PostID=63909</wfw:commentRss><description>It's sad when great ideas get lost in the name of money and progress It's sad but it was recently announced that one of the most well known tools for .Net development will cease to be offered for free. I am talking of course for .Net Reflector .Unfortunately in the Greek community I haven't seen to much about it which makes me even more sad about the software development in my country (at least there has been a short discussion here ). Anyway, just for the record, the official announcement of the Reflector going for a price model is here . It's a big change indeed but I think we should have seen it coming. We all are part of a community (.Net) which is used to pay for everything, it's almost as we don't enjoy coding otherwise. Starting from our IDE going all the way to the most "sofisticated" tools - which are usually free in other communities (e.g. Java) - like NHibernate Profiler , NCover , Memory Profilers and many many more. It's amazing that most of these tools are quite often WORSE that their open source...(&lt;a href="https://www.dotnetzone.gr:443/cs/blogs/softwarebytes/archive/2011/03/02/reflector-is-dead-long-live-reflector-or-reflector-alternatives.aspx"&gt;read more&lt;/a&gt;)&lt;img src="https://www.dotnetzone.gr:443/cs/aggbug.aspx?PostID=63909" width="1" height="1"&gt;</description><category domain="https://www.dotnetzone.gr:443/cs/blogs/softwarebytes/archive/tags/C_2300_/default.aspx">C#</category><category domain="https://www.dotnetzone.gr:443/cs/blogs/softwarebytes/archive/tags/Software+Engineering/default.aspx">Software Engineering</category><category domain="https://www.dotnetzone.gr:443/cs/blogs/softwarebytes/archive/tags/Reflector/default.aspx">Reflector</category><category domain="https://www.dotnetzone.gr:443/cs/blogs/softwarebytes/archive/tags/Open+Source/default.aspx">Open Source</category></item><item><title>Agatha rrsl, WCF and Collection data types</title><link>https://www.dotnetzone.gr:443/cs/blogs/softwarebytes/archive/2011/02/14/agatha-rrsl-wcf-and-collection-data-types.aspx</link><pubDate>Mon, 14 Feb 2011 19:24:00 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:63248</guid><dc:creator>gnikolaropoulos</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/blogs/softwarebytes/comments/63248.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/blogs/softwarebytes/commentrss.aspx?PostID=63248</wfw:commentRss><description>The devil is in the details. Read the documentation of every library you use. Reason about your code. I have been recently refactoring and reviewing code of a project in order to move it from WPF to Silverlight. (I will make a series of posts on the trouble and horror that I met during this exercise) In this production LoB system we have chosen to work with Agatha , a request-response service layer sitting on top of WCF that simplifies communication with the back-end, greatly improves modularity and really helps with maintainability (you should definitely take a look in this project if you are serious about your service layer.) Building our messages (classes) for our layer I noticed that we have used interfaces where we needed collections i.e. IList, ICollection etc. It seemed a strange choice from the beginning and down the road but it actually proved terribly wrong. Suggestion : Always read the documentation. So the problem lies in the way WCF decides to serialize/deserialize a collection when we use interfaces...(&lt;a href="https://www.dotnetzone.gr:443/cs/blogs/softwarebytes/archive/2011/02/14/agatha-rrsl-wcf-and-collection-data-types.aspx"&gt;read more&lt;/a&gt;)&lt;img src="https://www.dotnetzone.gr:443/cs/aggbug.aspx?PostID=63248" width="1" height="1"&gt;</description><category domain="https://www.dotnetzone.gr:443/cs/blogs/softwarebytes/archive/tags/.NET+Framework/default.aspx">.NET Framework</category><category domain="https://www.dotnetzone.gr:443/cs/blogs/softwarebytes/archive/tags/C_2300_/default.aspx">C#</category><category domain="https://www.dotnetzone.gr:443/cs/blogs/softwarebytes/archive/tags/Software+Engineering/default.aspx">Software Engineering</category><category domain="https://www.dotnetzone.gr:443/cs/blogs/softwarebytes/archive/tags/Common+Language+Runtime/default.aspx">Common Language Runtime</category><category domain="https://www.dotnetzone.gr:443/cs/blogs/softwarebytes/archive/tags/WCF/default.aspx">WCF</category></item><item><title>LINQ Quiz...</title><link>https://www.dotnetzone.gr:443/cs/blogs/softwarebytes/archive/2011/01/22/linq-quiz.aspx</link><pubDate>Sat, 22 Jan 2011 20:04:00 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:62606</guid><dc:creator>gnikolaropoulos</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/blogs/softwarebytes/comments/62606.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/blogs/softwarebytes/commentrss.aspx?PostID=62606</wfw:commentRss><description>Can you guess the output of the following code? var values = new List &amp;lt; int &amp;gt;() { 100, 110, 120 }; var funcs = new List &amp;lt; Func &amp;lt; int &amp;gt;&amp;gt;(); foreach ( var v in values) funcs.Add(() =&amp;gt; v); foreach ( var f in funcs) Console .WriteLine(f()); If it's not "solved" I will post the answer in the next post......(&lt;a href="https://www.dotnetzone.gr:443/cs/blogs/softwarebytes/archive/2011/01/22/linq-quiz.aspx"&gt;read more&lt;/a&gt;)&lt;img src="https://www.dotnetzone.gr:443/cs/aggbug.aspx?PostID=62606" width="1" height="1"&gt;</description><category domain="https://www.dotnetzone.gr:443/cs/blogs/softwarebytes/archive/tags/C_2300_/default.aspx">C#</category><category domain="https://www.dotnetzone.gr:443/cs/blogs/softwarebytes/archive/tags/Software+Engineering/default.aspx">Software Engineering</category><category domain="https://www.dotnetzone.gr:443/cs/blogs/softwarebytes/archive/tags/Common+Language+Runtime/default.aspx">Common Language Runtime</category><category domain="https://www.dotnetzone.gr:443/cs/blogs/softwarebytes/archive/tags/LINQ/default.aspx">LINQ</category></item><item><title>HTML5 Labs</title><link>https://www.dotnetzone.gr:443/cs/blogs/softwarebytes/archive/2011/01/06/html5-labs.aspx</link><pubDate>Thu, 06 Jan 2011 17:47:00 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:62408</guid><dc:creator>gnikolaropoulos</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/blogs/softwarebytes/comments/62408.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/blogs/softwarebytes/commentrss.aspx?PostID=62408</wfw:commentRss><description>HTML5 Labs provides research projects from Microsoft that will come to our browsers in the recent future. There are a few interesting things in there... Stay in touch. It's been a great year 2010 and I am quite excited for the things that are about to come in 2011. One of these things are the new HTML5 labs that Microsoft has recently (21st of December) announced in their interoperability website. In there there are two new research projects: 1) Indexed DB 2) WebSockets Since there is no source code given out yet I am exploring these projects with Reflector. I suggest you do the same. IndexedDB is quite interesting as it provides new ideas on a field that there are already a few projects out there. It's a step beyond Silverlight's isolated storage and SterlingDB for Windows Phone. Now for the WebSockets project I am still not sure of their use and of what they provide exactly. There are some subtle differences in the way one has to code for them but all in all they seem just another WCF abstraction layer to me....(&lt;a href="https://www.dotnetzone.gr:443/cs/blogs/softwarebytes/archive/2011/01/06/html5-labs.aspx"&gt;read more&lt;/a&gt;)&lt;img src="https://www.dotnetzone.gr:443/cs/aggbug.aspx?PostID=62408" width="1" height="1"&gt;</description><category domain="https://www.dotnetzone.gr:443/cs/blogs/softwarebytes/archive/tags/Research/default.aspx">Research</category><category domain="https://www.dotnetzone.gr:443/cs/blogs/softwarebytes/archive/tags/.NET+Framework/default.aspx">.NET Framework</category><category domain="https://www.dotnetzone.gr:443/cs/blogs/softwarebytes/archive/tags/C_2300_/default.aspx">C#</category><category domain="https://www.dotnetzone.gr:443/cs/blogs/softwarebytes/archive/tags/Software+Engineering/default.aspx">Software Engineering</category></item><item><title>Correctly Implementing Equals() in C#</title><link>https://www.dotnetzone.gr:443/cs/blogs/softwarebytes/archive/2010/12/27/correctly-implementing-equals-in-c.aspx</link><pubDate>Mon, 27 Dec 2010 22:02:00 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:62409</guid><dc:creator>gnikolaropoulos</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/blogs/softwarebytes/comments/62409.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/blogs/softwarebytes/commentrss.aspx?PostID=62409</wfw:commentRss><description>It's said that "the devil is in the details". Well I saw some code the other day that reminded me exactly that quote. It is quite common for developers to forget about semantics. In my current project we tend to play a lot with Nhibernate and DDD and we seriously take care of our model. We take it to the extreme where we use every possible aspect defined in DDD, with Components being on of them. It is quite crucial to be careful when dealing with Components especially if ones uses them in a Set. Sets (as know from high-school math) are structures that can have only one instance per object. So we need to be sure that two objects are equal when we try to insert something to our Set (and respectively to the DB.) I will try to show here the complete implementation of a class that needs to override Equals() as it should be. First we have to remember that in C# the semantics of equality define that two reference-objects are equal if the respective references point to the same object (aka object identity). Well, some...(&lt;a href="https://www.dotnetzone.gr:443/cs/blogs/softwarebytes/archive/2010/12/27/correctly-implementing-equals-in-c.aspx"&gt;read more&lt;/a&gt;)&lt;img src="https://www.dotnetzone.gr:443/cs/aggbug.aspx?PostID=62409" width="1" height="1"&gt;</description><category domain="https://www.dotnetzone.gr:443/cs/blogs/softwarebytes/archive/tags/.NET+Framework/default.aspx">.NET Framework</category><category domain="https://www.dotnetzone.gr:443/cs/blogs/softwarebytes/archive/tags/C_2300_/default.aspx">C#</category><category domain="https://www.dotnetzone.gr:443/cs/blogs/softwarebytes/archive/tags/Software+Engineering/default.aspx">Software Engineering</category></item><item><title>WPF Metro Window</title><link>https://www.dotnetzone.gr:443/cs/blogs/softwarebytes/archive/2010/12/22/wpf-metro-window.aspx</link><pubDate>Wed, 22 Dec 2010 16:43:00 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:62410</guid><dc:creator>gnikolaropoulos</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/blogs/softwarebytes/comments/62410.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/blogs/softwarebytes/commentrss.aspx?PostID=62410</wfw:commentRss><description>"Metro is an internal code name for a typography -based design language created by Microsoft . It was created as a product of Microsoft's user interface design work on some of their media products like Zune and Windows Media Center , for major utilization in their mobile operating system, Windows Phone 7 ", wikipedia.org Continuing with Metro UI I will try to give here a bunch of information that seems to be quite scattered around the web and I will show how easy it is to build a sample window (no resizing) with WPF which will look like Metro. The first place one should study is the official guidelines of Microsoft. There you will find all the documentation you need about the logic of Metro, design guidelines and Photoshop templates of icons, buttons etc. There is however a better alternative for the icons. Here you can find all the standard Metro UI icons in one zip all in png format, ready to use in your project. A few other really interesting projects that apply the Metro UI are the following: http://metrotheme.codeplex.com/...(&lt;a href="https://www.dotnetzone.gr:443/cs/blogs/softwarebytes/archive/2010/12/22/wpf-metro-window.aspx"&gt;read more&lt;/a&gt;)&lt;img src="https://www.dotnetzone.gr:443/cs/aggbug.aspx?PostID=62410" width="1" height="1"&gt;</description><category domain="https://www.dotnetzone.gr:443/cs/blogs/softwarebytes/archive/tags/C_2300_/default.aspx">C#</category><category domain="https://www.dotnetzone.gr:443/cs/blogs/softwarebytes/archive/tags/Software+Engineering/default.aspx">Software Engineering</category><category domain="https://www.dotnetzone.gr:443/cs/blogs/softwarebytes/archive/tags/Metro+UI/default.aspx">Metro UI</category><category domain="https://www.dotnetzone.gr:443/cs/blogs/softwarebytes/archive/tags/Windows+Presentation+Foundation/default.aspx">Windows Presentation Foundation</category></item><item><title>Windows Events going with Metro UI</title><link>https://www.dotnetzone.gr:443/cs/blogs/softwarebytes/archive/2010/12/15/windows-events-going-with-metro-ui.aspx</link><pubDate>Thu, 16 Dec 2010 07:21:00 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:62411</guid><dc:creator>gnikolaropoulos</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/blogs/softwarebytes/comments/62411.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/blogs/softwarebytes/commentrss.aspx?PostID=62411</wfw:commentRss><description>This trend with Metro UI is getting quite hot nowadays and I am really interested in it. I find it extremely good looking, clear and IMHO it follows quite well with the rules of simplicity . I will save the details for another post. At this point I was interested in some problems that a colleague ( N.Baxevanis ) of mine had when trying to build a Metro UI window for WPF. As you will see in his relative post he was somehow under the impression that the LocationChanged event wasn't triggered. After we solved that he was trying to find out why another event, LostFocus, didn't fire on a Window level when he was moving his cursor to another application. To focus or not to focus? It seems that a lot of people have the same question around the net so I think I can clarify some things about windows in general. It seems to me that people that have no or little Windows API experience struggle when confronted with it's internals and to be honest the whole API can be a little intimidating for the newcomers. Back to the LostFocus...(&lt;a href="https://www.dotnetzone.gr:443/cs/blogs/softwarebytes/archive/2010/12/15/windows-events-going-with-metro-ui.aspx"&gt;read more&lt;/a&gt;)&lt;img src="https://www.dotnetzone.gr:443/cs/aggbug.aspx?PostID=62411" width="1" height="1"&gt;</description><category domain="https://www.dotnetzone.gr:443/cs/blogs/softwarebytes/archive/tags/C_2300_/default.aspx">C#</category><category domain="https://www.dotnetzone.gr:443/cs/blogs/softwarebytes/archive/tags/Metro+UI/default.aspx">Metro UI</category><category domain="https://www.dotnetzone.gr:443/cs/blogs/softwarebytes/archive/tags/Windows+Presentation+Foundation/default.aspx">Windows Presentation Foundation</category><category domain="https://www.dotnetzone.gr:443/cs/blogs/softwarebytes/archive/tags/Windows+Programming/default.aspx">Windows Programming</category></item><item><title>Couch DB</title><link>https://www.dotnetzone.gr:443/cs/blogs/softwarebytes/archive/2010/12/15/couch-db.aspx</link><pubDate>Wed, 15 Dec 2010 23:28:00 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:62412</guid><dc:creator>gnikolaropoulos</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/blogs/softwarebytes/comments/62412.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/blogs/softwarebytes/commentrss.aspx?PostID=62412</wfw:commentRss><description>Cassandra, MongoDB, CouchDB etc... It's on my to-do list to take a deeper look onto that NoSQL trend but after seeing the following video I think I will change it's priority... (special thanks to N.Baxevanis ) CouchDB looks cool!...(&lt;a href="https://www.dotnetzone.gr:443/cs/blogs/softwarebytes/archive/2010/12/15/couch-db.aspx"&gt;read more&lt;/a&gt;)&lt;img src="https://www.dotnetzone.gr:443/cs/aggbug.aspx?PostID=62412" width="1" height="1"&gt;</description><category domain="https://www.dotnetzone.gr:443/cs/blogs/softwarebytes/archive/tags/Databases/default.aspx">Databases</category></item><item><title>C# 5, Async Exceptions Mysteries</title><link>https://www.dotnetzone.gr:443/cs/blogs/softwarebytes/archive/2010/12/15/c-5-async-exceptions-mysteries.aspx</link><pubDate>Wed, 15 Dec 2010 15:59:00 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:62413</guid><dc:creator>gnikolaropoulos</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/blogs/softwarebytes/comments/62413.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/blogs/softwarebytes/commentrss.aspx?PostID=62413</wfw:commentRss><description>Studying the CTP of C# 5 I discovered that an asynchronous method will throw away anything other than the first exception in an AggregateException thrown by one of the tasks it's waiting for. Reading the TAP documentation, it seems this is partly expected behaviour and partly not. TAP claims (in a section about how "await" is achieved by the compiler): It is possible for a Task to fault due to multiple exceptions, in which case only one of these exceptions will be propagated; however, the Task’s Exception property will return an AggregateException containing all of the errors. Unfortunately, that appears not to be the case. Here's a test program demonstrating the difference between an async method and a somewhat-similar manually written method. static async Task ThrowMultipleAsync() { Task t1 = DelayedException(500); Task t2 = DelayedException(1000); await TaskEx.WhenAll(t1,t2); } static Task ThrowMultipleManually() { Task t1 = DelayedException(500); Task t2 = DelayedException(1000); return TaskEx.WhenAll(t1,...(&lt;a href="https://www.dotnetzone.gr:443/cs/blogs/softwarebytes/archive/2010/12/15/c-5-async-exceptions-mysteries.aspx"&gt;read more&lt;/a&gt;)&lt;img src="https://www.dotnetzone.gr:443/cs/aggbug.aspx?PostID=62413" width="1" height="1"&gt;</description><category domain="https://www.dotnetzone.gr:443/cs/blogs/softwarebytes/archive/tags/C_2300_/default.aspx">C#</category><category domain="https://www.dotnetzone.gr:443/cs/blogs/softwarebytes/archive/tags/Common+Language+Runtime/default.aspx">Common Language Runtime</category><category domain="https://www.dotnetzone.gr:443/cs/blogs/softwarebytes/archive/tags/Asynchronous+Programming/default.aspx">Asynchronous Programming</category></item><item><title>Software Design Patterns and Processes</title><link>https://www.dotnetzone.gr:443/cs/blogs/softwarebytes/archive/2010/12/14/software-design-patterns-and-processes.aspx</link><pubDate>Tue, 14 Dec 2010 15:35:00 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:62414</guid><dc:creator>gnikolaropoulos</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/blogs/softwarebytes/comments/62414.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/blogs/softwarebytes/commentrss.aspx?PostID=62414</wfw:commentRss><description>It is strange how much an architect can understand going through the design process of a system. I have tried a few approaches and I have studied a few more, all in all I am inclined to believe that DDD gets the best out of a software developer. I won't get into the details of DDD as the reader can get enough info around the web . It hard to get a grip of it though and I would recommend even the average developer to get some books. Thus, I strongly believe that whoever is serious about DDD should get the following: Domain Driven Design Applying Domain Driven Design and Patterns using .Net .Net Domain Driven Design with C# Is that all though? You wish... Truth is there are quite a few, brand new design processes. They are not widespread yet but they are gaining a lot of ground and anyone serious about designing large enterprise systems should have a serious look at them. I am going to give a bunch of links here and I will discuss each of them as we go, in new posts. First we go with BDD or Behaviour Driven Design,...(&lt;a href="https://www.dotnetzone.gr:443/cs/blogs/softwarebytes/archive/2010/12/14/software-design-patterns-and-processes.aspx"&gt;read more&lt;/a&gt;)&lt;img src="https://www.dotnetzone.gr:443/cs/aggbug.aspx?PostID=62414" width="1" height="1"&gt;</description><category domain="https://www.dotnetzone.gr:443/cs/blogs/softwarebytes/archive/tags/Software+Engineering/default.aspx">Software Engineering</category><category domain="https://www.dotnetzone.gr:443/cs/blogs/softwarebytes/archive/tags/Design+Patterns/default.aspx">Design Patterns</category><category domain="https://www.dotnetzone.gr:443/cs/blogs/softwarebytes/archive/tags/Architectural+Patterns/default.aspx">Architectural Patterns</category></item></channel></rss>