"Who Can Help Me?" - a new Sharp Architecture / AutoMapper / Spark View Engine sample application

103 views
Skip to first unread message

Howard van Rooijen

unread,
Dec 21, 2009, 6:09:15 PM12/21/09
to sharp-arc...@googlegroups.com, spar...@googlegroups.com, automapp...@googlegroups.com
Hello,

A few months ago I wrote an email to the community about a site we had just launched – http://fancydressoutfitters.co.uk that used S#arp Architecture at its core along with a whole myriad of other Open Source Frameworks and Tools (Spark, AutoMapper, PostSharp, xVal...).  

In the run up to the festive period, myself and two of the development team – Jonathan George & James Broome, decided that in the spirit of giving, we wanted to gift something back to the communities that gave so much to us throughout the year; so we decided to build a new sample web application to showcase the use of these various frameworks & tools called “Who Can Help Me?” which is based on the same architectural style as http://fancydressoutfitters.co.uk

Who Can Help Me? started out as a small web application I built a few years ago to solve a small and specific business problem within our consulting organisation (and to test out .NET 3.5, LINQ to SQL, ASP.NET WebForms & MS AJAX!). The problem was, that as the organisation grew and new members of staff started, they found it difficult to find the right people who could help them solve specific problems they’d encounter in their consulting gigs. As I have worked for the organisation for a long time (>9 years) I generally knew everyone, had worked with most of them and knew what their areas of expertise were, thus I’d get a few calls every day asking “Do you know anyone who knows about X that could help me?”. The solution was to create a searchable skills matrix that would allow people within an organisation find other people who had specific skills or expertise who could help them solve a particular problem.

So Jonathan, James & I decided to re-write the Who Can Help Me? from scratch, using the architecture style, frameworks and tools we used to build http://fancydressoutfitters.co.uk - it might seem like we've massively over-complicated the architecture for such a simple application - but we really wanted this to demonstrate some of the concepts & techniques we used to build a full scale, public facing enterprise web application. 

Who Can Help Me? utilises the following:

# Sharp Architecture
    * ASP.NET MVC
    * ASP.NET MVC Contrib
    * NHibernate
    * Fluent NHibernate
    * Castle Windsor
# AutoMapper
# Configuration Section Designer
# DotNetOpenAuth
# ELMAH
# Less CSS for .NET
# Machine.Specifications (MSpec) BDD Framework
# MEF
# PostSharp
# RhinoMocks
# Spark View Engine
# TweetSharp
# xVal Validation Framework  

The project is currently hosted at Codeplex: http://whocanhelpme.codeplex.com/ and we’ve also released a live demo: http://who-can-help.me

We’ve added some documentation on the Codeplex homepage and will continue to refine this and augment it with blog posts covering some topics in more depth – so if you’re interested – please keep an eye on the following blogs / twitter:


I've also attached a MSpec report of the BDD specs we've written for the application.

If you want to spread the word about Who Can Help Me? or provide us with feedback / suggestion via Twitter, please use the #wchm hashtag.

I hope the community finds this sample application useful, we hope to refine it some more over the coming months.

Many thanks & Happy Holidays!

/Howard
who-can-help-me-bdd-specs.html

Billy

unread,
Dec 21, 2009, 7:04:10 PM12/21/09
to S#arp Architecture
Wow! This contribution will be of tremendous value...I really can't
thank you enough for making this available to the community! I'm
looking forward to digging into the code over the holidays and
announcing it's availability to a wider audience as well.

Billy McCafferty


On Dec 21, 4:09 pm, Howard van Rooijen <howard.vanrooi...@gmail.com>
wrote:


> Hello,
>
> A few months ago I wrote an email to the community about a site we had just

> launched –http://fancydressoutfitters.co.ukthat used S#arp Architecture at


> its core along with a whole myriad of other Open Source Frameworks and Tools
> (Spark, AutoMapper, PostSharp, xVal...).
>
> In the run up to the festive period, myself and two of the development team
> – Jonathan George & James Broome, decided that in the spirit of giving, we
> wanted to gift something back to the communities that gave so much to us
> throughout the year; so we decided to build a new sample web application to
> showcase the use of these various frameworks & tools called “Who Can Help

> Me?” which is based on the same architectural style ashttp://fancydressoutfitters.co.uk.


>
> Who Can Help Me? started out as a small web application I built a few years
> ago to solve a small and specific business problem within our consulting
> organisation (and to test out .NET 3.5, LINQ to SQL, ASP.NET WebForms & MS
> AJAX!). The problem was, that as the organisation grew and new members of
> staff started, they found it difficult to find the right people who could
> help them solve specific problems they’d encounter in their consulting gigs.
> As I have worked for the organisation for a long time (>9 years) I generally
> knew everyone, had worked with most of them and knew what their areas of
> expertise were, thus I’d get a few calls every day asking “Do you know
> anyone who knows about X that could help me?”. The solution was to create a
> searchable skills matrix that would allow people within an organisation find
> other people who had specific skills or expertise who could help them solve
> a particular problem.
>
> So Jonathan, James & I decided to re-write the Who Can Help Me? from
> scratch, using the architecture style, frameworks and tools we used to

> buildhttp://fancydressoutfitters.co.uk- it might seem like we've massively


> over-complicated the architecture for such a simple application - but we
> really wanted this to demonstrate some of the concepts & techniques we used
> to build a full scale, public facing enterprise web application.
>
> Who Can Help Me? utilises the following:
>
> # Sharp Architecture
>     * ASP.NET MVC
>     * ASP.NET MVC Contrib
>     * NHibernate
>     * Fluent NHibernate
>     * Castle Windsor
> # AutoMapper
> # Configuration Section Designer
> # DotNetOpenAuth
> # ELMAH
> # Less CSS for .NET
> # Machine.Specifications (MSpec) BDD Framework
> # MEF
> # PostSharp
> # RhinoMocks
> # Spark View Engine
> # TweetSharp
> # xVal Validation Framework
>

> The project is currently hosted at Codeplex:http://whocanhelpme.codeplex.com/and we’ve also released a live demo:http://who-can-help.me


>
> We’ve added some documentation on the Codeplex homepage and will continue to
> refine this and augment it with blog posts covering some topics in more
> depth – so if you’re interested – please keep an eye on the following blogs
> / twitter:
>

> http://howard.vanrooijen.co.uk/blog/| @HowardvRooijenhttp://jonathangeorge.co.uk/| @jon_george1http://jamesbroo.me/| @broomej


>
> I've also attached a MSpec report of the BDD specs we've written for the
> application.
>
> If you want to spread the word about Who Can Help Me? or provide us with
> feedback / suggestion via Twitter, please use the #wchm hashtag.
>
> I hope the community finds this sample application useful, we hope to refine
> it some more over the coming months.
>
> Many thanks & Happy Holidays!
>
> /Howard
>

