How-To: Using the N* stack, part 1
📅 2026/7/6 3:41:18
👁️ 阅读次数
📝 编程学习
- NET Framework 3.5 SP1
- Visual Studio 2008 SP1
- 最新版本的 NUnit
- NHibenate 所支持的数据库,例如 Oracle 、SQL Server 、 SQLite,MySQL 数据库。 本示例将使用 SQL Server。
OK,准备好了所有需要的软件,下面介绍一些术语的基本概念:
- MVC是指Model-View-Controller。这种责任分离的设计可以更灵活地适应和改变你的应用程序。
- Model(模型) – 这个是指实体类,也就是业务对象。例如在一个账务软件中,Model 就是指发票、发票项目、客户、产品等所有真实世界里的对象。
- View(视图) – View 就是以一种特定的方式来呈现一个特定的业务对象。例如你可能需要一个编辑客户信息的 View,另一个用来显示发票信息。你也可以认为 View 就是你应用程序中的一个页面。
- Controller(控制器) – Controller 就是我们获取数据,然后将数据绑定到页面控件的这个业务流程。
- Inversion of Control(IoC)(控制反转) – 的概念是不需要对象自己去控制关联依赖关系,而是将这些工作交给系统去处理,使用面向接口编程,减少各个层之间的耦合。这种松耦合的设计可是让你轻松的代替服务的实现,而无需关注每个实现它们的类。我知道的两种主要类型的 IoC: 服务定位器( Service Locator )和依赖注入( Dependency Injection )。
- Service Locator(服务定位器) – 一个服务定位器是一个中央容器,它知道如何控制应用程序中需要的所有服务,对象将从服务定位器中获取每个服务的实现。一个服务定位器通常都是单例的,这就是为什么我不喜欢它。
- Dependency Injection(DI)(依赖注入)– 是连接服务对象的方法。指程序运行的过程当中,如果需要调用另一个对象的时候,无须在代码中创建被调用的对象,对象本身是由依赖注入框架创建的,在本系列中我们使用 Ninject 。在 Ninject Dojo 里有非常好的依赖注入教程,是开始学习 IoC 非常好的地方。
设置解决方案
该项目的设置是非常简单的,基本上所有操作都是通过Visual Studio完成。请按照下列步骤完成。
1.创建解决方案和项目
在 Visual Studio 中, 创建一个新的 ASP.NET MVC Web 应用程序。 我们把它的名字改为 NStackExample 。
在这里还需要注意几件事。首先,我们需要创建一个解决方案目录。其次,请注意项目的名称后面包含 .Web ,和方案名称不是相同的。
该Web项目将包含全部 View 层的页面。尽管我们是通过 ASP.NET MVC 模板建立的,但是这里并不会包括 Model 和 Controller。
2.创建类库目录
在你的解决方案目录中创建一个项目中所用到的所有第三方类库的目录。例如在这里我们创建一个 Solution items 目录,并将下列15个程序集复制过去。
- MVCContrib:
- MVCContrib.dll
- Microsoft.Web.Mvc.dll
- System.Web.Abstractions.dll
- System.Web.Mvc.dll
- System.Web.Routing.dll
- NHibernate:
- Antlr3.Runtime.dll
- Iesi.Collections.dll
- log4net.dll
- NHibernate.dll
- Castle.Core.dll
- Castle.DynamicProxy2.dll
- NHibernate.Bytecode.Castle.dll
- FluentNHibernate.dll from Fluent NHibernate
- Ninject:
- Ninject.Core.Dll
- Ninject.Framework.Mvc.Dll
- MVCContrib:
3.创建Core项目
这个是最主要的项目,它包括解决方案中所需要的所有接口和模型,同时需要注意 Core 项目中不会包含任何实现部分,实现部分应该放在单独的,容易替换的程序集中。
在解决方案中添加一个新的类库项目,并将名字改为 NStackExample.Core 。
创建完成之后右键点击该项目并选择属性,选择应用程序(Application)选项卡,在根命名空间中删除 .Core 。
4.创建 Controller 项目
接下来创建 MVC 中所需要的 Controller 类库,我们叫它 NStackExample.Controllers 。虽然在微软自带的模板中已经存在了这个文件夹,不过我们不会使用该文件夹,因为我认为我们最好应该将 Controller 从网站中分离出来。
5.清理项目
将下列内容删除掉:
- 在 Core 和 Controllers 项目中删除 Class.vb 或 Class.cs 文件。
- 在 NStackExample.Web 项目中:
- Controllers 目录和目录下的所有内容
- Models 目录
- Scripts 目录下的 Microsoft AJAX 脚本库
- Views 目录下的 Home 和 Account 目录
- Views 目录下的 LogOnUserControl
编程学习
技术分享
实战经验