web winform 如何共用 BLL DAL?

问题描述

使用三层结构开发的项目,有Web版,也有Winform版,内容基本上是一致的。能不能把BLLDAL放在公共处,两者共同引用?可以的话请帮我说下怎么搞,项目的架构应该是怎样的?

解决方案

解决方案二:
添加两个不同的项目就行了啊,一个web,一个winform两个建在同一个解决方案下就行了啊
解决方案三:
开接口,web和winform都通过接口层来调用具体方法
解决方案四:
blldalmodelui这个本身就支持webwinfrom一起上的,你把这些东西全部建立在一个解决方案下面,winfrom,web都要用bll,model就可以了
解决方案五:
BLL基本上是通用的,只是BLL外边一般来说可以包一层“GateWay”层,用来处理接入形式的不同。如果是一个本地应用调用本地的BLL(这种情况在我这里并不适用),那么就可以忽略GateWay层。如果你是通过网络的,那么前端会有一个适配GateWay,服务器端则会有至少一种GateWay。比如说你可能通过80端口、通过web服务形式来发布200个接口功能,同时你又通过6999端口、通过websocket形式在json的基础上扩展自定义信令来发布220个接口功能,然后你的服务器端实际上还接受MSMQ方式的10个命令,还可以通过普通的http网页get方式下载任意图片资源.........面向服务设计开发框架,是要把服务独立出来考虑,因此就是要求你是否了解轻量级的GateWay的设计。此时就不纠结于前端用什么开发工具,而是要看前端能用什么通讯方式跟服务器通讯。
解决方案六:
对于大多数刚学asp.net没有2、3年的程序员来说,他搞不清楚一件事儿,其实他学习的asp.net编程方式也就是刚学winform的人学到的那种调用本地数据库驱动的方式(只不过这个数据库驱动可以远程访问数据库服务器)。他搞不清楚这时候有没有必要使用三层架构。这时候其实倾向于没有必要使用三层架构。只有当你的远程服务增多了时候,你需要将牺牲一点“数据库访问效率”来将系统的吞吐能力大大提高的时候(每一个单机的访问服务都降低了10%,但是整个系统的数据服务能力提高了10倍以上),特别是你模拟服务于不同的前端开发团队,这时候就可以专门成立一个团队(或者小组)负责研发BLL层。
解决方案七:
一个解决方案可以有类库,也可以有winform,更可以有webform……
解决方案八:
简单地说“使用三层结构开发的项目”的做法,简单地动不动就在解决方案下面“放三个工程、或者三个目录”的做法,我其实不知道这有什么。如果你的一个工程在多个解决方案都使用,甚至是单独打包发布到互联网上、供其它不认识的团队去使用,你说这个时候它的功能叫做“BLL层”或者叫做“DAL层”,这个时候它的价值就可以客观衡量。如果是只有自己在一个解决方案里弄三个工程或者三个目录,也就是走走形式、学学(最简单的)理论、孤芳自赏。离三层设计的目标还很远,因为你在此还没有遇到真正的挑战。
解决方案九:
引用楼主xuebao2的回复:

使用三层结构开发的项目,有Web版,也有Winform版,内容基本上是一致的。能不能把BLLDAL放在公共处,两者共同引用?可以的话请帮我说下怎么搞,项目的架构应该是怎样的?

如果人少(只有3个人),并且你就是本地访问的系统,那么不同解决方案里直接加入相同的BLL+DAL工程(完全用不着把BLL和DAL分成两个工程,甚至完全用不着自己开发DAL层),只不过负责前端开发的人只看不改那些与己无关的源代码。如果人多一点,特别是当你使用正规的c/s(前端访问自己公司的server层,而不是直接访问数据库系统)或者b/s方式访问服务的时候,那么前端的工程中只应该有一个分非常简单通用的GateWay层,用来能够方便地(例如只写一句话地)调用服务器端的功能调用。这时候就谈不上”放在公共处“了,而是网络架构了。
解决方案十:
引用6楼starfd的回复:

一个解决方案可以有类库,也可以有winform,更可以有webform……

+1建完之后,学一下怎么引用
解决方案十一:
你可以仔细考虑一下所谓”放在公共处,两者共同引用“这个说法背后的依据,就会发现,这主要是做单机小程序的思路。如果你做b/s上的服务,你的服务是独立对外服务的,不管是javascript、java、c#写的web还是桌面程序都能访问。如果你做桌面的服务也是如此,不管是哪种语言的、不管是web还是桌面的程序都能访问。结果就是,服务器端根本不纠结于客户端是asp.net页面、浏览器端javascript客户端应用,还是wpf、wenform程序的访问。那么如果万一你有一天是做这种开发,你就不提”放在公共处,两者共同引用“这类说法了。
解决方案十二:
真放到一起,那么winform基本上就是sp说的,单机小程序了。。。

时间: 2024-10-04 10:34:08

web winform 如何共用 BLL DAL?的相关文章

在ASP.NET 2.0中操作数据之十八:在ASP.NET页面中处理BLL/DAL层的异常_自学过程

