Wednesday 24 March 2010

DevWeek 2010

Just got back from DevWeek 2010.  Here is a list of things I need to follow up on from the sessions I attended:

A Day of ASP.NET 4.0 : Fritz Onion

  • MemCache
  • Chart Control
  • GridView/ListView ‘remembers’ selected
  • Query Extender
  • Html Encode syntax and HtmlString class
  • AJAX 4.0
    • Script Loader/Manager
    • Sys.Require
    • Sys.onReady
    • CDN
    • Extender Controls.js
    • Client Templates {{propName}}
    • .sys-template class
    • Sys.create.dataView(“#id”, { data : data })
    • sys: prefix on attributes
    • Sys.bind(Sys.Get(“selector”))
  • Routing in ASP.NET Forms
    • RouteValue, RouteUrl, RouteParameter
  • Web Application rather than Web Site
  • Deployment:
    • Package/Publish, XDT in config files
    • IIS Import on farm
  • .svc services /js to get client proxy
    • [DataContract] [DataMember]
    • live binding {binding Title}
    • Sys.Observer.makeObservable(itemsArray);
    • Sys.Data.DataContext
  • ADO.NET Dynamic Data

97 Things Every Programmer Should Know : Kevlin Henney

  • Bought the book

Objects of Desire : Kevlin Henney

  • Parameter Objects
  • Pass in Context
  • Interpreter / Aggregator Patterns
  • Getter/Setter problem
  • Keep object valid at all times
  • Privatize
  • LSP
  • UML Inheritance Hierarchies
  • Layering: Concept <– Realisation
  • Layering: Domain –> Services –> Infrastructure
  • Apathy, ignorance, selfish
  • Names based on client usage not implementation

VSTS 101 – a beginner’s guide : Brian Randell

  • Project Collection (single db) > Team Project
  • Static Code Analysis
  • Code Metrics
  • Check-in policies
  • Team Build
  • Test impact analysis
  • VS Profiler?!
  • Mostly MS marketing

Agile DB techniques using VS 2010 : Giles Davies

  • Build Screen Saver, Brian the build bunny
  • Extension Properties for schema version number
  • Data Transfer Plan, Data Generation Plan
    • Data bound generator
  • Got to use this!

Intro to Sharepoint 2010 from ASP.NET devs : Fritz Onion

  • VS 2010 makes it easier.  Needs huge buy in.

Entity Framework in .NET 4 and VS 2010 : Eric Nelson

  • Entity Data Model (EDM)
    • Conceptual
    • Mapping
    • Storage
  • Lots of new goodness in 4.0
  • Insert Key
  • Foreign Key surfaced
  • ExecuteStoreQuery
  • EntityFunctions
  • Extension Manager
  • Feature Pack (POCO, code only, self-tracking)
  • Persistence Ignorance
  • http://bit.ly/ericnelson 

Code contracts and design for testability : Dino Esposito

  • Preconditions
  • Postconditions
  • Invariants
  • Interface contracts
  • Tools (rewriter, static checker, asm ref gen)
  • Contract Failure handling (in UT or logging)

Are singletons evil? : Andy Clymer & Kevin Jones

  • Singleton
  • Repository
  • Factory
  • Dependency Injection

Objects of value : Kevlin Henney

  • aka Attribute Object
  • No/insignificant identity
  • Create Value Objects that exist in the domain and ‘wrap’ simple types
  • Systems of Values
  • POVO
  • Patterns of Value : Immutable Value, Copied Value
  • Three finger rule: Identity, State, Behaviour
  • Smells: Anaemia and Multiple Stereotypes
  • Anatomy: Construction, Comparison, Classification and Conversion
  • Domain specific
  • Equals
  • My MonetaryAmount example

Programming with GUTs : Kevlin Henney

  • Things not to test in UT (perhaps in Integration tests)
  • POUT, TDD, DDT
  • Test per proposition not per method
  • Naming:
    • proposition not implementation
    • Underscores
  • Example based
    • Simple cases
    • Common cases
    • Boundary cases
    • Contractual error cases (rainy day)
  • Better roughly right than precisely wrong
  • Black box

Patterns dartboard : Andy Clymer & Kevin Jones

  • Adapter / Proxy
  • Null
  • Active Record
  • Strategy

Is the free lunch over? : Andy Clymer

  • Fork/Join (Parallel.Invoke, Tasks)
  • Pipeline (Queues, production line, stages)
  • Geometric decomposition (Break down the data)
  • Use Sequential version as UT?
  • Parallel Loops (loop of loops, Barrier)
  • Monte Carlo (educated guesses, best result in time T)

Use threads effectively to build responsive & scalable software : Jeffery Richter

  • Threads are bad
  • Threads are good
  • Async Programming Model (APM)
  • ThreadPool and Tasks
  • AsyncEnumerator