>  who-can-help-me-bdd-specs.html
> 32KViewDownload

parnar

unread,
Dec 22, 2009, 12:03:51 AM12/22/09
to S#arp Architecture
wowo! i've been looking for real examples to learn new things
thank you!

On Dec 22, 2:04 am, Billy <wmccaffe...@gmail.com> wrote:
> Wow!  This contribution will be of tremendous value...I really can't
> thank you enough for making this available to the community!  I'm
> looking forward to digging into the code over the holidays and
> announcing it's availability to a wider audience as well.
>
> Billy McCafferty
>
> On Dec 21, 4:09 pm, Howard van Rooijen <howard.vanrooi...@gmail.com>
> wrote:
>
> > Hello,
>
> > A few months ago I wrote an email to the community about a site we had just

> > launched –http://fancydressoutfitters.co.ukthatused S#arp Architecture at


> > its core along with a whole myriad of other Open Source Frameworks and Tools
> > (Spark, AutoMapper, PostSharp, xVal...).
>
> > In the run up to the festive period, myself and two of the development team
> > – Jonathan George & James Broome, decided that in the spirit of giving, we
> > wanted to gift something back to the communities that gave so much to us
> > throughout the year; so we decided to build a new sample web application to
> > showcase the use of these various frameworks & tools called “Who Can Help
> > Me?” which is based on the same architectural style ashttp://fancydressoutfitters.co.uk.
>
> > Who Can Help Me? started out as a small web application I built a few years
> > ago to solve a small and specific business problem within our consulting
> > organisation (and to test out .NET 3.5, LINQ to SQL, ASP.NET WebForms & MS
> > AJAX!). The problem was, that as the organisation grew and new members of
> > staff started, they found it difficult to find the right people who could
> > help them solve specific problems they’d encounter in their consulting gigs.
> > As I have worked for the organisation for a long time (>9 years) I generally
> > knew everyone, had worked with most of them and knew what their areas of
> > expertise were, thus I’d get a few calls every day asking “Do you know
> > anyone who knows about X that could help me?”. The solution was to create a
> > searchable skills matrix that would allow people within an organisation find
> > other people who had specific skills or expertise who could help them solve
> > a particular problem.
>
> > So Jonathan, James & I decided to re-write the Who Can Help Me? from
> > scratch, using the architecture style, frameworks and tools we used to

> > buildhttp://fancydressoutfitters.co.uk-it might seem like we've massively


> > over-complicated the architecture for such a simple application - but we
> > really wanted this to demonstrate some of the concepts & techniques we used
> > to build a full scale, public facing enterprise web application.
>
> > Who Can Help Me? utilises the following:
>
> > # Sharp Architecture
> >     * ASP.NET MVC
> >     * ASP.NET MVC Contrib
> >     * NHibernate
> >     * Fluent NHibernate
> >     * Castle Windsor
> > # AutoMapper
> > # Configuration Section Designer
> > # DotNetOpenAuth
> > # ELMAH
> > # Less CSS for .NET
> > # Machine.Specifications (MSpec) BDD Framework
> > # MEF
> > # PostSharp
> > # RhinoMocks
> > # Spark View Engine
> > # TweetSharp
> > # xVal Validation Framework
>

> > The project is currently hosted at Codeplex:http://whocanhelpme.codeplex.com/andwe’ve also released a live demo:http://who-can-help.me

curlyfro

unread,
Dec 22, 2009, 10:31:26 AM12/22/09
to S#arp Architecture
there's lots of great stuff here -- thanks!

On Dec 22, 12:03 am, parnar <par...@gmail.com> wrote:
> wowo! i've been looking for real examples to learn new things
> thank you!
>
> On Dec 22, 2:04 am, Billy <wmccaffe...@gmail.com> wrote:
>
> > Wow!  This contribution will be of tremendous value...I really can't
> > thank you enough for making this available to the community!  I'm
> > looking forward to digging into the code over the holidays and
> > announcing it's availability to a wider audience as well.
>
> > Billy McCafferty
>
> > On Dec 21, 4:09 pm, Howard van Rooijen <howard.vanrooi...@gmail.com>
> > wrote:
>
> > > Hello,
>
> > > A few months ago I wrote an email to the community about a site we had just

> > > launched –http://fancydressoutfitters.co.ukthatusedS#arp Architecture at


> > > its core along with a whole myriad of other Open Source Frameworks and Tools
> > > (Spark, AutoMapper, PostSharp, xVal...).
>
> > > In the run up to the festive period, myself and two of the development team
> > > – Jonathan George & James Broome, decided that in the spirit of giving, we
> > > wanted to gift something back to the communities that gave so much to us
> > > throughout the year; so we decided to build a new sample web application to
> > > showcase the use of these various frameworks & tools called “Who Can Help
> > > Me?” which is based on the same architectural style ashttp://fancydressoutfitters.co.uk.
>
> > > Who Can Help Me? started out as a small web application I built a few years
> > > ago to solve a small and specific business problem within our consulting
> > > organisation (and to test out .NET 3.5, LINQ to SQL, ASP.NET WebForms & MS
> > > AJAX!). The problem was, that as the organisation grew and new members of
> > > staff started, they found it difficult to find the right people who could
> > > help them solve specific problems they’d encounter in their consulting gigs.
> > > As I have worked for the organisation for a long time (>9 years) I generally
> > > knew everyone, had worked with most of them and knew what their areas of
> > > expertise were, thus I’d get a few calls every day asking “Do you know
> > > anyone who knows about X that could help me?”. The solution was to create a
> > > searchable skills matrix that would allow people within an organisation find
> > > other people who had specific skills or expertise who could help them solve
> > > a particular problem.
>
> > > So Jonathan, James & I decided to re-write the Who Can Help Me? from
> > > scratch, using the architecture style, frameworks and tools we used to

> > > buildhttp://fancydressoutfitters.co.uk-itmight seem like we've massively

Chris F

unread,
Dec 22, 2009, 10:35:33 AM12/22/09
to S#arp Architecture
Wow,

This is pretty impressive. Thanks a lot for taking the initiative. I
will definitely try to find some free time in January to dig through
this and learn how a proper team uses S# and other techs to build a
solid web app.

Cheers,
- Chris

On Dec 22, 10:31 am, curlyfro <tyaugustin...@gmail.com> wrote:
> there's lots of great stuff here -- thanks!
>
> On Dec 22, 12:03 am, parnar <par...@gmail.com> wrote:
>
> > wowo! i've been looking for real examples to learn new things
> > thank you!
>
> > On Dec 22, 2:04 am, Billy <wmccaffe...@gmail.com> wrote:
>
> > > Wow!  This contribution will be of tremendous value...I really can't
> > > thank you enough for making this available to the community!  I'm
> > > looking forward to digging into the code over the holidays and
> > > announcing it's availability to a wider audience as well.
>
> > > Billy McCafferty
>
> > > On Dec 21, 4:09 pm, Howard van Rooijen <howard.vanrooi...@gmail.com>
> > > wrote:
>
> > > > Hello,
>
> > > > A few months ago I wrote an email to the community about a site we had just

