• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >ASP.NET > 一步步打造简单的MVC电商网站BooksStore(1)

一步步打造简单的MVC电商网站BooksStore(1)

作者:反骨仔 字体:[增加 减小] 来源:互联网 时间:2017-05-11

反骨仔通过本文主要向大家介绍了books store,booksstore怎么读,mvc music store,mvc music store教程,focal xs books等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

一步步打造一个简单的 MVC 电商网站 - BooksStore(一)

本系列的 GitHub地址:https://github.com/liqingwen2015/Wen.BooksStore

《一步步打造一个简单的 MVC 电商网站 - BooksStore(一)》

《一步步打造一个简单的 MVC 电商网站 - BooksStore(二)》

《一步步打造一个简单的 MVC 电商网站 - BooksStore(三)》

《一步步打造一个简单的 MVC 电商网站 - BooksStore(四)》

简介

主要功能与知识点如下:

分类、产品浏览、购物车、结算、CRUD(增删改查) 管理、发邮件、分页、模型绑定、认证过滤器和单元测试等(预计四篇、周五、下周一和周二)。

【备注】项目使用 VS2015 + C#6 进行开发,有问题请发表在留言区哦,还有,页面长得比较丑,请见谅。

目录

  • 创建项目架构
  • 创建域模型实体
  • 创建单元测试
  • 创建控制器与视图
  • 创建分页
  • 加入样式

一、创建项目架构

1.新建一个解决方案“BooksStore”,并添加以下项目:

BooksStore.Domain:类库,存放域模型和逻辑,使用 EF; BooksStore.WebUI:Web MVC 应用程序,存放视图和控制器,充当显示层,使用了 Ninject 作为 DI 容器; BoosStore.UnitTest:单元测试,对上述两个项目进行测试。  

Web MVC 为一个空的 MVC 项目:

2.添加项目引用(需要使用 NuGet):

这是不同项目需要引用的类库和项目

3.设置 DI 容器

我们通过 Ninject ,创建一个自定义的工厂,一个名为NinjectControllerFactory 的类继承DefaultControllerFactory(默认的控制器工厂)。你也可以在里面添加自定义的代码,改变 MVC 框架的默认行为。

AddBindings() 添加绑定方法,先留空。

public class NinjectControllerFactory : DefaultControllerFactory
 {
 private readonly IKernel _kernel;

 public NinjectControllerFactory()
 {
  _kernel = new StandardKernel();
  AddBindings();
 }

 protected override IController GetControllerInstance(RequestContext requestContext, Type controllerType)
 {
  return controllerType == null
  ? null
  : (IController) _kernel.Get(controllerType);
 }

 /// <summary>
 /// 添加绑定
 /// </summary>
 private void AddBindings()
 {
  
 }
 }
</div>

4.并且在 Global.asax 中加入一行代码,告诉 MVC 用新建的类来创建控制器对象。

ControllerBuilder.Current.SetControllerFactory(new NinjectControllerFactory());

public class MvcApplication : System.Web.HttpApplication
 {
 protected void Application_Start()
 {
  AreaRegistration.RegisterAllAreas();
  RouteConfig.RegisterRoutes(RouteTable.Routes);

  ControllerBuilder.Current.SetControllerFactory(new NinjectControllerFactory());
 }
 }

</div>

二、创建域模型实体

1.在图中位置创建一个名为 Book 的实体类。

public class Book
 {
 /// <summary>
 /// 标识
 /// </summary>
 public int Id { get; set; }

 /// <summary>
 /// 名称
 /// </summary>
 public string Name { get; set; }

 /// <summary>
 /// 描述
 /// </summary>
 public string Description { get; set; }

 /// <summary>
 /// 价格
 /// </summary>
 public decimal Price { get; set; }

 /// <summary>
 /// 分类
 /// </summary>
 public string Category { get; set; }
 }

</div>

有了实体之后,我们应该创建一个“库”对该实体进行操作,而这种持久化逻辑操作也应该和域模型是进行隔离的。

2.先定义一个接口 IbookRepository,在根目录创建一个名为 Abstract 的文件夹,顾名思义就是应该放置一些抽象的类,如接口。

public interface IBookRepository
 {
 IQueryable<Book> Books { get; }
 }
</div>

我们通过该接口就可以得到对应类的相关信息,而不需要去管该数据如何存储,以及存储的位置,这就是存储库模式的本质。

