ASP.NET MVC Patterns

Posted by Sam Striano on Stack Overflow See other posts from Stack Overflow or by Sam Striano
Published on 2011-02-17T06:56:21Z Indexed on 2011/02/17 7:25 UTC
Read the original article Hit count: 285

Hello,

I am fairly new to MVC, but after playing with it (MVC 3/Razor), I am hooked.

I have a few questions:

1) What is the best, or most widely used pattern to develop MVC apps in? Repository, DDD, UOW?

2) I am using the Entity Framework 4, so could some please explain to me or point me to a good source that will explain the Repository Pattern w/EF4? Doesn't EF4 take place as the business layer and the data access layer? Does the Repository Pattern even provide a benefit?

3) Also, one last question, could someone explain the whole relationship between the Controller, the Model and the View? I get the basics, but maybe a little more in depth of the correct way to use it. View Models - Say I have a view that displays customer info, and one that edits it, should I have a view model and an edit model, or can the be passed around?

4) Examples??

Thanks for the help up front,
$("Sam")

** EDIT **

Am I on the right track here:

Public Class HomeController
    Inherits System.Web.Mvc.Controller

    Function Index(ByVal id As Integer) As ActionResult
        Return View(New HomeModel)
    End Function

    <HttpPost()> _
    Function Index(ByVal Model As HomeModel) As ActionResult
        Return View(Model)
    End Function

End Class

Public Class HomeModel
    Private _Repository As IRepository(Of Customer)

    Public Property Customer As Customer

    Public Sub New()

    End Sub

    Public Sub New(ByVal ID As Integer)
        _Repository = New CustomerRepository
        Customer = _Repository.GetByID(ID)
    End Sub

End Class

Public Interface IRepository(Of T)
    Function GetByID(ByVal ID As Integer) As T
    Sub Add(ByVal Entity As T)
    Sub Delete(ByVal Entity As T)

End Interface

Public Class CustomerRepository
    Implements IRepository(Of Customer)

    Public Sub Add(ByVal Entity As Customer) Implements IRepository(Of Customer).Add

    End Sub

    Public Sub Delete(ByVal Entity As Customer) Implements IRepository(Of Customer).Delete

    End Sub

    Public Function GetByID(ByVal ID As Integer) As Customer Implements IRepository(Of    Customer).GetByID
        Return New Customer With {.ID = ID, .FirstName = "Sam", .LastName = "Striano"}
    End Function
End Class

Public Class Customer
    Public Property ID As Integer
    Public Property FirstName As String
    Public Property LastName As String
End Class

© Stack Overflow or respective owner

Related posts about asp.net-mvc-3

Related posts about repository-pattern