> > > > launched –http://fancydressoutfitters.co.ukthatusedS#arpArchitecture at


> > > > its core along with a whole myriad of other Open Source Frameworks and Tools
> > > > (Spark, AutoMapper, PostSharp, xVal...).
>
> > > > In the run up to the festive period, myself and two of the development team
> > > > – Jonathan George & James Broome, decided that in the spirit of giving, we
> > > > wanted to gift something back to the communities that gave so much to us
> > > > throughout the year; so we decided to build a new sample web application to
> > > > showcase the use of these various frameworks & tools called “Who Can Help
> > > > Me?” which is based on the same architectural style ashttp://fancydressoutfitters.co.uk.
>
> > > > Who Can Help Me? started out as a small web application I built a few years
> > > > ago to solve a small and specific business problem within our consulting
> > > > organisation (and to test out .NET 3.5, LINQ to SQL, ASP.NET WebForms & MS
> > > > AJAX!). The problem was, that as the organisation grew and new members of
> > > > staff started, they found it difficult to find the right people who could
> > > > help them solve specific problems they’d encounter in their consulting gigs.
> > > > As I have worked for the organisation for a long time (>9 years) I generally
> > > > knew everyone, had worked with most of them and knew what their areas of
> > > > expertise were, thus I’d get a few calls every day asking “Do you know
> > > > anyone who knows about X that could help me?”. The solution was to create a
> > > > searchable skills matrix that would allow people within an organisation find
> > > > other people who had specific skills or expertise who could help them solve
> > > > a particular problem.
>
> > > > So Jonathan, James & I decided to re-write the Who Can Help Me? from
> > > > scratch, using the architecture style, frameworks and tools we used to

> > > > buildhttp://fancydressoutfitters.co.uk-itmightseem like we've massively

Alec Whittington

unread,
Dec 22, 2009, 10:59:15 AM12/22/09
to sharp-arc...@googlegroups.com
Howard,
    thank you for this tremendous contribution. Your help on the list has always been invaluable and this just makes it that much more invaluable. 

Cheers,
Alec Whittington




--

You received this message because you are subscribed to the Google Groups "S#arp Architecture" group.
To post to this group, send email to sharp-arc...@googlegroups.com.
To unsubscribe from this group, send email to sharp-architect...@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/sharp-architecture?hl=en.

Chris Nicola

unread,
Dec 22, 2009, 12:48:43 PM12/22/09
to sharp-arc...@googlegroups.com
Having started looking through it already I would like to recommend considering the LinqRepository in WCHM be included in #A or at least part of contrib.

Thanks,
Chris

Gamay

unread,
Dec 26, 2009, 11:17:01 PM12/26/09
to S#arp Architecture
This is great! Thank you very much!

What about comments? Have you commented sources?
It would be very nice )))

On 22 дек, 02:09, Howard van Rooijen <howard.vanrooi...@gmail.com>
wrote:


> Hello,
>
> A few months ago I wrote an email to the community about a site we had just

> launched -http://fancydressoutfitters.co.ukthat used S#arp Architecture at


> its core along with a whole myriad of other Open Source Frameworks and Tools
> (Spark, AutoMapper, PostSharp, xVal...).
>
> In the run up to the festive period, myself and two of the development team

> - Jonathan George & James Broome, decided that in the spirit of giving, we


> wanted to gift something back to the communities that gave so much to us
> throughout the year; so we decided to build a new sample web application to
> showcase the use of these various frameworks & tools called "Who Can Help

> Me?" which is based on the same architectural style ashttp://fancydressoutfitters.co.uk.


>
> Who Can Help Me? started out as a small web application I built a few years
> ago to solve a small and specific business problem within our consulting
> organisation (and to test out .NET 3.5, LINQ to SQL, ASP.NET WebForms & MS
> AJAX!). The problem was, that as the organisation grew and new members of
> staff started, they found it difficult to find the right people who could
> help them solve specific problems they'd encounter in their consulting gigs.
> As I have worked for the organisation for a long time (>9 years) I generally
> knew everyone, had worked with most of them and knew what their areas of
> expertise were, thus I'd get a few calls every day asking "Do you know
> anyone who knows about X that could help me?". The solution was to create a
> searchable skills matrix that would allow people within an organisation find
> other people who had specific skills or expertise who could help them solve
> a particular problem.
>
> So Jonathan, James & I decided to re-write the Who Can Help Me? from
> scratch, using the architecture style, frameworks and tools we used to

> buildhttp://fancydressoutfitters.co.uk- it might seem like we've massively


> over-complicated the architecture for such a simple application - but we
> really wanted this to demonstrate some of the concepts & techniques we used
> to build a full scale, public facing enterprise web application.
>
> Who Can Help Me? utilises the following:
>
> # Sharp Architecture
> * ASP.NET MVC
> * ASP.NET MVC Contrib
> * NHibernate
> * Fluent NHibernate
> * Castle Windsor
> # AutoMapper
> # Configuration Section Designer
> # DotNetOpenAuth
> # ELMAH
> # Less CSS for .NET
> # Machine.Specifications (MSpec) BDD Framework
> # MEF
> # PostSharp
> # RhinoMocks
> # Spark View Engine
> # TweetSharp
> # xVal Validation Framework
>

> The project is currently hosted at Codeplex:http://whocanhelpme.codeplex.com/and we've also released a live demo:http://who-can-help.me


>
> We've added some documentation on the Codeplex homepage and will continue to
> refine this and augment it with blog posts covering some topics in more

> depth - so if you're interested - please keep an eye on the following blogs
> / twitter:
>
> http://howard.vanrooijen.co.uk/blog/| @HowardvRooijenhttp://jonathangeorge.co.uk/| @jon_george1http://jamesbroo.me/| @broomej


>
> I've also attached a MSpec report of the BDD specs we've written for the
> application.
>
> If you want to spread the word about Who Can Help Me? or provide us with
> feedback / suggestion via Twitter, please use the #wchm hashtag.
>
> I hope the community finds this sample application useful, we hope to refine
> it some more over the coming months.
>
> Many thanks & Happy Holidays!
>
> /Howard
>

> who-can-help-me-bdd-specs.html
> 32KПросмотретьЗагрузить

Howard van Rooijen

unread,
Dec 27, 2009, 6:31:41 AM12/27/09
to sharp-arc...@googlegroups.com
Hello,

We've not written huge amounts of comments - only really in the places we felt things needed explaining - as most of the classes are quite small and simple (Single Responsibility Principal) - but if anyone has any areas they would like us to add more comments to - can you please highlight and we'll do our best to fill them in.

