Architecture Chat 18

So, another small turnout last week - but good discussions none the less, with 4 of us in total (Peter, David, Gareth and Myself).

First off we had a talk about ArchAngel, the product that Gareth has architected/written, and what it solves, and around the upcoming release of the new site, as the product moves out of beta - a lot of us have given him grief over the existing DNN site, and it should be good to see it get a face lift ;o) - Following that we talked a little about the challenges of round tripping code, and the problems with a lot of the current MDA/MDG implementations, and how ArchAngel can resolve a lot of pain associated with other code generation approaches due to the holistic approach.  It's a very exciting product and hopefully at some point a screen cast or two will be made to demonstrate the various features / advantages of the product (hint hint).

I again voiced my frustrations with SharePoint - or "swearpoint" as David coined it, I think much of my problem has been around lack of good documentation, and finding the right combination of tools for doing the job i.e. not using  VseWSS projects but instead using WSPBuilder, and getting to grips with the various nuances of deployment packages and the SharePoint 12 etc. folder structure - not the mention the diabolical and misleading exceptions you get at some points - I still haven't found a good approach of TDD'ing that works across event receivers, web parts, controls etc. that doesn't introduce a large amount of uncessary complications and abstracts just to make the untestable testable - For the next SharePoint project (if I dare touch another one) I'll definitely take the time to develop a better TDD approach, and probably buy a tool like typemock to assist with it.

I brought up the  ASP.Net MVC framework - with the latest wave of information
coming after the ALT.Net conference where Scott Guthrie did a  presentation... and we discussed how it fits in with web forms, and where it leaves Monorail -based on current observations within the monorail community I believe many would consider moving across to the ASP.Net MVC platform based on what has been presented so far, though the approach and architecture is similar enough that there should be opportunities to easily shim view components etc. To work with both MVC frameworks.

After that we had some rambling discussions about Accessibility (including web browsing for the blind, designing accessible forms, x-forms, tables vs. div's for web forms and how nothing done for local/central government really conforms with their accessibility requirements, or is even tested for accessibility.

Intertwined with that conversation was the rather slow adoption of WPF (I mentioned some of the points brought up in recent panel discussion that was on .Net Rocks!), WPF & Silverlight control suites and the power of filters and binding, also include in that discussion I briefly mentioned that I'd been working on building a web based workflow designer application using the OpenJacob library (the draw2d javascript library to precise) and Monorail with some success, but would like an off-the-shelf WPF or better yet Silver light toolkit to do the same job.

Last of all we discussed Alex James's proposed question around thoughts on POCO (plain old code/c# objects) and how important it was to us (in association with ORM's / Domain Driven Design, or at least thats what we talked about).

The thoughts were basically:

  • Single inheritance makes non-POCO based Orm's a pain to work with in some cases, i.e. there's a loss of control, and accommodating some scenarios such as MarshalByRef become difficult/impossible.
  • Can often make it harder to enforce correct usage of your domain model, such as aggregates.
  • Depending on the ORM, non-POCO objects are harder to test with in a disconnected manor.


On the flip side:
  • Incorporating concepts like current/previous value can be more natural.
  • Performance / ease of development for the ORM can be simplified when not accommodating POCO. You generally need to rely on proxying and virtual methods to make POCO possible, this can introduce additional complexity and
  • small performance hits both on startup and at run-time (not generally that noticeable).


I also took the opportunity to once again mention PostSharp - which I've been using to prototype methods for removing a lot of the repetitive or ugly plumbing code that developers often have to write when developing non-POCO entities.

Oh, and sorry about the late write up! .. Things have been a bit crazy lately and I've been hard pushed to find the time to post this till now, I'll do better with the next chat and try and get that writen up in a more timely manor (a 1 to 2 day turn-around).

Last of all - our next chat is Thursday this week - hopefully we can push our numbers back up to 6 or 8 and catch up with some of the other regulars who haven't been able to make it over the last month and half - and as usual, if you have any topic suggestions, just drop me a comment/email etc. and I'll bring it up at the next chat.

Read More

Architecture Chat 18 Tomorrow





Yes - it's that time again, with another Architecture
chat
tomorrow, 11:30am at the Sylvia Park in Auckland (at
Garrisons
).



