To be honest, I didn’t expect this!
I just found out I’ve also passed Microsoft .NET Framework 3.5, ADO.NET Applications.
I remember I was pretty tired, and was still a bit exhausted after taking 70-562 the previous day. About 3/4 through I noticed the tiredness was catching up on me as I was having trouble focusing (Excom’s crumby old test computer doesn’t help – nothing like a CRT monitor with the refresh frequency set way to low to wear you out quicker). The thought even crossed my mind that maybe I should give up and leave. But then I figured, no, I won’t get this opportunity again so try and give it my best shot. Looks like it was a good thing I stuck it out :-)
Rob should be happy, I’ve finally got around to recording my entry for Microsoft’s demo competition!
I demonstrated this earlier this month at the Adelaide SQL Server User Group, and then did a slightly longer version at CodeCampSA.
Today Nigel Spencer and Richard Hollon joined us at ABB.
Timothy has dubbed us the “Dream Team”. I’m not sure if that means we’re really good, or we’re really sleepy.
I’ve received confirmation that I passed Microsoft .NET Framework 3.5, ASP.NET Application Development. This was one of the two beta exams I did in early May.
The one good thing about doing beta exams is they are free. The bad thing is that unlike regular exams, you have to wait 6-8 weeks to find out if you passed or not, and you don’t get a score – just a pass or fail.
Paul Stovell – Reactive Programming
- Reactive programming. cf. Excel
- Data binding – similar for .NET
- Manipulating the flow
- WPF ValueConverters
- EditableAdapter class
- Reactive Domain Models
- Search query generic class
- Bindable LINQ
- A bit like SqlCacheDependency for LINQ expressions
- Very cool!
- Just add one method to LINQ and you’re done
Tatham Oddie - ASP.NET MVC
- The “I” in URI is for Indicator
- Controller – adds data to ViewData dictionary
- Html.ActionLink (Html helper class)
- Routes – more than just URL rewriting
- System.Web.Routing – can also be used in WebForms
- View Engines – WebForms, but can also use others
- RegisterControllers – extension method for WindsorContainer class
Ben Mackie – Reflection, extension, injection
Three types of projects
- SPI – service provider interface – how the host depends on the extension
- Castle configuration – can pass references to other dependencies through the config
- Contracts, views and adapters
I wonder if you could write a whole application as a bunch of addins?
Dr Greg Low – SQL isolation levels etc
How much one user impacts others.
- Read committed (shared lock, SQL default)
- Read uncommitted (no locks, risky) – consider using a read-only partition on a table instead
- Repeatable read (locks, but can have phantom rows)
- Serializable (locks, no phantoms) – very consistent
- Snapshot (2005+, writers not blocked, uses row versioning)
- Shared (S)
- Updated (U)
- Exclusive (X)
- Bulk update (Bu)
Make sure you use semicolons in your T-SQL as it will become mandatory in the future
- Hints – use as a last resort
- Use new DMVs to find blocking queries
- who ever did the least work gets killed (different from earlier versions)
- Use deadlock graph (lock events) in SQL profiler
- Make use of TRY/CATCH (2005+)
- Build deadlock handling into client app from day one
Shane Morris – User Experience (UX)
UX design process
- Information design
- Interaction design
- Presentation design
Interaction and presentation are mostly in the “coding” side.
- List everything you need to show
- Map out the workflow – what order are people going to work?
- Layout the elements (left-right, top-bottom)
- Check groupings
- Remove every unnecessary element
- Line stuff up – line up text to baselines (eg. labels and textboxes)
- Space and size things evenly
- Indicate grouping (group-boxes, similarity, proximity, alignment, empty space)
- Add visual weight
- Irregular shape
Daniel Brown – SharePoint development
New Visual Studio 2008 extensions for SharePoint.
Corneliu Tusnea – Debugging the CLR
Debugging in Visual Studio
- .loadby sos mscorwks
- !threads (list threads)
- !pe xxxxx (print exception)
- !do xxxxx (dump object)
- !dso (dump stack objects)
- !iptomd xxxx (map instruction pointer to memory dump)
- !dumpmt xxxx (dump method table)
gflags - use to start debugger before service starts
Adrian Downs – PerformancePoint
Demonstration of Dashboard Designer
Final day thoughts
Another great day of content. I had to leave before Paul’s second quiz was finished (apparently the SMS proved problematic and they had to resort to paper in the end). Maybe next time the quiz could be run over the whole day (eg. a question in between each session). This would give time for answers to be received.
Well done to Peter for organising everything, and special thanks to the interstate speakers for making the effort to come down to Adelaide – very much appreciated.