<?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>Mike Plate &#187; TEE09</title>
	<atom:link href="http://www.mikeplate.com/tag/tee09/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.mikeplate.com</link>
	<description>Freelance web and mobile developer</description>
	<lastBuildDate>Tue, 17 Aug 2010 20:12:19 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Microsoft TechEd Europe 2009 in Berlin, Friday</title>
		<link>http://www.mikeplate.com/teched-2009-berlin-friday/</link>
		<comments>http://www.mikeplate.com/teched-2009-berlin-friday/#comments</comments>
		<pubDate>Fri, 13 Nov 2009 18:00:39 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Conference]]></category>
		<category><![CDATA[TEE09]]></category>

		<guid isPermaLink="false">http://www.mikeplate.com/?p=88</guid>
		<description><![CDATA[So the last day of TechEd is over. After a full week, my brain is a little tired. The last day doesn&#8217;t have the same energy as the other days. I find it somewhat unfortunate. The lunch was only a bag with sandwich, salad and stuff. The lunch break is shortened and only one session [...]]]></description>
			<content:encoded><![CDATA[<p>So the last day of TechEd is over. After a full week, my brain is a little tired. The last day doesn&#8217;t have the same energy as the other days. I find it somewhat unfortunate. The lunch was only a bag with sandwich, salad and stuff. The lunch break is shortened and only one session after lunch. Of course, people want to go home since I assume their brains are as tired as mine. But I did manage to retrieve some previously unknown facts for Silverlight.<span id="more-88"></span></p>
<h2>WIA308 The Biggest Little-Known Features in Silverlight &#8211; Jeff Prosise</h2>
<p>Name an extremely good, speedy and focused presenter that comes well prepared! Yes, you might say <a href="http://www.wintellect.com/CS/blogs/jprosise/default.aspx">Jeff Prosise</a>. This was one of the best sessions at TechEd. And definitely the most valuable code demos with <a href="http://www.wintellect.com/downloads/TechEdEurope2009.zip">zip download</a>. Stuff I already know I&#8217;ll use in my Silverlight projects in the future.</p>
<p>Things that Jeff went through:</p>
<ul>
<li>WebClient, HttpWebRequest and web services proxies all use the browser stack for communication as default. Can&#8217;t get soap exceptions, will be 404 instead.</li>
<li>Silverlight 3 has true client stack, not owned by browser.</li>
<li>Note that the browser stack will cache data, and the client stack will not.</li>
<li>Turn on by HttpWebRequest.RegisterPrefix(&#8220;http://&#8221;</li>
<li>Use event CompositionTarget.Rendering.</li>
<li>Intended for pictures in sample to load one by one, but they don&#8217;t. Because of threading model. Switching to this event fixes that. [But what about my own threads? Same thing?]</li>
<li>Enhanced frame-rate counter for diagnostics.</li>
<li>Vectors are gone when handing over to GPU. Canvas.CacheMode. Could lead to zooming pixelation.</li>
<li>BitmapCache.RenderAtScale = 4, assumes scaled up to 4 times when zooming.</li>
<li>Analytics class. About cpu load and GPU collection.</li>
<li>AssemblyPart class. Only download required assemblies. Better to deploy small .xap file. You do not have to give up strong typing either with a trick.</li>
<li>Some controls are in separate dll, Calendar is in System.Windows.Controls.</li>
<li>&#8220;The Calendar control might be one of the most useless controls in Silverlight&#8221; [but will serve our purpose as an example]</li>
<li>LayoutRoot.</li>
<li>Set Copy local = false. Uses OpenReadCompleted, OpenReadAsync, AssemblyPart, Load(e.Result).</li>
<li>Can&#8217;t register handler to Assembly.Resolver in Silverlight.</li>
<li>Put call in separate method &#8211; might work (if not inlined by compiler optimization).</li>
<li>[MethodImpl(MethodImplOptions.NoInlining)]</li>
<li>Application Extension Services &#8211; can plug in into app with same lifetime.</li>
<li>IApplicationService, Start/StopService, ApplicationLifetimeObjects.</li>
<li>Build your own services.</li>
<li>Visual.TreeHelper &#8211; Get to generated xaml by system, like templates.</li>
<li>No ItemCreated event exists for listbox (like in an ASP.NET Repeater).</li>
<li>&#8220;Visual.TreeHelper is the key to unlock modification of generated xaml&#8221;</li>
<li>Child windows = Modal dialogs</li>
<li>VirtualizingStackPanel &#8211; default for alist box. Not for combobox, need retemplating.</li>
<li>{RelativeSource} equivalent of two-way template binding.</li>
<li>[What is "SuperSlider" ?]</li>
<li>AutomationPeer &#8211; can simulate button clicks.</li>
<li>NetworkInterface.GetIsNetworkAvailable, NetworkChange.NetworkAddressChanged.</li>
</ul>
<p>Final verdict: this session was great!</p>
<h2>WIA301 Architecting Microsoft Silverlight Applications with MVVM &#8211; Shawn Wildermuth</h2>
<p><a href="http://wildermuth.com/">Shawn</a> knows a lot about the Model-View-ViewModel pattern but unfortunately he isn&#8217;t able to communicate that much of his knowledge. There is way too much code writing going on during his presentation. Also, even though there are a few pointers to take with you, I didn&#8217;t really feel that I got the whole gist of what is so great with the MVVM pattern.</p>
<p>Not that many notes:</p>
<ul>
<li>&#8220;The real problem is tight coupling.&#8221;</li>
<li>Prism + MVVM is a good match [watch other session about Prism]</li>
<li>The ViewModel&#8217;s goal is to take data from the model and format it suitable for the view to consume.</li>
<li>You should understand the pattern before using a framework to implement it.</li>
<li>ViewModel need to include INotifyPropertyChanged.</li>
<li>Error message handling belongs in the ViewModel.</li>
<li>Formatting is typically done in the View.</li>
<li>View: 100% xaml if possible, Silverlight 3 behaviors and element binding help.</li>
</ul>
<p>Final verdict: this session was ok.</p>
<h2>DEV05-IS Building Extensible Systems in Microsoft .NET Framework 4.0 and  Microsoft Silverlight &#8211; Magnus Mårtensson</h2>
<p>This session was first scheduled, then removed, and now reintroduced as the last session on friday. I don&#8217;t know the reasons behind this, but since it was the only session on MEF (Managed Extensibility Framework) I was pleased that it wasn&#8217;t killed after all. This should have meant less than perfect preparations for <a href="http://blog.noop.se/">Magnus</a>, which might have shown through &#8211; or he was just going with the fact that it was an interactive session. Anyway, it was a relaxed presentation where he took requests about what to demo and a lot of questions from the audience. As it turned out, it isn&#8217;t that much to the core of MEF, which I guess is only a good thing.</p>
<p>Last notes:</p>
<ul>
<li>ExtensibleApplication</li>
<li>Drop dll:s in folder &#8211; need [Import] and [Export] attributes.</li>
<li>Finding extensions: AssemblyCatalog + DirectoryCatalog = AggregateCatalog = CompositionContainer</li>
<li>SatisfyImportOnce(myObj);</li>
<li>[Export] class Foo</li>
<li>[Export(typeof(IFoo))] class Foo: IFoo</li>
<li>[Import] ILogger</li>
<li>Performance hit not that bad.</li>
<li>Visual Studio is moving into MEF for extensibility [not 2010?]</li>
<li>Can&#8217;t answer question about Prism, but Glen Block moved from Prism to MEF team.</li>
<li>Silverlight Grid Extensions.</li>
<li>Silverlight implementation of MEF is a one-liner PartInitializer.SatisfyImports(this) &#8211; catalogs not needed.</li>
<li>MEF basic parts: Export, Import, Compose.</li>
<li>[ImportMany] for multiple plugins at a single extension point.</li>
<li>Lazy&lt;T, TView&gt;, parts can have metadata.</li>
<li>Question about versioning of plugins &#8211; no clear answer.</li>
<li>&#8220;The pain-point of extensibility is gone.&#8221;</li>
<li>An extension can be marked as a singleton.</li>
</ul>
<p>Final verdict: this session was ok.</p>
<p>And the end has come.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mikeplate.com/teched-2009-berlin-friday/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Microsoft TechEd Europe 2009 in Berlin, Thursday</title>
		<link>http://www.mikeplate.com/teched-2009-berlin-thursday/</link>
		<comments>http://www.mikeplate.com/teched-2009-berlin-thursday/#comments</comments>
		<pubDate>Thu, 12 Nov 2009 18:00:29 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Conference]]></category>
		<category><![CDATA[TEE09]]></category>

		<guid isPermaLink="false">http://www.mikeplate.com/?p=67</guid>
		<description><![CDATA[Half time has passed and it is time to secure the most valuable knowledge before the week has ended. The tactics of session selection is complex. You could go for the topics that interest you the most, but since all of the breakout sessions are being recorded I would recommend to go more on the [...]]]></description>
			<content:encoded><![CDATA[<p>Half time has passed and it is time to secure the most valuable knowledge before the week has ended. The tactics of session selection is complex. You could go for the topics that interest you the most, but since all of the breakout sessions are being recorded I would recommend to go more on the speaker than the subject. That is, do you recognize the speaker name as someone who usually presents with passion, knowledge and wit, choose that session even if the actual topic isn&#8217;t your highest priority.<span id="more-67"></span></p>
<h2>DEV07-IS Developing a Language with the Dynamic Language Runtime &#8211; Harry Pierson</h2>
<p>Second session with Harry Pierson for me. It is obvious that I find myself more and more interested in dynamic languages. Harry was genuinely surprised to get an almost full interactive session about developing your own language on the DLR. However, I did find that the presentation was more in the direction that I had hoped for. It supplied a little background information about how the DLR and dynamic languages work on .NET and not so much about the specifics of developing your own language (which I don&#8217;t think I will).</p>
<p>Notes:</p>
<ul>
<li>Even back in .NET 1.0 there was a lot of language building blocks such as a rich meta data infrastructure and dynamic code generation with Emit.</li>
<li>[ASP.NET and its compilation-on-the-fly-need for aspx files might have been the/a driving force]</li>
<li>.NET 2.0 brought generics, dynamic method and fast delegates.</li>
<li>.NET 3.5 brought linq and expression trees.</li>
<li>Jim Hugunin, the inventor of Jython, set out to write about while the .NET platform was a bad foundation for dynamic languages but after 6 weeks failed and found .NET to be really good</li>
<li>Bad scenarios for IronPython: exceptions, which are used in Python for more than out-of-the-ordinary errors, are really slow on .NET. (some sort of lightweight exceptions has been discussed?)</li>
<li>.NET 4 brings dynamic dispatch, expression trees v2 and call site caching.</li>
<li>DLR also brings Hosting API, expression tree interpreter, lightweight debugger.</li>
<li>IronPython 2.6 is on the verge to ship.</li>
<li>Resolver is the largest customer of IronPython.</li>
<li>DLR is shipped in unusual way, some part of .NET 4 box, but also on Code Plex.</li>
<li>System.Core is available as open source on Code Plex.</li>
<li>Ruby and Ruby on Rails took one year to port to the DLR platform &#8211; evidence of efficiency in using the platform.</li>
<li>Expression trees v2 brings: Linq + Assignment + Control flow + Dynamic dispatch (=DLR expression trees).</li>
<li>LamdaCompiler takes expression tree and returns delegate for the compiled code.</li>
<li>CallSite&lt;T&gt; polymorphic inline cache</li>
<li>Dino lead dev on team</li>
<li>IronPython generates only one .NET class under the hood, unless if you derive from .NET classes/interfaces.</li>
<li>DLR Meta object protocol, MetaObject, GetMetaObject, Invoke MemberBinder.</li>
<li>CallSiteBinder.Update calls into DLR MetaObject binder, that calls into LanguageBinder which by default talks to CLR metadata reflection.</li>
</ul>
<p>Final verdict: this session was good.</p>
<h2>WIA303 Microsoft ASP.NET AJAX: Taking AJAX to the Next Level &#8211; Stephen Walther</h2>
<p>A session in a somewhat slower tempo, but still with good solid information. Stephen feels more like an educator, used to describing content to students, even though I don&#8217;t think he does that &#8211; probably just has personality (in all good ways).</p>
<p>And the notes:</p>
<ul>
<li>New areas: CDN (Content Delivery Network), Tools, Library</li>
<li>Improve performance by refering to Microsoft CDN for your jquery library.</li>
<li>Jquery-ui not available, but investigated.</li>
<li>&lt;ScriptManager EnableCdn=&#8221;True&#8221;&gt;</li>
<li>Tool: Microsoft Ajax Minifier &#8211; everyone should run a minifier.</li>
<li>Supports normal minification and also hypercrunching, meaning also changing names etc.</li>
<li>Can be run as command line or MSBuild task or component.</li>
<li>Library is delivered out-of-band, meaning not synced with .NET 4.0.</li>
<li>Open source aspect is rapidly evolving [taking contributions?]</li>
<li>&#8220;We pride ourselves in providing good client data access from javascript.&#8221;</li>
<li>Client Data Context</li>
<li>Client Templates</li>
<li>Client Data Binding</li>
<li>{{ can contain javascript }}</li>
<li>sys:src attribute on img-tag worries some people.</li>
<li>VS2010 supports intellisense with CDN hosted files.</li>
<li>start.js is the kick-off for the library.</li>
<li>Library can use jquery selector as argument.</li>
<li>Sys.bind, Sys.get, Sys.require</li>
<li>[Maybe more features/connection should be by convention and not declaratively or in code?]</li>
<li>When asking audience about who uses ADO.NET Data Services, only one raised his hand.</li>
<li>Data tracking in binding is great.</li>
<li>[But I want an event to hook up to, also. Is there an event system here also?]</li>
<li>Client Script Loader</li>
<li>All Microsoft Ajax Library controls are exposed as jquery plugins.</li>
<li>JQuery plugins show up in intellisense.</li>
</ul>
<p>Final verdict: this session was good.</p>
<h2>BOF14 Microsoft SharePoint, jQuery and Microsoft Silverlight: Better Together &#8211; Jan Tielens</h2>
<p>Full speed forward with demos during 40 minutes. Very good presentation by <a href="http://weblogs.asp.net/Jan/">Jan Tielens</a> from u2u &#8211; an education company in Belgium. Very interesting &#8220;injection&#8221; way of building user interfaces on top of SharePoint with jQuery and Silverlight. I assume using web services of the current site/list displayed, although he didn&#8217;t show any code.</p>
<p>A new notes jotted down during the demos:</p>
<ul>
<li>ContentEditorWebPart used for adding html with script</li>
<li>$(document).ready(function() { }); &#8211; jquery for onload</li>
<li>AdditionalPageHead delegate (delegate control in a feature).</li>
<li>MasterPage for adding html with script.</li>
<li>Site Page in uploaded aspx-file in document library.</li>
<li>Only running javascript when installing (no server code); uploading js-files etc.</li>
<li>Found in SmartTools JQuery Loader on Code Plex.</li>
<li>Task notifications.</li>
<li>Jquery Sparklines for clock.</li>
<li>Extended Edit Control Block for menu items in a context menu.</li>
<li>Client side object model for JavaScript in SharePoint 2010.</li>
<li>Silverlight is .xap files &#8211; uploaded to document library.</li>
<li>SPTubePlayer silverlight sample for videos found in a document library, read by the player.</li>
<li>SL.Visifire.Charts.xap beautiful charts in Silverlight with data from SharePoint.</li>
</ul>
<p>Final verdict: this session was great!</p>
<h2>ARC308 Credit Crunch Code: Time to Pay Back the Technical Debt &#8211; Gary Short</h2>
<p>Should be nice to get some architectural advice. I&#8217;ve been around long enough in this business, listening to architectural talks, that it is hard to come up with something really new and earth-shattering (impossible?). Given that fact, Gary delivers a solid reflection on how to use numbers and economics to find bad parts in your projects and have the businesses understand and act on them [my interpretation of what Gary said].</p>
<p>Final verdict: this session was ok.</p>
<h2>DEV03-IS Using Microsoft Visual C# 4.0 and Visual Basic 2010 Interop Features with Microsoft Silverlight, Office and Python &#8211; Alex Turner</h2>
<p>Alex Turner is the program manager for the C# compiler at Microsoft. He demonstrated new features in C# that has more or less existed previously in Visual Basic. It is about writing prettier and more succinct code when calling out to other object models, specifically dynamic languages like JavaScript or Python and COM interop. Nice info, but the session finished early because there was not that much content to talk about. Good things nonetheless.</p>
<p>Basically, the C# compiler will know a few things about COM, specifically againt Office Interop, and do some magic so we don&#8217;t have to write so much code anymore.</p>
<p>Disparate notes:</p>
<ul>
<li>Silverlight scenario calling out to hosting page.</li>
<li>ScriptObject, win.CreateInstance remains, can&#8217;t create type other way from other technology domain.</li>
<li>Browser specific issues (Firefox) stopped Silverlight from caring about removing properties.</li>
<li>Dynamic interop using Word = Microsoft.Office.Interop.Word.</li>
<li>Intellisense in brackets, argument is optional.</li>
<li>Bad typing in Office objet models works i VB because it doesn&#8217;t care as much about types, but is troublesome in C# and now works better with dynamic keyword.</li>
<li>Keyword dynamic &#8211; better than object, and returned from Com Interop.</li>
<li>dynamic xl = new Excel.App();</li>
<li>xl.Cells[1, 1] = &#8220;x&#8221;;</li>
<li>xl.Range["A1", "C4"].Copy();</li>
<li>Fills in vtMissing automatically.</li>
<li>word.Selection.PasteSpecial(Link: true); &#8211; named parameters.</li>
<li>IronPython 2.6 CTP Beta 2 now available.</li>
<li>IronPything.Hosting, Microsoft.Scripting.Hosting</li>
<li>Python.CreateRuntime, py.UseFile(&#8220;myfile.py&#8221;)</li>
<li>CallSite: DLR has cached the delegate, next time the binding is in place</li>
<li>Natural interop with diverse object models.</li>
<li>DynamicDispatch.</li>
<li>No colourization when working with dynamic, expect 3rd parties to pick it up since code model is in VSIP.</li>
</ul>
<p>Final verdict: this session was ok.</p>
<h2>OFS321 Building Powerful Business Intelligence Solutions on the SharePoint 2010  Platform &#8211; Zlatan Dzinic</h2>
<p>Oops. Wrong session for me. Don&#8217;t know how I ended up here, but this was really boring stuff and the demos didn&#8217;t go that well for Zlatan either. Excel Services, Performance Point Server, and now there is PowerPivot. Not my cup of tea. Unfortunately, the whole concept of BI on SharePoint felt very messy and unfocused.</p>
<p>Zlatan reminds me of sales guy that doesn&#8217;t have a clue about what he is talking about and overtries to communication passion where there is none. However, I do have a suspicion that Zlatan knows much more than he is able to communicate and that the passion is real and not as fake as it comes across.</p>
<p>Final verdict: this was a complete waste of time (for me, at least)!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mikeplate.com/teched-2009-berlin-thursday/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Microsoft TechEd Europe 2009 in Berlin, Wednesday</title>
		<link>http://www.mikeplate.com/teched-2009-berlin-wednesday/</link>
		<comments>http://www.mikeplate.com/teched-2009-berlin-wednesday/#comments</comments>
		<pubDate>Wed, 11 Nov 2009 18:00:31 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Conference]]></category>
		<category><![CDATA[TEE09]]></category>

		<guid isPermaLink="false">http://www.mikeplate.com/?p=58</guid>
		<description><![CDATA[Day three at TechEd was the best one this far. Maybe getting better at selecting good sessions and speakers, which is always somewhat of a science in itself. The food is great, even better than in Barcelona. After some glitches with queuing to the lunch rooms the first day, everything has run smoothly. Warm food [...]]]></description>
			<content:encoded><![CDATA[<p>Day three at TechEd was the best one this far. Maybe getting better at selecting good sessions and speakers, which is always somewhat of a science in itself.</p>
<p>The food is great, even better than in Barcelona. After some glitches with queuing to the lunch rooms the first day, everything has run smoothly. Warm food buffet style with vegetables and rolls. Very tasty indeed.<span id="more-58"></span></p>
<h2>WIA06-IS The Orchard Project &#8211; An interactive discussion on delivering.NET-based  open source applications and components &#8211; Bradley Millington</h2>
<p>This could be one of the most unknown release sessions of all of TechEd. In fact, the code for <a href="http://orchard.codeplex.com/">Orchard</a> was released to Code Plex yesterday, so today is the first time Bradley Millington from the team is speaking publicly about it. Although he didn&#8217;t want to make a big deal of it. It is, after all, a project in its very early stages.</p>
<p>Orchard is an open source project with a Microsoft team of seven people. It is a platform for content management and more. You can easily compare it to <a href="http://wordpress.org/">WordPress</a>, and think of it as a &#8220;WordPress killer&#8221;, but those are my words and nothing that Bradley referred to at all. However, it is pretty easy to see the similarities with WordPress although far far far from the feature set (as of today).</p>
<p>There are of course open source content management systems for the .NET platform, but I find this very interesting since it is coming from Microsoft and therefore has potential for being important. I felt this was the most interesting project of all the projects presented in one form or the other (commercial or otherwise) at this year&#8217;s TechEd. Lets hope it will live a long and happy life.</p>
<p>Some notes from Bradleys talk:</p>
<ul>
<li>Project will accept contributions &#8220;soon&#8221;.</li>
<li>Step one is a cms, and it&#8217;s likely to be the successor to Oxite.</li>
<li>Currently the team is working on: CMS Pages, Drafts, Publishing, Media Management, Users, Roles and LiveWriter compatibility.</li>
<li>Working in 3-week iteration cycles, at the tail of 2nd iteration now.</li>
<li>Please comment on specifications on Code Plex.</li>
<li>For now, focusing on admin and not so much the front end.</li>
<li>Using MVC 2 Preview 2, uses &#8220;area&#8221; feature.</li>
<li>A web page consist of zones with content.</li>
<li>Other content types than web pages will be introduced.</li>
<li>Question raised about how zones will work with LiveWriter.</li>
<li>Looking at using Lucene for search.</li>
<li>Extension model within 6 months.</li>
<li>Send feedback to <a href="mailto:ofeedbk@microsoft.com">ofeedbk@microsoft.com</a>.</li>
<li>Public mailing list is coming.</li>
<li>Uses <a href="http://nhforge.org/Default.aspx">NHibernate</a> for ORM, and <a href="http://www.sqlite.org/">Sqlite</a> is the default database (MSSQL supported).</li>
<li>Uses <a href="http://tinymce.moxiecode.com/">TinyMCE</a> as the html editor. Not much customization yet.</li>
<li>Used <a href="http://mef.codeplex.com/">MEF</a> (Managed Extensibility Framework) in prototyping but didn&#8217;t like it. Has built a custom lightweight IOC container. MEF was too explicit in demanding import and export attributes. Not as convention based as wanted.</li>
<li>Question about multi-tenant, and the team is looking at that also.</li>
<li>Question about how close this could be to SharePoint &#8211; far away but certainly valid question.</li>
<li>Used to run on <a href="http://www.mono-project.com/">Mono</a>, but a new dependency [according to attendee] made it fail. Will probably be resurrected on Mono.</li>
</ul>
<p>Final verdict: this session was great!</p>
<h2>DEV306 F# for Parallel and Asynchronous Programming &#8211; Don Syme</h2>
<p>Another fast and beatifully performed demo of F# by <a href="http://blogs.msdn.com/dsyme/">Don Syme</a>. Not that much discussion about the F# language (all correct according to the session description), but I think he stilled managed to give everyone a short introduction to F# in the more general sense also. Some code snippets was very briefly looked at and although I didn&#8217;t understand everything he went through, I liked the pace and the content.</p>
<p>A few notes:</p>
<ul>
<li>Don Syme was involved in the generics work on the .NET platform.</li>
<li>F# keywords are: simplicity, economics, parallel.</li>
<li>Comparing F# to C#: C# has more noise than signal.</li>
<li>.NET 4 has introduced tuples [which was used in the demo].</li>
<li>&#8220;I sometimes think of F# as a strongly typed Python&#8221;</li>
<li>Whitespace matters in F#.</li>
<li>(1,2,3) |&gt; show is equivalent to show(1,2,3) [approx]</li>
<li>let! (pronounced let-bang) for asynchronous assignments.</li>
</ul>
<p>Final verdict: this session was good.</p>
<h2>DEV01-DEMO Microsoft Visual Studio Team System 2010 Team Foundation Server:  Become Productive in 30 Minutes &#8211; Brian Randell</h2>
<p>In under 30 minutes <a href="http://www.mcwtech.com/blogs/brianr/">Brial Randell</a> manages to install Team Foundation Server on a client operations system such as Windows 7. Brian is very entertaining in his presentation and makes a good case for using TFS on your laptop or otherwise &#8220;disconnected&#8221; (from central server) development machine.</p>
<p>No specific notes from this session.</p>
<p>Final verdict: this session was good.</p>
<h2>DEV204 Unit Testing Best Practices &#8211; Roy Osherove</h2>
<p>Unfortunately Roys guitar was broken so we didn&#8217;t get to hear him <a href="http://www.youtube.com/watch?v=XV5fViOoV_8">sing one of his songs</a>. On attendee left after this breaking news story &#8211; no, just kidding. <a href="http://weblogs.asp.net/rosherove/">Roy</a> is very competent and highly knowledgeable in his field, which is unit testing (and more, I&#8217;m sure!). He calmly and thoughtfully presents his views and tips when doing unit testing in your projects. Nothing earth shattering here (either), but still very good advice to think about in your daily development life.</p>
<ul>
<li>All your tests must be: trustworthy, maintainable and readable.</li>
<li>&#8220;TDD works because it starts with a failed test&#8221;</li>
<li>&#8220;Unit tests are small use cases for your code&#8221;</li>
<li>Do test reviews, not just code reviews.</li>
<li>Beware: don&#8217;t mix unit testing with integration testing.</li>
<li>Use separate folders in your projects for unit and integration tests.</li>
<li>Roy uses TestDriven.NET.</li>
<li>Good code coverage is usually 95-100% but coverage in itself is not enough, the goal must be to have good tests.</li>
<li>Roy is using Resharper in the demos.</li>
<li>Test check: change if conditions to constant true (or false), some tests should fail!</li>
<li>Avoid test logic (if, for etc). Tests should only be a bunch of calls &#8211; no logic. An if statements in a test method probably means you should have two test methods in stead.</li>
<li>Don&#8217;t repeat production logic in your tests.</li>
<li>Use hard-coded values in tests (not DateTime.Now).</li>
<li>Don&#8217;t remove old tests. Add in stead of change, if possible.</li>
<li>&#8220;Range tests are not unit tests&#8221;</li>
<li>Don&#8217;t run a test from another test.</li>
<li>Avoid multiple asserts in a single test. Unless testing the same concept.</li>
<li>No magic numbers in your arguments, use constants in stead where the name clearly indicates why that number is used in the test.</li>
<li>Naming your test methods: What is under test? What is the scenario? What is the result?</li>
<li>Naming sample: Add_LessThanZero_ThrowsException.</li>
<li>Use simplest values when testing. If any integer will do the test, don&#8217;t use &#8220;123&#8243;, but rather &#8220;0&#8243; or &#8220;1&#8243;.</li>
<li> Roy performs test reviews on his blog &#8211; for further reading.</li>
</ul>
<p>Final verdict: this session was good.</p>
<h2>WIA404 Data Driven Microsoft ASP.NET Web Forms Applications Deep Dive &#8211; <span>Jeff King</span></h2>
<p>Jeff King delivers yet another solid walk through of new features in ASP.NET web forms for .NET 4.0. Quite a few things has happened. Better JavaScript integration, usage of ADO.NET data services and more. The templating story has improved. You can now template field types and/or individual fields.</p>
<p>Some classes and/or methods that Jeff showed (look them up to learn more):</p>
<ul>
<li>EnablePersistedSelection</li>
<li>SortedAscendingCellStyle</li>
<li>EnableDynamicData(typeof(xyz))</li>
<li>Look at field templates (int, string etc) placed in ascx-files.</li>
<li>MetaDataType, ScaffoldColumn, Display, DataType, Range (for validation)</li>
<li>MetaModel</li>
<li>ContentTypeName</li>
<li>DynamicDataManager, DynamicField, DynamicEntity</li>
<li>Page templates &#8211; for the entire application</li>
<li>Routing, url routing module (as in MVC), dynamic route.</li>
<li>QueryBlockExtender, QueryExtender, SearchExpression, ControlParameter</li>
<li>DomainDataSouce control after .NET 4.0.</li>
</ul>
<p><span>Final verdict: this session was good.<br />
</span></p>
]]></content:encoded>
			<wfw:commentRss>http://www.mikeplate.com/teched-2009-berlin-wednesday/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Microsoft TechEd Europe 2009 in Berlin, Tuesday</title>
		<link>http://www.mikeplate.com/teched-2009-berlin-tuesday/</link>
		<comments>http://www.mikeplate.com/teched-2009-berlin-tuesday/#comments</comments>
		<pubDate>Tue, 10 Nov 2009 18:00:17 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Conference]]></category>
		<category><![CDATA[TEE09]]></category>

		<guid isPermaLink="false">http://www.mikeplate.com/?p=54</guid>
		<description><![CDATA[Day two was also mixed. Three good presentations and two wastes of time. Berlin Messe is really a huge complex. I&#8217;ve noted that some have complained about the long distances between session rooms, technical learning center, lunch and so on. Yes, it was more compact in Barcelona, however I didn&#8217;t find it to be a [...]]]></description>
			<content:encoded><![CDATA[<p>Day two was also mixed. Three good presentations and two wastes of time.</p>
<p>Berlin Messe is really a huge complex. I&#8217;ve noted that some have complained about the long distances between session rooms, technical learning center, lunch and so on. Yes, it was more compact in Barcelona, however I didn&#8217;t find it to be a big issue. With 30 minutes between sessions it is not a problem. The conference material states that there would be no wifi connectivity inside session rooms (which seemed a bit odd in these times of twittering), but it turned out that it was only in a few session rooms this was true. I had good enough connectivity in most session rooms.<span id="more-54"></span></p>
<h2>OFS215 Microsoft SharePoint Server 2010 Introduction for Developers &#8211; Paul Andrew</h2>
<p><a href="http://blogs.msdn.com/pandrew/">Paul Andrew</a> is on the SharePoint team and provided a very good overview of the new features in 2010 for developers. The level of speed and depth were perfect for me, which is seldom the case in a session. However, if you knew more about SharePoint it might have been a little too slow. But it is of course impossible to please all listeners.</p>
<p>A few things I particularly liked:</p>
<ul>
<li>Developer dashboard. A placer for debugging info and a way to turn on diagnostics and traces as part of a rendered web page. Can even click sql-statements that has been sent to server and look at them.</li>
<li>SharePoint 2010 public beta will be available in november.</li>
<li>A package in Visual Studio 2010 project represents the wsp file. [WSPBuilder may not have a bright future.]</li>
<li>Inline web parts in a wiki text.</li>
<li>Linq-to-SharePoint.</li>
<li>Old WSS (Windows SharePoint Services), the free stuff, is now SharePoint Foundation.</li>
<li>Old BDC (Business Data Catalog) is now Business Connectivity Services and is included in SharePoint Foundation (=free). Also has write capability (read-only previously).</li>
<li>You can &#8220;generate&#8221; SharePoint lists in your own .NET code, a sort of virtual SharePoint lists. Other sources for a virtual list [actually called an external content type, I think] are sql connection strings and web services.</li>
<li>BDC explorer in Visual Studio 2010.</li>
</ul>
<p>Final verdict: this session was good.</p>
<h2>DEV317 Agile Patterns: Agile Estimation  &#8211; Stephen Forte</h2>
<p>Getting your estimates correct is always difficult. I can&#8217;t say that <a href="http://www.stephenforte.net/">Stephen Forte</a> introduced something substantially new that will make all your estimates be right from now on. But that was of course not his intention either (pigs can&#8217;t fly). He did have a few tips and points though, and it is obvious that he has been around enough projects to know what he is talking about.</p>
<p>Some good points to remember:</p>
<ul>
<li><a href="http://www.construx.com/Page.aspx?hid=1648">The Cone of Uncertainty</a> is a diagram borrowed from <a href="http://www.stevemcconnell.com/">Steve McConnell</a> that shows the correlation between time/experience/data and certainty in estimates.</li>
<li>&#8220;By definition, estimates are wrong&#8221;</li>
<li>&#8220;Agile is about involving the business&#8221;</li>
<li>&#8220;Deviations are not deviations, they are more accurate estimations&#8221;</li>
<li>Make sure the business writing the user stories also includes acceptance criteria.</li>
<li><a href="http://www.planningpoker.com/">Planning Poker</a> is a good way to get estimates from the team without enforcing any predefined perceptions on your team members (like a boss sayin &#8220;this must be easy&#8221;).</li>
<li>Set story points for user stories. Unit can be one day, but doesn&#8217;t have to &#8211; use other if you want.</li>
<li>Velocity is the number of story points per an iteration.</li>
<li>Always re-estimate your stories before the next iteration.</li>
<li>Putting everything in the backlog means items will get stale, so avoid that.</li>
<li>&#8220;My favorite card when playing planning poker is infinity&#8221;</li>
<li>&#8220;Business people are always wrong. They think easy things are hard, and hard things are easy&#8221;</li>
<li>The users / the business should be able to see the backlog and the estimates.</li>
<li>The business sets the priority.</li>
</ul>
<p>Final verdict: this session was good.</p>
<h2>INT305 Code Walkthrough of a Cloud Application Running on the Windows Azure  Platform &#8211; Kurt Claeys</h2>
<div>This session was presented by last years winner of Speaker Idol. I don&#8217;t know if that knowledge beforehand, would have changed my choice, though, since that should mean that the presenter has really taken the time to prepare a great session. This was unfortunately not the case. Not that the code didn&#8217;t work, but it was really really boring with no feeling for what the audience might be interested in.</div>
<div>Anyway, I did write down a few notes:</div>
<div>
<ul>
<li>When running a fabric simulation locally, Azure tables are actually tables in a sql server express database. [This confused some participants, Kurt didn't explain exactly what the difference is.]</li>
<li>Azure Blobs has a REST api.</li>
<li>There is both a PartitionKey and a RowKey when dealing with Azure tables. [Need to investigate exactly what this means - another missed opportunity for the presenter to enlighten the audience.]</li>
<li>Windows Azure can run in full trust, but you need to set attribute enableNativeCodeExecution in config file.</li>
<li>There is a Linq-to-Azure-tables api.</li>
<li>WCP has support for duplex binding, and the NetEventRelayBinding can be used to have your code be notified.</li>
</ul>
</div>
<div>Final verdict: this session was a waste of time!</div>
<h2>DAT206 Microsoft SQL Server 2008 R2 Demo Power Hour &#8211; Donald Farmer</h2>
<div>This was a waste of time for me. Some part because it was an IT session and not a developer session. Some part because the presentors had some problems and didn&#8217;t seem prepared. For that matter, maybe also because SQL2008 R2 doesn&#8217;t really have anything new or interesting in it besides Powerpivot which seemed more like an Office/Excel update.</div>
<div><!-- 		@page { margin: 2cm } 		P { margin-bottom: 0.21cm } --></p>
<ul>
<li>SQL2008 R2 is simply a refresh and not a new release with upgrade paths etc.</li>
<li>SQL2008 R2 was known as the BI release, but since then more features have been added.</li>
<li>Project Madison = SQL2008 R2 Parallel Warehouse, will handle hundreds of terabytes on commodity hardware.</li>
<li>Powerpivot is a separate application/download. Looks like Excel 2010. Instant sorting and filtering of 100.000.000 rows. Data file only takes up 200 MB, good compression.</li>
<li>SQL2008 R2 CTP releases next week.</li>
<li>Powerpivot gallery in SharePoint 2010.</li>
</ul>
</div>
<div>Final verdict: this session was a waste of time!</div>
<h2>DEV04-IS Pumping Iron: Dynamic Languages on the Microsoft .NET Framework &#8211; Harry Pierson</h2>
<p>First &#8220;interactive session&#8221; of this years TechEd for me. This format is a bit of an oddball. I normally prefer to sit back and enjoy a lot of information and demos. Now, as it usually turns out, most interactive sessions end up this way anyway and so did this one. <a href="http://www.devhawk.net/">Harry Pierson</a> is obviously very passionate about <a href="http://ironpython.codeplex.com/">IronPython</a> (in a good way!). It was very interesting to hear his thoughts about dynamic languages place in the .NET world.</p>
<p>Google is doing a project where they are trying to improve Python performance by a factor of 5. Harry didn&#8217;t think they would make it because of inherent problems with performance of dynamic languages.</p>
<p>Some notes from the session:</p>
<ul>
<li>Powershell is a dynamic language.</li>
<li>Dynamically typed languages are much more flexible.</li>
<li>It is relatively easy to write a language within a language with for instance Ruby [Linq comparison to class Customer &lt; ActiveRecord::base from Ruby on Rails.]</li>
<li>MIT now uses Python as an introduction language for students.</li>
<li>Dynamic languages are &#8220;short on ceremony&#8221; compared to statically typed.</li>
<li>Aspect oriented programming is native to Python. Python brings verbs together.</li>
<li>IronPython is a first class citizen in .NET.</li>
<li>Python has no new keyword.</li>
<li>C# 4.0 has dynamic keyword.</li>
<li>Easy to extend your application with Python. ScriptRuntimeSetup, ScriptRuntime, CreateEngine.</li>
<li>Lightweight debugging concept in Python [or the DLR?]</li>
<li>Very small team at Microsoft, only 8 people.</li>
<li>Mono platform runs the <a href="http://dlr.codeplex.com/">DLR</a> (Dynamic Languages Runtime).</li>
<li><a href="http://ironruby.codeplex.com/">IronRuby</a> is not as mature as IronPython right now. vNext for IronRuby is still in the works.</li>
</ul>
<p>Final verdict: this session was great!</p>
<div id="_mcePaste" style="overflow: hidden; position: absolute; left: -10000px; top: 1339px; width: 1px; height: 1px;"><!-- 		@page { margin: 2cm } 		P { margin-bottom: 0.21cm } --></p>
<p style="margin-bottom: 0cm;">SQL2008 R2 was known as the BI release, but since then more features have been added</p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.mikeplate.com/teched-2009-berlin-tuesday/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Microsoft TechEd Europe 2009 in Berlin, Monday</title>
		<link>http://www.mikeplate.com/teched-2009-berlin-monday/</link>
		<comments>http://www.mikeplate.com/teched-2009-berlin-monday/#comments</comments>
		<pubDate>Mon, 09 Nov 2009 20:00:04 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Conference]]></category>
		<category><![CDATA[TEE09]]></category>

		<guid isPermaLink="false">http://www.mikeplate.com/?p=52</guid>
		<description><![CDATA[First day at TechEd was a little mixed. I don&#8217;t understand the thinking behind putting the keynotes after lunch and after we&#8217;ve already had a few sessions. Isn&#8217;t a keynote suppose to kick off a conference? On the other hand, keynotes with nothing to launch is usually really boring and so was this one. More [...]]]></description>
			<content:encoded><![CDATA[<p>First day at TechEd was a little mixed. I don&#8217;t understand the thinking behind putting the keynotes after lunch and after we&#8217;ve already had a few sessions. Isn&#8217;t a keynote suppose to kick off a conference? On the other hand, keynotes with nothing to launch is usually really boring and so was this one. More passion for great products, please! Also, note that I&#8217;m talking about the developer keynote (called &#8220;general session&#8221;) and not the &#8220;real&#8221; keynote that was only for IT guys (in my opinion) and skipped by me.<span id="more-52"></span></p>
<h2>ARC201 The Windows Azure Platform: When and Why to Use It &#8211; <span>David Chappell</span></h2>
<p><span><a href="http://www.davidchappell.com/blog/index.php">David Chappell</a> is a really nice calm guy with a lot of intelligent ways (like pauses) to get his message across in a presentation. He doesn&#8217;t feel like a technical geek (like me), but still at least seems to have a lot of knowledge about the things he is talkning about albeit at a higher (architectural) level. Simply put: he is really easy to listen to.</span></p>
<p><span>So, what did he say?</span></p>
<ul>
<li>The cloud is the sixth category of computing platforms since the beginning, the other ones are mainframes, minicomputers, pc:s, mobiles and servers.</li>
<li><span>Azure applications only run in user mode. Can&#8217;t use admin mode. (Not clear exactly what he defined as admin mode &#8211; probably just in the general sense.)</span></li>
<li><span>Future versions of Azure will probably allow more and more access to the VM.</span></li>
<li>Azure storages facilities are blobs, tables and queues.</li>
<li><span>Azure Tables are not tables, and should therefore never have been called that.</span></li>
<li>.NET Services are part of the Azure platform, but have little to do with .NET. Is a service bus and an access control helper.</li>
<li>More VM sizes will be announced at PDC. Now only the smallest type of VM has a price.</li>
<li>Scenarios where Azure is valid are for: scale, reliability, variable load, short lifetimes, parallel processing, startups failing quickly, neutral grounds.</li>
<li><span>There is no lock-in like cloud lock-in.</span></li>
<li>Remember that if you shut down a VM or Sql Azure database, everything is gone the next month.</li>
<li>Hosting is in no way going away.</li>
<li>Three biggest competitor are Amazon (AWS, EC2, EDS), Google (AppEngine) and Force.com.</li>
<li>Amazons VM:s runs Windows and are your own &#8211; better admin capabilities, no fabric/autoscaling. RDS for data is based on MySQL.</li>
<li>Google AppEngine only supports Python and Java. Has no relational data story. Focused on web startups.</li>
<li>Force.com has bigger differences. Targets business people. Lock-in forever, but otherwise works great. Microsoft xCRM might happen and be a contender.</li>
</ul>
<p>Final verdict: this talk was great!</p>
<h2>DAT204 What&#8217;s New in Microsoft SQL Azure (*PDC at TechEd) &#8211; David Robinson</h2>
<p>David Robinson is on the Sql Azure team and sure enough had some information to deliver to us directly from Redmond. Now, my feeling is that Sql Azure is about being as equal to Microsoft Sql Server as possible and therefore it is hard to find features that appeal to you or that you can set to use immediately. What matters is simply what you need to avoid in an application based on Windows Azure and Sql Azure.</p>
<p>Session notes:</p>
<ul>
<li>Sql Azure is not database hosting (locked down but autoscalable).</li>
<li>European data center is only weeks away.</li>
<li>Dropped server is gone &#8211; but might be resurrected with support phone call (only flagged for deletion initially).</li>
<li>Firewall rules are stored in Master database on server.</li>
<li>Usage metrics via sys.bandwidth_usage.</li>
<li>Coming up: sys.database_usage.</li>
<li>Coming up: automatic partitioning of data in tables between servers (since there is a 1/10 GB limit). Until then there are code drops for doing it in code.</li>
<li>Limits of 1/10 GB will likeley increase after release of V1.</li>
<li>Time limit for idle connections are 5 minutes. Be prepared in your code to retry.</li>
<li>Patterns &amp; Practices will come out with guidance for connections etc.</li>
<li>Backups will be available after V1.</li>
<li>Also working on spatial and clr support.</li>
<li>Reporting services can pull data from Sql Azure today.</li>
<li>BI in the cloud is in the plans.</li>
<li>Profiling and visible cpu cycles etc will come after V1.</li>
<li>Sql Azure will release updates continuously, minor very 8 weeks and mayor twice a year.</li>
<li>Microsoft Sync Framework will sync between Sql Azure and local Sql Server.</li>
<li>Don&#8217;t put mission critical apps in Sql Azure (yet)!</li>
<li>Sql Management Studio will be updated this month in order to work with Sql Azure (not only query window, which works today).</li>
</ul>
<p>Final verdict: this talk was good.</p>
<h2>DEV-GEN Developer General Session &#8211; Visual Studio 2010: New Challenges, New  Solutions &#8211; Jason Zander</h2>
<p>As already stated, this was a really boring keynote. Of course, it may not have helped that it was right after lunch. I had a hard time staying awake and I don&#8217;t even remember what he and other presentors talked about. I do remember that Jason had rewarded a few customers with the opportunity to demonstrate their products or services as the demo part of the keynote. Maybe this was part of the program. I don&#8217;t think this is a good idea since it is sooo easy that it turns into a sales talk and a praise talk of Microsoft that lacks credibility.</p>
<p>Final verdict: this talk was a waste of time!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mikeplate.com/teched-2009-berlin-monday/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Minified using disk
Page Caching using disk (enhanced)

Served from: www.mikeplate.com @ 2010-09-07 11:30:52 -->