【1‘m confused】.NET平台框架(架构)设计

JingPrayer 2017-08-04 11:11:53
需求:
局域网系统,规模50人以内使用;
客户端通过ftp上传文件到ftp服务器;
客户端需要发送执行命令,大量的数据处理在服务器端进行;
同时后台数据库包括系统支撑数据库和业务数据库;
数据处理过程需要使用第三方开发包,只能选.net平台;
受很多图形控件限制,客户端显示也必须使用WPF或者winfom
问题:
客户端使用winform或者wpf,没问题;
服务器端如何设计就搞不懂了。虽然有客户端,但是目的是将大量的数据处理都放在服务器端处理,就类似于b/s模式, 首先想到的就是三层设计,主要是业务逻辑层的实现,要用哪种技术?asp.net?windows service?wcf?web service?
...全文
1671 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
wanghui0380 2018-03-21
  • 打赏
  • 举报
回复
这个本身不是问题,问题是你能不能跳开樊笼。 net程序员受历史影响,没有多少架构思维。一谈到服务就是wcf,webservice,webapi 其实本身无所谓,他是服务层。怎么样服务都是服务层。 比如我现在就做一个单机的系统。我收到请求,并行处理,异步发送。计算模块独立运作,协同通知。有问题没有,没有把? 如果这个没有问题。那么你觉着我在这个单机系统上,对外在假设一个服务层,有问题么??对外这一层随便你写,singlR推送可以,webservice可以,wcf没问题,tcp问题,websocket没问题,akka.net没问题,ribitmq没问题。 其实服务这一层本身并不是问题,问题其实是我红字标出来的部分,你能单机处理这个过程,就能搞定问题。 所以别偏离你的问题领域,XX园一堆人玩DDD,单真正没跑偏的没几个,DDD的核心是“靠近问题领域编程”,不是我用一个框架就叫领域了。同样你的问题也是一样,最终归结到,你的问题领域核心本质,你要做的业务逻辑是什么,如何并发,限流,如何异步处理,如何分布协同。而不是我是不是要用一个wcf做服务?
wang_xu_xiang 2018-03-16
  • 打赏
  • 举报
回复
服务端可以通过socket,数据库记录等和客户端通讯。socket不介绍。通过数据库时,客户端写一条记录到数据库, 记录默认标志位0,服务端定时读取,读到命令执行后,修改标志位为1。服务端采用bs或者cs均可。使用数据做中间连接只对及时性要求不高情况下。及时性要求高建议用socket。
  • 打赏
  • 举报
回复
引用 5 楼 JingPrayer 的回复:
再加上用户权限管理,流程控制等要求,还是要有个框架
熟练的开发者是主动的,而不是被动的;是从更加顺手地干大事儿出发的,而不是从技术出发的。
  • 打赏
  • 举报
回复
引用 3 楼 JingPrayer 的回复:
[quote=引用 1 楼 starfd 的回复:] 你这个数据处理应该不是实时的吧?不是的话就通过quartz.net这个job来定时执行 上传ftp后,应该发个command给webapi服务,这样job才能知道要不要去ftp拉数据
拉数据这个可以先不用考虑,系统本身就是一个管理系统,有流程控制,客户端上传成功后,消息传递到下一环节,由他再进行处理。其实说白了如果用b/s的话直接就asp.net实现,现在就是不想拘泥于asp.net,因为服务是给富客户端访问的,甚至后期要给移动端访问。(或者我误解asp.net)[/quote] 从专业做服务器软件的角度,那么显然应该把 asp.net 系统环境理解为客户端(网页承载站)而不是服务器。专业的服务器随windows启动而启动,起上边编程实现的东西并不响应什么用户鼠标键盘,而是更高级更粗粒度的业务逻辑请求。并且服务器系统通常同时实现多种通讯协议,特别是双向、实时的 tcp 通讯。
  • 打赏
  • 举报
回复
引用 楼主 JingPrayer 的回复:
asp.net?windows service?wcf?web service?
这些从提供客户端访问服务功能上,没有区别。 你提出什么样的问题,决定了你得到的回答。你提的问题如果只关心皮毛,那么也只能从这个层面给你回答,不会更多。
正怒月神 2017-08-04
  • 打赏
  • 举报
回复
引用 4 楼 JingPrayer 的回复:
大概就是这个意思,当然除了整理,服务端还要借助第三方开发包处理数据(也算是整理数据吧)。只是我对asp.net /web service /windows service/wcf等这些东西都是知道个皮毛,就整迷茫了
window服务很简单,你网上找个教程。编写测试完成后。 用cmd命令注册到服务里,然后设置自动运行就好了。
JingPrayer 2017-08-04
  • 打赏
  • 举报
回复
引用 4 楼 JingPrayer 的回复:
[quote=引用 2 楼 hanjun0612 的回复:] 看起来就是 服务器跑一个 windowservice,这个服务用来整理ftp数据而已。
大概就是这个意思,当然除了整理,服务端还要借助第三方开发包处理数据(也算是整理数据吧)。只是我对asp.net /web service /windows service/wcf等这些东西都是知道个皮毛,就整迷茫了 [/quote] 再加上用户权限管理,流程控制等要求,还是要有个框架
JingPrayer 2017-08-04
  • 打赏
  • 举报
回复
引用 2 楼 hanjun0612 的回复:
看起来就是 服务器跑一个 windowservice,这个服务用来整理ftp数据而已。
大概就是这个意思,当然除了整理,服务端还要借助第三方开发包处理数据(也算是整理数据吧)。只是我对asp.net /web service /windows service/wcf等这些东西都是知道个皮毛,就整迷茫了
JingPrayer 2017-08-04
  • 打赏
  • 举报
回复
引用 1 楼 starfd 的回复:
你这个数据处理应该不是实时的吧?不是的话就通过quartz.net这个job来定时执行 上传ftp后,应该发个command给webapi服务,这样job才能知道要不要去ftp拉数据
拉数据这个可以先不用考虑,系统本身就是一个管理系统,有流程控制,客户端上传成功后,消息传递到下一环节,由他再进行处理。其实说白了如果用b/s的话直接就asp.net实现,现在就是不想拘泥于asp.net,因为服务是给富客户端访问的,甚至后期要给移动端访问。(或者我误解asp.net)
正怒月神 2017-08-04
  • 打赏
  • 举报
回复
看起来就是 服务器跑一个 windowservice,这个服务用来整理ftp数据而已。
  • 打赏
  • 举报
回复
你这个数据处理应该不是实时的吧?不是的话就通过quartz.net这个job来定时执行 上传ftp后,应该发个command给webapi服务,这样job才能知道要不要去ftp拉数据
班门弄武 2017-08-04
  • 打赏
  • 举报
回复
写个控制台程序在服务端跑也可以.看到那黑框就知道服务有没有在跑..具体如何接收客户端指令就看你的了.可以用webscoket.就可以通过网页发送指令了.

13,190

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 分析与设计
社区管理员
  • 分析与设计社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