<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:blogger='http://schemas.google.com/blogger/2008' xmlns:georss='http://www.georss.org/georss' xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-5063764811340828743</id><updated>2024-09-01T19:20:50.028-03:00</updated><category term="ASP.net MVC"/><category term="ASP.net"/><category term="SQL Server"/><category term="Caching"/><category term="DotNetBurner"/><category term="Performance"/><category term="Debug"/><category term="Feeds"/><category term="Testing"/><category term="source"/><title type='text'>Do more with less</title><subtitle type='html'>Thiago Sayao&#39;s blog</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://tsayao.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5063764811340828743/posts/default?redirect=false'/><link rel='alternate' type='text/html' href='http://tsayao.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Thiago M. Sayão</name><uri>http://www.blogger.com/profile/02570373698216968720</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiDw37xN0Xs7JurI2Ko6ziElCbgXmA2x2f3KFEX9AtFhOBS58dfi2kUDjEYG6X4964d8-gSd9GZYPSo9O88rtiGQ62yKaP9J-wH7t8-junvxKM__07rUShV1T0ZFdKp8XA/s220/msn2.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>8</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-5063764811340828743.post-2583475145517718086</id><published>2010-09-09T22:53:00.004-03:00</published><updated>2010-09-13T22:14:01.096-03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="ASP.net"/><category scheme="http://www.blogger.com/atom/ns#" term="ASP.net MVC"/><category scheme="http://www.blogger.com/atom/ns#" term="DotNetBurner"/><category scheme="http://www.blogger.com/atom/ns#" term="source"/><title type='text'>DotNetBurner source released (asp.net mvc)</title><summary type="text">  dotnetburner.com was a community site much like http://dotnetshoutout.com or http://dotnetkicks.com, but it did not work for some reasons (my lack of time and “marketing” skills for example) so i closed it. But since it has a nice code base based on asp.net mvc i decided to release the source (was originally coded for mvc 1 but i ported it to mvc 2 with just a few changes). It serves as example</summary><link rel='replies' type='application/atom+xml' href='http://tsayao.blogspot.com/feeds/2583475145517718086/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tsayao.blogspot.com/2010/09/dotnetburner-source-relased-aspnet-mvc.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5063764811340828743/posts/default/2583475145517718086'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5063764811340828743/posts/default/2583475145517718086'/><link rel='alternate' type='text/html' href='http://tsayao.blogspot.com/2010/09/dotnetburner-source-relased-aspnet-mvc.html' title='DotNetBurner source released (asp.net mvc)'/><author><name>Thiago M. Sayão</name><uri>http://www.blogger.com/profile/02570373698216968720</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiDw37xN0Xs7JurI2Ko6ziElCbgXmA2x2f3KFEX9AtFhOBS58dfi2kUDjEYG6X4964d8-gSd9GZYPSo9O88rtiGQ62yKaP9J-wH7t8-junvxKM__07rUShV1T0ZFdKp8XA/s220/msn2.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh5.ggpht.com/_0i431Mtz-UQ/TImPtUBy_3I/AAAAAAAAAGc/jvEFzyCxlT0/s72-c/image_thumb5.png?imgmax=800" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5063764811340828743.post-6543811669566623683</id><published>2009-08-18T21:40:00.002-03:00</published><updated>2010-07-21T21:03:15.642-03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="ASP.net"/><category scheme="http://www.blogger.com/atom/ns#" term="ASP.net MVC"/><category scheme="http://www.blogger.com/atom/ns#" term="Feeds"/><title type='text'>Turn your actions into feeds on ASP.net MVC</title><summary type="text">  With this implementation you can re-use parts of your content Controller (the database query for example) and render it on a RSS and/or ATOM feed.  Let&#39;s say you have an action like this (extracted from DotNetBurner’s source):        
       [AcceptVerbs (HttpVerbs.Get | HttpVerbs.Head), CompressFilter]
       public ActionResult Upcoming (int? page, string sort)
       {
           var </summary><link rel='replies' type='application/atom+xml' href='http://tsayao.blogspot.com/feeds/6543811669566623683/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tsayao.blogspot.com/2009/08/turn-your-actions-into-feeds-on-aspnet.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5063764811340828743/posts/default/6543811669566623683'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5063764811340828743/posts/default/6543811669566623683'/><link rel='alternate' type='text/html' href='http://tsayao.blogspot.com/2009/08/turn-your-actions-into-feeds-on-aspnet.html' title='Turn your actions into feeds on ASP.net MVC'/><author><name>Thiago M. Sayão</name><uri>http://www.blogger.com/profile/02570373698216968720</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiDw37xN0Xs7JurI2Ko6ziElCbgXmA2x2f3KFEX9AtFhOBS58dfi2kUDjEYG6X4964d8-gSd9GZYPSo9O88rtiGQ62yKaP9J-wH7t8-junvxKM__07rUShV1T0ZFdKp8XA/s220/msn2.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5063764811340828743.post-2771630229951597174</id><published>2009-08-11T21:27:00.005-03:00</published><updated>2010-09-13T22:13:23.629-03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="ASP.net"/><category scheme="http://www.blogger.com/atom/ns#" term="ASP.net MVC"/><category scheme="http://www.blogger.com/atom/ns#" term="Caching"/><category scheme="http://www.blogger.com/atom/ns#" term="DotNetBurner"/><category scheme="http://www.blogger.com/atom/ns#" term="Performance"/><title type='text'>Lazy loading a database query to improve performance of caching on ASP.net MVC</title><summary type="text"> This article explains an approach to lazy load a database query on an ASP.net MVC controller to prevent the query from executing on it, and just execute on the View, if it&#39;s not cached. So, if the View is cached, the database is not queried.  With ASP.net MVC you would obviously have a Model, a View and a Controller. But the workflow of a page execution on MVC is not really M-V-C, because it </summary><link rel='replies' type='application/atom+xml' href='http://tsayao.blogspot.com/feeds/2771630229951597174/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tsayao.blogspot.com/2009/08/lazy-loading-database-query-to-improve.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5063764811340828743/posts/default/2771630229951597174'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5063764811340828743/posts/default/2771630229951597174'/><link rel='alternate' type='text/html' href='http://tsayao.blogspot.com/2009/08/lazy-loading-database-query-to-improve.html' title='Lazy loading a database query to improve performance of caching on ASP.net MVC'/><author><name>Thiago M. Sayão</name><uri>http://www.blogger.com/profile/02570373698216968720</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiDw37xN0Xs7JurI2Ko6ziElCbgXmA2x2f3KFEX9AtFhOBS58dfi2kUDjEYG6X4964d8-gSd9GZYPSo9O88rtiGQ62yKaP9J-wH7t8-junvxKM__07rUShV1T0ZFdKp8XA/s220/msn2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5063764811340828743.post-5225299007771672151</id><published>2009-08-01T10:11:00.002-03:00</published><updated>2010-07-21T21:04:31.320-03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Performance"/><category scheme="http://www.blogger.com/atom/ns#" term="SQL Server"/><title type='text'>Using SQL Server 2005+ index included columns to improve performance of an ASP.net resource</title><summary type="text">  This post shows a real scenario on using included columns on SQL Server 2005/2008 to improve the response time of an ASP.net resource.  When developing DotNetBurner, i wanted to make sure that the site performance was the best it could be. Targeting this goal, i have used indexes with included columns to improve the response time of the &quot;burn!&quot; count image. The burn count image shows how many &quot;</summary><link rel='replies' type='application/atom+xml' href='http://tsayao.blogspot.com/feeds/5225299007771672151/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tsayao.blogspot.com/2009/08/using-sql-server-2005-index-included_01.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5063764811340828743/posts/default/5225299007771672151'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5063764811340828743/posts/default/5225299007771672151'/><link rel='alternate' type='text/html' href='http://tsayao.blogspot.com/2009/08/using-sql-server-2005-index-included_01.html' title='Using SQL Server 2005+ index included columns to improve performance of an ASP.net resource'/><author><name>Thiago M. Sayão</name><uri>http://www.blogger.com/profile/02570373698216968720</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiDw37xN0Xs7JurI2Ko6ziElCbgXmA2x2f3KFEX9AtFhOBS58dfi2kUDjEYG6X4964d8-gSd9GZYPSo9O88rtiGQ62yKaP9J-wH7t8-junvxKM__07rUShV1T0ZFdKp8XA/s220/msn2.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEif-MM1J_KukqWM-MNT3TF_WBertNLLteFZTArEgrOjptqSuQIBpZbDRinDZTjscGduWH9kNlVJcBDRVrHx_VNgw5aU6R5_PjGHjHPWqWD1VuK86648GiPNJDBuVP6A-wP5fiLR8zHcxWg/s72-c/plan1.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5063764811340828743.post-3920757474600790485</id><published>2009-07-30T21:19:00.002-03:00</published><updated>2010-07-21T21:04:48.157-03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="SQL Server"/><title type='text'>Using the PIVOT operator on SQL Server 2005+</title><summary type="text">  The PIVOT operator is used to transform rows into column by an aggregate function. One big limitation is that you have to know the columns, but still, it&#39;s useful on some use cases, like when you want to aggregate something by hours (for example).  About having to know the column names limitation: This is probably a design decision, because someone could write a query that has too many columns </summary><link rel='replies' type='application/atom+xml' href='http://tsayao.blogspot.com/feeds/3920757474600790485/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tsayao.blogspot.com/2009/07/using-pivot-operator-on-sql-server-2005.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5063764811340828743/posts/default/3920757474600790485'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5063764811340828743/posts/default/3920757474600790485'/><link rel='alternate' type='text/html' href='http://tsayao.blogspot.com/2009/07/using-pivot-operator-on-sql-server-2005.html' title='Using the PIVOT operator on SQL Server 2005+'/><author><name>Thiago M. Sayão</name><uri>http://www.blogger.com/profile/02570373698216968720</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiDw37xN0Xs7JurI2Ko6ziElCbgXmA2x2f3KFEX9AtFhOBS58dfi2kUDjEYG6X4964d8-gSd9GZYPSo9O88rtiGQ62yKaP9J-wH7t8-junvxKM__07rUShV1T0ZFdKp8XA/s220/msn2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5063764811340828743.post-459943799930519118</id><published>2009-07-30T21:04:00.002-03:00</published><updated>2010-07-21T21:05:14.690-03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="SQL Server"/><title type='text'>Tracking UPDATE changes on SQL Server 2005+ with the OUTPUT clause</title><summary type="text">  It is common to have to execute a mass update on some table, for example, to update a customer credit classification. When such updates are executed, you may want to know what has changed and maybe log it. There are several ways to do it, but i recently found one that makes it easier: the OUTPUT clause. First, we create a customer table for the example and populate it with some data:IF </summary><link rel='replies' type='application/atom+xml' href='http://tsayao.blogspot.com/feeds/459943799930519118/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tsayao.blogspot.com/2009/07/tracking-update-changes-on-sql-server.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5063764811340828743/posts/default/459943799930519118'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5063764811340828743/posts/default/459943799930519118'/><link rel='alternate' type='text/html' href='http://tsayao.blogspot.com/2009/07/tracking-update-changes-on-sql-server.html' title='Tracking UPDATE changes on SQL Server 2005+ with the OUTPUT clause'/><author><name>Thiago M. Sayão</name><uri>http://www.blogger.com/profile/02570373698216968720</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiDw37xN0Xs7JurI2Ko6ziElCbgXmA2x2f3KFEX9AtFhOBS58dfi2kUDjEYG6X4964d8-gSd9GZYPSo9O88rtiGQ62yKaP9J-wH7t8-junvxKM__07rUShV1T0ZFdKp8XA/s220/msn2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5063764811340828743.post-6039569682270198570</id><published>2009-07-27T20:45:00.004-03:00</published><updated>2010-07-21T21:05:31.961-03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Debug"/><category scheme="http://www.blogger.com/atom/ns#" term="Testing"/><title type='text'>Avoiding code execution when debugging or testing an ASP.net application</title><summary type="text">It is common to have some code that is part of some workflow and you don’t want it to execute when you are testing. For example, if your code sends an e-mail to some users, you don’t want to crud your users mail box with e-mails originated from your tests. Unless you are testing if sending the e-mail works, you can do this to test the rest of your code:        static void SendMail(string to, </summary><link rel='replies' type='application/atom+xml' href='http://tsayao.blogspot.com/feeds/6039569682270198570/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tsayao.blogspot.com/2009/07/avoiding-code-execution-when-debugging.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5063764811340828743/posts/default/6039569682270198570'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5063764811340828743/posts/default/6039569682270198570'/><link rel='alternate' type='text/html' href='http://tsayao.blogspot.com/2009/07/avoiding-code-execution-when-debugging.html' title='Avoiding code execution when debugging or testing an ASP.net application'/><author><name>Thiago M. Sayão</name><uri>http://www.blogger.com/profile/02570373698216968720</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiDw37xN0Xs7JurI2Ko6ziElCbgXmA2x2f3KFEX9AtFhOBS58dfi2kUDjEYG6X4964d8-gSd9GZYPSo9O88rtiGQ62yKaP9J-wH7t8-junvxKM__07rUShV1T0ZFdKp8XA/s220/msn2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5063764811340828743.post-8202862712082892536</id><published>2009-07-22T20:11:00.005-03:00</published><updated>2010-07-21T21:05:50.265-03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="ASP.net MVC"/><category scheme="http://www.blogger.com/atom/ns#" term="Caching"/><title type='text'>Caching HTML helpers on ASP.net MVC with optional SQL Cache Dependency</title><summary type="text">When thinking about performance, one of the top things that comes in mind is caching. Caching means that you will save some server resources by saving the result on the “first” time it’s processed.  With  ASP.net MVC, it’s common the use of HTML Helpers, that are just methods that return a resulting HTML. We can combine both and cache the resulting HTML on the first time the method is called, </summary><link rel='replies' type='application/atom+xml' href='http://tsayao.blogspot.com/feeds/8202862712082892536/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tsayao.blogspot.com/2009/07/caching-html-helpers-on-aspnet-mvc.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5063764811340828743/posts/default/8202862712082892536'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5063764811340828743/posts/default/8202862712082892536'/><link rel='alternate' type='text/html' href='http://tsayao.blogspot.com/2009/07/caching-html-helpers-on-aspnet-mvc.html' title='Caching HTML helpers on ASP.net MVC with optional SQL Cache Dependency'/><author><name>Thiago M. Sayão</name><uri>http://www.blogger.com/profile/02570373698216968720</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiDw37xN0Xs7JurI2Ko6ziElCbgXmA2x2f3KFEX9AtFhOBS58dfi2kUDjEYG6X4964d8-gSd9GZYPSo9O88rtiGQ62yKaP9J-wH7t8-junvxKM__07rUShV1T0ZFdKp8XA/s220/msn2.jpg'/></author><thr:total>0</thr:total></entry></feed>