首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  程序员

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

  •  1
     
  •   daijinming · 67 天前 · 4420 次点击
    这是一个创建于 67 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

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

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

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

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

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

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

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


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

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

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

    最后,.Net Core 这玩意是个新东西,稳定性有待考量,正式的大中型项目敢用这玩意?技术经理愿意背锅?
        36
    dhssingle   67 天前
    @NCE #32 语言层面这几个比 C# 优势明显在哪里?其他两个不说,Kotlin 基本就是照着 C# 做的,你说一个 C# 第二跟我讲什么优势。
        37
    Counter   67 天前 via Android
    白瞎了 C#这么好的语言😂
        38
    dhssingle   67 天前
    @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   67 天前 via iPhone
    做啥架构切换 不搞本地性能测试 直接拿生产环境上的? 这种方法反正没听说哪种软件工程实践这么玩的,即使是同步 玩灰度上线慢慢把坑填了再把流量全部切过去。
        40
    u823tg   67 天前 via Android
    @AdamJin 博客园这个是团队要要踩 docker 的坑,第一次上线就有推荐 k8s.
        41
    luozic   66 天前 via iPhone
    @u823tg 博客园一些搞法感觉没有软件工程,也没啥根因分析,
        42
    charlie21   66 天前
    企业级开发、企业级痛点问题、企业级应用 的部署 卖出,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   66 天前
    从增加就业的角度说,嗯,从事企业级开发 至少你知道你的工作的价值 是为了哪个公司服务

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

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

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

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

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

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

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

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

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

    抛开业务谈技术,只是停留在码农层面而已
        54
    mway   66 天前 via Android
    @xuanbg 这才是正题。
    现在研究.net core 的人基本上都是喜欢技术的,虽然学的人少,其实楼主只需要开出和 Java 同等的待遇,就能留住足够多的人才,.net 确实开发效率高,一个顶俩,相比之下 Java 难用不说,从业人员水货颇多,要找到像样的人也不容易。
        55
    DNLi   66 天前
    @AdamJin 那个是代码有问题,而且已经发现了问题咯
        56
    yanyanlong   66 天前
    转做 unity 3D
        57
    dhssingle   66 天前
    @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   66 天前
    微软耍猴都十几年了,而且看最近的趋势依然是乐此不疲,都到现在了还推荐什么.net core 等等微软技术的人,不是蠢就是坏
        59
    TangMonk   66 天前
    我现在还用 Delphi
        60
    micean   66 天前
    一看就是做企业应用的,用啥微服务
        61
    Rwing   66 天前   ♥ 1
    @dk7952638 智商是硬伤.....
        62
    Fule   66 天前   ♥ 1
    国内 .NET 的人不好招是事实。不过我看好 .NET Core,尤其是做企业开发的。唱 .NET 转 Java 的,基本上就跟唱“ PHP 是世界上最好的编程语言”一样,更多像个梗,笑笑就好,不要太当真——当前,前提是要有自己的主见,有自己的判断。
        63
    dk7952638   66 天前
    @Rwing 对对对,我智商确实不行,您好好学微软家的技术就行,别打理我,祝您早日发财~
        64
    Keyes   66 天前
    @TangMonk Delphi 真乃一代神器,当年 BCB 的封装也比 MFC 好用一万倍,可惜了
        65
    695975931   66 天前
    在国内,只有 java,python 才是政治正确,所以其他的语言,都有人在喊,转 java.....
        66
    chouchoui   66 天前 via iPhone
    @dk7952638 开源界的跟风憨批技术好不好不知道,被微软杀全家还是一直没少
        67
    lidfather   66 天前 via Android
    竟然有人抵制来源,真是林子大啥玩意都有
        68
    lidfather   66 天前 via Android
    竟然有人抵制开源,真是林子大啥玩意都有
        69
    charlie21   66 天前
    这里列出一篇文章 说明了何时使用 .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   65 天前
    @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   65 天前
    @laminux29 #70 这有什么好丢脸的,据我了解 Azure 基本上是 C# 写的,底层和需要高性能的地方才会用 C/C++ 写。Bing 应该也是差不多的模式。
        72
    ddup   64 天前 via Android
    都唱衰 .NET 可是它这么多年始终排名前 5,唱衰 Java 的也不少,了它还是第一。
    都用 mongodb,都说关系型数据库已死,可是世界排名前 2 的数据库还是 mysql 和 sqlserver
        73
    forgottencoast   15 天前
    @laminux29 微软的网站,包括访问量世界前 20 的,live.com,msn.com,bing.com 都是用.Net 开发的,以前 microsoft.com 还是用 webform 开发的呢,这些高并发量网站个个对性能要求都是极高的。
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   1492 人在线   最高记录 5043   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 26ms · UTC 16:38 · PVG 00:38 · LAX 09:38 · JFK 12:38
    ♥ Do have faith in what you're doing.