<?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>C# and .NET Tips and Tricks</title><link>https://www.dotnetzone.gr:443/cs/blogs/iwannis/default.aspx</link><description>Quests in programming in .NET</description><dc:language>el</dc:language><generator>CommunityServer 2.1 SP3 (Build: 20423.1)</generator><item><title>Danae White Label test 2</title><link>https://www.dotnetzone.gr:443/cs/blogs/iwannis/archive/2016/02/05/danae-white-label-test-2.aspx</link><pubDate>Sat, 06 Feb 2016 02:02:00 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:77589</guid><dc:creator>iwannis</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/blogs/iwannis/comments/77589.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/blogs/iwannis/commentrss.aspx?PostID=77589</wfw:commentRss><wfw:comment>https://www.dotnetzone.gr:443/cs/blogs/iwannis/rsscomments.aspx?PostID=77589</wfw:comment><description>...(&lt;a href="https://www.dotnetzone.gr:443/cs/blogs/iwannis/archive/2016/02/05/danae-white-label-test-2.aspx"&gt;read more&lt;/a&gt;)&lt;img src="https://www.dotnetzone.gr:443/cs/aggbug.aspx?PostID=77589" width="1" height="1"&gt;</description></item><item><title>Danae White Label test</title><link>https://www.dotnetzone.gr:443/cs/blogs/iwannis/archive/2016/02/05/danae-white-label-test.aspx</link><pubDate>Sat, 06 Feb 2016 01:20:00 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:77588</guid><dc:creator>iwannis</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/blogs/iwannis/comments/77588.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/blogs/iwannis/commentrss.aspx?PostID=77588</wfw:commentRss><wfw:comment>https://www.dotnetzone.gr:443/cs/blogs/iwannis/rsscomments.aspx?PostID=77588</wfw:comment><description>//...(&lt;a href="https://www.dotnetzone.gr:443/cs/blogs/iwannis/archive/2016/02/05/danae-white-label-test.aspx"&gt;read more&lt;/a&gt;)&lt;img src="https://www.dotnetzone.gr:443/cs/aggbug.aspx?PostID=77588" width="1" height="1"&gt;</description></item><item><title>Slow Performance. Is it the Entity Framework or you?</title><link>https://www.dotnetzone.gr:443/cs/blogs/iwannis/archive/2014/06/17/slow-performance-is-it-the-entity-framework-or-you.aspx</link><pubDate>Tue, 17 Jun 2014 18:02:00 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:75489</guid><dc:creator>iwannis</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/blogs/iwannis/comments/75489.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/blogs/iwannis/commentrss.aspx?PostID=75489</wfw:commentRss><wfw:comment>https://www.dotnetzone.gr:443/cs/blogs/iwannis/rsscomments.aspx?PostID=75489</wfw:comment><description>A lot of times, I get claims and concerns from colleagues and partners that EF is slow and it cannot compare to writing your own SQL queries for the database directly. In this post, we will try to clarify to what extent the above statement is true. Suppose that you have the following simple schema in your database: Let's examine some EF queries and approaches that affect performance: Querying the data in the Locations table Suppose you want to get some data from the Locations table. You may use the following: using (LocationsContext ctx = new LocationsContext()) { var Locations = ctx.Locations.ToList(); } Several runs of the above query yield approximately 3600ms to retrieve 80000 records. But wait a minute. Since we want only to display those data and not process them we do not need the proxies created for monitoring those objects by EF so we can effectively disable them as follows: using (LocationsContext ctx = new LocationsContext()) { ctx.Configuration.ProxyCreationEnabled = false; var Locations = ctx.Locations.ToList();...(&lt;a href="https://www.dotnetzone.gr:443/cs/blogs/iwannis/archive/2014/06/17/slow-performance-is-it-the-entity-framework-or-you.aspx"&gt;read more&lt;/a&gt;)&lt;img src="https://www.dotnetzone.gr:443/cs/aggbug.aspx?PostID=75489" width="1" height="1"&gt;</description><category domain="https://www.dotnetzone.gr:443/cs/blogs/iwannis/archive/tags/.NET/default.aspx">.NET</category><category domain="https://www.dotnetzone.gr:443/cs/blogs/iwannis/archive/tags/Entity+Framework/default.aspx">Entity Framework</category></item><item><title>ITProDevConnections 2013 Presentation and Material</title><link>https://www.dotnetzone.gr:443/cs/blogs/iwannis/archive/2013/12/07/itprodevconnections-2013-presentation-and-material.aspx</link><pubDate>Sat, 07 Dec 2013 23:37:00 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:74765</guid><dc:creator>iwannis</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/blogs/iwannis/comments/74765.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/blogs/iwannis/commentrss.aspx?PostID=74765</wfw:commentRss><wfw:comment>https://www.dotnetzone.gr:443/cs/blogs/iwannis/rsscomments.aspx?PostID=74765</wfw:comment><description>Thank you all for coming. The presentation (in greek) about the common/different parts of Web and Windows 8.1 Applications is available through the following: From Web development ro Windows 8 development and Vice-Versa(in greek). Make sure you also check the following blog posts (in English) related to the presentation: Data binding in Windows 8.1 Apps with Knockout Data binding in Windows 8.1 Apps with WinJS Windows 8 Apps with HTML and Javascript successful workflow WinJS ListView - The most important features and how to use them Implementing a JSON REST service with ASP.NET MVC An introduction to creating scalable Single Page Applications with Knockoutjs and SASS (Windows8) WinJS single page navigation and ViewModels (Windows8) WinJS Basic Javascript Objects and the ViewModel pattern See you all next year!!...(&lt;a href="https://www.dotnetzone.gr:443/cs/blogs/iwannis/archive/2013/12/07/itprodevconnections-2013-presentation-and-material.aspx"&gt;read more&lt;/a&gt;)&lt;img src="https://www.dotnetzone.gr:443/cs/aggbug.aspx?PostID=74765" width="1" height="1"&gt;</description></item><item><title>Data binding in Windows 8.1 Apps with Knockout</title><link>https://www.dotnetzone.gr:443/cs/blogs/iwannis/archive/2013/12/07/data-binding-in-windows-8-1-apps-with-knockout.aspx</link><pubDate>Sat, 07 Dec 2013 23:32:00 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:74762</guid><dc:creator>iwannis</dc:creator><slash:comments>2</slash:comments><comments>https://www.dotnetzone.gr:443/cs/blogs/iwannis/comments/74762.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/blogs/iwannis/commentrss.aspx?PostID=74762</wfw:commentRss><wfw:comment>https://www.dotnetzone.gr:443/cs/blogs/iwannis/rsscomments.aspx?PostID=74762</wfw:comment><description>During the implementation of a Windows 8 application and especially in the process of implementing the functionality of a single Page Control, one is faced with the question on whether to use the WinJS data-binding engine for his ViewModel or resort to a "web" solution such as Knockoutjs. This post is about data-binding using Knockoutjs ( see the one for WinJS ). The page control (our view) will be as simple as possible to illustrate the most important aspects of each approach. The corresponding ViewModel to support the view in its "clean" form (without any structures added to support the binding requirements) is like that: function VMClean() { this.listOfValues = [{ text: '-' }, ...]; this.textValue = "-"; this.inputValue = "-"; this.buttonInvoked = function () { for (var i = 0; i &amp;lt; this.listOfValues.length; i++) this.listOfValues .text = (Math.random() * 100).toFixed(2); this.textValue = (Math.random() * 100).toFixed(2); }; this.itemInvoked = function (item) { var md = new Windows.UI.Popups.MessageDialog(item.text);...(&lt;a href="https://www.dotnetzone.gr:443/cs/blogs/iwannis/archive/2013/12/07/data-binding-in-windows-8-1-apps-with-knockout.aspx"&gt;read more&lt;/a&gt;)&lt;img src="https://www.dotnetzone.gr:443/cs/aggbug.aspx?PostID=74762" width="1" height="1"&gt;</description><category domain="https://www.dotnetzone.gr:443/cs/blogs/iwannis/archive/tags/Windows8/default.aspx">Windows8</category><category domain="https://www.dotnetzone.gr:443/cs/blogs/iwannis/archive/tags/WinJS/default.aspx">WinJS</category><category domain="https://www.dotnetzone.gr:443/cs/blogs/iwannis/archive/tags/Windows+8/default.aspx">Windows 8</category></item><item><title>Data binding in Windows 8.1 Apps with WinJS</title><link>https://www.dotnetzone.gr:443/cs/blogs/iwannis/archive/2013/12/01/data-binding-in-windows-8-1-apps-with-winjs.aspx</link><pubDate>Sun, 01 Dec 2013 23:30:00 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:74763</guid><dc:creator>iwannis</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/blogs/iwannis/comments/74763.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/blogs/iwannis/commentrss.aspx?PostID=74763</wfw:commentRss><wfw:comment>https://www.dotnetzone.gr:443/cs/blogs/iwannis/rsscomments.aspx?PostID=74763</wfw:comment><description>During the implementation of a Windows 8 application and especially in the process of implementing the functionality of a single Page Control, one is faced with the question on whether to use the WinJS data-binding engine for his ViewModel or resort to a "web" solution such as Knockoutjs. This post is about data-binding using WinJS ( see the one for knockout ). The page control (our view) will be as simple as possible to illustrate the most important aspects of each approach. The corresponding ViewModel to support the view in its "clean" form (without any structures added to support the binding requirements) is like that: function VMClean() { this.listOfValues = [{ text: '-' }, ...]; this.textValue = "-"; this.inputValue = "-"; this.buttonInvoked = function () { for (var i = 0; i &amp;lt; this.listOfValues.length; i++) this.listOfValues .text = (Math.random() * 100).toFixed(2); this.textValue = (Math.random() * 100).toFixed(2); }; this.itemInvoked = function (item) { var md = new Windows.UI.Popups.MessageDialog(item.text);...(&lt;a href="https://www.dotnetzone.gr:443/cs/blogs/iwannis/archive/2013/12/01/data-binding-in-windows-8-1-apps-with-winjs.aspx"&gt;read more&lt;/a&gt;)&lt;img src="https://www.dotnetzone.gr:443/cs/aggbug.aspx?PostID=74763" width="1" height="1"&gt;</description><category domain="https://www.dotnetzone.gr:443/cs/blogs/iwannis/archive/tags/Windows8/default.aspx">Windows8</category><category domain="https://www.dotnetzone.gr:443/cs/blogs/iwannis/archive/tags/WinJS/default.aspx">WinJS</category><category domain="https://www.dotnetzone.gr:443/cs/blogs/iwannis/archive/tags/Windows+8/default.aspx">Windows 8</category></item><item><title>Windows 8 Apps with HTML and Javascript successful workflow</title><link>https://www.dotnetzone.gr:443/cs/blogs/iwannis/archive/2013/11/30/windows-8-apps-with-html-and-javascript-successful-workflow.aspx</link><pubDate>Sat, 30 Nov 2013 19:17:00 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:74764</guid><dc:creator>iwannis</dc:creator><slash:comments>3</slash:comments><comments>https://www.dotnetzone.gr:443/cs/blogs/iwannis/comments/74764.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/blogs/iwannis/commentrss.aspx?PostID=74764</wfw:commentRss><wfw:comment>https://www.dotnetzone.gr:443/cs/blogs/iwannis/rsscomments.aspx?PostID=74764</wfw:comment><description>It is claimed a lot that whoever knows how to develop web applications is also ready to develop Windows 8.1 applications. And this is definitely true in terms of the language used. In this post we will explore how we can set our VS2013, Expression blend IDE and use specific frameworks in order to also work as fast as we do when developing Web applications. First of all lets describe what we want today in our web development workflow: We need a way to write faster HTML by using some shorts of shortcuts that will enable us to free ourselves from all the "HTML" syntactic sugar. This is solved in VS2013 by installing the Web Essentials extension that comes equipped with "Zen Coding". "Zen Coding" will allow you to write ul&amp;gt;li*8, press tab and have it expanded to a fully blow unordered list with 8 list elements. We need a way to keep our CSS stylesheets DRY . The CSS language is not DRY ("Do not Repeat Yourself" principle). You tend to repeat the names of the selectors when you define their full paths, you cannot...(&lt;a href="https://www.dotnetzone.gr:443/cs/blogs/iwannis/archive/2013/11/30/windows-8-apps-with-html-and-javascript-successful-workflow.aspx"&gt;read more&lt;/a&gt;)&lt;img src="https://www.dotnetzone.gr:443/cs/aggbug.aspx?PostID=74764" width="1" height="1"&gt;</description><category domain="https://www.dotnetzone.gr:443/cs/blogs/iwannis/archive/tags/Windows8/default.aspx">Windows8</category><category domain="https://www.dotnetzone.gr:443/cs/blogs/iwannis/archive/tags/WinJS/default.aspx">WinJS</category><category domain="https://www.dotnetzone.gr:443/cs/blogs/iwannis/archive/tags/Windows+8/default.aspx">Windows 8</category></item><item><title>Be careful of compile time code changes</title><link>https://www.dotnetzone.gr:443/cs/blogs/iwannis/archive/2013/11/02/be-careful-of-compile-time-code-changes.aspx</link><pubDate>Sat, 02 Nov 2013 16:38:00 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:74747</guid><dc:creator>iwannis</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/blogs/iwannis/comments/74747.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/blogs/iwannis/commentrss.aspx?PostID=74747</wfw:commentRss><wfw:comment>https://www.dotnetzone.gr:443/cs/blogs/iwannis/rsscomments.aspx?PostID=74747</wfw:comment><description>In my top ten list of difficult bugs I had to solve in C# in my professionali carreer reside two that both had to do with compile time code changes that I was not aware of. In this post I will describe both of them in detail in the hope that it will help someone out there searching for a solution to his own issue. Difference between properties with public accessors and public fields. What is the difference between declaring a property with public default accessors: public string demo {get;set;} Compared to declaring the same variable as a field? public string demo; It seems that there is none and we can use any one of the two with not much difference. Actually, one may argue that the usage of a "field" may be a littler faster since it does not lead to the generation of a method call as the usage of a "property" does. In other words if we are to disassemble the generated code (using ildasm ) you will see that the "field" declaration produces just a field (Class2) while the "property" variable results in a field...(&lt;a href="https://www.dotnetzone.gr:443/cs/blogs/iwannis/archive/2013/11/02/be-careful-of-compile-time-code-changes.aspx"&gt;read more&lt;/a&gt;)&lt;img src="https://www.dotnetzone.gr:443/cs/aggbug.aspx?PostID=74747" width="1" height="1"&gt;</description></item><item><title>WinJS ListView - The most important features an how to use them</title><link>https://www.dotnetzone.gr:443/cs/blogs/iwannis/archive/2013/08/31/winjs-listview-the-most-important-features-an-how-to-use-them.aspx</link><pubDate>Sat, 31 Aug 2013 14:58:00 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:74270</guid><dc:creator>iwannis</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/blogs/iwannis/comments/74270.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/blogs/iwannis/commentrss.aspx?PostID=74270</wfw:commentRss><wfw:comment>https://www.dotnetzone.gr:443/cs/blogs/iwannis/rsscomments.aspx?PostID=74270</wfw:comment><description>The WinJS.UI.ListView control is one of the most important in Window Store Applications. It is the basis of the application's UI and the one most familiar to users. In this post will explore the features/tweaks available for the control that are most needed to the developer when used. This post can serve as a cheatsheet to anyone wishing to use the WinJS.UI.ListView control in his applications. Adding a ListView, its Data Template, its Data Items and styling it In the part of the page you want the list to be displayed just add a div element with the data-win-control attribute set to WinJS.UI.ListView. &amp;lt;div id="demolistview" data-win-control="WinJS.UI.ListView"&amp;gt;&amp;lt;/div&amp;gt; The ListView by default will have a height of 400px and a width of 100%. Next, we need to add a data template for the list elements. This is done by creating a div element and setting its data-win-control attribute to WinJS.Binding.Template. Then we can use the data-win-bind attribute to bind to specific properties of the elements in the...(&lt;a href="https://www.dotnetzone.gr:443/cs/blogs/iwannis/archive/2013/08/31/winjs-listview-the-most-important-features-an-how-to-use-them.aspx"&gt;read more&lt;/a&gt;)&lt;img src="https://www.dotnetzone.gr:443/cs/aggbug.aspx?PostID=74270" width="1" height="1"&gt;</description><category domain="https://www.dotnetzone.gr:443/cs/blogs/iwannis/archive/tags/Windows8/default.aspx">Windows8</category><category domain="https://www.dotnetzone.gr:443/cs/blogs/iwannis/archive/tags/WinJS/default.aspx">WinJS</category></item><item><title>Visual Studio 2012 tips that will improve your coding speed - Web developers</title><link>https://www.dotnetzone.gr:443/cs/blogs/iwannis/archive/2013/07/08/visual-studio-2012-tips-that-will-improve-your-coding-speed-web-developers.aspx</link><pubDate>Mon, 08 Jul 2013 14:40:00 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:73033</guid><dc:creator>iwannis</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/blogs/iwannis/comments/73033.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/blogs/iwannis/commentrss.aspx?PostID=73033</wfw:commentRss><wfw:comment>https://www.dotnetzone.gr:443/cs/blogs/iwannis/rsscomments.aspx?PostID=73033</wfw:comment><description>Disable "Start Page" There is no reason to wait every time for the "Start Page" to load its contents from the internet and display. So the best thing to do is disable it using the checkbox at the left, bottom of it Switch between/Execute programs on taskbar without the mouse You can use the Win + Number to switch between the open programs in the taskbar. If the program is not running it will execute, otherwise it will get the focus. Win + Shift + Number will open a new instance of the progam on the taskbar. Those are extremely useful especially when you are doing web development and want to be able to switch between browser windows and VS. Finaly, the most important Win + Ctrl + Shift + Number will run the program as administrator. Associate "Open Containing folder to a shortcut Go to "Quick Launch" and start typing "Keyboard...". Select "Environment -&amp;gt; Keyboard". In the "Show command containing" write "OpenContaining" and select the match at the list below. Assign the shortcut key (eg press "Ctrl + Shift +...(&lt;a href="https://www.dotnetzone.gr:443/cs/blogs/iwannis/archive/2013/07/08/visual-studio-2012-tips-that-will-improve-your-coding-speed-web-developers.aspx"&gt;read more&lt;/a&gt;)&lt;img src="https://www.dotnetzone.gr:443/cs/aggbug.aspx?PostID=73033" width="1" height="1"&gt;</description><category domain="https://www.dotnetzone.gr:443/cs/blogs/iwannis/archive/tags/.NET/default.aspx">.NET</category></item><item><title>Implementing a JSON REST service with ASP.NET MVC</title><link>https://www.dotnetzone.gr:443/cs/blogs/iwannis/archive/2013/06/26/implementing-a-json-rest-service-with-asp-net-mvc.aspx</link><pubDate>Wed, 26 Jun 2013 17:26:00 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:72991</guid><dc:creator>iwannis</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/blogs/iwannis/comments/72991.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/blogs/iwannis/commentrss.aspx?PostID=72991</wfw:commentRss><wfw:comment>https://www.dotnetzone.gr:443/cs/blogs/iwannis/rsscomments.aspx?PostID=72991</wfw:comment><description>Two years ago, I have written a post about implementing a REST service using WCF. Back then, I didn't know that I was referring to services over the HTTP protocol which are not necessarily REST. Nevertheless, since it seems (from my blog analytics point of view) that people out there when they search for REST services actually imply services over the HTTP protocol or not SOAP more generally I kept the same title in this post. The point is that you have some kind of client code in javascript and you need to implement in ASP.NET MVC a bunch of services that support getting/putting data from/to your database. In this post we will see how to take advantage of ASP.NET MVC 3 to implement such a JSON service and explore how you can pass data back and forth. I could write this post for ASP.NET MVC4 but in many ways I believe that knowning how to do that in ASP.NET MVC3 helps you understand a lot of the automations that the new MVC version has brought to the picture. Taking also advantage of the WebAPI in ASP.NET MVC4...(&lt;a href="https://www.dotnetzone.gr:443/cs/blogs/iwannis/archive/2013/06/26/implementing-a-json-rest-service-with-asp-net-mvc.aspx"&gt;read more&lt;/a&gt;)&lt;img src="https://www.dotnetzone.gr:443/cs/aggbug.aspx?PostID=72991" width="1" height="1"&gt;</description><category domain="https://www.dotnetzone.gr:443/cs/blogs/iwannis/archive/tags/ASP.NET+MVC/default.aspx">ASP.NET MVC</category></item><item><title>An introduction to creating scalable Single Page Applications with Knockoutjs and SASS</title><link>https://www.dotnetzone.gr:443/cs/blogs/iwannis/archive/2013/06/25/an-introduction-to-creating-scalable-single-page-applications-with-knockoutjs-and-sass.aspx</link><pubDate>Wed, 26 Jun 2013 03:05:00 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:72988</guid><dc:creator>iwannis</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/blogs/iwannis/comments/72988.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/blogs/iwannis/commentrss.aspx?PostID=72988</wfw:commentRss><wfw:comment>https://www.dotnetzone.gr:443/cs/blogs/iwannis/rsscomments.aspx?PostID=72988</wfw:comment><description>Everyone who develops web applications (or websites in general) knows that the basic tools for creating simple "Single Page Applications" are HTML5, CSS3, JQuery and a server side framework (such as ASP.NET MVC) for serving data to AJAX requests. Although those are sufficient for implementing SPAs, they tend to lead to implementations that violate basic software design principles, leading to designs that are not easily scalable, difficult to debug and overly complicated. In this post we will see how we can take advantage of the Knockoutjs and Syntactically Awsome StyleSheets - SASS frameworks in order to design SPAs that respect: The "Single Responsibility Princile - SRP" that states that each software module should be responsible for only one thing in your code. In our case, we will implement the Model-View-View-Model pattern using the Knockoutjs framework to clearly separate the logic that drives the workings of UI from the logic that provides the data/behavior for the UI The "Do not Repeat Yourself Principle...(&lt;a href="https://www.dotnetzone.gr:443/cs/blogs/iwannis/archive/2013/06/25/an-introduction-to-creating-scalable-single-page-applications-with-knockoutjs-and-sass.aspx"&gt;read more&lt;/a&gt;)&lt;img src="https://www.dotnetzone.gr:443/cs/aggbug.aspx?PostID=72988" width="1" height="1"&gt;</description></item><item><title>A simple way to detect memory leaks in C# and how to create one with events :)</title><link>https://www.dotnetzone.gr:443/cs/blogs/iwannis/archive/2013/05/26/a-simple-way-to-detect-memory-leaks-in-c-and-how-to-create-one-with-events.aspx</link><pubDate>Mon, 27 May 2013 00:31:00 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:72645</guid><dc:creator>iwannis</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/blogs/iwannis/comments/72645.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/blogs/iwannis/commentrss.aspx?PostID=72645</wfw:commentRss><wfw:comment>https://www.dotnetzone.gr:443/cs/blogs/iwannis/rsscomments.aspx?PostID=72645</wfw:comment><description>In this post we will see a simple code fragment that can be used to detect memory leaks (more specific objects that are not cleaned by the garbage collector) and we will do it in the context of an interesting memory leak that can be created when using event delegates. The memory leak with event delegates Suppose you have an application in WPF with a single window that presents some money values in a specific currency (say EURO). At a specific instance you may have more than one such windows open. Now a requirement comes that defines that you need to be able to change the currency (say from euro to dollar) and have this change be reflected immediately to any currently open window displaying the money value. One easy way to tackle this is shown in the following figure: The "settings" object is static with a static property "Currency" with the current currency and an event called "OnCurrencyChanged" that is fired when the currency is changed. The "Window" class ("window1" nad "window2" objects) defines a method "currencyChanged"....(&lt;a href="https://www.dotnetzone.gr:443/cs/blogs/iwannis/archive/2013/05/26/a-simple-way-to-detect-memory-leaks-in-c-and-how-to-create-one-with-events.aspx"&gt;read more&lt;/a&gt;)&lt;img src="https://www.dotnetzone.gr:443/cs/aggbug.aspx?PostID=72645" width="1" height="1"&gt;</description><category domain="https://www.dotnetzone.gr:443/cs/blogs/iwannis/archive/tags/WPF/default.aspx">WPF</category><category domain="https://www.dotnetzone.gr:443/cs/blogs/iwannis/archive/tags/.NET/default.aspx">.NET</category></item><item><title>Handling errors and internet connectivity problems in Windows 8 Apps with navigation (WinJS)</title><link>https://www.dotnetzone.gr:443/cs/blogs/iwannis/archive/2013/05/24/handling-errors-and-internet-connectivity-problems-in-windows-8-apps-with-navigation-winjs.aspx</link><pubDate>Fri, 24 May 2013 22:57:00 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:72615</guid><dc:creator>iwannis</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/blogs/iwannis/comments/72615.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/blogs/iwannis/commentrss.aspx?PostID=72615</wfw:commentRss><wfw:comment>https://www.dotnetzone.gr:443/cs/blogs/iwannis/rsscomments.aspx?PostID=72615</wfw:comment><description>In this post we will explore a generic way of handling unpredicatble errors/lost connectivity in our Windows 8 Apps developed with HTML5 and Javascript. The two requirements we need to tackle are as follows: There is a chance that while our application is running, internet connectivity will be lost. We need to know when this happens in order to inform the user and possibly handle the problem while preserving application state. Unpredicatble errors may occur that will cause a general exception. We need to "catch" those errors, informing the user with a generic (and apologetic) error message and maybe transmit some useful details about the error to a service we have implemented for this purpose. Handling internet connectivity problems First we need a way to verify whether the app has connectivity to the internet. This can be done by using the following function: utilities.isConnected=function() { var connectivity=Windows.Networking.Connectivity; var profile = connectivity.NetworkInformation.getInternetConnectionProfile();...(&lt;a href="https://www.dotnetzone.gr:443/cs/blogs/iwannis/archive/2013/05/24/handling-errors-and-internet-connectivity-problems-in-windows-8-apps-with-navigation-winjs.aspx"&gt;read more&lt;/a&gt;)&lt;img src="https://www.dotnetzone.gr:443/cs/aggbug.aspx?PostID=72615" width="1" height="1"&gt;</description><category domain="https://www.dotnetzone.gr:443/cs/blogs/iwannis/archive/tags/WinJS/default.aspx">WinJS</category><category domain="https://www.dotnetzone.gr:443/cs/blogs/iwannis/archive/tags/Windows+8/default.aspx">Windows 8</category></item><item><title>Drag and Drop in WinJS.UI.ListView for repositioning items in Windows Store Apps</title><link>https://www.dotnetzone.gr:443/cs/blogs/iwannis/archive/2012/12/18/drag-and-drop-in-winjs-ui-listview-for-repositioning-items-in-windows-store-apps.aspx</link><pubDate>Tue, 18 Dec 2012 20:19:00 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:71779</guid><dc:creator>iwannis</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/blogs/iwannis/comments/71779.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/blogs/iwannis/commentrss.aspx?PostID=71779</wfw:commentRss><wfw:comment>https://www.dotnetzone.gr:443/cs/blogs/iwannis/rsscomments.aspx?PostID=71779</wfw:comment><description>After hours of searching in the documentation in order to implement a decent drag and drop behavior in WinJS.UI.ListView (like the one we see on the “start” screen) I have finally managed to make it happen and in this post I am sharing the way it can be done. During this post there are also answers about: How to provide multiple templates for the ListView items. How to “gesture enable” your DOM elements. The main requirement is simple. You have a WinJS.UI.ListView control on your Windows Store app and need to allow the user move some elements in the list (usually to allow the user to define via drag and drop their order in the list). We will start with a very simple project where a demo list (dataList) is defined as follows: var groups = [ { key: 'group1' , title: 'Group 1' }, { key: 'group2' , title: 'Group 2' } ]; var dataList = new WinJS.Binding.List(); dataList.push({ group: groups[0], data: { id: 1, name: 'one' } }); ... dataList.push({ group: groups[0], data: { id: 7, name: 'seven' } }); dataList = dataList.createGrouped(...(&lt;a href="https://www.dotnetzone.gr:443/cs/blogs/iwannis/archive/2012/12/18/drag-and-drop-in-winjs-ui-listview-for-repositioning-items-in-windows-store-apps.aspx"&gt;read more&lt;/a&gt;)&lt;img src="https://www.dotnetzone.gr:443/cs/aggbug.aspx?PostID=71779" width="1" height="1"&gt;</description><category domain="https://www.dotnetzone.gr:443/cs/blogs/iwannis/archive/tags/Windows8/default.aspx">Windows8</category><category domain="https://www.dotnetzone.gr:443/cs/blogs/iwannis/archive/tags/WinJS/default.aspx">WinJS</category><category domain="https://www.dotnetzone.gr:443/cs/blogs/iwannis/archive/tags/Windows+8/default.aspx">Windows 8</category></item><item><title>Push Notifications in Windows 8 with ASP.NET MVC</title><link>https://www.dotnetzone.gr:443/cs/blogs/iwannis/archive/2012/06/28/push-notifications-in-windows-8-with-asp-net-mvc.aspx</link><pubDate>Thu, 28 Jun 2012 20:00:00 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:70758</guid><dc:creator>iwannis</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/blogs/iwannis/comments/70758.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/blogs/iwannis/commentrss.aspx?PostID=70758</wfw:commentRss><wfw:comment>https://www.dotnetzone.gr:443/cs/blogs/iwannis/rsscomments.aspx?PostID=70758</wfw:comment><description>In the previous post we have seen how we create scheduled and periodic tile notifications with Javascript for metro applications. In this post we will cover push notifications . Push notifications do not require from your app to tell the OS that it has to query a service at specific time intervals as periodic notifications do. They rely on the fact that an external service can actually change the tile when it sees fit (hence the “push” name). Such notifications cover scenarios like having an application that monitors stock prices and the user specifying that he wants to be informed when the price of a stock falls under a specific value. The push notification will change the tile’s appearance when the premise is fulfilled. Note that a periodic notification would not suit in this case unless the user could accept a possible maximum half hour delay of the delivery of the notification. Push notifications work as follows: &amp;#160; Your metro app requests from the device a specific URI which uniquely defines the combination...(&lt;a href="https://www.dotnetzone.gr:443/cs/blogs/iwannis/archive/2012/06/28/push-notifications-in-windows-8-with-asp-net-mvc.aspx"&gt;read more&lt;/a&gt;)&lt;img src="https://www.dotnetzone.gr:443/cs/aggbug.aspx?PostID=70758" width="1" height="1"&gt;</description></item><item><title>Tile Notifications in Windows 8 (Javascript)</title><link>https://www.dotnetzone.gr:443/cs/blogs/iwannis/archive/2012/06/27/tile-notifications-in-windows-8-javascript.aspx</link><pubDate>Wed, 27 Jun 2012 15:51:00 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:70745</guid><dc:creator>iwannis</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/blogs/iwannis/comments/70745.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/blogs/iwannis/commentrss.aspx?PostID=70745</wfw:commentRss><wfw:comment>https://www.dotnetzone.gr:443/cs/blogs/iwannis/rsscomments.aspx?PostID=70745</wfw:comment><description>This post will cover the main aspects of using Tile Notifications in a Metro-Style application. The only topic that will not be covered is “Push Notifications” since those deserve a post on their own and will follow in the near future. So what are “Tile Notifications”? Well as you already know, each Metro-Style application has its own tile which appears in the start screen. This tile is either a “square” or a “wide” one as depicted in the following figure: &amp;#160; &amp;#160; The user gets to choose from the “start menu” application bar which one of the two will be shown. You specify in your application that you support both by providing in the package.appxmanifest file (Application UI tab) a image for both the Logo and the Wide logo property: &amp;#160; &amp;#160; It is important that you provide the wide version of the logo cause otherwise your application will not be able to appear as “wide” in the start menu and that option will not exist for the user in the application bar. Having done this, you may use the tile to make...(&lt;a href="https://www.dotnetzone.gr:443/cs/blogs/iwannis/archive/2012/06/27/tile-notifications-in-windows-8-javascript.aspx"&gt;read more&lt;/a&gt;)&lt;img src="https://www.dotnetzone.gr:443/cs/aggbug.aspx?PostID=70745" width="1" height="1"&gt;</description><category domain="https://www.dotnetzone.gr:443/cs/blogs/iwannis/archive/tags/Windows8/default.aspx">Windows8</category><category domain="https://www.dotnetzone.gr:443/cs/blogs/iwannis/archive/tags/WinJS/default.aspx">WinJS</category></item><item><title>Welcome to BlogEngine.NET 2.6</title><link>https://www.dotnetzone.gr:443/cs/blogs/iwannis/archive/2012/04/20/welcome-to-blogengine-net-2-6.aspx</link><pubDate>Fri, 20 Apr 2012 19:00:00 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:70735</guid><dc:creator>iwannis</dc:creator><slash:comments>5</slash:comments><comments>https://www.dotnetzone.gr:443/cs/blogs/iwannis/comments/70735.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/blogs/iwannis/commentrss.aspx?PostID=70735</wfw:commentRss><wfw:comment>https://www.dotnetzone.gr:443/cs/blogs/iwannis/rsscomments.aspx?PostID=70735</wfw:comment><description>If you see this post it means that BlogEngine.NET 2.6 is running and the hard part of creating your own blog is done. There is only a few things left to do. Write Permissions To be able to log in to the blog and writing posts, you need to enable write permissions on the App_Data folder. If your blog is hosted at a hosting provider, you can either log into your account&amp;rsquo;s admin page or call the support. You need write permissions on the App_Data folder because all posts, comments, and blog attachments are saved as XML files and placed in the App_Data folder. If you wish to use a database to to store your blog data, we still encourage you to enable this write access for an images you may wish to store for your blog posts. If you are interested in using Microsoft SQL Server, MySQL, SQL CE, or other databases, please see the BlogEngine wiki to get started. Security When you've got write permissions to the App_Data folder, you need to change the username and password. Find the sign-in link located either at the...(&lt;a href="https://www.dotnetzone.gr:443/cs/blogs/iwannis/archive/2012/04/20/welcome-to-blogengine-net-2-6.aspx"&gt;read more&lt;/a&gt;)&lt;img src="https://www.dotnetzone.gr:443/cs/aggbug.aspx?PostID=70735" width="1" height="1"&gt;</description><category domain="https://www.dotnetzone.gr:443/cs/blogs/iwannis/archive/tags/BlogEngine.NET/default.aspx">BlogEngine.NET</category></item><item><title>(Windows8) WinJS single page navigation and ViewModels</title><link>https://www.dotnetzone.gr:443/cs/blogs/iwannis/archive/2012/03/23/windows8-winjs-single-page-navigation-and-viewmodels.aspx</link><pubDate>Fri, 23 Mar 2012 13:43:00 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:69754</guid><dc:creator>iwannis</dc:creator><slash:comments>2</slash:comments><comments>https://www.dotnetzone.gr:443/cs/blogs/iwannis/comments/69754.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/blogs/iwannis/commentrss.aspx?PostID=69754</wfw:commentRss><wfw:comment>https://www.dotnetzone.gr:443/cs/blogs/iwannis/rsscomments.aspx?PostID=69754</wfw:comment><description>In the previous post , we have seen simple data-binding scenarios using WinJS and got a glimpse on the way a ViewModel can be created (following the MVVM pattern). In this post, we will build and application where there are more than one views (pages - simple page navigation app) with simple html elements and ListViews with real data. The question we need to answer is: &amp;#160; “ How do the ViewModels and MVVM can be applied in a single page navigation &amp;#160; WinJS application?” ( FOR .NET Developers: if you are coming from the .NET world and especially XAML you will also get a chance to see how things like INotifyPropertyChanged and ObservableCollections apply to the WinJS world. The ViewModel presented here is as close as possible to the one that would be applied in a WPF-Silverlight window) &amp;#160; We will create a simple app that displays the births and deaths of celebrities in today’s date. Data will come from the RSS feeds provided by IMDB. Clicking on a celebrity should lead us to a new page where we get the...(&lt;a href="https://www.dotnetzone.gr:443/cs/blogs/iwannis/archive/2012/03/23/windows8-winjs-single-page-navigation-and-viewmodels.aspx"&gt;read more&lt;/a&gt;)&lt;img src="https://www.dotnetzone.gr:443/cs/aggbug.aspx?PostID=69754" width="1" height="1"&gt;</description><category domain="https://www.dotnetzone.gr:443/cs/blogs/iwannis/archive/tags/HTML5/default.aspx">HTML5</category><category domain="https://www.dotnetzone.gr:443/cs/blogs/iwannis/archive/tags/Windows8/default.aspx">Windows8</category><category domain="https://www.dotnetzone.gr:443/cs/blogs/iwannis/archive/tags/WinJS/default.aspx">WinJS</category></item><item><title>(Windows8) WinJS Basic Javascript Objects and the ViewModel pattern</title><link>https://www.dotnetzone.gr:443/cs/blogs/iwannis/archive/2012/03/11/windows8-winjs-basic-javascript-objects-and-the-viewmodel-pattern.aspx</link><pubDate>Sun, 11 Mar 2012 23:03:00 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:69616</guid><dc:creator>iwannis</dc:creator><slash:comments>1</slash:comments><comments>https://www.dotnetzone.gr:443/cs/blogs/iwannis/comments/69616.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/blogs/iwannis/commentrss.aspx?PostID=69616</wfw:commentRss><wfw:comment>https://www.dotnetzone.gr:443/cs/blogs/iwannis/rsscomments.aspx?PostID=69616</wfw:comment><description>When someone starts implementing small programs in Visual Studio 2011 and starts playing with the VS2011 templates for Metro applications in Javascript, he soon wonders about the differences that WinJS brings in Javascript object creation and what is the best practice of connecting the view (HTML) with the model (Javascript). he second relates to the functionality that WinJS brings and is similar to other data binding libraries like for example Knockoutjs .In this blog we will see a general overview of the object and ViewModel creation patterns using only WinJS via the implementation of a simple “Metro Style” application. &amp;#160; Please note that due to the lack of complete documentation for the WinJS library and its workings, some of the statements below are my assumptions and may not reflect 100% the reality. Of course every single line of code below is tested and works but bear in mind that there may be a better way of doing this and I will definitely keep researching for it. &amp;#160; How do I try the examples...(&lt;a href="https://www.dotnetzone.gr:443/cs/blogs/iwannis/archive/2012/03/11/windows8-winjs-basic-javascript-objects-and-the-viewmodel-pattern.aspx"&gt;read more&lt;/a&gt;)&lt;img src="https://www.dotnetzone.gr:443/cs/aggbug.aspx?PostID=69616" width="1" height="1"&gt;</description><category domain="https://www.dotnetzone.gr:443/cs/blogs/iwannis/archive/tags/Windows8/default.aspx">Windows8</category><category domain="https://www.dotnetzone.gr:443/cs/blogs/iwannis/archive/tags/WinJS/default.aspx">WinJS</category></item><item><title>XNA and WP7–Simple Demos to get you started!</title><link>https://www.dotnetzone.gr:443/cs/blogs/iwannis/archive/2012/02/12/xna-and-wp7-simple-demos-to-get-you-started.aspx</link><pubDate>Mon, 13 Feb 2012 02:16:23 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:69267</guid><dc:creator>iwannis</dc:creator><slash:comments>2</slash:comments><comments>https://www.dotnetzone.gr:443/cs/blogs/iwannis/comments/69267.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/blogs/iwannis/commentrss.aspx?PostID=69267</wfw:commentRss><wfw:comment>https://www.dotnetzone.gr:443/cs/blogs/iwannis/rsscomments.aspx?PostID=69267</wfw:comment><description>Below you can find a series of simple demos that can give you a nice insight on the XNA’s power for WP7. All of them are original. Feel free to use them in your code as you wish. There is also a PowerPoint presentation about those demos but unfortunately it is only in Greek. So let the games begin! &amp;#160; The basics Demo1 Initializes the game and draws a simple image on the display Demo2 Sprite rotation and movement, Frame rate calculation, writing strings on the display, Demo3 Same as Demo2 but now Frame Rate calculator and bouncing sprite are implemented as game components leading to a more reusable and readable code. Now we can add more bouncing balls in an instant! Parameters are passed to game components through the use of game services Demo4 Multi-touch. Understanding where are the user’s fingers and what they do. A line is drawn and follows each finger that touches the display. The information is passed through game services to the components. Demo5 Gestures. Extending the previous demo to accelerate the...(&lt;a href="https://www.dotnetzone.gr:443/cs/blogs/iwannis/archive/2012/02/12/xna-and-wp7-simple-demos-to-get-you-started.aspx"&gt;read more&lt;/a&gt;)&lt;img src="https://www.dotnetzone.gr:443/cs/aggbug.aspx?PostID=69267" width="1" height="1"&gt;</description><category domain="https://www.dotnetzone.gr:443/cs/blogs/iwannis/archive/tags/XNA/default.aspx">XNA</category></item><item><title>HTML5 Client Storage. An introduction on the new cookies.</title><link>https://www.dotnetzone.gr:443/cs/blogs/iwannis/archive/2012/02/06/html5-client-storage-an-introduction-on-the-new-cookies.aspx</link><pubDate>Mon, 06 Feb 2012 22:22:00 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:69165</guid><dc:creator>iwannis</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/blogs/iwannis/comments/69165.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/blogs/iwannis/commentrss.aspx?PostID=69165</wfw:commentRss><wfw:comment>https://www.dotnetzone.gr:443/cs/blogs/iwannis/rsscomments.aspx?PostID=69165</wfw:comment><description>Let’s talk about cookies. In fact let’s revisit cookies and see how we use them and what nightmares they bring along. Cookies are all about client storage. They are all about storing persistent information at client side. The syntax for creating/reading them is as follows. Imagine that we want to store client side the value 17 in a cookie named id. This is done by the following BLOCKED SCRIPT document.cookie=”id=17;expires=Mon,6 Feb 2012 12:00:00”; When we later want to read the value of the cookie named id we need to search within document.cookie for the string “id=” and fetch the value up to the next “;” character. Based on the previous definitions we may come up with three nice Javascript functions that make our lives a littler easier: Creating a cookie function SetCookie( name , value, expirationInDays) { var now = new Date (); var expire = new Date (); var newCookie = name + &amp;quot; = &amp;quot; + value; if (expirationInDays != null &amp;amp;&amp;amp; expirationInDays != 0) { expire.setTime(now.getTime() + 3600000 * 24...(&lt;a href="https://www.dotnetzone.gr:443/cs/blogs/iwannis/archive/2012/02/06/html5-client-storage-an-introduction-on-the-new-cookies.aspx"&gt;read more&lt;/a&gt;)&lt;img src="https://www.dotnetzone.gr:443/cs/aggbug.aspx?PostID=69165" width="1" height="1"&gt;</description><category domain="https://www.dotnetzone.gr:443/cs/blogs/iwannis/archive/tags/HTML5/default.aspx">HTML5</category></item><item><title>ASP.NET MVC, HTML5, CSS3, JQuery templates, IEnumerable binding, knockoutjs and offline cache in a demo. A brave new world</title><link>https://www.dotnetzone.gr:443/cs/blogs/iwannis/archive/2011/12/16/asp-net-mvc-html5-css3-jquery-templates-ienumerable-binding-knockoutjs-and-offline-cache-in-a-demo-a-brave-new-world.aspx</link><pubDate>Sat, 17 Dec 2011 02:08:00 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:68642</guid><dc:creator>iwannis</dc:creator><slash:comments>2</slash:comments><comments>https://www.dotnetzone.gr:443/cs/blogs/iwannis/comments/68642.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/blogs/iwannis/commentrss.aspx?PostID=68642</wfw:commentRss><wfw:comment>https://www.dotnetzone.gr:443/cs/blogs/iwannis/rsscomments.aspx?PostID=68642</wfw:comment><description>In one of my previous posts (appox. a year ago) I have demonstrated how to bind to IEnumerables in ASP.NET MVC. I have shown several ways of dynamically adding/removing elements from the list through the use of Javascript and then jQuery-templates. In that post I have used the traditional ASP.NET MVC literals &amp;lt;% %&amp;gt; and of course the whole site operated in HTML4 and jQuery. &amp;#160; Today a lot of things have changed. From HTML4 we are moving to HTML5, we start using CSS3 for our styles, we use Razor for our views in ASP.NET MVC and we can take advantage of the knockoutjs library that has managed to bring the world of MVVM patterns closer to the world of Javascript and it did it with some impressive results. Therefore, in this post we are going to re-implement the same project adopting all those new (or not so new) great technologies. &amp;#160; We need to implement a simple site where we have a list of clients with a first and last name and we need to give to our users the ability to manage that list (insert/remove/edit...(&lt;a href="https://www.dotnetzone.gr:443/cs/blogs/iwannis/archive/2011/12/16/asp-net-mvc-html5-css3-jquery-templates-ienumerable-binding-knockoutjs-and-offline-cache-in-a-demo-a-brave-new-world.aspx"&gt;read more&lt;/a&gt;)&lt;img src="https://www.dotnetzone.gr:443/cs/aggbug.aspx?PostID=68642" width="1" height="1"&gt;</description><category domain="https://www.dotnetzone.gr:443/cs/blogs/iwannis/archive/tags/ASP.NET+MVC/default.aspx">ASP.NET MVC</category><category domain="https://www.dotnetzone.gr:443/cs/blogs/iwannis/archive/tags/HTML5/default.aspx">HTML5</category></item><item><title>ITProDevConnections 2011 HTML5 Presentation Material (in greek)</title><link>https://www.dotnetzone.gr:443/cs/blogs/iwannis/archive/2011/11/27/itprodevconnections-2011-html5-presentation-material-in-greek.aspx</link><pubDate>Sun, 27 Nov 2011 19:09:00 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:68385</guid><dc:creator>iwannis</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/blogs/iwannis/comments/68385.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/blogs/iwannis/commentrss.aspx?PostID=68385</wfw:commentRss><wfw:comment>https://www.dotnetzone.gr:443/cs/blogs/iwannis/rsscomments.aspx?PostID=68385</wfw:comment><description>&amp;Epsilon;&amp;upsilon;&amp;chi;&amp;alpha;&amp;rho;&amp;iota;&amp;sigma;&amp;tau;&amp;omicron;ύ&amp;mu;&amp;epsilon; ό&amp;lambda;&amp;omicron;&amp;upsilon;&amp;sigmaf; &amp;epsilon;&amp;sigma;ά&amp;sigmaf; &amp;pi;&amp;omicron;&amp;upsilon; ή&amp;rho;&amp;theta;&amp;alpha;&amp;tau;&amp;epsilon; &amp;kappa;&amp;alpha;&amp;iota; &amp;mu;&amp;alpha;&amp;sigmaf; &amp;tau;&amp;iota;&amp;mu;ή&amp;sigma;&amp;alpha;&amp;tau;&amp;epsilon; (&amp;tau;&amp;eta;&amp;nu; &amp;Iota;&amp;sigma;&amp;alpha;&amp;beta;έ&amp;lambda;&amp;lambda;&amp;alpha; &amp;kappa;&amp;alpha;&amp;iota; &amp;epsilon;&amp;mu;έ&amp;nu;&amp;alpha;) &amp;sigma;&amp;tau;&amp;eta;&amp;nu; &amp;pi;&amp;alpha;&amp;rho;&amp;omicron;&amp;upsilon;&amp;sigma;ί&amp;alpha;&amp;sigma;&amp;eta; "HTML5 Real Live Conversations" &amp;sigma;&amp;tau;&amp;omicron; &amp;pi;&amp;lambda;&amp;alpha;ί&amp;sigma;&amp;iota;&amp;omicron; &amp;tau;&amp;omicron;&amp;upsilon; &amp;sigma;&amp;epsilon;&amp;mu;&amp;iota;&amp;nu;&amp;alpha;&amp;rho;ί&amp;omicron;&amp;upsilon; ITProDevConnections 2011 . &amp;Sigma;&amp;tau;&amp;omicron;&amp;upsilon;&amp;sigmaf; &amp;pi;&amp;alpha;&amp;rho;&amp;alpha;&amp;kappa;ά&amp;tau;&amp;omega; &amp;sigma;&amp;upsilon;&amp;nu;&amp;delta;έ&amp;sigma;&amp;mu;&amp;omicron;&amp;upsilon;&amp;sigmaf; &amp;tau;&amp;omicron; &amp;upsilon;&amp;lambda;&amp;iota;&amp;kappa;ό &amp;tau;&amp;eta;&amp;sigmaf; &amp;pi;&amp;alpha;&amp;rho;&amp;omicron;&amp;upsilon;&amp;sigma;ί&amp;alpha;&amp;sigma;&amp;eta;&amp;sigmaf; (&amp;mu;έ&amp;sigma;&amp;alpha; &amp;sigma;&amp;tau;&amp;eta;&amp;nu; &amp;epsilon;&amp;beta;&amp;delta;&amp;omicron;&amp;mu;ά&amp;delta;&amp;alpha;...(&lt;a href="https://www.dotnetzone.gr:443/cs/blogs/iwannis/archive/2011/11/27/itprodevconnections-2011-html5-presentation-material-in-greek.aspx"&gt;read more&lt;/a&gt;)&lt;img src="https://www.dotnetzone.gr:443/cs/aggbug.aspx?PostID=68385" width="1" height="1"&gt;</description></item><item><title>A scripting language for your (web)app with DLR or Roslyn</title><link>https://www.dotnetzone.gr:443/cs/blogs/iwannis/archive/2011/10/31/a-scripting-language-for-your-web-app-with-dlr-or-roslyn.aspx</link><pubDate>Mon, 31 Oct 2011 20:14:00 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:67976</guid><dc:creator>iwannis</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/blogs/iwannis/comments/67976.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/blogs/iwannis/commentrss.aspx?PostID=67976</wfw:commentRss><wfw:comment>https://www.dotnetzone.gr:443/cs/blogs/iwannis/rsscomments.aspx?PostID=67976</wfw:comment><description>Well, this subject always excited me! The fact that you can provide at your executable, a programming language (script) that the user can use to interact with your application is something amazing. In this post, we see how this is possible by using the Dynamic Language Runtime (DLR) and IronPython, and then see whether the services provided by the Roslyn project can help as achieve the same result with C#. The whole idea behind providing a scripting language at runtime may find the following three applications: &amp;#160; You implement a DSL (Domain Specific Language) meaning that you want to provide to your end use an expressive tool to specify his behavior in a specific application domain. In this case you expose some parts of the information held in your application in the form of methods that the user can use in his scripts to achieve the desired result. You want to be able to change a specific behavior without having to recompile the whole application or in the case where you use the same executable in multi-tenant...(&lt;a href="https://www.dotnetzone.gr:443/cs/blogs/iwannis/archive/2011/10/31/a-scripting-language-for-your-web-app-with-dlr-or-roslyn.aspx"&gt;read more&lt;/a&gt;)&lt;img src="https://www.dotnetzone.gr:443/cs/aggbug.aspx?PostID=67976" width="1" height="1"&gt;</description><category domain="https://www.dotnetzone.gr:443/cs/blogs/iwannis/archive/tags/ASP.NET+MVC/default.aspx">ASP.NET MVC</category><category domain="https://www.dotnetzone.gr:443/cs/blogs/iwannis/archive/tags/Scripting/default.aspx">Scripting</category><category domain="https://www.dotnetzone.gr:443/cs/blogs/iwannis/archive/tags/Roslyn/default.aspx">Roslyn</category><category domain="https://www.dotnetzone.gr:443/cs/blogs/iwannis/archive/tags/DLR/default.aspx">DLR</category></item></channel></rss>