3.接下来,我们就需要对数据库进行操作了,我们使用简单的EF(ORM 对象关系模型) 去对数据库进行操作,所以需要自己通过 Nuget 下载 EF 的类库。

4.因为之前定义了接口类,接下来就应该定义实现该接口的类了

  安装完之后,再次建立一个名为 Concrete 的文件夹,存放实例。

  在里面创建一个 EfDbContext 的类,派生于 DbContext,该类会为用户要使用的数据库中的每个表自动的定义一个属性。该属性名为 Books,指定了表名,DbSet<Book> 表示为 Book 实体的表模型,Book 对象相当于 Books 表中的行(记录)。

 public class EfDbContext : DbContext
 {
 public DbSet<Book> Books { get; set; }
 }
</div>

  再创建一个EfBookRepository 存储库类,它实现 IBookRepository 接口,使用了上文创建的 EfDbContext 上下文对象,包含了具体的方法定义。

public class EfBookRepository : IBookRepository
 {
 private readonly EfDbContext _context = new EfDbContext();

 public IQueryable<Book> Books => _context.Books;
 }

</div>

5.现在只差在数据库新建一张表了。

CREATE TABLE Book
(
 Id INT IDENTITY PRIMARY KEY,
 Name NVARCHAR(100),
 Description NVARCHAR(MAX),
 Price DECIMAL,
 Category NVARCHAR(50)
)
</div>

并插入测试数据:

INSERT INTO dbo.Book
 ( 
  Name ,
  Description ,
  Price ,
  Category
 )
VALUES ( 
  N'C#从入门到精通' , -- Name - nvarchar(100)
  N'好书-C#从入门到精通' , -- Description - nvarchar(max)
, -- Price - decimal
  N'.NET' -- Category - nvarchar(50)
 )

INSERT INTO dbo.Book
 ( 
  Name ,
  Description ,
  Price ,
  Category
 )
VALUES ( 
  N'ASP.NET从入门到精通' , -- Name - nvarchar(100)
  N'好书-ASP.NET从入门到精通' , -- Description - nvarchar(max)
, -- Price - decimal
  N'.NET' -- Category - nvarchar(50)
 )

INSERT INTO dbo.Book
 ( 
  Name ,
  Description ,
  Price ,
  Category
 )
VALUES ( 
  N'多线程从入门到精通' , -- Name - nvarchar(100)
  N'好书-多线程从入门到精通' , -- Description - nvarchar(max)
, -- Price - decimal
  N'.NET' -- Category - nvarchar(50)
 )

INSERT INTO dbo.Book
 ( 
  Name ,
  Description ,
  Price ,
  Catego



 
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 一步步打造简单的MVC电商网站BooksStore(4)
  • 一步步打造简单的MVC电商网站BooksStore(3)
  • 一步步打造简单的MVC电商网站BooksStore(2)
  • 一步步打造简单的MVC电商网站BooksStore(1)

相关文章

  • 2017-05-11asp.net INI文件读写类
  • 2017-05-11利用ASP.NET MVC和Bootstrap快速搭建响应式个人博客站(一)
  • 2017-05-11.net页面访问次数统计实现原理与代码
  • 2017-05-11SignalR发送页面跳转通知的方法
  • 2017-05-11VS2005 水晶报表在时部署时遇到的问题
  • 2017-05-11asp.net Webconfig中的一些配置
  • 2017-05-11asp.net中的check与uncheck关键字用法解析
  • 2018-08-20ASP.NET Core中间件设置教程(7)
  • 2017-05-11透过ashx看浏览器服务器运行本质(图解)
  • 2017-05-11asp.net 支付宝及时到帐接口使用详解

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • ASP.NET Core开发教程之Logging利用NLog写日志文件
    • ASP.NET批量下载文件的方法
    • ASP.NET Web Page应用深入探讨第1/2页
    • asp.net 图片验证码的HtmlHelper
    • Asp.net Web Api实现图片点击式图片验证码功能
    • 已有打开的与此命令相关联的DataReader,必须首先将它关闭。对于此异常的理解
    • asp.net服务器上几种常见异常的解决方案.
    • .NET实现在网页中预览Office文件的3个方法
    • Asp.net 中使用GridView控件实现Checkbox单选
    • .Net笔记:System.IO之windows文件操作的深入分析

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有