C#写的C/S项目 改成 B/S的技术选型请教

mylyqc 2021-04-25 05:26:23
C#写的C/S项目 改成 B/S的技术选型请教。

项目背景:.NET C#写的C/S项目,C端与S端通信使用SOCKET,开发人员对C++、C#更熟练。

修改需求:
1、S端不变动,增加一个WebService或WCF服务,用于前端与后端(S端)通信,这样既保持了之前的“C/S应用”仍然可以继续使用。
2、B端(WEB前端)使用Bootstrap设计WEB UI页面(新学习了Bootstrap,确实高效和漂亮)。

具体实现:
WEB前端如何调用后端的WebService或WCF服务 将后端数据显示到WEB前端的UI界面上?

有些疑问:
1、B端(WEB前端):自己去了解了一下ASP.NET资料,大多数都是讲的WEB FORM方面的。
2、很多人明确建议我们不要使用WEB FORM开发WEB前端。
3、也有人建议WEB前端不要使用ASP.NET框架,直接用Vue.js、Bootstrap就可以了。
4、有去了解过.net core,感觉这个可能会成为以后.NET的趋势,我们的S端和B端(WEB前端)应用应该都可以使用它改过来,可以跨平台,但是目前还不会改动后端的C#服务端程序,只是增加一层WebService或WCF服务供WEB和WEB前端,暂时不想使用.net core来做。
5、使用JAVA来做WEB前端,需要花费更多的时间。

有做过类似企业应用的吗?求大神指点,感谢了。

...全文
1377 18 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
ziqi0716 2021-05-07
精选
  • 打赏
  • 举报
回复
1.新建一个web api项目,其中需要有个服务跟你原来的S端通讯。web api作用是接受http请求,并转发给S端,获取到响应内容后,返回给B端。 2.B端最好是纯前端的项目,不要用传统的asp.webform或者jsp等。前端项目作用是给用户一个UI界面,用户可以操作,可以向 web api 请求数据,请求到的数据B端负责可视化展示,或者向web api发送控制指令,由webapi转给以前的S端。 B端可选的技术很多,h5,js,css是基础,vue,angular以及typescript语法也要进阶学习下,Bootstrap,element-ui也可以用起来,但具体用哪些还得看业务,如果b端很简单,h5,js,css就行了,复杂的话,还是用一些高级的东西。就像楼上几位说的,既要用正确的方法,也不能“杀鸡用牛刀”。
wanghui0380 2021-05-13
  • 打赏
  • 举报
回复
嗯,我前面回复有关转发方面的考虑,正好今天一个博文出来了,我转贴过来 https://www.cnblogs.com/zhangxinhua/p/14765176.html 虽然是java的,他这就是我前面担心的问题,一旦有些p2p方面的要求,只单纯用websocket,必然涉及到他这个hashmap以及遍历循环转发的事情,如果把握不好,开发周期和风险都是在这里的 所以如果存在这类p2p要求,选型就要另外考虑,单纯websocket会有些麻烦
90e家 2021-05-07
  • 打赏
  • 举报
回复
这个我做过类似的改造,想对来说比较麻烦,首先c/s代码如果做了分层处理的话,还是很好转B/S,如果没有就比较麻烦,很多的业务逻辑在界面需要拿出来。常用的分层模式,一般是①DAL层,数据库层,可以写接口兼容各种数据库,写②Service接口,即服务接口,用于兼容WCF和BS和CS都是可以的,还有③BLL成层,业务逻辑层,针对不同的业务,所产生的的,对接service接口和View层,④Veiw层及视图层,既可以是C/S端也可以是B/S端,B/S目前采用的一般都是MVC模式,所以在控制器层引用BLL层即可。你要做的更多的是,先将业务逻辑抽出来,做成对应的服务和接口
luj_1768 2021-05-03
  • 打赏
  • 举报
回复
1. 需要仔细比较改型前与改型后的安全方案和客户策略(授权方案、服务策略、客户管理); 2. 服务器端,原有服务代码可能不需要太大变动,但是需要一个过滤层来管理数据输入和输出(要考虑到网络环境是比较易受攻击的); 3. 可能需要加入一个交换层设备,提供客户管理和通讯服务; 4. 客户端应该比较好做,但是应该设法简化和网页化,主要做好客户识别与设备(手机)绑定,这样可以提高服务能力和服务质量、同时还能降低服务成本。 你的项目工作量可能很大、也可能很小,需要具体问题具体分析。如果不算很大,也可以考虑托管方案。网络是巨兽的战场,巨型公司、集成解决方案(商业化方案套装)具有较大优势。 像微软推出的中小企业网络化方案Azure ,也可以参考一下。当然,国内公司也有类似的商业化解决方案。
丁劲犇 2021-05-01
  • 打赏
  • 举报
回复
如果只熟悉c++,最偏门的可以用Qt加fcgi来做webservice。
mylyqc 2021-04-30
  • 打赏
  • 举报
