Alternatives to sharp architecture

453 views
Skip to first unread message

KAD

unread,
Aug 9, 2014, 10:18:35 AM8/9/14
to sharp-arc...@googlegroups.com
Are there any alternative projects to sharp architecture? Correct me if I am wrong, but sharp architecture seems to be dead.

Matt Cowen

unread,
Aug 9, 2014, 10:30:01 AM8/9/14
to sharp-arc...@googlegroups.com
And that would be because so many of us have taken and too few have given to the project.

I think it is still a great example of how to structure a solution (regardless what Ayende et al think). I've worked on many different software products and none have been cleaner and better defined architecturally than those built with SA. I hate to admit it but I'm now moving away from NHibernate but I still look to SA for guidance on new projects (especially on the WCF side of things).

I personally would love to see another version of SA with Entity Framework and I'm willing to help do it. I know there is a Sharp Lite starter for 10 over at https://github.com/codai/Sharp-Lite but it looks a little rough around the edges.

Anyone else interested in that?


On 9 August 2014 15:18, KAD <k.abu...@gmail.com> wrote:
Are there any alternative projects to sharp architecture? Correct me if I am wrong, but sharp architecture seems to be dead.

--
You received this message because you are subscribed to the Google Groups "S#arp Architecture" group.
To unsubscribe from this group and stop receiving emails from it, send an email to sharp-architect...@googlegroups.com.
To post to this group, send email to sharp-arc...@googlegroups.com.
Visit this group at http://groups.google.com/group/sharp-architecture.
For more options, visit https://groups.google.com/d/optout.

Lucas Germano

unread,
Aug 11, 2014, 6:28:24 AM8/11/14
to sharp-arc...@googlegroups.com
Right now, I'm using Sharp Architecture, because it's so clean and professional. I was using an architecture so complex with a simple system, and I see that sharp architecture has everything that I want, in a so organized way, that made it simple.

We exchange the Entity Framework to use NHibernate.



Em sábado, 9 de agosto de 2014 11h30min01s UTC-3, Matt escreveu:
And that would be because so many of us have taken and too few have given to the project.

I think it is still a great example of how to structure a solution (regardless what Ayende et al think). I've worked on many different software products and none have been cleaner and better defined architecturally than those built with SA. I hate to admit it but I'm now moving away from NHibernate but I still look to SA for guidance on new projects (especially on the WCF side of things).

I personally would love to see another version of SA with Entity Framework and I'm willing to help do it. I know there is a Sharp Lite starter for 10 over at https://github.com/codai/Sharp-Lite but it looks a little rough around the edges.

Anyone else interested in that?
On 9 August 2014 15:18, KAD <k.abu...@gmail.com> wrote:
Are there any alternative projects to sharp architecture? Correct me if I am wrong, but sharp architecture seems to be dead.

--
You received this message because you are subscribed to the Google Groups "S#arp Architecture" group.
To unsubscribe from this group and stop receiving emails from it, send an email to sharp-architecture+unsub...@googlegroups.com.

Stephen Brannan

unread,
Aug 11, 2014, 2:23:01 PM8/11/14
to sharp-architecture
For me Sharp Arch. was a love/hate relationship. I work best with lists so let me explain why I loved it, why I hated it and then what I moved on too.

- Love
1. Taught me an incredible amount about proper application design. This was invaluable and I will always appreciate Sharp Arch for that and have fond memories of Sharp Arch because of this.
2. Introduced me to IOC/DI, which really brought together a very clean design structure. Again very invaluable.
3. Provided a strong NHibernate infrastructure, which in turn taught me a lot about best practices for using NHibernate. 
4. Introduced me to FluentNhibernate. wow! Nothing more to say than wow... (was using xml mappings before, ugh!).

- Hate
1. Always being a version or two behind the latest asp.net mvc framework.
2. Repository pattern: Initially seemed like a good idea providing an additional abstraction but over time it was mostly an additional layer to do crud work between the controller/WCF service and nhibernate. A semi abstraction layer between the ORM and the controllers. By requiring this additional repo layer caused (for me) added work that overall provided no long term gain. (In the direction I went this was kind of replaced with services, see below...). To help better explain this...

   I went from:   Session <--> Repository <--> Controller/wcf service.
   And moved to:  Session <--> Services (Exposed through REST/internal (services can call other services)) <--> Controller/Rest Endpoint

3. ISessionStorage: Great idea if your always doing web apps. Automatically provides a new nhibernate session per web request, but if you used SharpArch in a win forms/console app you quickly found out it only sort of worked. It caused memory issues initially because there is no session per request in these types of apps. So to sum this up, the lack of support for non web apps was a bit of a frustration.
4. No real services other than WCF. I went deep into WCF and worked with it for awhile. I found it to be one of the most convoluted and complex "web services" framework I've used in .net. Configuring and extending WCF is a nightmare. For example SSL in a WCF self-hosted instance resulted in numerous configuration sections in the app.config. Even MS has quieted down about WCF and has been promoting Web API.
5. SharpArch project appears dead, little to no progress over the last few years. This is a bit dis-concerning. One person on here stated that to few people contributed. I never contributed because at the time I was still new to the framework and did not feel I understood the overall framework well enough to contribute.

