Architecture Chat 14

So yet another architecture chat come and gone, small turnout today, with 5 people I believe.

Had some interesting discussions none the less...

So first off a brief discussion around implementing OleDb i.e. what's involved in doing it yourself, is it worth it etc.  Alex James much prefers the idea of implementing an ADO.Net provider which is far easier, though obviously OleDB or ODBC provides a bridge to the past and to other technology platforms like php or ruby.

There are some products (such as the ones from ODBC SDK) which lets you write your own across a proprietary data source, though I'm not aware of any open source equivalent for assisting with the development of ODBC or Ole DB providers in .Net..??

After that we had a lengthy discussion about Microsoft Patterns & Practices, partly sparked by the first release of the Repository factory which seems like a bit of a non-event ... the discussion basically resolved around points such as:

  • Do they have some inbuilt desire to over-engineer these products (it definitely seems like it!)
  • Is the over-engineering perhaps sparked by a desire to appear "innovative" in the face of existing community projects, i.e. Enterprise Library logging must appear to innovate in the face of existing projects like log4net of nlogr, which already do what most developers need.
  • Are the features in the factories and libraries being driven by customer needs, or some high level vision that doesn't necessarily tie in directly with the pain developers are feeling?


I think the gut feeling of the group was that there's a definite lack of pragmatism or YAGNI in a lot of what's released from P&P which is putting people off diving any deeper, it's a shame considering the group as a whole won quite a lot of us over in the early days with the first release of the DAAB.

Moving from that we talked about the OpenXML debate... personally I thought the strong push from Microsoft came a little out of left field during Code Camp (much like the Mindscape presentation on Lightspeed ;o) - considering I hadn't heard much about it until then in the Microsoft community, and then we bashed around some thoughts, such as impacts of the standard being approved or not - and the motivations of people supporting either standard.   I think most of us aren't particularly concerned with the outcome because our projects don't normally encroach on the document generation / parsing  space - though I can certainly see it eventually having quite an impact on regional and local government for instance.

From their we talked about being entirely underwhelmed with vista sidebar gadgets, and the fact that the sand boxed environment of the gadget detracts largely from it's appeal of providing "context" related information for the application your focus is currently on at the time.  Obviously work-arounds exist, but I think we were hoping for a more formal publish-subscribe system attached to vista gadgets so information could be easily ferried between applications and vista gadgets in an unobtrusive and more formalized manor.

The Maxthon browser came up in conversation, PeterB mentioned using it a few weeks ago, and it looks like he's got at least one convert - in particular it seems that it gets around some of the annoying Internet explorer crashes on vista64, while still using the IE rendering engine etc.... I may well have to give it a go to fix Renee's Vista64 PC.

Also had a discussion around using Windows Workflow Foundation, both myself and David W are starting to delve into it for upcoming projects, and we're both finding if difficult to:

  • Find decent examples that don't target old beta's.
  • Searching only non-beta documentation.
  • Find examples which are sufficiently complex enough i.e. where's a "meaty" state engine example, rather then a toy.


Which also led onto the discussion around examples and blogging - we think products, like Windows workflow, really need some blogging community liaison that:
  • Blog's almost if not every day (small nuggets of valuable content, that will make for good search-engine fodder)
  • Releases a sample, say once a week up until the product is released, and then with follow up examples for a couple of months at least after release.
  • Maintains samples that are released on community sites as new CTP's and the all important RTM's are released, so they don't go stale over time.


Perhaps we've both overlooked some key resources - but it just seems like the content surrounding windows workflow foundation, particularly on sites like netfx3 are actively maintained until the products go final at which point, things such as samples are left targeting previous beta's and serving to confuse the community in many cases.

Next one is in 2 weeks, Thursday 6th September, we might even have a quick 15 minute screwturn plug-in development demo then... if Peter's in the mood.

Read More

2007-08-22 - Architecture Chat Tomorrow

So it's that time again for another Architecture Chat tomorrow - same time / same place (11:30am at Garrisons, Sylvia Park).

What's up for discussion:

  • Codecamp recap and feedback.
  • Teched thoughts & feedback.
  • The OpenXML debate.
  • Repository Factory from P&P
  • Workflow foundation (anyone using it?)


And of course anything else people would like to discuss... just leave a comment, or flick me an email.
Read More

Architecture Chat 13 (or is 14?)

The Sylvia Park Architecture chat was today, bit slow to start with, but not a bad turn out with 9 of us in the end.

