<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:pingback="http://madskills.com/public/xml/rss/module/pingback/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0">
  <channel>
    <title>Felice Pollano Blog - MVVM</title>
    <link>http://www.felicepollano.com/</link>
    <description>The official Fatica Labs Blog!</description>
    <language>en-us</language>
    <copyright>Felice Pollano</copyright>
    <lastBuildDate>Tue, 11 Oct 2011 19:54:13 GMT</lastBuildDate>
    <generator>newtelligence dasBlog 2.3.9074.18820</generator>
    <managingEditor>felice@felicepollano.com</managingEditor>
    <webMaster>felice@felicepollano.com</webMaster>
    <item>
      <trackback:ping>http://www.felicepollano.com/Trackback.aspx?guid=568c5efa-a6d5-459e-aaad-5fa90a008163</trackback:ping>
      <pingback:server>http://www.felicepollano.com/pingback.aspx</pingback:server>
      <pingback:target>http://www.felicepollano.com/PermaLink.aspx?guid=568c5efa-a6d5-459e-aaad-5fa90a008163</pingback:target>
      <dc:creator>Felice Pollano</dc:creator>
      <wfw:comment>http://www.felicepollano.com/CommentView.aspx?guid=568c5efa-a6d5-459e-aaad-5fa90a008163</wfw:comment>
      <wfw:commentRss>http://www.felicepollano.com/SyndicationService.asmx/GetEntryCommentsRss?guid=568c5efa-a6d5-459e-aaad-5fa90a008163</wfw:commentRss>
      <title>Some progress with FlyFetch</title>
      <guid isPermaLink="false">http://www.felicepollano.com/PermaLink.aspx?guid=568c5efa-a6d5-459e-aaad-5fa90a008163</guid>
      <link>http://www.felicepollano.com/2011/10/11/SomeProgressWithFlyFetch.aspx</link>
      <pubDate>Tue, 11 Oct 2011 19:54:13 GMT</pubDate>
      <description>&lt;p align="justify"&gt;
