May 2010

Monthly Archive

The Morning Brew #610

Posted by on 28 May 2010 | Tagged as: .NET, Development, Morning Brew

Monday is a Bank/Public Holiday here in the UK, and in keeping with Morning Brew Tradition there will be no edition on Monday, with the normal posting schedule resuming on Tuesday. Have a good long weekend everyone.

Software

  • Web Service Software Factory 2010 RTM – Hernan de Lahitte highlights the release of the Web Service Software Factory 2010, a collection of sample source code, tools, patterns and guidance for creating ASMX and WCF web services from the Patterns and Practices team
  • The SRE Preview is now available on CodePlex – Barry Dorrans announces the preview release of the Security Runtime Engine as a part of the Web Protection Library May CTP. There is no binary release of the SRE, however the team are looking for comments and feedback to help them improve the product.
  • Introducing Kiddo: A Ruby DSL for building simple WPF and Silverlight applications – Freedom Dumlao shares Kiddo, a DSL written in Ruby make it easier to build Silverlight and WPF based applications, Based on the well known Shoes library, Kiddo aims to give an abstraction over the UI creation providing a simple code interface to construct the UI.
  • Microsoft tag out of beta – Steve Clayton highlights the move from beta to full product of Microsoft Tag, their 2d, pictorial supporting, digital tag / ‘barcode’ technology providing an easy way of allowing consumers to gain access to related information.

Information

  • Cast operators do not obey the distributive law – Eric Lippert looks at an example, inspired by a StackOverflow question, which shows how the cast operators do not follow the distributive law in the way that the multiplication operator does
  • Violations Of The"Tell, Don’t Ask" and "Don’t Repeat Yourself" Principles? – Derick Bailey looks at some examples of his own code where he feels that he is violating two of the often cited principles, asking if he actually is, and offering a possible alternative implementation, asking the community for views and other better solutions. Discussion is breaking out in the comments to this one.
  • Code Reuse is (Damn) Hard – James Michael Hare discusses Code Reuse, one of the commonly specified advantages of Object Oriented Programming’, looking at some principles which suggest reuse is possible, types of code which may be good candidates for re-use, and talks about how hard it can be to ensure reuse.
  • TTDD – Tautological Test Driven Development (Anti Pattern) – Fabio Pereira discusses an anti-pattern in testing where a test’s set up is very similar to a test’s asserts meaning that the asserts are a re-statement of the setup, which results in a lack of meaning to any result.
  • WPF Visualizer in Visual Studio 2010 – ‘jgoldb’ highlights a new debug visualizer included in Visual Studio 2010 which allows you to visualise WPF elements when debugging, providing a rendered view, and properties of the element.
  • Creating Visual Studio projects that only contain static files – Eilon Lipton shows how you can create a Visual Studio project which only contains static files, and looks at providing ‘build’ support to clean and copy the files at build time.
  • .NET Framework Targeting Error (.NET Framework Client Profile) – Janiv Ratson highlights a gotcha found by his colleagues Alon Nativ and Ziv Farjun, where you may get compile errors when working with console applications referencing other projects and assemblies due to Visual Studio 2010 Console Applications (along with many other project types) targeting the Client Profile by default rather than the full framework.
  • Non-Dom Element Event Binding with jQuery – Rick Strahl looks at using jQuery to create events on non-DOM objects which can be handled by your code, highlighting along the way an issue where jQuery has problems unbinding event handlers from Non-DOM events
  • Porting the MVC Music Store to Raven: ShoppingCartController – Ayende continues his series porting ASP.NET MVC tutorial application MVC Music store to using the RavenDB document database, in this part updating the ShoppingCartController to reflect the changes to the Shopping Cart in the last part
  • Readable and testable asynchronous execution – Andreas Hallberg shares a simple helper class which makes writing Async code cleaner, and provides an implementation which can be easily replaced for testing to remove the async nature.

The Morning Brew #609

Posted by on 27 May 2010 | Tagged as: .NET, Development, Morning Brew