The same goes for blog posts - we want to try and deep dive into some of the different areas - but it might be more useful if people suggest the areas they want covered - so if you have any requests - please post them here.

regards,

Howard

2009/12/27 Gamay <gamsi...@gmail.com>

Gamay

unread,
Dec 27, 2009, 9:15:33 PM12/27/09
to S#arp Architecture
I mean that I need comments of the business logic.
And which is the most important I really need the tutorial-like
description of how this project was created, if it's possible: what
comes first, what second etc...

It would be great! ))


On 27 дек, 14:31, Howard van Rooijen <howard.vanrooi...@gmail.com>
wrote:


> Hello,
>
> We've not written huge amounts of comments - only really in the places we
> felt things needed explaining - as most of the classes are quite small and
> simple (Single Responsibility Principal) - but if anyone has any areas they
> would like us to add more comments to - can you please highlight and we'll
> do our best to fill them in.
>
> The same goes for blog posts - we want to try and deep dive into some of the
> different areas - but it might be more useful if people suggest the areas
> they want covered - so if you have any requests - please post them here.
>
> regards,
>
> Howard
>

> 2009/12/27 Gamay <gamsiga...@gmail.com>

curlyfro

unread,
Dec 29, 2009, 9:59:02 AM12/29/09
to S#arp Architecture
it'd be nice if there was a basic template... :)

Ingo

unread,
Jan 4, 2010, 3:08:15 AM1/4/10
to S#arp Architecture
Thanks for this amazing contribution. I learned a lot going through
the code.

I have a question about the Spark View Engine. Is there a way to get
the design view in Visual Studio to work with the .spark files? I
haven't found anything when I googled it. If not, how do you and your
team get WYSIWYG when developing the user interface?

Thanks!
/Ingo

On Dec 22 2009, 12:09 am, Howard van Rooijen


<howard.vanrooi...@gmail.com> wrote:
> Hello,
>
> A few months ago I wrote an email to the community about a site we had just

> launched –http://fancydressoutfitters.co.ukthat used S#arp Architecture at


> its core along with a whole myriad of other Open Source Frameworks and Tools
> (Spark, AutoMapper, PostSharp, xVal...).
>
> In the run up to the festive period, myself and two of the development team
> – Jonathan George & James Broome, decided that in the spirit of giving, we
> wanted to gift something back to the communities that gave so much to us
> throughout the year; so we decided to build a new sample web application to
> showcase the use of these various frameworks & tools called “Who Can Help

> Me?” which is based on the same architectural style ashttp://fancydressoutfitters.co.uk.


>
> Who Can Help Me? started out as a small web application I built a few years
> ago to solve a small and specific business problem within our consulting
> organisation (and to test out .NET 3.5, LINQ to SQL, ASP.NET WebForms & MS
> AJAX!). The problem was, that as the organisation grew and new members of
> staff started, they found it difficult to find the right people who could
> help them solve specific problems they’d encounter in their consulting gigs.
> As I have worked for the organisation for a long time (>9 years) I generally
> knew everyone, had worked with most of them and knew what their areas of
> expertise were, thus I’d get a few calls every day asking “Do you know
> anyone who knows about X that could help me?”. The solution was to create a
> searchable skills matrix that would allow people within an organisation find
> other people who had specific skills or expertise who could help them solve
> a particular problem.
>
> So Jonathan, James & I decided to re-write the Who Can Help Me? from
> scratch, using the architecture style, frameworks and tools we used to

> buildhttp://fancydressoutfitters.co.uk- it might seem like we've massively


> over-complicated the architecture for such a simple application - but we
> really wanted this to demonstrate some of the concepts & techniques we used
> to build a full scale, public facing enterprise web application.
>
> Who Can Help Me? utilises the following:
>
> # Sharp Architecture
>     * ASP.NET MVC
>     * ASP.NET MVC Contrib
>     * NHibernate
>     * Fluent NHibernate
>     * Castle Windsor
> # AutoMapper
> # Configuration Section Designer
> # DotNetOpenAuth
> # ELMAH
> # Less CSS for .NET
> # Machine.Specifications (MSpec) BDD Framework
> # MEF
> # PostSharp
> # RhinoMocks
> # Spark View Engine
> # TweetSharp
> # xVal Validation Framework
>

> The project is currently hosted at Codeplex:http://whocanhelpme.codeplex.com/and we’ve also released a live demo:http://who-can-help.me


>
> We’ve added some documentation on the Codeplex homepage and will continue to
> refine this and augment it with blog posts covering some topics in more
> depth – so if you’re interested – please keep an eye on the following blogs
> / twitter:
>

> http://howard.vanrooijen.co.uk/blog/| @HowardvRooijenhttp://jonathangeorge.co.uk/| @jon_george1http://jamesbroo.me/| @broomej


>
> I've also attached a MSpec report of the BDD specs we've written for the
> application.
>
> If you want to spread the word about Who Can Help Me? or provide us with
> feedback / suggestion via Twitter, please use the #wchm hashtag.
>
> I hope the community finds this sample application useful, we hope to refine
> it some more over the coming months.
>
> Many thanks & Happy Holidays!
>
> /Howard
>

>  who-can-help-me-bdd-specs.html
> 32KViewDownload

Howard van Rooijen

unread,
Jan 4, 2010, 10:03:25 AM1/4/10
to sharp-arc...@googlegroups.com
Thanks!

AFAIK there isn't any WYSIWYG support for spark. There is some intellisense, but it's a bit flaky. 

In the 6 months we used it - we never needed (or missed it). FireFox and FireBug were all the tools we really needed.

/Howard

MrTea

unread,
Jan 5, 2010, 5:19:28 AM1/5/10
to S#arp Architecture
Great work, this project looks really useful as a reference project
for S#arp Architecture and general good practice.

One thing that stands out to me is in the domain layer, where in
addition to the usual entities, there are "value objects" which
actually seem to be more akin to "commands" e.g.
"CreateProfileDetails".

I'd be interested in reading more about your approach to this. It
seems to me that a decision was taken to explicitly represent certain
actions (another is "AddAssertionDetails") as specific domain objects,
which are eventually mapped to entities (in the tasks layer).

I have wrestled with issues around mapping "form view models" to
single entities before now (it quickly becomes very complicated) and
this looks like a convenience object to make this mapping easier with
a kind of intermediate object (which is promoted to the domain layer
e.g."CreateProfileDetails").

Regards
Jon

)On Jan 4, 3:03 pm, Howard van Rooijen <howard.vanrooi...@gmail.com>
wrote:


> Thanks!
>
> AFAIK there isn't any WYSIWYG support for spark. There is some intellisense,
> but it's a bit flaky.
>
> In the 6 months we used it - we never needed (or missed it). FireFox and
> FireBug were all the tools we really needed.
>
> /Howard
>
>
>
> On Mon, Jan 4, 2010 at 8:08 AM, Ingo <ingemar.strandb...@gmail.com> wrote:
> > Thanks for this amazing contribution. I learned a lot going through
> > the code.
>
> > I have a question about the Spark View Engine. Is there a way to get
> > the design view in Visual Studio to work with the .spark files? I
> > haven't found anything when I googled it. If not, how do you and your
> > team get WYSIWYG when developing the user interface?
>
> > Thanks!
> > /Ingo
>
> > On Dec 22 2009, 12:09 am, Howard van Rooijen
> > <howard.vanrooi...@gmail.com> wrote:
> > > Hello,
>
> > > A few months ago I wrote an email to the community about a site we had
> > just

> > > launched –http://fancydressoutfitters.co.ukthatused S#arp Architecture

> > > buildhttp://fancydressoutfitters.co.uk-it might seem like we've

> >http://whocanhelpme.codeplex.com/andwe’ve also released a live demo:

> > sharp-architect...@googlegroups.com<sharp-architecture%2Bunsubs cr...@googlegroups.com>

Martin

unread,
Jan 6, 2010, 2:53:27 PM1/6/10
to S#arp Architecture
Hi Howard, Jon, James,

Thank you very much for your community contribution.

Over the past week and a half I've been diving into the code, and I
love what I see. There are a lot of great practices that you've
implemented.

I like it so much that I've began to adapt my current production app
according to WCHM.

Hopefully when Billy reviews it we can get an idea of whether this can
get an "official" blessing as a sample app.

Among some discussion points, I would be interested in more details on
your handling of the Model - the generic Linq Repository pattern, the
Specification query pattern, and (as MrTea mentions above) the
"command DTO" setup being used.

Should discussion on WCHM take place on this SA mailing list, or on
the Codeplex project page? (And have you considered switching to
GitHub? :P )

Thanks again for the awesome work, and please keep it coming!

Best regards,

Martin

On Dec 21 2009, 3:09 pm, Howard van Rooijen


<howard.vanrooi...@gmail.com> wrote:
> Hello,
>
> A few months ago I wrote an email to the community about a site we had just

> launched –http://fancydressoutfitters.co.ukthat used S#arp Architecture at


> its core along with a whole myriad of other Open Source Frameworks and Tools
> (Spark, AutoMapper, PostSharp, xVal...).
>
> In the run up to the festive period, myself and two of the development team
> – Jonathan George & James Broome, decided that in the spirit of giving, we
> wanted to gift something back to the communities that gave so much to us
> throughout the year; so we decided to build a new sample web application to
> showcase the use of these various frameworks & tools called “Who Can Help

> Me?” which is based on the same architectural style ashttp://fancydressoutfitters.co.uk.


>
> Who Can Help Me? started out as a small web application I built a few years
> ago to solve a small and specific business problem within our consulting
> organisation (and to test out .NET 3.5, LINQ to SQL, ASP.NET WebForms & MS
> AJAX!). The problem was, that as the organisation grew and new members of
> staff started, they found it difficult to find the right people who could
> help them solve specific problems they’d encounter in their consulting gigs.
> As I have worked for the organisation for a long time (>9 years) I generally
> knew everyone, had worked with most of them and knew what their areas of
> expertise were, thus I’d get a few calls every day asking “Do you know
> anyone who knows about X that could help me?”. The solution was to create a
> searchable skills matrix that would allow people within an organisation find
> other people who had specific skills or expertise who could help them solve
> a particular problem.
>
> So Jonathan, James & I decided to re-write the Who Can Help Me? from
> scratch, using the architecture style, frameworks and tools we used to

> buildhttp://fancydressoutfitters.co.uk- it might seem like we've massively


> over-complicated the architecture for such a simple application - but we
> really wanted this to demonstrate some of the concepts & techniques we used
> to build a full scale, public facing enterprise web application.
>
> Who Can Help Me? utilises the following:
>
> # Sharp Architecture
>     * ASP.NET MVC
>     * ASP.NET MVC Contrib
>     * NHibernate
>     * Fluent NHibernate
>     * Castle Windsor
> # AutoMapper
> # Configuration Section Designer
> # DotNetOpenAuth
> # ELMAH
> # Less CSS for .NET
> # Machine.Specifications (MSpec) BDD Framework
> # MEF
> # PostSharp
> # RhinoMocks
> # Spark View Engine
> # TweetSharp
> # xVal Validation Framework
>

> The project is currently hosted at Codeplex:http://whocanhelpme.codeplex.com/and we’ve also released a live demo:http://who-can-help.me


>
> We’ve added some documentation on the Codeplex homepage and will continue to
> refine this and augment it with blog posts covering some topics in more
> depth – so if you’re interested – please keep an eye on the following blogs
> / twitter:
>

> http://howard.vanrooijen.co.uk/blog/| @HowardvRooijenhttp://jonathangeorge.co.uk/| @jon_george1http://jamesbroo.me/| @broomej


>
> I've also attached a MSpec report of the BDD specs we've written for the
> application.
>
> If you want to spread the word about Who Can Help Me? or provide us with
> feedback / suggestion via Twitter, please use the #wchm hashtag.
>
> I hope the community finds this sample application useful, we hope to refine
> it some more over the coming months.
>
> Many thanks & Happy Holidays!
>
> /Howard
>

>  who-can-help-me-bdd-specs.html
> 32KViewDownload

Hoang Tang

unread,
Jan 6, 2010, 8:14:21 PM1/6/10
to sharp-arc...@googlegroups.com
Hi Howard, Jon, James,

What is the purpose of having an interface contract for the Mapper classes that serve as the viewmodel for the controller?

--
You received this message because you are subscribed to the Google Groups "S#arp Architecture" group.
To post to this group, send email to sharp-arc...@googlegroups.com.
To unsubscribe from this group, send email to sharp-architect...@googlegroups.com.

Martin S

unread,
Jan 6, 2010, 9:00:40 PM1/6/10
to S#arp Architecture
Hi Hoang,
If I am not mistaken, I believe the mappers are interface contracts so
that they can be registered
(Controllers.Registrars.MapperRegistrar.cs) to the Windsor container,
and thereby can have their dependencies injected/resolved.


On Jan 6, 5:14 pm, Hoang Tang <firefly4...@gmail.com> wrote:
> Hi Howard, Jon, James,
>
> What is the purpose of having an interface contract for the Mapper classes
> that serve as the viewmodel for the controller?
>

> > > launched –http://fancydressoutfitters.co.ukthatused S#arp Architecture

> > > buildhttp://fancydressoutfitters.co.uk-it might seem like we've

> >http://whocanhelpme.codeplex.com/andwe’ve also released a live demo:


> >http://who-can-help.me
>
> > > We’ve added some documentation on the Codeplex homepage and will continue
> > to
> > > refine this and augment it with blog posts covering some topics in more
> > > depth – so if you’re interested – please keep an eye on the following
> > blogs
> > > / twitter:
>

