<?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/'><id>tag:blogger.com,1999:blog-8944256652433533647.post4239047949059725813..comments</id><updated>2011-07-23T10:14:16.503-04:00</updated><category term='images'/><category term='silverlight seo'/><category term='xaml keys'/><category term='textblock'/><category term='transport'/><category term='dynamic modules'/><category term='liskov substitution'/><category term='bugs'/><category term='development'/><category term='source code browser'/><category term='dynamic types'/><category term='tombstone'/><category term='snowflake'/><category term='conversion'/><category term='events'/><category term='OOB'/><category term='rss reader'/><category term='rest services'/><category term='silverlight toolkit'/><category term='nonsecure items'/><category term='module'/><category term='silverlight navigation'/><category term='silverlight download'/><category term='ria services'/><category term='moq'/><category term='image transform'/><category term='powershell'/><category term='web client'/><category term='property change'/><category term='video'/><category term='nosql'/><category term='#msmix11w'/><category term='codeproject'/><category term='prism'/><category term='locator'/><category term='saga pattern'/><category term='ie 6.0'/><category term='facebook'/><category term='by ref'/><category term='linq'/><category term='windows mobile 7'/><category term='mix 2011'/><category term='theme'/><category term='observable'/><category term='azure'/><category term='datagridtemplatecolumn'/><category term='embedded resources'/><category term='click event'/><category term='common table expression'/><category term='crud'/><category term='mvc'/><category term='ms-pl'/><category term='build'/><category term='mvvm'/><category term='databinding'/><category term='rx'/><category term='client script'/><category term='unit testing'/><category term='NHibernate'/><category term='asp.net'/><category term='design'/><category term='scrollchanged'/><category term='anti-aliasing'/><category term='copyleft'/><category term='postback. callback. button'/><category term='enumerator'/><category term='windsor'/><category term='.NET tools'/><category term='text search'/><category term='silverlight animation'/><category term='subversion'/><category term='yuml'/><category term='dropdown'/><category term='fluent interfaces'/><category term='reflection'/><category term='model-view-controller'/><category term='list'/><category term='storyboard'/><category term='reportviewer'/><category term='cal'/><category term='serialization'/><category term='paging'/><category term='preloading'/><category term='ASP.NET control'/><category term='command'/><category term='OODB'/><category term='model-view-presenter'/><category term='silverlight 5'/><category term='silverlight printing'/><category term='single responsibility'/><category term='datacontext'/><category term='#msmix11s'/><category term='silverlight controls'/><category term='mvp'/><category term='olympics'/><category term='dynamic xap'/><category term='knockoutjs'/><category term='tortoisesvn'/><category term='MEF'/><category term='frameworks'/><category term='child window'/><category term='value type'/><category term='partinitializer'/><category term='plugin'/><category term='hierarchical data template'/><category term='animation'/><category term='line of business'/><category term='mix'/><category term='dynamic control'/><category term='source control'/><category term='host control'/><category term='JSON'/><category term='cross domain'/><category term='scrollview'/><category term='touch'/><category term='focus'/><category term='data temlate'/><category term='law of demeter'/><category term='silverlight 4'/><category term='feed reader'/><category term='navigation'/><category term='dry'/><category term='transaction'/><category term='windows service'/><category term='silverlight'/><category term='number'/><category term='design-time'/><category term='wpf control'/><category term='expression blend'/><category term='modules'/><category term='cube'/><category term='dispatcher'/><category term='solid principle'/><category term='silveright 3'/><category term='old school'/><category term='delegates'/><category term='weakreference'/><category term='constructor injection'/><category term='observablecollection'/><category term='datagrid'/><category term='jquery'/><category term='idataerrorinfo'/><category term='odata'/><category term='user control'/><category term='silverlight 3'/><category term='iapplicationservice'/><category term='dropdown bug'/><category term='CTE'/><category term='wpf'/><category term='behavior'/><category term='automated testing'/><category term='id'/><category term='exception'/><category term='lifetime management'/><category term='caching'/><category term='entity framework'/><category term='sql 2008'/><category term='custom markup extension'/><category term='silverlight services'/><category term='yield'/><category term='dialog'/><category term='xaml'/><category term='path'/><category term='SQL'/><category term='scriptableobject'/><category term='html5'/><category term='encoding'/><category term='Jounce'/><category term='singleton'/><category term='Windows Workflow Foundation'/><category term='yagni'/><category term='treeview'/><category term='windows phone 7'/><category term='smooth streaming'/><category term='out of browser'/><category term='unity framework'/><category term='plasma'/><category term='nunit'/><category term='validation'/><category term='service host'/><category term='convention'/><category term='ultralight.mvvm'/><category term='c#'/><category term='firefox'/><category term='image reflection'/><category term='interface segregation'/><category term='queries'/><category term='fractal'/><category term='data form'/><category term='pinvoke'/><category term='inotifypropertychanged'/><category term='mocking'/><category term='embedded javascript'/><category term='web service'/><category term='ancestor'/><category term='dynamic data'/><category term='event aggregator'/><category term='.net'/><category term='cag'/><category term='isolated storage'/><category term='bing maps'/><category term='value converter'/><category term='xml'/><category term='silverlight myths'/><category term='relative source'/><category term='data contract'/><category term='select'/><category term='attribute'/><category term='sharpdevelop'/><category term='silverlight games'/><category term='#msmix11sw'/><category term='ultra light'/><category term='visual tree'/><category term='schema'/><category term='licenses'/><category term='silverlight unit test'/><category term='metro'/><category term='callback'/><category term='icustomtypeprovider'/><category term='webforms'/><category term='deploymentcatalog'/><category term='handler'/><category term='data grid'/><category term='style'/><category term='inversion of control'/><category term='visual studio'/><category term='composite application guidance'/><category term='windows 8'/><category term='ssrs'/><category term='custom'/><category term='ui virtualization'/><category term='live smooth streaming'/><category term='html'/><category term='combobox'/><category term='large data sets'/><category term='quickstart'/><category term='task parallel library'/><category term='visual state manager'/><category term='syntax highlighter'/><category term='sterling'/><category term='ref keyword'/><category term='media'/><category term='xbox live'/><category term='viewmodel'/><category term='width'/><category term='system.web.ui'/><category term='javascript'/><category term='silverlight 3.0.50106.0'/><category term='asynchronous'/><category term='workflow'/><category term='debugging'/><category term='anonymous method'/><category term='silverlight richtextarea'/><category term='tablet'/><category term='server control'/><category term='windows communication foundation'/><category term='silverlight splash'/><category term='pivot'/><category term='pipes and filters'/><category term='gnu'/><category term='vs 2010'/><category term='windows phone 7 series'/><category term='childwindow'/><category term='regions'/><category term='view model'/><category term='zoom'/><category term='partial members'/><category term='panel'/><category term='iusertype'/><category term='pipeline pattern'/><category term='changed'/><category term='enterprise'/><category term='telerik'/><category term='html 5'/><category term='triggeraction'/><category term='viewbox'/><category term='postbacksettings error'/><category term='Koch'/><category term='database'/><category term='ndepend'/><category term='scrollviewer'/><category term='wcf'/><category term='delegatecommand'/><category term='assert'/><category term='debug'/><category term='codestock'/><category term='coroutine'/><category term='tpl'/><category term='dependency injection'/><category term='key'/><category term='slate'/><category term='assert.true'/><category term='wcf ria'/><category term='Managed Extensibility Framework'/><category term='code first'/><category term='composite wpf'/><category term='dynamic xaml'/><category term='magic string'/><category term='unspecified error'/><category term='lambda expression'/><category term='zune'/><category term='ajax'/><category term='updatepanel'/><category term='trigger'/><category term='view engine'/><category term='ui automation'/><category term='inline hyperlink'/><category term='reference type'/><category term='exportprovider'/><category term='isinteger'/><category term='listbox'/><category term='XAP'/><category term='single point of truth'/><category term='textbox'/><category term='windbg'/><category term='gmail autopilot'/><category term='enumerable'/><category term='napkee'/><category term='resource dictionary'/><category term='silverlight test'/><category term='free software'/><category term='performance profiling'/><category term='balsamiq'/><category term='captcha'/><category term='dependency property'/><category term='matrix'/><category term='generics'/><category term='multivalue'/><category term='dictionary'/><category term='resource file'/><category term='https'/><category term='reactive extensions'/><category term='open closed'/><category term='attached property'/><category term='references'/><category term='collections'/><category term='metadata'/><category term='model-view-viewmodel'/><category term='profiling'/><category term='bitmap'/><category term='binding'/><title type='text'>Comments on C#er : IMage: MEF instead of PRISM for Silverlight 3 Part 2 of 2...</title><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://csharperimage.jeremylikness.com/feeds/4239047949059725813/comments/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8944256652433533647/4239047949059725813/comments/default'/><link rel='alternate' type='text/html' href='http://csharperimage.jeremylikness.com/2010/03/mef-instead-of-prism-for-silverlight-3.html'/><author><name>Jeremy Likness</name><uri>https://profiles.google.com/104681642850492486855</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-zVEO4BsSOjc/AAAAAAAAAAI/AAAAAAAAAAA/ocZyKfGEY-Y/s512-c/photo.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>12</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-8944256652433533647.post-3874107034123777453</id><published>2011-07-23T03:35:44.448-04:00</published><updated>2011-07-23T03:35:44.448-04:00</updated><title type='text'>Jeremy - nice post,