Information

  • Dynamic Type in C# 4.0: Explained in Three Lines of Code & Dynamic Type in C# 4.0: The Cool New Thing To Crap On – Evan Nagle sets out exploring the new C#4 dynamic support with a simple 3 line example showing how it can be used, comparing it to the older reflection based way of achieving similar, and moves on to look at some of the more advance uses in loading dynamic scripts and calling their functionality, duck typing, and the ExpandoObject. His follow on post answers a number of the criticisms of dynamic in C# received in response to the first article.
  • Anonymous Types are Internal, C# 4.0 Dynamic Beware! – ‘Ashic’ shows a potential confusion point with working with dynamic and anonymous types calling methods between assemblies as anonymous types are internal which results in runtime errors when calling across assembly boundaries.
  • 4 .NET 4.0 Libraries You *Should* Know Better – MEF, Reactive, Tasks and Dynamic – Anoop Madhusudanan pulls together a number of his articles from the past year which look at the 4 .NET 4 libraries he feels are the most significant and under utilised
  • SquishIt – The Friendly ASP.NET JavaScript and CSS Squisher – Justin Etheredge gives a walk through of using SquishIt, his JavaScript and CSS combining, compression and minification library, showing how you integrate it into your ASP.NET websites.
  • Testing assumptions with preconditions – Jimmy Bogard talks about the times when using a constant is the correct thing to do for environmental variable which will never change, or that represent core tenants of the application, and shows how he includes these assumptions of value in his tests as a safety net.
  • Lesser-known Multi-threaded Debugging Support in Visual Studio 2010 – ‘toub’ gives run through of some of the debugger features which help make debugging multithreaded code easier, including the DebuggerDisplayAttribute, DebuggerProxyTypeAttribute, both of use to developers in their own code, and also talks about Intellitrace and an interesting concept called thread slipping which allows the debugger to evaluate code to show results in debugger windows when locks are present.
  • URL Rewrite – Multiple domains under one site. Part II – Scott Forsyth follows on from a post back in January with the final piece in the puzzle to allow you to run distinct sites for multiple domains all within the same IIS website using the IIS URL Rewriter.
  • Deploying a .NET 4 MVC 2 Application to Windows Server 2003 Using WiX 3.5 – Rob Jarratt steps through the process of using the WiX 3.5 (build 1602) toolset to deploy ASP.NET MVC applications on .NET 4 on Windows 2003 Server
  • NoSQL with RavenDB and ASP.NET MVC – Part 1 – Shiju Varghese beings a series looking at using RavenDB with ASP.NET MVC, looking at getting the server and setting it up, along with exploring some of the common usage from ASP.NET MVC (connecting, CRUD operations, etc)
  • Porting the MVC Music Store to Raven: ShoppingCart – Ayende presses on with his porting of the MVC music store to use a RavenDB database backend with a look in this post at the ShoppingCart, discussing some OO design principles he feels the current cart implementation violates and looking at moving it over to the document database back end
  • Multi-tenant ASP.NET MVC – Introduction – Zack Owens kicks off a series on multi-tenant ASP.NET MVC applications, in this post outlining how his solution differs from a lot of the other multi-tenancy solutions and outlining his goals.
  • The Dangers Of AutoMocking Containers – Derick Bailey talks about some of the down sides of using automocking containers as a part of your testing strategy, outlining an example of the types of problems you can encounter working this way
  • Exploring Selenium 2: Introduction & Lessons Learned in Selenium 1 – Jim Holmes takes a look at Selenium 2 and shares some of his experiences using Selenium 1 for regression and functional testing

The Morning Brew #608

Posted by on 26 May 2010 | Tagged as: .NET, Development, Morning Brew

Information

  • Sometimes tools can be overly pedantic – Bill Wagner talks about his implementation of the Dispose pattern from his book Effective C#, an how it triggers an FXCop warning, and Bill explains why this warning may be a little over sensitive.
  • The Dispose Pattern (and FxCop warnings) – Scott Dorman follows on from Bill’s post with some further discussion of why the tool is reporting this and looks at an alternative implementation which does not trigger the warning
  • IDisposable: What Your Mother Never Told You About Resource Deallocation – While we are on the subject, this Code Project article from Stephen Cleary is an old one (from 2008) but is still very relevant and discusses lots of details about resource deallocation and dispose.
  • Code Contracts Survey – The BCL Team are looking for feedback on the .NET 4 Code Contracts functionality to help them shape the future development of this feature. The questions on this survey are relevant for both users and non-users of Code Contracts, so if you have a few minutes spare help them out by completing the survey
  • Exception Handling Differences Between 32/64 Bit – Alois Kraus looks at the difference between exception handling in 32 bit and 64 bit on .NET, digging down into the differences using the Windbg debugger and SOS extension
  • Porting MVC Music Store to Raven: StoreController – Ayende continues with the porting of the ASP.NET MVC Music Store Tutorial Application to a RavenDB back end with a look at the store controller, with a look at a simple translation to the document store, and a more complex translation involving joins in the relational model
  • Extending CLR types – Thorsten shows how IronRuby allows you to extend existing .NET core CLR types in a slightly more flexible way than C# extension methods, allowing both instance and static extensions.
  • Building a Store Locator ASP.NET Application Using Google Maps API – Scott Mitchell shares the first two parts of a series over on 4 Guys which walks through building a store locator application in ASP.NET using Google Maps
  • Simplify Your Unit Tests With Automocking: Part 2 – Establishing Context – Derick Bailey continues his look at using his AutoMocking Container built using Rhino Mocks and Ninject, showing how he simplified his tests using it.

