It’s been a while since I’ve posted a Virtual Brown Bag Meeting follow-up. I’ve been busy, that’s why. But we have been having the meeting weekly, every Thursday, from 12pm-1pm (Central Time), and I’ve kept notes to myself of some of the things discussed in several meetings, so I’ll be posting my notes here (I can’t afford the time to type a lot of details, but the intention is to give people an idea of what kind of things we talk about there). We’ve been getting new people attending to the meetings, and have been receiving very good feedback, so as long as people find the meetings useful, we’ll continue hosting them.
We’ve discussed a little bit about polyglot programmers, F#, dynamic languages. We’ve mentioned CodeCast episodes that talk about dynamic languages such as IronPython and IronRuby. We’ve also mentioned Ted Neward’s article on MSDN mag about the subject. There’s also another one by Neil on CODE Magazine.
This blog post was mentioned, where the author talks about testing C# code with IronRuby.
We’ve also talked briefly about MEF and the fact that’s designed to work with both static and dynamic languages.
This site has been suggested as a good resource on polyglot programmer.
We’ve seen samples of how people are using Extension Methods on IEnumerable, View objects, and a bunch more cool things. In the same vein, we’ve seen some cool usages of F#’s parallel programming capabilities.
We’ve discussed about BDD (behavior-driven development), and discussed a little bit about how to write those tests, citing the context/specification as one way of doing it. This blog post on Elegant Code has some more info about it.
I’ve mentioned how I’ve been working with ViewMode’s that implement INotifyPropertyChanged for the databinding mechanism in WPF to work, and mentioned how’ I’m using Brian Noyes’ NotifyPropertyChanged plugin to help out changing regular properties into properties that raise PropertyChanged. ttp://briannoyes.net/2008/09/01/CustomRefactorProPluginConvertProperty.aspx
I’ve shared a couple of Visual Studio tips as well:
- Ctrl+J: invokes member list
- Ctrl+Shift+Space: show parameter info
- Ctrl+K+I: show quick info
- Cltrl+I: incremental search
- Ctrl+F3: search currently-selected word
- Select word and then Ctrl+F, Ctrl+Shift+F, Ctrl+H (brings up Find/Replace dialogs with the selected word as the search criteria)
- F3: repeat last search
- Tools-Options-Env-Find and Replace (to change dialog’s behavior so it goes away as soon as the search has been performed
There was mention of a cool post on StackOverflow on the “hidden features of C#”
Davig Morton’s shared his experiences playing with Visual Studio 2010, focusing on the new dynamic features introduced to C#, such as the “dynamic” class, the ExpandoObject (which allows both properties and methods to be added to an object dynamically during runtime), and also the DynamicObject. He also covered a little bit of “No PIA” deployment (great for people writing integration with MS Office). David has posts on this blog at blog.davemorton.net
I’ve mentioned about my experiences delivering WPF training at EPS, as well as we covered a little bit of WPF data binding.
I’ve also mentioned Pablo’s e-book on book the S.O.L.I.D. principles.
Meeting was totally dedicated to CodeRush and Resharper. We’ve gone through a lot of features in both tools, and we all agreed that both tools are awesome and every .NET developer should use a tool like that.
MSDN Magazine has a “Usability in Practice” column that’s interesting. The authors offer some good advice for anyone involved with UX (User Experience); for instance, what considerations should be taken into account when deciding on how to compose messages for the user (due to exceptions, failures, or anything else that has to be presented to the user): http://msdn.microsoft.com/en-us/magazine/2009.01.usabilityinpractice.aspx
I mentioned I’ve finished reading Kent Beck’s book, “Implementation Patterns” http://www.amazon.com/Implementation-Patterns-Addison-Wesley-Signature-Kent/dp/0321413091/. I’ve enjoyed this book. Whereas most “design patterns” books focus on the high level concept of patterns, regardless of what the actual lines of code that implement the patterns look like, this book focuses at how code is written, what patterns to follow, how to write intention revealing code, etc.
I mentioned I’ve started (finally!!) reading Eric Evans’ book, “Domain-Driven Design: Tackling Complexity in Software”: Eric Evanshttp://www.amazon.com/Domain-Driven-Design-Tackling-Complexity-Software/dp/0321125215/. I’m really enjoying it so far.
Snoop is a great little free tool for anybody doing any WPF development. Check it out!
Here’s a link to the StructureMap extensions for Prism (for those who want to use StructureMap as the container in Prism applications).
I showed how easy it was to create a template in CodeRush that helps me writing tests that make use of stub/mocks created with Rhino Mocks.
The presentations from the Norway Developers Conference (NDC) are posted. There are some great presentations from people like Phil Haak, Hanselman, Ayende, Jeremy D. Miller, Uncle Bob. Videos from presentations are here: http://www.ndc2009.no/en/agenda.aspx?cat=1071&id=1813
Here’s a link to a Hanselminutes’ episode with Glenn Block where he explains what MEF is, and whether or not it is an IoC container.
There was some interest in Visual Studio Extensibility and MEF, and I’ve pointed out Pablo’s blog, which has great posts about it.
Balsamiq has been suggested as a great tool to create screen mockups.
You can find recordings of the meetings here (it’ll be the ones titled “Virtual BBM”).
We’ve been getting great feedback from people who have been attending to the meetings, like this one from Code Renaissance. It’s great to know that people have been finding the meetings to be valuable, and I can say they’ve been great for me too, since I’ve learned about several things I didn’t know before.
We’ll continue on having the Virtual Brown Bag Meetings every Thursday, from 12pm to 1pm (Central Time). All you have to do to attend and participate is go to this link. Make sure you have speakers or a headset. Having a microphone isn’t mandatory, but highly recommended so to facilitate your interaction with everybody else.