Are there code changes requir...</title><content type='html'>Jeremy - nice post,&lt;br /&gt;&lt;br /&gt;Are there code changes required to this project for Silverlight 4?&lt;br /&gt;&lt;br /&gt;I&amp;#39;ve just compiled it and run it with VS2010 and the views do not appear?&lt;br /&gt;&lt;br /&gt;The same was true with Part 1, the break points in the initalisers never got hit.&lt;br /&gt;&lt;br /&gt;In your part 2 project, if I set break points in the View&amp;#39;s constructor, they do not get hit, as if they are not getting loaded?&lt;br /&gt;&lt;br /&gt;Thank you&lt;br /&gt;Rob</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8944256652433533647/4239047949059725813/comments/default/3874107034123777453'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8944256652433533647/4239047949059725813/comments/default/3874107034123777453'/><link rel='alternate' type='text/html' href='http://csharperimage.jeremylikness.com/2010/03/mef-instead-of-prism-for-silverlight-3.html?showComment=1311406544448#c3874107034123777453' title=''/><author><name>Anonymous</name><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img1.blogblog.com/img/blank.gif'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://csharperimage.jeremylikness.com/2010/03/mef-instead-of-prism-for-silverlight-3.html' ref='tag:blogger.com,1999:blog-8944256652433533647.post-4239047949059725813' source='http://www.blogger.com/feeds/8944256652433533647/posts/default/4239047949059725813' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-1912927325'/></entry><entry><id>tag:blogger.com,1999:blog-8944256652433533647.post-1514561961979926987</id><published>2010-11-11T12:21:18.578-05:00</published><updated>2010-11-11T12:21:18.578-05:00</updated><title type='text'>Lots of questions! 