As I &lt;a href="http://www.felicepollano.com/2011/10/06/AnAutomaticPagedCollection.aspx" target="_blank"&gt;said
in this post&lt;/a&gt; I' have been working on an helper library to encapsulate the extra
work we should do in presenting big dataset to the user: limiting the resultset. I
wrote a 5 minutes demo to show how the interface could appear reactive, based on &lt;a href="http://nhforge.org" target="_blank"&gt;NHibernate&lt;/a&gt; - &lt;a href="http://caliburnmicro.codeplex.com/" target="_blank"&gt;Caliburn&lt;/a&gt;-and &lt;a href="https://github.com/FelicePollano/FlyFetch" target="_blank"&gt;FlyFetch&lt;/a&gt;.
This does not mean that Flyfetch depends on some way on these library, is just to
have something to show very quickly. The present FlyFetch version is not bound to
any presentation technology to ( even if RIA and WPF applications are probably the
best candidates to use ).&amp;nbsp;&amp;nbsp; The application requires to have &lt;a href="http://sqlserversamples.codeplex.com/" target="_blank"&gt;AdventureWorks&lt;/a&gt; to
so since the prerequisite are not trivial I decided to grab a little video of the
sample app running, just to show the reactivity we can achieve with FlyFetch.
&lt;/p&gt;
&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:5737277B-5D6D-4f48-ABFC-DD9C333F4C5D:8290e927-74b1-4702-8713-a212dd4ab3bc" class="wlWriterEditableSmartContent"&gt;
&lt;div id="d487b36b-0192-41d7-9b14-b9319985d778" style="margin: 0px; padding: 0px; display: inline;"&gt;
&lt;div&gt;&lt;a href="http://www.youtube.com/watch?v=Lpt_pc7kGq0&amp;amp;feature=youtube_gdata_player" target="_new"&gt;&lt;img src="http://www.felicepollano.com/public/Windows-Live-Writer/9404592cae67_12D6F/video10f9f6e544cd.jpg" style="border-style: none" galleryimg="no" onload="var downlevelDiv = document.getElementById('d487b36b-0192-41d7-9b14-b9319985d778'); downlevelDiv.innerHTML = &amp;quot;&lt;div&gt;&lt;object width=\&amp;quot;448\&amp;quot; height=\&amp;quot;252\&amp;quot;&gt;&lt;param name=\&amp;quot;movie\&amp;quot; value=\&amp;quot;http://www.youtube.com/v/Lpt_pc7kGq0?hl=en&amp;amp;hd=1\&amp;quot;&gt;&lt;\/param&gt;&lt;embed src=\&amp;quot;http://www.youtube.com/v/Lpt_pc7kGq0?hl=en&amp;amp;hd=1\&amp;quot; type=\&amp;quot;application/x-shockwave-flash\&amp;quot; width=\&amp;quot;448\&amp;quot; height=\&amp;quot;252\&amp;quot;&gt;&lt;\/embed&gt;&lt;\/object&gt;&lt;\/div&gt;&amp;quot;;" alt=""&gt;&lt;/a&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div style="width:448px;clear:both;font-size:.8em"&gt;FlyFetch in a demo app
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;
I managed to remove any proxy engine dependency ( I use an internal proxy factory
to create a special custom proxy ), and I managed to have an &lt;a href="http://en.wikipedia.org/wiki/Model_View_ViewModel" target="_blank"&gt;MVVM&lt;/a&gt; friendly
component since the pager works independently from the view.You are welcome to follow
FlyFetch &lt;a href="https://github.com/FelicePollano/FlyFetch/toggle_watch"&gt;at this
address&lt;/a&gt;, or simply fork your version &lt;a href="https://github.com/FelicePollano/FlyFetch/fork"&gt;here&lt;/a&gt;.
As an update, I used flyfetch with success in production too :)&lt;br&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.felicepollano.com/aggbug.ashx?id=568c5efa-a6d5-459e-aaad-5fa90a008163" /&gt;</description>
      <comments>http://www.felicepollano.com/CommentView.aspx?guid=568c5efa-a6d5-459e-aaad-5fa90a008163</comments>
      <category>CodeProject</category>
      <category>FlyFetch</category>
      <category>MVVM</category>
      <category>WPF</category>
    </item>
    <item>
      <trackback:ping>http://www.felicepollano.com/Trackback.aspx?guid=47568aac-ca9f-477e-afec-179ae35b7ff9</trackback:ping>
      <pingback:server>http://www.felicepollano.com/pingback.aspx</pingback:server>
      <pingback:target>http://www.felicepollano.com/PermaLink.aspx?guid=47568aac-ca9f-477e-afec-179ae35b7ff9</pingback:target>
      <dc:creator>Felice Pollano</dc:creator>
      <wfw:comment>http://www.felicepollano.com/CommentView.aspx?guid=47568aac-ca9f-477e-afec-179ae35b7ff9</wfw:comment>
      <wfw:commentRss>http://www.felicepollano.com/SyndicationService.asmx/GetEntryCommentsRss?guid=47568aac-ca9f-477e-afec-179ae35b7ff9</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p align="justify">
One of the most important feature to make a data based application reactive is to
limit the resultset returned to the GUI. This is usually done in two places: the service
implementation that must support some ranking strategy, and the GUI itself that has
to leverage these features to show the user just the portion he need ( or he see ).
I implemented an almost generic solution for WPF at work that leverage <a href="https://github.com/philiplaureano/LinFu" target="_blank">Linfu.DynamicProxy</a>.
The strategy consist in filling the (observable)collection with some fake objects
that by interception drive the underlying data source to fetch the items in pages
just when the user actually see them. I like that solution, but it introduces an extra
dependency that I prefer to avoid, and indeed the proxy feature I need are so simple
that an entire fully fledged library is too much. So I started a project that aims
to be:
</p>
        <ul>
          <li>
            <div align="justify">Zero dependency
</div>
          </li>
          <li>
            <div align="justify">Single file ( can add to your project without referencing any
dll )
</div>
          </li>
          <li>
            <div align="justify">Never blocking the GUI
</div>
          </li>
          <li>
            <div align="justify">Easy to use
</div>
          </li>
          <li>
            <div align="justify">Data source independent
</div>
          </li>
          <li>
            <div align="justify">
              <a href="http://en.wikipedia.org/wiki/Model_View_ViewModel" target="_blank">MVVM</a> friendly
