<?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"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>willcodeforcoffee.com &#187; ASP.NET</title>
	<atom:link href="http://willcodeforcoffee.com/category/aspnet/feed/" rel="self" type="application/rss+xml" />
	<link>http://willcodeforcoffee.com</link>
	<description>The personal programming blog of Eric Hoff.</description>
	<lastBuildDate>Wed, 18 Jan 2012 20:03:51 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>How do I parse HTML in C# using Regular Expressions</title>
		<link>http://willcodeforcoffee.com/2012/01/18/how-do-i-parse-html-in-c-using-regular-expressions/</link>
		<comments>http://willcodeforcoffee.com/2012/01/18/how-do-i-parse-html-in-c-using-regular-expressions/#comments</comments>
		<pubDate>Wed, 18 Jan 2012 20:03:51 +0000</pubDate>
		<dc:creator>eric</dc:creator>
				<category><![CDATA[Architecture]]></category>
		<category><![CDATA[ASP.NET]]></category>
		<category><![CDATA[HTML]]></category>

		<guid isPermaLink="false">http://willcodeforcoffee.com/?p=210</guid>
		<description><![CDATA[At first it seemed like a really simple string manipulation thing, but quickly blew out of proportion into something crazy. <a href="http://willcodeforcoffee.com/2012/01/18/how-do-i-parse-html-in-c-using-regular-expressions/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I ran into an interesting problem yesterday. All I wanted to do was some simple tokenizing of a partial HTML document, an HTML fragment (it was article content from the website I work on) based on certain elements. At first it seemed like a really simple string manipulation thing, but quickly blew out of proportion into something crazy.</p>
<p><span id="more-210"></span>In short, <a title="This really made me laugh" href="http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags/1732454#1732454" target="_blank">never ever never use Regexes</a> or anything else to parse HTML. To do so is to descend into madness. HTML is not simple text, it has structure. Even simple fragments have structure to them that cannot be identified simply through token parsing.</p>
<p>Always <strong>always <em>always</em></strong> use an HTML parser, such as the <a title="To the CodePlex site..." href="http://htmlagilitypack.codeplex.com/" target="_blank">Html Agility Pack</a>. That is what I did. The parser created the document and tokenized everything for me and from there I was able to parse and manipulate the node tree to match the requirements we had.</p>
<p>Never use anything else if you can avoid it.</p>
]]></content:encoded>
			<wfw:commentRss>http://willcodeforcoffee.com/2012/01/18/how-do-i-parse-html-in-c-using-regular-expressions/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Project Wrapup</title>
		<link>http://willcodeforcoffee.com/2009/03/16/project-wrapup/</link>
		<comments>http://willcodeforcoffee.com/2009/03/16/project-wrapup/#comments</comments>
		<pubDate>Mon, 16 Mar 2009 17:17:53 +0000</pubDate>
		<dc:creator>eric</dc:creator>
				<category><![CDATA[ASP.NET MVC]]></category>
		<category><![CDATA[Design Patterns]]></category>
		<category><![CDATA[Personal]]></category>

		<guid isPermaLink="false">http://willcodeforcoffee.com/?p=73</guid>
		<description><![CDATA[I just completed another project contract on Friday.  After decompressing over the weekend I wanted to write a few thoughts out about some of the successes and failures I&#8217;ve learned during this project. This project was a pretty good one. &#8230; <a href="http://willcodeforcoffee.com/2009/03/16/project-wrapup/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I just completed another project contract on Friday.  After decompressing over the weekend I wanted to write a few thoughts out about some of the successes and failures I&#8217;ve learned during this project.</p>
<p><span id="more-73"></span>This project was a pretty good one.  Even though we put the application into production, the customer didn&#8217;t have enough money to keep me on long enough to finish the project in a state I would have been more happier with.  There were a few reasons for this I think: 1) the customer did not have a clear enough spec, in his mind, before I started, 2) the customer was too busy with other projects to give me enough attention and direction with the design, 3) the customer was too busy to help me get the application into a User Acceptance test site earlier than two days before the contract expired.  If we had a little more time, maybe one more month I think we could have turned the application into something excellent, and I could have seen it in use long enough to know if my design assumptions were good ones.</p>
<p>That said, I did spend a lot of time with one of the Users who was a database modelling expert.  I did learn a lot from him, and he really helped me understand more about what they were expecting as a customer.  Unfortunately he worked in another building, so access to him was severely limited too.</p>
<p>Another success was that this was my first ASP.NET MVC project to be deployed.  It was also my first use of NHibernate, which I also thought was very successful.  I also used jQuery and jQuery UI extensively for Web 2.0 stuff like dialogs (death to window.open!) and AJAX.  Those things were a lot of fun.</p>
<p>I also got to use a of new architectural planning and design (Domain Driven Design) pattern that I learned from a talk given by <a href="http://igloocoder.com/" target="_blank">Donald Belcham (aka The Igloo Coder)</a>.  I&#8217;ve been reading the <a href="http://www.amazon.ca/Domain-Driven-Design-Tackling-Complexity-Software/dp/0321125215/" target="_blank">book by Eric Evans</a> as well.  This definitely seems like the new way to go.  DDD is about modelling your application and also about understanding the client&#8217;s needs.  I&#8217;m really impressed and eager to use it in future projects and products as well.</p>
]]></content:encoded>
			<wfw:commentRss>http://willcodeforcoffee.com/2009/03/16/project-wrapup/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Those Dangerous UpdatePanels and &#8220;The Intern&#8221;</title>
		<link>http://willcodeforcoffee.com/2008/10/31/those-dangerous-updatepanels-and-the-intern/</link>
		<comments>http://willcodeforcoffee.com/2008/10/31/those-dangerous-updatepanels-and-the-intern/#comments</comments>
		<pubDate>Fri, 31 Oct 2008 16:32:48 +0000</pubDate>
		<dc:creator>eric</dc:creator>
				<category><![CDATA[ASP.NET]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[Personal]]></category>

		<guid isPermaLink="false">http://willcodeforcoffee.com/?p=49</guid>
		<description><![CDATA[At my current contract I am saddled working with an intern. He&#8217;s a bright kid, and he&#8217;s gone through three years of school, but I&#8217;m kind of staggered by how much he doesn&#8217;t actually know! Development is extremely difficult because &#8230; <a href="http://willcodeforcoffee.com/2008/10/31/those-dangerous-updatepanels-and-the-intern/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>At my current contract I am <span style="text-decoration: line-through;">saddled</span> working with an intern. He&#8217;s a bright kid, and he&#8217;s gone through three years of <a href="http://nait.ca/" target="_blank">school</a>, but I&#8217;m kind of staggered by how much he doesn&#8217;t actually know! Development is extremely difficult because he doesn&#8217;t know much about JavaScript, AJAX, jQuery, CSS styling and positioning, Web Services, C#, UpdatePanels, LINQ, Ruby on Rails, MVC, DLL Libraries, ReSharper, and the list goes on and on! It&#8217;s hard to believe what eight years of experience teaches you, and I&#8217;m finding it difficult, and sometimes limiting because I have to move at a slower speed bringing him up to speed.</p>
<p>I was using some cool features of jQuery to do AJAX instead of using UpdatePanels, but when The Intern wanted to do some AJAX he got totally lost. In the end I taught him to use both jQuery and (<a href="http://willcodeforcoffee.com/2008/09/23/those-dangerous-updatepanels/" target="_blank">despite how dangerous it is)</a>, Ihow to use UpdatePanels.  In the end I encouraged him to use the UpdatePanel with his pages, read on to find out why.</p>
<p><span id="more-49"></span><strong>1.  Updating the DOM using jQuery and Web Services is an Advanced Skill</strong></p>
<p>Oh yes, both you and I can look at the code and figure out exactly what is happening.  We see the JS file linked in the ScriptManagerProxy control, we can follow the JavaScript code to the webservice call, and even more, but it is a <em>very</em> advanced skill.</p>
<p><strong>2.  Updating the DOM using jQuery and Web Services Reduced Maintainability</strong></p>
<p>Even with all of my knowledge, it&#8217;s still a long, messy trail of code until you get to the end (the web service). You&#8217;re crossing several files, including C#, ASPX, JavaScript, and ASMX files.  In my opinion this <em>drastically </em>decreases maintainability and makes the code much less readable and obvious to other .NET developers, even those who <strong>have</strong> read Encosia&#8217;s article.</p>
<p><strong>3.  Using UpdatePanels Doesn&#8217;t Change the ASP.NET PostBack Model</strong></p>
<p>The UpdatePanel is just another ASP.NET tag.  The PostBack model is retained, you still have Button OnClick events, you still have TextBox.Text, Page_Load etc. All of the code is still retained within one ASPX/ASPX.CS file pair. Almost any .NET developer, no matter how junior, should be able to follow this code. That makes the code maintainable.</p>
<p>In the end, even though jQuery will be shipping with future versions of ASP.NET, the .NET Framework, and Visual Studio, it&#8217;s still a relatively new concept. We need to proceed with it, but this is new ground so we have to blaze a trail that the slower movings guys can follow.</p>
<p>One of the big benefits we have as .NET developers is the <a href="http://msdn.microsoft.com/en-ca/library/default.aspx" target="_blank">MSDN Library</a>. I like to use MSDN as a scale for maintainability. If it is in MSDN then I consider it general knowledge that a new developer should know or be able to find easily. Otherwise I have to document it really well so that at least a mid-level developer should be able to figure out my application.</p>
<p>We have to be careful that the people maintaining the code behind us know what we&#8217;ve done, otherwise our awesome code gets rewritten by newb developers who can&#8217;t figure it out. If we can write maintainable code then hopefully the developers behind us will learn something and eventually become more advanced in their skills too.</p>
]]></content:encoded>
			<wfw:commentRss>http://willcodeforcoffee.com/2008/10/31/those-dangerous-updatepanels-and-the-intern/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Enabling jQuery Intellisense in Visual Studio 2008</title>
		<link>http://willcodeforcoffee.com/2008/10/29/enabling-jquery-intellisense-in-visual-studio-2008/</link>
		<comments>http://willcodeforcoffee.com/2008/10/29/enabling-jquery-intellisense-in-visual-studio-2008/#comments</comments>
		<pubDate>Wed, 29 Oct 2008 19:20:32 +0000</pubDate>
		<dc:creator>eric</dc:creator>
				<category><![CDATA[ASP.NET]]></category>
		<category><![CDATA[jQuery]]></category>

		<guid isPermaLink="false">http://willcodeforcoffee.com/?p=47</guid>
		<description><![CDATA[OK, I know this is just a re-tweet, but in the light of my previous post on jQuery I figured I&#8217;d better post this too: http://blogs.msdn.com/webdevtools/archive/2008/10/28/rich-intellisense-for-jquery.aspx It&#8217;s just a quick article on how to enable Intellisense for jQuery in Visual Studio.]]></description>
			<content:encoded><![CDATA[<p>OK, I know this is just a re-tweet, but in the light of my previous post on jQuery I figured I&#8217;d better post this too: <a href="http://blogs.msdn.com/webdevtools/archive/2008/10/28/rich-intellisense-for-jquery.aspx">http://blogs.msdn.com/webdevtools/archive/2008/10/28/rich-intellisense-for-jquery.aspx</a></p>
<p>It&#8217;s just a quick article on how to enable Intellisense for jQuery in Visual Studio.</p>
]]></content:encoded>
			<wfw:commentRss>http://willcodeforcoffee.com/2008/10/29/enabling-jquery-intellisense-in-visual-studio-2008/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Some jQuery Tools for working with ASP.NET</title>
		<link>http://willcodeforcoffee.com/2008/10/23/some-jquery-tools-for-working-with-aspnet/</link>
		<comments>http://willcodeforcoffee.com/2008/10/23/some-jquery-tools-for-working-with-aspnet/#comments</comments>
		<pubDate>Thu, 23 Oct 2008 18:47:37 +0000</pubDate>
		<dc:creator>eric</dc:creator>
				<category><![CDATA[ASP.Next]]></category>
		<category><![CDATA[jQuery]]></category>

		<guid isPermaLink="false">http://willcodeforcoffee.com/?p=45</guid>
		<description><![CDATA[It was recently announced that the next version of ASP.NET (4.0?) would ship with jQuery, and the new Beta of the ASP.NET MVC Framework shipped with jQuery as well.  I&#8217;ve been using jQuery with ASP.NET for a while, so I &#8230; <a href="http://willcodeforcoffee.com/2008/10/23/some-jquery-tools-for-working-with-aspnet/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>It was recently <a title="Scott Guthrie's Blog Post" href="http://weblogs.asp.net/scottgu/archive/2008/09/28/jquery-and-microsoft.aspx" target="_blank">announced</a> that the next version of ASP.NET (4.0?) would ship with <a title="jQuery.com" href="http://jquery.com/" target="_blank">jQuery</a>, and the new <a title="Scott Guthrie's Blog Announcement" href="http://weblogs.asp.net/scottgu/archive/2008/10/16/asp-net-mvc-beta-released.aspx" target="_blank">Beta of the ASP.NET MVC Framework</a> shipped with <a href="http://weblogs.asp.net/scottgu/archive/2008/10/16/asp-net-mvc-beta-released.aspx#two" target="_blank">jQuery</a> as well.  I&#8217;ve been using jQuery with ASP.NET for a while, so I wanted to post some links related to jQuery to help some other people who are jQuery noobs out.</p>
<p><span id="more-45"></span><strong>1. Custom jQuery Selector</strong></p>
<p>One of the best parts of jQuery is it&#8217;s robost CSS style element selector. However, ASP.NET screws up our element IDs.  John Sheehan did some cool research and created a custom selector to select items based on the <em>end</em> of of the item ID.</p>
<ul>
<li><a href="http://john-sheehan.com/blog/index.php/custom-jquery-selector-for-aspnet-webforms/">http://john-sheehan.com/blog/index.php/custom-jquery-selector-for-aspnet-webforms/</a></li>
</ul>
<p><strong>2. The jQuery UI Widgets</strong></p>
<p>jQuery UI comes with some great UI widgets, especially in the development bundle.  See the download builder for all of the utilities.</p>
<ul>
<li><a href="http://ui.jquery.com/" target="_blank">http://ui.jquery.com/</a></li>
<li><a href="http://ui.jquery.com/download_builder/" target="_blank">http://ui.jquery.com/download_builder/</a></li>
</ul>
<p>Also, check out the UI Theme Roller to build custom themes.</p>
<ul>
<li><a href="http://ui.jquery.com/themeroller" target="_blank">http://ui.jquery.com/themeroller</a></li>
</ul>
<p><strong>3. The Date Picker Plugin</strong></p>
<p>I can&#8217;t remember the last app I&#8217;ve developed without a Date Picker.</p>
<ul>
<li><a href="http://plugins.jquery.com/project/datepicker" target="_blank">http://plugins.jquery.com/project/datepicker</a></li>
</ul>
<p><strong>4. The Form Plugin</strong></p>
<p>The Form plugin has some good tools, including a form data serializer (often handy when calling webservices).</p>
<ul>
<li><a href="http://malsup.com/jquery/form/" target="_blank">http://malsup.com/jquery/form/</a></li>
</ul>
<p><strong>5.  The bgiframe Plugin</strong></p>
<p>The bgIframe plugin is good for fixing Z-Index issues in popups on Internet Exploder.</p>
<ul>
<li><a href="http://plugins.jquery.com/project/bgiframe" target="_blank">http://plugins.jquery.com/project/bgiframe</a></li>
</ul>
<p><strong>6. The BlockUI Plugin</strong></p>
<p>BlockUI is handy for preventing extra button clicks on elements you&#8217;re updating with a web service or even inside an UpdatePanel if you&#8217;re still into that kind of thing&#8230;  :)</p>
<ul>
<li><a href="http://malsup.com/jquery/block/" target="_blank">http://malsup.com/jquery/block/</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://willcodeforcoffee.com/2008/10/23/some-jquery-tools-for-working-with-aspnet/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Comparing Open Source ORM: SubSonic vs. NHibernate</title>
		<link>http://willcodeforcoffee.com/2008/10/09/comparing-open-source-orm-subsonic-vs-nhibernate/</link>
		<comments>http://willcodeforcoffee.com/2008/10/09/comparing-open-source-orm-subsonic-vs-nhibernate/#comments</comments>
		<pubDate>Thu, 09 Oct 2008 18:37:27 +0000</pubDate>
		<dc:creator>eric</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[ASP.NET]]></category>
		<category><![CDATA[Design Patterns]]></category>

		<guid isPermaLink="false">http://willcodeforcoffee.com/?p=40</guid>
		<description><![CDATA[ORM tools are probably one of the most time-saving tools for a web developer.  Nothing is more tedious than building a data access layer, adding caching or coordinating transactions.  Well okay, sometimes things like that are really fun, but when &#8230; <a href="http://willcodeforcoffee.com/2008/10/09/comparing-open-source-orm-subsonic-vs-nhibernate/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>ORM tools are probably one of the most time-saving tools for a web developer.  Nothing is more tedious than building a data access layer, adding caching or coordinating transactions.  Well okay, sometimes things like that are really fun, but when you&#8217;re trying to start a project out from scratch you want to get something up and running ASAP to show to your customers.</p>
<p>In the .NET world there are two powerful ORM tools out there, <a title="http://www.hibernate.org/" href="http://www.hibernate.org/" target="_blank">NHibernate</a> and <a title="http://subsonicproject.com/" href="http://subsonicproject.com/" target="_blank">SubSonic</a>.  NHibernate is based on the successful and popular Java EE ORM Hibernate.  SubSonic is an entirely new ORM developed in the Ruby on Rails ActiveRecord development model, with some nice .NET 2.0 features like Controllers that you can use with ObjectDataSource controls.</p>
<p>For a recent project I quickly evaluated both software tools, and I&#8217;m publishing what I learned here.</p>
<p><span id="more-40"></span></p>
<p><strong>Setting up NHibernate:</strong></p>
<p>The NHibernate Object/Relational Mapping is setup using XML files.  If you&#8217;re using the 3.5 Framework you can use a fluent interface instead (i.e. code the mapping in C# instead of XML).  I didn&#8217;t find a tool that generated the XML or interface automatically for you, but there must be one out there.</p>
<p>Changes to the database require changing the mappings, which means digging through XML.</p>
<p><strong>Setting up SubSonic:</strong></p>
<p>SubSonic mappings are generated via an external tool called SubCommander run from the tools menu.  Any changes to the database require regenerating these mapped classes.  SubCommander connects to your database, reads the Schema and generates O/R classes.  The O/R classes are Partial classes in C# so that you can create methods for the classes that won&#8217;t get overwritten by the tool each time you write it.</p>
<p>Changes to the database require re-running SubCommander (which can be done via the IDE).</p>
<p>The SubSonic team has also come up with some great videos to help you get started.</p>
<p><strong>Migrations</strong></p>
<p>The big thing that sold me on SubSonic was the new <a href="http://subsonicproject.com/2-1-pakala/subsonic-using-migrations/" target="_blank">Migrations</a> feature.  It uses a Ruby on Rails style migrations tool to help keep your database versioned.  It&#8217;s really excellent for a first generation tool.  It&#8217;s missing a few things, like it&#8217;s hard to set Unique Keys, but otherwise it is excellent.  This is also the first .NET Migrations utility I&#8217;ve found.</p>
<p>Migrations are one of the easiest ways to keep your database versioned, which has always been a problem for me when updating Test and Production databases.</p>
<p><strong>Conclusion</strong></p>
<p>I ended up selecting SubSonic for the following reasons:</p>
<ol>
<li>No XML configuration files (running a tool is much easier, IMHO)</li>
<li>Migrations</li>
<li>Their excellent video tutorials and directions on their website</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://willcodeforcoffee.com/2008/10/09/comparing-open-source-orm-subsonic-vs-nhibernate/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Those Dangerous UpdatePanels</title>
		<link>http://willcodeforcoffee.com/2008/09/23/those-dangerous-updatepanels/</link>
		<comments>http://willcodeforcoffee.com/2008/09/23/those-dangerous-updatepanels/#comments</comments>
		<pubDate>Tue, 23 Sep 2008 16:16:08 +0000</pubDate>
		<dc:creator>eric</dc:creator>
				<category><![CDATA[ASP.NET]]></category>

		<guid isPermaLink="false">http://willcodeforcoffee.com/?p=36</guid>
		<description><![CDATA[I&#8217;ve read the post from Encosia (Dave Ward) before, but I was reminded on the Twitter by MasterMaq about how dangerous UpdatePanels are a week or two ago. Okay, UpdatePanels aren&#8217;t dangerous, but they do use more bandwidth and server &#8230; <a href="http://willcodeforcoffee.com/2008/09/23/those-dangerous-updatepanels/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve read the post from <a href="http://encosia.com/" target="_blank">Encosia (Dave Ward)</a> before, but I was reminded on the Twitter by <a href="http://blog.mastermaq.ca/" target="_blank">MasterMaq</a> about how <a href="http://encosia.com/2007/07/11/why-aspnet-ajax-updatepanels-are-dangerous/" target="_self">dangerous UpdatePanels are</a> a week or two ago.</p>
<p>Okay, UpdatePanels aren&#8217;t <em>dangerous</em>, but they do use more bandwidth and server CPU than a simple web service call.  I figure a web developer ought to know what is being sent behind the scenes, but I can understand that a lot of people don&#8217;t.  UpdatePanels require sending the ViewState and building the control structure behind the scenes, as well as doing a subset of the ASP.NET Page event model, which means more data being POSTed behind the scenes and it takes a little longer to do all that processing.</p>
<p>UpdatePanels are easy though, and for some things in ASP.NET it is so much easier to use.  But Encosia does give us an <strong>awesome</strong> was to still use ASP.NET User Controls within web services and jQuery gives us some awesome tools to build pages dynamically without using UpdatePanels here: <a href="http://encosia.com/2008/02/05/boost-aspnet-performance-with-deferred-content-loading/" target="_blank">http://encosia.com/2008/02/05/boost-aspnet-performance-with-deferred-content-loading/</a>.  It&#8217;s not quite as easy to maintain as UpdatePanels, but it&#8217;s still <em>very</em> easy to use, and also very very fast.</p>
]]></content:encoded>
			<wfw:commentRss>http://willcodeforcoffee.com/2008/09/23/those-dangerous-updatepanels/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>CodeIgniter Thoughts</title>
		<link>http://willcodeforcoffee.com/2008/08/20/codeigniter-thoughts/</link>
		<comments>http://willcodeforcoffee.com/2008/08/20/codeigniter-thoughts/#comments</comments>
		<pubDate>Wed, 20 Aug 2008 23:56:00 +0000</pubDate>
		<dc:creator>eric</dc:creator>
				<category><![CDATA[ASP.NET]]></category>
		<category><![CDATA[CodeIgniter]]></category>

		<guid isPermaLink="false">http://willcodeforcoffee.com/2008/08/20/codeigniter-thoughts/</guid>
		<description><![CDATA[I&#8217;m finding CodeIgniter a little frustrating right now.&#160; I really wanted to use an MVC tool, but CI is not playing well with IIS.&#160; Also, the documentation really isn&#8217;t that great, even for an open-source project. Alas, like most PHP &#8230; <a href="http://willcodeforcoffee.com/2008/08/20/codeigniter-thoughts/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[</p>
<p>I&#8217;m finding CodeIgniter a little frustrating right now.&#160; I really wanted to use an MVC tool, but CI is not playing well with IIS.&#160; Also, the documentation really isn&#8217;t that great, even for an open-source project.</p>
<p>Alas, like most PHP projects it just wasn&#8217;t designed or tested with IIS in mind.&#160; Fortunately I&#8217;m discovering this relatively early in the project, but I&#8217;m a little frustrated that some of these things are coming up now.</p>
<p>I think given the choice, since the IIS setup was decided for me before, I might have push ASP.NET Forms (vs MVC) instead.&#160; Something I&#8217;ll keep in mind for next time.</p>
<p>Of course, CodeIgniter does work much better on my local Apache development environment.&#160; I don&#8217;t want to come down too hard on it.&#160; I&#8217;m just not impressed with how it works on IIS.</p>
]]></content:encoded>
			<wfw:commentRss>http://willcodeforcoffee.com/2008/08/20/codeigniter-thoughts/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>PHP CodeIgniter vs. ASP.NET MVC &#8211; My Choice</title>
		<link>http://willcodeforcoffee.com/2008/08/06/php-codeigniter-vs-aspnet-mvc-my-choice/</link>
		<comments>http://willcodeforcoffee.com/2008/08/06/php-codeigniter-vs-aspnet-mvc-my-choice/#comments</comments>
		<pubDate>Wed, 06 Aug 2008 13:13:01 +0000</pubDate>
		<dc:creator>eric</dc:creator>
				<category><![CDATA[ASP.NET]]></category>
		<category><![CDATA[C# 3.5 Features]]></category>
		<category><![CDATA[CodeIgniter]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://willcodeforcoffee.com/?p=34</guid>
		<description><![CDATA[I think it&#8217;s really great that they&#8217;re building an MVC product for ASP.NET at Microsoft!  I think it has the possibility to bring a lot of PHP, Python and Ruby guys onto the platform. But it&#8217;s not ready to use &#8230; <a href="http://willcodeforcoffee.com/2008/08/06/php-codeigniter-vs-aspnet-mvc-my-choice/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I think it&#8217;s really great that they&#8217;re building an MVC product for ASP.NET at Microsoft!  I think it has the possibility to bring a lot of PHP, Python and Ruby guys onto the platform.</p>
<p>But it&#8217;s not ready to use yet so I&#8217;m going to use CodeIgniter.  Sure people are out there coding with the beta, or I could even use plain ol&#8217; Web Forms, but long story short: it isn&#8217;t ready.  It&#8217;s going to be awesome when it&#8217;s done, it&#8217;s awesome now, but every new beta brings out breaking changes.</p>
<p>So even though it makes me sad to leave my beloved C# for one site, I&#8217;m gonna have to stick with PHP for this one.</p>
]]></content:encoded>
			<wfw:commentRss>http://willcodeforcoffee.com/2008/08/06/php-codeigniter-vs-aspnet-mvc-my-choice/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Application_Error and asmx Web Services</title>
		<link>http://willcodeforcoffee.com/2008/06/20/application_error-and-asmx-web-services/</link>
		<comments>http://willcodeforcoffee.com/2008/06/20/application_error-and-asmx-web-services/#comments</comments>
		<pubDate>Fri, 20 Jun 2008 19:47:11 +0000</pubDate>
		<dc:creator>eric</dc:creator>
				<category><![CDATA[ASP.NET]]></category>

		<guid isPermaLink="false">http://willcodeforcoffee.com/?p=27</guid>
		<description><![CDATA[I just found out after tracking down a weird popup alert error &#8220;Object reference not set to an instance of an object&#8221; that it was being caused inside an ASP.NET asmx web service being called from a ComponentArt grid control.  &#8230; <a href="http://willcodeforcoffee.com/2008/06/20/application_error-and-asmx-web-services/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I just found out after tracking down a weird popup alert error &#8220;Object reference not set to an instance of an object&#8221; that it was being caused inside an ASP.NET asmx web service being called from a ComponentArt grid control.  The web service was causing an exception but it was not caught by Application_Error!</p>
<p>I spent a few hours trying to find out where on the client the exception was occurring before tracking it to the web service.  I figured nothing was happening on the server since Application_Error didn&#8217;t log the error for me.</p>
<p>So, unless you know something I don&#8217;t know, make sure you add your own error handling to your Web Services.</p>
]]></content:encoded>
			<wfw:commentRss>http://willcodeforcoffee.com/2008/06/20/application_error-and-asmx-web-services/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