- What I moved too
I eventually found the framework ServiceStack. It provided a much simpler framework over Sharp Arch. All repositories are gone away. Working with NHibernate is done through the services. A service in ServiceStack has multiple endpoints; json, xml, soap, and html. A service can be used as a web service endpoint (think Web API) or as a controller or both! Services can call other services. I can go on and on about it's benefits, but their own site beautifully explains it's benefits better than I can. See https://servicestack.net/ and https://github.com/ServiceStack/ServiceStack/wiki.

Some people may say we'll service stack is a paid product. Yes but it's also open source. In addition, if your product is open source you can also use it for free (I think, may need to verify this). Also all the source is available for you to view in github as well. Also if you can't go open source you can fall back to their 3.9.x version, which is fully open source.

In summary please don't take this as an attack on Sharp Arch. On the contrary Sharp Arch was the #1 factor for making me a better programmer/engineer/developer. I still believe every .net developer should be introduced to Sharp Arch. It is definitely an incredible framework and a good stepping stone.

For anyone reading this. Thanks for listening. It's very much appreciated.


Stephen


To unsubscribe from this group and stop receiving emails from it, send an email to sharp-architect...@googlegroups.com.

Rowan Beckworth

unread,
Aug 11, 2014, 9:50:24 PM8/11/14
to sharp-arc...@googlegroups.com
I think this totally sums up my experience as well and I agree totally with every point raised both positive and negative. Sometimes it can be a frustrating experience working with Sharp Arch but I think I'm a much better developer for it (hopefully).

I believe SharpLite was introduced to simplify the overhead associated with the repository pattern and some of the other architectural facets, although I don't have any experience with it myself.

Where I currently work they ended up rolling their own "architecture" which is nearly identical in structure to Sharp Arch, although using Entity Framework as the ORM. This does allow a bit more flexibility in switching/upgrading components which is handy.

Lucas Germano

unread,
Aug 12, 2014, 7:19:07 AM8/12/14
to sharp-arc...@googlegroups.com

I agree about your comment about WCF, but in this case, We can make a WebAPI project where all request that comes from the UI project will be like a REST service.

The true is we all make some changes when we use Sharp Architecture to fit our projects.

Lucas Germano

unread,
Aug 12, 2014, 7:22:23 AM8/12/14
to sharp-arc...@googlegroups.com
BTW, I forgot to mention, I don't saw any problem with Repository YET, maybe I didn't understand your point/conclusion,

K A D

unread,
Aug 12, 2014, 2:11:13 PM8/12/14
to sharp-arc...@googlegroups.com
I have managed to update SharpArch.Web.Mvc to MVC 4. Does any one know how can I make a new version of the Nuget package?

Seif Attar

unread,
Aug 13, 2014, 4:50:45 PM8/13/14
to sharp-arc...@googlegroups.com
You should be able to create a new version of the nuget package by making relelvant changes in nuspec files in NugetTemplates folder and running the build/buildandpackage.bat file. You can the get the nuget packages from the packages folder and publish to the nuget server you are using.


On 12 August 2014 19:11, K A D <kad...@gmail.com> wrote:
I have managed to update SharpArch.Web.Mvc to MVC 4. Does any one know how can I make a new version of the Nuget package?

--

Seif Attar

unread,
Aug 13, 2014, 5:56:02 PM8/13/14
to sharp-arc...@googlegroups.com
Good to see some people still active here, I am the maintainer of SharpArchitecture and I am happy to see that there are still people getting involved in the conversation.

I probably should have declared the project dead a while ago as I am rarely finding the time or motivation to work on it, but I am with Stephen where I have this deep appreciation for SharpArchitecture for all the things I learnt from it since the original codeproject article went out http://www.codeproject.com/Articles/13390/NHibernate-Best-Practices-with-ASP-NET-nd-Ed.

Main reason why Sharp Architecture has had so little updates is lately is probably my fault, kids and family are taking up most of my time, don't think I have had an opportunity to even start a greenfield project in order to use SharpArchitecture so haven't used it at work, frustration with the general users that often ask questions that have been answered before and don't try to solve problems themselves and just like to complain, lack of contributors and mainly too much to learn and not enough hours in the day. I still resist declaring it dead, hoping at some point to get some time, but that looks unlikely :( Fork it, modify it, rename it, copy the source into your code or whatever, if there is something you think will benefit other people, issue a pull request. Contributions are always welcome https://github.com/sharparchitecture/Sharp-Architecture/blob/master/CONTRIBUTING.md

