<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	>

<channel>
	<title>Bob.Yexley.Net</title>
	<atom:link href="http://bob.yexley.net/index.php/feed" rel="self" type="application/rss+xml" />
	<link>http://bob.yexley.net</link>
	<description>Movin' to Knoxville</description>
	<pubDate>Wed, 02 Jul 2008 01:54:26 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.5.1</generator>
	<language>en</language>
			<item>
		<title>Codestock - Count me in</title>
		<link>http://bob.yexley.net/codestock-count-me-in</link>
		<comments>http://bob.yexley.net/codestock-count-me-in#comments</comments>
		<pubDate>Wed, 02 Jul 2008 01:54:26 +0000</pubDate>
		<dc:creator>Bob Yexley</dc:creator>
		
		<category><![CDATA[.NET]]></category>

		<category><![CDATA[Events]]></category>

		<category><![CDATA[Knoxville]]></category>

		<guid isPermaLink="false">http://bob.yexley.net/codestock-count-me-in</guid>
		<description><![CDATA[ I&#8217;ll be making Codestock my first developer event in Knoxville. Looks like a pretty exciting event. The organizers appear to have done a fantastic job putting together a top notch event with some great content. Looking forward to meeting some new people in Knoxville at the event and the after party. Look me up [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://codestock.org" target="_blank"><img height="89" alt="Codestock-NerdSkull-LowRes" src="http://bob.yexley.net/content/2008/07/codestock-nerdskull-lowres.png" width="67" align="left"></a> I&#8217;ll be making <a href="http://codestock.org" target="_blank">Codestock</a> my first developer event in Knoxville. Looks like a pretty exciting event. The organizers appear to have done a fantastic job putting together a top notch event with some great content. Looking forward to meeting some new people in Knoxville at the event and <a href="http://codestock.org/Pages/AfterParty.aspx" target="_blank">the after party</a>. Look me up if you&#8217;re planning on being there.</p>
]]></content:encoded>
			<wfw:commentRss>http://bob.yexley.net/codestock-count-me-in/feed</wfw:commentRss>
		</item>
		<item>
		<title>Moving to Knoxville</title>
		<link>http://bob.yexley.net/moving-to-knoxville</link>
		<comments>http://bob.yexley.net/moving-to-knoxville#comments</comments>
		<pubDate>Fri, 27 Jun 2008 00:45:29 +0000</pubDate>
		<dc:creator>Bob Yexley</dc:creator>
		
		<category><![CDATA[Personal]]></category>

		<guid isPermaLink="false">http://bob.yexley.net/moving-to-knoxville</guid>
		<description><![CDATA[ Most people who&#8217;ve known me and/or my wife for a while know that we&#8217;ve never really felt &#8220;settled&#8221; in Ohio. From even before we were married, we both knew we definitely did NOT want to live in Dayton, Ohio for the rest of our lives. For her, it mostly had to do with weather [...]]]></description>
			<content:encoded><![CDATA[<p><img height="80" alt="TennesseeWelcomesYou" src="http://bob.yexley.net/content/2008/06/tennesseewelcomesyou.jpg" width="240" align="left"> Most people who&#8217;ve known me and/or my wife for a while know that we&#8217;ve never really felt &#8220;settled&#8221; in Ohio. From even before we were married, we both knew we definitely did NOT want to live in Dayton, Ohio for the rest of our lives. For her, it mostly had to do with weather and a general lack of much of anything interesting in Dayton at all (with the major of exception of good people&#8230;there will be a lot of people here that we&#8217;ll miss dearly). For me, its always been about being closer to family.</p>
<h4>Its all about family</h4>
<p>I&#8217;ve always been very close to my family. Unfortunately however, I haven&#8217;t lived anywhere within reasonable driving distance of them since I joined the Air Force right out of high school, which has made it rather expensive to visit them. As a result, I just never get to see them anywhere near as much as I&#8217;d like to.</p>
<p>So ever since Crys and I got married, we&#8217;ve talked off-and-on about where we were going to move and settle down one day. I was born and raised in Oregon, and that is where my family still lives. I love it out there, but for Crys and her family, the idea of moving out there has pretty much been out of the question. Mostly for two reasons: the ever-increasing cost of living out there, and the mythical ceaseless rain that falls out there (they get their fair share of rain to be sure, but its really not any more than we get here in Ohio&#8230;though to be fair, that&#8217;s another major reason for wanting to get *out* of Ohio&#8230;we just want to be somewhere with more consistent nice weather). So for years we&#8217;ve had discussions with both her family and mine about where we might all agree to move and settle down one day.</p>
<p>After years of these kinds of discussions considering places all over the world from Fiji to New Zealand, Northern California to Florida to Arizona. When all was said and done, the only place we were all able to come to a consensus on where we&#8217;d be comfortable settling down together as a family was Knoxville, TN. We&#8217;d all visited there at some point or another in the past, or someplace near there, and really liked the time we spent there. The city has a lot to offer just about everyone. Its a fairly large city, but still has a somewhat small-town feel. The people are very friendly. The cost of living is fantastic. There&#8217;s plenty in the way of jobs for everyone. It seemed like it was the perfect fit. Once we had decided that, then it was just a matter of timing. When would it make the most sense to make the move?</p>
<h4>Timing is everything</h4>
<p>On December 27th of last year, our entire family welcomed the newest addition to the Yexley clan into the world, <a href="http://phoenix.yexley.net" target="_blank">Phoenix</a>. He is absolutely the most amazing kid I&#8217;ve ever met in my life. What an amazing blessing God has given us. He has changed all of our lives in so many amazing (and yet, subtle) ways that we never could&#8217;ve possibly imagined. We literally praise God for him every day. Phoenix is a huge motivating factor in all of this. Being close to both of our families for him and for us is very important to us all.</p>
<p>A few short months later, the contract I&#8217;d been working on at LexisNexis was completed and not extended. At the same time, over the course of those three months, Crys had started to reconsider her commitment to <a href="http://enjoycharis.com" target="_blank">Charis</a> in light of a growing desire to stay at home to raise Phoenix. In the middle of all of these things going on, she and I started discussing whether or not this was the right time to start thinking about making the move to Knoxville. We discussed the idea with her parents and my parents, and everybody seemed to agree that this year would make sense to start looking in that direction.</p>
<p>So we started praying for guidance, and started looking into the idea. I talked to my managers about a plan for transitioning, and we started writing down the steps we&#8217;d need to take to make the move happen. Once we had a list of things to look into, we started going through them prayerfully, putting together a plan to make it happen. Dozens of little details aside, there were basically three main things that needed to happen in order for this to work out: I needed to find a job, we needed to find a place to live down there, and we&#8217;d need to sell our house.</p>
<h4>Anybody wanna hire me?</h4>
<p>I updated my resume and decided to pull the trigger and start sending out and applying for job listings I found online. So one Friday afternoon back in May, I spent about an hour filling out online applications and submitting my resume to potential employers and recruiters. According to online job listing sites, the job market in Knoxville looked promising, but that can sometimes be deceiving too, so I put it out there and waited.</p>
<p>I didn&#8217;t have to wait very long. Within an hour I got a phone call from a recruiter at the local office of a national technical staffing agency. Over the course of the next couple of weeks, I spent a lot of time on the phone with several employers and recruiters discussing a number of opportunities in the area.</p>
<p>Prior to all of this, I had done a bit of market research comparing the Knoxville and Dayton job markets and doing salary comparisons. Based on the research I did, I was expecting to end up making roughly 5% less than I&#8217;m making now down in Knoxville.</p>
<p><a href="http://scrippsnetworks.com/" target="_blank"><img height="55" alt="ScrippsNetworksLogo" src="http://bob.yexley.net/content/2008/06/scrippsnetworkslogo.png" width="171" align="left"></a> Long story short, this past weekend I signed an offer letter accepting a fantastic job with <a href="http://scrippsnetworks.com/" target="_blank">Scripps Networks</a> (the parent company that owns <a href="http://www.hgtv.com/" target="_blank">HGTV</a>, <a href="http://www.foodnetwork.com/" target="_blank">Food Network</a>, <a href="http://www.diynetwork.com/" target="_blank">DiY Network</a>, <a href="http://www.fineliving.com/" target="_blank">Fine Living</a> and <a href="http://www.gactv.com/" target="_blank">GAC</a>) that I am very excited about. The job itself will essentially amount to a promotion from where I&#8217;m currently at making more than I currently am making, and opening up the door for some very exciting opportunities to develop my career. In case you couldn&#8217;t tell, I&#8217;m pretty excited about the opportunity. I officially start the new job on July 21st.</p>
<h4>A roof over our heads</h4>
<p>So the next step in the process was for us to find a place to live. After talking about it for a long time, and looking at literally hundreds and hundreds of properties online, Crys and I decided that the smartest thing for us to do starting out down in Knoxville would be to rent for at least a year. Despite the fact that we&#8217;ve made several trips down to Knoxville in the past year and are starting to learn the town fairly well (as well as you can when you spend a few whirlwind weekends driving all over the area&#8230;we&#8217;ve literally put over a thousand miles on our cars around that town in the past year), you just can&#8217;t get to know a place well enough to really *know* where you want to settle down for good in that amount of time. So, we decided that it would be best to rent someplace for at least the first year that we live down there. So we started looking at rentals.</p>
<p>A couple of weeks ago, we decided to make another trip down there to take a look at a few rentals that Crys found online. Initially, we chose a range that we wanted to limit ourselves to so that we could try to save as much as possible during that first year or so, and hopefully have enough saved up to make a decent down-payment on a home after that time. I only had one criteria for any place that we lived: it *must* (no compromise on this at all) be in a safe neighborhood/area. I needed to be able to know that when I&#8217;m off at work and Crys wants to take Phoenix and the dogs out for a walk that she&#8217;d be safe. This is really where we found our biggest problem in our search for a rental.</p>
<p>After looking at several places, it was looking like the only way we were going to get into a place in a decent/safe neighborhood (and that would be big enough to hold all of our stuff), we were looking at probably needing to land somewhere around $150-$200/month more than the range we had set for ourselves. We were a little disappointed with that, but had decided that it was worth it to have a secure, safe place to live. We had narrowed our search down to three places based on location, two of which we hadn&#8217;t been able to see the inside of our first day down there, so we had to wait until the next day to see them. Unfortunately, we weren&#8217;t going to be able to see them until after 1:00 PM, so we had some time to waste until they were available to see.</p>
<p><a href="http://bob.yexley.net/content/2008/06/ourcondoinknoxville.png"><img height="70" alt="OurCondoInKnoxville" src="http://bob.yexley.net/content/2008/06/ourcondoinknoxville-thumb.png" width="139" align="left"></a> As we were driving around the general area of the places we wanted to see that day, we drove through a local condo complex and lo-and-behold, there was one for rent. We called the number and talked to the landlord. To finish up a long story, the place turned out to be *exactly* what we had been looking for, and it was only $50 over our initial target price per month. It was perfect. So early that afternoon, we signed a lease and put down a deposit on what will be our new home in Knoxville. We love it, and we&#8217;re very excited to get moved in.</p>
<h4>Everything is falling into place</h4>
<p>While all of this is going on for us, things have really been lining up for the rest of our family as well. Crys&#8217; Dad was recently offered an opportunity to apply for an early retirement from his job. My parents are finishing up a few things in Oregon in preparation for selling their own house and being able to be ready to make the move themselves too. At this point, we pretty much only have one final thing that needs to happen to make this deal final: <a href="http://yexley.net/house-for-sale" target="_blank">we need to sell our house</a>. Anyone interested?&nbsp; <img src='http://bob.yexley.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<h4>The next chapter</h4>
<p>Dayton/Ohio will always hold a lot of great memories for our family. This is where Crys and I met and got married. Crys has obtained two degrees from Wright State University. We&#8217;ve both established our careers here. We&#8217;ve survived three cancers in the immediate family here. We started our family here. We&#8217;ve made a lot of fantastic friends here. Certainly we&#8217;re leaving a lot behind. But the time has come for us to move on.</p>
<p>At the same time, we&#8217;re also very, very excited to embrace what the future holds for us in Knoxville. We&#8217;re <strong><u>SO</u></strong> excited about the opportunity to be closer to family again. We&#8217;re looking forward to meeting and making new friends there as well. We&#8217;re excited about all of the exciting new things to see and do there. I can&#8217;t wait to be closer to all of the water and the Smoky Mountains too. We just can&#8217;t wait to see all that God has in store for us in this new chapter of our lives. Please pray for us.</p>
<p><a href="http://www.gnpcb.org/esv/search/?q=John+16:32-33" target="_blank">John 16:32-33</a></p>
]]></content:encoded>
			<wfw:commentRss>http://bob.yexley.net/moving-to-knoxville/feed</wfw:commentRss>
		</item>
		<item>
		<title>Dropbox - my new backup solution?</title>
		<link>http://bob.yexley.net/dropbox-my-new-backup-solution</link>
		<comments>http://bob.yexley.net/dropbox-my-new-backup-solution#comments</comments>
		<pubDate>Wed, 12 Mar 2008 03:00:33 +0000</pubDate>
		<dc:creator>Bob Yexley</dc:creator>
		
		<category><![CDATA[Mac]]></category>

		<category><![CDATA[OS X]]></category>

		<category><![CDATA[Software]]></category>

		<category><![CDATA[Tools]]></category>

		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://bob.yexley.net/dropbox-my-new-backup-solution</guid>
		<description><![CDATA[ Cross-platform, collaborative, versioned, web-accessible file and folder sharing. If this ends up being half as good as it looks, it could ultimately make my life a LOT easier.
]]></description>
			<content:encoded><![CDATA[<p><a href="http://getdropbox.com" target="_blank"><img style="margin: 0px 10px 10px 0px" height="50" alt="Dropbox Logo" src="http://bob.yexley.net/content/2008/03/dropboxlogo1.gif" width="167" align="left"></a> Cross-platform, collaborative, versioned, web-accessible file and folder sharing. If this ends up being half as good as it looks, it could ultimately make my life a LOT easier.</p>
]]></content:encoded>
			<wfw:commentRss>http://bob.yexley.net/dropbox-my-new-backup-solution/feed</wfw:commentRss>
		</item>
		<item>
		<title>Where does the business logic go in MVC?</title>
		<link>http://bob.yexley.net/where-does-the-business-logic-go-in-mvc</link>
		<comments>http://bob.yexley.net/where-does-the-business-logic-go-in-mvc#comments</comments>
		<pubDate>Tue, 04 Mar 2008 19:48:04 +0000</pubDate>
		<dc:creator>Bob Yexley</dc:creator>
		
		<category><![CDATA[ASP.NET MVC]]></category>

		<category><![CDATA[Software Development]]></category>

		<guid isPermaLink="false">http://bob.yexley.net/where-does-the-business-logic-go-in-mvc</guid>
		<description><![CDATA[This question seems to be popping up in several things that I&#8217;ve read today. In my personal experience, the answer is: it depends. I&#8217;m not sure I could say that there&#8217;s any hard-and-fast rule that says where business logic should go, but I will say this, I think the answer lies at least partly in [...]]]></description>
			<content:encoded><![CDATA[<p>This question seems to be popping up in <a href="http://forums.asp.net/p/1228408/2211188.aspx" target="_blank">several</a> <a href="http://www.phpguru.org/article.php/218" target="_blank">things</a> that I&#8217;ve read today. In my personal experience, the answer is: it depends. I&#8217;m not sure I could say that there&#8217;s any hard-and-fast rule that says where business logic should go, but I will say this, I think the answer lies at least partly in how you define &quot;business logic&quot;.</p>
<p>I think there are different kinds of business logic that can be applied at various different levels in an <a href="http://en.wikipedia.org/wiki/Model-view-controller" target="_blank">MVC</a> based application. The two primary kinds that come to mind are business process flow logic, and data validation logic. Some might argue that validation logic wouldn&#8217;t fall under the category of business logic, but we would have to agree to disagree on that one.</p>
<p>I&#8217;ll attempt to explain my position on this with a hypothetical scenario:</p>
<p>Lets say you work in a large medical organization that has development groups that create and maintain multiple different applications that support many different internal parts of the organization. You&#8217;re all working with pretty much the same data, but every app uses it a little bit differently, and has different rules that need to be applied to how the data is used and processed. At the same time, all of the applications use the same backend database, so at that level, the rules are the same.</p>
<p>The group you work in has just finished creating a large application that is used by dozens of different departments of the company spread out geographically. As part of the development of your application, you created an assembly that contains all of your model objects, each of which contains its own validation logic to ensure that they don&#8217;t allow invalid data to get past them into the backend database.</p>
<p>Now, another group is in the planning stages of an application that will be used by different departments of the company that have their own business process flow, so different business rules will be applied in the application, but since they&#8217;re going to be interacting with the same data, rather than reinventing the wheel and creating their own model objects, they&#8217;ve decided that they&#8217;re just going to reference the assembly that you&#8217;ve already created, along with your data access layer for persistence.</p>
<p>Easy stuff, all they need to do is add a reference to your assemblies in their application and they&#8217;re off with a model and data access layer already tested and ready-to-go.</p>
<p>In this scenario, both groups are using the MVC design pattern to create their application, but your group has just saved group B a ton of work by providing them with code that they can reuse. Your application has a completely different look and feel at the user interface (View) level, and your business process logic has been implemented in your Controllers. When group B creates their application, they&#8217;ve already got the Model and data access layer they need, with data validation built-in. Now all they have to do is create their own Views and Controllers to implement their user interface and business process logic.</p>
<p>See how the business logic actually exists in two different places: in the Controllers for business process logic, and in the Model objects for data validation.</p>
<p>There are most certainly going to be scenarios where all of the business logic for an application is most practically applied at only one level of the app, either the controllers or the model. However, in the interest of developing for security, data validation should be applied at all levels of the application. Why? Considering the above scenario, what might have happened if your group hadn&#8217;t added any kind of data validation into the Model objects? When group B started using those objects, if they didn&#8217;t add data validation into their Controllers, there exists the potential for invalid data to be allowed into the backend database. Now you&#8217;ve got all kinds of potential problems, not just with their application, but potentially yours too. The two applications share a backend. Data security at every level of your application is important, so business logic across multiple layers of your framework can sometimes (often?) be necessary.</p>
<p><strong>UPDATE:</strong> An additional consideration that I had forgotten when I wrote this earlier, with regards to adding business logic beyond just data validation to the model objects: A reason to consider NOT putting any more business logic than just data validation into the model objects is that, had that been done by your group, the rules that you had applied could potentially have rendered those model objects useless to group B because the logic that you applied at that level doesn&#8217;t apply to their needs. Now, you&#8217;ve just lost the advantage of code reuse of those objects, and cost the organization potentially thousands of dollars (maybe tens of thousands, depending on the scope of the project) in time and effort by group B having to re-create their own model objects for their own needs.</p>
]]></content:encoded>
			<wfw:commentRss>http://bob.yexley.net/where-does-the-business-logic-go-in-mvc/feed</wfw:commentRss>
		</item>
		<item>
		<title>My Mac + Windows solution = VMWare Fusion + Windows XP</title>
		<link>http://bob.yexley.net/my-mac-windows-solution-vmware-fusion-windows-xp</link>
		<comments>http://bob.yexley.net/my-mac-windows-solution-vmware-fusion-windows-xp#comments</comments>
		<pubDate>Tue, 04 Mar 2008 17:02:06 +0000</pubDate>
		<dc:creator>Bob Yexley</dc:creator>
		
		<category><![CDATA[Apple]]></category>

		<category><![CDATA[Mac]]></category>

		<category><![CDATA[OS X]]></category>

		<category><![CDATA[Productivity]]></category>

		<category><![CDATA[Software Development]]></category>

		<category><![CDATA[Tools]]></category>

		<category><![CDATA[Vista]]></category>

		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://bob.yexley.net/my-mac-windows-solution-vmware-fusion-windows-xp</guid>
		<description><![CDATA[When I first got my MacBook Pro, I mentioned that one of my primary, first priorities was to figure out a good solution for running Windows on it. Now that its been a little over a month and I&#8217;ve had a chance to play around with multiple different options, I think I&#8217;ve finally landed on [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://bob.yexley.net/macbook-pro-the-first-six-hours" target="_blank">When I first got my MacBook Pro</a>, I mentioned that one of my primary, first priorities was to figure out a good solution for running Windows on it. Now that its been a little over a month and I&#8217;ve had a chance to play around with multiple different options, I think I&#8217;ve finally landed on a very workable solution to my Mac + Windows needs:</p>
<p><a href="http://vmware.com/mac" target="_blank"><img style="margin: 0px 10px 10px 0px" height="165" alt="VMWare Fusion Logo" src="http://bob.yexley.net/content/2008/03/vmwarefusionlogo.jpg" width="142" align="left" /></a> <a href="http://microsoft.com/windows/xp" target="_blank"><img style="margin: 0px 10px 10px 0px" height="165" alt="Windows XP Logo" src="http://bob.yexley.net/content/2008/03/windowsxplogo.jpg" width="226" align="left" /></a> </p>
<p>&#160;</p>
<p>&#160;</p>
<p>&#160;</p>
<p>&#160;</p>
<p>&#160;</p>
<p>&#160;</p>
<p><a href="http://microsoft.com/windows/xp" target="_blank">Windows XP Professional</a> running through <a href="http://vmware.com/mac" target="_blank">VMWare Fusion</a> on my Mac desktop. I tried Windows Vista, I really did. I really wanted it to work, but&#8230;sadly, it just hasn&#8217;t worked out for me so far. I tried running it through Fusion, but the performance I got just wasn&#8217;t acceptable at all. Running Vista through a virtual machine just did NOT give me the performance that I need to be productive in it. So then I tried <a href="http://apple.com/bootcamp" target="_blank">Bootcamp</a>. That seems to work OK, but to be honest, the idea of having to log out of OS X just to login and use Windows&#8230;well, it works, and the performance is great, but its just kind of a hassle. When I&#8217;m using my Mac desktop for everything else other than development (which is pretty much it, except for blogging&#8230;I still really like and am using <a href="http://get.live.com/writer/overview" target="_blank">Windows Live Writer</a> for that, so I do it through Windows), its just a hassle to have to reboot to login to Windows.</p>
<p>So I broke down and installed a Windows XP virtual machine in Fusion. And I couldn&#8217;t be more glad that I did. The experience so far has been FANTASTIC. The resources that I&#8217;ve had to give the VM to get good performance have been minimal. When I created a Vista VM, I gave it two of my four total GB of RAM, and STILL didn&#8217;t get decent performance. With XP, my VM only uses 512 MB of RAM and performs excellent, even with Visual Studio 2008, SQL Server Express and IIS running on it.</p>
<p>So now I just run Windows XP as an application on my Mac desktop when I&#8217;m doing development, and life is wonderful.</p>
]]></content:encoded>
			<wfw:commentRss>http://bob.yexley.net/my-mac-windows-solution-vmware-fusion-windows-xp/feed</wfw:commentRss>
		</item>
		<item>
		<title>ASP.NET WebForms aren&#8217;t evil</title>
		<link>http://bob.yexley.net/aspnet-webforms-arent-evil</link>
		<comments>http://bob.yexley.net/aspnet-webforms-arent-evil#comments</comments>
		<pubDate>Mon, 03 Mar 2008 22:12:37 +0000</pubDate>
		<dc:creator>Bob Yexley</dc:creator>
		
		<category><![CDATA[.NET]]></category>

		<category><![CDATA[ASP.NET]]></category>

		<category><![CDATA[ASP.NET MVC]]></category>

		<category><![CDATA[Software Development]]></category>

		<category><![CDATA[Web Development]]></category>

		<guid isPermaLink="false">http://bob.yexley.net/aspnet-webforms-arent-evil</guid>
		<description><![CDATA[I posted last week asking for thoughts on whether or not to use WebForms or one of the alternatives out there as a View Engine for an MVC app that I&#8217;m working on on the side. I was a little bit harsh in my criticism, and said that I was actually leaning towards NOT using [...]]]></description>
			<content:encoded><![CDATA[<p>I <a href="http://bob.yexley.net/should-i-use-webforms-as-a-view-engine-for-an-aspnet-mvc-app" target="_blank">posted last week</a> asking for thoughts on whether or not to use WebForms or one of the alternatives out there as a View Engine for an MVC app that I&#8217;m working on on the side. I was a little bit harsh in my criticism, and said that I was actually leaning towards NOT using WebForms at all.</p>
<p>Based on some of the feedback I&#8217;ve gotten to that question (mostly offline, with the exception of some good thoughts from Scott&#8230;thanks), I thought about this quite a bit over the weekend, and even did some playing around with it, and I think I&#8217;ve come to a conclusion.</p>
<p>I&#8217;ve decided that I think I probably will in fact go ahead and use WebForms as my View Engine, largely because, I think I was unclear when I said that it was &quot;WebForms&quot; that I didn&#8217;t like. The culprit for my problem with the generated output of the radio button (read my post from last week for the details on that) is NOT the WebForms engine itself, but in fact, the &lt;asp:RadioButton /&gt; server control. So rather than WebForms being the thing that I have a problem with, its really the <a href="http://msdn2.microsoft.com/en-us/library/zsyt68f1.aspx" target="_blank">ASP.NET Server Controls</a> that I have a problem with.</p>
<p>The nice thing about that problem, is that I can easily get around it. By using WebForms <em>without</em> the server controls, I can write my own (X)HTML and just use ASP.NET server tags (&lt;% &#8230; %&gt;) to inject data or other information from the server into the HTML wherever I want it, and ultimately not have any problems at all.</p>
<p>So WebForms are NOT evil. Server Controls, on the other hand&#8230;just might be.</p>
]]></content:encoded>
			<wfw:commentRss>http://bob.yexley.net/aspnet-webforms-arent-evil/feed</wfw:commentRss>
		</item>
		<item>
		<title>Learn to hack web sites in less than five minutes</title>
		<link>http://bob.yexley.net/learn-to-hack-web-sites-in-less-than-five-minutes</link>
		<comments>http://bob.yexley.net/learn-to-hack-web-sites-in-less-than-five-minutes#comments</comments>
		<pubDate>Fri, 29 Feb 2008 20:01:19 +0000</pubDate>
		<dc:creator>Bob Yexley</dc:creator>
		
		<category><![CDATA[Humor]]></category>

		<guid isPermaLink="false">http://bob.yexley.net/learn-to-hack-web-sites-in-less-than-five-minutes</guid>
		<description><![CDATA[Your mileage may vary. Not all web sites will be this secure (just to be clear&#8230;SUPER thick sarcasm there). Thanks for the laugh Bill.
]]></description>
			<content:encoded><![CDATA[<p><a href="http://thedailywtf.com/Articles/So-You-Hacked-Our-Site!.aspx" target="_blank">Your mileage may vary</a>. Not all web sites will be <a href="http://www.federalsuppliers.com/warning.html" target="_blank">this secure</a> (just to be clear&#8230;SUPER thick sarcasm there). Thanks for the laugh <a href="http://bweaver.net/" target="_blank">Bill</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://bob.yexley.net/learn-to-hack-web-sites-in-less-than-five-minutes/feed</wfw:commentRss>
		</item>
		<item>
		<title>Ban Comic Sans</title>
		<link>http://bob.yexley.net/ban-comic-sans</link>
		<comments>http://bob.yexley.net/ban-comic-sans#comments</comments>
		<pubDate>Fri, 29 Feb 2008 14:58:34 +0000</pubDate>
		<dc:creator>Bob Yexley</dc:creator>
		
		<category><![CDATA[Humor]]></category>

		<guid isPermaLink="false">http://bob.yexley.net/ban-comic-sans</guid>
		<description><![CDATA[
]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.bancomicsans.com" target="_blank"><img style="margin: 0px 10px 10px 0px" height="71" alt="BanComicSans" src="http://bob.yexley.net/content/2008/02/bancomicsans.gif" width="450" align="left" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://bob.yexley.net/ban-comic-sans/feed</wfw:commentRss>
		</item>
		<item>
		<title>Should I use WebForms as a view engine for an ASP.NET MVC app?</title>
		<link>http://bob.yexley.net/should-i-use-webforms-as-a-view-engine-for-an-aspnet-mvc-app</link>
		<comments>http://bob.yexley.net/should-i-use-webforms-as-a-view-engine-for-an-aspnet-mvc-app#comments</comments>
		<pubDate>Thu, 28 Feb 2008 21:53:10 +0000</pubDate>
		<dc:creator>Bob Yexley</dc:creator>
		
		<category><![CDATA[.NET]]></category>

		<category><![CDATA[ASP.NET]]></category>

		<category><![CDATA[ASP.NET MVC]]></category>

		<category><![CDATA[Software Development]]></category>

		<category><![CDATA[Web Development]]></category>

		<guid isPermaLink="false">http://bob.yexley.net/should-i-use-webforms-as-a-view-engine-for-an-aspnet-mvc-app</guid>
		<description><![CDATA[I&#8217;m currently in the planning stages for a web application that I&#8217;m planning on building on top of the ASP.NET MVC extensions, and am trying to figure out which view engine would be best.
The three that I&#8217;ve looked at so far have been the standard ASP.NET WebForms, NVelocity and NHaml. I kinda like what I [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m currently in the planning stages for a web application that I&#8217;m planning on building on top of the ASP.NET MVC extensions, and am trying to figure out which view engine would be best.</p>
<p>The three that I&#8217;ve looked at so far have been the standard ASP.NET <a href="http://msdn2.microsoft.com/en-us/library/ms973868.aspx" target="_blank">WebForms</a>, <a href="http://nvelocity.sourceforge.net/" target="_blank">NVelocity</a> and <a href="http://andrewpeters.net/2007/12/19/introducing-nhaml-an-aspnet-mvc-view-engine/" target="_blank">NHaml</a>. I kinda like what I see in NVelocity and NHaml, but the documentation and support appears to be a little bit lacking. I had a hard time trying to figure out how to get started and up-and-running with either of them (though I&#8217;m sure I could figure it out if I spent more than an hour or so with either one). So for the most part, I&#8217;ve been kinda leaning towards just using WebForms.</p>
<p>Can I really trust WebForms with my HTML though? I really don&#8217;t like what it does behind-the-scenes with the markup that&#8217;s returned to the client from the server. Just today, I wrote some code to programmatically disable a radio button on a page under certain conditions. The result was that the formatting of my form was *completely* jacked up. Why? (these aren&#8217;t the only reasons&#8230;we have some pretty serious stylesheet issues involved here as well, but that&#8217;s another story that I won&#8217;t get into right now) Because the WebForms engine decided that not only should the disabled property of the input tag for the radio button be set to &quot;disabled&quot; (as it should&#8230;as I expected), but it ALSO decided to wrap the radio button input tag with &lt;span disabled=&quot;disabled&quot;&gt;&lt;/span&gt;.</p>
<p>!?!?!!</p>
<p>What is THAT? I mean, its bad enough that it unnecessarily wrapped the input tag with a span tag, but it also applied a non-standards-compliant attribute to the tag too (&quot;disabled&quot; is NOT a valid attribute for a span tag). I&#8217;m pretty picky about my code&#8230;and I try to keep it as close to standards-compliant as possible. I&#8217;m just not sure I trust WebForms to be able to generate markup that I&#8217;d be OK with.</p>
<p>I mean, I know I *could* use WebForms and just write my own markup and use server tags to inject data where I want it, but what&#8217;s the point? If I&#8217;m going to do that, why not just use an alternate view engine that will handle all of that for me *and* generate valid markup?</p>
<p>Anybody have any thoughts on this? Experience with any alternate view engines for an ASP.NET MVC app? Is getting off the ground with NVelocity or NHaml easier than I thought? Are there others? Any and all feedback on this would be greatly appreciated.</p>
]]></content:encoded>
			<wfw:commentRss>http://bob.yexley.net/should-i-use-webforms-as-a-view-engine-for-an-aspnet-mvc-app/feed</wfw:commentRss>
		</item>
		<item>
		<title>Tonight&#8217;s Dayton .NET Developers Group meeting</title>
		<link>http://bob.yexley.net/tonights-dayton-net-developers-group-meeting</link>
		<comments>http://bob.yexley.net/tonights-dayton-net-developers-group-meeting#comments</comments>
		<pubDate>Thu, 28 Feb 2008 03:52:38 +0000</pubDate>
		<dc:creator>Bob Yexley</dc:creator>
		
		<category><![CDATA[.NET]]></category>

		<category><![CDATA[ASP.NET]]></category>

		<category><![CDATA[C#]]></category>

		<category><![CDATA[JavaScript]]></category>

		<category><![CDATA[LINQ]]></category>

		<category><![CDATA[Software Development]]></category>

		<category><![CDATA[Visual Studio]]></category>

		<category><![CDATA[Web Development]]></category>

		<guid isPermaLink="false">http://bob.yexley.net/tonights-dayton-net-developers-group-meeting</guid>
		<description><![CDATA[ So, its been a long time (has it been over a year, really?) since I&#8217;ve been to one of the Dayton .NET Developers Group meetings. I got the notification last week about the upcoming meeting, and it reminded me of how much I used to enjoy going to those meetings. So I worked it [...]]]></description>
			<content:encoded><![CDATA[<p><img style="margin: 0px 10px 10px 0px" height="96" alt="VS2008" src="http://bob.yexley.net/content/2008/02/vs2008.png" width="220" align="left"> So, its been a long time (has it been over a year, really?) since I&#8217;ve been to one of the <a href="http://daytondevgroup.net" target="_blank">Dayton .NET Developers Group</a> meetings. I got the notification last week about the upcoming meeting, and it reminded me of how much I used to enjoy going to those meetings. So I worked it out with my wife to go to tonight&#8217;s meeting.</p>
<p>Now, I have to be completely honest here&#8230;the biggest motivator for me in going to the meeting tonight was the fact that they were giving away free copies of <a href="http://msdn.microsoft.com/vstudio/" target="_blank">Visual Studio 2008</a>. Why was that my primary motivation? Mostly because the topic for the meeting didn&#8217;t sound exceptionally exciting: &#8220;A lap around Visual Studio 2008&#8243;. Oh no&#8230;I&#8217;ve heard that one before. A bunch of marketing speak about all of the &#8220;fabulous&#8221; new features of the IDE that make developers lives &#8220;easier&#8221;. You know the stuff I&#8217;m talking about&#8230;the designer enhancements, the wizards, the &#8220;look-how-much-I-can-do-without-writing-a-single-line-of-code&#8221; kind of presentation. Blah blah blah&#8230;I&#8217;ve heard it all before. And I was right.</p>
<p>Partially.</p>
<p><a href="http://bouncetadiss.blogspot.com/" target="_blank">Justin Kohnen</a> did a pretty good job on the presentation. I said I was partially right, because he did emphasize a lot of the improvements they&#8217;ve made to the ASP.NET designer&#8230;which really didn&#8217;t do much for me&#8230;I&#8217;ve never liked web designers at all. Designers, in my experience, tend to be code generators that abstract away the stuff that&#8217;s actually going on in the background without really increasing my productivity. 90% or more of the code generators I&#8217;ve ever used tend to generate WAAYYY more code than is really necessary. Code that I could almost just as easily write by hand just as efficiently. If all of that isn&#8217;t enough, I really just don&#8217;t like &#8216;em (<a href="http://subsonicproject.com" target="_blank">SubSonic</a> being the one, major exception&#8230;its unbelievable). Not only that, but a lot of times, you really don&#8217;t know what&#8217;s going on behind-the-scenes with code generators either&#8230;but now I&#8217;m just babbling. Anyway&#8230;he spent some time demonstrating some of the new features of the CSS editor, and I&#8217;m pretty certain that I could&#8217;ve hand-written the CSS he generated much faster than he was able to do with the designer. I just wasn&#8217;t impressed with the new &#8220;designer&#8221; features.</p>
<p>There are a couple of pretty significant things that I was pretty impressed with in VS 2008 though. First thing was the <a href="http://msdn2.microsoft.com/en-us/library/bb385914.aspx" target="_blank">code metrics that are not integrated directly into the IDE</a>. Very nice feature to have. I also like the fact that the <a href="http://msdn2.microsoft.com/en-us/library/ms182516.aspx" target="_blank">MSTest unit testing framework is now available in the Professional version of Visual Studio</a>, and not just the TFS versions. I don&#8217;t personally have any experience with MSTest at all, and from what I&#8217;ve read about it in general, I still think I&#8217;ll be sticking with either <a href="http://nunit.org/" target="_blank">NUnit</a> or <a href="http://mbunit.com/" target="_blank">MbUnit</a>&#8230;but its certainly nice to have options in scenarios where open source tools aren&#8217;t approved for use and TFS isn&#8217;t affordable (which is probably most cases). Probably the best new feature of VS that I was impressed with was the <a href="http://weblogs.asp.net/scottgu/archive/2007/06/21/vs-2008-javascript-intellisense.aspx" target="_blank">Javascript intellisense in the code editor</a>. Very, very nice stuff. You can debug it too&#8230;which is&#8230;an OK feature. I wasn&#8217;t really blown away by that, as I&#8217;ve gotten pretty used to the glory that is <a href="http://www.getfirebug.com/" target="_blank">Firebug</a> over the past couple of years (seriously, I&#8217;m not sure what I&#8217;d do without that tool anymore, its incredible), but again, having the option to debug JS in VS is nice.</p>
<p>Now, here&#8217;s the part where I was really impressed. I think Justin should consider at least slightly changing the name of his presentation if he plans on giving this talk again (maybe at the <a href="http://www.cinnug.org/cododn/" target="_blank">Central Ohio Day of .NET</a>?), because almost the entire second half of his talk was centered around a demo of the various flavors of <a href="http://msdn2.microsoft.com/en-us/netframework/aa904594.aspx" target="_blank">LINQ</a> now available in the .NET Framework. This was, in my opinion, by far the best part of the talk. I have to admit, before tonight, I had questioned most of the hype that I&#8217;ve read around the internet recently regarding LINQ. After tonight, I will no longer question the hype. I was really impressed by the stuff Justin showed us about how LINQ can simplify a lot of your data manipulation tasks. I was particularly impressed with the <a href="http://msdn2.microsoft.com/en-us/library/bb308960.aspx" target="_blank">LINQ to XML</a> flavor. I can hardly express in words how dramatically LINQ to XML will simplify working with XML from now on. I don&#8217;t have a comparison immediately available, but I will try to come up with a code sample comparing XML manipulation using System.Xml vs System.Xml.Linq sometime in the near future. You almost have to see it in that form to see how dramatic the difference is. Its very cool stuff.</p>
<p>Anyway&#8230;this has been a lot more long-winded of a blog post than I had intended. Bottom line&#8230;it was good to get back to the .NET dev group. Good presentation Justin. I&#8217;m looking forward to more good stuff like that from the dev group.</p>
<p>Oh yeah&#8230;bonus&#8230;I won a copy of <a href="http://www.jetbrains.com/resharper/index.html" target="_blank">ReSharper</a> too. Never really used it before outside of a few days with a trial version&#8230;never really saw the hype about it either, but&#8230;who knows. Now that I have a licensed copy (I *definitely* couldn&#8217;t justify the cost before), maybe I&#8217;ll give it another shot&#8230;maybe I&#8217;ll see the light this time. *shrug*</p>
]]></content:encoded>
			<wfw:commentRss>http://bob.yexley.net/tonights-dayton-net-developers-group-meeting/feed</wfw:commentRss>
		</item>
	</channel>
</rss>
