• 请不要在回答技术问题时复制粘贴 AI 生成的内容
daijinming
V2EX  ›  程序员

.net 开发软件公司何去何从,(准)架构师们能不能给点参考意见

  •  1
     
  •   daijinming · Aug 14, 2019 · 9023 views
    This topic created in 2640 days ago, the information mentioned may be changed or developed.

    10 年过来,公司一直都是沿用 asp.net,但是总体架构一直没有变化,已经建设了很多核心模块包括:组织机构、角色用户、权限授权、表单设计、工作流等。现在微服务、跨平台已经成为趋势,面对过去拥有,我们该何去何从

    73 replies  •  2019-10-05 22:08:23 +08:00
    ragnaroks
    ragnaroks
    Aug 14, 2019
    1
    .net core / java
    ddup
    ddup
    Aug 14, 2019 via Android
    2
    .net core
    oyjc
    oyjc
    Aug 14, 2019
    3
    你自己专职搞 .net 的都不知道 .net core 支持跨平台(微服务 /网站 /移动 /前端 Blazor/AI/游戏 Unity/IoT 不要太多), 换舍也救不了你。
    daijinming
    daijinming
    OP
    Aug 14, 2019
    4
    @oyjc 是 java 还是 net core 这种问题确实不需要求教架构师,对于企业而言选择哪种语言不是大问题,而是技术路线和组件建设
    leven87
    leven87
    Aug 14, 2019
    5
    .net core 啊,看评测速度秒杀各种主流语言, 现在都支持跨平台了,有微软撑腰,还是很有市场的。
    codingbaby
    codingbaby
    Aug 14, 2019
    6
    壮士断腕,java 你值得拥有
    daijinming
    daijinming
    OP
    Aug 14, 2019
    7
    朋友们,真的不是问大家 java 还是 .net core 哪个好,.net core 很熟悉,易用性非常好,但是组件化却没有 java spring 的给力,比如 spring mybatis、spring security 这种成体系的架构支持。我考虑组织机构、角色用户、权限授权、表单设计、工作流 这些怎么办
    love
    love
    Aug 14, 2019 via Android
    8
    你都上了贼船了还能怎么办,一条道走到黑好了,以后新开记得别选这种小众技术就行了
    sanmao3
    sanmao3
    Aug 14, 2019
    9
    新的服务都是 core 老的慢慢迁移到 core
    looly
    looly
    Aug 14, 2019
    10
    .net core
    luzemin
    luzemin
    Aug 14, 2019
    11
    新服务用 core,老的慢慢迁移到 core
    feng12345
    feng12345
    Aug 14, 2019
    12
    话说目前的新人几乎都找不到学 net 了吧,楼主不考虑市场前景以及新入行人员的数量吗?
    Rwing
    Rwing
    Aug 14, 2019
    13
    那就用.NET 去做微服务、跨平台啊。。。。。。还问啥??
    MaxTan
    MaxTan
    Aug 14, 2019
    14
    10 年了,这和.NET 有啥关系,换啥语言你也会问同样的问题
    whypool
    whypool
    Aug 14, 2019
    15
    visonme
    visonme
    Aug 14, 2019
    16
    过去的不必留念,需要升级,需要改变的时候都要大胆的去实行,很多公司都是这么过来的。

    新的业务,现有产品的升级,可以慢慢向 net core 技术栈迁移。

    改变都是需要时间的,而这都是内部问题。对于客户跟市场来说,并不太注重产品背后的技术组成。
    whywhywhy
    whywhywhy
    Aug 14, 2019
    17
    @love 之前 .net 不算是小众吧。
    Rwing
    Rwing
    Aug 14, 2019❤️1
    18
    @whywhywhy 现在世界范围内也不是小众,只是中国可能稍微小了一点,没办法,中国人都随大流,没有自己的思考。
    ddup
    ddup
    Aug 14, 2019 via Android❤️2
    19
    .net 其实一直是大流,只是很多人认为他是非主流。
    java 互联网确实生态更好,.net 互联网没起来是因为之前不跨平台,但现在技术更新那么快,很快就会有点 .net core 的互联网生态,原因很简单,性能好啊。

    举个例子 elasticsearch 如果是用 .net core 写的,性能比 Java 高不少,而且接口又是 REST API 平台无关性,你说会不会火?

    .net core 5 年内在互联网领域会雄起,等着看吧。
    daijinming
    daijinming
    OP
    Aug 14, 2019❤️1
    20
    @ddup .net 性能确实有目共睹,之前在阿里云上的 1G CPU 1G 内存的服务器上跑.net 绰绰有余。.net core 在 linux 性能也不错
    AdamJin
    AdamJin
    Aug 14, 2019
    21
    博客园迁移 core,一直问题不断啊 https://www.cnblogs.com/cmt/p/11351367.html
    daijinming
    daijinming
    OP
    Aug 14, 2019
    22
    @AdamJin 看来稳定和速度都是要考虑的情况
    love
    love
    Aug 14, 2019
    23
    @whywhywhy .net 从来就没火过,以后也不会火,把生命浪费在这上面不值得
    ddup
    ddup
    Aug 14, 2019
    24
    @AdamJin #21
    @daijinming #22
    博客园经常技术改造过程中出这样那样的问题,然后就发篇帖子,几年前迁移到阿里云也是发帖说上云之路坑坑坑云云,认为阿里云服务有什么缺陷,搞得阿里云团队的人都来回复了,然后发现其实是自己的问题。
    ddup
    ddup
    Aug 14, 2019
    25
    @daijinming #20
    是的,性能比 Java 更好,语言本身的生产力比 Java 更高,现在跨平台了,未来几年会出现基于 .NET Core 的惊艳项目。
    qq1054000800
    qq1054000800
    Aug 14, 2019
    26
    有了 Golang,.net core 火不起来的,.net core 解决了什么?跨平台?
    现在那个语言不跨平台哦 没特色、也没重量级项目。
    没前途的,还是趁早转 golang 吧,或者混吃等死也行
    gamexg
    gamexg
    Aug 14, 2019
    27
    .net 存在黑历史问题,
    记得当年开源 .net 跨平台实现被微软打击过。
    现在虽然公司策略变了,但是需要小心再变回去。
    kwklover
    kwklover
    Aug 14, 2019 via Android
    28
    看楼主的说明,应该是做企业管理软件,基于 NET 平台构建软件的上市公司都有,其实是否跨平台并不重要,几十万几百万的软件费都出了,还会在意几万几千的 WIN 授权费吗?而且企业软件往往大部分都可以不考虑大流量并发的问题,不需要什么特殊的架构和生态,功能强大稳定,符合业务需求,什么技术平台不重要啊。
    mmdsun
    mmdsun
    Aug 14, 2019 via Android
    29
    dotNET 跨平台,这个微#信公总号不错,经常分享.net core 架构。
    index90
    index90
    Aug 14, 2019
    30
    你业务面临什么问题啊?
    微服务和.net 有什么冲突啊?
    不能抛开实际问题,让技术(如 .net)背锅
    NCE
    NCE
    Aug 14, 2019
    31
    to 各位楼上,

    被时代的快车甩掉不是你的问题,但不去直视时代的发展就是你的问题了

    那些还在抱着.NET CORE 大腿的人,如果将来有一天你快饿死了,请记住,有个人在给你点赞,活该。
    NCE
    NCE
    Aug 14, 2019❤️1
    32
    tmd 滚滚车轮都快压肚子上了,还在捂着眼假装看不见,瞎么?还是脑子已经被压坏了?

    从语言层面看,go,rust,kotlin 的优势很明显,不然不会推进这么快,
    从战略上看,.NET 平台在微软放弃 PC 战略,重点变成 Azure Cloud 时,就已经完成历史使命,被放弃了。2014 年.NET 平台负责人红衣教主曾经来过北京微软,说了下他转岗去负责 Azure 的事情。

    后续提供的.NET core 只是为了让原来的 PC .NET 遗老遗少有一个上云的平滑过渡。


    可惜还有一群又懒惰有懦弱的人,还在抱着朽木不放,快把你们淹死得了。
    Raymon111111
    Raymon111111
    Aug 14, 2019
    33
    换语言吧
    zander1024
    zander1024
    Aug 14, 2019
    34
    从我不干.net 前就在吹.net core ,那还是吹 nodejs 的时代。 现在 node 认命了,.net 还在说 core 一统大趋势。

    再过 5 年看吧,这东西状况估计连 node 都懒得和它比。
    laminux29
    laminux29
    Aug 14, 2019
    35
    .net 的主要优势在于 Windows + Visual Studio + .Net + MS SQL Server 这一套组合,它包装了很多东西,开箱即用,开发效率高。但缺点也很明显,这种方便性导致学习者与开发者,不去了解内幕,成长有限,而且当这套组合中不开源的部分出现问题时,微软不帮忙或拖延,项目就死了。

    其次,.Net Core 是开源了,但 Windows、Visual Studio、MS SQL Server 都没开源,而且.Net Core≠.Net ,这种开源是没意义的,无法彻底提高开发效率。

    最后,.Net Core 这玩意是个新东西,稳定性有待考量,正式的大中型项目敢用这玩意?技术经理愿意背锅?
    dhssingle
    dhssingle
    Aug 14, 2019
    36
    @NCE #32 语言层面这几个比 C# 优势明显在哪里?其他两个不说,Kotlin 基本就是照着 C# 做的,你说一个 C# 第二跟我讲什么优势。
    Counter
    Counter
    Aug 14, 2019 via Android
    37
    白瞎了 C#这么好的语言😂
    dhssingle
    dhssingle
    Aug 14, 2019
    38
    @laminux29 #35 你咋不上天啊,说的那些和 .net core 有鸟关系,要开源数据库大可以去用 MySql、PostgreSQL,我寻思 .net core 也没逼人去用 Windows 啊,不让用 Linux 吧,还有 IDE 开源不开源还能影响到你开发效率了? MonoDevelop、Rider、VS Code 这些 IDE 和编辑器也没人拦着不让用吧。

    Spring 不也是包了一层又一层,开箱即用,又有多少人会去研究源码,真有 bug,能去提个 issues 就不错了,大部分人还是等着官方修复。

    另外你认为 Stack OverFlow 和 Bing 算不算大项目,这两个可都已经切换到 .Net Core 了。
    luozic
    luozic
    Aug 15, 2019 via iPhone
    39
    做啥架构切换 不搞本地性能测试 直接拿生产环境上的? 这种方法反正没听说哪种软件工程实践这么玩的,即使是同步 玩灰度上线慢慢把坑填了再把流量全部切过去。
    u823tg
    u823tg
    Aug 15, 2019 via Android
    40
    @AdamJin 博客园这个是团队要要踩 docker 的坑,第一次上线就有推荐 k8s.
    luozic
    luozic
    Aug 15, 2019 via iPhone
    41
    @u823tg 博客园一些搞法感觉没有软件工程,也没啥根因分析,
    charlie21
    charlie21
    Aug 15, 2019
    42
    企业级开发、企业级痛点问题、企业级应用 的部署 卖出,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
    charlie21
    charlie21
    Aug 15, 2019
    43
    从增加就业的角度说,嗯,从事企业级开发 至少你知道你的工作的价值 是为了哪个公司服务

    互联网公司阿,刷刷抖音什么的,还真以为自己为社会做贡献了呢? ( 在线教育和图书出版 除外 )
    抖音阿
    字节调动阿,什么大数据 还不是搞搞广告推送?你就炒作 还以为别人看不出来呢
    呵呵

    说实在的,互联网公司 除了腾讯、淘宝、还要什么网上订餐送外卖的,其它死光光都没事
    laminux29
    laminux29
    Aug 15, 2019
    44
    @dhssingle
    1.MSSQL 对于 Visual Studio 与.Net 来说,是开箱即用的,而 Mysql 与 PostgreSQL 不是。

    2.VS Code 不是 IDE,我就不提了。MonoDevelop、Rider 都没 Visual Studio 好用。

    3.开源并不是说一定要去研究源码,而是当这套东西出问题,且官方不远解决或拖延时,至少还能花钱找别的高手解决。

    4.Stack OverFlow 只是一个数据量稍大的网站,自身业务逻辑并不复杂。

    Bing 我不清楚它用什么做的,但如果这种东西不是 C/C++做的,我会鄙视它。
    xuanbg
    xuanbg
    Aug 15, 2019
    45
    首先,微服务可以混合开发语言的,也不一定就要 Linux。
    如果微服务框架使用 Spring cloud 这一套,服务用 C#编写的话,也就缺个 EurekaClient 和 FeignClient 而已,自己照着 Java 的翻译一遍就有了。网关直接部署一个 Gateway 就行,也不需要什么业务代码,就用 Java 写一下好了。至于熔断器、链路追踪什么的,估计楼主也用不上,就没必要上了。如果不是非要容器化部署,就无需迁移到.Net Core。
    楼主要做的只是拆分服务和接口 REST 化就够了。
    TarotVoyager
    TarotVoyager
    Aug 15, 2019 via iPhone
    46
    混开源混出脑子有病的暴躁症案例只需要看#23 #31 #32 这种活体表演就知道了
    有时候跟风还跟出优越感不知道到底是学技术还是学跪舔
    TarotVoyager
    TarotVoyager
    Aug 15, 2019 via iPhone❤️2
    47
    @qq1054000800 全网吹 golang 的复读机全在 V2EX 了
    babedoll
    babedoll
    Aug 15, 2019❤️1
    48
    跨平台 net core 不是已经实现了吗 ,另外 net core 稳定的很,建议没用过的用过再说,不然坐井观天人云亦云只会让别人认为你是 xx 哈

    C#开发起来如丝般顺滑,一个如此出色的语言, 你可以拒绝,但是别不懂装懂。
    Rwing
    Rwing
    Aug 15, 2019
    49
    @NCE 照你这么说,首先要要抛弃的是 java 啊,诞生年代久远,语言特性差,更新慢,亲爹都把他卖了
    ragnaroks
    ragnaroks
    Aug 15, 2019
    50
    如果.net core 有 java 的生态,那么一堆语言都可以消失了,然而并没有如果,就连微软也是考虑用 rust 替代 C++而不是 C#

    我虽然看不懂微软的操作,但是.net core 和 java 和 c 已经可以满足任何需求了
    guolaopi
    guolaopi
    Aug 15, 2019
    51
    核心模块包一层微服务,以服务的形式来调用模块。
    然后慢慢迁移到.NET core
    =======
    楼上大神们都是文不对题,楼主显然问的是做.NET 的公司面对现在形势应该怎么办。
    一堆让换语言的是什么操作?如果作为技术负责人来说这种说换语言就换语言的,公司成本为零吗?

    然后为了不被喷,.NET core 是垃圾(小声 BB )你们满意了吧。
    leeeeee
    leeeeee
    Aug 15, 2019
    52
    做 OA 的?
    index90
    index90
    Aug 15, 2019
    53
    技术没有好坏,只有适不适合,语言也是

    抛开业务谈技术,只是停留在码农层面而已
    viWww0vvxmolvY5p
    viWww0vvxmolvY5p
    Aug 15, 2019 via Android
    54
    @xuanbg 这才是正题。
    现在研究.net core 的人基本上都是喜欢技术的,虽然学的人少,其实楼主只需要开出和 Java 同等的待遇,就能留住足够多的人才,.net 确实开发效率高,一个顶俩,相比之下 Java 难用不说,从业人员水货颇多,要找到像样的人也不容易。
    DNLi
    DNLi
    Aug 15, 2019
    55
    @AdamJin 那个是代码有问题,而且已经发现了问题咯
    yanyanlong
    yanyanlong
    Aug 15, 2019
    56
    转做 unity 3D
    dhssingle
    dhssingle
    Aug 15, 2019
    57
    @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/
    dk7952638
    dk7952638
    Aug 15, 2019
    58
    微软耍猴都十几年了,而且看最近的趋势依然是乐此不疲,都到现在了还推荐什么.net core 等等微软技术的人,不是蠢就是坏
    TangMonk
    TangMonk
    Aug 15, 2019
    59
    我现在还用 Delphi
    micean
    micean
    Aug 15, 2019
    60
    一看就是做企业应用的,用啥微服务
    Rwing
    Rwing
    Aug 15, 2019❤️1
    61
    @dk7952638 智商是硬伤.....
    Fule
    Fule
    Aug 15, 2019❤️1
    62
    国内 .NET 的人不好招是事实。不过我看好 .NET Core,尤其是做企业开发的。唱 .NET 转 Java 的,基本上就跟唱“ PHP 是世界上最好的编程语言”一样,更多像个梗,笑笑就好,不要太当真——当前,前提是要有自己的主见,有自己的判断。
    dk7952638
    dk7952638
    Aug 15, 2019
    63
    @Rwing 对对对,我智商确实不行,您好好学微软家的技术就行,别打理我,祝您早日发财~
    Keyes
    Keyes
    Aug 15, 2019
    64
    @TangMonk Delphi 真乃一代神器,当年 BCB 的封装也比 MFC 好用一万倍,可惜了
    695975931
    695975931
    Aug 15, 2019
    65
    在国内,只有 java,python 才是政治正确,所以其他的语言,都有人在喊,转 java.....
    TarotVoyager
    TarotVoyager
    Aug 15, 2019 via iPhone
    66
    @dk7952638 开源界的跟风憨批技术好不好不知道,被微软杀全家还是一直没少
    lidfather
    lidfather
    Aug 15, 2019 via Android
    67
    竟然有人抵制来源,真是林子大啥玩意都有
    lidfather
    lidfather
    Aug 15, 2019 via Android
    68
    竟然有人抵制开源,真是林子大啥玩意都有
    charlie21
    charlie21
    Aug 15, 2019
    69
    这里列出一篇文章 说明了何时使用 .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。
    laminux29
    laminux29
    Aug 16, 2019
    70
    @dhssingle

    1.这就是我说的开箱即用的问题了。用 Nuget 装驱动,极端情况下会非常麻烦。比如 MySQL,Mysql 官网最新的套装,包含的驱动,C#的 EF 用不了。然后需要各自查资料,找出可用版本后,MySQL 那边的版本又对不上,需要降级,虽然最后能解决,但非常麻烦,而且用不了最新版。安装就这么多事情,后续开发中,这类事情只会更多。

    2.这就是我说的开发效率问题了。Windows+.Net+Visual Studio+MSSQL 的唯一优势就是开发效率高,你只用 VSCode,对开发效率持 [凑合] 态度,导致唯一的优势就没了,那我为什么要去用.Net ?而不是 Cpp 或 Java ?

    3.你应该没见过,微软在某些情况下,给钱都不愿意解决,故意拖延,极端情况下导致项目死掉的情况。

    4.大型项目,不仅会有大量的数据,还会有复杂的业务,甚至对性能要求极端高的业务。Stack Overflow 只是冰山一角。对于 Bing,我说了,这种东西,用.Net 去做,我不想谈这个,丢脸。
    dhssingle
    dhssingle
    Aug 16, 2019
    71
    @laminux29 #70 这有什么好丢脸的,据我了解 Azure 基本上是 C# 写的,底层和需要高性能的地方才会用 C/C++ 写。Bing 应该也是差不多的模式。
    ddup
    ddup
    Aug 17, 2019 via Android
    72
    都唱衰 .NET 可是它这么多年始终排名前 5,唱衰 Java 的也不少,了它还是第一。
    都用 mongodb,都说关系型数据库已死,可是世界排名前 2 的数据库还是 mysql 和 sqlserver
    forgottencoast
    forgottencoast
    Oct 5, 2019
    73
    @laminux29 微软的网站,包括访问量世界前 20 的,live.com,msn.com,bing.com 都是用.Net 开发的,以前 microsoft.com 还是用 webform 开发的呢,这些高并发量网站个个对性能要求都是极高的。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1532 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 148ms · UTC 23:35 · PVG 07:35 · LAX 15:35 · JFK 18:35
    ♥ Do have faith in what you're doing.