Tuesday 24 March 2009

Ian's Link Dump 24th March 2009

WPF/Silverlight


Exploring the Core CLR within Silverlight (Tim Sneath)

Silverlight 3: BasedOn Styles

Bug: Explicit Styles Replaced by ISM in Silverlight 3 version of Toolkit

Silverlight 3 Beta - Downloads You May Have Missed

Silverlight 3: Chroma Key Pixel Shader Example

Local Messaging Samples

Expression Media: Replacement for SP2 is Out

.NET


An ASP Menu Fix Needed for a Problem with IE8 is Now Available

Inversion of Control with WCF and Unity

Tip of the Day: Getting rid of VS 'The Project Location is Not Trusted' Warnings

Design


29 Design Blogs You Must Follow

"The Magic of BizSpark"

Today I attended a one-day event, hosted by Microsoft, at their London Victoria offices, entitled "The Magic of BizSpark", intended to promote Microsoft's new BizSpark offering which is aimed at helping new start-ups who want to get started using the Microsoft technology stack, but would ordinarily find the cost prohibitive to doing so.


It's a no-brainer!


I should say, right from the get-go, that if you're familiar with the Microsoft technology stack and favour it over other open source alternatives, the BizSpark initiative is a complete no-brainer. It's an extremely generous offer from Microsoft, and one that will undoubtedly help them break into new markets. It's a bold and brave move. If I had a serious software product I wanted to launch, and had formed a new company to do so (the initiative is limited to NEW start-ups), I'd be all over this initiative like a rash! You get 3 years of free software (and much more complete software than I get with my £2000/year MSDN subscription) and free 'Production usage' licenses on top. That's a very sweet deal!


Notes on the Initiative


DreamSpark is a similar initiative to BizSpark, albeit one aimed at the student community. I believe it's possible to migrate from DreamSpark to BizSpark if that makes more sense (although I may be getting confused by my notes - it's possible that DreamSpark was only mentioned as being an initiative that helped motivate the launch of BizSpark).


BizSpark is an accelerator program that was launched globally in October 2007, involving 161 companies worldwide. To date Microsoft have invested and sponsored more than USD100 million in software licenses and over 2,100 hours in workshops and training (when I say 'over' these figures are apparently several months old, so likely to be significantly higher by now).


When you sign up to BizSpark you sign up to a 3 year programme with no initial cost, and just a USD100 'exit fee' at the end of the 3 years. If your start-up goes bust, or disappears in the first three years then that's it; otherwise you start to pay for what you use in your fourth year.


The web sites MicrosoftStartupZone.com and BizSpark have more information.


Production licensing is through hosting partners (or you can self-host). Currently there are four network partners who sponsor startups, which include (I think - my handwriting is poor and I may have misread the company names!) NTT, Attend, 7Global and Rackspace. There has been some criticism of the cost of these hosting partners but Microsoft are actively looking for other, cheaper hosting companies and expect to announce more partners shortly.


You get two support incidents/year included.


Membership of BizSpark now automatically gives you entry to Metro, a pre-release software programme that includes not just pre-release software, but also support for that pre-release software and training too. The Metro portal allows you to enter your project details and the pre-release technologies you're interested in, and will give details of (mostly) free training available in Europe.


The program also offers free one-to-one 'Fast Track reviews' where you can discuss your architecture and use of different technologies to get advice from Microsoft on possible alternatives or additions.


The slide presentations from the day's talks can be found here. General queries about the initiative can be sent to ukdev@microsoft.comn.


Like I said, it's a sweet deal!



Why I came Away from Today's Event Disappointed


With little to go on other than the title 'The Magic of BizSpark' I had expected more on the initiative itself (we got a 20 minute introductory talk on this, the main points of which I've summarised above, and it may be this was all that was needed, but I'd expected more discussion around the criteria for entry)


The bulk of the day was really very much a high-level set of pitches on the beta/CTP Microsoft technology stack. I'm often called a 'Microsoft bigot' but even I found the talks at times misleading and, I would argue, potentially dangerous for those who might be making decisions on the future of their business based on what they were told about these technologies today.


For example, we got what I felt was an over-emphasis on use of the UpdatePanel in AJAX, in a 60 minute talk that had to cover every single technology in the RIA space. OK, so maybe I'm biased because a greenfield project I worked on got canned when we discovered, naive fools that we were, much too late in the day that the UpdatePanel doesn't scale or perform with anything other than a few simple controls embedded in it; or maybe I'm biased because I once worked for a client where the CTO advised his staff that if he ever found anyone using an UpdatePanel control they'd be fired, but I've since heard other Microsoft staff give quite clear warnings on avoiding use of the UpdatePanel. The reality is people NEED to be warned that if they drop a datagrid or a hierarchical tree control into an UpdatePanel it won't perform or scale for more than a handful of concurrent users (at least if my experience is anything to go by).


