我正在开始我的第一个严肃的 ASP.NET MVC 应用程序,我需要有人解释我如何正确地分层它。 (到目前为止我创建的所有应用程序只是测试应用程序,我并不关心正确分层)
我花了一段时间在网络上搜索适当分层的 MVC 应用程序的示例,但所有主题要么不完整,要么只有大量文本而没有实际示例。
假设我有电子商务网站(任何其他示例都可以),有人可以给我写一个示例,说明您将如何构建此应用程序(例如,当用户购买产品时)
你的接口(interface)和类是什么样的 你会把它们放在哪里 ,你会把类放在哪里以从数据库中获取数据等等。我不需要这些类的实现,只需要它们的名称位置和函数或它们持有的属性
例如
IProduct -> 第二个项目中的接口(interface)(Project.Whatever -> someFolder)
属性:名称、价格...
IProductRepository -> 它在项目中的位置
功能:BuyProduct(产品产品)
现在,当您定义了您认为理解示例所需的所有细节时,请写下从 Controller 到生成 View 的程序流的详细信息,您从 Controller 调用哪个函数,哪个函数调用您从 Controller 调用的函数以及依此类推,直到您最终到达返回 Controller 并生成 View 的部分。
我知道这将需要更长的时间来解释,但您不需要介绍太多细节,但足以让我了解如何正确地对 mvc 应用程序进行分层
提前致谢
最佳答案
起初我不得不说,我不知道您总体上对编程有多少经验,这让您很难回答所有问题。
我会说你应该看看 .net 框架,不是开玩笑,在理解分离关注方面。这是最重要的事情之一,并回答您的问题“您的接口(interface)和类会是什么样子,您将把它们放在哪里”。
一个 sample 。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
namespace YourCompanyName
{
// here goes only stuff that could use in
// EVERY kind of .NET Application...
// The classes that are placed here dont
// know windows, the internet, phones or ...
}
namespace YourCompany.Web
{
// here goes only stuff that could use in
// any Asp.NET Application.. Mvc and Webforms
// like request helpers... Only Asp.NET related
// stuff
}
namespace YourCompany.Web.Mvc
{
// here goes only stuff that could use in
// Asp.NET Mvc Application.. like HtmlHelpers or
// EditorTemplates
}
namespace YourCompany.Web.Forms
{
// here goes only stuff that could use in
// Asp.NET WebForms Application.. like WebControls
}
// and so on
等等,如果你用 Windows 窗体做一些事情?,
YourCompany.Windows.Forms
和你扩展
System.Windows.Forms
程序集……这是正确的思考方式。在点 Asp.NET 有这些家伙
Scott Hanselman
Phil Haack
Scott Guthrie
还有更多我鼓励你阅读他们的博客,看看
他们的网络广播。
就 Asp.NET MVC 而言,您必须观看 Scott Hanselman 的这两个视频。
你可以在很短的时间内学到很多东西,它的乐趣和动力。
ASP.NET MVC 2: Basics, Introduction by Scott Hanselman
ASP.NET MVC 2: Ninja Black Belt Tips by Scott Hanselman
并下载演示应用程序来学习asp.net mvc,看看如何
您可以构建您的应用程序。 =>
NerdDinner 在 NerdDinner.com 上观看直播
希望有帮助!
关于asp.net-mvc - 分层 ASP.NET MVC 应用程序,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7932616/