当前位置: 首页 > news >正文

How-To: Using the N* stack, part 1

  • 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. 1.创建解决方案和项目

    在 Visual Studio 中, 创建一个新的 ASP.NET MVC Web 应用程序。 我们把它的名字改为 NStackExample 。

    在这里还需要注意几件事。首先,我们需要创建一个解决方案目录。其次,请注意项目的名称后面包含 .Web ,和方案名称不是相同的。

    该Web项目将包含全部 View 层的页面。尽管我们是通过 ASP.NET MVC 模板建立的,但是这里并不会包括 Model 和 Controller。

  2. 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
  3. 3.创建Core项目

    这个是最主要的项目,它包括解决方案中所需要的所有接口和模型,同时需要注意 Core 项目中不会包含任何实现部分,实现部分应该放在单独的,容易替换的程序集中。

    在解决方案中添加一个新的类库项目,并将名字改为 NStackExample.Core 。

    创建完成之后右键点击该项目并选择属性,选择应用程序(Application)选项卡,在根命名空间中删除 .Core 。

  4. 4.创建 Controller 项目

    接下来创建 MVC 中所需要的 Controller 类库,我们叫它 NStackExample.Controllers 。虽然在微软自带的模板中已经存在了这个文件夹,不过我们不会使用该文件夹,因为我认为我们最好应该将 Controller 从网站中分离出来。

  5. 5.清理项目

    将下列内容删除掉:

    • 在 Core 和 Controllers 项目中删除 Class.vb 或 Class.cs 文件。
    • 在 NStackExample.Web 项目中:
      • Controllers 目录和目录下的所有内容
      • Models 目录
      • Scripts 目录下的 Microsoft AJAX 脚本库
      • Views 目录下的 Home 和 Account 目录
      • Views 目录下的 LogOnUserControl

http://www.jsqmd.com/news/1132292/

相关文章:

  • 秒杀系统设计核心要点
  • AI Agent框架:从模型驱动到任务执行的关键工程化实践
  • iPhone与Nothing Phone旋转图片操作大不同,无障碍设计为何重要?
  • 【DBX数据库工具技术解析】15MB管理60+数据库的Docker部署指南
  • 别让 AI 直接写接口:前后端联调前,先把这 4 份契约交给它
  • AI编程接单实战复盘:Claude Code 4天完成电商开票系统迭代,5000元私活全过程
  • Dell PERC H330/H730 RAID 卡实战:R730 创建 RAID-5 与删除配置 12 步详解
  • Cursor、Zed、Windsurf:AI原生编辑器的架构级差异解析
  • 信息论与编码课程调研报告:连续AWGN信道中香农容量极限的数学推导与MATLAB仿真实现(P124302067 吴晨晨,P124302076 吕欣欣)
  • 2026年行驶6万公里的新能源汽车,专业底盘整备究竟哪家技术更胜一筹?
  • 059、RealBasicVSR 实战:真实场景视频超分的退化建模与优化技巧
  • Optuna 分布式优化实战:4节点并行加速 CatBoost 超参数搜索
  • Power BI中SUMMARIZE函数实战:构建高性能可审计汇总表
  • Python爬虫经典案例第73篇:新闻聚合平台爬取:Google News数据采集实战
  • 2026年深度检验:10款好用的降AI率网站,部分无限免费降AI!速速码住
  • 密码学算法
  • 【考研】2026/7/5
  • 【地平线 征程 6 工具链进阶教程】QAT 训练常见问题和排查
  • AI 辅助内容生产与网站优化的实践:效率提升在哪、边界在哪
  • PWM+MOS管驱动LED振铃干扰
  • 电话机器人厂家哪个好
  • 德明利:从布头生意到整布豪赌,存储赛道的独特玩家能否再赢一局?
  • Java异常处理深度实战教程:异常管理策略
  • 第2章 异常
  • 村长团队教你用3dMax + ZM3制作GTA5水源教程
  • zxcvbn密码强度评估工具:如何快速提升密码安全性的完整指南
  • 高Tg PCB材料(Tg≥170°C)在无铅制程中的5项性能实测与失效分析
  • NSK微型精密滚珠丝杠W0801MA技术指南
  • YOLOv10模型改进-Neck改进-第74篇:YOLOv10改进策略【Neck】| FPN-DCN可变形卷积
  • 蓝速科技会议电子门牌部署与可视化管控指南