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
- Use the Debugger attributes
- Use object ID to attach to objects in the watch window
- .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.
Hooray! It’s a bit like Christmas at the moment. Not only did I win a $AU19,000 MSDN subscription at CodeCampSA on the weekend (feel free to add your comments as to whether I should keep it or give it away to a suitable cause), but finally my second monitor arrived this morning at ABB. I’ve been waiting 5 weeks for this, and there were times when I wondered if it would ever happen.
The new monitor is a HP L1950, which is the same screen size as my existing HP L1906, but most importantly has DVI input, and also a slightly narrower bezel.
My current machine is one of these dinky HP dc7800p ultra-slim desktops. To be honest, they’re probably fine for your average Microsoft Office user, but they are quite a bit under-specced for developing.
This is something that we’ve raised, and hopefully will be addressed soon either by extra RAM and a second hard drive, or (fingers crossed) some replacement boxes that are more in the “power workstation” class. I think this is critical, as we have a tight deadline and don’t want to waste time watching the hard disk LED glow brightly for 30 seconds at a time (freezing Windows) until it’s ready again.
After all, it’s not like I’m asking for three screens or anything!
My talk today at CodeCampSA was on SQL 2008 change tracking and how that works with the new Microsoft Sync Framework. It went ok up until I put the VM into full-screen mode, which promptly stopped the display on the projector. Arrgh! A quick fumble around and running the ATI video utility got things working again. Doubly embarrassing as I'd just made a comment about the whole "demo gods" thing so that drew a few smart comments!
Then, my "prepared earlier" demo failed to work. I suspect it’s because just an hour before my talk, I decided to add an extra table to my test database. That probably wasn’t a very wise thing to do.
I then asked Timothy (fellow developer from ABB and Sync Framework whiz) to join me out the front and demonstrate how to create custom client and server providers. I realise now that I should have given him much more time, as he did a great job, but with time against us we couldn't finish it properly. I really should have given him more chance to prepare rather than throwing him in the deep end with only 10 minutes to go.
Even with all that, I still stand by my dismissal of "demo gods" comments that so many presenters like to make. But I'm happy to admit that I'm not perfect rather than blame someone (or something) else.
So I was feeling a bit disappointed with how that went, but things were about to change for the better.
As I mentioned, Paul ran a clever quiz competition to give away a Visual Studio Team System 2008 Team Suite with MSDN Premium.
Guess who won?
Yep, yours truly!!! Wow, and they don't sell these for peanuts either!
So now I have a dilemma - I realise this is a very valuable resource, probably not something I'd ever get to buy myself. But is it something that I'm going to be able to make good use of? I'm not sure.. maybe there are some other organisations that this could benefit much more.
I'll think about it before I decide what to do. But a warning, don't bother contacting me asking me to give it to you! The answer to those requests will be "Sorry, No".
I could give it to my Mum, to say thanks for lending me her laptop to use today, but I have a feeling she might not know what to do with it :-)
Of course I may still decide to keep it. Otherwise I'll be deciding what to do with it soon (making sure what ever happens complies with Microsoft's licensing/conditions).
Spoke about the divide between dbas and developers, and how VS Database Professional has many new features that try to bridge that gap. It does seem that many of these features are similar to existing offerings from Red Gate though. Not sure if they've all been licensed, or if it's direct competition from MS.
Microsoft's "Live". Things I hadn’t seen before included Live Mesh, tafiti (a fancy search engine interface). To roll your own application that leverages the Live platform, you’ll need to set up an App ID. I am wondering what services does Live offer that differentiates it from its competitors? Or is it just playing catchup/keeping even with other offerings. Darren also mentioned even dentists could use Live – which made me wonder how you could go to the Dentist online!
A witty and engaging presentation on some of the features of WPF. Alan recently presented at AdNUG, and I'm now sorry I missed it. One tip Alan gave was the use of RentACoder, not just for coding, but for graphic design work. He did say that the specs needed to be very precise though.
An overview of DotNetNuke. Showed how easy it is to install, and how you can simply extend it by writing your own modules (based on ASP.NET User Controls (ASCX files).
Back again this year with another interesting talk on analysing web traffic. He's a big fan of Google Analytics. If you were trying to sell stuff through your website, he’s the kind of person you'd want to hire to make sure you were targeting your market. There's a new feature in Analytics called "Industry Benchmarking" – worth investigating.
Overview of SharePoint 2007. The relative ease in which it supports i18n was impressive – I hadn’t seen that before.
Me and Timothy
SQL 2008 Change tracking and Sync Framework. (See next post)
Jason Stangroome and Jim Burger
TFS and SubVersion shoot-out. Interesting to see the strengths and weaknesses of both products. Relevant as I was using TFS and were now using SVN at ABB.
SQL 2008 Change tracking and Sync Framework. By coincidence Nigel and I ended up covering very similar ground, but to his credit he used WPF, didn’t mess up the display, and did it all in under 10 minutes (which means he can enter it in the Demo Comp)
Unit testing Silverlight. I’ve never used Silverlight, but I liked how the technology is heading to be able to write tests for this sort of code.
Ran a quiz using a WPF app hooked up to his mobile phone to allow everyone to enter via SMSing from their mobile phones. (More in next post)
Tea at Marcellina's
About 10 people headed over to Marcellina's for a banquet dinner. Some interesting conversations and a good chance to catch up with everyone over a yummy tea.
- Wireless worked well, though not sure if all the Vista people got in first time. I’m glad I printed out the instructions before I came.
- Seemed to be about 30 people today. I’m wondering what we could do to get more people to come along.
- Is a weekend the best?
- Would a weekday event get more people who are willing to give up work rather than their weekend/family time?
- Maybe in the middle of school holidays isn't good for some people too.
- Nice catering job by the scouts.
- Most sessions ran on time which is good.
- Great to see RJ, and bumped into Courtney too.
Peter has published the latest programme for CodeCampSA, happening this weekend at UniSA City West campus.
A few things to note:
- Last time I was there, lecture theatre HH4-08 only had 2 power points for the whole room. So if you have your laptop, make sure it’s fully charged, and maybe bring a spare power board and/or extension lead.
- I’m doubtful that there will be wireless network access. I was able to coordinate that myself last year, but I’m not sure if anyone’s picked up the ball this time.
- HH4-08 is in City West campus. For those who aren’t familiar with the University of South Australia, there are two city campuses (the other being City East). There’s numerous ways to get there. The HH building is roughly in the middle of the campus (check out the campus map).
I’d really like to see this content hosted on a CodeCampSA website, rather than just on Peter’s blog. That way additional information could all be kept together – just like the CodeCampOz site does.
This will top off an extremely busy week for me – we’ve got relatives visiting from interstate, my mum’s in hospital having surgery, it’s my daughter’s birthday, and yesterday we had our first field trial of the application we’re building for ABB (some success and some things we’ll need to fix, though the bakery lunch at Tailem Bend was definitely a highlight).
Update 11th July - Looks like wireless access has been organised. If you registered, you should receive credentials and instructions. Great stuff!