Prism has a LOT of functional...</title><content type='html'>Lots of questions! &lt;br /&gt;&lt;br /&gt;Prism has a LOT of functionality so it would be difficult to inventory all of the differences. Let&amp;#39;s just say there is a lot there that if you are going to use it, I definitely would - and keep in mind the latest version does support MEF as the underlying way to wire things up.&lt;br /&gt;&lt;br /&gt;The Unity features are more a comparison between IoC containers than a direct PRISM to MEF or otherwise comparison. &lt;br /&gt;&lt;br /&gt;For scenarios not to take MEF - it&amp;#39;s tough to note, depends on the application, IoC strategy, etc. I won&amp;#39;t use MEF if I&amp;#39;m not as concerned about life time management but the second I find several classes that are shared across the application I prefer MEF to import/export those and get solid reuse - other consideration is size of the include in the XAP.&lt;br /&gt;&lt;br /&gt;For your last point, I typically wire mocks manually in test mode and use MEF in production.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8944256652433533647/4239047949059725813/comments/default/1514561961979926987'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8944256652433533647/4239047949059725813/comments/default/1514561961979926987'/><link rel='alternate' type='text/html' href='http://csharperimage.jeremylikness.com/2010/03/mef-instead-of-prism-for-silverlight-3.html?showComment=1289496078578#c1514561961979926987' title=''/><author><name>Jeremy Likness</name><uri>http://www.blogger.com/profile/18407945801671553594</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='27' src='http://1.bp.blogspot.com/_Rz8rPhvWXRQ/S4bqZAqQI4I/AAAAAAAAAEo/W4cg5i1NwMo/S220/jeremy400.PNG'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://csharperimage.jeremylikness.com/2010/03/mef-instead-of-prism-for-silverlight-3.html' ref='tag:blogger.com,1999:blog-8944256652433533647.post-4239047949059725813' source='http://www.blogger.com/feeds/8944256652433533647/posts/default/4239047949059725813' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-990550575'/></entry><entry><id>tag:blogger.com,1999:blog-8944256652433533647.post-5943917879176978078</id><published>2010-11-11T10:05:28.339-05:00</published><updated>2010-11-11T10:05:28.339-05:00</updated><title type='text'>Thank you, for the introduction!