First some stats:






Number of people presenting at teched 1 (Alex James)
Number of people going to teched 3
Number of people going to codecamp 7'ish

First off I asked the question, should you open source software that is key to your business, sparked by a recent conversation with and old business partner who's been considering open sourcing the product I helped develop for him - mostly because the business makes money for deploying/consulting/configuring the software more so then licensing it, and the remote chance of other people using/promoting etc. the product couldn't hurt the companies profile.

This sparked a bit of a debate, and certainly a few of the people developing products in the group had some opinions.

  • It's not a matter of make the source available and they will come, you need to actively construct a community around your product.
  • You need to make all the communications for the project visible.
  • If you cannot communicate the vision for your product clearly, you'll never get traction with the community.
  • By and large you’re better off focusing on making money, there's a long lead time before OSS projects gain traction.


 

We then moved onto something a little more hands-on, talking a bit about Rhino ETL - I ran through my experience so far (personally I'm liking it a lot) and the feedback from others was that SSIS does about 98% of what you need, with the customization work required for the other 2% taking as long as the rest of the project!  I could see RhinoETL being a great little swiss army knife for a lot of data-related projects in the future, especially with its target support.

Keith's question was asked, when is PeterB going to start blogging/bliki'ing... not any time soon I believe was the response, as he requires some kind of alter-ego... Along the same lines we also briefly talked about the decline in blogging, and what “good” blogs people read among all the noise that's out there today...  Technology-savy VC's came up in the conversation, such as Paul Graham (of "hackers and painters" fame).

Tagging & tagging file systems were next on the table (like Alex James's XTend which got a mention) and Peter noted that the upcoming service pack for Vista should make it a lot easier to organize data via "piles" i.e. dragging documents without an author over a pile of documents by a certain author will assign the author to the anonymous document.

The key point/concern was that these kinds of tasks must not make search operations harder i.e. Categorization should never penalize search operations.

Talked a little about BDD or Behaviour Driven Development, this struck a chord with Peter who has been doing something very similar with existing clients, though I'm not sure I articulated the Analysis side of the BDD very well - there's a nice BDD introductory post on the DanoNorth.net blog.

In my mind at least BDD is all about ubiquitous language – I see it as the central tenant of BDD, where energy and thought is put into keeping the business level parts of corporation or company in-line with the development/software/solution parts - tying it all together with a common language/vocabulary.

Digging in deeper we have some software frameworks to help with BDD testing:


Roy Osherove recently posted a nice "look" into the use of BehaveSharp too, worth a look.

On a similar note Test Driven Development cropped up, with the interesting question of just how you could "force" or "lead" someone through the process of developing test first (without just having them watch a screen-cast) ... easier said then done I think was the consensus.

Also briefly covered was Lightspeed 1.0 and the announcement of the versions/pricing came up... Some of us were intrigued by the model-based pricing structure :)

Incidentally Like the container tutorials series I did, I also index these blog entries (and some general information about the Sylvia Park chats) on my wiki.

Read More

2007-08-08 - Architecture Chat Tomorrow

Just a reminder that the Sylvia Park Architecture Chat is on tomorrow, 11:30am at Garrisons (as per usual).  I ummed 'n ahhed about doing it so close to the Dev Code Camp / Teched, but I can't see it doing any harm, worst case scenario we just have a smaller turnout.

So I'm looking/asking for topics, here's some things that have perked my interest over the last week or so:


See you there.
Read More

nDepend Refactoring Analysis...

About to run off to a meeting... so I'll make this quick.

Just read an interesting post by Donald Belcham on Refactoring Analysis with the help of nDepend... he's gone through the process of moving from .Net 1.1 to 2.0, then introducing interface based code, breaking classes apart to ensure they're enforcing the principle of single responsibility, moving to injecting dependencies, rolling his own primitive Inversion of Control container and finally employing the Castle Project's windsor container instead.

It pays to know a little bit about nDepend of course to understand the Abstractness vs Relational Cohesion figures... either take a look at the nDepend site, or maybe have a listen to the  .Net Rocks podcast earlier this year which covered the same topic.

I'm not sure the figures actually answer questions so much as they ask them ... but it's interesting to see how much impact his first two rounds of refactoring had on the results.

I wonder how the figures would've come out had he executed his refactoring in a different order...  maybe DI first, then breaking the classes up based on responsibility, IoC and then finally introducing interfaces... hmmm

Read More