</div>
          </li>
        </ul>
        <p align="justify">
          <a href="https://github.com/FelicePollano/FlyFetch" target="_blank">Here is the first
start if you want to see</a>, and contribute with ideas and suggestions. The name
stays for <strong>Fly</strong>weight pattern <strong>Fetch</strong>ing strategy. The
current solution is under development, don’t download if you need a running solution.
I usually post just when things are in some way usable, this is an exercise for me
too: presenting a work at its very early stages, in the hope to have contributions
to create something *better* <img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-smile" alt="Smile" src="http://www.felicepollano.com/public/Windows-Live-Writer/An-automatic-paged-collection_133A3/wlEmoticon-smile_2.png" /></p>
        <p align="justify">
          <b>Update:</b>
          <a href="http://www.felicepollano.com/2011/10/11/SomeProgressWithFlyFetch.aspx">here
is some progress</a>
          <br />
        </p>
        <img width="0" height="0" src="http://www.felicepollano.com/aggbug.ashx?id=47568aac-ca9f-477e-afec-179ae35b7ff9" />
      </body>
      <title>An automatic paged collection</title>
      <guid isPermaLink="false">http://www.felicepollano.com/PermaLink.aspx?guid=47568aac-ca9f-477e-afec-179ae35b7ff9</guid>
      <link>http://www.felicepollano.com/2011/10/06/AnAutomaticPagedCollection.aspx</link>
      <pubDate>Thu, 06 Oct 2011 20:12:40 GMT</pubDate>
      <description>&lt;p align="justify"&gt;
One of the most important feature to make a data based application reactive is to
limit the resultset returned to the GUI. This is usually done in two places: the service
implementation that must support some ranking strategy, and the GUI itself that has
to leverage these features to show the user just the portion he need ( or he see ).
I implemented an almost generic solution for WPF at work that leverage &lt;a href="https://github.com/philiplaureano/LinFu" target="_blank"&gt;Linfu.DynamicProxy&lt;/a&gt;.
The strategy consist in filling the (observable)collection with some fake objects
that by interception drive the underlying data source to fetch the items in pages
just when the user actually see them. I like that solution, but it introduces an extra
dependency that I prefer to avoid, and indeed the proxy feature I need are so simple
that an entire fully fledged library is too much. So I started a project that aims
to be:
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div align="justify"&gt;Zero dependency
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div align="justify"&gt;Single file ( can add to your project without referencing any
dll )
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div align="justify"&gt;Never blocking the GUI
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div align="justify"&gt;Easy to use
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div align="justify"&gt;Data source independent
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div align="justify"&gt;&lt;a href="http://en.wikipedia.org/wiki/Model_View_ViewModel" target="_blank"&gt;MVVM&lt;/a&gt; friendly
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p align="justify"&gt;
&lt;a href="https://github.com/FelicePollano/FlyFetch" target="_blank"&gt;Here is the first
start if you want to see&lt;/a&gt;, and contribute with ideas and suggestions. The name
stays for &lt;strong&gt;Fly&lt;/strong&gt;weight pattern &lt;strong&gt;Fetch&lt;/strong&gt;ing strategy. The
current solution is under development, don’t download if you need a running solution.
I usually post just when things are in some way usable, this is an exercise for me
too: presenting a work at its very early stages, in the hope to have contributions
to create something *better* &lt;img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-smile" alt="Smile" src="http://www.felicepollano.com/public/Windows-Live-Writer/An-automatic-paged-collection_133A3/wlEmoticon-smile_2.png"&gt;
&lt;/p&gt;
&lt;p align="justify"&gt;
&lt;b&gt;Update:&lt;/b&gt; &lt;a href="http://www.felicepollano.com/2011/10/11/SomeProgressWithFlyFetch.aspx"&gt;here
is some progress&lt;/a&gt;
&lt;br&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.felicepollano.com/aggbug.ashx?id=47568aac-ca9f-477e-afec-179ae35b7ff9" /&gt;</description>
      <comments>http://www.felicepollano.com/CommentView.aspx?guid=47568aac-ca9f-477e-afec-179ae35b7ff9</comments>
      <category>CodeProject</category>
      <category>MVVM</category>
      <category>WPF</category>
    </item>
  </channel>
</rss>