<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:copyright="http://blogs.law.harvard.edu/tech/rss" xmlns:image="http://purl.org/rss/1.0/modules/image/">
    <channel>
        <title>JQuery</title>
        <link>http://www.mostlylucid.net/category/41.aspx</link>
        <description>JQuery</description>
        <language>en-US</language>
        <copyright>Scott Galloway</copyright>
        <generator>Subtext Version 2.1.0.5</generator>
        <item>
            <title>In a new world, my new job and coming to terms with ExtJs</title>
            <link>http://mostlylucid.net/archive/2011/01/24/in-a-new-world-my-new-job-and-coming-to.aspx</link>
            <description>&lt;p&gt;After over a year away from them, I’m busy at my new job in Glasgow with Dell (you know, they make the big black computers) as a Senior Dev Lead (I think, titles are still a bit mixed up). Loving being back working with a team; though I’ve spent most of my time sniping from the sidelines…the beginnings of my influencing the future direction our application takes. This is a bit of a departure for me, I’m used to developing very high scale and performance apps for internet use, but this one has a more limited audience (so far!) . The app I’m working on is the one used by the Dell factory and corporate customers for defining the ‘images’ written on to machines at the factory…and new machines in IT departments. So before you ask…no I don’t write the crapware, but our app is used to write it to the machines (sorry!).&lt;/p&gt;

&lt;p&gt;Anyway, the app I’m working on is pretty interesting, very MS based, uses an SOA architecture and &lt;a href="http://www.sencha.com/"&gt;ExtJS&lt;/a&gt; as a front end. Kind of uses MVC 2 (just a very thin layer used to provide JSON through &lt;a href="http://www.sencha.com/forum/showthread.php?72245-Ext.Direct-for-ASP.NET-MVC"&gt;ExtJs.Direct.MVC&lt;/a&gt;). 

  &lt;br /&gt;&lt;a href="http://www.sencha.com/"&gt;ExtJs&lt;/a&gt; is an interesting beast…essentially and entirely client side UI framework which bumps all it’s templates and code down to the browser in one big file (we use script combining and compression). From then on, you app UI is instantiated entirely on the client…for an old jQuery / Server-side coder like me this is a bit shocking. I understand the theory behind it…in essence all you require from the server after the first load is the JSON which represents the data each ‘page’ requires (though really each ‘operation’). 

  &lt;br /&gt;My biggest issue with this approach is: Javascript is a sucky language to build UI with. There, I’ve said it! Now don’t get me wrong, I love Javascript, books like those I recommend below really have over the past year or two really rekindled my love of Javascript (along of course with the superlative &lt;a href="http://www.jquery.org"&gt;jQuery&lt;/a&gt;). &lt;/p&gt;

&lt;div&gt;&lt;script charset="utf-8" type="text/javascript" src="http://ws.amazon.co.uk/widgets/q?ServiceVersion=20070822&amp;amp;MarketPlace=GB&amp;amp;ID=V20070822/GB/mostlylucid-21/8001/1a200c28-a2a6-411b-bd37-b1f758cfad23"&gt;&lt;/script&gt;&lt;noscript&gt;&lt;a href="http://ws.amazon.co.uk/widgets/q?ServiceVersion=20070822&amp;amp;MarketPlace=GB&amp;amp;ID=V20070822%2FGB%2Fmostlylucid-21%2F8001%2F1a200c28-a2a6-411b-bd37-b1f758cfad23&amp;amp;Operation=NoScript"&gt;Amazon.co.uk Widgets&lt;/a&gt; &lt;/noscript&gt;&lt;/div&gt;

&lt;p&gt;My main issue with ExtJS is that is defines the templates it uses entirely in code…and any customization to those templates (size, contents etc…) is also performed using Client-Side code. Looking at the codebase of a reasonably large application like our, I can see well over 200 individual JS files which typically map to operations. Frankly, it’s a bit of a pain to read this stuff and update it. Validation logic, text strings containing content etc…are all encapsulated in these files along with operation –&amp;gt; operation flow information.&lt;/p&gt;

&lt;p&gt;Anyway, unfortunately I’ve joined the team when we’re just about to do our first release…so it’s WAY too late to change (and frankly we have a huge investment in this). My preference is to write UI using server side code to generate HTML (with Razor pages of course!) and load initial data in to the UI using this server side code (whether through partial views and jQuery or just direct rendering to the browser). AJAX is awesome and when used properly can give a very responsive UI…for example, when saving data from a page back to the server, I would always use AJAX these days and give validation feedback direct to the page. Well anyway, enough of the rant. There’s lots of places where I *can* make improvements…and hey, it’s a good job right!&lt;/p&gt;

