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角色 – 长时间运行请求(负
 
