<?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-2472756071286131509</id><updated>2024-10-25T03:24:53.287-07:00</updated><category term="ASP.NET MVC"/><category term="Water Rocket"/><title type='text'>mogadanez</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://mogadanez.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2472756071286131509/posts/default?redirect=false'/><link rel='alternate' type='text/html' href='http://mogadanez.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>mogadanez</name><uri>http://www.blogger.com/profile/03796151751595662909</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>9</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-2472756071286131509.post-2963858244773179655</id><published>2013-06-04T02:01:00.001-07:00</published><updated>2013-06-04T02:02:27.712-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Water Rocket"/><title type='text'></title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
I start another, not about software developing, blog about water rockets construction.&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;background-color: #edf4ff; color: #888888; font-family: Arial, Helvetica, sans-serif; font-size: 13px;&quot;&gt;&lt;a href=&quot;http://inskywithwater.blogspot.com/2013/06/here-i-plan-make-journal-about-my-water.html&quot;&gt;http://inskywithwater.blogspot.com/2013/06/here-i-plan-make-journal-about-my-water.html&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: #edf4ff; color: #888888; font-family: Arial, Helvetica, sans-serif; font-size: 13px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://mogadanez.blogspot.com/feeds/2963858244773179655/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://mogadanez.blogspot.com/2013/06/i-start-another-not-about-software.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2472756071286131509/posts/default/2963858244773179655'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2472756071286131509/posts/default/2963858244773179655'/><link rel='alternate' type='text/html' href='http://mogadanez.blogspot.com/2013/06/i-start-another-not-about-software.html' title=''/><author><name>mogadanez</name><uri>http://www.blogger.com/profile/03796151751595662909</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2472756071286131509.post-3909752193631346570</id><published>2013-05-21T05:57:00.000-07:00</published><updated>2013-05-21T05:57:07.619-07:00</updated><title type='text'>Yahoo has redesigned its Flickr photo-sharing service, offering users up to 1TB of storage without a fee.</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;br /&gt;
&lt;div style=&quot;font-family: Arial, Helvetica, sans-serif; font-size: 12px;&quot;&gt;
&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: Arial, Helvetica, sans-serif; font-size: 12px;&quot;&gt;
&lt;b&gt;Now for Free you get:&lt;/b&gt;&lt;/div&gt;
&lt;ul style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;
&lt;li style=&quot;font-size: 12px; line-height: 18px;&quot;&gt;1 Terabyte of photo and video storage&lt;/li&gt;
&lt;li style=&quot;font-size: 12px; line-height: 18px;&quot;&gt;Upload photos of up to 200MB per photo&lt;/li&gt;
&lt;li style=&quot;font-size: 12px; line-height: 18px;&quot;&gt;Upload 1080p HD videos of up to 1GB each&lt;/li&gt;
&lt;li style=&quot;font-size: 12px; line-height: 18px;&quot;&gt;Video playback of up to 3 minutes each&lt;/li&gt;
&lt;li style=&quot;font-size: 12px; line-height: 18px;&quot;&gt;Upload and download in full original quality&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://www.flickr.com/help/limits/&quot;&gt;http://www.flickr.com/help/limits/&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;http://www.flickr.com/&quot;&gt;http://www.flickr.com/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://mogadanez.blogspot.com/feeds/3909752193631346570/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://mogadanez.blogspot.com/2013/05/yahoo-has-redesigned-its-flickr-photo.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2472756071286131509/posts/default/3909752193631346570'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2472756071286131509/posts/default/3909752193631346570'/><link rel='alternate' type='text/html' href='http://mogadanez.blogspot.com/2013/05/yahoo-has-redesigned-its-flickr-photo.html' title='Yahoo has redesigned its Flickr photo-sharing service, offering users up to 1TB of storage without a fee.'/><author><name>mogadanez</name><uri>http://www.blogger.com/profile/03796151751595662909</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2472756071286131509.post-1535760961698151706</id><published>2011-12-06T13:00:00.000-08:00</published><updated>2011-12-06T13:00:29.339-08:00</updated><title type='text'>Feature Preview: Approval Manager 2012 | MetaCommunications Developer Center</title><content type='html'>&lt;a href=&quot;http://developer.meta-comm.com/19235#.Tt6CY6WYGFI.blogger&quot;&gt;Feature Preview: Approval Manager 2012 | MetaCommunications Developer Center&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://mogadanez.blogspot.com/feeds/1535760961698151706/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://mogadanez.blogspot.com/2011/12/feature-preview-approval-manager-2012.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2472756071286131509/posts/default/1535760961698151706'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2472756071286131509/posts/default/1535760961698151706'/><link rel='alternate' type='text/html' href='http://mogadanez.blogspot.com/2011/12/feature-preview-approval-manager-2012.html' title='Feature Preview: Approval Manager 2012 | MetaCommunications Developer Center'/><author><name>mogadanez</name><uri>http://www.blogger.com/profile/03796151751595662909</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2472756071286131509.post-6758550184380778342</id><published>2011-05-03T06:51:00.000-07:00</published><updated>2011-05-03T06:51:29.021-07:00</updated><title type='text'>MetaCommunications Releases Free Version of New Online Proofing &amp; Review Software</title><content type='html'>&lt;a href=&quot;http://www.prweb.com/releases/2011/5/prweb8371918.htm&quot;&gt;MetaCommunications Releases Free Version of New Online Proofing &amp;amp; Review Software&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://mogadanez.blogspot.com/feeds/6758550184380778342/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://mogadanez.blogspot.com/2011/05/metacommunications-releases-free.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2472756071286131509/posts/default/6758550184380778342'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2472756071286131509/posts/default/6758550184380778342'/><link rel='alternate' type='text/html' href='http://mogadanez.blogspot.com/2011/05/metacommunications-releases-free.html' title='MetaCommunications Releases Free Version of New Online Proofing &amp; Review Software'/><author><name>mogadanez</name><uri>http://www.blogger.com/profile/03796151751595662909</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2472756071286131509.post-4790902070436046613</id><published>2010-01-23T02:36:00.001-08:00</published><updated>2010-01-23T02:44:46.306-08:00</updated><title type='text'>How Silverlight update got my day OR BitmapCache stopping work with EnableGPUAcceleration when ToolTip shown</title><content type='html'>&lt;p&gt; &lt;/p&gt; &lt;span style=&quot;widows: 2; text-transform: none; text-indent: 0px; border-collapse: separate; font: medium &#39;Times New Roman&#39;; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px&quot; class=&quot;Apple-style-span&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;   style=&quot; ;font-family:arial;font-size:small;&quot;&gt;     &lt;p&gt;&lt;span style=&quot;font-size:100%;&quot;&gt;After upgrade to SL 3.0.50106 two days ago we got a problem with MultiScaleImage:&lt;/span&gt;&lt;/p&gt;      &lt;p&gt;&lt;span style=&quot;font-size:100%;&quot;&gt;when _hover_ mouse on element that has tooltip image in MultiScaleImage control twitches up about 100 –200  pixels, depending on controls layout.&lt;/span&gt;&lt;/p&gt;      &lt;p&gt;&lt;span style=&quot;font-size:100%;&quot;&gt;&lt;a href=&quot;http://www.screencast.com/t/OWEwOGJlNTU&quot; target=&quot;_blank&quot;&gt;Here is screencast of problem&lt;/a&gt;.&lt;/span&gt;&lt;/p&gt;      &lt;p&gt;&lt;span style=&quot;font-size:100%;&quot;&gt;&lt;/span&gt;&lt;/p&gt;      &lt;p&gt;&lt;span style=&quot;font-size:100%;&quot;&gt;MultiScaleImage restore his  original view on :&lt;/span&gt;&lt;/p&gt;      &lt;ul  style=&quot;border-bottom: #e9e6a8 2px solid; border-left: #e9e6a8 2px solid; padding-bottom: 5px; margin: 20px 50px; padding-left: 25px; padding-right: 5px; background: #fdf9d3 0px 0px;  border-top: #e9e6a8 2px solid; border-right: #e9e6a8 2px solid; padding-top: 5pxcolor:#6c640b;&quot;&gt;       &lt;li&gt;&lt;span style=&quot;font-size:100%;&quot;&gt;resize window&lt;/span&gt; &lt;/li&gt;        &lt;li&gt;&lt;span style=&quot;font-size:100%;&quot;&gt;programmatic do something with it( for example  _msi.ViewPortOrigin = _msi.ViewPortOrigin; )&lt;/span&gt; &lt;/li&gt;     &lt;/ul&gt;      &lt;p&gt;&lt;span style=&quot;font-size:100%;&quot;&gt;&lt;/span&gt;&lt;/p&gt;      &lt;p&gt;&lt;span style=&quot;font-size:100%;&quot;&gt;after day of research we found first that problem can be fixed by removing attribute from MultiScaleImage definition:&lt;/span&gt;&lt;/p&gt;      &lt;pre  style=&quot;border-bottom: #cecece 1px solid; border-left: #cecece 1px solid; padding-bottom: 15px; background- padding-left: 5px; width: 200px; padding-right: 5px; overflow: auto; border-top: #cecece 1px solid; border-right: #cecece 1px solid; padding-top: 15pxcolor:#fbfbfb;&quot;&gt;&lt;pre    style=&quot;background- margin: 0em; width: 100%;  font-family:consolas,&#39;Courier New&#39;,courier,monospace;font-size:12px;color:#fbfbfb;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;color:#3333FF;&quot;&gt;CacheMode&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;color:#3333FF;&quot;&gt;=&lt;/span&gt;&quot;&lt;span style=&quot;color:#8b0000;&quot;&gt;BitmapCache&lt;/span&gt;&quot;&lt;/pre&gt;&lt;/pre&gt;&lt;p&gt;&lt;span style=&quot;font-size:100%;&quot;&gt;And build minimalistic layout that reproduce problem: &lt;/span&gt;&lt;/p&gt;&lt;br /&gt; &lt;pre  style=&quot;border-bottom: #cecece 1px solid; border-left: #cecece 1px solid; padding-bottom: 5px; background- min-height: 40px; padding-left: 5px; width: 700px; padding-right: 5px; overflow: auto; border-top: #cecece 1px solid; border-right: #cecece 1px solid; padding-top: 5pxcolor:#fbfbfb;&quot;&gt;&lt;pre    style=&quot;background- margin: 0em; width: 100%;  font-family:consolas,&#39;Courier New&#39;,courier,monospace;font-size:12px;color:#fbfbfb;&quot;&gt; &lt;span style=&quot;color:#0000ff;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color:#800000;&quot;&gt;Grid&lt;/span&gt; &lt;span style=&quot;color:#0000ff;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;pre    style=&quot;background- margin: 0em; width: 100%;  font-family:consolas,&#39;Courier New&#39;,courier,monospace;font-size:12px;color:#fbfbfb;&quot;&gt;        &lt;span style=&quot;color:#0000ff;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color:#800000;&quot;&gt;Grid.RowDefinitions&lt;/span&gt;&lt;span style=&quot;color:#0000ff;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;pre    style=&quot;background- margin: 0em; width: 100%;  font-family:consolas,&#39;Courier New&#39;,courier,monospace;font-size:12px;color:#fbfbfb;&quot;&gt;            &lt;span style=&quot;color:#0000ff;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color:#800000;&quot;&gt;RowDefinition&lt;/span&gt; &lt;span style=&quot;color:#ff0000;&quot;&gt;Height&lt;/span&gt;=&lt;span style=&quot;color:#0000ff;&quot;&gt;&quot;80&quot;&lt;/span&gt;&lt;span style=&quot;color:#0000ff;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color:#0000ff;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color:#800000;&quot;&gt;RowDefinition&lt;/span&gt;&lt;span style=&quot;color:#0000ff;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;pre    style=&quot;background- margin: 0em; width: 100%;  font-family:consolas,&#39;Courier New&#39;,courier,monospace;font-size:12px;color:#fbfbfb;&quot;&gt;            &lt;span style=&quot;color:#0000ff;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color:#800000;&quot;&gt;RowDefinition&lt;/span&gt; &lt;span style=&quot;color:#ff0000;&quot;&gt;Height&lt;/span&gt;=&lt;span style=&quot;color:#0000ff;&quot;&gt;&quot;*&quot;&lt;/span&gt;&lt;span style=&quot;color:#0000ff;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color:#0000ff;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color:#800000;&quot;&gt;RowDefinition&lt;/span&gt;&lt;span style=&quot;color:#0000ff;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;pre    style=&quot;background- margin: 0em; width: 100%;  font-family:consolas,&#39;Courier New&#39;,courier,monospace;font-size:12px;color:#fbfbfb;&quot;&gt;        &lt;span style=&quot;color:#0000ff;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color:#800000;&quot;&gt;Grid.RowDefinitions&lt;/span&gt;&lt;span style=&quot;color:#0000ff;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;pre    style=&quot;background- margin: 0em; width: 100%;  font-family:consolas,&#39;Courier New&#39;,courier,monospace;font-size:12px;color:#fbfbfb;&quot;&gt;        &lt;span style=&quot;color:#0000ff;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color:#800000;&quot;&gt;StackPanel&lt;/span&gt;  &lt;span style=&quot;color:#ff0000;&quot;&gt;Orientation&lt;/span&gt;=&lt;span style=&quot;color:#0000ff;&quot;&gt;&quot;Horizontal&quot;&lt;/span&gt; &lt;span style=&quot;color:#ff0000;&quot;&gt;Height&lt;/span&gt;=&lt;span style=&quot;color:#0000ff;&quot;&gt;&quot;25&quot;&lt;/span&gt; &lt;span style=&quot;color:#0000ff;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;pre    style=&quot;background- margin: 0em; width: 100%;  font-family:consolas,&#39;Courier New&#39;,courier,monospace;font-size:12px;color:#fbfbfb;&quot;&gt;            &lt;span style=&quot;color:#0000ff;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color:#800000;&quot;&gt;Button&lt;/span&gt; &lt;span style=&quot;color:#ff0000;&quot;&gt;Content&lt;/span&gt;=&lt;span style=&quot;color:#0000ff;&quot;&gt;&quot;Hover me and get OK(NO TOOLTIP)&quot;&lt;/span&gt;&lt;span style=&quot;color:#0000ff;&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;pre    style=&quot;background- margin: 0em; width: 100%;  font-family:consolas,&#39;Courier New&#39;,courier,monospace;font-size:12px;color:#fbfbfb;&quot;&gt;            &lt;span style=&quot;color:#0000ff;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color:#800000;&quot;&gt;Button&lt;/span&gt; &lt;span style=&quot;color:#ff0000;&quot;&gt;Content&lt;/span&gt;=&lt;span style=&quot;color:#0000ff;&quot;&gt;&quot;Hover me and get BUG(TOOLTIP)&quot;&lt;/span&gt; &lt;span style=&quot;color:#ff0000;&quot;&gt;ToolTipService&lt;/span&gt;.&lt;span style=&quot;color:#ff0000;&quot;&gt;Placement&lt;/span&gt;=&lt;span style=&quot;color:#0000ff;&quot;&gt;&quot;Mouse&quot;&lt;/span&gt; &lt;span style=&quot;color:#ff0000;&quot;&gt;ToolTipService&lt;/span&gt;.&lt;span style=&quot;color:#ff0000;&quot;&gt;ToolTip&lt;/span&gt;=&lt;span style=&quot;color:#0000ff;&quot;&gt;&quot;TEST TOOLTIP&quot;&lt;/span&gt; &lt;span style=&quot;color:#0000ff;&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;pre    style=&quot;background- margin: 0em; width: 100%;  font-family:consolas,&#39;Courier New&#39;,courier,monospace;font-size:12px;color:#fbfbfb;&quot;&gt;         &lt;span style=&quot;color:#0000ff;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color:#800000;&quot;&gt;StackPanel&lt;/span&gt;&lt;span style=&quot;color:#0000ff;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;pre    style=&quot;background- margin: 0em; width: 100%;  font-family:consolas,&#39;Courier New&#39;,courier,monospace;font-size:12px;color:#fbfbfb;&quot;&gt;    &lt;br /&gt;&lt;/pre&gt;&lt;pre    style=&quot;background- margin: 0em; width: 100%;  font-family:consolas,&#39;Courier New&#39;,courier,monospace;font-size:12px;color:#fbfbfb;&quot;&gt;        &lt;span style=&quot;color:#0000ff;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color:#800000;&quot;&gt;MultiScaleImage&lt;/span&gt;   &lt;span style=&quot;color:#ff0000;&quot;&gt;Grid&lt;/span&gt;.&lt;span style=&quot;color:#ff0000;&quot;&gt;Row&lt;/span&gt;=&lt;span style=&quot;color:#0000ff;&quot;&gt;&quot;1&quot;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;pre    style=&quot;background- margin: 0em; width: 100%;  font-family:consolas,&#39;Courier New&#39;,courier,monospace;font-size:12px;color:#fbfbfb;&quot;&gt;                          &lt;span style=&quot;color:#ff0000;&quot;&gt;x&lt;/span&gt;:&lt;span style=&quot;color:#ff0000;&quot;&gt;Name&lt;/span&gt;=&lt;span style=&quot;color:#0000ff;&quot;&gt;&quot;_msi&quot;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;pre    style=&quot;background- margin: 0em; width: 100%;  font-family:consolas,&#39;Courier New&#39;,courier,monospace;font-size:12px;color:#fbfbfb;&quot;&gt;                          &lt;span style=&quot;color:#ff0000;&quot;&gt;Width&lt;/span&gt;=&lt;span style=&quot;color:#0000ff;&quot;&gt;&quot;750&quot;&lt;/span&gt; &lt;span style=&quot;color:#ff0000;&quot;&gt;Height&lt;/span&gt;=&lt;span style=&quot;color:#0000ff;&quot;&gt;&quot;450&quot;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;pre    style=&quot;background- margin: 0em; width: 100%;  font-family:consolas,&#39;Courier New&#39;,courier,monospace;font-size:12px;color:#fbfbfb;&quot;&gt;                          &lt;span style=&quot;color:#ff0000;&quot;&gt;Source&lt;/span&gt;=&lt;span style=&quot;color:#0000ff;&quot;&gt;&quot;dz.xml&quot;&lt;/span&gt; &lt;span style=&quot;color:#ff0000;&quot;&gt;CacheMode&lt;/span&gt;=&lt;span style=&quot;color:#0000ff;&quot;&gt;&quot;BitmapCache&quot;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;pre    style=&quot;background- margin: 0em; width: 100%;  font-family:consolas,&#39;Courier New&#39;,courier,monospace;font-size:12px;color:#fbfbfb;&quot;&gt;                            &lt;span style=&quot;color:#ff0000;&quot;&gt;ViewportOrigin&lt;/span&gt;=&lt;span style=&quot;color:#0000ff;&quot;&gt;&quot;0, -0.07&quot;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;pre style=&quot;background- margin: 0em; width: 100%;  font-family:consolas,&#39;Courier New&#39;,courier,monospace;font-size:12px;color:#fbfbfb;&quot;&gt;                          &lt;span style=&quot;color:#0000ff;&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;pre style=&quot;background- margin: 0em; width: 100%;  font-family:consolas,&#39;Courier New&#39;,courier,monospace;font-size:12px;color:#fbfbfb;&quot;&gt;    &lt;br /&gt;&lt;/pre&gt;&lt;pre    style=&quot;background- margin: 0em; width: 100%;  font-family:consolas,&#39;Courier New&#39;,courier,monospace;font-size:12px;color:#fbfbfb;&quot;&gt;    &lt;span style=&quot;color:#0000ff;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color:#800000;&quot;&gt;Grid&lt;/span&gt;&lt;span style=&quot;color:#0000ff;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;/pre&gt;&lt;br /&gt;but in a clear project it was not reproduced – it was worked fine with CacheMode. And for that time we was not have any clue why this shit happens. But There were few options where problem can be:&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-size:100%;&quot;&gt;&lt;ul&gt;        &lt;li&gt;How we host Silverlight app on page.&lt;/li&gt;        &lt;li&gt;Custom script on same page that detects that Silverlight installed.&lt;br /&gt;    &lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;    &lt;/span&gt;&lt;p&gt;&lt;span style=&quot;font-size:100%;&quot;&gt;At first sight on a piece upon me has dawned. We have a GPU Acceleration enabled. Disabling of this option has eliminated a problem&lt;span style=&quot;font-family:Verdana;color:#4c4c4c;&quot;&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;    &lt;pre  style=&quot;border-bottom: #cecece 1px solid; border-left: #cecece 1px solid; padding-bottom: 15px; background- padding-left: 5px; width: 400px; padding-right: 5px; overflow: auto; border-top: #cecece 1px solid; border-right: #cecece 1px solid; padding-top: 15pxcolor:#fbfbfb;&quot;&gt;&lt;pre face=&quot;consolas,&#39;Courier New&#39;,courier,monospace&quot; size=&quot;12px&quot; color=&quot;#fbfbfb&quot; style=&quot;background- margin: 0em; width: 100%;  &quot;&gt;&lt;span style=&quot;color:#0000ff;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color:#800000;&quot;&gt;param&lt;/span&gt; &lt;span style=&quot;color:#ff0000;&quot;&gt;name&lt;/span&gt;=&lt;span style=&quot;color:#0000ff;&quot;&gt;&quot;EnableGPUAcceleration&quot;&lt;/span&gt; &lt;span style=&quot;color:#ff0000;&quot;&gt;value&lt;/span&gt;=&lt;span style=&quot;color:#0000ff;&quot;&gt;&quot;true&quot;&lt;/span&gt;&lt;span style=&quot;color:#0000ff;&quot;&gt;/&amp;gt;&lt;/span&gt; &lt;/pre&gt;&lt;/pre&gt;&lt;p&gt;&lt;span style=&quot;font-size:100%;&quot;&gt;More precisely problem reproduced when follow combination of options used:&lt;/span&gt;&lt;/p&gt;    &lt;ul style=&quot;border-bottom: #ff999e 2px solid; border-left: #ff999e 2px solid; padding-bottom: 5px; margin: 20px 50px; padding-left: 25px; padding-right: 5px; background: #ffe5ce 0px 0px; color: #6c640b; border-top: #ff999e 2px solid; border-right: #ff999e 2px solid; padding-top: 5px&quot;&gt;&lt;br /&gt;   &lt;li&gt;CacheMode=&quot;BitmapCache&quot; &lt;/li&gt;&lt;br /&gt;&lt;br /&gt;   &lt;li&gt;GPU Acceleration used &lt;/li&gt;&lt;br /&gt;&lt;br /&gt;   &lt;li&gt;ViewPortOrigin  is negative on X or Y.  More one, size of ViewPortOrigin  influences how much image twitches &lt;/li&gt;&lt;br /&gt; &lt;/ul&gt;  &lt;/span&gt;&lt;/span&gt;&lt;p&gt;&lt;span style=&quot;font-family:ari;font-size:100%;&quot;&gt;So if you use  options above, you are in risk group.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-family:ari;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: medium;&quot;&gt;&lt;a href=&quot;http://support.microsoft.com/default.aspx/kb/979202&quot;&gt;By description of update 3.0.50106&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-family:ari;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: medium;&quot;&gt;it have changes both in GpuAcceleration and in DeepZoom optimization. So seems that was cause a problem&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-family:ari;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: medium;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;http://dl.dropbox.com/u/760909/SilverlightToolTipProblem.zip&quot; target=&quot;_blank&quot;&gt;Download test project (3.7 Mb)&lt;/a&gt;&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://mogadanez.blogspot.com/feeds/4790902070436046613/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://mogadanez.blogspot.com/2010/01/how-silverlight-update-got-my-day-or.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2472756071286131509/posts/default/4790902070436046613'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2472756071286131509/posts/default/4790902070436046613'/><link rel='alternate' type='text/html' href='http://mogadanez.blogspot.com/2010/01/how-silverlight-update-got-my-day-or.html' title='How Silverlight update got my day OR BitmapCache stopping work with EnableGPUAcceleration when ToolTip shown'/><author><name>mogadanez</name><uri>http://www.blogger.com/profile/03796151751595662909</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2472756071286131509.post-7902201708097951420</id><published>2010-01-12T12:50:00.001-08:00</published><updated>2010-01-13T00:10:35.618-08:00</updated><title type='text'>Using Generic CRUD Controllers in ASP.NET MVC. part 1</title><content type='html'>&lt;p&gt;Since making some projects on ASP.NET MVC, i got a question – why&amp;#160; generic repositories is widespread, but generic controllers is not.&lt;/p&gt;  &lt;p&gt;What is controller? In DDD Architecture it just dispatcher between other subsystems. And in similar scenarios ( like is CRUD ), way of dispatching will be identical. For example: typical Edit Action:&lt;/p&gt;  &lt;pre style=&quot;border-bottom: #cecece 1px solid; border-left: #cecece 1px solid; padding-bottom: 5px; background-color: #fbfbfb; min-height: 40px; padding-left: 5px; width: 800px; padding-right: 5px; overflow: auto; border-top: #cecece 1px solid; border-right: #cecece 1px solid; padding-top: 5px&quot;&gt;&lt;pre style=&quot;background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px&quot;&gt;        &lt;span style=&quot;color: #0000ff&quot;&gt;public&lt;/span&gt; ActionResult Edit(&lt;span style=&quot;color: #0000ff&quot;&gt;int&lt;/span&gt; id)&lt;br /&gt;&lt;/pre&gt;&lt;pre style=&quot;background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px&quot;&gt;        {&lt;br /&gt;&lt;/pre&gt;&lt;pre style=&quot;background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px&quot;&gt;            Entity entity = _repository.Get(id);&lt;br /&gt;&lt;/pre&gt;&lt;pre style=&quot;background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px&quot;&gt;            &lt;span style=&quot;color: #0000ff&quot;&gt;if&lt;/span&gt; (entity == &lt;span style=&quot;color: #0000ff&quot;&gt;null&lt;/span&gt;) &lt;span style=&quot;color: #0000ff&quot;&gt;return&lt;/span&gt; RedirectToAction(&amp;quot;&lt;span style=&quot;color: #8b0000&quot;&gt;ObjectNotFound&lt;/span&gt;&amp;quot;);&lt;br /&gt;&lt;/pre&gt;&lt;pre style=&quot;background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px&quot;&gt;            &lt;span style=&quot;color: #0000ff&quot;&gt;if&lt;/span&gt; (!_security.CanView(entity, LoggedUser)) &lt;span style=&quot;color: #0000ff&quot;&gt;return&lt;/span&gt; RedirectToAction(&amp;quot;&lt;span style=&quot;color: #8b0000&quot;&gt;ObjectNotFound&lt;/span&gt;&amp;quot;);&lt;br /&gt;&lt;/pre&gt;&lt;pre style=&quot;background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px&quot;&gt;            &lt;span style=&quot;color: #0000ff&quot;&gt;return&lt;/span&gt; View(&amp;quot;&lt;span style=&quot;color: #8b0000&quot;&gt;Edit&lt;/span&gt;&amp;quot;, &amp;quot;&lt;span style=&quot;color: #8b0000&quot;&gt;Personal&lt;/span&gt;&amp;quot;, mapper.to&amp;lt;ViewModel&amp;gt;( entity ) );        &lt;br /&gt;&lt;/pre&gt;&lt;pre style=&quot;background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px&quot;&gt;        }&lt;br /&gt;&lt;/pre&gt;&lt;pre style=&quot;background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px&quot;&gt;&lt;/pre&gt;&lt;pre style=&quot;background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px&quot;&gt;        [AcceptVerbs(HttpVerbs.Post)]&lt;br /&gt;&lt;/pre&gt;&lt;pre style=&quot;background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px&quot;&gt;        &lt;span style=&quot;color: #0000ff&quot;&gt;public&lt;/span&gt; ActionResult Edit(ViewModel model)&lt;br /&gt;&lt;/pre&gt;&lt;pre style=&quot;background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px&quot;&gt;        {&lt;br /&gt;&lt;/pre&gt;&lt;pre style=&quot;background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px&quot;&gt;            Entity entity = model.EntityId.HasValue ? _repository.Get(model.EntityId.Value) : &lt;span style=&quot;color: #0000ff&quot;&gt;null&lt;/span&gt;;&lt;br /&gt;&lt;/pre&gt;&lt;pre style=&quot;background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px&quot;&gt;            &lt;span style=&quot;color: #0000ff&quot;&gt;if&lt;/span&gt; (entity == &lt;span style=&quot;color: #0000ff&quot;&gt;null&lt;/span&gt;) &lt;span style=&quot;color: #0000ff&quot;&gt;return&lt;/span&gt; RedirectToAction(&amp;quot;&lt;span style=&quot;color: #8b0000&quot;&gt;ObjectNotFound&lt;/span&gt;&amp;quot;);&lt;br /&gt;&lt;/pre&gt;&lt;pre style=&quot;background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px&quot;&gt;            &lt;span style=&quot;color: #0000ff&quot;&gt;if&lt;/span&gt; (!_security.CanUpdate(entity, LoggedUser)) &lt;span style=&quot;color: #0000ff&quot;&gt;return&lt;/span&gt; RedirectToAction(&amp;quot;&lt;span style=&quot;color: #8b0000&quot;&gt;NotEnoughPermissions&lt;/span&gt;&amp;quot;);&lt;br /&gt;&lt;/pre&gt;&lt;pre style=&quot;background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px&quot;&gt;            &lt;span style=&quot;color: #0000ff&quot;&gt;if&lt;/span&gt; ( !entity.IsValid )                &lt;br /&gt;&lt;/pre&gt;&lt;pre style=&quot;background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px&quot;&gt;             &lt;span style=&quot;color: #0000ff&quot;&gt;return&lt;/span&gt; View(&amp;quot;&lt;span style=&quot;color: #8b0000&quot;&gt;Edit&lt;/span&gt;&amp;quot;, &amp;quot;&lt;span style=&quot;color: #8b0000&quot;&gt;Personal&lt;/span&gt;&amp;quot;, mapper.to&amp;lt;ViewModel&amp;gt;( entity ) );&lt;br /&gt;&lt;/pre&gt;&lt;pre style=&quot;background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px&quot;&gt;            &lt;span style=&quot;color: #0000ff&quot;&gt;else&lt;/span&gt;  &lt;br /&gt;&lt;/pre&gt;&lt;pre style=&quot;background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px&quot;&gt;&lt;/pre&gt;&lt;pre style=&quot;background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px&quot;&gt;            &lt;span style=&quot;color: #0000ff&quot;&gt;using&lt;/span&gt; (ITransaction tr = NHibernateSession.Current.BeginTransaction())&lt;br /&gt;&lt;/pre&gt;&lt;pre style=&quot;background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px&quot;&gt;            {&lt;br /&gt;&lt;/pre&gt;&lt;pre style=&quot;background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px&quot;&gt;                entity = _service.Update(entity, model, LoggedUser);&lt;br /&gt;&lt;/pre&gt;&lt;pre style=&quot;background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px&quot;&gt;                _repository.SaveOrUpdate(entity);&lt;br /&gt;&lt;/pre&gt;&lt;pre style=&quot;background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px&quot;&gt;                tr.Commit();&lt;br /&gt;&lt;/pre&gt;&lt;pre style=&quot;background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px&quot;&gt;                &lt;span style=&quot;color: #0000ff&quot;&gt;return&lt;/span&gt; RedirectToAction(&amp;quot;&lt;span style=&quot;color: #8b0000&quot;&gt;View&lt;/span&gt;&amp;quot;, &lt;span style=&quot;color: #0000ff&quot;&gt;new&lt;/span&gt; { id = entity.Id, username = LoggedUser.Login });&lt;br /&gt;&lt;/pre&gt;&lt;pre style=&quot;background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px&quot;&gt;            }&lt;br /&gt;&lt;/pre&gt;&lt;pre style=&quot;background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px&quot;&gt;        }&lt;br /&gt;&lt;/pre&gt;&lt;pre style=&quot;background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px&quot;&gt;&lt;/pre&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;All lines is Generic&amp;#160; for most controllers. All that is necessary -&amp;#160; extract generic types in base class and specify it in concrete realization. Also we need some constrains:&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre style=&quot;border-bottom: #cecece 1px solid; border-left: #cecece 1px solid; padding-bottom: 5px; background-color: #fbfbfb; min-height: 40px; padding-left: 5px; width: 800px; padding-right: 5px; overflow: auto; border-top: #cecece 1px solid; border-right: #cecece 1px solid; padding-top: 5px&quot;&gt;&lt;pre style=&quot;background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px&quot;&gt; &lt;span style=&quot;color: #0000ff&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: #0000ff&quot;&gt;abstract&lt;/span&gt; &lt;span style=&quot;color: #0000ff&quot;&gt;class&lt;/span&gt; CrudController&amp;lt;TEntity, TRepository, TService, TViewModel&amp;gt; :&lt;br /&gt;&lt;/pre&gt;&lt;pre style=&quot;background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px&quot;&gt;        PersonalPostController&amp;lt;TEntity, TRepository, TService, TViewModel&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;pre style=&quot;background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px&quot;&gt;        where TEntity : Entity&lt;br /&gt;&lt;/pre&gt;&lt;pre style=&quot;background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px&quot;&gt;        where TRepository : IRepository&amp;lt;TEntity&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;pre style=&quot;background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px&quot;&gt;        where TService : IBaseEntityService&amp;lt;TEntity,TViewModel&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;pre style=&quot;background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px&quot;&gt;        where TViewModel: EntityViewModel&amp;lt;TEnity&amp;gt; - optional&lt;br /&gt;&lt;/pre&gt;&lt;pre style=&quot;background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px&quot;&gt;    {&lt;br /&gt;&lt;/pre&gt;&lt;pre style=&quot;background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px&quot;&gt;    &lt;span style=&quot;color: #0000ff&quot;&gt;protected&lt;/span&gt; CrudController(TRepository repository, TService service )&lt;br /&gt;&lt;/pre&gt;&lt;pre style=&quot;background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px&quot;&gt;        {&lt;br /&gt;&lt;/pre&gt;&lt;pre style=&quot;background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px&quot;&gt;        _repository = repository;&lt;br /&gt;&lt;/pre&gt;&lt;pre style=&quot;background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px&quot;&gt;        _service = service;&lt;br /&gt;&lt;/pre&gt;&lt;pre style=&quot;background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px&quot;&gt;        }&lt;br /&gt;&lt;/pre&gt;&lt;pre style=&quot;background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px&quot;&gt;..........&lt;br /&gt;&lt;/pre&gt;&lt;pre style=&quot;background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px&quot;&gt;    &lt;span style=&quot;color: #0000ff&quot;&gt;public&lt;/span&gt; ActionResult Edit(&lt;span style=&quot;color: #0000ff&quot;&gt;int&lt;/span&gt; id)&lt;br /&gt;&lt;/pre&gt;&lt;pre style=&quot;background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px&quot;&gt;        {&lt;br /&gt;&lt;/pre&gt;&lt;pre style=&quot;background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px&quot;&gt;            TEntity entity = _repository.Get(id);&lt;br /&gt;&lt;/pre&gt;&lt;pre style=&quot;background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px&quot;&gt;            &lt;span style=&quot;color: #0000ff&quot;&gt;if&lt;/span&gt; (entity == &lt;span style=&quot;color: #0000ff&quot;&gt;null&lt;/span&gt;) &lt;span style=&quot;color: #0000ff&quot;&gt;return&lt;/span&gt; RedirectToAction(&amp;quot;&lt;span style=&quot;color: #8b0000&quot;&gt;ObjectNotFound&lt;/span&gt;&amp;quot;);&lt;br /&gt;&lt;/pre&gt;&lt;pre style=&quot;background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px&quot;&gt;            &lt;span style=&quot;color: #0000ff&quot;&gt;if&lt;/span&gt; (!_security.CanView(entity, LoggedUser)) &lt;span style=&quot;color: #0000ff&quot;&gt;return&lt;/span&gt; RedirectToAction(&amp;quot;&lt;span style=&quot;color: #8b0000&quot;&gt;ObjectNotFound&lt;/span&gt;&amp;quot;);&lt;br /&gt;&lt;/pre&gt;&lt;pre style=&quot;background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px&quot;&gt;            &lt;span style=&quot;color: #0000ff&quot;&gt;return&lt;/span&gt; View(&amp;quot;&lt;span style=&quot;color: #8b0000&quot;&gt;Edit&lt;/span&gt;&amp;quot;, &amp;quot;&lt;span style=&quot;color: #8b0000&quot;&gt;Personal&lt;/span&gt;&amp;quot;, mapper.to&amp;lt;TViewModel&amp;gt;( entity ) );&lt;br /&gt;&lt;/pre&gt;&lt;pre style=&quot;background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px&quot;&gt;        }&lt;br /&gt;&lt;/pre&gt;&lt;pre style=&quot;background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px&quot;&gt;        &lt;br /&gt;&lt;/pre&gt;&lt;pre style=&quot;background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px&quot;&gt;        [AcceptVerbs(HttpVerbs.Post)]&lt;br /&gt;&lt;/pre&gt;&lt;pre style=&quot;background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px&quot;&gt;        &lt;span style=&quot;color: #0000ff&quot;&gt;public&lt;/span&gt; ActionResult Edit(TViewModel model)&lt;br /&gt;&lt;/pre&gt;&lt;pre style=&quot;background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px&quot;&gt;        {&lt;br /&gt;&lt;/pre&gt;&lt;pre style=&quot;background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px&quot;&gt;            TEntity entity = model.EntityId.HasValue ? _repository.Get(model.EntityId.Value) : &lt;span style=&quot;color: #0000ff&quot;&gt;null&lt;/span&gt;;&lt;br /&gt;&lt;/pre&gt;&lt;pre style=&quot;background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px&quot;&gt;            &lt;span style=&quot;color: #0000ff&quot;&gt;if&lt;/span&gt; (entity == &lt;span style=&quot;color: #0000ff&quot;&gt;null&lt;/span&gt;) &lt;span style=&quot;color: #0000ff&quot;&gt;return&lt;/span&gt; RedirectToAction(&amp;quot;&lt;span style=&quot;color: #8b0000&quot;&gt;ObjectNotFound&lt;/span&gt;&amp;quot;);&lt;br /&gt;&lt;/pre&gt;&lt;pre style=&quot;background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px&quot;&gt;            &lt;span style=&quot;color: #0000ff&quot;&gt;if&lt;/span&gt; (!_security.CanUpdate(entity, LoggedUser)) &lt;span style=&quot;color: #0000ff&quot;&gt;return&lt;/span&gt; RedirectToAction(&amp;quot;&lt;span style=&quot;color: #8b0000&quot;&gt;NotEnoughPermissions&lt;/span&gt;&amp;quot;);&lt;br /&gt;&lt;/pre&gt;&lt;pre style=&quot;background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px&quot;&gt;            &lt;span style=&quot;color: #0000ff&quot;&gt;if&lt;/span&gt; ( !entity.IsValid )                &lt;br /&gt;&lt;/pre&gt;&lt;pre style=&quot;background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px&quot;&gt;             &lt;span style=&quot;color: #0000ff&quot;&gt;return&lt;/span&gt; View(&amp;quot;&lt;span style=&quot;color: #8b0000&quot;&gt;Edit&lt;/span&gt;&amp;quot;, &amp;quot;&lt;span style=&quot;color: #8b0000&quot;&gt;Personal&lt;/span&gt;&amp;quot;, mapper.to&amp;lt;TViewModel&amp;gt;( entity ) );&lt;br /&gt;&lt;/pre&gt;&lt;pre style=&quot;background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px&quot;&gt;            &lt;span style=&quot;color: #0000ff&quot;&gt;else&lt;/span&gt;  &lt;br /&gt;&lt;/pre&gt;&lt;pre style=&quot;background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px&quot;&gt;            &lt;span style=&quot;color: #0000ff&quot;&gt;using&lt;/span&gt; (ITransaction tr = NHibernateSession.Current.BeginTransaction())&lt;br /&gt;&lt;/pre&gt;&lt;pre style=&quot;background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px&quot;&gt;            {&lt;br /&gt;&lt;/pre&gt;&lt;pre style=&quot;background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px&quot;&gt;                entity = _service.Update(entity, model, LoggedUser);&lt;br /&gt;&lt;/pre&gt;&lt;pre style=&quot;background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px&quot;&gt;                _repository.SaveOrUpdate(entity);&lt;br /&gt;&lt;/pre&gt;&lt;pre style=&quot;background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px&quot;&gt;                tr.Commit();&lt;br /&gt;&lt;/pre&gt;&lt;pre style=&quot;background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px&quot;&gt;                &lt;span style=&quot;color: #0000ff&quot;&gt;return&lt;/span&gt; RedirectToAction(&amp;quot;&lt;span style=&quot;color: #8b0000&quot;&gt;View&lt;/span&gt;&amp;quot;, &lt;span style=&quot;color: #0000ff&quot;&gt;new&lt;/span&gt; { id = entity.Id, username = LoggedUser.Login });&lt;br /&gt;&lt;/pre&gt;&lt;pre style=&quot;background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px&quot;&gt;            }&lt;br /&gt;&lt;/pre&gt;&lt;pre style=&quot;background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px&quot;&gt;        }&lt;br /&gt;&lt;/pre&gt;&lt;pre style=&quot;background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px&quot;&gt;    }&lt;br /&gt;&lt;/pre&gt;&lt;pre style=&quot;background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px&quot;&gt;&lt;/pre&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;For each entity we have just follow:&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre style=&quot;border-bottom: #cecece 1px solid; border-left: #cecece 1px solid; padding-bottom: 5px; background-color: #fbfbfb; min-height: 40px; padding-left: 5px; width: 800px; padding-right: 5px; overflow: auto; border-top: #cecece 1px solid; border-right: #cecece 1px solid; padding-top: 5px&quot;&gt;&lt;pre style=&quot;background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px&quot;&gt;&lt;span style=&quot;color: #0000ff&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: #0000ff&quot;&gt;class&lt;/span&gt; UsersControlles:CrudConrtoller&amp;lt;User, IUserRepository, IUserService, UserViewModel&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;pre style=&quot;background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px&quot;&gt;{&lt;br /&gt;&lt;/pre&gt;&lt;pre style=&quot;background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px&quot;&gt;    &lt;span style=&quot;color: #0000ff&quot;&gt;public&lt;/span&gt; UsersControlles( IUserRepository repository, IUserService service ): &lt;span style=&quot;color: #0000ff&quot;&gt;base&lt;/span&gt;(repository, service)&lt;br /&gt;&lt;/pre&gt;&lt;pre style=&quot;background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px&quot;&gt;       {}&lt;br /&gt;&lt;/pre&gt;&lt;pre style=&quot;background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px&quot;&gt;&lt;/pre&gt;&lt;pre style=&quot;background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px&quot;&gt;}&lt;/pre&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&amp;#160;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;in Next part i plan show how can do some strategies with different types of entities and go deep into TService implementation&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://mogadanez.blogspot.com/feeds/7902201708097951420/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://mogadanez.blogspot.com/2010/01/using-generic-crud-controllers-part-1.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2472756071286131509/posts/default/7902201708097951420'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2472756071286131509/posts/default/7902201708097951420'/><link rel='alternate' type='text/html' href='http://mogadanez.blogspot.com/2010/01/using-generic-crud-controllers-part-1.html' title='Using Generic CRUD Controllers in ASP.NET MVC. part 1'/><author><name>mogadanez</name><uri>http://www.blogger.com/profile/03796151751595662909</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2472756071286131509.post-2936810903961390031</id><published>2009-09-27T09:06:00.001-07:00</published><updated>2010-02-04T22:23:31.135-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="ASP.NET MVC"/><title type='text'>Step by step Migrating  and mixing ASP.NET Web Forms to ASP.NET MVC</title><content type='html'>&lt;span class=&quot;Apple-style-span&quot; style=&quot;-webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; border-collapse: separate; color: black; font: normal normal normal medium/normal &#39;Times New Roman&#39;; letter-spacing: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #4c4c4c; font-family: verdana, tahoma, helvetica, sans-serif; font-size: 12px; text-align: left; white-space: pre-wrap;&quot;&gt;We have a big product on classic ASP.NET Web Forms. It really big therefore is not possibly to rewrite it on MVC for time      &lt;br /&gt;
&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;-webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; border-collapse: separate; color: black; font: normal normal normal medium/normal &#39;Times New Roman&#39;; letter-spacing: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #4c4c4c; font-family: verdana, tahoma, helvetica, sans-serif; font-size: 12px; text-align: left; white-space: pre-wrap;&quot;&gt;We wish to write a new code on ASP.NET MVC, step-by-step copying old as far as possible. But  application is &lt;span class=&quot;Apple-style-span&quot; style=&quot;-webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; border-collapse: separate; color: black; font: normal normal normal medium/normal &#39;Times New Roman&#39;; letter-spacing: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #4c4c4c; font-family: verdana, tahoma, helvetica, sans-serif; font-size: 12px; text-align: left; white-space: pre-wrap;&quot;&gt;very separated into small components. And  from one side we cannot create new ASP.NET MVC page without possibility to use old components from MVC views. And cannot create new MVC parts/components without possibility to render it on old Web Forms pages. &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;-webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; border-collapse: separate; color: black; font: normal normal normal medium/normal &#39;Times New Roman&#39;; letter-spacing: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #4c4c4c; font-family: verdana, tahoma, helvetica, sans-serif; font-size: 12px; text-align: left; white-space: pre-wrap;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;-webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; border-collapse: separate; color: black; font: normal normal normal medium/normal &#39;Times New Roman&#39;; letter-spacing: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #4c4c4c; font-family: verdana, tahoma, helvetica, sans-serif; font-size: 12px; text-align: left; white-space: pre-wrap;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;-webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; border-collapse: separate; color: black; font: normal normal normal medium/normal &#39;Times New Roman&#39;; letter-spacing: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #4c4c4c; font-family: verdana, tahoma, helvetica, sans-serif; font-size: 12px; text-align: left; white-space: pre-wrap;&quot;&gt;I’m not sure that it is a good idea to use Web Forms components from MVC views, because many concepts form Web Forms simply not works in MVC, and many code should be rewritten ( such as event handlers, something stored in  ViewState etc. ). In this case seems that more reasonable rewrite  Web Forms Components at all.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;-webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; border-collapse: separate; color: black; font: normal normal normal medium/normal &#39;Times New Roman&#39;; letter-spacing: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #4c4c4c; font-family: verdana, tahoma, helvetica, sans-serif; font-size: 12px; text-align: left; white-space: pre-wrap;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;-webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; border-collapse: separate; color: black; font: normal normal normal medium/normal &#39;Times New Roman&#39;; letter-spacing: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #4c4c4c; font-family: verdana, tahoma, helvetica, sans-serif; font-size: 12px; text-align: left; white-space: pre-wrap;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;-webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; border-collapse: separate; color: black; font: normal normal normal medium/normal &#39;Times New Roman&#39;; letter-spacing: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #4c4c4c; font-family: verdana, tahoma, helvetica, sans-serif; font-size: 12px; text-align: left; white-space: pre-wrap;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;-webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; border-collapse: separate; color: black; font: normal normal normal medium/normal &#39;Times New Roman&#39;; letter-spacing: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #4c4c4c; font-family: verdana, tahoma, helvetica, sans-serif; font-size: 12px; text-align: left; white-space: pre-wrap;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;-webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; border-collapse: separate; color: black; font: normal normal normal medium/normal &#39;Times New Roman&#39;; letter-spacing: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #4c4c4c; font-family: verdana, tahoma, helvetica, sans-serif; font-size: 12px; text-align: left; white-space: pre-wrap;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;-webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; border-collapse: separate; color: black; font: normal normal normal medium/normal &#39;Times New Roman&#39;; letter-spacing: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #4c4c4c; font-family: verdana, tahoma, helvetica, sans-serif; font-size: 12px; text-align: left; white-space: pre-wrap;&quot;&gt;But what about backward Interop? Seems that it can be reasonable if you want to write new parts on MVC. we simple need somehow create Html and Url helpers similar to MVC helper and call methods such as &lt;em&gt;&lt;strong&gt;Html.RenderAction&lt;/strong&gt;&lt;/em&gt; and &lt;em&gt;&lt;strong&gt;Url.Action&lt;/strong&gt;&lt;/em&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
Here is snippet that create such helpers, that can be used from classic ASP.NET Web Forms:&lt;br /&gt;
&lt;pre style=&quot;border-bottom: #cecece 1px solid; border-left: #cecece 1px solid; border-right: #cecece 1px solid; border-top: #cecece 1px solid; min-height: 40px; overflow: auto; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; padding-top: 5pxcolor:#fbfbfb; width: 800px;&quot;&gt;&lt;pre style=&quot;color: #fbfbfb; font-family: consolas,&#39;Courier New&#39;,courier,monospace; font-size: 12px; margin: 0em; width: 100%;&quot;&gt;&lt;span style=&quot;color: blue;&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: blue;&quot;&gt;static&lt;/span&gt; &lt;span style=&quot;color: blue;&quot;&gt;class&lt;/span&gt; ControllerExtensions
&lt;/pre&gt;&lt;pre style=&quot;color: #fbfbfb; font-family: consolas,&#39;Courier New&#39;,courier,monospace; font-size: 12px; margin: 0em; width: 100%;&quot;&gt;{
&lt;/pre&gt;&lt;pre style=&quot;color: #fbfbfb; font-family: consolas,&#39;Courier New&#39;,courier,monospace; font-size: 12px; margin: 0em; width: 100%;&quot;&gt;&lt;span style=&quot;color: blue;&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: blue;&quot;&gt;static&lt;/span&gt; &lt;span class=&quot;Apple-style-span&quot; style=&quot;background-color: white;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #444444;&quot;&gt;HtmlHelper CreateHtmlHelper(&lt;/span&gt; &lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;this&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #444444;&quot;&gt; HttpContext context )&lt;/span&gt;
&lt;/pre&gt;&lt;pre style=&quot;font-family: consolas, &#39;Courier New&#39;, courier, monospace; font-size: 12px; margin-bottom: 0em; margin-left: 0em; margin-right: 0em; margin-top: 0em; width: 100%;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #444444;&quot;&gt;{
&lt;/span&gt;&lt;/pre&gt;&lt;pre style=&quot;font-family: consolas, &#39;Courier New&#39;, courier, monospace; font-size: 12px; margin-bottom: 0em; margin-left: 0em; margin-right: 0em; margin-top: 0em; width: 100%;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #444444;&quot;&gt;var request_context = &lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #444444;&quot;&gt;new&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #444444;&quot;&gt; RequestContext( &lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #444444;&quot;&gt;new&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #444444;&quot;&gt; HttpContextWrapper( context), &lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #444444;&quot;&gt;new&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #444444;&quot;&gt; RouteData() );
&lt;/span&gt;&lt;/pre&gt;&lt;pre style=&quot;font-family: consolas, &#39;Courier New&#39;, courier, monospace; font-size: 12px; margin-bottom: 0em; margin-left: 0em; margin-right: 0em; margin-top: 0em; width: 100%;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #444444;&quot;&gt;var controller_context = &lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #444444;&quot;&gt;new&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #444444;&quot;&gt; ControllerContext( request_context, &lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #444444;&quot;&gt;new&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #444444;&quot;&gt; StubController );
&lt;/span&gt;&lt;/pre&gt;&lt;pre style=&quot;font-family: consolas, &#39;Courier New&#39;, courier, monospace; font-size: 12px; margin-bottom: 0em; margin-left: 0em; margin-right: 0em; margin-top: 0em; width: 100%;&quot;&gt;&lt;/pre&gt;&lt;pre style=&quot;font-family: consolas, &#39;Courier New&#39;, courier, monospace; font-size: 12px; margin-bottom: 0em; margin-left: 0em; margin-right: 0em; margin-top: 0em; width: 100%;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #444444;&quot;&gt;var dictionary = &lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #444444;&quot;&gt;new&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #444444;&quot;&gt; ViewDataDictionary();
&lt;/span&gt;&lt;/pre&gt;&lt;pre style=&quot;font-family: consolas, &#39;Courier New&#39;, courier, monospace; font-size: 12px; margin-bottom: 0em; margin-left: 0em; margin-right: 0em; margin-top: 0em; width: 100%;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #444444;&quot;&gt;var wrapper = &lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #444444;&quot;&gt;new&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #444444;&quot;&gt; ViewWrapper( dictionary );
&lt;/span&gt;&lt;/pre&gt;&lt;pre style=&quot;font-family: consolas, &#39;Courier New&#39;, courier, monospace; font-size: 12px; margin-bottom: 0em; margin-left: 0em; margin-right: 0em; margin-top: 0em; width: 100%;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #444444;&quot;&gt;var viewContext = &lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #444444;&quot;&gt;new&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #444444;&quot;&gt; ViewContext( controller_context, wrapper, dictionary, &lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #444444;&quot;&gt;new&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #444444;&quot;&gt; TempDataDictionary() );
&lt;/span&gt;&lt;/pre&gt;&lt;pre style=&quot;font-family: consolas, &#39;Courier New&#39;, courier, monospace; font-size: 12px; margin-bottom: 0em; margin-left: 0em; margin-right: 0em; margin-top: 0em; width: 100%;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #444444;&quot;&gt;return&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #444444;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #444444;&quot;&gt;new&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #444444;&quot;&gt; HtmlHelper( viewContext, wrapper );
&lt;/span&gt;&lt;/pre&gt;&lt;pre style=&quot;color: #fbfbfb; font-family: consolas,&#39;Courier New&#39;,courier,monospace; font-size: 12px; margin: 0em; width: 100%;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #444444;&quot;&gt;}&lt;/span&gt;
&lt;/pre&gt;&lt;pre style=&quot;color: #fbfbfb; font-family: consolas,&#39;Courier New&#39;,courier,monospace; font-size: 12px; margin: 0em; width: 100%;&quot;&gt;&lt;/pre&gt;&lt;pre color=&quot;#fbfbfb&quot; face=&quot;consolas,&#39;Courier New&#39;,courier,monospace&quot; size=&quot;12px&quot; style=&quot;margin: 0em; width: 100%;&quot;&gt;&lt;span style=&quot;color: blue;&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: blue;&quot;&gt;static&lt;/span&gt; UrlHelper CreateUrlHelper( &lt;span style=&quot;color: blue;&quot;&gt;this&lt;/span&gt; HttpContext context )
&lt;/pre&gt;&lt;pre color=&quot;#fbfbfb&quot; face=&quot;consolas,&#39;Courier New&#39;,courier,monospace&quot; size=&quot;12px&quot; style=&quot;margin: 0em; width: 100%;&quot;&gt;{
&lt;/pre&gt;&lt;pre color=&quot;#fbfbfb&quot; face=&quot;consolas,&#39;Courier New&#39;,courier,monospace&quot; size=&quot;12px&quot; style=&quot;margin: 0em; width: 100%;&quot;&gt;&lt;span style=&quot;color: blue;&quot;&gt;return&lt;/span&gt; &lt;span style=&quot;color: blue;&quot;&gt;new&lt;/span&gt; UrlHelper( &lt;span style=&quot;color: blue;&quot;&gt;new&lt;/span&gt; RequestContext( &lt;span style=&quot;color: blue;&quot;&gt;new&lt;/span&gt; HttpContextWrapper( context ), &lt;span style=&quot;color: blue;&quot;&gt;new&lt;/span&gt; RouteData() ) );
&lt;/pre&gt;&lt;pre color=&quot;#fbfbfb&quot; face=&quot;consolas,&#39;Courier New&#39;,courier,monospace&quot; size=&quot;12px&quot; style=&quot;margin: 0em; width: 100%;&quot;&gt;}
&lt;/pre&gt;&lt;pre color=&quot;#fbfbfb&quot; face=&quot;consolas,&#39;Courier New&#39;,courier,monospace&quot; size=&quot;12px&quot; style=&quot;margin: 0em; width: 100%;&quot;&gt;}
&lt;/pre&gt;&lt;pre color=&quot;#fbfbfb&quot; face=&quot;consolas,&#39;Courier New&#39;,courier,monospace&quot; size=&quot;12px&quot; style=&quot;margin: 0em; width: 100%;&quot;&gt;&lt;/pre&gt;&lt;pre color=&quot;#fbfbfb&quot; face=&quot;consolas,&#39;Courier New&#39;,courier,monospace&quot; size=&quot;12px&quot; style=&quot;margin: 0em; width: 100%;&quot;&gt;&lt;span style=&quot;color: blue;&quot;&gt;internal&lt;/span&gt; &lt;span style=&quot;color: blue;&quot;&gt;class&lt;/span&gt; StubController : Controller
&lt;/pre&gt;&lt;pre color=&quot;#fbfbfb&quot; face=&quot;consolas,&#39;Courier New&#39;,courier,monospace&quot; size=&quot;12px&quot; style=&quot;margin: 0em; width: 100%;&quot;&gt;{
&lt;/pre&gt;&lt;pre color=&quot;#fbfbfb&quot; face=&quot;consolas,&#39;Courier New&#39;,courier,monospace&quot; size=&quot;12px&quot; style=&quot;margin: 0em; width: 100%;&quot;&gt;}
&lt;/pre&gt;&lt;pre color=&quot;#fbfbfb&quot; face=&quot;consolas,&#39;Courier New&#39;,courier,monospace&quot; size=&quot;12px&quot; style=&quot;margin: 0em; width: 100%;&quot;&gt;&lt;/pre&gt;&lt;pre color=&quot;#fbfbfb&quot; face=&quot;consolas,&#39;Courier New&#39;,courier,monospace&quot; size=&quot;12px&quot; style=&quot;margin: 0em; width: 100%;&quot;&gt;&lt;span style=&quot;color: blue;&quot;&gt;internal&lt;/span&gt; &lt;span style=&quot;color: blue;&quot;&gt;class&lt;/span&gt; ViewWrapper : IView, IViewDataContainer
&lt;/pre&gt;&lt;pre color=&quot;#fbfbfb&quot; face=&quot;consolas,&#39;Courier New&#39;,courier,monospace&quot; size=&quot;12px&quot; style=&quot;margin: 0em; width: 100%;&quot;&gt;{
&lt;/pre&gt;&lt;pre color=&quot;#fbfbfb&quot; face=&quot;consolas,&#39;Courier New&#39;,courier,monospace&quot; size=&quot;12px&quot; style=&quot;margin: 0em; width: 100%;&quot;&gt;&lt;span style=&quot;color: blue;&quot;&gt;public&lt;/span&gt; ViewWrapper( ViewDataDictionary dictionary )
&lt;/pre&gt;&lt;pre style=&quot;background-color: #fbfbfb; font-family: consolas,&#39;Courier New&#39;,courier,monospace; font-size: 12px; margin: 0em; width: 100%;&quot;&gt;{
&lt;/pre&gt;&lt;pre style=&quot;background-color: #fbfbfb; font-family: consolas,&#39;Courier New&#39;,courier,monospace; font-size: 12px; margin: 0em; width: 100%;&quot;&gt;ViewData = dictionary;
&lt;/pre&gt;&lt;pre style=&quot;background-color: #fbfbfb; font-family: consolas,&#39;Courier New&#39;,courier,monospace; font-size: 12px; margin: 0em; width: 100%;&quot;&gt;}
&lt;/pre&gt;&lt;pre style=&quot;background-color: #fbfbfb; font-family: consolas,&#39;Courier New&#39;,courier,monospace; font-size: 12px; margin: 0em; width: 100%;&quot;&gt;&lt;/pre&gt;&lt;pre style=&quot;background-color: #fbfbfb; font-family: consolas,&#39;Courier New&#39;,courier,monospace; font-size: 12px; margin: 0em; width: 100%;&quot;&gt;#region IView Members
&lt;/pre&gt;&lt;pre style=&quot;background-color: #fbfbfb; font-family: consolas,&#39;Courier New&#39;,courier,monospace; font-size: 12px; margin: 0em; width: 100%;&quot;&gt;&lt;/pre&gt;&lt;pre style=&quot;background-color: #fbfbfb; font-family: consolas,&#39;Courier New&#39;,courier,monospace; font-size: 12px; margin: 0em; width: 100%;&quot;&gt;&lt;span style=&quot;color: blue;&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: blue;&quot;&gt;void&lt;/span&gt; Render( ViewContext viewContext, TextWriter writer )
&lt;/pre&gt;&lt;pre style=&quot;background-color: #fbfbfb; font-family: consolas,&#39;Courier New&#39;,courier,monospace; font-size: 12px; margin: 0em; width: 100%;&quot;&gt;{
&lt;/pre&gt;&lt;pre style=&quot;background-color: #fbfbfb; font-family: consolas,&#39;Courier New&#39;,courier,monospace; font-size: 12px; margin: 0em; width: 100%;&quot;&gt;}
&lt;/pre&gt;&lt;pre style=&quot;background-color: #fbfbfb; font-family: consolas,&#39;Courier New&#39;,courier,monospace; font-size: 12px; margin: 0em; width: 100%;&quot;&gt;&lt;/pre&gt;&lt;pre style=&quot;background-color: #fbfbfb; font-family: consolas,&#39;Courier New&#39;,courier,monospace; font-size: 12px; margin: 0em; width: 100%;&quot;&gt;#endregion
&lt;/pre&gt;&lt;pre style=&quot;background-color: #fbfbfb; font-family: consolas,&#39;Courier New&#39;,courier,monospace; font-size: 12px; margin: 0em; width: 100%;&quot;&gt;&lt;/pre&gt;&lt;pre style=&quot;background-color: #fbfbfb; font-family: consolas,&#39;Courier New&#39;,courier,monospace; font-size: 12px; margin: 0em; width: 100%;&quot;&gt;#region IViewDataContainer Members
&lt;/pre&gt;&lt;pre style=&quot;background-color: #fbfbfb; font-family: consolas,&#39;Courier New&#39;,courier,monospace; font-size: 12px; margin: 0em; width: 100%;&quot;&gt;&lt;/pre&gt;&lt;pre style=&quot;background-color: #fbfbfb; font-family: consolas,&#39;Courier New&#39;,courier,monospace; font-size: 12px; margin: 0em; width: 100%;&quot;&gt;&lt;span style=&quot;color: blue;&quot;&gt;public&lt;/span&gt; ViewDataDictionary ViewData { &lt;span style=&quot;color: blue;&quot;&gt;get&lt;/span&gt;; &lt;span style=&quot;color: blue;&quot;&gt;set&lt;/span&gt;; }
&lt;/pre&gt;&lt;pre style=&quot;background-color: #fbfbfb; font-family: consolas,&#39;Courier New&#39;,courier,monospace; font-size: 12px; margin: 0em; width: 100%;&quot;&gt;&lt;/pre&gt;&lt;pre style=&quot;background-color: #fbfbfb; font-family: consolas,&#39;Courier New&#39;,courier,monospace; font-size: 12px; margin: 0em; width: 100%;&quot;&gt;#endregion
&lt;/pre&gt;&lt;pre style=&quot;background-color: #fbfbfb; font-family: consolas,&#39;Courier New&#39;,courier,monospace; font-size: 12px; margin: 0em; width: 100%;&quot;&gt;}&lt;/pre&gt;&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
Usage:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;pre style=&quot;border-bottom: #cecece 1px solid; border-left: #cecece 1px solid; border-right: #cecece 1px solid; border-top: #cecece 1px solid; min-height: 40px; overflow: auto; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; padding-top: 5pxcolor:#fbfbfb; width: 800px;&quot;&gt;&lt;pre style=&quot;background-color: #fbfbfb; font-family: consolas,&#39;Courier New&#39;,courier,monospace; font-size: 12px; margin: 0em; width: 100%;&quot;&gt;&lt;span style=&quot;color: green;&quot;&gt;//This can be placed in BasePage class to possible to use on all your pages.protected HtmlHelper Html;&lt;/span&gt;
&lt;/pre&gt;&lt;pre style=&quot;background-color: #fbfbfb; font-family: consolas,&#39;Courier New&#39;,courier,monospace; font-size: 12px; margin: 0em; width: 100%;&quot;&gt;&lt;/pre&gt;&lt;pre style=&quot;background-color: #fbfbfb; font-family: consolas,&#39;Courier New&#39;,courier,monospace; font-size: 12px; margin: 0em; width: 100%;&quot;&gt;&lt;span style=&quot;color: blue;&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: blue;&quot;&gt;void&lt;/span&gt; OnLoad(...)
&lt;/pre&gt;&lt;pre style=&quot;background-color: #fbfbfb; font-family: consolas,&#39;Courier New&#39;,courier,monospace; font-size: 12px; margin: 0em; width: 100%;&quot;&gt;{
&lt;/pre&gt;&lt;pre style=&quot;background-color: #fbfbfb; font-family: consolas,&#39;Courier New&#39;,courier,monospace; font-size: 12px; margin: 0em; width: 100%;&quot;&gt;Html =HttpContext.Current.CreateHtmlHelper();
&lt;/pre&gt;&lt;pre style=&quot;background-color: #fbfbfb; font-family: consolas,&#39;Courier New&#39;,courier,monospace; font-size: 12px; margin: 0em; width: 100%;&quot;&gt;} &lt;/pre&gt;&lt;/pre&gt;&lt;br /&gt;
&lt;span  style=&quot;background-color: white; padding:10px; border:1px solid gray;&quot;&gt;&lt;br /&gt;
&amp;lt;% Html.RenderAction&amp;lt;SomeController&amp;gt;( c =&amp;gt;c.some_action( some, params ) ); %&amp;gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;background-color: white;&quot;&gt;So this way you can Mixing ASP.NET Webforms and ASP.NET MVC Views in your project.&lt;/span&gt;</content><link rel='replies' type='application/atom+xml' href='http://mogadanez.blogspot.com/feeds/2936810903961390031/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://mogadanez.blogspot.com/2009/09/step-by-step-migrating-aspnet-web-forms.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2472756071286131509/posts/default/2936810903961390031'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2472756071286131509/posts/default/2936810903961390031'/><link rel='alternate' type='text/html' href='http://mogadanez.blogspot.com/2009/09/step-by-step-migrating-aspnet-web-forms.html' title='Step by step Migrating  and mixing ASP.NET Web Forms to ASP.NET MVC'/><author><name>mogadanez</name><uri>http://www.blogger.com/profile/03796151751595662909</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2472756071286131509.post-5966062851865033785</id><published>2009-07-02T22:45:00.000-07:00</published><updated>2009-07-16T02:49:51.939-07:00</updated><title type='text'>ASP.NET MVC Speed test</title><content type='html'>&lt;div&gt;some times ago, aftre reading &lt;a href=&quot;http://www.lostechies.com/blogs/jimmy_bogard/archive/2009/06/18/the-filter-viewdata-anti-pattern.aspx&quot;&gt;Jimmy Bogard post&lt;/a&gt; i was think how much RenderAction slower than render partial.&lt;br /&gt;&lt;br /&gt;while i make it i decide to add test runs on &lt;a href=&quot;http://sparkviewengine.com/&quot;&gt;Spark View Engine&lt;/a&gt; too&lt;br /&gt;&lt;br /&gt;here is   test results&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;&lt;a href=&#39;http://files.rsdn.ru/11521/mvc-speed_l.png&#39;&gt;&lt;img style=&quot;margin: 0px auto 10px; text-align: center; width: 246px; display: block; height: 320px;&quot; id=&quot;BLOGGER_PHOTO_ID_5354106200146811730&quot; alt=&quot;&quot; src=&quot;http://files.rsdn.ru/11521/mvc-speed_s.png&quot; border=&quot;0&quot; /&gt;&lt;/a&gt; &lt;/p&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;Summary&lt;/span&gt;&lt;br /&gt;Difference between RenderAction and RenderPartial is very &lt;span class=&quot;ref_result&quot;&gt;insignificant&lt;/span&gt;&lt;span class=&quot;ref_info&quot;&gt;. So when it seems that it will improve you code quality - feel free to use it.&lt;br /&gt;&lt;br /&gt;By tests Spark View Engine shows less perfomance than WebForms View Engine, but for  me its flexibility is more important. so i stay with spark =)&lt;br /&gt;&lt;/span&gt;&lt;p&gt; &lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;a href=&quot;http://files.rsdn.ru/11521/MvcSpeedTest.zip&quot;&gt;download source&lt;/a&gt;&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mogadanez.blogspot.com/feeds/5966062851865033785/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://mogadanez.blogspot.com/2009/07/aspnet-mvc-speed-test.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2472756071286131509/posts/default/5966062851865033785'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2472756071286131509/posts/default/5966062851865033785'/><link rel='alternate' type='text/html' href='http://mogadanez.blogspot.com/2009/07/aspnet-mvc-speed-test.html' title='ASP.NET MVC Speed test'/><author><name>mogadanez</name><uri>http://www.blogger.com/profile/03796151751595662909</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2472756071286131509.post-2572775085576405612</id><published>2009-06-24T12:08:00.000-07:00</published><updated>2009-06-24T12:15:17.384-07:00</updated><title type='text'>First Post</title><content type='html'>I migrated my blog here. My previous blog (in Russian) is &lt;a href=&quot;http://blogs.gotdotnet.ru/personal/poigraem/&quot;&gt;http://blogs.gotdotnet.ru/personal/poigraem/&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://mogadanez.blogspot.com/feeds/2572775085576405612/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://mogadanez.blogspot.com/2009/06/first-post.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2472756071286131509/posts/default/2572775085576405612'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2472756071286131509/posts/default/2572775085576405612'/><link rel='alternate' type='text/html' href='http://mogadanez.blogspot.com/2009/06/first-post.html' title='First Post'/><author><name>mogadanez</name><uri>http://www.blogger.com/profile/03796151751595662909</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>