10 年过来,公司一直都是沿用 asp.net,但是总体架构一直没有变化,已经建设了很多核心模块包括:组织机构、角色用户、权限授权、表单设计、工作流等。现在微服务、跨平台已经成为趋势,面对过去拥有,我们该何去何从
1
ragnaroks 2019-08-14 14:59:26 +08:00
.net core / java
|
2
ddup 2019-08-14 15:02:56 +08:00 via Android
.net core
|
3
oyjc 2019-08-14 15:07:53 +08:00
你自己专职搞 .net 的都不知道 .net core 支持跨平台(微服务 /网站 /移动 /前端 Blazor/AI/游戏 Unity/IoT 不要太多), 换舍也救不了你。
|
4
daijinming OP @oyjc 是 java 还是 net core 这种问题确实不需要求教架构师,对于企业而言选择哪种语言不是大问题,而是技术路线和组件建设
|
5
leven87 2019-08-14 15:16:11 +08:00
.net core 啊,看评测速度秒杀各种主流语言, 现在都支持跨平台了,有微软撑腰,还是很有市场的。
|
6
codingbaby 2019-08-14 15:18:11 +08:00
壮士断腕,java 你值得拥有
|
7
daijinming OP 朋友们,真的不是问大家 java 还是 .net core 哪个好,.net core 很熟悉,易用性非常好,但是组件化却没有 java spring 的给力,比如 spring mybatis、spring security 这种成体系的架构支持。我考虑组织机构、角色用户、权限授权、表单设计、工作流 这些怎么办
|
8
love 2019-08-14 15:25:01 +08:00 via Android
你都上了贼船了还能怎么办,一条道走到黑好了,以后新开记得别选这种小众技术就行了
|
9
sanmao3 2019-08-14 15:28:00 +08:00
新的服务都是 core 老的慢慢迁移到 core
|
10
looly 2019-08-14 16:02:52 +08:00
.net core
|
11
luzemin 2019-08-14 16:06:01 +08:00
新服务用 core,老的慢慢迁移到 core
|
12
feng12345 2019-08-14 16:07:53 +08:00
话说目前的新人几乎都找不到学 net 了吧,楼主不考虑市场前景以及新入行人员的数量吗?
|
16
visonme 2019-08-14 16:34:13 +08:00
过去的不必留念,需要升级,需要改变的时候都要大胆的去实行,很多公司都是这么过来的。
新的业务,现有产品的升级,可以慢慢向 net core 技术栈迁移。 改变都是需要时间的,而这都是内部问题。对于客户跟市场来说,并不太注重产品背后的技术组成。 |
19
ddup 2019-08-14 17:16:24 +08:00 via Android 2
.net 其实一直是大流,只是很多人认为他是非主流。
java 互联网确实生态更好,.net 互联网没起来是因为之前不跨平台,但现在技术更新那么快,很快就会有点 .net core 的互联网生态,原因很简单,性能好啊。 举个例子 elasticsearch 如果是用 .net core 写的,性能比 Java 高不少,而且接口又是 REST API 平台无关性,你说会不会火? .net core 5 年内在互联网领域会雄起,等着看吧。 |
20
daijinming OP @ddup .net 性能确实有目共睹,之前在阿里云上的 1G CPU 1G 内存的服务器上跑.net 绰绰有余。.net core 在 linux 性能也不错
|
21
AdamJin 2019-08-14 17:54:09 +08:00
博客园迁移 core,一直问题不断啊 https://www.cnblogs.com/cmt/p/11351367.html
|
22
daijinming OP @AdamJin 看来稳定和速度都是要考虑的情况
|
24
ddup 2019-08-14 18:28:03 +08:00
@AdamJin #21
@daijinming #22 博客园经常技术改造过程中出这样那样的问题,然后就发篇帖子,几年前迁移到阿里云也是发帖说上云之路坑坑坑云云,认为阿里云服务有什么缺陷,搞得阿里云团队的人都来回复了,然后发现其实是自己的问题。 |
25
ddup 2019-08-14 18:32:41 +08:00
@daijinming #20
是的,性能比 Java 更好,语言本身的生产力比 Java 更高,现在跨平台了,未来几年会出现基于 .NET Core 的惊艳项目。 |
26
qq1054000800 2019-08-14 18:46:53 +08:00
有了 Golang,.net core 火不起来的,.net core 解决了什么?跨平台?
现在那个语言不跨平台哦 没特色、也没重量级项目。 没前途的,还是趁早转 golang 吧,或者混吃等死也行 |
27
gamexg 2019-08-14 19:11:47 +08:00
.net 存在黑历史问题,
记得当年开源 .net 跨平台实现被微软打击过。 现在虽然公司策略变了,但是需要小心再变回去。 |
28
kwklover 2019-08-14 19:35:42 +08:00 via Android
看楼主的说明,应该是做企业管理软件,基于 NET 平台构建软件的上市公司都有,其实是否跨平台并不重要,几十万几百万的软件费都出了,还会在意几万几千的 WIN 授权费吗?而且企业软件往往大部分都可以不考虑大流量并发的问题,不需要什么特殊的架构和生态,功能强大稳定,符合业务需求,什么技术平台不重要啊。
|
31
NCE 2019-08-14 19:57:01 +08:00
|
32
NCE 2019-08-14 20:01:11 +08:00 1
|
33
Raymon111111 2019-08-14 20:06:49 +08:00
换语言吧
|
34
zander1024 2019-08-14 21:01:34 +08:00
|
35
laminux29 2019-08-14 21:53:01 +08:00
.net 的主要优势在于 Windows + Visual Studio + .Net + MS SQL Server 这一套组合,它包装了很多东西,开箱即用,开发效率高。但缺点也很明显,这种方便性导致学习者与开发者,不去了解内幕,成长有限,而且当这套组合中不开源的部分出现问题时,微软不帮忙或拖延,项目就死了。
其次,.Net Core 是开源了,但 Windows、Visual Studio、MS SQL Server 都没开源,而且.Net Core≠.Net ,这种开源是没意义的,无法彻底提高开发效率。 最后,.Net Core 这玩意是个新东西,稳定性有待考量,正式的大中型项目敢用这玩意?技术经理愿意背锅? |
36
dhssingle 2019-08-14 23:00:00 +08:00
@NCE #32 语言层面这几个比 C# 优势明显在哪里?其他两个不说,Kotlin 基本就是照着 C# 做的,你说一个 C# 第二跟我讲什么优势。
|
37
Counter 2019-08-14 23:16:19 +08:00 via Android
白瞎了 C#这么好的语言😂
|
38
dhssingle 2019-08-14 23:20:20 +08:00
@laminux29 #35 你咋不上天啊,说的那些和 .net core 有鸟关系,要开源数据库大可以去用 MySql、PostgreSQL,我寻思 .net core 也没逼人去用 Windows 啊,不让用 Linux 吧,还有 IDE 开源不开源还能影响到你开发效率了? MonoDevelop、Rider、VS Code 这些 IDE 和编辑器也没人拦着不让用吧。
Spring 不也是包了一层又一层,开箱即用,又有多少人会去研究源码,真有 bug,能去提个 issues 就不错了,大部分人还是等着官方修复。 另外你认为 Stack OverFlow 和 Bing 算不算大项目,这两个可都已经切换到 .Net Core 了。 |
39
luozic 2019-08-15 00:17:06 +08:00 via iPhone
做啥架构切换 不搞本地性能测试 直接拿生产环境上的? 这种方法反正没听说哪种软件工程实践这么玩的,即使是同步 玩灰度上线慢慢把坑填了再把流量全部切过去。
|
42
charlie21 2019-08-15 01:12:28 +08:00
企业级开发、企业级痛点问题、企业级应用 的部署 卖出,to B 的, .NET 继续就 OK 了
微软自己公司内 在用啥 你就用啥,因为到时候会有微软技术支持来背锅 这叫 “万无一失” 在这方面,能和 .NET C# 竞争的只有 Java:像银行呢 C# 和 Java 都招 (后者是要对接 Oracle 的数据库) ,郑煤机只招 C# 因为它够了。 如果你要对接内网里大量 Windows 操作系统提供的服务,那么你没有选择,就是 C# 。 —— 换句话说,即使 .NET 继续不开源,在企业级开发圈子里 也是没有对手的。 况且 C# 本身应对一般应用毫无压力,数据库+前端服务器,最最基本的办法搞定一切内网软件,大概 40 万以下就能搞定了。不过一个高级程序员 1 年的成本罢了 ( 无论 .NET 是否开源 ) Java 本身是什么问题呢?残疾。“用.net 时从来没需要过什么强大的解决方案…… 用 java 时,天天琢磨和找解决方案……” [1] 什么 node, rust, golang, kotlin, 你真当全世界都陪你们去疯阿?谁给你惯的这个臭毛病?是不是 “开源世界” 阿?我早就说过了,离开源世界远一点 [2] ,否则脑子要有病的。你真以为微软是逼不得已而去迎客开源世界吗?即使没有 .NET core,微软在它的王国里那是照样吊打周围所有人的,开源两个字都不需要知道怎么写。 如果你不要对接内网里大量 Windows 操作系统提供的服务,那么你的选择面可就大咯 ... 当然,这并不代表什么,因为 你就是个 API caller,没啥好骄傲的。 [1]: 创业公司选择 .NET 技术栈究竟比选 Java / Python 贵多少钱? https://www.zhihu.com/question/60103971 [2]: 如果你可以给将要入职的应届生程序员一条最重要的建议,那会是什么? https://www.v2ex.com/t/589440?p=1#r_7724827 |
43
charlie21 2019-08-15 02:04:37 +08:00
从增加就业的角度说,嗯,从事企业级开发 至少你知道你的工作的价值 是为了哪个公司服务
互联网公司阿,刷刷抖音什么的,还真以为自己为社会做贡献了呢? ( 在线教育和图书出版 除外 ) 抖音阿 字节调动阿,什么大数据 还不是搞搞广告推送?你就炒作 还以为别人看不出来呢 呵呵 说实在的,互联网公司 除了腾讯、淘宝、还要什么网上订餐送外卖的,其它死光光都没事 |
44
laminux29 2019-08-15 04:00:32 +08:00
|
45
xuanbg 2019-08-15 06:25:44 +08:00
首先,微服务可以混合开发语言的,也不一定就要 Linux。
如果微服务框架使用 Spring cloud 这一套,服务用 C#编写的话,也就缺个 EurekaClient 和 FeignClient 而已,自己照着 Java 的翻译一遍就有了。网关直接部署一个 Gateway 就行,也不需要什么业务代码,就用 Java 写一下好了。至于熔断器、链路追踪什么的,估计楼主也用不上,就没必要上了。如果不是非要容器化部署,就无需迁移到.Net Core。 楼主要做的只是拆分服务和接口 REST 化就够了。 |
46
chouchoui 2019-08-15 07:22:38 +08:00 via iPhone
混开源混出脑子有病的暴躁症案例只需要看#23 #31 #32 这种活体表演就知道了
有时候跟风还跟出优越感不知道到底是学技术还是学跪舔 |
47
chouchoui 2019-08-15 08:08:36 +08:00 via iPhone 2
@qq1054000800 全网吹 golang 的复读机全在 V2EX 了
|
48
babedoll 2019-08-15 08:12:43 +08:00 1
跨平台 net core 不是已经实现了吗 ,另外 net core 稳定的很,建议没用过的用过再说,不然坐井观天人云亦云只会让别人认为你是 xx 哈
C#开发起来如丝般顺滑,一个如此出色的语言, 你可以拒绝,但是别不懂装懂。 |
50
ragnaroks 2019-08-15 08:32:03 +08:00
|
51
guolaopi 2019-08-15 09:27:35 +08:00
核心模块包一层微服务,以服务的形式来调用模块。
然后慢慢迁移到.NET core ======= 楼上大神们都是文不对题,楼主显然问的是做.NET 的公司面对现在形势应该怎么办。 一堆让换语言的是什么操作?如果作为技术负责人来说这种说换语言就换语言的,公司成本为零吗? 然后为了不被喷,.NET core 是垃圾(小声 BB )你们满意了吧。 |
52
leeeeee 2019-08-15 09:33:06 +08:00
做 OA 的?
|
53
index90 2019-08-15 09:41:48 +08:00
技术没有好坏,只有适不适合,语言也是
抛开业务谈技术,只是停留在码农层面而已 |
54
viWww0vvxmolvY5p 2019-08-15 09:43:53 +08:00 via Android
|
56
yanyanlong 2019-08-15 09:59:53 +08:00
转做 unity 3D
|
57
dhssingle 2019-08-15 10:10:15 +08:00
@laminux29 #44
1. 用 Nuget 装个驱动,又不麻烦是吧。 2. 我说了是 IDE 和 编辑器来着,VS Code 凑合也能用,不太方便就是了,命令行走起,MonoDevelop 没用过,Rider 除了卡点,很多方面其实比 VS 强,毕竟 ReSharper 是很多 C# 开发者必装的扩展。 3. 都花钱了,我想微软的技术支持不会比任何公司差,只要肯花钱一整套对标 Java 生态的解决方案都可以给你整出来。 4. 以 Stack Overflow 数据量,再简单的业务逻辑,要稳定运行也不会是简单的事,另外 SO 算比较大的项目了吧。 微软的网站大部分都是跑在 .Net 上的,Bing 也不例外,Bing 从 .Net Framework 迁移 .Net Core 后还发布了一篇博客,说性能有 34% 的提升。https://devblogs.microsoft.com/dotnet/bing-com-runs-on-net-core-2-1/ |
58
dk7952638 2019-08-15 10:27:39 +08:00
微软耍猴都十几年了,而且看最近的趋势依然是乐此不疲,都到现在了还推荐什么.net core 等等微软技术的人,不是蠢就是坏
|
59
TangMonk 2019-08-15 10:29:24 +08:00
我现在还用 Delphi
|
60
micean 2019-08-15 10:47:13 +08:00
一看就是做企业应用的,用啥微服务
|
62
Fule 2019-08-15 11:06:26 +08:00 1
国内 .NET 的人不好招是事实。不过我看好 .NET Core,尤其是做企业开发的。唱 .NET 转 Java 的,基本上就跟唱“ PHP 是世界上最好的编程语言”一样,更多像个梗,笑笑就好,不要太当真——当前,前提是要有自己的主见,有自己的判断。
|
65
695975931 2019-08-15 11:45:43 +08:00
在国内,只有 java,python 才是政治正确,所以其他的语言,都有人在喊,转 java.....
|
67
lidfather 2019-08-15 12:35:02 +08:00 via Android
竟然有人抵制来源,真是林子大啥玩意都有
|
68
lidfather 2019-08-15 12:35:13 +08:00 via Android
竟然有人抵制开源,真是林子大啥玩意都有
|
69
charlie21 2019-08-15 18:41:23 +08:00
这里列出一篇文章 说明了何时使用 .NET core 是可行的,何时使用 .NET Framework 是可行的
https://docs.microsoft.com/zh-cn/dotnet/standard/choosing-core-framework-server https://cloud.tencent.com/developer/news/300621 ... 3 ) WCF 服务的实现。 虽然 WCF 客户端库可从 .NET Core 使用 WCF 服务,WCF 服务器实现目前只在 .NET Framework 上可用。 这种情况虽然不属于 .NET Core 当前计划,但将来会考虑这点。 4 )工作流相关的服务:Windows Workflow Foundation (WF)、工作流服务( WCF + 单个服务中的 WF )和 WCF 数据服务(以前称为“ ADO.NET 数据服务”)仅在 .NET Framework 上可用。 尚未计划将 WF/WCF+WF/WCF Data Services 引入 .NET Core。 |
70
laminux29 2019-08-16 04:30:00 +08:00
@dhssingle
1.这就是我说的开箱即用的问题了。用 Nuget 装驱动,极端情况下会非常麻烦。比如 MySQL,Mysql 官网最新的套装,包含的驱动,C#的 EF 用不了。然后需要各自查资料,找出可用版本后,MySQL 那边的版本又对不上,需要降级,虽然最后能解决,但非常麻烦,而且用不了最新版。安装就这么多事情,后续开发中,这类事情只会更多。 2.这就是我说的开发效率问题了。Windows+.Net+Visual Studio+MSSQL 的唯一优势就是开发效率高,你只用 VSCode,对开发效率持 [凑合] 态度,导致唯一的优势就没了,那我为什么要去用.Net ?而不是 Cpp 或 Java ? 3.你应该没见过,微软在某些情况下,给钱都不愿意解决,故意拖延,极端情况下导致项目死掉的情况。 4.大型项目,不仅会有大量的数据,还会有复杂的业务,甚至对性能要求极端高的业务。Stack Overflow 只是冰山一角。对于 Bing,我说了,这种东西,用.Net 去做,我不想谈这个,丢脸。 |
71
dhssingle 2019-08-16 09:18:31 +08:00
@laminux29 #70 这有什么好丢脸的,据我了解 Azure 基本上是 C# 写的,底层和需要高性能的地方才会用 C/C++ 写。Bing 应该也是差不多的模式。
|
72
ddup 2019-08-17 10:25:06 +08:00 via Android
都唱衰 .NET 可是它这么多年始终排名前 5,唱衰 Java 的也不少,了它还是第一。
都用 mongodb,都说关系型数据库已死,可是世界排名前 2 的数据库还是 mysql 和 sqlserver |
73
forgottencoast 2019-10-05 22:08:23 +08:00
|