asp.net – 3层架构 – 需要一个例子
目前我正在使用单层架构.现在我想要学习如何使用3层架构编写代码.请给我一个简单的例子?
解决方法
这是我在项目中所拥有的.不仅仅是一个传统的3层架构.
1)应用基础设施 >所有业务对象的基类,业务对象集合,数据访问类和我的自定义属性和实用程序作为扩展方法,通用验证框架.这决定了我的最终.net应用程序的整体行为组织. 2.)Application.DataModel >数据库的类型化数据集. 3.)Application.DataAccess >数据访问类. 4.)Application.DomainObjects >业务对象和业务对象集合. 5.)Application.BusinessLayer >提供从Presentation层访问的管理员类. 6.)Application.WebClient或Application.WindowsClient >我的演示层 Application.BusinessObjects跨越应用程序使用,并且每当需要时跨越所有层次[除了Application.DataModel和Application.Infrastructure] 我的所有查询都仅定义Application.DataModel. Application.DataAccess返回或将业务对象作为任何数据访问操作的一部分.在反射属性的帮助下创建业务对象.每个业务对象都标有与数据库中的目标表的属性映射,业务对象中的属性将标记为映射到相应数据库表中的目标列的属性. 我的验证框架允许我在指定的ValidationAttribute的帮助下验证每个字段. 我的框架大量使用属性来自动执行大多数繁琐的任务,如映射和验证.我也可以将新功能作为框架的新方面. 在我的应用程序中,示例业务对象将如下所示. User.cs [TableMapping("Users")] public class User : EntityBase { #region Constructor(s) public AppUser() { BookCollection = new BookCollection(); } #endregion #region Properties #region Default Properties - Direct Field Mapping using DataFieldMappingAttribute private System.Int32 _UserId; private System.String _FirstName; private System.String _LastName; private System.String _UserName; private System.Boolean _IsActive; [DataFieldMapping("UserID")] [DataObjectFieldAttribute(true,true,false)] [NotNullOrEmpty(Message = "UserID From Users Table Is Required.")] public override int Id { get { return _UserId; } set { _UserId = value; } } [DataFieldMapping("UserName")] [Searchable] [NotNullOrEmpty(Message = "Username Is Required.")] public string UserName { get { return _UserName; } set { _UserName = value; } } [DataFieldMapping("FirstName")] [Searchable] public string FirstName { get { return _FirstName; } set { _FirstName = value; } } [DataFieldMapping("LastName")] [Searchable] public string LastName { get { return _LastName; } set { _LastName = value; } } [DataFieldMapping("IsActive")] public bool IsActive { get { return _IsActive; } set { _IsActive = value; } } #region One-To-Many Mappings public BookCollection Books { get; set; } #endregion #region Derived Properties public string FullName { get { return this.FirstName + " " + this.LastName; } } #endregion #endregion public override bool Validate() { bool baseValid = base.Validate(); bool localValid = Books.Validate(); return baseValid && localValid; } } BookCollection.cs /// <summary> /// The BookCollection class is designed to work with lists of instances of Book. /// </summary> public class BookCollection : EntityCollectionBase<Book> { /// <summary> /// Initializes a new instance of the BookCollection class. /// </summary> public BookCollection() { } /// <summary> /// Initializes a new instance of the BookCollection class. /// </summary> public BookCollection (IList<Book> initialList) : base(initialList) { } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- ASP.Net注销代码块
- 如何在ASP.NET MVC应用程序中组织JavaScript代码
- asp.net – IIS7:服务应用程序池“YYYYY”的进程与Windows
- 如何在Substitution控件中使用ASP.Net服务器控件?
- asp.net – Webmatrix 2:存储静态值
- asp.net-mvc-3 – 带有asp.net mvc 3的$ajax内的相对URL
- asp.net-mvc – ASP.NET MVC 2 RC区域和共享模型
- asp.net – 如何强制netwtonsoft json序列化程序序列化date
- asp.net-mvc – 如何自动刷新部分视图?
- asp.net – IIS Web服务器中的此错误(扩展配置)是什么?
- Asp.Net / C#何时?等于A? (é等于E)
- asp.net-mvc-3 – mvc3 jquery unobtrusive验证语
- asp.net – GCFrame在WinDBG中输出!clrstack命令
- asp.net – 如何在web.config中设置text / html的
- asp.net-mvc – ASP.NET MVC 3简单可靠的移动设备
- asp.net-web-api – 仅在第一个Web请求(WebAPI 2
- asp.net – 断点当前不会被命中 – 没有可执行代
- asp.net – 部署到Azure后编译器错误
- asp.net – 在MVC视图上没有客户端密码匹配
- asp.net – Azure Web角色 – 长时间运行请求(负