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

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

  •  1
     
  •   daijinming · 3 天前 · 3849 次点击

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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