配置环境
创新互联致力于互联网品牌建设与网络营销,包括成都网站制作、成都网站建设、SEO优化、网络推广、整站优化营销策划推广、电子商务、移动互联网营销等。创新互联为不同类型的客户提供良好的互联网应用定制及解决方案,创新互联核心团队十多年专注互联网开发,积累了丰富的网站经验,为广大企业客户提供一站式企业网站建设服务,在网站建设行业内树立了良好口碑。
如果您还没有安装asp.net.mvc的话,请到这里下载安装。
下载后,按提示安装就可以了。
新建项目
安装完asp.net.mvc后,在VS里新建一个项目,可以看到有一个“asp.net.mvc Web Application”的选项,选择它,新建一个项目,并命名为“MVCDemo”。
建完项目后,可以看到默认情况下已经建立了很多文件夹,这里简略说一下各个文件夹的作用。
Content——存放应用需要的一些资源文件,如图片、CSS等。
Controllers——存放控制器类。
Models——存放业务模型组件。
Scripts——存放JavaScript脚本文件。
Views——存放视图。
现在不了解一些概念没关系,后续文章将慢慢解释。
准备工作
新建完项目后,我们要做的准备工作就是建立Mock业务模型,这样以后我们就直接使用这些“欺骗”式的业务模型进行业务处理,而将全部关注点放在asp.net.mvc的学习上。
首先在Models下新建三个文件夹,分别叫做Entities、Interfaces、MockModels,分别用来存放实体类、接口及Mock业务模型。
Entities下有两个类:CategoryInfo和AnnounceInfo,分别是公告类别和公告的实体类。具体代码如下:
CategoryInfo.cs:
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Web;
- namespace MVCDemo.Models.Entities
- {
- ///
- /// 分类实体类
- ///
- public class CategoryInfo
- {
- public int ID { get; set; }
- public string Name { get; set; }
- }
- }
AnnounceInfo.cs:
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Web;
- namespace MVCDemo.Models.Entities
- {
- ///
- /// 公告实体类
- ///
- public class AnnounceInfo
- {
- public int ID { get; set; }
- public string Title { get; set; }
- public string Content { get; set; }
- public int Category { get; set; }
- }
- }
接下来,我们将定义两个接口,分别是公告类别服务和公告服务必须实现的接口。这两个接口放在Interfaces下。
ICategoryService.cs:
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using MVCDemo.Models.Entities;
- namespace MVCDemo.Models.Interfaces
- {
- ///
- /// 分类服务组件接口
- ///
- public interface ICategoryService
- {
- ///
- /// 添加分类
- ///
- ///
- void Add(CategoryInfo category);
- ///
- /// 修改分类名称
- ///
- ///
- ///
- void ChangeName(int id,string name);
- ///
- /// 删除分类
- ///
- ///
- void Remove(int id);
- ///
- /// 取得某个分类详细信息
- ///
- ///
- ///
- CategoryInfo GetDetail(int id);
- ///
- /// 取得所有分类
- ///
- ///
- List GetAll();
- }
- }
IAnnounceService.cs
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using MVCDemo.Models.Entities;
- namespace MVCDemo.Models.Interfaces
- {
- ///
- /// 公告服务组件接口
- ///
- public interface IAnnounceService
- {
- ///
- /// 发布公告
- ///
- ///
- void Release(AnnounceInfo announce);
- ///
- /// 修改公告信息
- ///
- ///
- void Notify(AnnounceInfo announce);
- ///
- /// 删除公告
- ///
- ///
- void Remove(int id);
- ///
- /// 取得公告详细内容
- ///
- ///
- ///
- AnnounceInfo GetDetail(int id);
- ///
- /// 取得某个分类下的所有公告
- ///
- ///
- ///
- List GetByCategory(CategoryInfo category);
- }
- }
然后,我们在MockModels下建立两个Mock业务逻辑服务模型。注意它们要各自实现自己的接口。
MockCategoryService.cs:
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Web;
- using MVCDemo.Models.Interfaces;
- using MVCDemo.Models.Entities;
- namespace MVCDemo.Models.MockModels
- {
- ///
- /// “欺骗”服务组件,用于模拟分类的业务服务
- ///
- public class MockCategoryService : ICategoryService
- {
- ///
- /// 添加分类
- ///
- ///
- public void Add(CategoryInfo category)
- {
- return;
- }
- ///
- /// 修改分类名称
- ///
- ///
- ///
- public void ChangeName(int id, string name)
- {
- return;
- }
- ///
- /// 删除分类
- ///
- ///
- public void Remove(int id)
- {
- return;
- }
- ///
- /// 取得某个分类详细信息
- ///
- ///
- ///
- public CategoryInfo GetDetail(int id)
- {
- return new CategoryInfo
- {
- ID = id,
- Name = "***通告",
- };
- }
- ///
- /// 取得所有分类
- ///
- ///
- public List GetAll()
- {
- List categories = new List ();
- for (int i = 1; i <= 5; i++)
- {
- CategoryInfo category = new CategoryInfo
- {
- ID = i,
- Name="通告类别"+i,
- };
- categories.Add(category);
- }
- return categories;
- }
- }
- }
MockAnnounceService.cs
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Web;
- using MVCDemo.Models.Interfaces;
- using MVCDemo.Models.Entities;
- namespace MVCDemo.Models.MockModels
- {
- ///
- /// “欺骗”服务组件,用于模拟公告的业务服务
- ///
- public class MockAnnounceService : IAnnounceService
- {
- ///
- /// 发布公告
- ///
- ///
- public void Release(AnnounceInfo announce)
- {
- throw new Exception("发布公告失败了!原因?没有原因!我是业务组件,我说失败就失败!");
- return;
- }
- ///
- /// 修改公告信息
- ///
- ///
- public void Notify(AnnounceInfo announce)
- {
- return;
- }
- ///
- /// 删除公告
- ///
- ///
- public void Remove(int id)
- {
- return;
- }
- ///
- /// 取得公告详细内容
- ///
- ///
- ///
- public AnnounceInfo GetDetail(int id)
- {
- return new AnnounceInfo
- {
- ID = id,
- Title = "第" + id + "则公告",
- Content = "全体同学明早九点集体做俯卧撑!",
- };
- }
- ///
- /// 取得某个分类下的所有公告
- ///
- ///
- ///
- public List GetByCategory(CategoryInfo category)
- {
- List announces = new List ();
- for (int i = 1; i <= 10; i++)
- {
- AnnounceInfo announce = new AnnounceInfo
- {
- ID = i,
- Title = category.Name+ "的第" + i + "则公告",
- Content = "全体同学明早九点集体做俯卧撑!",
- };
- announces.Add(announce);
- }
- return announces;
- }
- }
- }
可以看到,这两个类并没有访问数据库,也没有实现真正的业务逻辑,而不过是“捏造”了一些数据骗骗我们的表示层而已。
***,我们要建立一个生成业务逻辑模型的生成器,用来实现表示层和业务逻辑层的解耦。当然,为了简化复杂度,这里没有使用依赖注入机制。下面是我们生成器的代码,这个类是直接放在Models下的。
ServiceBuilder.cs:
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Web;
- using MVCDemo.Models.Interfaces;
- using MVCDemo.Models.MockModels;
- namespace MVCDemo.Models
- {
- ///
- /// 服务组件生成类,用于生成业务服务组件
- ///
- public sealed class ServiceBuilder
- {
- ///
- /// 创建分类服务组件
- ///
- /// 分类服务组件
- public static ICategoryService BuildCategoryService()
- {
- return new MockCategoryService();
- }
- ///
- /// 创建公告服务组件
- ///
- /// 公告服务组件
- public static IAnnounceService BuildAnnounceService()
- {
- return new MockAnnounceService();
- }
- }
- }
OK,到这里,我们的准备工作就做完了。完成这些后,系统的目录结构如下图所示:
在这篇文章中,我们只是讲了一下这个系列文章要做什么,以及为案例做了一些准备工作。从下篇开始,我们将继续通过asp.net.mvc教程(二)介绍如何正式开始使用asp.net.mvc完成这个案例。
分享文章:ASP.NETMVC教程(一):准备工作
当前链接:http://www.shufengxianlan.com/qtweb/news20/139670.html
网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联