I felt that the demonstration of Silverlight showed none of its strengths, and just made it appear overly complex and confusing. Wow your audience with a real demo from the silverlight.net site, not five coloured buttons in a stack panel or a simple data binding form where it's really not clear what advantages the technology offers over the much more established and seemingly easier-to-understand ASP.NET. Nor did the talk really mention any of Silverlight's current limitations that might force one to choose ASP.NET/AJAX instead (lack of printing/webcam/microphone support until version 4 which is a long way off with version 3 having only just entered the 'preview' stage; the difficulties of debugging 'code' that is essentially just declarative angle brackets, etc).


Several times an assertion was made that when compared to the open source alternatives the MS technology stack was integrated and much easier to get to grips with. When we're talking CTPs, betas and Out-of-band releases (which we were!) I would argue the Microsoft technology stack is typically just as problematic as any set of open source products (especially when so much of it is playing first release 'catch up' with free 'competitive' products that are far more mature, having had several years head start: Unity vs Castle Windsor, ADO.NET Entity Framework vs NHibernate anyone?)


A talk on the new 'Velocity' caching system as part of a 60 minute talk that had to cover ALL of Microsoft's data products got very confusing very quickly, and it was only after some quite heated debate with strong audience involvement that the real advantage scenarios for its use (cf just letting SQL Server take care of caching) became evident. Admittedly I may have stirred the pot by asking why Microsoft's caching advice appeared to have changed (the advice always used to be that SQL Server was optimised for caching and should just be used asis instead of trying to come up with home-grown caching approaches that inevitably caused more problems than they solved) but the marketing advantages and benefits of Velocity (over straight SQL Server caching) should have been understood and related at the start of the pitch, not at the end of it after a rather painful debate! For the record, Velocity looks like it will be of most use where you're using multiple databases or have an MSN 'friends online' -type scenario (where the data can be large and considered throwaway). The advice on Velocity was to hang on for a couple of weeks when CTP3 (the last CTP before RTM) should be released since CTP2 is a few months old now. Velocity is scheduled for RTM release in Summer this year and will be a free Out-of-bound release.


I guess the problems I perceived with the day's main pitches partly arose because Microsoft themselves were unsure exactly who the audience would be. There were 13 of us, comprising two people with PHP/MySQL experience (although both had used MS technology in its pre-.NET days) and the rest was then evenly split between those already on the program who regarded themselves as 'very technically savvy' in the Microsoft stack, and those who weren't on the program, who also identified themselves as being very technically savvy. In all honesty, if I'd known that 'The Magic of BizSpark' actually meant 'MSDN Day Lite' I wouldn't have taken time out to attend!


Am I being too 'mean' ('mean' seems to be Microsoft's favourite new word after 'So...')? I honestly don't think so. One attendee, totally unprompted by me I hasten to add, commented in the lunch break: 'It's typical Microsoft - all thrown together at the last minute, without thinking through what the marketing message should be. They don't seem to realise that start-ups just want clear guidance on what they should use, and when'. We now live in a world where even the likes of Scott Guthrie can be happy using words like 'NHibernate' in his MIX keynote, or Microsoft UK's data evangelist Eric Nelson can be open and honest about the very real weaknesses of the first release of the ADO.NET Entity Framework, so it's hard to understand why start-ups aren't being given the real story about the very real pitfalls they will face with certain parts of the technology stack, effectively being told everything's wonderful and much more integrated and easy to use than anything else out there. If we're told about the weaknesses we can work around them (and wait for the fixes), but if a product is completely oversold and the very real weaknesses covered up such that products are developed with a real risk of failure at a time when it's too late to fix things people will quickly become disillusioned and angry, and that benefits nobody.


All that being said, if you're working with the Microsoft technology stack BizSpark is a complete no-brainer. Use Google to find the 'real' story about the technologies you're thinking of using before leaping in and you should have a very happy experience. The software alone (Not just full-blown Team System Suite edition but production licenses too! For free!) is worth considering. Add in access to Metro (a pre-release programme offering not just pre-release software, but free support and training too) and it's not hard to see why lots of folks are excited about the initiative. I just hope those folks have the common sense to look at what the cost of all that 'free' software will be once their three years are up! The final demo of the day, extolling the virtues of all the options in Team Foundation Server, was impressive but I couldn't help wondering how many people would still be interested once they realised how much this stuff will cost them when they get to Year 4. There are much cheaper (and, I would argue, more mature) products out there for much of this functionality).