I&amp;#39;ve got a f...</title><content type='html'>Thank you, for the introduction!&lt;br /&gt;&lt;br /&gt;I&amp;#39;ve got a few newbie questions:&lt;br /&gt;In your initial post, you wrote that this example is good, but that if you are only using it &amp;quot;for dynamic module loading and view management&amp;quot;.&lt;br /&gt;&lt;br /&gt;What exactly are you leaving out of Prism?&lt;br /&gt;And what Unity-features are missing?&lt;br /&gt;Under which scenarios *not* to take MEF?&lt;br /&gt;&lt;br /&gt;Also, I&amp;#39;d like to know: How to change/register a different (mock) implementation of an interface with a second one in MEF? (How does MEF know which one to take?)</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8944256652433533647/4239047949059725813/comments/default/5943917879176978078'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8944256652433533647/4239047949059725813/comments/default/5943917879176978078'/><link rel='alternate' type='text/html' href='http://csharperimage.jeremylikness.com/2010/03/mef-instead-of-prism-for-silverlight-3.html?showComment=1289487928339#c5943917879176978078' title=''/><author><name>Anonymous</name><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img1.blogblog.com/img/blank.gif'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://csharperimage.jeremylikness.com/2010/03/mef-instead-of-prism-for-silverlight-3.html' ref='tag:blogger.com,1999:blog-8944256652433533647.post-4239047949059725813' source='http://www.blogger.com/feeds/8944256652433533647/posts/default/4239047949059725813' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-1217156691'/></entry><entry><id>tag:blogger.com,1999:blog-8944256652433533647.post-8689263088981966104</id><published>2010-08-22T15:22:09.243-04:00</published><updated>2010-08-22T15:22:09.243-04:00</updated><title type='text'>I take everything back, works like a breeze.