导言 在一个使用了分层体系架构的ASP.NET web应用系统里处理数据,一般遵循以下几步: 1.确定业务逻辑层需要调用哪个方法,并且需要出入哪些参数.这些参数可以通过硬编码设置,程序自动设定,或者由用户输入. 2.调用此方法. 3.处理结果.当调用一个返回数据的BLL方法时,这包括绑定数据到Data Web服务器控件.而对于修改数据的BLL方法而言,这包括基于返回值的基础上执行某些动作,或者适当地处理在第二步中引发的异常. 正如我们在前一节里看到的,无论ObjectDataSource控件还是

ASP.NET 2.0数据教程之十八:在ASP.NET页面中处理BLL/DAL层的异常

返回"ASP.NET 2.0数据教程目录" 导言 在一个使用了分层体系架构的ASP.NET web应用系统里处理数据,一般 遵循以下几步: 1.确定业务逻辑层需要调用哪个方法,并且需要出入哪些 参数.这些参数可以通过硬编码设置,程序自动设定,或者由用户输入. 2.调用此方法. 3.处理结果.当调用一个返回数据的BLL方法时, 这包括绑定数据到Data Web服务器控件.而对于修改数据的BLL方法而言,这包括 基于返回值的基础上执行某些动作,或者适当地处理在第二步中引发的异常. 正如我们

在ASP.NET 2.0中操作数据之三十八:处理BLL和DAL的异常_自学过程

导言 在DataList里编辑和删除数据概述里,我们创建了一个提供简单编辑和删除功能的DataList.虽然功能上已经完整了,但是对用户来说是不友好的.因为所有在编辑和删除过程中产生的异常都是未处理的.比如,遗漏了输入product的name,或者编辑product时在price里输入"Very affordable!",都会抛出异常.而由于在代码里未捕捉这些异常,页面会显示ASP.NET运行时的详细错误信息. 如我们在在ASP.NET页面中处理BLL/DAL层的异常里看到的,如果BL

在WinForm中使用Web Services 来实现 软件 自动升级( Auto Update ) (C#)

services|web winform程序相对web程序而言,功能更强大,编程更方便,但软件更新却相当麻烦,要到客户端一台一台地升级,面对这个实际问题,在最近的一个小项目中,本人设计了一个通过软件实现自动升级技术方案,弥补了这一缺陷,有较好的参考价值. 一.升级的好处. 长期以来,广大程序员为到底是使用Client/Server,还是使用Browser/Server结构争论不休,在这些争论当中,C/S结构的程序的可维护性差,布置困难,升级不方便,维护成本高就是一个相当重要的因素,也是那些B/S

ASP.NET 2.0数据教程之三十八:处理BLL和DAL的异常

返回"ASP.NET 2.0数据教程目录" 在 综叙:在DataList里编辑和删除数据 里,我们创建了一个提供简单编辑和 删除功能的DataList.虽然功能上已经完整了,但是对用户来说是不友好的.因 为所有在编辑和删除过程中产生的异常都是未处理的.比如,遗漏了输入product 的name,或者编辑product时在price里输入"Very affordable!", 都会抛出异常.而由于在代码里未捕捉这些异常,页面会显示ASP.NET运行时的详 细错误信息.

signalr 服务端使用winform或服务作宿主,怎么做权限验证呢

问题描述 signalr服务端使用winform或服务作宿主,怎么做权限验证呢并且可以同时支持web,winform客户端面的验证 解决方案

.NET抽象工厂模式微理解:教你在项目中实现抽象工厂

最近在学习MVC,对于MVC里面的一些项目上的东西都和抽象模式有关,今天就微说明一下个人对于抽象工厂模式的理解,以方便学习MVC及工厂模式相关的同事和博友们理解.不足之处,还请斧正! 首先简单阐述一些三层的关系,相信观看该文章的博友们对于三层设计早已经是烂熟于心了,我这边就简单说明一下: 用户界面表示层(Web) 业务逻辑层(BLL) 数据访问层(DAL) 1:数据数据访问层:主要是对原始数据(数据库或者文本文件等存放数据的形式)的操作层,而不是指原始数据,也就是说,是对数据的操作,而不是数据库

达达平台的物流场景

业务场景 达达是全国领先的最后三公里物流配送平台. 达达的业务模式与滴滴以及Uber很相似,以众包的方式利用社会闲散人力资源,解决O2O最后三公里即时性配送难题. 达达业务主要包含两部分:商家发单,配送员接单配送,如下图所示. 达达的业务规模增长极大,在1年左右的时间从零增长到每天近百万单,给后端带来极大的访问压力.压力主要分为两类:读压力.写压力.读压力来源于配送员在APP中抢单,高频刷新查询周围的订单,每天访问量几亿次,高峰期QPS高达数千次/秒.写压力来源于商家发单.达达接单.取货.完成等

在线自动生成三层架构

问题描述 界面不好,大家不要批评了.请登陆到http://52csharp.com本工具是本网站专用的sql小工具.1.直接打开生成项目下面sql文件夹中的sql脚本文件2.填写数据库服务器名称3.填写数据库用户名密码4.测试数据连接合法性5.生成数据库同时生成db.ini文件.6.把db.ini文件拷贝到编译完成的应用程序下面7.在web里面要引用本网站提供在线通过输入数据库结构自动生成代码,生成的代码基于基于面向对象的思想和三层架构设计,融入了工厂模式,反射机制等等一些思想.采用Model+