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

<channel>
	<title>:: { DeVigner } ::</title>
	<atom:link href="http://blog.geomentary.com/index.php/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.geomentary.com</link>
	<description>A journey into .NET development especially in Silverlight and WPF plus interest in Multitouch technologies...</description>
	<lastBuildDate>Sat, 03 Jul 2010 00:27:36 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Silverlight MultiEnvironment Deployment &#8211; Setup &amp; Configuration Technique</title>
		<link>http://blog.geomentary.com/index.php/2010/07/silverlight-multienvironment-deployment-setup-configuration-technique/</link>
		<comments>http://blog.geomentary.com/index.php/2010/07/silverlight-multienvironment-deployment-setup-configuration-technique/#comments</comments>
		<pubDate>Sat, 03 Jul 2010 00:05:27 +0000</pubDate>
		<dc:creator>Nasir Aziz</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[Featured]]></category>
		<category><![CDATA[Silverlight]]></category>
		<category><![CDATA[WCF]]></category>

		<guid isPermaLink="false">http://blog.geomentary.com/?p=223</guid>
		<description><![CDATA[<p>PROBLEM</p>
<p>Most of us who develop in Silverlight run into atleast one issue one time or another. We start a cool new &#8230;]]></description>
			<content:encoded><![CDATA[<p><strong>PROBLEM</strong></p>
<p>Most of us who develop in Silverlight run into atleast one issue <span id="more-223"></span>one time or another. We start a cool new project, write services, test them, they run &#8211; all good! Yay! Then we deploy to production or staging environment and excitement of showing off of our new cool Silverlight application fades away pretty quickly &#8211; the dreaded &#8220;Service Not Found&#8221; error or simply no response to service calls <img src='http://blog.geomentary.com/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' />  Hello Fiddler!? Where did my services go?</p>
<p>The fix is usually pretty easy if we paid attention to <strong>ServiceReferences.Client.Config</strong> file and &#8220;fixed&#8221; or changed the EndPoint addresses to our services , but admit it we all have some level to A.D.D (Attention Deficit Disorder) and among other things we tend to forget this crucial part or change we must do before going live. To remedy this (yep &#8211; don&#8217;t have a production deployment check list) here is a little technique that I use to solve this problem:</p>
<p><strong>SOLUTION</strong></p>
<p>I typicaly write a Static Helper class, lets say DeploymentEndpoints</p>
<pre> public static class <strong>DeploymentEndpoints</strong>
 {
        internal static string URIPath
        {
            get
            {
                return
                     HtmlPage.Document.DocumentUri.AbsoluteUri.Substring(0,
                     HtmlPage.Document.DocumentUri.AbsoluteUri.LastIndexOf("/"));
            }
        }

        public static <strong>ServiceParams</strong> Service1Info
        {
            get
            {
                return
                     new <strong>ServiceParams</strong>("CustomBinding_Service1",
                            string.Format("{0}/Services/Service1.svc", URIPath));
            }
        }

        public static <strong>ServiceParams</strong> Service2Info
        {
            get
            {
                return new <strong>ServiceParams</strong>("CustomBinding_Service2",
                                 string.Format("{0}/Services/Service2.svc", URIPath));
            }
        }
 }</pre>
<p> And a <strong>ServiceParams</strong> class as:</p>
<pre>    public class ServiceParams
    {
        private string _binding;
        private string _endPointAddress;

        public ServiceParams(string binding, string endpointAddress)
        {
            _binding = binding;
            _endPointAddress = endpointAddress;
        }
        public string EndpointAddress
        {
            get { return _endPointAddress; }
            private set { _endPointAddress = value; }
        }
        public string BindingInfo
        {
            get { return _binding; }
            private set { _binding = value; }
        }
    }</pre>
<p>The <strong>CustomBinding_Service1</strong> and <strong>CustomBinding_Service2</strong> configurations in <strong>DeploymentEnpoints</strong> class are picked from the <strong>ServiceReferences.Client.Config</strong> file. If you have any special Bindings Configurations setup there, they will apply as usual.</p>
<p>Call the service from your app like this:</p>
<pre>        private void CallService1()
        {
            ServiceReference1.Service1Client service1Client =
                 new ServiceReference1.Service1Client
                                          (DeploymentEndpoints.Service1Info.BindingInfo,
                                          DeploymentEndpoints.Service1Info.EndpointAddress);
            service1Client.WhoAmICompleted += (s, e) =&gt;
            {
                if (e.Error == null)
                {
                    textBlock1.Text = e.Result;
                    service1Client = null;
                }
            };
            service1Client.WhoAmIAsync();
        }</pre>
<p>And thats it!</p>
<p>Anytime you add a new Service, make sure you include a new Static method (like: <strong>public static ServiceParams ServiceXXXInfo&#8230;</strong>) that points to your new service in the DeploymentEndpoints class, and that you have to do only once! After that you can deploy it to any environment without worrying about changing the endpoint configs at all in <strong>ServiceReferences.Client.Config</strong> file.</p>
<p>To test it out, change the Specific Port in your Web Projects &#8220;Web&#8221; Settings section and see how it takes effect seamlessly, or better yet deploy it somewhere else with a different domain name etc.</p>
<p>And here is a simple demo project code that shows it all: <a title="WCFDeployment.Web.Zip" href="http://blog.geomentary.com/SilverlightProjects/WCFDeployment.Web.Zip">WCFDeployment.Web.zip</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.geomentary.com/index.php/2010/07/silverlight-multienvironment-deployment-setup-configuration-technique/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Silverlight Timeline Control</title>
		<link>http://blog.geomentary.com/index.php/2009/11/silverlight-timeline-control/</link>
		<comments>http://blog.geomentary.com/index.php/2009/11/silverlight-timeline-control/#comments</comments>
		<pubDate>Wed, 25 Nov 2009 11:26:52 +0000</pubDate>
		<dc:creator>Nasir Aziz</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[Featured]]></category>
		<category><![CDATA[Silverlight]]></category>
		<category><![CDATA[Control]]></category>
		<category><![CDATA[Timeline]]></category>

		<guid isPermaLink="false">http://blog.geomentary.com/?p=183</guid>
		<description><![CDATA[Last week I was working on Silverlight 3 project where I needed a Timeline Control. As usual I Googled and &#8230;]]></description>
			<content:encoded><![CDATA[<div id="silverlightControlHost">Last week I was working on Silverlight 3 project where I needed a Timeline Control. As usual I Googled and saw if there was any good useable FREE code out there that someone may already have worked on. After searching for half a day and trying at least one the results were disappointing. First not even close to what I was looking for and then the one I actually found close to my requirements turned out to be buggy and not very well put together. And then there were some overpriced control libraries &#8211; Yeah, no thanks.</div>
<p><div>The decision was clear, make my own. I knew it was a tall order but I did dive into it and churned one that I can use with a goal to keep it simple and customizable for anyone to use. I am attaching a project that uses this control library that you can <a href="http://blog.geomentary.com/SilverlightProjects/TimelineControl/Timeline.zip"><strong>DOWNLOAD</strong> </a>and mess with. I will eventually release the soure code too if there is some interest out there. In the meanwhile, check it out and see what you think. Yes I can improve this a lot but this will do for now.</div>
</p>
<p>
Below is a data of US States (in yellow) Union join dates and President tenures (in green)
</p>
<ul>
<li>Mouse wheel on bottom timeline will Zoom it In or Out</li>
<li>Grab the notch on Slider to expand or reduce the magnification size</li>
<li>Go Full Screen by clicking on top right corner. Especially if you want to try out MouseWheel without messing with the browser scroll (annoying)</li>
</ul>
<p>Download the sample app to try it out. I like suggestions or comments if you can spare any <img src='http://blog.geomentary.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />
</p>
<p><div>Cheers!</div>
</p>
<p><div id="silverlightControlHost">
        <object data="data:application/x-silverlight-2," type="application/x-silverlight-2" width="660" height="400"><param name="source" value="http://blog.geomentary.com/SilverlightProjects/TimelineControl/ClientBin/TimeLineTest.xap"/><param name="onError" value="onSilverlightError" /><param name="background" value="white" /><param name="minRuntimeVersion" value="3.0.40624.0" /><param name="autoUpgrade" value="true" /><a href="http://go.microsoft.com/fwlink/?LinkID=149156&#038;v=3.0.40624.0" style="text-decoration:none"><br />
 			  <img src="http://go.microsoft.com/fwlink/?LinkId=108181" alt="Get Microsoft Silverlight" style="border-style:none"/><br />
		  </a><br />
	    </object><iframe id="_sl_historyFrame" style="visibility:hidden;height:0px;width:0px;border:0px"></iframe></div>
<div><strong><a href="http://blog.geomentary.com/SilverlightProjects/TimelineControl/Timeline.zip">DOWNLOAD Project</a></strong></div></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.geomentary.com/index.php/2009/11/silverlight-timeline-control/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>I Heart Silverlight 4 + MVVM [now]</title>
		<link>http://blog.geomentary.com/index.php/2009/11/i-heart-silverlight-4-mvvm-now/</link>
		<comments>http://blog.geomentary.com/index.php/2009/11/i-heart-silverlight-4-mvvm-now/#comments</comments>
		<pubDate>Fri, 20 Nov 2009 07:20:35 +0000</pubDate>
		<dc:creator>Nasir Aziz</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[Silverlight]]></category>
		<category><![CDATA[MVVM]]></category>

		<guid isPermaLink="false">http://blog.geomentary.com/?p=155</guid>
		<description><![CDATA[<p>Remember how I used to <a href="http://blog.geomentary.com/index.php/2009/10/silverlight-mvvm-my-educated-opinions/">hate using MVVM</a> for Silverlight 3.0, but now with Silverlight 4.0 improvements announced @ &#8230;]]></description>
			<content:encoded><![CDATA[<p>Remember how I used to <a href="http://blog.geomentary.com/index.php/2009/10/silverlight-mvvm-my-educated-opinions/">hate using MVVM</a> for Silverlight 3.0, but now with Silverlight 4.0 improvements announced @ <a href="http://microsoftpdc.com/">Microsoft PDC 09</a> today, I have turned into a believer. I am all for it and I HEART SILVERLIGHT 4.0 + MVVM now! Thank you Microsoft for listening and converting me now and thank you <a href="http://johnpapa.net/silverlight/video-of-my-prism-and-mvvm-at-pdc/" target="_blank">John Papa</a> for a great presentation that helped me start loving MVVM/Silverlight for real.</p>
<p>Time to go back and refactor my Silverlight 3.0 apps to Silverlight 4.0 with MVVM!</p>
<p>Below is a must see Microsoft PDC 09 talk by John Papa: <a href="http://blog.geomentary.com/Sessions/CL22">Advanced Topics for Building Large-Scale Applications with Microsoft Silverlight</a></p>
<p><object data="data:application/x-silverlight-2," type="application/x-silverlight-2" width="660" height="400"><param name="source" value="http://microsoftpdc.com/Skins/PDC09/Styles/players/VideoPlayer2009_03_27.xap" /><param name="initParams" value="m=http://ecn.channel9.msdn.com/o9/pdc09/wmvhigh/CL22.wmv,autostart=false,autohide=true,showembed=true, thumbnail=http://microsoftpdc.com/Skins/PDC09/Styles/images/DefaultPlayerBackground.png, postid=0" /><param name="background" value="#00FFFFFF" /><a href="http://go.microsoft.com/fwlink/?LinkID=124807" style="text-decoration: none;"><br />
<img src="http://go.microsoft.com/fwlink/?LinkId=108181" alt="Get Microsoft Silverlight" style="border-style: none"/><br />
</a><br />
</object></p>
<p>And here is a video where John Papa and Adam Kinney discuss Silverlight 4.0 improvements and new features. </p>
<p><object data="data:application/x-silverlight-2," type="application/x-silverlight-2" width="660" height="400"><param name="source" value="http://channel9.msdn.com/App_Themes/default/vp09_10_20.xap" /><param name="initParams" value="deferredLoad=true,duration=0,m=http://ecn.channel9.msdn.com/o9/learn/videos/Silverlight4-Overview-WhatsNew/Silverlight4-Overview-WhatsNew_kit.wmv,autostart=false,autohide=true,showembed=true, thumbnail=http://channel9.msdn.com/App_Themes/default/vp09_10_20.xap, postid=507210" /><param name="background" value="#00FFFFFF" /><a href="http://go.microsoft.com/fwlink/?LinkID=124807" style="text-decoration: none;"><br />
<img src="http://go.microsoft.com/fwlink/?LinkId=108181" alt="Get Microsoft Silverlight" style="border-style: none"/><br />
</a><br />
</object></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.geomentary.com/index.php/2009/11/i-heart-silverlight-4-mvvm-now/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="http://ecn.channel9.msdn.com/o9/learn/videos/Silverlight4-Overview-WhatsNew/Silverlight4-Overview-WhatsNew_kit.wmv" length="122447677" type="video/x-ms-wmv" />
<enclosure url="http://ecn.channel9.msdn.com/o9/pdc09/wmvhigh/CL22.wmv" length="975712925" type="video/x-ms-wmv" />
		</item>
		<item>
		<title>Silverlight MVVM- My opinions&#8230;</title>
		<link>http://blog.geomentary.com/index.php/2009/10/silverlight-mvvm-my-educated-opinions/</link>
		<comments>http://blog.geomentary.com/index.php/2009/10/silverlight-mvvm-my-educated-opinions/#comments</comments>
		<pubDate>Wed, 07 Oct 2009 07:08:04 +0000</pubDate>
		<dc:creator>Nasir Aziz</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[Silverlight]]></category>
		<category><![CDATA[MVVM]]></category>

		<guid isPermaLink="false">http://blog.geomentary.com/?p=119</guid>
		<description><![CDATA[<p><a href="http://blog.geomentary.com/wp-content/uploads/2009/10/SilverlightMVVM.png"></a><a href="http://blog.geomentary.com/wp-content/uploads/2009/10/SilverlightMVVM.png"></a>This post is a follow-up to my previous post &#8220;<a href="http://blog.geomentary.com/index.php/2009/10/silverlight-mvvm-purist-style-are-we-ready-yet/">Silverlight MVVM Purist Style…&#8221; </a>where I posed the question &#8230;]]></description>
			<content:encoded><![CDATA[<p><a href="http://blog.geomentary.com/wp-content/uploads/2009/10/SilverlightMVVM.png"></a><a href="http://blog.geomentary.com/wp-content/uploads/2009/10/SilverlightMVVM.png"><img class="alignleft size-medium wp-image-124" title="Silverlight MVVM" src="http://blog.geomentary.com/wp-content/uploads/2009/10/SilverlightMVVM-300x175.png" alt="Silverlight MVVM" width="145" height="85" /></a>This post is a follow-up to my previous post &#8220;<a href="http://blog.geomentary.com/index.php/2009/10/silverlight-mvvm-purist-style-are-we-ready-yet/"><strong>Silverlight MVVM Purist Style…&#8221;</strong> </a>where I posed the question regarding MVVM and Silverlight:</p>
<p>After extensive googling/binging/researching, following are my views at the moment, as in work-in-progress views:</p>
<ul>
<li>
<div>MVVM looks good in theory and for short half-assed ideal situation demos but due to lack of proper guidance and concrete examples it is more trouble than its worth, ie; if you are going for the purist style.</div>
</li>
<li>
<div>MVVM hinders speedy development initially. Devil is in the details. We end up fighting to implement the pattern and lose focus from the actual excersize which is developing software and solving some problem.</div>
</li>
<li>
<div>MVVM doesn&#8217;t have clear guidance on UI intensive type applications. Has anyone done a Silverlight game purely based on MVVM yet? I haven&#8217;t seen any atleast.</div>
</li>
<li>
<div><a href="http://wildermuth.com/" target="_blank">Shawn Wildermuth</a> coined the term &#8220;<a href="http://msdn.microsoft.com/en-us/magazine/dd943055.aspx" target="_blank">Prism is a Buffet</a>&#8220;, I think I am going to say &#8220;MVVM is a Buffet&#8221; also! I&#8217;ll pick and chose what works and throw the rest of the theories out the window.</div>
</li>
<li>
<div>The reason I chose Silverlight/WPF is because of its graphics capabilities. MVVM is forcing me to think Windows Forms and is trying to make it too easy for the testers. Why do we pay them anyways?</div>
</li>
<li>
<div>If I want to make sexy LoB apps or the sorts with cool effects and what not, MVVM gets in the way. Limits your creativity and adds more work, hence dev time. Almost sounds like its a conspiracy to hinder your creativity power.</div>
</li>
<li>
<div>In its defense (somewhat), custom behaviors/triggers etc. can solve some graphics/UI interactivity issues under MVVM but not all of them. There are limitations still &#8211; thats where your code gets murky, some behaviors, some triggers, some code behind, and some VM. Oh my readabilty and maintenance just got better! Sure&#8230;</div>
</li>
<li>
<div>MVVM is based on plethra of opinions. There is no standard yet that I can put a finger on. Plus the more I read and view it the more it looks like MVP.</div>
</li>
<li>
<div>If we like the long acronyms, I&#8217;d propse new terminology that actually makes sense: Call it V-VM-M (In View-first situation) and VM-V-M (In VM-First situation) just to be fair and to further identify the implementation. If you have gone hybrid then it means you have committed a sin.</div>
</li>
<li>
<div>NO code-behind is not a rule. I am sure we will come up with another layer for code behind essentially mimicking it. Why not just use it as it is. Avoid it and move code to VM as much as you can, and anything that justifiably can&#8217;t be moved to VM (trust me there are a lot of cases) then go for it. Make sure comment your code in code-behind starting with &#8220;Intended Anarchy&#8221;.</div>
</li>
<li>
<div>Never put your code out for MVVM review. No one will agree and it will become a fist fight session. Just make sure you follow best-practises in your code and general architecture otherwise.</div>
</li>
</ul>
<p><strong>CONCLUSION:</strong> Keep your data/calls/bindings related items in M and VM layers. Triggers/Behaviors/etc in XAML (VIEW) layer plus any additional programmatic UI/graphics/interactive can go in code-behind. Make good use of commanding and eventing as much as possible through Prism. These are my rules now and I am sticking to it and documenting it here. I may be off base but that&#8217;s where I am at today. My opinions may change as I gain more experience in this adventure, and when that happens I&#8217;ll&#8217; definitelty report here.</p>
<p>It&#8217;s still a discussion but I am banging the gavel&#8230; order order!</p>
<p><strong>NOTE:</strong> If you happen to be a developer and a designer at the same time, I recommend you get your head completely shaved before you go dive into this mess. This will help you from unintended baldness, serious scalp injuries, lost relationships, and what not. You get the idea.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.geomentary.com/index.php/2009/10/silverlight-mvvm-my-educated-opinions/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Silverlight MVVM Purist Style&#8230;</title>
		<link>http://blog.geomentary.com/index.php/2009/10/silverlight-mvvm-purist-style-are-we-ready-yet/</link>
		<comments>http://blog.geomentary.com/index.php/2009/10/silverlight-mvvm-purist-style-are-we-ready-yet/#comments</comments>
		<pubDate>Mon, 05 Oct 2009 11:14:00 +0000</pubDate>
		<dc:creator>Nasir Aziz</dc:creator>
				<category><![CDATA[Silverlight]]></category>
		<category><![CDATA[.NET]]></category>
		<category><![CDATA[Featured]]></category>
		<category><![CDATA[MVVM]]></category>
		<category><![CDATA[WPF]]></category>

		<guid isPermaLink="false">http://silverlight.geomentary.com/?p=40</guid>
		<description><![CDATA[<p>I posed this question to Silverlight Forum to see what kind of response I get from the MVVM gurus. I &#8230;]]></description>
			<content:encoded><![CDATA[<p>I posed this question to Silverlight Forum to see what kind of response I get from the MVVM gurus. I plan on tracking this discussion and eventually add my thoughts and discuss my projects that transpire based on what I learn from the members. I have been researching a lot about Silverlight implementation of MVVM pattern and how purists and not so purists creating solutions to stick the &#8220;ideaology&#8221;. Anyway, more on that later, here is the reproduction of my question here:</p>
<p>I am to the point where I think MVVM and Silverlight are still not very happy together. There are way too many theories and opinions on its implementation but I haven&#8217;t yet seen any concrete examples that cover not just DataBindings related issues but also complex UI interactions. And yes I have read blogs after blogs and concpets but now its a make or break moment for me. For a full fledged graphically complex SL application that depends on lots of data; how does this whole thing glue together (or not)?</p>
<p>In purist sense here is what I understand so far with random thoughts and in no particular order:</p>
<ul>
<li>
<div>MVVM should satisfy realistic seperation-of-concerns end-to-end. This means the whole application should be able to run with only Model and ViewModel; no View required. Data validations and testability satisfied.</div>
</li>
<li>
<div>Model defines the data structure and data calls ONLY. VM acts as an intermediary bewteen Model and View with validations logic etc. So the Async calls will have to occur on the Model and VM needs to be notified when completed.</div>
</li>
<li>
<div>The moment you inject View-centric logic into ViewModel (VM), it can be considered anti-pattern, for example any DP through VM to make a control change its color or effects some visual properties. (maybe a bad example but you get the idea I hope)</div>
</li>
<li>
<div>No marriage between View and VM, they should live in complete de-coupled fashion without being aware of each other. Which means no View-First or ViewModel-First discussion. In theory Dependency Injection/IoC should achieve the lose coupling, thats where Unity/Prism comes into play &#8211; or does it?</div>
</li>
<li>
<div>Eventing and Commanding through Prism V2</div>
</li>
<li>
<div>Does Reactive Framework (LINQ to Events) fit somewhere in this model to address some of the async pattern issues? VM listening in on Model through this (push vs. pull)?</div>
</li>
<li>
<div>Creating dynamic controls programmatically and injecting them into XAML through ContentPresenter Binding for example = Anti-Pattern. Since designer never got involved in creating and designing the control &#8211; hence we can&#8217;t just sneak it in there without his/her knowldge, or can we? Going with purist mindset we shouldn&#8217;t or can&#8217;t do that.</div>
</li>
<li>
<div>Designer should not have to write any code at all (except behaviors/triggers/actions maybe(?)) and developer shouldn&#8217;t worry about how View is laid out or designed including interactions etc. Now with that theory who is really responsible for behaviors and other interactivity libraries as it involves a fair amount of code which I do not expect the designer to write and test. Does the designer tell the dev that this is what they want as a behavior so go cook it&#8230;? Are we stepping in on each other already?</div>
</li>
<li>
<div>Are we missing another layer that controls complex UI interactions programmatically on the View? if yes then where should this layer live? For example I want to hover my mouse over on the List control items and some things pop up or are highlighted on a Map control all on the same View. Do we address this via behaviors/triggers or code behind? Got any concrete example(s)? Since the code behind for the view is purely UI centric, is it acceptable and/or testable? Can I expect that MVVM cops are not going to arrest me for this crime? Purists would probably throw a fit but won&#8217;t give you a solution &#8211; so what gives?</div>
</li>
</ul>
<p>I&#8217;d like opinions and hopefully some concrete solutions to the above random points if possible. You may pick and chose any or all of the bullets if you feel like answering or commenting. My goal is to write a SL MVVM application with a purist mindset and be successful at that. I have developed MVVM phobia at this point cuz everytime I sit down to test out use-cases, in the most simplistic ones I win but when I jump into more realistic and complex application design, things start going downhill from there and MVVM cops start dancing infront of me&#8230;</p>
<p>I&#8217;d like to eventually put this case to rest and blog about it based on my findings from fine people like yourselves and ofcourse with due credit and references. Once all is said and done I&#8217;ll probably decide for myself whether MVVM will be able to satisy all of my application&#8217;s complex needs under purist terms or not. If not then oh well&#8230;, I guess I will have to break some rules. And far and foremost is SL really ready to adapt this pattern even with the help of Prism or similar libraries?</p>
<p>source: <a href="http://forums.silverlight.net/forums/t/133053.aspx">http://forums.silverlight.net/forums/t/133053.aspx</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.geomentary.com/index.php/2009/10/silverlight-mvvm-purist-style-are-we-ready-yet/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Google Wave in a nutshell</title>
		<link>http://blog.geomentary.com/index.php/2009/10/google-wave-in-a-nutshell/</link>
		<comments>http://blog.geomentary.com/index.php/2009/10/google-wave-in-a-nutshell/#comments</comments>
		<pubDate>Thu, 01 Oct 2009 21:05:54 +0000</pubDate>
		<dc:creator>Nasir Aziz</dc:creator>
				<category><![CDATA[Misc]]></category>
		<category><![CDATA[Google Wave]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Web 2.0]]></category>

		<guid isPermaLink="false">http://silverlight.geomentary.com/?p=101</guid>
		<description><![CDATA[<p>Wanted to get your head around Google Wave and all the fuss? Found a great video that describes it really &#8230;]]></description>
			<content:encoded><![CDATA[<p>Wanted to get your head around Google Wave and all the fuss? Found a great video that describes it really well, here:</p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="640" height="385" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/v/rDu2A3WzQpo&amp;hl=en&amp;fs=1&amp;rel=0" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="640" height="385" src="http://www.youtube.com/v/rDu2A3WzQpo&amp;hl=en&amp;fs=1&amp;rel=0" allowfullscreen="true" allowscriptaccess="always"></embed></object></p>
<p>So what do you think? Are you onboard and have been invited? What are you planning on doing with Google Wave?</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.geomentary.com/index.php/2009/10/google-wave-in-a-nutshell/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Improved LCD FTIR</title>
		<link>http://blog.geomentary.com/index.php/2009/04/improved-lcd-ftir/</link>
		<comments>http://blog.geomentary.com/index.php/2009/04/improved-lcd-ftir/#comments</comments>
		<pubDate>Sat, 11 Apr 2009 07:00:43 +0000</pubDate>
		<dc:creator>Nasir Aziz</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[Multitouch]]></category>
		<category><![CDATA[FTIR]]></category>
		<category><![CDATA[LCD]]></category>
		<category><![CDATA[NUI]]></category>
		<category><![CDATA[TBeta]]></category>

		<guid isPermaLink="false">http://silverlight.geomentary.com/?p=6</guid>
		<description><![CDATA[<p>Just improved upon my existing LCD FTIR setup. Fixed LEDs/resistors, replaced the camera from XBOX Live to PS3Eye with AlexP’s &#8230;]]></description>
			<content:encoded><![CDATA[<p>Just improved upon my existing LCD FTIR setup. Fixed LEDs/resistors, replaced the camera from XBOX Live to PS3Eye with AlexP’s drivers. Demo here is from the same exact setup with the new improvements.</p>
<p>Also worth mentioning is that these results are through a NonCompliant surface &#8211; just bare Acrylic in a normal well lit room. Performance and response with PS3Eye camera and TBETA For PS3Eye is way better. Video might look a little choppy but in real life the results are super smooth. I’ll see if I can capture it without the chops again. In the meanwhile check it out.</p>
<ul>
<li>LCD Screen: 17”</li>
<li>8 LEDs on each side(8×4 = 32 LEDs total) &#8211; evenly spaced</li>
<li>LED Wavelength: 880nm (SFH485: 5mm)</li>
<li>1 Ohm 1/4 W resistor per 8LEDs</li>
<li>12 VDC 1A Power to light up this array.</li>
<li>Acrylic: 5mm thick (Got it from Home Depot. Its thinner than what others have been using here)</li>
<li>PS3Eye Camera. Removed the IR Blocking Filter. Added an exposed photo negative 1 strip only as a filter.</li>
</ul>
<p>Also had to grind the PS3Eye lens holder base a little for focus purposes. Once you remove the IR Blocking Filter from the lens, you’ll notice that the camera loses focus. You can either add a new similar thickness filter lens to get the focus back or if you want to go the cheap route like in my case, for that you’ll end up grinding the lens base a little (2mm roughly I guess) for focus.</p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="640" height="385" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/v/0nuRm5jM6OU&amp;hl=en&amp;fs=1&amp;color1=0x3a3a3a&amp;color2=0x999999" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="640" height="385" src="http://www.youtube.com/v/0nuRm5jM6OU&amp;hl=en&amp;fs=1&amp;color1=0x3a3a3a&amp;color2=0x999999" allowfullscreen="true" allowscriptaccess="always"></embed></object></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.geomentary.com/index.php/2009/04/improved-lcd-ftir/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>My First LCD FTIR Project Completed</title>
		<link>http://blog.geomentary.com/index.php/2008/06/my-first-lcd-ftir-project-completed/</link>
		<comments>http://blog.geomentary.com/index.php/2008/06/my-first-lcd-ftir-project-completed/#comments</comments>
		<pubDate>Mon, 23 Jun 2008 11:25:28 +0000</pubDate>
		<dc:creator>Nasir Aziz</dc:creator>
				<category><![CDATA[Multitouch]]></category>
		<category><![CDATA[NUI]]></category>

		<guid isPermaLink="false">http://silverlight.geomentary.com/?p=55</guid>
		<description><![CDATA[<p>So finally I was able to complete my first LCD FTIR Multi Touch Screen project. Once I gathered all the materials &#8230;]]></description>
			<content:encoded><![CDATA[<p>So finally I was able to complete my first LCD FTIR Multi Touch Screen project. Once I gathered all the materials listed in the previous post, the housing of it all became an issue quickly. Meaning I didn’t want to initially set this up as a table top. I kind of wanted to have this on my desk so that I can play with it like a regular desktop computer setup.</p>
<p>Anyway, after some thought and an available resource, assembling and putting this whole setup together became clearer. I had an old Sony Trinitron 19″ CRT lying around at the house. Works but yeah who uses CRTs anymore? So I gut the whole thing out and left just the shell, meaning the body of this old and about to be recycled monitor.</p>
<p>Size and depth wise it turned out to be perfect for housing all of the LCD components. WebCam went all the way in the back. In front I attached Acrylic Sheet surrounded by IR LEDs in the inside followed by LCD, then LCD plexi type base, a diffuser that came with it plus original backlight tubes. The LCD power and other components were attached to the shell ceiling. Well it did take a little while to plan this out but was definitely faster than building the table for it.</p>
<p>After long hours of putting this together, it ended up looking like an actual regular monitor - except it ain’t.</p>
<p>Here is the video of it in action </p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="640" height="385" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/v/8OPFurqwzxs&amp;hl=en&amp;fs=1&amp;" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="640" height="385" src="http://www.youtube.com/v/8OPFurqwzxs&amp;hl=en&amp;fs=1&amp;" allowfullscreen="true" allowscriptaccess="always"></embed></object></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.geomentary.com/index.php/2008/06/my-first-lcd-ftir-project-completed/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>LCD FTIR</title>
		<link>http://blog.geomentary.com/index.php/2008/06/hello-world/</link>
		<comments>http://blog.geomentary.com/index.php/2008/06/hello-world/#comments</comments>
		<pubDate>Fri, 20 Jun 2008 04:05:08 +0000</pubDate>
		<dc:creator>Nasir Aziz</dc:creator>
				<category><![CDATA[Multitouch]]></category>

		<guid isPermaLink="false">http://silverlight.geomentary.com/?p=1</guid>
		<description><![CDATA[<p>Started my first LCD FTIR Project a week or so ago. I’ll start posting pictures and updates here as soon &#8230;]]></description>
			<content:encoded><![CDATA[<p>Started my first LCD FTIR Project a week or so ago. I’ll start posting pictures and updates here as soon as things progress:</p>
<p> So far I have gotten the Acrylic on top of LCD in place. Acrylic is lit by 4 arrays of IR LEDs (8 in each array). Getting very nice Blobs already even through the LCD.</p>
<p><span id="more-1"></span>Items acquired for the project:</p>
<ul>
<li>Dell 17″ LCD Monitor</li>
<li>Acrylic Sheet from Home Depot</li>
<li>XBOX Live WebCam: Removed IR Filter from it</li>
<li>SFH485 IR LEDs from <a href="http://search.digikey.com/scripts/DkSearch/dksus.dll?Detail?name=475-1112-ND" target="_blank">DigiKey</a> website</li>
<li>Aluminim rails: For LED mountings around the Acrylic Sheet (Home Depot)</li>
</ul>
<p>Already have:</p>
<ul>
<li>Windows Vista Laptop</li>
<li>Old CRT Monitor</li>
<li>Power Adapter for IR LEDs</li>
<li>Tools</li>
<li>Soldering iron etc.</li>
<li>Misc workshop type items/tools</li>
</ul>
<p>I’ll start posting pics and more detailed descrptions as soon as I get to it. Plus cost and the references to items I used.</p>
<p>Here is what the scheme looks like at this stage:</p>
<p> </p>
<p><a href="http://blog.geomentary.com/wp-content/uploads/2008/06/lcdmodelsmall.jpg"><img class="size-full wp-image-50 alignnone" title="Schematic" src="http://blog.geomentary.com/wp-content/uploads/2008/06/lcdmodelsmall.jpg" alt="Schematic" width="500" height="296" /></a></p>
<p>Schematic</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.geomentary.com/index.php/2008/06/hello-world/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Microsoft Surface Rio Vegas</title>
		<link>http://blog.geomentary.com/index.php/2008/06/microsoft-surface-rio-vegas/</link>
		<comments>http://blog.geomentary.com/index.php/2008/06/microsoft-surface-rio-vegas/#comments</comments>
		<pubDate>Mon, 09 Jun 2008 17:57:12 +0000</pubDate>
		<dc:creator>Nasir Aziz</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[Multitouch]]></category>
		<category><![CDATA[WPF]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[NUI]]></category>
		<category><![CDATA[Surface]]></category>

		<guid isPermaLink="false">http://silverlight.geomentary.com/?p=81</guid>
		<description><![CDATA[<p>Here is a good example of MS Surface in a social setup:</p>
<p></p>
]]></description>
			<content:encoded><![CDATA[<p>Here is a good example of MS Surface in a social setup:</p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="640" height="385" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/v/xeWdy6eCqDc&amp;hl=en&amp;fs=1&amp;" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="640" height="385" src="http://www.youtube.com/v/xeWdy6eCqDc&amp;hl=en&amp;fs=1&amp;" allowfullscreen="true" allowscriptaccess="always"></embed></object></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.geomentary.com/index.php/2008/06/microsoft-surface-rio-vegas/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