Monday 23 March 2009

Ian's Link Dump 23rd March 2009

WPF/Silverlight


WPF vs Silverlight: It's the Wrong Debate

Customising Silverlight Video Players using Expression Blend

The New Silverlight Toolkit Experience

Silverlight 3 Beta Install Experience: Avoid Annoying Loop (Tim Heueur)

Build a simple Twitter Client using Silverlight 2

Silverlight 3: Detecting Network Status

Silverlight 3: Deep Linking

Silverlight 3: Data Binding with the Virtual Earth Control

Writing a Design Time Experience for a Silverlight Control

Silverlight 3: Array Helper

How to Prepare Your Silverlight 3 Application Offline

Merged Resource Dictionaries in Silverlight 3

Displaying Background Activity in a Silverlight RIA

Silverlight "On the Bike" Demo (as featured in MIX09 keynote)

Silverlight Accordion Control Part 1

Using the New Silverlight 3 Perspective Tools to Emulate 3D

Creating Particle Effects in Silverlight

Breaking the Sandbox in Silverlight 3

Deep Zoom Collections Explained Part 2

What makes Silverlight Better than HTML/CSS/JavaScript

An Introduction to Behaviours, Triggers and Actions

.NET


Building a Continuous Integration Build Server

A new Visual Studio Hosted Debugging Technology based on .NET Reflector

Your first NHibernate -based application

General Web


Increase Firefox Speed and Decrease Firefox Memory Usage

Why IE8 Disappoints Developers

Design


