<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://community.devexpress.com/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>ctodx</title><link>http://community.devexpress.com/blogs/ctodx/default.aspx</link><description>Discussions, news and rants from the CTO of Developer Express, Julian M Bucknall</description><dc:language>en</dc:language><generator>CommunityServer 2007.1 SP1 (Build: 30415.43)</generator><item><title>DXTREME Mobile for C# developers–the Design</title><link>http://community.devexpress.com/blogs/ctodx/archive/2013/05/13/dxtreme-mobile-for-c-developers-the-design.aspx</link><pubDate>Tue, 14 May 2013 00:06:01 GMT</pubDate><guid isPermaLink="false">bd716303-653c-428d-8b8a-a7d998cde032:370091</guid><dc:creator>Julian Bucknall (DevExpress)</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://community.devexpress.com/blogs/ctodx/rsscomments.aspx?PostID=370091</wfw:commentRss><comments>http://community.devexpress.com/blogs/ctodx/archive/2013/05/13/dxtreme-mobile-for-c-developers-the-design.aspx#comments</comments><description>&lt;p&gt;I must add a caveat to that title: “Such as it is”. &lt;/p&gt;  &lt;p&gt;(See the &lt;a href="http://community.devexpress.com/blogs/ctodx/archive/2013/05/02/dxtreme-mobile-for-c-developers-foundations.aspx"&gt;Introduction to this series&lt;/a&gt; here.)&lt;/p&gt;  &lt;p&gt;In essence, I want to keep the work flow of the Citizenship Test app pretty simple to suit the main devices it’ll run on.&lt;/p&gt;  &lt;p&gt;When you run the app, I envisage a plain home screen: the title, and a couple of options. The first option allows the user to review all hundred questions and their answers. I see this as a straightforward list of Q&amp;amp;A items and the user would flick to scroll the list up and down. An alternative would be to just list the questions in a scrollable list, and then have the user touch a question to navigate to another screen to see the answer. Although uncomplicated, I feel that this could be cumbersome since the user would then have to navigate back to the question list. A user experience that is not overly onerous, but the back-and-forth is still a little inelegant I think.&lt;/p&gt;  &lt;p&gt;The second option from the start or home screen would be the testing option: display a question and accept input from the user. What I’d like is a text box and some &lt;a href="http://en.wikipedia.org/wiki/Natural_language_processing"&gt;natural language processing&lt;/a&gt; to analyze the answer and check it against the actual answer. I’m not too sure about that just yet (NLP is not my forte), but we’ll see. Somewhere on the screen will be a button to navigate to the next screen with the next question. Since the actual naturalization test consists of ten questions of which you have to answer at least six correctly, this will also be the format of the testing option. There’ll also be a final screen (not shown) that would grade your answers.&lt;/p&gt;  &lt;p&gt;The back button on this screen would not go back to the previous question, but to the home screen. Pressing it would cancel the current test. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://community.devexpress.com/blogs/ctodx/AppDesign_71A73E0D.png"&gt;&lt;img title="Naturalization Test AppDesign" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;border-left:0px;display:inline;padding-right:0px;" border="0" alt="Naturalization Test AppDesign" src="http://community.devexpress.com/blogs/ctodx/AppDesign_thumb_45F67411.png" width="208" height="240" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;As you can see, the way I’ve designed this app is to break it up into several steps (that is, screens), going from the simple to the more complex. That way, as we build it, you’ll get a flavor of how to develop these kinds of applications with DXTREME Mobile.&lt;/p&gt;  &lt;p&gt;Next time: the Home Screen.&lt;/p&gt;&lt;img src="http://community.devexpress.com/aggbug.aspx?PostID=370091" width="1" height="1"&gt;</description><category domain="http://community.devexpress.com/blogs/ctodx/archive/tags/DXTREME/default.aspx">DXTREME</category><category domain="http://community.devexpress.com/blogs/ctodx/archive/tags/Learning/default.aspx">Learning</category></item><item><title>DXTREME Mobile for C# developers – Foundations</title><link>http://community.devexpress.com/blogs/ctodx/archive/2013/05/02/dxtreme-mobile-for-c-developers-foundations.aspx</link><pubDate>Thu, 02 May 2013 23:46:02 GMT</pubDate><guid isPermaLink="false">bd716303-653c-428d-8b8a-a7d998cde032:370010</guid><dc:creator>Julian Bucknall (DevExpress)</dc:creator><slash:comments>2</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://community.devexpress.com/blogs/ctodx/rsscomments.aspx?PostID=370010</wfw:commentRss><comments>http://community.devexpress.com/blogs/ctodx/archive/2013/05/02/dxtreme-mobile-for-c-developers-foundations.aspx#comments</comments><description>&lt;p&gt;We have just published a Release Candidate for DXTREME Mobile 13.1. There have been many changes for this particular release – even better Visual Studio integration, greater performance, better “native” look-and-feel, new Windows Phone 8 support, and so on – and I thought it would be a good idea to introduce how to write multi-device apps for this new version, especially as they’re written with HTML5 markup and JavaScript. I’ll do this introduction and tutorial over several blog posts, which may in turn become an official part of the documentation.&lt;/p&gt;  &lt;p&gt;&lt;img title="Lego built into 1, 2, 3" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;float:right;padding-top:0px;padding-left:0px;margin:0px 0px 0px 15px;border-left:0px;display:inline;padding-right:0px;" border="0" alt="Lego built into 1, 2, 3" align="right" src="http://community.devexpress.com/blogs/ctodx/Lego123_0AEAFF44.jpg" width="240" height="159" /&gt;First things first, let me lay down some ground rules. I shall assume you are a C# developer (or at least familiar with its syntax and grammar) and are using and are very familiar with Visual Studio 2012. Perhaps you know some HTML5 – or at least are familiar with basic HTML markup – and perhaps you know some JavaScript. That’s great if so, but I won’t assume you know too much in that area. &lt;/p&gt;  &lt;p&gt;What I’ll do in this series of posts is to create a simple app for iPhone 5, iPad 3, and for the Kindle Fire HD tablet, all of which I have at hand and can test on. The app is going to be designed to help me in a momentous event later this year: I’m going to take the &lt;a href="http://www.uscis.gov/portal/site/uscis/menuitem.eb1d4c2a3e5b9ac89243c6a7543f6d1a/?vgnextoid=dd7ffe9dd4aa3210VgnVCM100000b92ca60aRCRD&amp;amp;vgnextchannel=dd7ffe9dd4aa3210VgnVCM100000b92ca60aRCRD"&gt;USCIS Naturalization Test&lt;/a&gt; to become a US Citizen. As part of this overall test, there is a &lt;a href="http://www.uscis.gov/portal/site/uscis/menuitem.749cabd81f5ffc8fba713d10526e0aa0/?vgnextoid=982a309186e89210VgnVCM10000025e6a00aRCRD&amp;amp;vgnextchannel=c242df6bdd42a210VgnVCM100000b92ca60aRCRD"&gt;sub-test on US civics&lt;/a&gt;, especially history, law, and government. The nice thing about this particular test is that all of the &lt;a href="http://www.uscis.gov/USCIS/Office%20of%20Citizenship/Citizenship%20Resource%20Center%20Site/Publications/100q.pdf"&gt;100 possible questions are published&lt;/a&gt; and you have to answer 6 or more correctly of ten random ones that the USCIS Officer will ask you in order to pass. My goal is&amp;#160; 100%. What we’ll do with this app is to load all 100 questions into some kind of database, and then ask the questions of the user one at a time, randomly. We’ll also explore how to process the answers: maybe by using multiple choice, or analyzing the reply for keywords, or whatever. I’ll also go through the process of compiling the app with PhoneGap and getting it into the relevant app stores. &lt;/p&gt;  &lt;p&gt;Without further ado, let me provide a quick introduction to some basic JavaScript.&lt;/p&gt;  &lt;h3&gt;Introduction to JavaScript&lt;/h3&gt;  &lt;p&gt;JavaScript is a simple interpreted language designed explicitly for web pages. Nowadays, scripts are even compiled for even faster execution, but this need not worry you too much: just assume that the interpreter in your browser knows how to parse and execute JavaScript files. &lt;/p&gt;  &lt;h4&gt;JavaScript Types&lt;/h4&gt;  &lt;p&gt;JavaScript’s simplicity starts off with the type system – yes, no matter what you have heard, JavaScript &lt;em&gt;does&lt;/em&gt; have types. Not many, but they’re there. There are six: &lt;strong&gt;number&lt;/strong&gt;, &lt;strong&gt;string&lt;/strong&gt;, &lt;strong&gt;boolean&lt;/strong&gt;, &lt;strong&gt;object&lt;/strong&gt;, &lt;strong&gt;null&lt;/strong&gt;, and &lt;strong&gt;undefined&lt;/strong&gt;. For now, just concentrate on the first four; we’ll introduce the others later on. &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Number&lt;/strong&gt;: in C# terms, this is the same as &lt;code&gt;double&lt;/code&gt;. There is no equivalent to &lt;code&gt;int&lt;/code&gt; unfortunately, so beware of issues with rounding errors during calculations. You enter constant values just the way you&amp;#39;re used to in C#: 1, 2.3, etc. The &lt;code&gt;typeof&lt;/code&gt; operator called on a variable containing a number will return &amp;quot;number&amp;quot;.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;String&lt;/strong&gt;: for all intents and purposes, this is equivalent to C#&amp;#39;s &lt;code&gt;string&lt;/code&gt; type, but do note that JavaScript&amp;#39;s strings support 16-bit characters &lt;em&gt;only&lt;/em&gt;; you cannot access characters on Unicode&amp;#39;s higher planes. You enter constant values in the normal manner, however you can use either single or double quotes to do so: &amp;#39;hello&amp;#39;, &amp;quot;world&amp;quot;. The &lt;code&gt;typeof&lt;/code&gt; operator called on a variable containing a string will return &amp;quot;string&amp;quot;.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Boolean&lt;/strong&gt;: just like C#&amp;#39;s &lt;code&gt;bool&lt;/code&gt;, a type that has just two values: &lt;code&gt;true&lt;/code&gt; and &lt;code&gt;false&lt;/code&gt;. The &lt;code&gt;typeof&lt;/code&gt; operator called on a variable containing a boolean will return &amp;quot;boolean&amp;quot;.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;object&lt;/strong&gt;: anything else, including arrays, dates, functions (yes, functions are objects too) and objects you create yourself. There is a special syntax to defining objects, which we&amp;#39;ll get to in a moment. &lt;/p&gt;  &lt;p&gt;Since JavaScript is a C-type language, you should easily understand the declarations of the following variables:&lt;/p&gt;  &lt;div class="jmbcodeblock"&gt;   &lt;pre&gt;&lt;span style="color:#0000ff;"&gt;&lt;span style="background-color:#ffffff;"&gt;var&lt;/span&gt;&lt;span style="color:#000000;"&gt; e = 2.718281828;             &lt;/span&gt;&lt;span style="background-color:#ffff91;"&gt;// a number&lt;/span&gt;&lt;span style="background-color:#ffffff;"&gt;
console.log(&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;typeof&lt;/span&gt;&lt;span style="color:#000000;"&gt; e);           &lt;/span&gt;&lt;span style="background-color:#ffff91;"&gt;// outputs &amp;quot;number&amp;quot; &lt;/span&gt;&lt;span style="background-color:#ffffff;"&gt;
&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;var&lt;/span&gt;&lt;span style="color:#000000;"&gt; name = &lt;/span&gt;&lt;span style="color:#a31515;"&gt;&amp;quot;John O&amp;#39;Doe&amp;quot;&lt;/span&gt;&lt;span style="color:#000000;"&gt;;         &lt;/span&gt;&lt;span style="background-color:#ffff91;"&gt;// a string&lt;/span&gt;&lt;span style="background-color:#ffffff;"&gt;
console.log(&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;typeof&lt;/span&gt;&lt;span style="color:#000000;"&gt; name);        &lt;/span&gt;&lt;span style="background-color:#ffff91;"&gt;// outputs &amp;quot;string&amp;quot; &lt;/span&gt;&lt;span style="background-color:#ffffff;"&gt;
&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;var&lt;/span&gt;&lt;span style="color:#000000;"&gt; anotherName = &lt;/span&gt;&lt;span style="color:#a31515;"&gt;&amp;#39;Jane Doe&amp;#39;&lt;/span&gt;&lt;span style="color:#000000;"&gt;;    &lt;/span&gt;&lt;span style="background-color:#ffff91;"&gt;// another string&lt;/span&gt;&lt;span style="background-color:#ffffff;"&gt;
console.log(&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;typeof&lt;/span&gt;&lt;span style="color:#000000;"&gt; anotherName); &lt;/span&gt;&lt;span style="background-color:#ffff91;"&gt;// outputs &amp;quot;string&amp;quot; &lt;/span&gt;&lt;span style="background-color:#ffffff;"&gt;
&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;var&lt;/span&gt;&lt;span style="color:#000000;"&gt; isFamiliar = &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;true&lt;/span&gt;&lt;span style="color:#000000;"&gt;;           &lt;/span&gt;&lt;span style="background-color:#ffff91;"&gt;// a boolean&lt;/span&gt;&lt;span style="background-color:#ffffff;"&gt;
console.log(&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;typeof&lt;/span&gt;&lt;span style="color:#000000;"&gt; isFamiliar);  &lt;/span&gt;&lt;span style="background-color:#ffff91;"&gt;// outputs &amp;quot;boolean&amp;quot; &lt;/span&gt;&lt;span style="background-color:#ffffff;"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;