> > >http://howard.vanrooijen.co.uk/blog/|<http://howard.vanrooijen.co.uk/blog/%7C>@HowardvRooijenhttp://
> > jonathangeorge.co.uk/| <http://jonathangeorge.co.uk/%7C> @jon_george1
> >http://jamesbroo.me/|<http://jamesbroo.me/%7C> @broomej


>
> > > I've also attached a MSpec report of the BDD specs we've written for the
> > > application.
>
> > > If you want to spread the word about Who Can Help Me? or provide us with
> > > feedback / suggestion via Twitter, please use the #wchm hashtag.
>
> > > I hope the community finds this sample application useful, we hope to
> > refine
> > > it some more over the coming months.
>
> > > Many thanks & Happy Holidays!
>
> > > /Howard
>
> > >  who-can-help-me-bdd-specs.html
> > > 32KViewDownload
>
> > --
> > You received this message because you are subscribed to the Google Groups
> > "S#arp Architecture" group.
> > To post to this group, send email to sharp-arc...@googlegroups.com.
> > To unsubscribe from this group, send email to

> > sharp-architect...@googlegroups.com<sharp-architecture%2Bunsu...@googlegroups.com>

Hoang Tang

unread,
Jan 6, 2010, 9:04:04 PM1/6/10
to sharp-arc...@googlegroups.com
Hi Martin,

Couldn't we do that directly to the ViewModel class themselves?

To unsubscribe from this group, send email to sharp-architect...@googlegroups.com.

Howard van Rooijen

unread,
Jan 7, 2010, 5:28:45 AM1/7/10
to sharp-arc...@googlegroups.com
The general pattern of usage & flow within the application is as follows:

1. Map input into Domain Entities in the Controller
2. Pass Domain Entities into Task Layer to "do stuff"
3. Map output of Task Layer (Domain Entities) into ViewModel
4. Pass ViewModel to ViewEngine

The reason we added the mapping interface was formalise the Mapping Layer and make it testable. Another consideration is having a consistent architectural approach - if you're running a team with a lot of developers it's very easy for individuals to drift on a tangent and diverge from how other developers are working. Also predictability is a very important concept - from both an API discovery perspective and also from an IntelliSense / ReSharper perspective - if you want to prevent duplication then making your types easily discoverable is a very important factor.

Also mapping logic is not just relevant to the ViewModel layer - we also use it to isolate 3rd party services (in WCHM this would be the Twitter integration). You can see this from the architectural overview diagram: http://i3.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=whocanhelpme&DownloadId=97125

It's also used to map from the EditModel to domain objects that the task layer consumes.

The mapper pattern is quite simple:

public interface IMapper<TInput, TOutput>
{
    TOutput MapFrom(TInput input);
}

Next we'd implement a custom marker interface so that we could resolve the mapper from the container:

public interface ICustomMapper : IMapper<InputEntity, OutputEntity>
{
}

Then finally implement the interface:

public class CustomMapper : ICustomMapper 
{
    public CustomMapper ()
    {
        Mapper.CreateMap<InputEntity, OutputEntity>()
              .ForMember(x => x.Property, y => y.MapFrom(z => z.Property));
    }

    public OutputEntity MapFrom(InputEntity input)
    {
        return Mapper.Map<InputEntity, OutputEntity>(input);
    }
}

Then to actually use it in the MVC app:

public class CustomController : Controller
{
    private readonly ICustomMapper customMapper;

    public CustomController(ICustomMapper customMapper)
    {
        this.customMapper = customMapper;
    }

    public ActionResult Index(InputEntity inputEntity)
    {
        var outputEntity = this.customMapper.MapFrom(inputEntity);
                
        return View(outputEntity);
    }
}

We did find that it worked quite well and was one area that once an established pattern evolved - it just became the de facto way of solving that particular problem and we could spend our time trying to solve other problems.

Hope that helps,

/Howard

Howard van Rooijen

unread,
Jan 7, 2010, 5:37:33 AM1/7/10
to sharp-arc...@googlegroups.com
I don't mind where the questions are asked - the three of us monitor this group and the codeplex site.

The project did start life on GitHut, but unfortunately the company we work for has very strict firewall rules and that means we can't use GIT during working hours - so we had to adopt CodePlex because TFS works over HTTP and it was the only way the three of us could collaborate :(

The three of us covered different areas of codebase - so answers to any one question may come from three different sources!

I also pushed out an new release yesterday - as some users had reported some problems getting up and running with the application & some issues with the MEF / Castle registration - James checked in a fix and things should be a bit smoother for those who got those errors.

James is also working on improving the BDD specs - hopefully this will remove some duplication and make the specs themselves a lot leaner & easier to create. If people haven't looked at how the specs are written - I'd recommend taking a look. I've been pushing TDD adoption for the past 6 years - but it's always been an uphill struggle - but with BDD and especially MSpec (and it's ReSharper integration) it seems to be a lot more *sticky* and easier to adopt and integrate into your developer habits.

/Howard

Chris Nicola

unread,
Jan 7, 2010, 12:51:02 PM1/7/10
to sharp-arc...@googlegroups.com
Hoang, that is certainly possible, but that would violate the dependency inversion principle, also the ViewModel should be almost exclusively a data class, it is a model of the actual View (not a view of the model) and so it shouldn't have any dependencies. 

There are some other ways to handle the mappings though which I blogged about here (but I still created the interfaces so I could use the common service locator to satisfy dependencies): http://www.lucisferre.net/post/2009/12/31/Graphite-Update-The-AutoMapFilter-for-Model-e280933e-ViewModel-mapping.aspx.  I did this because I didn't want my Controllers to have too many dependencies on different mappers.  You could also use a "Task" or Service class to separate the mappers from the Controller, but that might be overkill.

I also have a GenericMapper<,> which is registered to IMapper<,> so I don't always need to write a custom mapper class/interface unless I want to customize the default AutoMapper behavior.  I believe Howard already added this to WCHM http://whocanhelpme.codeplex.com/WorkItem/View.aspx?WorkItemId=9834.

Chris

Chris Nicola

unread,
Jan 7, 2010, 12:52:53 PM1/7/10
to sharp-arc...@googlegroups.com
I have some good news then Howard! http://github.com/guides/dealing-with-firewalls-and-proxies

Looks like they added HTTP and HTTPS access recently.

James

unread,
Jan 7, 2010, 2:39:12 PM1/7/10
to S#arp Architecture

Yeah - that should have been the answer but at the time the version of
MSysGit didn't support the use of https (something to do with the
version of CURL) and during development we wanted the code to be a
private repository which meant https.

This may have all chaned now of course but at the time we ran out of
options. Maybe something to consider in the future.

Cheers
James


On Jan 7, 5:52 pm, Chris Nicola <chnic...@gmail.com> wrote:
> I have some good news then Howard!http://github.com/guides/dealing-with-firewalls-and-proxies