Community

The Morning Brew #607

Posted by on 25 May 2010 | Tagged as: .NET, Development, Morning Brew

The new blogs.MSDN.com went live yesterday, and this morning I had problems with a number of links in RSS feeds and blog posts to existing posts on the site, so its possible that there may be problems with links to posts hosted on MSDN, especially in previous editions of The Brew. I’m sure this will only be a temporary thing and will be sorted soon. Hopefully all the links in today’s edition will work OK.

Software

  • Fluent NHibernate 1.1 Released – James Gregory announces the release of FluentNHibernate 1.1, bringing the official release up to date with the numerous bugfixes and new features which have been comitted over the last few months, along with upgrading the NHibernate dependency to the latest 2.1.2GA release)
  • Two open source projects to facilitate interoperability with Outlook .pst data files – Jean-Christophe Cimetiere highlights two new CodePlex hosted Open Source projects from Microsoft which provide means of viewing the internals of Outlook PST files and an SDK for programmatic access to the contents of the PST file.

Information

Community

The Morning Brew #606

Posted by on 24 May 2010 | Tagged as: .NET, Development, Morning Brew

Update: Looks like another rogue character infiltrated one of today’s links – Ayende’s RavenDB Launch Event link in the community section is now updated to work correctly

Software

  • CodeRush 10.1 hits RTM – Rory Becker highlights the release of DevExpress CodeRush 10.1. Released as a part of DXperience (which is the reason I missed the release last week) this upgraded version supports Visual Studio 2010, 2008 and 2005, and in addition to the pay for offering, CodeRush XPress also gets an upgrade.
  • NHibernate Workbench – Felice Pollano announces a preview release of a new NHibernate development tool which brings auto complete and various previews of results and SQL. looks like a useful tool, and one to watch.
  • F# PowerPack May 2010 – now for Silverlight – Dmitry Lomov highlights the release of the latest F# Powerpack a collection of open source libraries used and created by the F# team, which now includes support for the use of the libraries in Silverlight 3 and 4
  • Download the SharePoint 2010 Software Development Kit (SDK)! – The SharePoint 2010 Software Development Kit gets its May update. This kit contains documentation, samples for both SharePoint Foundation and SharePoint Server, providing details of how the technology works, and step by step guides to working with it.
  • iBATIS Project Team Moving to Google Code – Clinton Begin announces the plans of the team iBatis Data Mapper tool to fork the platform under the name ‘MyBatis’ and to begin development again away from the Apache Foundation.
  • IntelliFactory – WebSharper 2010 – IntelliFactory announce the official release of WebSharper Platform 2010 Version 1. The platform provides a compiler which takes F# assemblies and converts them into JavaScript code for the web, provides RPC between client and server and integrates with ASP.NET and Visual Studio 2010 and 2008. Standard Edition is available for free for both commercial and non-commercial use.

Information

Community

The Morning Brew #605

Posted by on 21 May 2010 | Tagged as: .NET, Development, Morning Brew

Software

Information

  • Enabling XML-documentation for code contracts – Gunnar Peipman continues exploring Code Contracts with a look at generating documentation about the code contracts implemented in your code
  • Porting MVC Music Store to Raven: Data migration – Ayende continues with his series on porting the existing MVC Music Store tutorial application to use his RavenDB Document database. This post shares a simple implementation which will take the data from existing relational database and insert it into the document database.
  • Extending NerdDinner: Exploring Different Database Options – Scott Hanselman discusses the various options available for data access in .NET, and shares 5 ports of the Nerd Dinner sample MVC application to different data access, 4 of which were created by Chris Sells and Nick Muhonen looking at using ADO.NET Data Readers, Data Sets, LINQ to SQL and Entity Framework, and an NHibernate port from Ayende.
  • Extending NerdDinner: Adding MEF and plugins to ASP.NET MVC – Scott Continues this series on Extending NerdDinner with a look at some work done by Hamilton Verissimo de Oliveira, (aka "Hammett") to introduce the Managed Extensibility Framework into the NerdDinner sample.
  • The religion of dependency injection – Jimmy Bogard follows on from Scott’s MEF post picking up on the ‘poor man’s Dependency Injection’ starting a discussion about comparing this to full Dependency Injection. Seems to be interesting discussions starting in the comments of this one.
  • May 20th Links: ASP.NET MVC, ASP.NET, .NET 4, VS 2010, Silverlight – Scott Guthrie turns link blogger and shares a number of links related to the technologies he cares about. A good number of these links have been included in The Morning Brew already, but there are a few additional ones which are well worth checking out.
  • Every Program There Is, Part Eight – Eric Lippert continues his series on building every program there is. This part looks at converting the grammar into code, allowing the generation of all the possibilities.
  • 13,000+ Free Icons for Web and Desktop Development – David Vidmar shares a list of free icon libraries he has made use of, which total to around 13000 icons which you can use in your applications freely.
  • Why enumerator structs are a really bad idea & Why enumerator structs are a really bad idea (redux) – Simon Cooper takes a look at the .NET IEnumerator implementations in the BCL and looks at (With a little help from an Eric Lippert post) at the implementations of MoveNext and Reset and how they might not do what you assume them to do.
  • Test-Driven JavaScript – James Shore shares his experiences of doing Test Driven Development in JavaScript gained during a previous venture discussing automating testing in the browser and across multiple browsers.
  • Unit Testing [Serializable] – Keith Dahlby takes a look at unit testing the ‘serializability’ of classes to ensure that all the types you assume to be able to serialize actually can be.

