<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet type='text/xsl' href='http://wperr.spaces.live.com/mmm2008-07-24_12.50/rsspretty.aspx?rssquery=en-US;http%3a%2f%2fwperr.spaces.live.com%2ffeed.rss' version='1.0'?><rss version="2.0" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:msn="http://schemas.microsoft.com/msn/spaces/2005/rss" xmlns:live="http://schemas.microsoft.com/live/spaces/2006/rss" xmlns:dcterms="http://purl.org/dc/terms/" xmlns:cf="http://www.microsoft.com/schemas/rss/core/2005" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Will's space</title><description>Will Perry works and studies in London</description><link>http://wperr.spaces.live.com/</link><language>en-US</language><pubDate>Sat, 25 Oct 2008 14:16:15 GMT</pubDate><lastBuildDate>Sat, 25 Oct 2008 14:16:15 GMT</lastBuildDate><generator>Microsoft Spaces v1.1</generator><docs>http://www.rssboard.org/rss-specification</docs><ttl>60</ttl><live:identity><live:id>-7536634898169727583</live:id><live:alias>wperr</live:alias></live:identity><image><title>Will's space</title><url>http://byfiles.storage.live.com/y1prsfLWdhlOmxxAncnrsQZWefoWsMZhevEfdqQaUyiNlh-35Y7UBtYGoG426OBCXmf</url><link>http://wperr.spaces.live.com/</link></image><cf:listinfo><cf:group ns="http://schemas.microsoft.com/live/spaces/2006/rss" element="typelabel" label="Type" /><cf:group ns="http://schemas.microsoft.com/live/spaces/2006/rss" element="tag" label="Tag" /><cf:group element="category" label="Category" /><cf:sort element="pubDate" label="Date" data-type="date" default="true" /><cf:sort element="title" label="Title" data-type="string" /><cf:sort ns="http://purl.org/rss/1.0/modules/slash/" element="comments" label="Comments" data-type="number" /></cf:listinfo><item><title>Simple Guidelines for Building Reusable .Net Libraries</title><link>http://wperr.spaces.live.com/Blog/cns!97687E7DACC7F5A1!155.entry</link><description>&lt;p&gt;There are some great (and very thorough) documents out there that can give you fantastic guidance on creating beautiful, reusable .Net libraries, &lt;a href="http://blogs.msdn.com/kcwalina/"&gt;Krzysztof Cwalina's Blog&lt;/a&gt; is my personal favourite. Most of it, however, is pretty verbose, very long and just feels a lot like overkill, so here are a few things I've done in the past that seem to work. &lt;ol&gt; &lt;li&gt;&lt;strong&gt;The 80/20 Split&lt;br&gt;&lt;/strong&gt;Consider the core functionality that 80% of the library users want to achieve, stick all the classes you need to achieve a solution in that 80% region in a concisely named namespace. Generally this means asking yourself: &lt;strong&gt;What do people want to do? &lt;/strong&gt;and &lt;strong&gt;What can I give them to help them do that?&lt;br&gt;&lt;/strong&gt;Next, consider that final 20%: Can your library be extended? If so how? What are the unusual, complex scenarios that require a deeper understanding of the technologies involved to build a solution? Once you figure this out, create a child namespace of your '80%' one and expose only the public types required to achieve that final 20%. &lt;li&gt;&lt;strong&gt;Visibility Modifiers are Your Friend&lt;/strong&gt;&lt;br&gt;(Generally) No one cares about your implementation details - if they do care its usually because your public interface sucks. In summary, if its not vitally important to getting the job done, hide it. Use internal for those important classes that ship data around your library but never see the outside world, mark static holder types as static, and remove the constructors for types that are constructed by a factory. Use 'internal' as the default modifier for type visibility and before changing it to public spend a few minutes thinking: &lt;ol&gt; &lt;li&gt;Does the name of the class really say what it does? (Nobody reads the manual) &lt;li&gt;Do the constructor arguments convey the minimum information needed to create a 'sane' instance? &lt;li&gt;Is this class useful to a user? what would they do with it? where would it come from and how is it consumed?&lt;/ol&gt; &lt;li&gt;&lt;strong&gt;Encapsulation is Your Best Friend&lt;/strong&gt;&lt;br&gt;The user of  your library didn't read the manual, they'll probably ignore the intellisense summaries too. Design your class so that everything you can do, you should do. &lt;ol&gt; &lt;li&gt;Public fields are evil (and inexcusable), use properties instead &lt;li&gt;(Generally) There is no need to expose a setter on a collection property, so don't do it &lt;li&gt;Wherever it makes sense, use immutability by marking fields as readonly&lt;/ol&gt;&lt;/ol&gt; &lt;p&gt;More later... &lt;p&gt;--W&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=-7536634898169727583&amp;page=RSS%3a+Simple+Guidelines+for+Building+Reusable+.Net+Libraries&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=wperr.spaces.live.com&amp;amp;GT1=wperr"&gt;</description><category>.Net Guidelines</category><comments>http://wperr.spaces.live.com/Blog/cns!97687E7DACC7F5A1!155.entry#comment</comments><guid isPermaLink="true">http://wperr.spaces.live.com/Blog/cns!97687E7DACC7F5A1!155.entry</guid><pubDate>Wed, 21 Nov 2007 12:51:28 GMT</pubDate><slash:comments>2</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://wperr.spaces.live.com/blog/cns!97687E7DACC7F5A1!155/comments/feed.rss</wfw:commentRss><wfw:comment>http://wperr.spaces.live.com/Blog/cns!97687E7DACC7F5A1!155.entry#comment</wfw:comment><dcterms:modified>2007-11-21T12:51:28Z</dcterms:modified></item><item><title>Microsoft gives birth to wave of new technologies</title><link>http://wperr.spaces.live.com/Blog/cns!97687E7DACC7F5A1!146.entry</link><description>&lt;div&gt;Wow. Didn't see that coming, not as fast either.&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;In the last 7 days, Microsoft Released Visual Studio 2008, Popfly, Windows Live {Messenger, Writer, Mail, Sign In Assistant, Photo Gallery} and Zune 2. Its going to take me a while to catch up with it all!&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;For now, checkout &lt;a href="http://www.winsupersite.com"&gt;http://www.winsupersite.com&lt;/a&gt; for Zune and Windows Live&lt;/div&gt;
&lt;div&gt;and just jump straight to &lt;a href="http://www.microsoft.com/express"&gt;http://www.microsoft.com/express&lt;/a&gt; for visual studio&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;-- W&lt;/div&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=-7536634898169727583&amp;page=RSS%3a+Microsoft+gives+birth+to+wave+of+new+technologies&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=wperr.spaces.live.com&amp;amp;GT1=wperr"&gt;</description><category>Computers and Internet</category><comments>http://wperr.spaces.live.com/Blog/cns!97687E7DACC7F5A1!146.entry#comment</comments><guid isPermaLink="true">http://wperr.spaces.live.com/Blog/cns!97687E7DACC7F5A1!146.entry</guid><pubDate>Tue, 20 Nov 2007 17:46:18 GMT</pubDate><slash:comments>3</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://wperr.spaces.live.com/blog/cns!97687E7DACC7F5A1!146/comments/feed.rss</wfw:commentRss><wfw:comment>http://wperr.spaces.live.com/Blog/cns!97687E7DACC7F5A1!146.entry#comment</wfw:comment><dcterms:modified>2007-11-20T17:46:18Z</dcterms:modified></item><item><title>.Net in the Palm of Your Hand (or the sole of your shoe)</title><link>http://wperr.spaces.live.com/Blog/cns!97687E7DACC7F5A1!136.entry</link><description>&lt;div style="padding-right:0px;display:inline;padding-left:0px;padding-bottom:0px;margin:0px;padding-top:0px"&gt;Technorati Tags:  		&lt;a href="http://technorati.com/tags/micro/" rel=tag&gt;micro&lt;/a&gt; 		,  		&lt;a href="http://technorati.com/tags/netfx/" rel=tag&gt;netfx&lt;/a&gt; 		&lt;/div&gt; &lt;p&gt;&lt;strong&gt;Most developers have heard of the .Net framework, some are aware that the framework also runs on mobile devices (the .Net Compact Framework) but many are completely unaware of .Nets new smaller brother: .Net Micro.&lt;/strong&gt; &lt;p&gt;The micro framework is a subset of .Net 3.0, although not a subset of the compact framework (it includes serialization features not present in cfx), and weighs in at a miniscule 400K, requiring just 70K of RAM to run. Just let that sink in for a moment. You get a WPF-esque presenation layer, Network Access, garbage collection, the type system, serialization and threading (for starters), all sitting on just 400K of flash with just 70K of RAM. Wow. &lt;p&gt;The micro framework runs directly on hardware, no operating system (or associated overhead/cost) is required, the devices don't need to be the slave of a PC either: you can literally have micro framework compatible chip with some batteries and a screen sat on your desk running a C# application. The implications of this technology are clearly huge. Suddenly developing new hardware doesn't take years and cost millions, anyone can download the SDK (complete with a customizable, extensible emulation platform) and write managed code to run on a cheap,flexible device. no more low level C/C++, no more bespoke tooling and poor documentation. &lt;p&gt;I'm hoping to attend another session focused on the micro framework on Wednesday and will be speaking with Dave and Rob a little later for Channel 8.&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=-7536634898169727583&amp;page=RSS%3a+.Net+in+the+Palm+of+Your+Hand+(or+the+sole+of+your+shoe)&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=wperr.spaces.live.com&amp;amp;GT1=wperr"&gt;</description><category>Development</category><comments>http://wperr.spaces.live.com/Blog/cns!97687E7DACC7F5A1!136.entry#comment</comments><guid isPermaLink="true">http://wperr.spaces.live.com/Blog/cns!97687E7DACC7F5A1!136.entry</guid><pubDate>Tue, 06 Nov 2007 07:49:41 GMT</pubDate><slash:comments>1</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://wperr.spaces.live.com/blog/cns!97687E7DACC7F5A1!136/comments/feed.rss</wfw:commentRss><wfw:comment>http://wperr.spaces.live.com/Blog/cns!97687E7DACC7F5A1!136.entry#comment</wfw:comment><dcterms:modified>2007-11-06T07:49:41Z</dcterms:modified></item><item><title>Microsoft Announces Availability of Visual Studio 2008</title><link>http://wperr.spaces.live.com/Blog/cns!97687E7DACC7F5A1!133.entry</link><description>&lt;p&gt;&lt;strong&gt;At TechEd EMEA in Barcelona today (05 Nov 07) Microsoft announced the availability of Visual Studio 2008 by the end of this month. &lt;/strong&gt;The product will still launch in February 2008, along with SQL Server 2008 (codenamed Katami) and Windows Server 2008 (codenamed Longhorn), but will be released an incredible four months ahead of schedule. &lt;p&gt;Visual Studio 2008 and .Net Framework 3.5 include new versions of the C# and Visual Basic (VB) languages with new features to reduce the gulf that currently exists between data (query) languages and tranditional general purpose languages. LINQ, whilst being on of the most talked about features of the new versions, is not the only thing new, however; the 3.5 framework includes the WCF/WF 'silverbits' which improve the interoperability between Windows Workflow and Windows Communication foundataion: enabling services to be called from workflows, and workflows created by service calls. &lt;p&gt;The new release of visual studio boasts a wealth of new designers, including a new split view for Web Designers and support for WCF applications using Xaml and the designer codenamed Cider.&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=-7536634898169727583&amp;page=RSS%3a+Microsoft+Announces+Availability+of+Visual+Studio+2008&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=wperr.spaces.live.com&amp;amp;GT1=wperr"&gt;</description><category>Development</category><comments>http://wperr.spaces.live.com/Blog/cns!97687E7DACC7F5A1!133.entry#comment</comments><guid isPermaLink="true">http://wperr.spaces.live.com/Blog/cns!97687E7DACC7F5A1!133.entry</guid><pubDate>Mon, 05 Nov 2007 16:34:37 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://wperr.spaces.live.com/blog/cns!97687E7DACC7F5A1!133/comments/feed.rss</wfw:commentRss><wfw:comment>http://wperr.spaces.live.com/Blog/cns!97687E7DACC7F5A1!133.entry#comment</wfw:comment><dcterms:modified>2007-11-05T16:36:33Z</dcterms:modified></item></channel></rss>