>
> Looks like they added HTTP and HTTPS access recently.
>
> On Thu, Jan 7, 2010 at 2:37 AM, Howard van Rooijen <
>
>
>
> howard.vanrooi...@gmail.com> wrote:
> > I don't mind where the questions are asked - the three of us monitor this
> > group and the codeplex site.
>
> > The project did start life on GitHut, but unfortunately the company we work
> > for has very strict firewall rules and that means we can't use GIT during
> > working hours - so we had to adopt CodePlex because TFS works over HTTP and
> > it was the only way the three of us could collaborate :(
>
> > The three of us covered different areas of codebase - so answers to any one
> > question may come from three different sources!
>
> > I also pushed out an new release yesterday - as some users had reported
> > some problems getting up and running with the application & some issues with
> > the MEF / Castle registration - James checked in a fix and things should be
> > a bit smoother for those who got those errors.
>
> > James is also working on improving the BDD specs - hopefully this will
> > remove some duplication and make the specs themselves a lot leaner & easier
> > to create. If people haven't looked at how the specs are written - I'd
> > recommend taking a look. I've been pushing TDD adoption for the past 6 years
> > - but it's always been an uphill struggle - but with BDD and especially
> > MSpec (and it's ReSharper integration) it seems to be a lot more *sticky*
> > and easier to adopt and integrate into your developer habits.
>
> > /Howard
>

> >> > launched –http://fancydressoutfitters.co.ukthatused S#arp Architecture

> >> > buildhttp://fancydressoutfitters.co.uk-it might seem like we've

> >>http://whocanhelpme.codeplex.com/andwe’ve also released a live demo:


> >>http://who-can-help.me
>
> >> > We’ve added some documentation on the Codeplex homepage and will
> >> continue to
> >> > refine this and augment it with blog posts covering some topics in more
> >> > depth – so if you’re interested – please keep an eye on the following
> >> blogs
> >> > / twitter:
>

> >>http://jamesbroo.me/|<http://jamesbroo.me/%7C> @broomej


>
> >> > I've also attached a MSpec report of the BDD specs we've written for the
> >> > application.
>
> >> > If you want to spread the word about Who Can Help Me? or provide us with
> >> > feedback / suggestion via Twitter, please use the #wchm hashtag.
>
> >> > I hope the community finds this sample application useful, we hope to
> >> refine
> >> > it some more over the coming months.
>
> >> > Many thanks & Happy Holidays!
>
> >> > /Howard
>
> >> >  who-can-help-me-bdd-specs.html
> >> > 32KViewDownload
>
> >> --
> >> You received this message because you are subscribed to the Google Groups
> >> "S#arp Architecture" group.
> >> To post to this group, send email to sharp-arc...@googlegroups.com.
> >> To unsubscribe from this group, send email to

> >> sharp-architect...@googlegroups.com<sharp-architecture%2Bunsubs cr...@googlegroups.com>


> >> .
> >> For more options, visit this group at
> >>http://groups.google.com/group/sharp-architecture?hl=en.
>
> > --
> > You received this message because you are subscribed to the Google Groups
> > "S#arp Architecture" group.
> > To post to this group, send email to sharp-arc...@googlegroups.com.
> > To unsubscribe from this group, send email to

> > sharp-architect...@googlegroups.com<sharp-architecture%2Bunsubs cr...@googlegroups.com>

Ingo

unread,
Jan 7, 2010, 9:30:18 PM1/7/10
to S#arp Architecture
Hi again,

I'm having a bit of a problem with running the Analytics and News
templates in WhoCanHelpMe.Infrastructure. I don't know if I should ask
you or somebody at the CSD forum so I hope you forgive.

I get the following error:

Failed to resolve include text for
file:ConfigurationSectionDesignerCode.tt
C:\src\web\WhoCanHelpMe\Main\Solutions\WhoCanHelpMe.Infrastructure
\Analytics\Configuration\AnalyticsConfigurationSectionCode.tt
I also get this error:

An Exception was thrown while processing a directive named
'ConfigurationSectionDesigner'. The transformation will not be run.
The following Exception was thrown:
System.IO.FileNotFoundException: Unable to locate file
File name: 'C:\src\web\WhoCanHelpMe\Main\Solutions
\WhoCanHelpMe.Infrastructure\News\Configuration\$inputFileName$'
at
Microsoft.VisualStudio.TextTemplating.VSHost.TextTemplatingService.ResolvePath
(String path)
at
ConfigurationSectionDesigner.ConfigurationSectionDesignerDirectiveProcessorBase.PostProcessArguments
(String directiveName, IDictionary`2 requiresArguments, IDictionary`2
providesArguments)
at
Microsoft.VisualStudio.TextTemplating.RequiresProvidesDirectiveProcessor.ProcessDirective
(String directiveName, IDictionary`2 arguments)
at
Microsoft.VisualStudio.TextTemplating.Engine.ProcessCustomDirectives
(ITextTemplatingEngineHost host, TemplateProcessingSession session,
List`1 directivesToBeProcessed) C:\Program Files\Configuration Section
Designer\\TextTemplates\ConfigurationSectionDesignerSchema.tt

Thanks!
/Ingo


On 4 Jan, 16:03, Howard van Rooijen <howard.vanrooi...@gmail.com>
wrote:


> Thanks!
>
> AFAIK there isn't any WYSIWYG support for spark. There is some intellisense,
> but it's a bit flaky.
>
> In the 6 months we used it - we never needed (or missed it). FireFox and
> FireBug were all the tools we really needed.
>
> /Howard
>
>
>
> On Mon, Jan 4, 2010 at 8:08 AM, Ingo <ingemar.strandb...@gmail.com> wrote:
> > Thanks for this amazing contribution. I learned a lot going through
> > the code.
>
> > I have a question about the Spark View Engine. Is there a way to get
> > the design view in Visual Studio to work with the .spark files? I
> > haven't found anything when I googled it. If not, how do you and your
> > team get WYSIWYG when developing the user interface?
>
> > Thanks!
> > /Ingo
>
> > On Dec 22 2009, 12:09 am, Howard van Rooijen
> > <howard.vanrooi...@gmail.com> wrote:
> > > Hello,
>
> > > A few months ago I wrote an email to the community about a site we had
> > just

> > > launched –http://fancydressoutfitters.co.ukthatused S#arp Architecture

> > > buildhttp://fancydressoutfitters.co.uk-it might seem like we've

> >http://whocanhelpme.codeplex.com/andwe’ve also released a live demo:

> > sharp-architect...@googlegroups.com<sharp-architecture%2Bunsubs­cr...@googlegroups.com>


> > .
> > For more options, visit this group at

> >http://groups.google.com/group/sharp-architecture?hl=en.- Dölj citerad text -
>
> - Visa citerad text -

Howard van Rooijen

unread,
Jan 8, 2010, 5:16:36 AM1/8/10
to sharp-arc...@googlegroups.com
Have you got The Configuration Section Designer installed? http://csd.codeplex.com/

To unsubscribe from this group, send email to sharp-architect...@googlegroups.com.

Ingo

unread,
Jan 8, 2010, 6:04:08 AM1/8/10
to S#arp Architecture
Yes, I have. I can view the .csd files as diagrams.

Is there anything else I have to install or is there a specific order
I have to follow?

/Ingo

On 8 Jan, 11:16, Howard van Rooijen <howard.vanrooi...@gmail.com>
wrote:
> Have you got The Configuration Section Designer installed?http://csd.codeplex.com/


>
>
>
> On Fri, Jan 8, 2010 at 2:30 AM, Ingo <ingemar.strandb...@gmail.com> wrote:
> > Hi again,
>
> > I'm having a bit of a problem with running the Analytics and News
> > templates in WhoCanHelpMe.Infrastructure. I don't know if I should ask
> > you or somebody at the CSD forum so I hope you forgive.
>
> > I get the following error:
>
> > Failed to resolve include text for
> > file:ConfigurationSectionDesignerCode.tt
> > C:\src\web\WhoCanHelpMe\Main\Solutions\WhoCanHelpMe.Infrastructure
> > \Analytics\Configuration\AnalyticsConfigurationSectionCode.tt
> > I also get this error:
>
> > An Exception was thrown while processing a directive named
> > 'ConfigurationSectionDesigner'. The transformation will not be run.
> > The following Exception was thrown:
> > System.IO.FileNotFoundException: Unable to locate file
> > File name: 'C:\src\web\WhoCanHelpMe\Main\Solutions
> > \WhoCanHelpMe.Infrastructure\News\Configuration\$inputFileName$'
> >   at
>

> > Microsoft.VisualStudio.TextTemplating.VSHost.TextTemplatingService.ResolveP­ath
> > (String path)
> >   at
>
> > ConfigurationSectionDesigner.ConfigurationSectionDesignerDirectiveProcessor­Base.PostProcessArguments


> > (String directiveName, IDictionary`2 requiresArguments, IDictionary`2
> > providesArguments)
> >   at
>

> > Microsoft.VisualStudio.TextTemplating.RequiresProvidesDirectiveProcessor.Pr­ocessDirective

> > > > > organisation (and to test out .NET 3.5, LINQ to SQL, ASP.NETWebForms &

> > > > > buildhttp://fancydressoutfitters.co.uk-itmight seem like we've

> > > >http://groups.google.com/group/sharp-architecture?hl=en.-Dölj citerad

Roger

unread,
Jan 16, 2010, 4:33:06 PM1/16/10
to S#arp Architecture
Thanks for sharing. Does your application run on SQL Server 2005
Expression edition? Also, can I use the IDE development server to run
the web site instead of IIS server?

On Dec 21 2009, 6:09 pm, Howard van Rooijen


<howard.vanrooi...@gmail.com> wrote:
> Hello,
>
> A few months ago I wrote an email to the community about a site we had just

> launched –http://fancydressoutfitters.co.ukthat used S#arp Architecture at


> its core along with a whole myriad of other Open Source Frameworks and Tools
> (Spark, AutoMapper, PostSharp, xVal...).
>
> In the run up to the festive period, myself and two of the development team
> – Jonathan George & James Broome, decided that in the spirit of giving, we
> wanted to gift something back to the communities that gave so much to us
> throughout the year; so we decided to build a new sample web application to
> showcase the use of these various frameworks & tools called “Who Can Help
> Me?” which is based on the same architectural style ashttp://fancydressoutfitters.co.uk.
>
> Who Can Help Me? started out as a small web application I built a few years
> ago to solve a small and specific business problem within our consulting

> organisation (and to test out .NET 3.5, LINQ to SQL, ASP.NET WebForms & MS


> AJAX!). The problem was, that as the organisation grew and new members of
> staff started, they found it difficult to find the right people who could
> help them solve specific problems they’d encounter in their consulting gigs.
> As I have worked for the organisation for a long time (>9 years) I generally
> knew everyone, had worked with most of them and knew what their areas of
> expertise were, thus I’d get a few calls every day asking “Do you know
> anyone who knows about X that could help me?”. The solution was to create a
> searchable skills matrix that would allow people within an organisation find
> other people who had specific skills or expertise who could help them solve
> a particular problem.
>
> So Jonathan, James & I decided to re-write the Who Can Help Me? from
> scratch, using the architecture style, frameworks and tools we used to

> buildhttp://fancydressoutfitters.co.uk- it might seem like we've massively


> over-complicated the architecture for such a simple application - but we
> really wanted this to demonstrate some of the concepts & techniques we used
> to build a full scale, public facing enterprise web application.
>
> Who Can Help Me? utilises the following:
>
> # Sharp Architecture
>     * ASP.NET MVC
>     * ASP.NET MVC Contrib
>     * NHibernate
>     * Fluent NHibernate
>     * Castle Windsor
> # AutoMapper
> # Configuration Section Designer
> # DotNetOpenAuth
> # ELMAH
> # Less CSS for .NET
> # Machine.Specifications (MSpec) BDD Framework
> # MEF
> # PostSharp
> # RhinoMocks
> # Spark View Engine
> # TweetSharp
> # xVal Validation Framework
>

> The project is currently hosted at Codeplex:http://whocanhelpme.codeplex.com/and we’ve also released a live demo:http://who-can-help.me


>
> We’ve added some documentation on the Codeplex homepage and will continue to
> refine this and augment it with blog posts covering some topics in more
> depth – so if you’re interested – please keep an eye on the following blogs
> / twitter:
>

> http://howard.vanrooijen.co.uk/blog/| @HowardvRooijenhttp://jonathangeorge.co.uk/| @jon_george1http://jamesbroo.me/| @broomej

Howard van Rooijen

unread,
Jan 17, 2010, 6:31:43 AM1/17/10
to sharp-arc...@googlegroups.com
The application was built on Visual Studio 2008, SQL Server Express 2008 (although no SQL 2008 specific types were used) & IIS7 (using a separate IIS site to host the application). If you don't have data dude, there is a separate SQL Script available at:WhoCanHelpMe\Main\Data\create-db-and-data.sql

Installation instructions are at the bottom of the page: http://whocanhelpme.codeplex.com/

If you have a different setup - your experience may vary. There are more Q&A at: http://whocanhelpme.codeplex.com/Thread/List.aspx

Thanks,

h

--
You received this message because you are subscribed to the Google Groups "S#arp Architecture" group.
To post to this group, send email to sharp-arc...@googlegroups.com.
To unsubscribe from this group, send email to sharp-architect...@googlegroups.com.
Reply all
Reply to author
Forward
0 new messages