回复
看了各位大牛的回帖, 目前我打算在后端增加一层WebService服务(如果前端有部分功能需要像winForm使用类似SOCKET的,打算换成WEB SOCKET方式来解决)。 前端打算:1、使用asp.net MVC相关技术,2、完全不使用asp.net,用veu.js、Bootstrap4,目前这里还有些不知道1还是2哪个好?主要是对前端的通用性来说。 另外,我们可能最终还是会转向.net core方向,必竟他跨平台。
mylyqc 2021-04-30
  • 打赏
  • 举报
回复
看了各位大牛的回帖, 目前我打算在后端增加一层WebService服务(如果前端有部分功能需要像winForm使用类似SOCKET的,打算换成WEB SOCKET方式来解决)。 前端打算:1、使用asp.net MVC相关技术,2、完全不使用asp.net,用veu.js、Bootstrap4,目前这里还有些不知道1还是2哪个好?主要是对以后的通用性,我们可能最终还是会转向.net core方向,必竟他跨平台。
wang_peng 2021-04-30
  • 打赏
  • 举报
回复
wcf的强项是分布式事务,如果用wcf而不用分布式事务,那还不如果直接用webapi.
再说wcf是专为winForm准备的,所以采用soap,
现在bs都用restfull. wcf得需要在服务器上一顿配置,才能以restfull格式访问
前端框架太多了.微软主推Bootstrap4, 3和4在用法上还有很大区别
至于你原来的SOCKEt,如果用bS,尽快放弃吧,以最快的速度把业务全从socket转到bs的服务层
wang_peng 2021-04-30
  • 打赏
  • 举报
回复
即然你wcf都可以考虑,那就直接用webapi吧, 前面用 Bootstrap足够了, 
wanghui0380 2021-04-28
  • 打赏
  • 举报
回复
嗯,WebService+Websocket 可以用 不过需要进一步确定。 1你的前端人员对调用WebService熟悉不?因为现在的前端对调用webapi,websocket这种近现代技术比较熟,而webserivce这种比较古早的玩意,前端未必很熟(当然我还是保留了WebService,因为你还有原来的C端要保留,原来的C端直接用WebService还是比较方便) 2.是否存在点对点直控(p2p),比如C端直接控B端,或者B1端控B2端,或者手机app端控B端。总归说这是p2p直控,直控的话(包括分组控)光用websocket存在转发过程,这里后端是否有把握做这种转发 如果没有把握的,可以选择mqtt 或者WebRtc 至于其他的选型,前端一般vue或者anglerjs,因为这是现在前端的基本要求,如果你需要外聘人员,这种人才好招聘
mylyqc 2021-04-28
  • 打赏
  • 举报
回复
引用 6 楼 非专业开发Five 的回复:
[quote=引用 楼主 mylyqc 的回复:]C#写的C/S项目 改成 B/S的技术选型请教。 项目背景:.NET C#写的C/S项目,C端与S端通信使用SOCKET,开发人员对C++、C#更熟练。 修改需求: 1、S端不变动,增加一个WebService或WCF服务,用于前端与后端(S端)通信,这样既保持了之前的“C/S应用”仍然可以继续使用。 2、B端(WEB前端)使用Bootstrap设计WEB UI页面(新学习了Bootstrap,确实高效和漂亮)。 具体实现: WEB前端如何调用后端的WebService或WCF服务 将后端数据显示到WEB前端的UI界面上? 有些疑问: 1、B端(WEB前端):自己去了解了一下ASP.NET资料,大多数都是讲的WEB FORM方面的。 2、很多人明确建议我们不要使用WEB FORM开发WEB前端。 3、也有人建议WEB前端不要使用ASP.NET框架,直接用Vue.js、Bootstrap就可以了。 4、有去了解过.net core,感觉这个可能会成为以后.NET的趋势,我们的S端和B端(WEB前端)应用应该都可以使用它改过来,可以跨平台,但是目前还不会改动后端的C#服务端程序,只是增加一层WebService或WCF服务供WEB和WEB前端,暂时不想使用.net core来做。 5、使用JAVA来做WEB前端,需要花费更多的时间。 有做过类似企业应用的吗?求大神指点,感谢了。
应当分析业务,C/S和B/S可以实现的功能是不一样的,确认用户需要保留的业务到底有多少。 如果用户有快要全部功能必须保留的需求,那推荐看看WebAssembly吧。你可能还要结合activx或者ppapi这种东西。 如果用户可以做到有取舍的功能保留,根据功能确认功能,你后端用什么做都可以,因为你后端在你的计划里本质上是一个Proxy的性质,只是利用Http handle了你web请求模拟原有C端连接原有的后端。这个层用什么做都可以。 最后说一下你的Web前端,都这个年代了,你务必做成前后分离的模式吧,别再用aspx、jsp这样的前后混合方案了。[/quote] WEB前端不考虑使用activx或者ppapi,感觉不通用。 另外,WEB前端如果像您说的做成前后分离的模式的话,不用aspx、jsp前后混合方式,有更好的建议方案吗?
mylyqc 2021-04-28
  • 打赏
  • 举报