As always, bring along your thoughts and discussions, in the mean
time I thought I would list some possible topics for
discussion.

  • ASP.Net MVC.
  • ALT.Net.

  • AOP - Policy Injection / Dynamic Proxies / PostSharp etc.
  • Testing  & TDD combined with Products like
    SharePoint.
  • SharePoint deployment.
  • Source code available for .Net libraries available.

See you all there tomorrow!



 - Alex
Read More

Architecture Chat 17

Sorry about the much belated write-up for the last Architecture Chat, been rushed off my feet of late, though a whole week's gone by now ... so the only real excuse could be that I've been a slack bastid.

So, first off... terrible turn out, with only myself and an envoy from Intergen turning up - hopefully not a sign of things to come (small numbers that is, not the intergen guys ;o) and also hopefully not something to put off the Intergen guys from making the trip out this way again (though I suspect Kurt would do it just to get Mexican) - Not to mention Peter losing out on some vital opportunities to introduce Wiki-love to some new comers!

So, as opposed to the usual mixed bag of discussions we focused largely on what tooling and practices Intergen Auckland use (and by comparison myself) - internally it sounds like they have a big drive towards

  • "All sorts of testing"
  • Continuous Integration / Build Servers

So we covered continuous integration (CC.Net) ... make tools i.e. Nant, which has adoption within Intergen, and MSBuild which I use (mostly because I swapped over during the first beta of VS2005, prior to Nant having support for the Framework 2.0, and never moved back) - the key observation was that MSBuild just seems to have very unintuitive syntax - i.e. a Nant build scripts reads a lot more like plain English then a MSBuild equivalent.  I asked if anyone had tried TeamCity, which they had, but without much success (much like my own experience).

Installers were next on the agenda - I'm a big supporter of WiX, though the feeling from  some of the guys at Intergen (and I think many people out in the wild) is that getting a WiX installer off the ground was a cumbersome experience, but on the flip side the "setup" project isn't as friendly when it comes to continuous  integration or support concurrent development (merging setup projects, ugh!) - I expressed my views on the fact that WiX is a hell of a lot easier to maintain once it's in place (i.e. figuring out changes other developers have made), and that making use of tools like Heat that come with WiX can accelerate your development effort quite a lot - Once you have a couple of reference projects with WiX installers it's very easy to rinse and repeat for new projects, or perhaps keep a library of wix templates on a wiki ;o)

Source control cropped up - I use Subversion - From what was mentioned Intergen are using Team System, though TFS does plenty of things SVN does not (Merge history and light-weight labeling appeal to me) - the lack of a good "off line" story still annoyed everyone at the table - maybe once SVN Bridge is half way stable, this won't be such a problem..?

That lead into issue tracking and bug management - where I generally use Trac, though for some clients I'm migrating to Jira (Trac comes across as "to simple" to clients for some reason, especially to dedicated testers, but I'm still a little puzzled as to why, perhaps they just don't get the "wiki" side of things?)

Mingle also came up in conversation - which is a product I'd never taken a look at - after a quick look around the site it looks pretty cool, especially with the source control aspect, I will definitely need to explore it further, though even something with about 80% of its  features as a Trac plug-in would suite my needs ... any readers out there using mingle who can offer an opinion?


I also brought up the news of the  framework code being made available - I'm not really sure it registered, or perhaps there just wasn't a need (we've all got so used to using reflector) ... though at the moment I'd rather have the SharePoint source code then the framework (especially considering parts of the sharepoint framework are obfuscated).

Hopefully next week we'll be back on track for next Thursday with a few of the regulars, or if Thursday is turning into a "bad day" for everyone then perhaps we need to mix it up a little.

See you all there!

Read More

Architecture Chat 17 Tomorrow...

Just a quick announcement.

The Architecture chat is tomorrow, 11:30am at the usual spot... some possible topics for discussion.

  • AOP - Who's doing it day to day, and what tools are available out there for it, partly sparked by my belated look at PostSharp.
  • Sharepoint - yes I'm still on it, and unlike Peter Jones I'm still not loving it all that much (though I don't have the luxuary of MOSS and it's additional features).
  • MonoDevelop is finally in beta - Mono is looking more and more attractive as an alternative, but I'm still unsure I could survive without resharper.
  • Windows 2008 RC is out & Vista SP1 (for select people) - anyone played with them yet?


If anyone else has any topic suggestions then let me know, otherwise it'll just be an open discussion - much like every other time :)

See you there!

Read More