Just Test – Nuff Said? Nah.
Big discussion about unit testing. Views ranged from 100% coverage is necessary, to some code is not worth the trouble. The 100% camp was hit with this rebuttal:
How is the coverage measured?
Is it just checking which code blocks ran during the test?
What about covering different code paths?
Everyone was in favor and there were some interesting insights including an example of “correctness by construction” in Haskell:
…”correctness by construction” (aka “making illegal states unrepresentable”). This approach relies on a rich type-system (and, at a deeper level, an interesting fact technically known as the “Curry-Howard isomorphism”). Ideally, when this can be achieved you can completely discharge the need for a lot of unit tests (replacing sort of probabilistic certainty with actual certainty).
Plenty of good links were sent and summarized:
This study found bug reductions of 40-90% with 15-25% coding time added.
Some recommend testability above clarity.
I heard some talk about an A team being formed to take on a project. I’d like to see the problem these guys can’t solve.
Check out this interesting tool for translating a data model into a class model with proper naming and casing using either Entity Framework or Linq2SQL.
All in all, a quiet week as expected.
Went to the .Net Meetup Tuesday night and had a great time. Plenty of interesting discussion and some laughs too. (All that and free pizza too). Highly recommended:
if (yourGeekiness >= myGeekiness)
Daniel Chait (my boss 🙂 led the meeting. The below info is mostly from Dan’s notes which he wrote on the overhead in real-time (I take credit for any errors or omissions). As you can see, if you didn’t attend, you missed a lot. These are mostly just the topics. Each one generated lively discussion:
PDC 2009 started today:
Microsoft “Micro Framework” open sourced:
(not including some stuff like Crypto etc)
Scott Hanselman had a podcast about it?
Azure going live in February (cloud services)
Cloud Computing : Compare Azure vs others
Vs Amazon EC2? Amazon gives you a virtual machine, whereas Microsoft gives you specific services (i.e. web, database, WCF services). Also cloud-based Pub/Sub model.
– For co’s & individuals
–Co less than 3 yrs. old, less than $1MM, private
– You get all Microsoft stuff basically for 3 yrs. free.
– Check out the “Program Guide” off the website for more details
– You get VS, SQL Server, and Blend, etc. to get started
– 3 year license for free
– Part of Office 2010 (was codename “Gemini”)
WPF Grid Controls?
– Using DevExpress (WinForms grid)
– Infragistics – not much new there. tech support pretty good. glaring bugs in new versions. difficult upgrading between different versions due to problems with style upgrades
– WPF Toolkit has a grid control: very basic, missing a lot of features (i.e. Filtering etc)
– XCeed well regarded. Been around the longest, full featured. Cons: tech support iffy. Licensing may be problematic – issues when you convert from demo to licensed version.
Data Direct products:
– XML converters
– Database connectors
– Difficult licenses
.NET Framework v4?
– Tasks, parallel stuff – http://en.wikipedia.org/wiki/Parallel_Extensions
– WorkFlow changing a lot in V4 as well
– Documentation is very minimal at this point
– Maybe some good PDC content coming out? i.e.
– Maybe some channel9 stuff to find?
– Hello Workflow 4
What do people actually use WF for?
– Sharepoint development. Basic stuff.
Architecture in .NET Question: Model Approach to Database Access?
– ORM Software: Developers make clean code which makes horrible queries
– Call Stored Procs from software: nice queries but ugly to call
– Experience: Easy to use, decent performance but on a simple app
– In ALL cases, need to analyze queries in detail, can’t just rely on the ORM to sort it out
– Microsoft Entity Framework 1.0 – not full featured enough
– New one coming out
– Linq2SQL used a GUID(?) which killed query caching
– NHibernate – “granddaddy of them”.
– Cons : “Has a case of the Java’s”. XML Configuration, FactoryFactoryFactory…, etc.
GRAND CLAIM: Try to avoid open source:
– IF something is just a small, weekend project on CodePlex, probably worth avoiding. But, like, …
– NMock, moq, RhinoMock
– Log4Net, nlog
– log better, easier to configure
– Fluent NHibernate
– The MONO project
– Need to treat it more like “code” than a “product” from a vendor. Actually understand the code don’t just consume it.
– Open source projects are driven by enthusiasm
– JQuery plugins for example
One user mono in production spoke up.
– Follows the Pareto Principle – for example doesn’t use code signing
– Implementing silverlight (i.e. Moonlight) which works on the iPhone
– Castle project – ActiveRecord implementation – says it’s at least as good as say RoR – just does property setting in code, built on top of NHibernate, scaffolding, etc.
The Munawar principle – 20% will be good, 80% will be garbage
FBK #2: Sturgeon’s Law – “90% of everything is crap”
NCover – code coverage tool
“Where’s my LINQ2 Mainframe?”
SubSonic – open source framework for stuff – http://www.subsonicproject.com/
– “A Super High-fidelity Batman Utility Belt that works up your Data Access (using Linq in 3.0), throws in some much-needed utility functions, and generally speeds along your dev cycle.”
[long discourse about non programmers. in short, they are inconvenient.]
AJAX / ASP.NET – still buying into it? As opposed to WPF / Silverlight / Flex?
– Corollary – as a novice, what should I be getting in to
– Corollary 2 – if I want to get out of ASP.NET and get into WPF and realtime .NET desktop apps, how do I do it?
– Endless debate about Silverlight vs Flex
– Silverlight can be applied-ish to WPF knowledge
– Flex VERY easy to learn
Silverlight vs WPF?
– Third party controls maybe a bit better in WPF at present
– If heavy desktop integration, use WPF, else Silverlight by default
– Silverlight Out of Browser – still in the sandbox but just looks like the browser is missing.
– Databinding in Silverlight not nearly as good as WPF. A bit better in 3.0 but still not great
[spontaneous demo of Castle ActiveRecord]
Good localization solution? Want to translate our site into multiple languages….
– Sharepoint can do some of this but not ALL languages
– New version of Sharepoint (2008?) does this
– Beware of language specifics (i.e. German has long words)
– Maybe any content management solutions that exist?
– How to handle caching?
– Generate static content or regenerate on the fly every time?
– See http://latino.msn.com/ for more