回复
引用 2 楼 wanghui0380 的回复:
选型需要结合需求,不是网上说啥就是啥 比如:WebService或WCF服务,我们需要结合需求讨论。比如数据要求是推还是拉,数据反馈是单向还是双向,数据有状态还是无状态 至于啥java,asp.net form,asp.net core,webFrom,vue其实都不是重点优先考虑的事情。大多数把这个当作优先考虑,往往是跳出一个坑,进入另一个坑。
由于在B端(WEB前端)有一个功能是接收 服务端主动发送过来的数据并显示在WEB页面上,用WebService+WebSocket还是WCF?或者有更加好的方案吗?
  • 打赏
  • 举报
回复
引用 楼主 mylyqc 的回复:
C#写的C/S项目 改成 B/S的技术选型请教。 项目背景:.NET C#写的C/S项目,C端与S端通信使用SOCKET,开发人员对C++、C#更熟练。 修改需求: 1、S端不变动,增加一个WebService或WCF服务,用于前端与后端(S端)通信,这样既保持了之前的“C/S应用”仍然可以继续使用。 2、B端(WEB前端)使用Bootstrap设计WEB UI页面(新学习了Bootstrap,确实高效和漂亮)。 具体实现: WEB前端如何调用后端的WebService或WCF服务 将后端数据显示到WEB前端的UI界面上? 有些疑问: 1、B端(WEB前端):自己去了解了一下ASP.NET资料,大多数都是讲的WEB FORM方面的。 2、很多人明确建议我们不要使用WEB FORM开发WEB前端。 3、也有人建议WEB前端不要使用ASP.NET框架,直接用Vue.js、Bootstrap就可以了。 4、有去了解过.net core,感觉这个可能会成为以后.NET的趋势,我们的S端和B端(WEB前端)应用应该都可以使用它改过来,可以跨平台,但是目前还不会改动后端的C#服务端程序,只是增加一层WebService或WCF服务供WEB和WEB前端,暂时不想使用.net core来做。 5、使用JAVA来做WEB前端,需要花费更多的时间。 有做过类似企业应用的吗?求大神指点,感谢了。
应当分析业务,C/S和B/S可以实现的功能是不一样的,确认用户需要保留的业务到底有多少。 如果用户有快要全部功能必须保留的需求,那推荐看看WebAssembly吧。你可能还要结合activx或者ppapi这种东西。 如果用户可以做到有取舍的功能保留,根据功能确认功能,你后端用什么做都可以,因为你后端在你的计划里本质上是一个Proxy的性质,只是利用Http handle了你web请求模拟原有C端连接原有的后端。这个层用什么做都可以。 最后说一下你的Web前端,都这个年代了,你务必做成前后分离的模式吧,别再用aspx、jsp这样的前后混合方案了。
wanghui0380 2021-04-26
  • 打赏
  • 举报
回复
引用 4 楼 jhdxhj 的回复:
[quote=引用 3 楼 wanghui0380 的回复:]这点和你做CS基本一致,你也知道。 你用了Sokect,那Soket的能力是什么? 当然是长,短连接可以,单双向均可,推拉都行。有状态无状态都可以 这是你们的需求和人员技术能力决定的。并不是网上说如何
那用汇编语言写怎么样?[/quote] 有意义么?如果你觉着单纯工具比需求重要,没问题啊。给你航天飞机在马路上开呗。航天飞机多高级啊,在马路上跑多拉风。反正你无所谓需求不需求,无所谓是不是跑马路上的,按个按钮火焰喷射器一推,爽的狠
jhdxhj 2021-04-26
  • 打赏
  • 举报
回复
引用 3 楼 wanghui0380 的回复:
这点和你做CS基本一致,你也知道。 你用了Sokect,那Soket的能力是什么? 当然是长,短连接可以,单双向均可,推拉都行。有状态无状态都可以 这是你们的需求和人员技术能力决定的。并不是网上说如何
那用汇编语言写怎么样?
wanghui0380 2021-04-26
  • 打赏
  • 举报
回复
这点和你做CS基本一致,你也知道。 你用了Sokect,那Soket的能力是什么? 当然是长,短连接可以,单双向均可,推拉都行。有状态无状态都可以 这是你们的需求和人员技术能力决定的。并不是网上说如何
wanghui0380 2021-04-26
  • 打赏
  • 举报
回复
选型需要结合需求,不是网上说啥就是啥 比如:WebService或WCF服务,我们需要结合需求讨论。比如数据要求是推还是拉,数据反馈是单向还是双向,数据有状态还是无状态 至于啥java,asp.net form,asp.net core,webFrom,vue其实都不是重点优先考虑的事情。大多数把这个当作优先考虑,往往是跳出一个坑,进入另一个坑。
jhdxhj 2021-04-26
  • 打赏
  • 举报
回复
做WEB建议选择JAVA,人好招,好维护

62,243

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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