&lt;p&gt;One major difference to note: you do not declare anywhere the type of a variable. At the time a variable is used, JavaScript will work out what type the value has. Until then, it doesn&amp;#39;t care. This means you can reuse variables as different types (please, don’t do this):&lt;/p&gt;

&lt;div class="jmbcodeblock"&gt;
  &lt;pre&gt;&lt;span style="color:#000000;"&gt;&lt;span style="color:#000000;"&gt;name = 42;            
console.log(&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;typeof&lt;/span&gt;&lt;span style="color:#000000;"&gt; name); &lt;/span&gt;&lt;span style="background-color:#ffff91;"&gt;// outputs &amp;quot;number&amp;quot; &lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;

&lt;h4&gt;Objects&lt;/h4&gt;

&lt;p&gt;There is no class system in JavaScript. Objects are rather more fluid than C#’s class model allows, and the inheritance scheme JavaScript uses is known as “prototypal inheritance”. Since it is so different from class inheritance, many people will implement a proto-class inheritance system. We’ll see some of this later. For now, just be aware that objects do not have a class definition behind them that describes what they look like.&lt;/p&gt;

&lt;p&gt;An object in JavaScript is a container for named properties and methods. They are most often declared using an abbreviated syntax:&lt;/p&gt;

&lt;div class="jmbcodeblock"&gt;
  &lt;pre&gt;&lt;span style="color:#0000ff;"&gt;&lt;span style="background-color:#ffffff;"&gt;var&lt;/span&gt;&lt;span style="color:#000000;"&gt; ball = {
    color: red,
    bounce: &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;function&lt;/span&gt;&lt;span style="color:#000000;"&gt; () {
        &lt;/span&gt;&lt;span style="background-color:#ffff91;"&gt;// code to make it bounce&lt;/span&gt;&lt;span style="background-color:#ffffff;"&gt;
    }
};
&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;

&lt;p&gt;That is, &lt;code&gt;ball&lt;/code&gt; is an object with two members: a &lt;code&gt;color&lt;/code&gt; property with value &lt;code&gt;red&lt;/code&gt;, and a method (a function) called &lt;code&gt;bounce&lt;/code&gt;. In short, you declare an object with braces. Inside the braces, you can declare a set of comma-separated members of the object (if you don’t, the object is empty), where each member comprises a name followed by its value, separated by a colon.&lt;/p&gt;

&lt;p&gt;The above code is equivalent to:&lt;/p&gt;

&lt;div class="jmbcodeblock"&gt;
  &lt;pre&gt;&lt;span style="color:#0000ff;"&gt;&lt;span style="background-color:#ffffff;"&gt;var&lt;/span&gt;&lt;span style="color:#000000;"&gt; ball = {};
ball.color = red;
ball.bounce = &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;function&lt;/span&gt;&lt;span style="color:#000000;"&gt; () {
    &lt;/span&gt;&lt;span style="background-color:#ffff91;"&gt;// code to make it bounce&lt;/span&gt;&lt;span style="background-color:#ffffff;"&gt;
};
&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;

&lt;p&gt;Notice that you can just add members to an object as we did here, or remove them or replace them. Objects are endlessly flexible in JavaScript.&lt;/p&gt;

&lt;p&gt;Sometimes, objects are newed up, just like in C#. It’s not a constructor as we understand it in C#, just a special function with some built-in members. We’ll come across examples of this later, but for now here’s a simple example:&lt;/p&gt;

&lt;div class="jmbcodeblock"&gt;
  &lt;pre&gt;&lt;span style="color:#0000ff;"&gt;&lt;span style="background-color:#ffffff;"&gt;var&lt;/span&gt;&lt;span style="color:#000000;"&gt; startTime = &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;new&lt;/span&gt;&lt;span style="color:#000000;"&gt; Date(); &lt;/span&gt;&lt;span style="background-color:#ffff91;"&gt;// get an object representing now&lt;/span&gt;&lt;span style="background-color:#ffffff;"&gt;
