用fluentdata+webform做一个简单项目(1)-组织结构

本文介绍了作者使用ASP.NET WebForm结合FluentData库构建项目时的代码组织方式。项目分为.Utility(工具类)、.Core(数据访问与服务)、.Service(业务逻辑)三个主要部分,并根据需求添加其他目录。在.Service层,复杂逻辑通过专门的单元工作类实现,Factory用于基础数据操作。最后提到了项目前端可以是WebForm、Website或MVC,并倾向于使用WebForm结合WebAPI。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

从接触asp.net那天算起,至今已有5,6个年头了,从对后端编程一窍不通到现在勉强能算熟练制作简单b/s架构的项目,一路走来虽然磕磕绊绊,但也算勤勤恳恳,看了不少,学了不少,期间,尝试过传统三层架构,单类,webform中直接使用linqtosql,mvc+entityframework等几种,慢慢也形成了自己喜欢的一种写法,非架构,更多的只是项目代码的组织方式。

目录很简单,如下:

项目名称.Utility        // 工具类,封装读写txt之类的公共方法
项目名称.Core           // 核心层,数据model、业务模型、接口定义等
项目名称.Service        // 数据层+业务逻辑层
项目名称.Web            // 站点、view层、mvc、webform、webapi之类
整个项目有点像mvc,分别对应core、web、service三个目录。

项目名称.Utility 

各种工具类,估计每个程序员手里都有一套。

项目名称.Core:

项目名称.Core.Models      // 数据模型,可以像entityframe一样,用 public virtual 对象类型 属性名 {get;set;} 的方式定义关联对象
项目名称.Core.Interface   // 项目中使用的接口在这里定义
项目名称.Core.Business    // 业务模型,对应三层中的BllModel,当数据模型在业务代码中无法满足需要,在这里定义新的类型以方便业务逻辑调用
项目名称.Core.Common      // 通用层,如BaseModel,BaseResponse之类的通用类在这里定义
项目名称.Core.Api         // api模型,如需开放或者调用第三方api,在这里定义对应的request和response数据类
除了models和common,其他目录都非必须,对大部分小型项目而言,只要这两个目录就足够了。

项目名称.Service

项目名称.Services.Factory     // 跟数据库相关的所有代码都写在这里
项目名称.Services.UnitOfWork  // 较复杂的逻辑写在这里
项目名称.Services.Other       // 其他功能性代码写在这里
除了Factory,其他目录都非必须。

一般数据的增删改查,直接使用Factory即可,有些复杂的逻辑,如操作订单,可能读写多个对象,这时可以把这些逻辑写到新的OrderUnitWork类中,这样有助于类职责的专一和独立。一般factory类可使用工具自动生成。

除了这两个目录,可以根据项目的需求添加其他目录(如:Other)来保存相关的功能性代码或配置。比如:在Utility中有一个上传图片的imageuploader通用类,调用时需指定保存路径,而在此项目中保存目录的规则是统一的,就可以在services类库中创建一个项目专用的已配置好的imageuploader类,供其他层调用。

项目名称.Web

这里可以是webform,可以是website,也可以是mvc和webapi,习惯哪个用哪个即可。个人比较喜欢website的方式,不过为了可以定义webapi,目前大部分时间使用webform+webapi的方式。偶尔使用mvc+webap。

好了,组织方式先到这里,下一篇,Core层相关的一些配置。谢谢~




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值