希望各位高手指点小弟一下,万分感激
UP者有分

解决方案 »

  1.   

    http://www.microsoft.com/china/MSDN/library/enterprisedevelopment/builddistapp/Microsoft.NETPetShop3.0.mspx
      

  2.   

    仔细研究过PetShop没有?那里面很清楚了。个人感觉两层、三层、四层都无所谓,主要是逻辑清析,根据自己的情况来做,像我这段时间做的一个项目,开始计划有三个人就决定分三层来做,每人负责一层吧。可等我好不容易写完基类、接口、以及大部分业务逻辑的方法,发现另外两个人不会来了,那个痛苦啊,一个本来一句就能实现的功能非得在几个层里都去露个面。所以分层一定得根据需求和团队来设计。
      

  3.   

    假如说 Pet Shop 之类的东西内部既有“阳春白雪”又有别的,很多人斤斤乐道于其中最容易抄袭下来的一些鸡毛蒜皮的做法,对架构从来不自己去亲自详细研究。人家已经固定下来的东西,有它的道理。我们要么全面接受它,要么创造出比较完整的东西取代它。总之是不要在这些地方犹犹豫豫,好像是在学习东西,其实是在空耗时间。
      

  4.   

    来自于java早期架构的东西,大多数都比较陈旧。例如过去java中对于反射支持比较死板和简单,就可以知道其各种引擎系统会设计得多么繁琐、难以理解和扩展。像 Pet Shop 这类东西在设计上对于好的项目架构来说已经是落后好几年的了,但是如果你抠他们的细节,那么永远没个完。就像是不去全面衡量项目效率,而是去陶醉于汇编语言或者c语言的“细致”,那么增长了学究气而不一定增长了完成项目的能力。
      

  5.   

    sp1234说的很有道理
    不过推荐楼主先学Pet Shop
      

  6.   

    三层其实没初学时想象的那么复杂、高深。
    看一个简单的例子就能明白的。
    比如大家推荐的PetShop
      

  7.   

    我也正看Duwamish,不过希望有人给我解释一下结构!我的Email是[email protected]先谢谢了!有网址!
      

  8.   

    要根据具体需求而定:一班分为五层比较合理:表现层;控制层;业务逻辑层;数据实体层;物理实体层。很多j2ee就根据这五层展开的
      

  9.   

    要根据具体需求而定:一班分为五层比较合理:表现层;控制层;业务逻辑层;数据实体层;物理实体层。很多j2ee就根据这五层展开的
      

  10.   

    www.asp.net有一些微软自己的例子,都是基于三层架构的,去看看吧!
      

  11.   

    www.aspxcn.org有三层结构代码简化版!
    借鉴了Petshop3。0!
      

  12.   

    我门的系统也是5层的,GUI,业务外观层(接口),业务逻辑层,数据持久层,数据层
      

  13.   

    依我认为,这样比较清晰,不必搞得这么复杂。
    1、新建一个项目。
    2、添加,新建项目,类库。(需要多少层就建多少次)
    在需要引用的地方加上using即可。
      

  14.   

    Web 层 Web 层为客户端提供对应用程序的访问。这一层是作为 Duwamish.sln 解决方案文件中的 Web 项目实现的。Web 层由 ASP.NET Web 窗体和代码隐藏文件组成。Web 窗体只是用 HTML 提供用户操作,而代码隐藏文件实现各种控件的事件处理。 业务外观层 业务外观层为 Web 层提供处理帐户、类别浏览和购书的界面。这一层是作为 Duwamish.sln 解决方案文件中的 BusinessFacade 项目实现的。业务外观层用作隔离层,它将用户界面与各种业务功能的实现隔离开来。除了低级系统和支持功能之外,对数据库服务器的所有调用都是通过此程序集进行的。 业务规则层 业务规则层是作为 Duwamish.sln 解决方案文件中的 BusinessRules 项目实现的,它包含各种业务规则和逻辑的实现。业务规则完成如客户帐户和书籍订单的验证这样的任务。 数据访问层 数据访问层为业务规则层提供数据服务。这一层是作为 Duwamish.sln 解决方案文件中的 DataAccess 项目实现的。 代码示例: 以下是两种不同处理路径的代码示例: 获取商品目录 表示层调用业务外观层: productSystem = new ProductSystem(); categorySet = productSystem.GetCategories(categoryID); 业务外观层直接调用数据层: public CategoryData GetCategories(int categoryId) 

    if ( dsCommand == null ) 

    throw new System.ObjectDisposedException( GetType().FullName ); 

    return FillCategoryData("GetCategories", "@CategoryId", categoryId); 
    } 添加定单 表示层调用业务外观层: public void AddOrder() 

    ApplicationAssert.CheckCondition(cartOrderData != null, "Order requires data", ApplicationAssert.LineNumber); 
    ApplicationLog.WriteTrace("Duwamish7.Web.Cart.AddOrder:\r\nCustomerId: " + 
    cartOrderData.Tables[OrderData.CUSTOMER_TABLE].Rows[0][OrderData.PKID_FIELD].ToString()); 
    cartOrderData = (new OrderSystem()).AddOrder(cartOrderData); 
    } 业务外观层调用业务规则层: public OrderData AddOrder(OrderData order) 

    ApplicationAssert.CheckCondition(order != null, "Order is required", ApplicationAssert.LineNumber); (new BusinessRules.Order()).InsertOrder(order); 
    return order; 
    } 业务规则层调用数据层: public bool InsertOrder(OrderData order) 

    //此处省略复杂的处理逻辑 
    if ( isValid ) 

    using (DataAccess.Orders ordersDataAccess = new DataAccess.Orders()) 

    return (ordersDataAccess.InsertOrderDetail(order)) > 0; 


    else 
    return false; 

      

  15.   

    微软有没有基于c#的petshop 代码?
      

  16.   

    aspxcn.org上面得东西怎么下载不了,也没法注册
      

  17.   

    楼上的都讲得差不多了,我给楼主个例子:
    http://1621.cn/AspNet/ThreeLayer.rar我以前有不懂什么叫三层,照做这个例子做了个小项目就会了!!!
      

  18.   

    Web 层 Web 层为客户端提供对应用程序的访问。这一层是作为 Duwamish.sln 解决方案文件中的 Web 项目实现的。Web 层由 ASP.NET Web 窗体和代码隐藏文件组成。Web 窗体只是用 HTML 提供用户操作,而代码隐藏文件实现各种控件的事件处理。 业务外观层 业务外观层为 Web 层提供处理帐户、类别浏览和购书的界面。这一层是作为 Duwamish.sln 解决方案文件中的 BusinessFacade 项目实现的。业务外观层用作隔离层,它将用户界面与各种业务功能的实现隔离开来。除了低级系统和支持功能之外,对数据库服务器的所有调用都是通过此程序集进行的。 业务规则层 业务规则层是作为 Duwamish.sln 解决方案文件中的 BusinessRules 项目实现的,它包含各种业务规则和逻辑的实现。业务规则完成如客户帐户和书籍订单的验证这样的任务。 数据访问层 数据访问层为业务规则层提供数据服务。这一层是作为 Duwamish.sln 解决方案文件中的 DataAccess 项目实现的。
    productSystem = new ProductSystem(); categorySet = productSystem.GetCategories(categoryID); 业务外观层直接调用数据层: public CategoryData GetCategories(int categoryId) 

    if ( dsCommand == null ) 

    throw new System.ObjectDisposedException( GetType().FullName ); 

    return FillCategoryData("GetCategories", "@CategoryId", categoryId); 
    } 添加定单 表示层调用业务外观层: public void AddOrder() 

    ApplicationAssert.CheckCondition(cartOrderData != null, "Order requires data", ApplicationAssert.LineNumber); 
    ApplicationLog.WriteTrace("Duwamish7.Web.Cart.AddOrder:\r\nCustomerId: " + 
    cartOrderData.Tables[OrderData.CUSTOMER_TABLE].Rows[0][OrderData.PKID_FIELD].ToString()); 
    cartOrderData = (new OrderSystem()).AddOrder(cartOrderData); 
    } 业务外观层调用业务规则层: public OrderData AddOrder(OrderData order) 

    ApplicationAssert.CheckCondition(order != null, "Order is required", ApplicationAssert.LineNumber); (new BusinessRules.Order()).InsertOrder(order); 
    return order; 
    } 业务规则层调用数据层: public bool InsertOrder(OrderData order) 

    //此处省略复杂的处理逻辑 
    if ( isValid ) 

    using (DataAccess.Orders ordersDataAccess = new DataAccess.Orders()) 

    return (ordersDataAccess.InsertOrderDetail(order)) > 0; 


    else 
    return false; 

      

  19.   

    我个人认为并不是看看PetShop就能解决的问题。多做项目。
      

  20.   

    vs2003有带一个分层的实例,可以参考一下,(duwamish)
    D:\Program Files\Microsoft Visual Studio .NET 2003\Enterprise Samples\Duwamish 7.0 VB
      

  21.   

    duwamish是非常好的例子
    MSDN中也有些文档
    C:\Program Files\Microsoft Visual Studio .NET 2003\Enterprise Samples\FMStocks7
    是个更好的例子
      

  22.   

    duwamish与PetShop都是很好的例子
    但问题是这两个项目是按什么方法、什么顺序构建出来的,大家都好像避而不谈。这才是初学者最想知道的啊。
      

  23.   

    我的理解:LZ要知道怎么建立3层结构样式的程序而已。1、建立空白解决方案2、解决方案下建立ASP.NET应用程序,建立BLL类库,解决方案DAL类库
      

  24.   

    赞同esoft98
    个人认为
    楼上诸位大大首次接触duwamish或PetShop
    肯定没现在的觉悟
    估计中间走了不少弯路、歧途
    可能现在回过头来想觉得很可笑,很弱智
    但是却不肖写出来罢
    什么是初学者?
    就是以后要走弯路的
    只不过
    想借鉴下前辈们的经历
    少弯几圈而已
      

  25.   

    http://www.chinaworkroom.com/Bbs/ViewTopic.aspx?TopicID=115&boardID=36
      

  26.   

    http://www.chinaworkroom.com/Bbs/ViewTopic.aspx?TopicID=115&boardID=36
      

  27.   

    yhtapmys(极品猪) 说得很对,我现在还没有看懂那两个例子呢。