views:

927

answers:

9

I'm about to start building a new web project based on the .NET technology stack.
What I want is to somehow avoid the "default" way of building ASP.NET web apps using webforms and stuff.

So, the question is simple: If you're about to start a new web project using .NET today, what technologies and frameworks would you use?

I know that I'm missing basic requirements here, like what's the site meant for and stuff, but if you could just ignore those constraints and focus on the technology I would be really grateful.

+1  A: 

I would actually start with MVC, Especially if the site isn't in huge rush to go live (as in sometime next year).

Hopefully it will all be fully released by then.

Geoffrey Chetwood
+9  A: 

I'd start with ASP.NET MVC, plus LINQ-to-SQL and JQuery and you're pretty much in productivity heaven. To scale up, you can later move your database / logic work to WCF. I'm working on two commercial project using this exact stack. Plus, incidentally, it's the SO stack...

Codewerks
This is the closest approach that i will most likely choose.
ljubomir
If I could change my existing projects to this stack - I'd be happier. Especially using JQuery.
rshimoda
Concur. We used that approach on a web version of our product and had a saleable app in 8 weeks flat.
WOPR
A: 

You said:

What I want is to somehow avoid the "default" way of building ASP.NET web apps using webforms and stuff.

Can I ask why? Is this a personal preference or is there a technical reason behind this? If it's a technical reason, you need to consider what's missing from the "default way" and look at what technologies will fill that gap.

Andrew
A: 

If you are going HTML based, go with ASP.NET MVC, EntityFramework, if it needs to be more like a flash based application, go with silverlight, WCF, Entity Framework. I dont think there is much more too it than that. (Given the info you gave that is)

mattlant
+1  A: 

@Andrew: I personally don't like the standard web.form model. It puts way too much overhead on output.
I mean this is the price you have to pay for the rapid development and asp.net "magic" that occurs, but this works for low level development and small sites.

The problem appears when you want to get rid of that bloated code you end up getting out, and adding unit testing and other stuff that matters to it. ASP.net is simply not designed with those goals in mind.

What i was seeking out is some points and clues on using weather MVC, Castle Project, Spring.Net or other frameworks /libraries that I'm even not aware of.

Thanks for the interest though. It's appreciated.

ljubomir
+1  A: 
  • Subsonic for DAL
  • IOC - Structure Map
  • NUnit for TDD
  • Non MVC Route - Supplement with Telerik Controls and jQuert
  • MVC Route - jQuery
David Robbins
A: 

I'm using: .netTiers for the DAL and WCSF for seperation of concerns.

+1  A: 

I'll quote my answer from a similar thread here

For database applications, starting from DB up to Application level You can have the DB of your choice, either SQL Server, Oracle, Access, DB2, Postgres ... etc Then the Data Access Layer, is based on ADO.net that basically can access your database using any suitable driver/provider like OLEDB, ODBC (is quite old), Oracle Data Provider (ODP) ... which gives native access to your database specific functionality such as stored procedures, which is not available if you are communicating over ODBC. Then, you can either use a code generator like Linq to SQL (which comes for free with VS 2008+) or other third party code generators like LLBLGen Pro, and others, or you can make O/R Mapping using NHibernate or using more sophisticated technology such as Entity Framework which was just release with .net 3.5 SP1 Then on top of that you can develop your domain objects using C# or the language you like that consumes the infrastructure. then on top of that, you can expose your domain functionality using a UI directly in this case ASP.net, or expose them in the form of services either SOAP or REST using WCF or ADO.net Data Services (Which was also released with .net 3.5 SP1, and were built on top of WCF), then in case you exposed the functionality in form of services, you might need to communicate with other services in a workflow where you can use Windows Workflow (WF), then you will need to build a client that consume these services, you can use develop as many clients as your situation demands, for example you can build AJAX client using (MS AJAX framework + jQuery + ASP.net) or you can build a RIA (Rich Internet Application) using SilverLight, or leverage the client desktop capabilities and build a very rich user interface using WPF/Windows Forms client. So basically as you can imagine from the long story above, how .net can be the tool of choice to build the end to end solutions from the most bottom database level, up to the server, down the wire to the client browser and client machine.

bashmohandes
A: 

I user MVP pattern over webforms, castle and nhibernate. It is unit testable and good