&lt;p&gt;Sometimes, no matter how much you want to change stuff you just have to live with it! &lt;/p&gt;&lt;img src="http://mostlylucid.net/aggbug/1344.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Scott Galloway</dc:creator>
            <guid>http://mostlylucid.net/archive/2011/01/24/in-a-new-world-my-new-job-and-coming-to.aspx</guid>
            <pubDate>Mon, 24 Jan 2011 09:57:05 GMT</pubDate>
            <comments>http://mostlylucid.net/archive/2011/01/24/in-a-new-world-my-new-job-and-coming-to.aspx#feedback</comments>
            <wfw:commentRss>http://mostlylucid.net/comments/commentRss/1344.aspx</wfw:commentRss>
        </item>
        <item>
            <title>Back to posting this weekend&amp;hellip;</title>
            <link>http://mostlylucid.net/archive/2010/08/27/back-to-posting-this-weekendhellip.aspx</link>
            <description>&lt;p&gt;Promising to do this for a while. I only really like to post about new stuff..others can cover old stuff in detail. Right now I’m learning:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://www.google.co.uk/url?sa=t&amp;amp;source=web&amp;amp;cd=2&amp;amp;ved=0CB4QFjAB&amp;amp;url=http%3A%2F%2Fwww.fubumvc.com%2F&amp;amp;ei=skd4TNOrMsbT4waI8ZmxBg&amp;amp;usg=AFQjCNHTVxZi4A5l5X2CynZUg65Psg-MkQ"&gt;FubuMVC&lt;/a&gt;: a kind of super flexible, advanced version of an ASP.NET MVC framework.  Has proven challenging to learn but really worthwhile.&lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.ravendb.net/"&gt;RavenDB&lt;/a&gt;: fantastic, document oriented database. Fits in really well with web development but has some unique challenges.&lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.jquery.org"&gt;JQuery&lt;/a&gt;: far from new, but building lovely UIs with it, REALLY improving my general Javascript dev skills (a lot thanks to &lt;a href="http://www.amazon.co.uk/JavaScript-Good-Parts-Douglas-Crockford/dp/0596517742"&gt;this book&lt;/a&gt;).&lt;/li&gt;    &lt;li&gt;&lt;a href="http://sparkviewengine.com/"&gt;Spark View Engine&lt;/a&gt;:  an alternative view engine (was for ASP.NET MVC but my boss &lt;a href="http://www.twitter.com/robertthegrey"&gt;@robertthegrey&lt;/a&gt; has written a brilliant FubuMVC engine for it too!).&lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.dotnetopenauth.net/"&gt;Dotnetopenauth&lt;/a&gt; : Open Id authentication library for .NET  (&lt;a href="http://goo.gl/4qlL"&gt;this article&lt;/a&gt; was invaluable for simplifying the whole experience for me…)&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;In all, I feel like the technologies above really hit the sweet spot for me for web development for the next little while. So, I’ll write about them all. As usual, not tutorials, more hints, tips and guidelines which may help you avoid some of the learning curve I’ve had recently…&lt;/p&gt;  &lt;p&gt;Until then here’s some lovely fish to tide you over (flash so you have to visit the site to see them :)).&lt;/p&gt;  &lt;p&gt;&lt;object type="application/x-shockwave-flash" style="outline:none;" data="http://hosting.gmodules.com/ig/gadgets/file/112581010116074801021/fish.swf?up_fishColor6=F45540&amp;amp;up_fishColor7=F45540&amp;amp;up_numFish=5&amp;amp;up_fishName=Fish&amp;amp;up_fishColor8=F45540&amp;amp;up_fishColor2=F4B540&amp;amp;up_foodColor=FCB347&amp;amp;up_fishColor3=4043F4&amp;amp;up_backgroundColor=F0F7FF&amp;amp;up_fishColor10=F45540&amp;amp;up_fishColor1=000000&amp;amp;up_backgroundImage=http://&amp;amp;up_fishColor4=46F440&amp;amp;up_fishColor9=F45540&amp;amp;up_fishColor5=F45540&amp;amp;" width="300" height="200"&gt;&lt;param name="movie" value="http://hosting.gmodules.com/ig/gadgets/file/112581010116074801021/fish.swf?up_fishColor6=F45540&amp;amp;up_fishColor7=F45540&amp;amp;up_numFish=5&amp;amp;up_fishName=Fish&amp;amp;up_fishColor8=F45540&amp;amp;up_fishColor2=F4B540&amp;amp;up_foodColor=FCB347&amp;amp;up_fishColor3=4043F4&amp;amp;up_backgroundColor=F0F7FF&amp;amp;up_fishColor10=F45540&amp;amp;up_fishColor1=000000&amp;amp;up_backgroundImage=http://&amp;amp;up_fishColor4=46F440&amp;amp;up_fishColor9=F45540&amp;amp;up_fishColor5=F45540&amp;amp;" /&gt;&lt;param name="AllowScriptAccess" value="always" /&gt;&lt;param name="wmode" value="opaque" /&gt;&lt;param name="scale" value="noscale" /&gt;&lt;param name="salign" value="tl" /&gt;&lt;/object&gt;&lt;/p&gt;&lt;img src="http://mostlylucid.net/aggbug/1338.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Scott Galloway</dc:creator>
            <guid>http://mostlylucid.net/archive/2010/08/27/back-to-posting-this-weekendhellip.aspx</guid>
            <pubDate>Fri, 27 Aug 2010 23:26:43 GMT</pubDate>
            <comments>http://mostlylucid.net/archive/2010/08/27/back-to-posting-this-weekendhellip.aspx#feedback</comments>
            <wfw:commentRss>http://mostlylucid.net/comments/commentRss/1338.aspx</wfw:commentRss>
        </item>
    </channel>
</rss>