Community

The Morning Brew #604

Posted by on 20 May 2010 | Tagged as: .NET, Development, Morning Brew

Updated: There was a missing " in one of the <a> tags this morning, meaning that Garry Pilkington’s and Sam Gentile’s links were some what merged – I’ve resolved this now

Software

  • NET Micro Framework Version 4.1 Beta – Gary Hope highlights the release of the latest beta of the .NET Micro Framework 4.1 which adds Visual Studio 2010 compatibility along with support for multi-targeting to V3.0, 3.0 and 4.1 of the Micro Framework
  • BetterXml – Tomas Restrepo talks about and shares the code for his new project ‘BetterXml’, a Visual Studio 2010 extension which is aiming to improve the developer experience of working with XML in VS.
  • It’s a new SysInternals Tool Day! RAMMap v1.0 released – Greg Duncan highlights the latest tool to be released by the SysInternals team. RAMMap gives you a visual picture and detailed information about the way RAM is allocated by the OS

Information

  • F# on Silverlight 4 – Dmitry Lomov highlights the ability to run F# on the Silverlight 4 runtime as a part of the Silverlight 4 tools for Visual Studio 2010 release, and shares a new project template for writing Silverlight applications in F#
  • WPF Goodies in the Silverlight 4 Tools – Brian Lagunas highlights some of the features in the Silverlight 4 tools which improve the developer experience on both Silverlight based application development and WPF development.
  • Comments on RavenDB licensing – Ayende shares some of his thinking on the licensing for RavenDB, explaining some of the terms of the license and explaining his decision making processes. He also continues with his series on Porting MVC Music Store to Raven: Setting up the application – with a look at configuring the web application to talk to RavenDB
  • NoSQL In The Wild: How We Do It at Tekpub – Rob Conery discusses how in building TekPub he opted for the MongoDB document database and MySql for relational storage, showing how the two are combined, and how you can do similar on any platform that supports MongoDB
  • StackOverflow in RavenDB – question and answer basics – Matt Warren is also looking at how you go about using document databases in the form of RavenDB, exploring how you would go about implementing Stack Overflow on document databases.
  • Code Metrics: Number of IL Instructions – Gunnar Peipman continues exploring code metrics, looking today at using the number of IL (Intermediate Language) instructions as a measure of complexity in compiled code.
  • Stepping outside Visual Studio IDE [Part 1 of 2] with Eclipse & [Part 2 of 2] with Mono 2.6.4 – Michael Crump takes a look over the fence at the IDE and tooling for Java in the form of Eclipse and the Mono project
  • Responsible Extension Methods – Chris Eargle responds to some reader feedback about the use of Extension Methods on general (and generic) types, and discusses if it violates class responsibility, and looks at alternative implementations.
  • Dependency Injection in ASP.NET MVC: Views – Jimmy Bogard presses on with his series looking at uses of Dependency Injection in ASP.NET MVC with a look at the slightly less common approach of injecting dependencies into views, partials, templated helpers and master pages.
  • Getting Lazy with System.Lazy – Derik Whittaker takes a look at the new System.Lazy functionality which allows associations to be constructed using lazy ‘loading’, showing an example of it in use.
  • C#: System.Lazy<T> and the Singleton Design Pattern – James Michael Hare is also exploring System.Lazy and looks at how you can combine it with the Singleton pattern to make implementing Singleton much easier
  • C#: Handling Notifications: inheritance, events, or delegates? – James Michael Hare also takes a look at methods for handling notifications using the three strategies of inheritance, events and delegates, giving examples of their use in this area and comparing performance.
  • C# 4.0/BCL 4 Series: C# 4 Named Parameters – Sam Gentile continues exploring new C# features with a brief look at named parameters and their use.
  • Branching and Merging with TortoiseSVN – Garry Pilkington takes a step by step look at the proces of branching within SubVersion and merging code between branches and trunk using Subversion 1.6.6, TortoiseSVN, VS2010, and AnkhSVN
  • Another Follow-up on HTML5 Video in IE9 – Dean Hachamovitch discusses the HTML5 Video support planned for Internet Explorer 9, looking at which codecs will be supported.
  • jPageFlipper – Ivan Suhinin has been working on a pure HTML5 implemented page turning visualisation using the Canvas element, based on mathematics from Rick Barraza. the visual effect is really nice, and the fact that its all native JS an HTML5 is realy great. The project is looking for development assistance, so if you are interested in this sort of thing go get involved.