I ha...</title><content type='html'>I take everything back, works like a breeze.&lt;br /&gt;&lt;br /&gt;I had slipped your tutorial into my code and&lt;br /&gt;there was a difference. It seems that&lt;br /&gt;DeploymentCatalog.DownloadAsync has to be&lt;br /&gt;called on the UI thread, it fails rather&lt;br /&gt;silently otherwise. After routing it via the&lt;br /&gt;Dispatcher, everything went OK.&lt;br /&gt;&lt;br /&gt;Sorry for the premature comment.&lt;br /&gt;&lt;br /&gt;Andreas.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8944256652433533647/4239047949059725813/comments/default/8689263088981966104'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8944256652433533647/4239047949059725813/comments/default/8689263088981966104'/><link rel='alternate' type='text/html' href='http://csharperimage.jeremylikness.com/2010/03/mef-instead-of-prism-for-silverlight-3.html?showComment=1282504929243#c8689263088981966104' title=''/><author><name>Andreas Hassmann</name><uri>http://hassmann.com</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img1.blogblog.com/img/blank.gif'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://csharperimage.jeremylikness.com/2010/03/mef-instead-of-prism-for-silverlight-3.html' ref='tag:blogger.com,1999:blog-8944256652433533647.post-4239047949059725813' source='http://www.blogger.com/feeds/8944256652433533647/posts/default/4239047949059725813' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-1179354481'/></entry><entry><id>tag:blogger.com,1999:blog-8944256652433533647.post-7841761274704345761</id><published>2010-08-21T22:21:35.570-04:00</published><updated>2010-08-21T22:21:35.570-04:00</updated><title type='text'>First of all: Thank you very much.
I have started ...</title><content type='html'>First of all: Thank you very much.&lt;br /&gt;I have started with MEF just through your post.&lt;br /&gt;&lt;br /&gt;I would like to use this, but here in Silverlight 4 it does not work, the views do not show up.&lt;br /&gt;&lt;br /&gt;Being a MEF-Newbie I can but guess:&lt;br /&gt;&lt;br /&gt;I would assume that after a module has&lt;br /&gt;been downloaded, the CollectionChanged&lt;br /&gt;event handler in RegionManager should&lt;br /&gt;fire. But it does not.&lt;br /&gt;&lt;br /&gt;Excellent post, Jeremy. Lots of brain-food.&lt;br /&gt;&lt;br /&gt;Andreas.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8944256652433533647/4239047949059725813/comments/default/7841761274704345761'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8944256652433533647/4239047949059725813/comments/default/7841761274704345761'/><link rel='alternate' type='text/html' href='http://csharperimage.jeremylikness.com/2010/03/mef-instead-of-prism-for-silverlight-3.html?showComment=1282443695570#c7841761274704345761' title=''/><author><name>Andreas Hassmann</name><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img1.blogblog.com/img/blank.gif'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://csharperimage.jeremylikness.com/2010/03/mef-instead-of-prism-for-silverlight-3.html' ref='tag:blogger.com,1999:blog-8944256652433533647.post-4239047949059725813' source='http://www.blogger.com/feeds/8944256652433533647/posts/default/4239047949059725813' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-1179354481'/></entry><entry><id>tag:blogger.com,1999:blog-8944256652433533647.post-9012723819048011148</id><published>2010-06-17T03:23:00.184-04:00</published><updated>2010-06-17T03:23:00.184-04:00</updated><title type='text'>Downloaded, compiled, ran the app. Main shell show...</title><content type='html'>Downloaded, compiled, ran the app. Main shell shows up, regions don&amp;#39;t! Did anybody manage to reproduce the app from the downloadables?</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8944256652433533647/4239047949059725813/comments/default/9012723819048011148'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8944256652433533647/4239047949059725813/comments/default/9012723819048011148'/><link rel='alternate' type='text/html' href='http://csharperimage.jeremylikness.com/2010/03/mef-instead-of-prism-for-silverlight-3.html?showComment=1276759380184#c9012723819048011148' title=''/><author><name>Przem0</name><uri>http://www.blogger.com/profile/02298012432229817626</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_JSpVFl82-iM/SZLjdnTkhLI/AAAAAAAAAAw/B3Ej71TF45s/S220/large.jpeg'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://csharperimage.jeremylikness.com/2010/03/mef-instead-of-prism-for-silverlight-3.html' ref='tag:blogger.com,1999:blog-8944256652433533647.post-4239047949059725813' source='http://www.blogger.com/feeds/8944256652433533647/posts/default/4239047949059725813' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-2130140721'/></entry><entry><id>tag:blogger.com,1999:blog-8944256652433533647.post-7699052959377783683</id><published>2010-05-12T05:09:29.352-04:00</published><updated>2010-05-12T05:09:29.352-04:00</updated><title type='text'>Could it work on silverlight 4 ? Cause it doesn&amp;#3...</title><content type='html'>Could it work on silverlight 4 ? Cause it doesn&amp;#39;t work for me :(&lt;br /&gt;&lt;br /&gt;The view are not loaded. But the button become enable true / false. I&amp;#39;ve try step by step first, fail.&lt;br /&gt;&lt;br /&gt;Then i try to start with your solution, add new project sl4 application, new website, then drag &amp;amp; drop file rename only the namespace. Still fail.&lt;br /&gt;&lt;br /&gt;Does anybody make it work on silverlight 4 ? I succeed to build the part 1 in sl4 but not this one :/&lt;br /&gt;I&amp;#39;ll try another times after watching the video.&lt;br /&gt;&lt;br /&gt;by the way, Thanks a lot !</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8944256652433533647/4239047949059725813/comments/default/7699052959377783683'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8944256652433533647/4239047949059725813/comments/default/7699052959377783683'/><link rel='alternate' type='text/html' href='http://csharperimage.jeremylikness.com/2010/03/mef-instead-of-prism-for-silverlight-3.html?showComment=1273655369352#c7699052959377783683' title=''/><author><name>Nicolas</name><uri>http://www.blogger.com/profile/03899931094383864006</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://csharperimage.jeremylikness.com/2010/03/mef-instead-of-prism-for-silverlight-3.html' ref='tag:blogger.com,1999:blog-8944256652433533647.post-4239047949059725813' source='http://www.blogger.com/feeds/8944256652433533647/posts/default/4239047949059725813' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-1940956667'/></entry><entry><id>tag:blogger.com,1999:blog-8944256652433533647.post-6003179409995859344</id><published>2010-04-30T13:41:12.530-04:00</published><updated>2010-04-30T13:41:12.530-04:00</updated><title type='text'>This is great information Jeremy. Thing is, I get ...</title><content type='html'>This is great information Jeremy. Thing is, I get the following error when I try to run:&lt;br /&gt;The base class or interface of &amp;#39;System.Lazy&amp;#39; could not be resolved or is invalid &lt;br /&gt;&lt;br /&gt;c:\Program Files\Microsoft SDKs\Silverlight\v4.0\Libraries\Client\System.ComponentModel.Composition.dll RegionsWithMEF.Regions</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8944256652433533647/4239047949059725813/comments/default/6003179409995859344'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8944256652433533647/4239047949059725813/comments/default/6003179409995859344'/><link rel='alternate' type='text/html' href='http://csharperimage.jeremylikness.com/2010/03/mef-instead-of-prism-for-silverlight-3.html?showComment=1272649272530#c6003179409995859344' title=''/><author><name>Anonymous</name><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img1.blogblog.com/img/blank.gif'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://csharperimage.jeremylikness.com/2010/03/mef-instead-of-prism-for-silverlight-3.html' ref='tag:blogger.com,1999:blog-8944256652433533647.post-4239047949059725813' source='http://www.blogger.com/feeds/8944256652433533647/posts/default/4239047949059725813' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-1417870353'/></entry><entry><id>tag:blogger.com,1999:blog-8944256652433533647.post-5678931036224256002</id><published>2010-04-13T20:01:59.939-04:00</published><updated>2010-04-13T20:01:59.939-04:00</updated><title type='text'>There are lots of real world examples, the questio...</title><content type='html'>There are lots of real world examples, the question is, can you have access to them? The reason you see short posts is because I&amp;#39;m not at liberty to post a customer&amp;#39;s code and frankly don&amp;#39;t have the time to build a huge reference project ... I&amp;#39;d love to and try to get bits and pieces, but it&amp;#39;s just not practical. &lt;br /&gt;&lt;br /&gt;What if my objects require constructor params? First, that&amp;#39;s a design detail, not a problem for MEF or PRISM. I decide if I want dependencies to be injected in the constructor or exposed as properties. MEF can handle either, via ImportingConstructor for example. &lt;br /&gt;&lt;br /&gt;I understand you don&amp;#39;t have &amp;quot;time to waste&amp;quot; but it is a core part of the CLR now, so it makes sense to start to learn it. I would say if it takes 2 months to learn, programming probably isn&amp;#39;t the right profession to be in. Seriously, it&amp;#39;s not rocket science and most people I know can have code up and running in days.&lt;br /&gt;&lt;br /&gt;The examples you gave me don&amp;#39;t sound like PRISM or MEF problems. They are design. So your shell needs different types of regions? Fine. I&amp;#39;ll create a master shell with one region, then my modules will have a module-specific shell with module-specific regions, etc. This isn&amp;#39;t Prism or MEF specific, it&amp;#39;s how I design it.&lt;br /&gt;&lt;br /&gt;The frameworks are there for guidance and to help you build the application, not to build the whole thing for you! I&amp;#39;ve given examples of all of the things you speak of. &lt;br /&gt;&lt;br /&gt;For MEF, specifically, part of the MEFContrib is building documentation. We&amp;#39;re working on it as we speak, including both a comprehensive programming guide as well as quickstarts that include text, sample videos, and reference projects. They will all be based on the real world scenarios the members of the contrib team encounter day to day.&lt;br /&gt;&lt;br /&gt;Hope that helps and thanks for sharing your links!</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8944256652433533647/4239047949059725813/comments/default/5678931036224256002'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8944256652433533647/4239047949059725813/comments/default/5678931036224256002'/><link rel='alternate' type='text/html' href='http://csharperimage.jeremylikness.com/2010/03/mef-instead-of-prism-for-silverlight-3.html?showComment=1271203319939#c5678931036224256002' title=''/><author><name>Jeremy Likness</name><uri>http://www.blogger.com/profile/18407945801671553594</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='27' src='http://1.bp.blogspot.com/_Rz8rPhvWXRQ/S4bqZAqQI4I/AAAAAAAAAEo/W4cg5i1NwMo/S220/jeremy400.PNG'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://csharperimage.jeremylikness.com/2010/03/mef-instead-of-prism-for-silverlight-3.html' ref='tag:blogger.com,1999:blog-8944256652433533647.post-4239047949059725813' source='http://www.blogger.com/feeds/8944256652433533647/posts/default/4239047949059725813' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-990550575'/></entry><entry><id>tag:blogger.com,1999:blog-8944256652433533647.post-8705236217125907650</id><published>2010-04-13T14:38:09.486-04:00</published><updated>2010-04-13T14:38:09.486-04:00</updated><title type='text'>First of all, thanks for the effort.  However, are...</title><content type='html'>First of all, thanks for the effort.  However, are there any real world samples out there that demonstrate MEF in a real world LOB type of scenario.&lt;br /&gt;&lt;br /&gt;I just got through going through Prism.  It was a lot of frustration etc.  You find &amp;quot;short&amp;quot; samples like these, you get excited and start trying to build a prototype and it doesn&amp;#39;t take long to realize there is a lot missing.&lt;br /&gt;&lt;br /&gt;Looks like you just recreated the wheel and wrote code to for things such as the RegionManager, so if you know Prism, so to me the samples don&amp;#39;t accomplish what they state.  &lt;br /&gt;&lt;br /&gt;What if your view models need to require constructor params for instantiation?  WHat if your in a situation where you need controllers etc.&lt;br /&gt;&lt;br /&gt;I&amp;#39;m trying to look into MEF but I just got through with learning Prism to a level where I&amp;#39;m comfortable that there isn&amp;#39;t anything our team can&amp;#39;t accomplish without hacking and ending up with a mess just as bad as using the code behind philosophy.  &lt;br /&gt;&lt;br /&gt;If MEF is a lot easier and concise, I&amp;#39;d love to give it a try but like most other people don&amp;#39;t have 2 months more to waste trying to figure it out.&lt;br /&gt;&lt;br /&gt;As I put in another post, I&amp;#39;m starting a community to help lower the learning curve for developers who want to start utilizing Design patterns to create layered code.  I&amp;#39;ve taken the time to try and put together a real world sample covered over 9 Lessons. &lt;br /&gt;&lt;br /&gt;They can use some improving as well.  Plus if anybody has something they&amp;#39;d like to see, if I have time, I&amp;#39;m open to adding it as a lesson.&lt;br /&gt;http://www.compositedevpatterns.com/list/category/48-Training-(Prism)&lt;br /&gt;&lt;br /&gt;Jeremy, do you know of any real world examples out there for MEF developers can go to and find samples covering and appropriately showing how to utilize them for real world scenarios?&lt;br /&gt;&lt;br /&gt;I&amp;#39;m sure if you worked with MS on the olympics you guys covered a lot of areas.&lt;br /&gt;&lt;br /&gt;To start, from the environments I work in, we want to build our code in modules.  Our shell needs to be dynamic in that you need to be able to have multiple different region layouts.  As the shell in some cases may need only 2 regions of a certain size.  But then in others it may need 6 regions.&lt;br /&gt;&lt;br /&gt;Popups, like them or not are still common as editors in quite a few applications.&lt;br /&gt;&lt;br /&gt;Right click menu, context functionality etc.&lt;br /&gt;&lt;br /&gt;If there is not anything out there like it, if anybody would care to help I&amp;#39;d like to get a section for MEF up on the community.  I can look at doing with MEF what I did with Prism and start a separate set of Lessons if anybody out there with MEF knowledge wouldn&amp;#39;t mind sharing their contact to bounce questions off of.  (Right now I don&amp;#39;t have enough free time to go through the same trials and tribulations I did with Prism.)&lt;br /&gt;&lt;br /&gt;P.S.  Again Jeremy, I posted this because of a comment you left on the MEF codeplex site indicating you were a part of the MEF contrib team.  So I posted these comments as constructive criticism and hopes they get to the right persons at MS to help get us better samples and training materials.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8944256652433533647/4239047949059725813/comments/default/8705236217125907650'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8944256652433533647/4239047949059725813/comments/default/8705236217125907650'/><link rel='alternate' type='text/html' href='http://csharperimage.jeremylikness.com/2010/03/mef-instead-of-prism-for-silverlight-3.html?showComment=1271183889486#c8705236217125907650' title=''/><author><name>frosty</name><uri>http://www.blogger.com/profile/06294784565297030149</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://csharperimage.jeremylikness.com/2010/03/mef-instead-of-prism-for-silverlight-3.html' ref='tag:blogger.com,1999:blog-8944256652433533647.post-4239047949059725813' source='http://www.blogger.com/feeds/8944256652433533647/posts/default/4239047949059725813' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-1425969941'/></entry><entry><id>tag:blogger.com,1999:blog-8944256652433533647.post-3326010617526971938</id><published>2010-03-02T07:07:55.413-05:00</published><updated>2010-03-02T07:07:55.413-05:00</updated><title type='text'>Yes, thanks for the comment! I wanted to show main...</title><content type='html'>Yes, thanks for the comment! I wanted to show mainly how the PRISM patterns could be extended into MEF. There is definitely debate over whether the region manager solution makes sense. I have a lot of people who are drawn to MEF but feel they need PRISM for certain aspects, so I wanted to show a clean break using the patterns they are familiar with. &lt;br /&gt;&lt;br /&gt;I&amp;#39;ve found most of my line of business applications are really looking for a routing mechanism, to make it easier to route the view to the correct location. Decoupling would suggest we tag the view, we tag the region, then we have something in between that routes views to regions. &lt;br /&gt;&lt;br /&gt;On the other hand, I think of a social networking application that can have columns for Twitter, Facebook, etc, and within those columns perhaps different areas for pictures, profile names, and actions ... that is the perfect example where there is truly no knowledge of views or regions before hand and will be a very interesting pattern to explore! &lt;br /&gt;&lt;br /&gt;I encourage those reading this to watch the video link I supplied as well, which shows a different way of tagging/routing the views.&lt;br /&gt;&lt;br /&gt;Thanks!</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8944256652433533647/4239047949059725813/comments/default/3326010617526971938'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8944256652433533647/4239047949059725813/comments/default/3326010617526971938'/><link rel='alternate' type='text/html' href='http://csharperimage.jeremylikness.com/2010/03/mef-instead-of-prism-for-silverlight-3.html?showComment=1267531675413#c3326010617526971938' title=''/><author><name>Jeremy Likness</name><uri>http://www.blogger.com/profile/18407945801671553594</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='27' src='http://1.bp.blogspot.com/_Rz8rPhvWXRQ/S4bqZAqQI4I/AAAAAAAAAEo/W4cg5i1NwMo/S220/jeremy400.PNG'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://csharperimage.jeremylikness.com/2010/03/mef-instead-of-prism-for-silverlight-3.html' ref='tag:blogger.com,1999:blog-8944256652433533647.post-4239047949059725813' source='http://www.blogger.com/feeds/8944256652433533647/posts/default/4239047949059725813' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-990550575'/></entry><entry><id>tag:blogger.com,1999:blog-8944256652433533647.post-791854531565712240</id><published>2010-03-02T03:30:21.949-05:00</published><updated>2010-03-02T03:30:21.949-05:00</updated><title type='text'>Nice post! This is actually something that was exp...</title><content type='html'>Nice post! This is actually something that was explored internally some time ago. The one caveat is it is coupling the part with the region it needs to go in. True it&amp;#39;s not dependent on what that is, but it still gives the part the knowledge of &amp;quot;where&amp;quot; it should reside. It does make sense for certain scenarios though.&lt;br /&gt;&lt;br /&gt;An alternative approach is to have parts declare metadata which a layout manager uses to determine where it should go. For example instead of a news part having metadata that says it go in the News Region, it can simply export a piece of additional metadata  like &amp;quot;ViewType&amp;quot; which indicates that it IS news. For example...&lt;br /&gt;&lt;br /&gt;[View(Type=ViewTypes.News)]&lt;br /&gt;public class NewsPart {&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;View is a custom export which exposes Type metadata.&lt;br /&gt;&lt;br /&gt;This way the part is completely decoupled from any connection to the UI, somethign which is important if you are reusing parts across applications.&lt;br /&gt;&lt;br /&gt;This is only a semantical difference, but it has great implications. Also you can extend the metadata to be even richer, thus giving more opportunities for how the UI is rendered based on the metadata.&lt;br /&gt;&lt;br /&gt;Both approaches have their place though.&lt;br /&gt;&lt;br /&gt;Keep up the great work!</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8944256652433533647/4239047949059725813/comments/default/791854531565712240'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8944256652433533647/4239047949059725813/comments/default/791854531565712240'/><link rel='alternate' type='text/html' href='http://csharperimage.jeremylikness.com/2010/03/mef-instead-of-prism-for-silverlight-3.html?showComment=1267518621949#c791854531565712240' title=''/><author><name>Glenn Block</name><uri>http://blogs.msdn.com/gblock</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img1.blogblog.com/img/blank.gif'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://csharperimage.jeremylikness.com/2010/03/mef-instead-of-prism-for-silverlight-3.html' ref='tag:blogger.com,1999:blog-8944256652433533647.post-4239047949059725813' source='http://www.blogger.com/feeds/8944256652433533647/posts/default/4239047949059725813' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-1234383984'/></entry></feed>
