<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>Technology</title>
        <link>http://theruntime.com/blogs/jaykimble/category/293.aspx</link>
        <description>Technology</description>
        <language>en-US</language>
        <copyright>Jay Kimble</copyright>
        <managingEditor>jkimble@gmail.com</managingEditor>
        <generator>Subtext Version 1.9.5.0</generator>
        <item>
            <title>Core Addin Challenge: 1 week with CodeRush/Refactor Pro</title>
            <link>http://theruntime.com/blogs/jaykimble/archive/2008/07/28/core-addin-challenge-1-week-with-coderushrefactor-pro.aspx</link>
            <description>&lt;p&gt;[UPDATE 8/5: Rory noticed a couple spelling errors in people's names and also noted that I should give &lt;font face="Arial"&gt;Koen HanHoefkens credit for his excellent CR_RESOLVE plugin&lt;/font&gt;]&lt;/p&gt;
&lt;p&gt;I have survived my first week with CodeRush/Refactor Pro (CR/RP). I have discovered a few things about my development habits: &lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;I don’t memorize all that many shortcut keystrokes... I tend to look for the "one keystroke to rule them all." Interestingly enough I avoid mouse usage as well &lt;/li&gt;
    &lt;li&gt;With the competing produce (R#) I use about 7 features:
    &lt;ul&gt;
        &lt;li&gt;Improved Intellisense &lt;/li&gt;
        &lt;li&gt;Rename Refactoring (which is also available in VS) &lt;/li&gt;
        &lt;li&gt;Extract Method (also available in VS) &lt;/li&gt;
        &lt;li&gt;Code Analysis &lt;/li&gt;
        &lt;li&gt;Auto-create add using/import &lt;/li&gt;
        &lt;li&gt;File Templates &lt;/li&gt;
        &lt;li&gt;Find Usages &lt;/li&gt;
    &lt;/ul&gt;
    &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I’m also discovering some things about CR/RP&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;I’m discovering that I need to tweak CR/RP’s default settings to avoid some of the "annoyances" (CR/RP can take over at times when you don’t want it to) &lt;/li&gt;
    &lt;li&gt;I think If I can get over the hump I am going to find that I’m MORE productive with this thing (although it has been touch and go at times) &lt;/li&gt;
    &lt;li&gt;One of my machines seems to run faster than R# and the other not so much (there are different things turned on/off on these machines right now) &lt;/li&gt;
    &lt;li&gt;RP provides more refactorings than any other product I have seen!! They even have refactorings for ASP.NET .ASPX files (the html part!!!) &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;So &lt;strong&gt;the "one keystroke to rule them all" for CR/RP &lt;/strong&gt;is &lt;em&gt;&lt;strong&gt;CTL + ~&lt;/strong&gt;&lt;/em&gt; . Oh yeah, you also need to install the community DXCore addin called -- Refactor_Resolve (which was written by &lt;font face="Arial"&gt;Koen HanHoefkens and &lt;/font&gt;you can get from &lt;a href="http://www.rorybecker.me.uk/DevExpress/Plugins/Community/Refactor_Resolve/"&gt;here&lt;/a&gt;.. but I would recommend that you get it out of the zip file found &lt;a href="http://www.rorybecker.me.uk/DevExpress/Plugins/CommunitySuite/"&gt;here&lt;/a&gt;. BTW, thank you Rory Becker for this info). Once you have installed that and get it turned on then Refactor! will give you an option to add usings/imports for your unresolved references.&lt;/p&gt;
&lt;p&gt;Oh yeah that community project has a number of nice things you may want to install... like the highlighted line focus.&lt;/p&gt;
&lt;p&gt;As I mentioned before you also need to turn on Code Analysis and cut down the size of the little bar at the bottom of the code files, by setting it to 1 file and 0 pixels (it will still show up, but it won’t be as intrusive... your scroll bar will work again). One more thing I believe this feature is a new one (and maybe even a beta one)... it’s not as good as R#'s but from what I understand with their plans it is going to get a lot better (they are going to add over 100 items it can check for and find...)&lt;/p&gt;
&lt;p&gt;Additional things I did was I turned off the Smart Brackets and Smart Parentheses and the some of the Smart Paste features features (the auto create properties ones are what I killed... I may kill a few more of the Smart Paste features to get things tweaked out a little better for me).&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Summary&lt;/strong&gt; &lt;br /&gt;
All in all things are getting better... Today was a breakthrough day for me (Thank you Rory Becker and Mark Miller)! I think I turned the corner on my experience. I’m think I’m as productive with CR/RP now as I was with R#. I’m only missing 2 things... both of which are livable right now: Find Usages (which I can use the Find References mechanism), and R# File Templates (but CR’s templates are WAY better... so I need to learn a few more of those... I have a number committed to memory already). Just &lt;em&gt;23 more days to go&lt;/em&gt;... but I suspect I'm going to be very comfy before that happens.&lt;/p&gt;&lt;img src="http://theruntime.com/blogs/jaykimble/aggbug/2653.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Jay Kimble</dc:creator>
            <guid>http://theruntime.com/blogs/jaykimble/archive/2008/07/28/core-addin-challenge-1-week-with-coderushrefactor-pro.aspx</guid>
            <pubDate>Tue, 29 Jul 2008 02:29:28 GMT</pubDate>
            <wfw:comment>http://theruntime.com/blogs/jaykimble/comments/2653.aspx</wfw:comment>
            <comments>http://theruntime.com/blogs/jaykimble/archive/2008/07/28/core-addin-challenge-1-week-with-coderushrefactor-pro.aspx#feedback</comments>
            <slash:comments>3</slash:comments>
            <wfw:commentRss>http://theruntime.com/blogs/jaykimble/comments/commentRss/2653.aspx</wfw:commentRss>
        </item>
        <item>
            <title>MS MVC Thoughts</title>
            <link>http://theruntime.com/blogs/jaykimble/archive/2008/07/24/ms-mvc-thoughts.aspx</link>
            <description>&lt;p&gt;[NOTE: I haven’t quite had much of a chance to look at the new Preview 4, so take this as someone nearly informed. I haven’t read about anything in the Preview 4 that changes what I’m going to say. Also, remember that I am the admin/editor of the blog site which is Alt Alt.NET... so testability/mockabilty doesn’t really resonate with me.]&lt;/p&gt;  &lt;p&gt;I know it’s shocking that I would have something to weigh in on MS MVC, but I do. For those who don’t know. I took some issue with Ayende’s "leaky abstraction" back in my CodeBetter days (they had to love having me around). BTW, I understood and agreed in some respects, but in others I was less than agreeable. I still think Web Forms are viable and usable, but in some cases the paradigm breaks down, so the need for another paradigm is both welcome and interesting (and before anyone brings up Castle, PixelDragon, or CodeStory MVC frameworks, I have looked at them as well and found them --in general--way too complex to get started with which is not to say that a couple templates could help you guys out...).&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Why I’m interested?&lt;/strong&gt;    &lt;br /&gt;Ok, the reason I’m interested is summed up in one word: RIAs. I could have summed that up in 2 words: Ajax, and Silverlight2. The other thing is that I have used the MVCContrib’s Restful feature to build REST services (way cool).&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;The Good&lt;/strong&gt;    &lt;br /&gt;I really like the simplicity. I mean MVC isn’t simple, but the MVC framework makes it easy to keep your layers separate... you still have to think about what you are doing, but on the whole it’s pretty easy to use. The MVC paradigm allows for a truer coding experience (the engine doesn’t pretend to be a Windows application in any way although you can still use things like session and the forms authentication engine in ASP.NET).&lt;/p&gt;  &lt;p&gt;The MVCContrib library is indispensable. It’s an open source library that is a community project that adds additional features to the MS MVC architecture. For instance there are a number of alternative view engines; I haven’t investigated all them yet (and for the most part I am sticking with the ASPX engine... although my later comments may lead you otherwise).&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;The Not So Good&lt;/strong&gt;    &lt;br /&gt;Before I say this I want you to realize I have written a grand total of 2 apps with this. App1 used the Restful plugin and really shouldn’t count, so I have written exactly 1 app (so definitely take this with a grain of salt).&lt;/p&gt;  &lt;p&gt;Complaint number 1 is that I felt like I was writing old ASP code. I used the inline code method for writing output into my HTML. I probably could have written in the codebehind and had a clean web template with code separation (something I’m a believer in, but it was my first app)... probably more my fault than the engines, but there is a lot of sample code out there already that lead you down this path.&lt;/p&gt;  &lt;p&gt;Complaint number 2 really is valid. The whole idea of MVC is that I should be able to swap out the view engine. Or better yet, be able to respond to a request and supply a view that is more suited for the client. Someone pointed out to me that one of the big features of ASP.NET 1.0 was that it would supposedly do this... I would really love for MVC to make it easy to determine that "this is a mobile browser" supply the mobile template (if one exists). Or better yet, this client is requesting that I send XML... evidently it’s some kind of Rich Client. Specific methods can be triggered to deliver a specific type, it would just be nice if the framework would detect that the client "accepts" (that’s a ServerVariable pushed in the header) only "Application/Json" so the MVC app should use a JSON result or convert the result I got to JSON and push it directly down to the client.&lt;/p&gt;  &lt;p&gt;This would make the MVC part of this more useful to me (remember all the stuff I said up front... and Yes, I know I can do this myself and have... it just would be nice if I could get the controller framework to make it easy for me to configure and then do this for me)&lt;/p&gt;&lt;img src="http://theruntime.com/blogs/jaykimble/aggbug/2650.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Jay Kimble</dc:creator>
            <guid>http://theruntime.com/blogs/jaykimble/archive/2008/07/24/ms-mvc-thoughts.aspx</guid>
            <pubDate>Thu, 24 Jul 2008 13:45:05 GMT</pubDate>
            <wfw:comment>http://theruntime.com/blogs/jaykimble/comments/2650.aspx</wfw:comment>
            <comments>http://theruntime.com/blogs/jaykimble/archive/2008/07/24/ms-mvc-thoughts.aspx#feedback</comments>
            <wfw:commentRss>http://theruntime.com/blogs/jaykimble/comments/commentRss/2650.aspx</wfw:commentRss>
        </item>
        <item>
            <title>Silverlight2 Programming: The Designer Rule</title>
            <link>http://theruntime.com/blogs/jaykimble/archive/2008/05/13/silverlight2-programming-the-designer-rule.aspx</link>
            <description>&lt;p&gt;I’m starting a new series on Silverlight2. I am currently building a little SL2 prototype, and as I am learning things I thought I would write them down here.&lt;/p&gt;  &lt;p&gt;The first rule deals with working with Designers. It is stated as such.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;"Prefer XAML code to CLR/DLR code when it comes building interfaces"&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Note the word "prefer" here. That word means "usually", "normally", or "unless there is an exception."&lt;/p&gt;  &lt;p&gt;This is best explained by some C# code I saw the other day. It looked something like this:&lt;/p&gt;  &lt;div style="border-right: gray 1px solid; padding-right: 4px; border-top: gray 1px solid; padding-left: 4px; font-size: 8pt; padding-bottom: 4px; margin: 20px 0px 10px; overflow: auto; border-left: gray 1px solid; width: 97.5%; cursor: text; max-height: 200px; line-height: 12pt; padding-top: 4px; border-bottom: gray 1px solid; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4"&gt;   &lt;div style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;     &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   1:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;string&lt;/span&gt; ElementX = &lt;span style="color: #006080"&gt;@"&amp;lt;div class='twocolumndiv'&amp;gt;&amp;lt;span class='singlecolumn'&amp;gt;{0}&amp;lt;/span&amp;gt;&amp;lt;span class='singlecolumn'&amp;gt;{1}&amp;lt;/span&amp;gt;"&lt;/span&gt;;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;The problem with the above code is that you’ve embedded it into your code. It’s effectively buried. If someone else needs to change this template to say add a field or to make changes in any manner, they are scanning the code looking for this (provided they know where to look); this will be the cause of much swearing and maligning of your name.&lt;/p&gt;

&lt;p&gt;To make matters worse, if you have a web designer you have effectively removed their visibility to this code (maybe this point is made a little sharply; I know some web designers who would be scanning the code as well, but they wouldn’t be happy).&lt;/p&gt;

&lt;p&gt;So how does this relate to SilverLight 2? Simple, you should try to avoid instantiate controls on your Silverlight views (pages??) that a designer has no visibility to (in other words, using a UserControl that has an associated XAML is fine, but instantiating a new UserControl and throwing a new layout and a bunch of text boxes should be done with great care... you should know why you did it that way). &lt;/p&gt;&lt;img src="http://theruntime.com/blogs/jaykimble/aggbug/2407.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Jay Kimble</dc:creator>
            <guid>http://theruntime.com/blogs/jaykimble/archive/2008/05/13/silverlight2-programming-the-designer-rule.aspx</guid>
            <pubDate>Tue, 13 May 2008 16:04:43 GMT</pubDate>
            <wfw:comment>http://theruntime.com/blogs/jaykimble/comments/2407.aspx</wfw:comment>
            <comments>http://theruntime.com/blogs/jaykimble/archive/2008/05/13/silverlight2-programming-the-designer-rule.aspx#feedback</comments>
            <slash:comments>1</slash:comments>
            <wfw:commentRss>http://theruntime.com/blogs/jaykimble/comments/commentRss/2407.aspx</wfw:commentRss>
        </item>
    </channel>
</rss>