Community

  • Webcasts – Greg Young is going to be giving a weekly / bi-weekly series of web casts, kicking off today (Thursday 20th) at 12:00 EST, where Greg will be looking at the Ubiquitous Language. Access is via GotoMeeting and is free, and recordings will be posted after the event.

The Morning Brew #603

Posted by on 19 May 2010 | Tagged as: .NET, Development, Morning Brew

Software

  • RavenDB goes live! – Ayende announces the official release of RavenDB, his Open Source (with a commercial option available too) document database designed for .NET users on the Windows Platform. With documentation, tutorials, the new website offers good information to get you started
  • VsVim Update Released (Version 0.8.1) – Jared Parsons announces the latest VSVim Visual Studio add-in for Visual Studio 2010, which brings Vim functionality to the VS IDE, including key bindings, and command behaviours. This version adds a number of new features and fixes some existing bugs.
  • Silverlight 4 Tools for VS 2010 and WCF RIA Services Released – Scott Guthrie does his in depth post exploring the latest release from Microsoft, taking a detailed look at the Silverlight Tools and WCF RIA Services release linked to yesterday. As usual, Scott shows the major new features in the release in use

Information

  • Porting MVC Music Store to Raven: The data model – Ayende looks at the ASP.NET MVC Tutorial application MvcMusicStore and looks at porting its data access and storage to his RavenDB document database product
  • RavenDB – How stale do you want it? – Rob Ashton has also been posting on RavenDB recently, and his latest post with a look at the way the platform handles stale results to optimise performance
  • Lesser Known NHibernate Session Methods – Ricardo Peres examines the NHibernte Session object and takes a look at some of the less widely used / understood methods it provides, showing a short code sample using them.
  • How to live forever (if you’re a CLR object) – Kirill Osenkov highlights the secret for eternal life for your .NET Objects, giving a way that allows your objects to avoid the clutches of the Garbage collector (which is usually a bad thing)
  • Caveats of C# 4.0 optional parameters – Jimmy Bogard looks at some of the down sides of the C# 4 optional parameters functionality, looking at the functionality, and exploring examples using expressions and value localisation which are not supported or cause interesting side effects.
  • Most Common ASP.NET Support issues – Reporting from deep inside Microsoft Developer Support – Scott Hanselman shares two common sources of ASP.NET support calls to Microsoft, looking at misconfigurations (especially debug="true") and problems caused by external non-ASP.NET causes, and asks readers for their common problems , so be sure to also look at the comments on this one.
  • Code Contracts Part 1 – Introduction – Kevin Hazzard begins a new series of posts (planned to be 14 parts) looking at the new Code Contracts functionality in .NET 4. This introduction post sets the scene, giving some of the background to Code Contracts and showing simple uses.
  • ASP.NET MVC 2.0 Attributes – Brian Mains takes a look at the various attributes utilised by ASP.NET MVC 2 , exploring ActionMethodSelectors, Filters, Action/Results, AuthorisationFilters, ExceptionFilters and custom attribues in this DotNetSlackers article.
  • Deq: Extend your favorite Mock framework with Moles – Jonathan "Peli" de Halleux shows how you can use the Detour API which underpins the Moles functionality of Pex to allolw you to extend other mocking frameworks to support static methods, sealed types, set.
  • VSNewFile: A Visual Studio Add-in to More Easily Add New Items to a Project – Dave Reed talks about a Visual Studio Add-in he created to make it easier to add items to your Visual Studio projects. Targeting VS 2008 and 2010, the add-in, with full code available on GitHub, allows you to create simple file templates for the types of file to add using a file name convention to add them to the VS UI.

Community

Next Page »