We have embarked on a 3.0 release with a lot of changes, mainly myself and Sandor were working on this, I am assuming he is not getting much time to work on it either, develop branch is currently dirty and can't be released (my bad, works in progress which I never could finish). If anyone wants to cherry pick/update to Mvc4 on master, please feel free to issue a pull request.

@Stephen, I mostly have the same feelings as you, but regarding the cons:
1. yeah
2. People have different opinions/implementations. Controller -> ISession, Controller -> Repository -> ISession, Controller -> Service -> ISession, Controller -> Service -> Repository -> Session. I guess it depends on the maturity of the team, their understanding of concerns and clean code but having repositories never really annoyed me as much as having services that just call into a repository/ISession. I loved Repositores coming from a land where data access was living in aspx files in xml and scattered in all around the code base.
3. ThreadSessionStorage and UnitOfWork from SharpArchContrib could have solved that problem.
4. yeah, luckily I haven't touched SOAP in years :) definitly needs to join on with the times.
5. That is one of the problems, by the time people understand the framework, and realise that it doesn't provide much but some glue and best practices, they move on to other things.

ServiceStack is great, it was a sad day with Demis decided to go commercial, but I understand his reasoning. My understanding is that you can't use it in production unless you pay for a commercial license. So if you don't want to pay, stick to version < 4.

@KAD What exactly are you looking for in an alternative? have you looked at NancyFX? There are some templates for Yeoman and asp.net.

Thanks,
Seif



--

HowardvanRooijen

unread,
Sep 26, 2014, 6:28:00 AM9/26/14
to sharp-arc...@googlegroups.com
Hi All,

Nice to see a bit of chatter going on here, even if it is "is there life after Sharp Arch?"

For me the positives were:

  1. Finding a community of like minded, helpful & open people who all had similar business (or hobby based) problems they needed to solve. Though not as big as some of the other mainstream .NET OSS projects, I thought the ethos and general respect everyone demonstrated was one of the highlights of being involved - it never really felt like a chore.
  2. Trying to solve a different type of problem; rather than building a tool, or framework, we were trying to add value at a higher level - how do you use all these different components together to create a convention that anyone in a development team can easily learn and adopt to help you deliver business value.
  3. Focusing on architecture - trying to highlight how good architectural principals can help. One of the common criticisms was that SA was too heavy - which I can understand if you're a solo dev trying to build a quick web app; if you're a Solution Architect trying to manage a team of 10-20 developers and don't want to end up with a big ball of spaghetti code - this is where SA comes into its own.
  4. Looking at the end to end process - thinking about a platform from an empty folder, through local builds, to deployment. For me - one of the most useful bits of the SA journey was Templify - http://opensource.endjin.com/templify/ - we (at endjin) still use it all the time.
  5. Bringing BDD to the forefront. From custom frameworks, to MSpec to Specflow - it's fundamentally changed how I approach day to day development.
Why is SA gathering dust?

For me, it's because the world has changed. 

Four years ago I founded a company, http://endjin.com and starting a (technology) business is the most sure fire way (other than starting a family) to ensure you have no free time! We still produce a lot of OSS projects, but they are distillations of things we have built out of need (a new cross platform DI framework, a retry framework, a SpecFlow / Selenium Framework, TeamCity MetaRunners etc) and lots of code samples from our blogs; we just don't have capacity to contribute to a project we don't use day to day.

Another big change to come along is this time frame is Cloud Computing, specifically Azure which has brought so many new options for application architecture - specifically introducing new storage concepts (blob and key value pair) into the .NET ecosystem. I haven't touched a relational database since 2010 and thus the greatest benefit that SA offered (making reading and writing to SQL Server simple) was wiped from the table. The fact that *all* of our development work is targeted against Azure means SA isn't that relevant (although the architectural principals it enshrines still are!).

WebApi and JavaScript frameworks like AngularJS have also had a huge impact in how we architect .NET Web Apps, to make them much more ReSTful and service based.

We're trying to raise the level; for the last 18 months we've been investing all our spare time on building a new Azure based CMS for building truly scalable web applications. One of the high points of the SA journey was when we managed to deliver a project that combined the solid architecture of SA with the content editing abilities of N2CMS. We're trying to push that further by trying to tackle all thorny problems of why you can't create well architected content managed applications (Orchard, Umbraco, SiteCore etc) and why you can't deliver a truly user centric editing experience (for both content editors and designers). We've created a number of client projects with it; we've really enjoyed building the applications and the clients have been delighted with the management experience - so we believe we're on the right track. 

I had no idea that Service Stack went commercial - that's an interesting move.

I'm really quite excited at what's in the pipeline for ASP.NET vNext... personally I hope it gets rebranded because it solves so much of the legacy problems associated with ASP / ASP.NET that's it's really a different beast and deserves a clean slate!

/Howard
To unsubscribe from this group and stop receiving emails from it, send an email to sharp-architecture+unsub...@googlegroups.com.
To post to this group, send email to sharp-architecture@googlegroups.com.
Reply all
Reply to author
Forward
0 new messages