console.log(startTime.toTimeString()); &lt;/span&gt;&lt;span style="background-color:#ffff91;"&gt;// use built-in method&lt;/span&gt;&lt;span style="background-color:#ffffff;"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;

&lt;h4&gt;Functions&lt;/h4&gt;

&lt;p&gt;Functions are encapsulations of code. They’re objects and so can be passed around and manipulated in a functional manner, but they can also be called. We’ve seen a couple of them in use so far (&lt;code&gt;console.log()&lt;/code&gt; is an example: &lt;code&gt;log()&lt;/code&gt; is a function declared as a member of the &lt;code&gt;console&lt;/code&gt; object, which is created by the browser under certain development/debugging scenarios).&lt;/p&gt;

&lt;p&gt;Here’s an example that shows how you can create and pass around new functions on the fly:&lt;/p&gt;

&lt;div class="jmbcodeblock"&gt;
  &lt;pre&gt;&lt;span style="color:#0000ff;"&gt;&lt;span style="background-color:#ffffff;"&gt;var&lt;/span&gt;&lt;span style="color:#000000;"&gt; makeBracketedLogger = &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;function&lt;/span&gt;&lt;span style="color:#000000;"&gt; (log) {
    &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;return&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;function&lt;/span&gt;&lt;span style="color:#000000;"&gt; (value) {
        log(&lt;/span&gt;&lt;span style="color:#a31515;"&gt;&amp;#39;[&amp;#39;&lt;/span&gt;&lt;span style="color:#000000;"&gt; + value + &lt;/span&gt;&lt;span style="color:#a31515;"&gt;&amp;#39;]&amp;#39;&lt;/span&gt;&lt;span style="color:#000000;"&gt;);
    };
};

&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;var&lt;/span&gt;&lt;span style="color:#000000;"&gt; logAlert = makeBracketedLogger(alert);
logAlert(&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;true&lt;/span&gt;&lt;span style="color:#000000;"&gt;); &lt;/span&gt;&lt;span style="background-color:#ffff91;"&gt;// displays [true] as an alert&lt;/span&gt;&lt;span style="background-color:#ffffff;"&gt;

&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;var&lt;/span&gt;&lt;span style="color:#000000;"&gt; logConsole = makeBracketedLogger(console.log);
logConsole(42); &lt;/span&gt;&lt;span style="background-color:#ffff91;"&gt;// displays [42] on the console&lt;/span&gt;&lt;span style="background-color:#ffffff;"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;

&lt;p&gt;Here we implement a function that creates logging functions. The functions it creates display the value they’re passed in between square brackets. I create two functions: one that uses the &lt;code&gt;alert()&lt;/code&gt; function to display the value in an alert dialog box, and the other to display the value to the debugging console. This easily shows that &lt;a href="http://blog.boyet.com/blog/javascriptlessons/javascript-for-c-programmers-wrapping-an-existing-function-to-add-extra-functionality/"&gt;functions can be created&lt;/a&gt; at run-time.&lt;/p&gt;

&lt;h4&gt;Scope and closures&lt;/h4&gt;

&lt;p&gt;This is one of the biggest differences between C# and JavaScript. In JavaScript the scope boundary for local variables is the nearest enclosing &lt;em&gt;function&lt;/em&gt;, not just the nearest enclosing braces. Locals declared in an outer function are visible to inner functions within, too. Take a look at &lt;code&gt;makeBracketedLogger()&lt;/code&gt; above. The &lt;code&gt;log&lt;/code&gt; parameter is visible inside the function being returned as well (which is why the returned function works). However, note something else as well: the returned function forms a &lt;em&gt;closure&lt;/em&gt; over the outer function so that it can still “get at” the &lt;code&gt;log&lt;/code&gt; parameter, even after the outer function has completed execution. Closures are extremely important in JavaScript, so make sure you refresh your memory on what they are and how they work in C#. It’s the same in JavaScript, just with a simpler syntax.&lt;/p&gt;

&lt;h4&gt;Statements, expressions, and so on&lt;/h4&gt;

&lt;p&gt;…Are pretty much as they are in C#. There are a few wrinkles that you’ll need to understand, the main one being that the JavaScript interpreter will go to great lengths to &lt;a href="http://blog.boyet.com/blog/javascriptlessons/javascript-for-c-developers-coercion/"&gt;coerce one variable to the type of another&lt;/a&gt; when you mix them, but we’ll cover those as we get to them. &lt;/p&gt;

&lt;p&gt;There is one operator in JavaScript that is not known in C#, the identity operator, or triple-equals (&lt;code&gt;===&lt;/code&gt;). This operator performs a comparison between two values, much like the equality operator (&lt;code&gt;==&lt;/code&gt;) does in C#. JavaScript’s equality operator is a coercion operator: if the two sides are not of the same type, JavaScript will go through some gymnastics to coerce one value to the type of the other. Sometimes this can be convenient (for example: &lt;code&gt;1 == &amp;#39;1&amp;#39;&lt;/code&gt; evaluates as true), but sometimes it can seem downright capricious in its results. Best practices say, always use &lt;code&gt;===&lt;/code&gt; (or, negated: &lt;code&gt;!==&lt;/code&gt;), since the person reading the code after you will not get caught out by some coercion assumption you’ve made.&lt;/p&gt;

&lt;h4&gt;Onwards!&lt;/h4&gt;

&lt;p&gt;Anyway, that’s enough foundation for now. Let’s jump in next time with some DXTREME Mobile.&lt;/p&gt;

&lt;p&gt;(If you want to explore more JavaScript syntax and grammar, please see my series on &lt;a href="http://blog.boyet.com/blog/javascriptlessons/"&gt;JavaScript for C# developers&lt;/a&gt;.)&lt;/p&gt;&lt;img src="http://community.devexpress.com/aggbug.aspx?PostID=370010" width="1" height="1"&gt;</description><category domain="http://community.devexpress.com/blogs/ctodx/archive/tags/DXTREME/default.aspx">DXTREME</category><category domain="http://community.devexpress.com/blogs/ctodx/archive/tags/Learning/default.aspx">Learning</category></item><item><title>DevExpress Roadmap 2013</title><link>http://community.devexpress.com/blogs/ctodx/archive/2013/03/22/devexpress-roadmap-2013.aspx</link><pubDate>Fri, 22 Mar 2013 22:52:06 GMT</pubDate><guid isPermaLink="false">bd716303-653c-428d-8b8a-a7d998cde032:369874</guid><dc:creator>Julian Bucknall (DevExpress)</dc:creator><slash:comments>16</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://community.devexpress.com/blogs/ctodx/rsscomments.aspx?PostID=369874</wfw:commentRss><comments>http://community.devexpress.com/blogs/ctodx/archive/2013/03/22/devexpress-roadmap-2013.aspx#comments</comments><description>&lt;p&gt;Finally the last discussion was debated, the last long email thread was terminated, the last agreement made, and the last document collected. It was then all up to me to collate all those bullet points and write the &lt;a href="http://www.devexpress.com/Home/Announces/Roadmap-2013.xml"&gt;DevExpress roadmap for 2013&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;margin:0px 0px 0px 15px;padding-left:0px;padding-right:0px;display:inline;float:right;border-top:0px;border-right:0px;padding-top:0px;" title="Pin in roadmap" border="0" alt="Pin in roadmap" align="right" src="http://community.devexpress.com/blogs/ctodx/Roadmap_40489D5D.jpg" /&gt;This year, perhaps more than the previous ones, there was much uncertainty about what path we should take. Perhaps uncertainty is the wrong word, ambiguity might be a better one. And path implies there’s just one road to take, whereas in reality there were several directions to follow. Despite what you may believe, DevExpress is not a vast enterprise with resources out the wazoo: we do have to pick and choose what we do; and carefully at that.&lt;/p&gt;  &lt;p&gt;The first decision was possibly the easiest. I’ve talked about this at length before, but it bears repeating: the web is this giant juggernaut of a train. You miss it at your peril. It’s not just “web sites” anymore. It’s “single page applications”, it’s “responsiveness”, it’s “mobile” in all its wild wonderful forms, it’s the “cloud”, it’s all of these separately and together. So, first of all we are concentrating on our ASP.NET story, and our HTML5/CSS3/JavaScript story in DXTREME. &lt;/p&gt;  &lt;p&gt;The second was perhaps equally as important and equally as straightforward: improve our “thick client” offerings, especially WinForms, WPF and VCL. Not all of our customers are writing the next killer web app (someone do Google Reader 2.0, please?) but are heads down in implementing awesome Windows applications. The rich data-fed Windows app is not going away, despite the maturity of each particular run-time. Hence we are spending some resources this year on polishing and enhancing these libraries (the new smooth scrolling is awesome, just as one example), and cementing our pole position as provider of Windows app components, no matter which technology you prefer.&lt;/p&gt;  &lt;p&gt;The third decision was to continue to enhance our dashboard, reporting, charting, and data analysis products, at an aggressive pace. We have many innovative ideas for these products, some of which you’ll see this year and some in 2014 or later.&lt;/p&gt;  &lt;p&gt;Anyway, for more details, please peruse the roadmap &lt;a href="http://www.devexpress.com/Home/Announces/Roadmap-2013.xml"&gt;here&lt;/a&gt;. Note that it does not and cannot cover every single suggestion or feature that we’ll be implementing, for then it would be tens of pages long and I’d never have finished it. And as I say every year on one way or another, use it for guidance, but don’t make solid plans based on it. &lt;/p&gt;  &lt;p&gt;It does promise to be a banner year though; let’s see what develops.&lt;/p&gt;&lt;img src="http://community.devexpress.com/aggbug.aspx?PostID=369874" width="1" height="1"&gt;</description><category domain="http://community.devexpress.com/blogs/ctodx/archive/tags/roadmap/default.aspx">roadmap</category></item><item><title>Seven…</title><link>http://community.devexpress.com/blogs/ctodx/archive/2013/03/15/seven.aspx</link><pubDate>Fri, 15 Mar 2013 19:50:12 GMT</pubDate><guid isPermaLink="false">bd716303-653c-428d-8b8a-a7d998cde032:369841</guid><dc:creator>Julian Bucknall (DevExpress)</dc:creator><slash:comments>2</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://community.devexpress.com/blogs/ctodx/rsscomments.aspx?PostID=369841</wfw:commentRss><comments>http://community.devexpress.com/blogs/ctodx/archive/2013/03/15/seven.aspx#comments</comments><description>&lt;p&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;margin:0px 0px 0px 15px;padding-left:0px;padding-right:0px;display:inline;float:right;border-top:0px;border-right:0px;padding-top:0px;" title="Cake in form of digit 7" border="0" alt="Cake in form of digit 7" align="right" src="http://community.devexpress.com/blogs/ctodx/Cake-in-form-of-digit-7_11D19208.jpg" width="180" height="240" /&gt;So today is special. For a start it’s the Ides of March, which, history has it, was a particularly rough day for Julius Caesar from which he didn’t really recover. But more importantly for me, it’s the seventh anniversary of my starting as CTO at DevExpress. I’d thought I’d take a moment to riff off the number seven.&lt;/p&gt;  &lt;p&gt;First a bit of fun personal math: 7 in binary (base 2) is 111, which taken as a number base 7 is 57, which in turn is two years more than my age. Numerology is not dead!&lt;/p&gt;  &lt;p&gt;Second: DevExpress has UI controls/extensions/widgets for seven different platforms: VCL, WinForms, ASP.NET (MVC), WPF, Silverlight, HTML5/JS, and Windows 8 Modern UI. When I started here, we had but three, which is kind of amazing when you think about it: the rate of change in this industry is scary fast.&lt;/p&gt;  &lt;p&gt;Third: some trivia. 7 is a Mersenne prime; there are seven hills in Rome; there are seven continents; 7 is the most probable score when rolling two dice; there are seven wonders of the ancient world (and, no, I’m not one of them); there are seven musical notes (do, re, mi, fa, so, la, te); seven days in a week; seven colors of the rainbow (whose names I remember using “Richard Of York Going Back Into Venice”, which makes no sense at all); September used to be the seventh month of the year, hence the name; there are seven deadly sins. Finally, if you remember old style calculators, each digit position had seven segments.&lt;/p&gt;  &lt;div class="itunesnowplaying"&gt;   &lt;p&gt;&lt;a href="http://www.amazon.com/Seven-Lives-Many-Faces-Enigma/dp/B001DUJNGS%3FSubscriptionId%3D0KQPG62QR93J93SA2A02%26tag%3Djulianbucknallsw%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3DB001DUJNGS"&gt;&lt;img style="float:left;margin-right:20px;" alt="Album cover for Seven Lives Many Faces" src="http://ecx.images-amazon.com/images/I/61am52fCT4L._SL75_.jpg" /&gt;&lt;/a&gt;Now playing:      &lt;br /&gt;Enigma - &lt;strong&gt;Seven Lives&lt;/strong&gt;      &lt;br /&gt;(from &lt;a href="http://www.amazon.com/Seven-Lives-Many-Faces-Enigma/dp/B001DUJNGS%3FSubscriptionId%3D0KQPG62QR93J93SA2A02%26tag%3Djulianbucknallsw%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3DB001DUJNGS"&gt;&lt;em&gt;Seven Lives Many Faces&lt;/em&gt;&lt;/a&gt;) &lt;/p&gt;    &lt;br class="clear" /&gt;&lt;/div&gt;&lt;img src="http://community.devexpress.com/aggbug.aspx?PostID=369841" width="1" height="1"&gt;</description><category domain="http://community.devexpress.com/blogs/ctodx/archive/tags/fun/default.aspx">fun</category></item><item><title>The Bestselling Publisher and several Bestselling Product awards from ComponentSource</title><link>http://community.devexpress.com/blogs/ctodx/archive/2013/02/28/the-bestselling-publisher-and-several-bestselling-product-awards-from-componentsource.aspx</link><pubDate>Fri, 01 Mar 2013 00:00:00 GMT</pubDate><guid isPermaLink="false">bd716303-653c-428d-8b8a-a7d998cde032:369804</guid><dc:creator>Julian Bucknall (DevExpress)</dc:creator><slash:comments>8</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://community.devexpress.com/blogs/ctodx/rsscomments.aspx?PostID=369804</wfw:commentRss><comments>http://community.devexpress.com/blogs/ctodx/archive/2013/02/28/the-bestselling-publisher-and-several-bestselling-product-awards-from-componentsource.aspx#comments</comments><description>&lt;p&gt;&lt;a href="http://community.devexpress.com/blogs/ctodx/CS-Award-1-Publisher-2012-13-Medium_375E5D9D.gif"&gt;&lt;img style="background-image:none;border-right-width:0px;margin:0px 0px 0px 15px;padding-left:0px;padding-right:0px;display:inline;float:right;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="ComponentSource Award Number 1 Publisher 2012/13" border="0" alt="ComponentSource Award Number 1 Publisher 2012/13" align="right" src="http://community.devexpress.com/blogs/ctodx/CS-Award-1-Publisher-2012-13-Medium_thumb_01E59B78.gif" width="155" height="166" /&gt;&lt;/a&gt;&lt;a href="http://www.componentsource.com/"&gt;ComponentSource®&lt;/a&gt; is the world&amp;#39;s largest marketplace and community for reusable software components and development tools. Every year they tot up the sales of each product they sell globally and work out who is the &lt;a href="http://www.componentsource.com/services/publisher/awards-2012-2013-publisher.html"&gt;bestselling software publisher&lt;/a&gt; and which &lt;a href="http://www.componentsource.com/services/publisher/awards-2012-2013-product.html"&gt;products sold the most&lt;/a&gt; during that year. I’m happy to say that we won a couple of these awards (he says modestly).&lt;/p&gt;  &lt;p&gt;First up is the big one: DevExpress was the top software publisher with ComponentSource in 2012. Not just in the top five, you understand, but Number One. &lt;/p&gt;  &lt;p&gt;Although this is certainly an impressive award, we have further good news: DXperience Enterprise was the top selling product for 2012 at ComponentSource. Another number one! Indeed, since DXperience WinForms is also at number 3, it means that, of the top five bestselling products, two were from DevExpress. Three other DevExpress products were also placed, this time in the Top 25: DXperience ASP.NET at 11, VCL Subscription at 13, and DXperience WPF at 15. These are striking results and just goes to show the high regard our products are held in the marketplace.&lt;/p&gt;  &lt;p&gt;So a big thank you is in order to all our customers who purchased through ComponentSource. You made us number one! Thank you!&lt;/p&gt;&lt;img src="http://community.devexpress.com/aggbug.aspx?PostID=369804" width="1" height="1"&gt;</description><category domain="http://community.devexpress.com/blogs/ctodx/archive/tags/awards/default.aspx">awards</category></item><item><title>Is HTML5 the UI platform to rule them all?</title><link>http://community.devexpress.com/blogs/ctodx/archive/2013/01/21/is-html5-the-ui-platform-to-rule-them-all.aspx</link><pubDate>Mon, 21 Jan 2013 08:01:00 GMT</pubDate><guid isPermaLink="false">bd716303-653c-428d-8b8a-a7d998cde032:369571</guid><dc:creator>Julian Bucknall (DevExpress)</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://community.devexpress.com/blogs/ctodx/rsscomments.aspx?PostID=369571</wfw:commentRss><comments>http://community.devexpress.com/blogs/ctodx/archive/2013/01/21/is-html5-the-ui-platform-to-rule-them-all.aspx#comments</comments><description>&lt;p&gt;Right before the Christmas season at the end of last year, a little snippet of news flew by which you may have missed: the &lt;a href="http://www.w3.org/"&gt;World Wide Web Consortium (W3C)&lt;/a&gt; &lt;a href="http://www.w3.org/2012/12/html5-cr"&gt;announced&lt;/a&gt; that it had completed (and published) the full definition of both the HTML5 and Canvas 2D specifications. “Wait, what?” I hear you say, “but my phone already supports HTML5!”&lt;/p&gt;  &lt;p&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;margin:0px 0px 5px 15px;padding-left:0px;padding-right:0px;display:inline;float:right;border-top:0px;border-right:0px;padding-top:0px;" title="HTML5 logo" alt="HTML5 logo" src="http://www.w3.org/html/logo/downloads/HTML5_Badge_128.png" align="right" border="0" /&gt;Well, strictly speaking your phone and my desktop and Joe’s tablet all support their own flavors of HTML5. The latest version of the markup language has been in development over a few years and browser manufacturers have been keeping up to a certain extent. But, before you start complaining that your browser of choice doesn’t support &lt;a href="http://www.w3.org/TR/2012/CR-html5-20121217/"&gt;the full HTML5 spec&lt;/a&gt;, consider the moving target that the browser manufacturers have had to aspire to. To a certain extent, it makes sense that the browsers would lag behind the spec: after all, you don’t want to have to discard code when the spec changes (I’ll stop for a moment right there as every programmer who’s ever made a living at this job howls with cynical laughter at that scenario).&lt;/p&gt;  &lt;p&gt;But now the spec is finalized, the browsers can catch up and everyone’s happy. Right?&lt;/p&gt;  &lt;p&gt;I wish. The problem is that modern web apps like Single Page Apps (SPA) rely on a lot more than just HTML5. In fact, you might think of HTML5 as an overall moniker for a system that looks more like a triangle, with HTML5 relegated to just a single corner. The other two corners of this UI platform triangle are &lt;a href="http://www.w3.org/Style/CSS/"&gt;CSS3&lt;/a&gt; and JavaScript (or some flavor of &lt;a href="http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-262.pdf"&gt;ECMAScript 5&lt;/a&gt;) – and if you think HTML5’s spec took some time and tracking to implement, just wait until you see the morass that is CSS3 support (vendor-specific prefixes anyone?) and ECMAScript 5 support. Nevertheless, the rigid steel triangle that is HTML5/CSS3/JS is well understood by pretty much everyone who uses it to provide app functionality: HTML5 is the content, CSS3 the presentation of that content, and JavaScript the code glue that binds the others to provide interactivity, richness, and a proper user experience.&lt;/p&gt;  &lt;p&gt;And that is another cue for some laughter among my readers: “proper user experience”. The issue here is that no longer do we just look at a website in a 960px-wide window as in days of yore. My desktop is 1920px across, my iPad is 2048px or 1536px depending on whether I hold it portrait or landscape, my Kindle Fire HD is 1280px × 800px, and my iPhone 5 is…whatever it is. With just that little lot on my desk (let alone my Surface RT) how can we talk about “proper user experience”? I must admit to being a little biased perhaps, but I kind of expect my web apps to look like they are native iOS apps on my iOS devices and like native Android apps on my Fire. And it would be great if the website had a “responsive” design as well for my desktop browser. (A responsive design for a web app is a UI that can change its rendering depending on the size of the browser window. For a discussion on why this is becoming more and more important in 2013 and beyond, see &lt;a href="http://mashable.com/2012/12/11/responsive-web-design/"&gt;this Mashable article&lt;/a&gt;.) In other words, a proper user experience no matter which device is being used.&lt;/p&gt;  &lt;p&gt;That of course leads me to our just-released DXTREME product line. Part of the HTML side of the DXTREME subscription is a client-side library that understands devices. It will switch (that’s the JavaScript part) the presentation of the app (that would be the CSS part) according to the device you are running on. The markup of the content (that’s the HTML5 part) does not have to change to support these different devices. Now, agreed, this is all in the early stages – DXTREME does an excellent job for phone-sized devices – but that doesn’t translate brilliantly yet to tablet-sized devices with their extra screen real-estate, so you have to design your tablet interface separately for the best UX. But we have big plans for the next major release to support more devices and to support more widely-varying resolutions. Nevertheless, for creating a multi-platform single-page web app that looks native on whichever devices your users have, DXTREME today is the way to go. &lt;/p&gt;  &lt;p&gt;So, in answer to my somewhat flippant question above: if you view HTML5 as the markup language, then, no, of course not. If however you view it as the overall name for the HTML5/CSS3/JS UX triangle, then it’s close, but gets even closer with DXTREME.&lt;/p&gt;&lt;img src="http://community.devexpress.com/aggbug.aspx?PostID=369571" width="1" height="1"&gt;</description><category domain="http://community.devexpress.com/blogs/ctodx/archive/tags/DXTREME/default.aspx">DXTREME</category><category domain="http://community.devexpress.com/blogs/ctodx/archive/tags/HTML5/default.aspx">HTML5</category></item><item><title>Musings on “mobile”</title><link>http://community.devexpress.com/blogs/ctodx/archive/2013/01/20/musings-on-mobile.aspx</link><pubDate>Mon, 21 Jan 2013 03:08:40 GMT</pubDate><guid isPermaLink="false">bd716303-653c-428d-8b8a-a7d998cde032:369672</guid><dc:creator>Julian Bucknall (DevExpress)</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://community.devexpress.com/blogs/ctodx/rsscomments.aspx?PostID=369672</wfw:commentRss><comments>http://community.devexpress.com/blogs/ctodx/archive/2013/01/20/musings-on-mobile.aspx#comments</comments><description>&lt;p&gt;&lt;a href="http://community.devexpress.com/blogs/ctodx/iPad-and-Brydge_5514FAAA.jpg"&gt;&lt;img style="background-image:none;border-right-width:0px;margin:0px 0px 0px 15px;padding-left:0px;padding-right:0px;display:inline;float:right;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="iPad and Brydge" border="0" alt="iPad and Brydge" align="right" src="http://community.devexpress.com/blogs/ctodx/iPad-and-Brydge_thumb_0F8FFA7F.jpg" width="240" height="160" /&gt;&lt;/a&gt;I look at my desk. There’s my laptop, driving not only its own screen but two external ones. There’s an iPad, third generation, &lt;a href="http://blog.boyet.com/blog/blog/kickstarter-the-brydge-and-the-surface-rt/"&gt;affixed to a third-party keyboard&lt;/a&gt;. As I mentioned on my own blog, there’s a Kindle Fire HD propped in the stand on a &lt;a href="http://blog.boyet.com/blog/blog/kindle-fire-hd-with-the-think-outside-stowaway-bluetooth-keyboard/"&gt;foldable Bluetooth keyboard&lt;/a&gt;. To my left is a &lt;a href="http://community.devexpress.com/blogs/ctodx/Adapter-plus-iHome-dock_08048B12.jpg"&gt;&lt;img style="background-image:none;border-right-width:0px;margin:10px 25px 10px 0px;padding-left:0px;padding-right:0px;display:inline;float:left;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="Adapter plus iHome dock" border="0" alt="Adapter plus iHome dock" align="left" src="http://community.devexpress.com/blogs/ctodx/Adapter-plus-iHome-dock_thumb_2D21D57E.jpg" width="240" height="160" /&gt;&lt;/a&gt;&lt;a href="http://blog.boyet.com/blog/blog/apple-rsquo-s-lightning-to-30-pin-adapter/"&gt;cheapo docking station slash speaker pair&lt;/a&gt; that is charging my iPhone. Behind me on the floor, propped against the bookcase (why do I still have physical books when I have three Kindles?) is my Surface RT that I hardly use. Next to it is my old Kindle Fire, now relegated to my tech junk pile of history along with my previous laptop which I use for my Windows 8 testing. The only reason I can’t chuck my still-perfectly-functional yet-I-no-longer-use-it desktop on the same pile is that it’s the base for my old CD player – yes, I’ve been known to play the odd CD.&lt;/p&gt;  &lt;p&gt;Sure, I’m a geek. I have a gazillion devices. This isn’t about that. It’s more about the variety of devices, the variety of provenances, the variety of OSes. &lt;/p&gt;  &lt;p&gt;A few more data points on my curve before I get to my thesis:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;My wife’s best friend has just bought (as a Christmas present from Santa) a &lt;a href="http://www.nabitablet.com/"&gt;Nabi tablet&lt;/a&gt; for her daughter, a feisty three year old, because she was fed up with the little darling monopolizing her iPad playing with paint apps. &lt;/li&gt;    &lt;li&gt;Although Amazon don’t release Kindle sales data, all indications seem to point to the Kindle Fire HD being a big seller. Perhaps even better than Google’s Nexus 7? The iPad mini seems to be a bestseller.&lt;/li&gt;    &lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Project_Glass"&gt;Project Glass by Google&lt;/a&gt;. Yeah, it’s a concept device, but how close is it to release? This year? 2014? &lt;/li&gt;    &lt;li&gt;I’m not a TV person (I don’t own one) but all I see at the moment is companies jostling with their TV devices (Apple, Google, Microsoft, etc, etc). And why should there be a TV device anyway? Can’t a tablet/laptop do the work? &lt;/li&gt;    &lt;li&gt;In-car infotainment systems were all the rage at CES, how long before they’re in every car we can buy? General Motors and Ford seem to be leading the pack since they allow the linking of a smartphone to the device (and therefore the downloading of traffic data, say, for the device), but how soon before the car’s system is itself a “phone” and has its own Internet connection? Yeah, we can laugh now about the notion of downloading apps for the car, but it’s going to happen. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;a href="http://community.devexpress.com/blogs/ctodx/Kindle-Fire-HD-7-with-Stowaway-keyboard_77A91358.jpg"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;margin:10px 25px 10px 0px;padding-left:0px;padding-right:0px;display:inline;float:left;border-top:0px;border-right:0px;padding-top:0px;" title="Kindle Fire HD 7 with Stowaway keyboard" border="0" alt="Kindle Fire HD 7 with Stowaway keyboard" align="left" src="http://community.devexpress.com/blogs/ctodx/Kindle-Fire-HD-7-with-Stowaway-keyboard_thumb_7D1783FC.jpg" width="240" height="160" /&gt;&lt;/a&gt;My point then is this: in this world of a gazillion different devices with different screen sizes and resolutions and input methods (keyboard, touch, speech), how are you going to target the consumer? By writing iOS apps and assuming that the mobile market is just the iPhone and iPad? Or maybe that Android is the answer? Good luck with that; that’s not a plan of action for understanding the future, it’s painting yourself into a corner.&lt;/p&gt;  &lt;p&gt;My thought here is that it’s way too late to just concentrate on one OS, on one device. We had that possibility in the past but it’s now gone, dumped with my old computing devices on my tech junk pile of history. Our customers are using god-only-knows-what devices to access information about the world, about us. They may be mobile as we currently understand “mobile” but they may be something else. The only way we can easily reach (for some reasonable value of “easy”) our customers in the future is to target the devices they are using, that they are thinking of using, that they will use. And that means HTML5/CSS3/JavaScript. It’s the only pan-device user interface technology we have. &lt;/p&gt;  &lt;p&gt;Not only that – that was the engineering view, if you like – it also means that we have to get better at responsive web design. Our pages of data and information and content have to reflow automatically to suit the device; what looks good on an iPad will look disgustingly awful on those future Google glasses. We have to get better at data visualizations: a small screen needs different visualizations than a large one. Touch requires different scenarios and technologies than speech.&lt;/p&gt;  &lt;p&gt;I feel we’re at the top of a cliff with a hang glider strapped to our back, with a wonderful countryside vista spread out in front of us. There’s a single simple step to make but – oh, the possibilities – how long will we fly, where will we land?&lt;/p&gt; [A quick note: this is me pondering the future, and does not necessarily jell with DevExpress’ future direction. Or maybe this is more of a curve in 11-dimensional space, and several dimension dot products coincide with DevExpress’ 11-dimensional future plans. Who knows? I’m only the CTO here.]   &lt;img src="http://community.devexpress.com/aggbug.aspx?PostID=369672" width="1" height="1"&gt;</description><category domain="http://community.devexpress.com/blogs/ctodx/archive/tags/HTML5/default.aspx">HTML5</category><category domain="http://community.devexpress.com/blogs/ctodx/archive/tags/JavaScript/default.aspx">JavaScript</category></item><item><title>Visual Studio Magazine Readers Choice Awards for the win!</title><link>http://community.devexpress.com/blogs/ctodx/archive/2012/11/12/visual-studio-magazine-readers-choice-awards-for-the-win.aspx</link><pubDate>Mon, 12 Nov 2012 21:10:20 GMT</pubDate><guid isPermaLink="false">bd716303-653c-428d-8b8a-a7d998cde032:369293</guid><dc:creator>Julian Bucknall (DevExpress)</dc:creator><slash:comments>6</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://community.devexpress.com/blogs/ctodx/rsscomments.aspx?PostID=369293</wfw:commentRss><comments>http://community.devexpress.com/blogs/ctodx/archive/2012/11/12/visual-studio-magazine-readers-choice-awards-for-the-win.aspx#comments</comments><description>&lt;p&gt;Visual Studio Magazine has just announced its &lt;a href="http://visualstudiomagazine.com/articles/2012/11/01/readers-choice-winners.aspx"&gt;2012 Readers Choice Awards&lt;/a&gt; and DevExpress is well represented among the winners with eight Gold awards and three Silvers:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;strong&gt;Chart, Gauge &amp;amp; Graph Components – &lt;em&gt;GOLD&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;    &lt;p&gt;XtraCharts Suite&lt;/p&gt;    &lt;p&gt;&lt;strong&gt;Component Suite: Desktop – &lt;em&gt;GOLD&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;    &lt;p&gt;DXperience Enterprise&lt;/p&gt;    &lt;p&gt;&lt;strong&gt;Component Suite: Web – &lt;em&gt;SILVER&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;    &lt;p&gt;DXperience ASP.NET Edition &lt;/p&gt;    &lt;p&gt;&lt;strong&gt;Databases, Data Development &amp;amp; Modeling – &lt;em&gt;SILVER&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;    &lt;p&gt;eXpress Persistent Objects (XPO)&lt;/p&gt;    &lt;p&gt;&lt;strong&gt;General Development Tools (Includes IDEs) – &lt;em&gt;SILVER&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;    &lt;p&gt;CodeRush &lt;/p&gt;    &lt;p&gt;&lt;strong&gt;Grid &amp;amp; Spreadsheet Components – &lt;em&gt;GOLD&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;    &lt;p&gt;XtraGrid Suite &lt;/p&gt;    &lt;p&gt;&lt;strong&gt;PDF &amp;amp; Print/Preview – &lt;em&gt;GOLD&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;    &lt;p&gt;XtraPrinting Library&lt;/p&gt;    &lt;p&gt;&lt;strong&gt;Reporting, Data Analysis &amp;amp; Visualization – &lt;em&gt;GOLD&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;    &lt;p&gt;XtraReports Suite &lt;/p&gt;    &lt;p&gt;&lt;strong&gt;Software Design, Frameworks &amp;amp; Modeling Tools – &lt;em&gt;GOLD&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;    &lt;p&gt;eXpressApp Framework (XAF)&lt;/p&gt;    &lt;p&gt;&lt;strong&gt;Text, OCR, Scanning &amp;amp; Barcode Components – &lt;em&gt;GOLD&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;    &lt;p&gt;DevExpress Rich Text Editor&lt;/p&gt;    &lt;p&gt;&lt;strong&gt;UI, Toolbar, Menu &amp;amp; Ribbon Components – &lt;em&gt;GOLD&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;    &lt;p&gt;XtraBars Suite&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Now winning such awards always evoke good feelings, of that there is no doubt. But in this case, these awards were the results of votes by the readers of the magazine, which magnifies the sentiment. In other words it was our customers, people like yourself, who took the time to mark the ballot in our favor. Thank you to everyone who did so, you are the best customers a company could wish for!&lt;/p&gt;  &lt;p&gt;Not only that, but I notice that some of the products that gained awards have done so last year too, And the year before that. Wow, we must be really on the right track if these products keep on winning awards year after year. Rest assured though that we shall not rest on these particular laurels: we are frantically (er, &lt;em&gt;nimbly&lt;/em&gt;, or perhaps &lt;em&gt;agilely)&lt;/em&gt; preparing version 12.2 of DXperience. Remember we’ve already announced the release date – December 3, 2012 – so our feet are becoming toasty from being so close to the fire!&lt;/p&gt;  &lt;p&gt;Let’s see what develops…&lt;/p&gt;&lt;img src="http://community.devexpress.com/aggbug.aspx?PostID=369293" width="1" height="1"&gt;</description><category domain="http://community.devexpress.com/blogs/ctodx/archive/tags/awards/default.aspx">awards</category></item><item><title>The first batch of Surfaces arrive for DevExpress</title><link>http://community.devexpress.com/blogs/ctodx/archive/2012/10/26/the-first-batch-of-surfaces-arrive-for-devexpress.aspx</link><pubDate>Fri, 26 Oct 2012 21:36:48 GMT</pubDate><guid isPermaLink="false">bd716303-653c-428d-8b8a-a7d998cde032:369216</guid><dc:creator>Julian Bucknall (DevExpress)</dc:creator><slash:comments>5</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://community.devexpress.com/blogs/ctodx/rsscomments.aspx?PostID=369216</wfw:commentRss><comments>http://community.devexpress.com/blogs/ctodx/archive/2012/10/26/the-first-batch-of-surfaces-arrive-for-devexpress.aspx#comments</comments><description>&lt;p&gt;Our favorite delivery guy of the day turned up this morning with some boxes: our first batch of &lt;a href="http://www.microsoft.com/surface/en-US"&gt;Microsoft Surface&lt;/a&gt; tablets. We sat him down and fed him cookies to thank him for being so quick, while we opened up the boxes and stacked the Surfaces for the Photo of the Day:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://community.devexpress.com/blogs/ctodx/SurfacesGalore_4046F6E8.jpg"&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="Stack of Microsoft Surfaces in the DevExpress conference room" border="0" alt="Stack of Microsoft Surfaces in the DevExpress conference room" src="http://community.devexpress.com/blogs/ctodx/SurfacesGalore_thumb_2238C327.jpg" width="240" height="180" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;It’s still too soon for an in-depth review, but we have been trying it out. The screen is very responsive to touch and everything is very fluid. We’ve played around a bit with the included apps, including the Office RT Preview that’s pre-loaded, and we’re impressed so far. The Touch Cover keyboard is great (and keeps up for at least my typing skills) and it’s certainly possible to hold the Surface upside down by the selfsame cover (it doesn’t come off). The power connection is not very “magnetic” and will pop out if you are not careful though. The kickstand is genius.&lt;/p&gt;  &lt;p&gt;Seth and I both have one and we’ll will be happy to show off &lt;a href="http://devexpress.com/Subscriptions/DXTREME/"&gt;DXTREME&lt;/a&gt; on it at our booth at &lt;a href="http://www.buildwindows.com/"&gt;//build/&lt;/a&gt; next week. Here’s an initial image showing one of our demos running on the device (and, yes, I wish I had a better camera):&lt;/p&gt;  &lt;p&gt;&lt;a href="http://community.devexpress.com/blogs/ctodx/SurfaceDemo_6B7B6822.jpg"&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="DevExpress personal finance demo app running on Microsoft Surface" border="0" alt="DevExpress personal finance demo app running on Microsoft Surface" src="http://community.devexpress.com/blogs/ctodx/SurfaceDemo_thumb_4DD96756.jpg" width="240" height="159" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;If you are at //build/ do come on over to the booth and say hi and see the demo for real.&lt;/p&gt;  &lt;p&gt;Now to watch the others fight over the remaining Surfaces… &lt;/p&gt;&lt;img src="http://community.devexpress.com/aggbug.aspx?PostID=369216" width="1" height="1"&gt;</description><category domain="http://community.devexpress.com/blogs/ctodx/archive/tags/Surface/default.aspx">Surface</category><category domain="http://community.devexpress.com/blogs/ctodx/archive/tags/WinRT/default.aspx">WinRT</category></item><item><title>Presenting the Windows 8 XAML controls in DXTREME</title><link>http://community.devexpress.com/blogs/ctodx/archive/2012/10/09/presenting-the-windows-8-xaml-controls-in-dxtreme.aspx</link><pubDate>Tue, 09 Oct 2012 11:01:00 GMT</pubDate><guid isPermaLink="false">bd716303-653c-428d-8b8a-a7d998cde032:369181</guid><dc:creator>Julian Bucknall (DevExpress)</dc:creator><slash:comments>5</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://community.devexpress.com/blogs/ctodx/rsscomments.aspx?PostID=369181</wfw:commentRss><comments>http://community.devexpress.com/blogs/ctodx/archive/2012/10/09/presenting-the-windows-8-xaml-controls-in-dxtreme.aspx#comments</comments><description>&lt;p&gt;It’s a funny old world. It seems only like yesterday we had a WinForms suite of controls and an ASP.NET suite of controls for .NET and that was about it. (My first commercial use of DevExpress controls was led by the old original version 1 ASPxGrid mumblety-mumble years ago, when men were men, women were women, and developers hand-crafted data access layers before lunch.) I then joined DevExpress and it seems we suddenly had a veritable Big Bang of controls and platforms (not all my doing by any means!). &lt;/p&gt;  &lt;p&gt;There was WPF and Silverlight – quickly realizing how much they had in common, so we did some refactorings and created a common XAML library –&amp;#160; and of course ASP.NET MVC.&lt;/p&gt;  &lt;p&gt;We’ve now entered another phase of platforms, a secondary Big Bang if you like: the mobile platforms, led of course by iOS and Android, with Windows 8 and Windows Phone 8 playing catch-up. Way back in November 2010, I wrote a &lt;a href="http://community.devexpress.com/blogs/ctodx/archive/2010/11/22/why-lock-ourselves-in-a-silo.aspx"&gt;blog post about silos&lt;/a&gt; and about how it made sense to me to target the browser for these mobile devices rather than locking ourselves into writing controls for a particular operating system. Fast forward almost two years and we announced DXTREME, a multichannel, multi-platform suite that provides an innovative solution to developers being asked to create applications that span a multitude of devices and platforms, from Windows 8 tablets to the iPad and to smartphones like the iPhone and Android devices. It’s in preview mode at the moment, with a publish date of December 3.&lt;/p&gt;  &lt;p&gt;We’ve been talking an awful lot about the HTML5/CSS3/JavaScript aspects of DXTREME (the ability, if you like, to expand beyond the silo of a single OS), but there’s another important part: the WinRT XAML support. Yes, I’ll agree this is a silo, but this particular silo makes a lot of sense. Go back a moment: remember we did a ton of refactoring work to produce a common XAML library for WPF and Silverlight? Well it turns out that, with very little work, we can make this a common library for a set of WinRT XAML controls as well. &lt;/p&gt;  &lt;p&gt;And that is what we have done in DXTREME. Let me cover what we have.&lt;/p&gt;  &lt;h2&gt;Free Download&lt;/h2&gt;  &lt;p&gt;First important thing to realize is that we’ve provided the DXTREME Preview for everyone. You can download the &lt;a href="http://www.devexpress.com/Subscriptions/DXTREME/Try.xml"&gt;free trial here&lt;/a&gt;. You will be presented with a registration page:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://community.devexpress.com/blogs/ctodx/DXTREME-Trial-Download_41545F99.png"&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="DXTREME Trial Download page" border="0" alt="DXTREME Trial Download page" src="http://community.devexpress.com/blogs/ctodx/DXTREME-Trial-Download_thumb_39C8F02C.png" width="240" height="141" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;On this page you’ll enter your DevExpress site credentials, soon after which you&amp;#39;ll get an e-mail with a link for downloading your trial copy of DXTREME. (If you have any questions on this stage, write to &lt;a href="mailto:eval@devexpress.com"&gt;eval@devexpress.com&lt;/a&gt; and we&amp;#39;ll be happy to help you.)&lt;/p&gt;  &lt;p&gt;Once you have downloaded the DXTREME-ENTERPRISE-(Preview)-12.2.0.zip file, you&amp;#39;ll note that it comprises two setup programs:&lt;/p&gt;  &lt;li&gt;DXTREME ENTERPRISE (Preview)-12.2.0.exe – this installs the DXTREME HTML5 support, and &lt;/li&gt;  &lt;li&gt;Windows 8 XAML (Preview)-12.2.0.exe – this installs the DXTREME Windows 8 XAML controls    &lt;p&gt;&lt;b&gt;Note&lt;/b&gt;: In order to install the Windows 8 controls, you must be running Visual Studio 2012 on Windows 8. WinRT applications can only be created on Windows 8 using Visual Studio 2012. &lt;/p&gt;    &lt;h2&gt;What&amp;#39;s included?&lt;/h2&gt;    &lt;p&gt;And now the meat of the preview and this post. The DXTREME Windows 8 XAML suite includes a set of user interface (UI) controls &lt;em&gt;and&lt;/em&gt; an MVVM framework. &lt;/p&gt;    &lt;h3&gt;Data Visualization Controls&lt;/h3&gt;    &lt;p&gt;Given the primary role Windows 8 is going to take with tablets, it makes sense to talk about data visualization first; possibly the more important set of controls for such mobile devices.&lt;/p&gt;    &lt;h4&gt;&lt;b&gt;&lt;a href="http://community.devexpress.com/blogs/ctodx/Chart-Gauge-Map-Visualization-Controls_472F0332.png"&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;float:right;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="WinRT Data Visualization Controls (charts, guages, maps)" border="0" alt="WinRT Data Visualization Controls (charts, guages, maps)" align="right" src="http://community.devexpress.com/blogs/ctodx/Chart-Gauge-Map-Visualization-Controls_thumb_0CD38D51.png" width="240" height="156" /&gt;&lt;/a&gt;Chart Controls &lt;/b&gt;&lt;/h4&gt;    &lt;p&gt;We have re-designed our chart controls to take full advantage of the Windows 8 XAML platform. The new controls support 18 chart types and use Direct2D for blazing fast drawing. &lt;/p&gt;    &lt;h4&gt;&lt;b&gt;Gauge Controls &lt;/b&gt;&lt;/h4&gt;    &lt;p&gt;Whether you need to build a digital dashboard or animate your application&amp;#39;s Live Tile with a circular indicator - we have the gauge controls for you. Written natively for Windows 8, they support touch, animation and interactivity. &lt;/p&gt;    &lt;h4&gt;&lt;b&gt;Map Control &lt;/b&gt;&lt;/h4&gt;    &lt;p&gt;The DevExpress Map Control can deliver either raster maps from Microsoft Bing Maps and OpenStreetMap services, or vector maps in Shapefile and KML formats. &lt;/p&gt;    &lt;h3&gt;Grid and Data Editor Controls&lt;/h3&gt;    &lt;p&gt;And now for the basic controls for creating business applications. &lt;/p&gt;    &lt;h4&gt;&lt;b&gt;&lt;a href="http://community.devexpress.com/blogs/ctodx/winrt-grid-editors-controls_2C163424.png"&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;float:right;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="WinRT grid and editor controls" border="0" alt="WinRT grid and editor controls" align="right" src="http://community.devexpress.com/blogs/ctodx/winrt-grid-editors-controls_thumb_241E91C2.png" width="240" height="156" /&gt;&lt;/a&gt;Data Grid Control &lt;/b&gt;&lt;/h4&gt;    &lt;p&gt;Although not part of the preview, we are in the process of building a very fast and lightweight grid control – after all we are well known for our grids. The initial release will provide the essential data shaping and analysis features (sorting, totals, etc), together with an intuitive and smooth touch-enabled UI. &lt;/p&gt;    &lt;h4&gt;&lt;b&gt;Data Editors Library &lt;/b&gt;&lt;/h4&gt;    &lt;p&gt;In developing our Editors library, our primary focus was usability in data entry. Validation support also plays an important role here too. We are delivering full support for numeric, date-time and regular expression masks. In addition to the standard keyboard entry, we are also leveraging touch capabilities by including editors like Date Picker which allows you to easily select dates using a touch-enabled UI. &lt;/p&gt;    &lt;h3&gt;Application Layout&lt;/h3&gt;    &lt;p&gt;Without a doubt one of the more important aspects of a tablet experience is a good, open, visually relaxing layout that helps get the user’s work done.&lt;/p&gt;    &lt;h4&gt;&lt;b&gt;&lt;a href="http://community.devexpress.com/blogs/ctodx/Windows-Runtime-Layout-Controls_7C781597.png"&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;float:right;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="WinRT Layout Controls" border="0" alt="WinRT Layout Controls" align="right" src="http://community.devexpress.com/blogs/ctodx/Windows-Runtime-Layout-Controls_thumb_6956E8EB.png" width="240" height="156" /&gt;&lt;/a&gt;Application-Level Layout and Navigation &lt;/b&gt;&lt;/h4&gt;    &lt;p&gt;For DXTREME we are building a set of controls allowing you to manage application layout and navigation at a higher level. You can easily specify what kinds of pages are to be displayed and how users navigate them. In addition to building your application&amp;#39;s navigation structure, our controls automatically preserve application state when the application is suspended and restored, fully integrate with our own MVVM Framework, and much more. &lt;/p&gt;    &lt;h4&gt;&lt;b&gt;Page-Level Layout Management &lt;/b&gt;&lt;/h4&gt;    &lt;p&gt;This lower-level layout control helps you&amp;#160; easily create data entry forms of any complexity. The control automatically arranges controls per Windows UI Guidelines and makes sure that proper adjustments are applied when changing your device orientation. &lt;/p&gt;    &lt;h3&gt;DevExpress MVVM Framework&lt;/h3&gt;    &lt;p&gt;In addition to the controls library in DXTREME I just described, we will also ship a new MVVM framework that helps you build typical business applications much faster. In order to be accepted by the Windows 8 Store, applications have a very standard UI. We have therefore implemented all of the frequently needed Windows 8 features in our framework in order that you can focus on your business requirements. The framework natively integrates with our controls, such as the Layout Management controls mentioned above, so that your application can automatically respond to application state changes. &lt;/p&gt;    &lt;p&gt;And for the more advanced developer, the DevExpress MVVM Framework for WinRT will include a number of essential features, from Value Converters and an ICommand implementation to a standard means of application navigation using keyboard, mouse, and touch. &lt;/p&gt;    &lt;h2&gt;Getting Started&lt;/h2&gt;    &lt;p&gt;Of course, all this would be for naught if we didn’t provide some help in getting you started in writing Windows 8 XAML applications. Firstly we have some &lt;a href="http://help.devexpress.com/#XAML/CustomDocument12019"&gt;preliminary documentation online&lt;/a&gt;. In this help documentation, you can find several topics that will assist you in trying out our controls as well as the description of the APIs for those controls. Code samples to further assist you are being added regularly.&lt;/p&gt;    &lt;p&gt;Since the vast majority of our customers will be using Visual Studio to develop WinRT applications, we’ve added some templates to smooth the way. The first couple are project-level File|New templates that help you in getting started with a new Windows 8 application:&lt;/p&gt;    &lt;p&gt;&lt;a href="http://community.devexpress.com/blogs/ctodx/Visual-Studio-12-Integration_56A1EF34.png"&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="Visual Studio 12 Integration project templates" border="0" alt="Visual Studio 12 Integration project templates" src="http://community.devexpress.com/blogs/ctodx/Visual-Studio-12-Integration_thumb_75E49607.png" width="240" height="165" /&gt;&lt;/a&gt;&lt;/p&gt;    &lt;p&gt;The two are:&lt;/p&gt;    &lt;ul&gt;     &lt;li&gt;&lt;b&gt;DXTREME Blank App&lt;/b&gt;, which creates an app with an empty DevExpress page. This template is built on top of our MVVM application framework and radically reduces the amount of code behind in your application. &lt;/li&gt;      &lt;li&gt;&lt;b&gt;DXTREME Grid App&lt;/b&gt;, which provides Windows UI Style navigation for a two-level object hierarchy. A hub page, section page and detail page are generated. This template natively supports MVVM and is built on top of our application framework. &lt;/li&gt;   &lt;/ul&gt;    &lt;p&gt;Then we have four new page-level templates to assist you in solving common tasks:&lt;/p&gt;    &lt;p&gt;&lt;a href="http://community.devexpress.com/blogs/ctodx/Visual-Studio-12-Integration-2_35424998.png"&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="Visual Studio 12 Integration page templates" border="0" alt="Visual Studio 12 Integration page templates" src="http://community.devexpress.com/blogs/ctodx/Visual-Studio-12-Integration-2_thumb_5FAE7AB5.png" width="240" height="126" /&gt;&lt;/a&gt;&lt;/p&gt;    &lt;p&gt;The four are:&lt;/p&gt;    &lt;ul&gt;     &lt;li&gt;&lt;b&gt;DXTREME Blank Page&lt;/b&gt;, which creates an empty DevExpress page with the use of our MVVM application framework; &lt;/li&gt;      &lt;li&gt;&lt;b&gt;DXTREME Login Page&lt;/b&gt;, which creates a typical login page; &lt;/li&gt;      &lt;li&gt;&lt;b&gt;DXTREME Horizontal Tabbed View &lt;/b&gt;and&lt;b&gt; DXTREME Vertical Tabbed View&lt;/b&gt;, which create pages with tabs for different layout views and which automatically support layout management (for example, Filled, Snapped, etc.). &lt;/li&gt;   &lt;/ul&gt;    &lt;h2&gt;Summary&lt;/h2&gt;    &lt;p&gt;With the DXTREME Preview, we’ve shown what we’re working on in the mobile space well before we launch. It’s all about a multiplatform, multi-channel experience, and a large part of that is our controls for Windows 8. We’ve made a solid start and you can expect rapid additions to the DXTREME package throughout 2013. Until then, download the Preview and try things out. Let’s see what develops.&lt;/p&gt;     &lt;/li&gt;&lt;img src="http://community.devexpress.com/aggbug.aspx?PostID=369181" width="1" height="1"&gt;</description><category domain="http://community.devexpress.com/blogs/ctodx/archive/tags/XAML/default.aspx">XAML</category><category domain="http://community.devexpress.com/blogs/ctodx/archive/tags/DXTREME/default.aspx">DXTREME</category><category domain="http://community.devexpress.com/blogs/ctodx/archive/tags/WinRT/default.aspx">WinRT</category><category domain="http://community.devexpress.com/blogs/ctodx/archive/tags/Win8/default.aspx">Win8</category></item></channel></rss>