Balsamiq (a great sketching/mock-up tool

Axure Wireframe Prototyping Tool

Sites Without Menus: Do you Really Need a Main Nav?

5 Universal Principles for Successful eCommerce Sites

70 Excellent Photoshop Resources

40+ Beautiful Patterns and Textures for Ornate Backgrounds

Wednesday 18 March 2009

Ian's Link Dump 18th March 2009

Apparently there's been a little conference held in Las Vegas today! Way too many links (and not enough time) to keep track of, but here are the ones I intend to go back to this weekend. The keynote for this conference can be viewed here (click on "day 1" link on top of large image at top of page)

WPF/Silverlight


Silverlight Official Blog Launched

A Guide to Silverlight 3 New Features (Tim Heuer)

What's New in Silverlight 3 (Tim Sneath)

Silverlight 3 SDK Beta 1 Download

Silverlight 3 Beta 1 Tools for Visual Studio 2008 SP1

Microsoft .NET RIA Services March 2009 Preview Download

Expression Web SuperPreview Beta for Internet Explorer Download

Expression Web SuperPreview Makes Cross Browser Testing Like Moist Delicious Cake

Expression Web SuperPreview (Video interview with Program Manager)

Web Platform Installer 2.0 Download

Microsoft Web Platform, Web Application Gallery, Web Platform Installer (Scott Hanselman)

MIX09 Bits Available on Microsoft Download Centre

Mike Taulty's 'Quick Looks' at Silverlight 3 - lots of useful stuff here!

Using Silverlight 3 Video's (Jesse Liberty)

Smooth HD (AdaptiveEdge Streaming for Silverlight: Real time HD (VERY impressive!)

Blend 3 Preview (Channel 9 video)

Silverlight and Smooth Streaming UX Simulator

Silverlight 2: ItemClick event on Silverlight Items Control

ASP.NET


Official ASP.NET MVC Site

ASP.NET MVC 1.0 Download

ASP.NET MVC 1.0 with Phil Haack (Channel 9 video)

ASP.NET 4.0 and VS 2010 Web Development Beta 1 Overview

ASP.NET 4.0 and VS 2010 Web Development Beta 1 Overview

IIS-Related Links from today's MIX09 Announcements

General Web


IE Fix: Bicubic Scaling for Images

101 High Quality CSS and XHTML Free Templates and Layouts

Design


The Importance of Wire-Framing

Humour


MIX09 Behind the Scenes: Scott Guthrie Prepares for his Keynote

Twouble with Twitter (cartoon video)

Tuesday 17 March 2009

Sunday 8 March 2009

Ian's Link Dump 7th/8th March 2009

WPF/Silverlight


Specialised Layout Panels for Silverlight

Silverlight Drag Drop Manager

Silverlight Tutorials

General Web


How to Absolutely Position DIVs inside a Relatively-Positioned DIV

Digg Toolbox: 50 New Tools and Resources

Data Access


ADO.NET Data Services (Astoria) Resources

Design


53 High-Resolution Photoshop Paint Brushes

Logo Design Trends 2009 - Showcase

20 Beautiful Video Motion Pieces

Free Easter Bunny Icon Set from IconDock

Miscellaneous


How to Search Twitter

Ian's Link Dump 6th March 2009

WPF/Silverlight


Simple Parent/Child Navigation in Silverlight

Silverlight: Attach a Double-Click to any Object

Drilldown Silverlight Charts Using Visifire

The State of Silverlight 2 Books

WPF and the Power of ICommand

Silverlight 2: Custom Control Gotcha's

Silverlight 2 Walkthrough: Creating a Traffic Jam game

Asynchronous Test Support - Silverlight Unit Test Framework and the UI Thread

Gotcha when DataBinding a ComboBox in Silverlight

Silverlight Guidance: Whitepapers on SEO, Security and Media (Tim Heueur)

Shadow Breaker effect in XAML

.NET and Database


SQL Server 2008 Upgrade Technical Reference

How to use LINQ on Custom Classes

Essential Reading List for the Architect

TDD Productivity Plug-in

Design


The World's Ugliest Web Sites

How to Creat a Dark Surreal Illustration in Photoshop

20 Beautiful Photoshop Montage Tutorials

The Top 100 Best Fonts of All Time

Elegant Gradient Ribbon in Adobe Illustrator

Ian's Link Dump 5th March 2009

WPF/Silverlight


How to Create Your Own Commands and Bind Them in WPF

How to Build a WPF application with PRISM V2

Composite Application Guideance for WPF and Silverlight Feb 2009 (Notes)

Sunny Orange: WPF Theme 1

General


School for StartUps

10 Ways to Bide Your Time when You Hate Your Job

10 Fixes that Solve IE6 Problems

Design


50 Stunning Photoshop Text Effect Tutorials

20 Must Subscribe Graphic Design Blogs

Quick Usability Checklist

20 Beautiful Vintage Photoshop Effects

37 Shopping Cart Options for Developers

26 New and Awesome Web Apps You Probably Don't Know About

10 Minute Email

Ian's Link Dump 4th March 2009

WPF/Silverlight


Prism Videos

How to Grey the Icon of a Menu Item

Silverlight 101: Make a GET request and a POST request

Panning across Large Maps with Deep Zoom and Custom Animations

Hosting Silverlight Outside the Browser

WPF Application Frameworks on CodePlex

Silverlight.FX and Silverlight Store Sample Application

.NET


Back to Basics: Interfaces

SOLID Development Principles - in Motivational Pictures

Miscellaneous


How to Put Video Podcast on iPod with iTunes

Bulk Deleting Twitter Direct Messages

Ian's Link Dump 3rd March 2009

WPF/Silverlight


A Rose by Any Other Name: LayoutTransformControl on track to ship in the Silverlight Toolkit under the name LayoutTransformer

.NET


How to Make CTRL-C not select a blank line

How to Create a Code Snippet for Visual Studio 2008

General Web


40 Useful JavaScript Libraries

Google Analytic IQ Lessons

Design


40+ Sources to Download High Quality Free Stock Images

50 Sites to find free Stock Images

20 High-Resolution Denim Textures

Ian's Link Dump 2nd March 2009

WPF/Silverlight


Multi-Targetting M-V-VM: An Exercise in Reuse for Silverlight and WPF Applications

Silverlight M-V-VM Resources

Recent WPF Discussions

Using Complex Vector Shapes in Expression Design

Dependency Properties and Silverlight 2

General Web


Empirical Studies Show Test Driven Development Improves Quality

10 Features that will make Twitter Better

50 Twitter Tools and Tutorials for Designers and Developers

7 Tips for Writing a Winning Web Design Proposal

Ian's Link Dump 1st March 2009

WPF/Silverlight


How do I Prism 2? (videos)

Integration of Browser's Unloading with Silverlight

Tip of the Day: How to get an Image's source name

Silverlight Adoption: A Few Numbers

General Development


Packer for .NET Updated (JScript compressor)

Software Development is not a Jenga Game (SOLID)

JQuery Auto-Complete Plug-In

Ian's Link Dump 28th February 2009

WPF/Silverlight


Silverlight-Enabled Live Search

Miscellaneous


10 Things You Could Do Better Today

10 Online Photo Editors That You Definitely Need to Bookmark

Ian's Link Dump 27th February 2009

WPF/Silverlight


Build a WPF Application that uses LINQ-to-SQL to Access the NorthWind database

Hands-On MVVM for Silverlight and WPF

Update to Prism 2.0 Available on Download Centre (Details)

Animating Graphs in WPF with Clipping Masks

From WinForms to WPF - Part 3: Master/Detail

Quick Tip: Expression Blend - The Hand

Silverlight Drag and Drop Manager Released

Element Recycler for Silverlight and WPF

.NET


Programmer's heaven C# School Free Ebook

General Web


10 Papers Every Programmer Should Read (At Least Twice)

Web Developer Handbook

7 Fresh and Simple Ways to Test Web Compatibility

Design


29 Corporate Brand Logo Evolutions

New Media Douchebags in Plain English (video)

26 Free E-Books for Bloggers

Ian's Link Dump 26th February 2009

WPF/Silverlight


Silverlight Chat Application using WCF Full Duplex

Silverlight Programming: Games and Demos with Source Code

Powerpoint to Silverlight and WPF XAML Convertor Technology

Using Silverlight to Display JSON Data (from NY Times)

Custom loading a splash screen in Silverlight

Returning Exception Information to a Silverlight Client Through WCF

XAML: State of the Union February 2009

Native Text and Symbol Support Added to My Illustrator to XAML Plug-In

Testing Silverlight Applications (Tim Heuer)

Silverlight Chart with Markers

Silverlight WCF Service Reference Usage Simplified

Twilight 1.5: Multiple Views with MVVM

.NET


Time Codes Changing in Windows Azure

The return of CopySourceAsHtml

VSDOC for JQUERY 1.3.2 NOW AVAILABLE

General Web


CSS Layouts

Design


42 Twitter Backgrounds

28 Incredible Photoshop Image Manipulation Techniques and Tutorials

10 Steps to the Perfect Portfolio Website

Ian's Link Dump 24th/25th February 2009

WPF/Silverlight


WPF Application with ComboBox that selects and displays an image

How to make Animations more Lifelike with Expression Blend

Foundation Expression Blend 2: Book Notes

Read the Mouse Wheel from WPF

SilverUnit - True Unit Testing for Silverlight

Expression Media 2 SP2 Released

Silverlight Migration Guide

Auto Trace in Expression Design

Design


22 Big Swhirl Brushes

Ian's Link Dump 23rd February 2009

WPF/Silverlight


Design-Time Data in Expression Blend

Silverlight Controls Demo (Office 2007 Simulation)

Family Show: WPF Reference Application

New Pre-Loader for Silverlight

Replicating Validation Logic

.NET


Attempting to work around the VS Silent Death Bug

A New Look for Visual Studio 2010

General Web


Stop Living in the Past

Download Browser Versions

5 CSS3 Techniques for Major Browsers using the Power of JQuery

Design


Coquette Part 4: Icons

Handy Icons 2 - free hand-drawn icons

Free 'Vegur' Font

21 Stimulating Colour Palette Tools for Designers

35 Free Dark Backgrounds for Designers

Miscellaneous


You Should have seen this (definitive list of things you should have seen/experienced on the internet)

Ian's Link Dump 22nd February 2009

WPF/Silverlight


Known Colours and Brushes

Silverlight, Thanks for the Grid, but I still love my Canvas

The meaning of AG_E_PARSER_BAD_PROPERTY_VALUE

Silverlight SCRUM Wall

Notes on Video Tutorial: How to use WebClient and HttpWebRequest in Silverlight

Creating a MESH-enabled Web Application (screencast)

MVVM in Silverlight 2 Apps (MSDN Magazine, March 2009)

Notes on Article: MVVM in Silverlight 2 Apps

More about the Silverlight Layout System

Silverlight Tools Speed Bumps

Notes on video tutorial: Data Binding

Playing with JSON


Design


50 Mind-Blowing Retro-style Photoshop Illustrations

Tutcast Photoshop and Graphic Design Video Training

70 Beautiful Dual-Screen Wallpapers


Miscellaneous


The Only Film-Making Advice You Really Need

8 Useful Online Tools for Travelling Filmmakers

20 Brilliant TV Show Title Sequences

The Workstations of Popular Sites

How SCRUM is like Marijuana