V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
TangMonk
V2EX  ›  .NET

.NET Core 感觉比 Golang 好啊

  •  1
     
  •   TangMonk · 2018-01-07 12:05:56 +08:00 · 47976 次点击
    这是一个创建于 2538 天前的主题,其中的信息可能已经有所发展或是发生改变。

    也可以跨平台编译,性能也和 golang 差不多,而且 c# 比 golang 更好用,还有 VS 这种很方便的 IDE

    137 条回复    2019-07-26 13:53:17 +08:00
    1  2  
    plqws
        1
    plqws  
       2018-01-07 12:08:28 +08:00
    不好,需要 runtime
    TangMonk
        2
    TangMonk  
    OP
       2018-01-07 12:11:25 +08:00
    @plqws golang 也有 runtime 啊
    alinwu05
        3
    alinwu05  
       2018-01-07 12:12:34 +08:00 via Android
    就是生态不行啊!
    poorcai
        4
    poorcai  
       2018-01-07 12:14:11 +08:00
    感觉已经晚了啊,国内这个环境...
    plqws
        5
    plqws  
       2018-01-07 12:14:53 +08:00
    @TangMonk distributing 后的,你用 golang 写的程序只要下个可执行文件就好了,net 的还得先安装运行时
    TangMonk
        6
    TangMonk  
    OP
       2018-01-07 12:16:26 +08:00
    @plqws 不用安装,你说的是原来的.NET Framework, 现在微软把.NET Framework 的一些核心功能单独提出来,开源了.NET Core, https://github.com/dotnet/core, 现在是跨平台的,不需要提前安装运行时
    marknote
        7
    marknote  
       2018-01-07 12:17:21 +08:00 via iPhone   ❤️ 2
    用起来是不错
    不过吧,你看看微软这些年都干了些啥,别的不说就说桌面技术就换了一茬又一茬,搞的现在写个桌面应用都不知道用啥好,说不定最后选个 html 或者 eletron
    微软的船,没有多少人敢上了都
    TangMonk
        8
    TangMonk  
    OP
       2018-01-07 12:17:21 +08:00
    @poorcai 大家都学 Java, PHP 去了。。
    plqws
        9
    plqws  
       2018-01-07 12:19:58 +08:00
    @TangMonk 你搞错了,我一开始也是这么想的。直到我用 .net native 编译后,发现还是需要安装 net 全家桶才能运行。
    plqws
        10
    plqws  
       2018-01-07 12:20:25 +08:00
    plqws
        11
    plqws  
       2018-01-07 12:23:32 +08:00
    @TangMonk 看来是我落后了,现在支持了 SCD 部署模式,和 Golang 一样了。
    plqws
        12
    plqws  
       2018-01-07 12:26:29 +08:00
    @TangMonk 但是还是不支持编译 iOS 的库,所以这方面还是不如 go
    TangMonk
        13
    TangMonk  
    OP
       2018-01-07 12:30:22 +08:00
    @plqws 移动端没怎么用,做后端和一些 cli 可以代替掉 golang 了
    XiaoFaye
        14
    XiaoFaye  
       2018-01-07 12:30:52 +08:00
    @plqws 可以编译成单独运行的文件,不需要全家桶。PS:RedHat 已经和微软达成协议,以后会在发行版里预装.NET Core
    jyf007
        15
    jyf007  
       2018-01-07 12:33:36 +08:00
    这 dotnet 只不过是一个 jdk 一样的 rumtime 罢了
    zn
        16
    zn  
       2018-01-07 12:35:33 +08:00
    早十年或者五年做成跨平台的话,哪有 golang 什么事!
    现在?蛋糕都分得只剩渣渣了,你再厉害,也只能从别人嘴里抢尚未咽下去的残渣了。
    doubleflower
        17
    doubleflower  
       2018-01-07 12:37:59 +08:00
    哪怕语言和 go 一样好生态也不行,何况还是 ms 出的
    timothyye
        18
    timothyye  
       2018-01-07 12:38:40 +08:00 via Android
    感觉又跟 Windows Phone 一样,iOS 跟 android 把市场分得差不多了才出来,后来也不行了……
    dhssingle
        19
    dhssingle  
       2018-01-07 12:44:11 +08:00   ❤️ 2
    很好奇,java 生态比不过,Go 的生态哪点比.net core 强了?
    flynaj
        20
    flynaj  
       2018-01-07 12:47:19 +08:00 via Android
    也可以跨平台编译,但是平台太少,并发性能比 golang 差不太多,c#好用不知道从何说起,vscode 编程言语都支持
    fwee
        21
    fwee  
       2018-01-07 12:55:32 +08:00
    golang 爹好,这就是现实。C# 完爆 go 但是没社区。

    另外恭喜楼主踏入八奇思考领域的第一步
    fwee
        22
    fwee  
       2018-01-07 12:58:42 +08:00
    @flynaj go 2.0 的目标 C# 5 年前都有。看看 k8s 都是那么扭曲的用 go 的,就知道这些特性是不是需要了。
    patr0nus
        23
    patr0nus  
       2018-01-07 13:05:52 +08:00
    @plqws

    > 但是还是不支持编译 iOS 的库

    其实是可以的,虽然还只是 preview 版本。https://developer.xamarin.com/guides/cross-platform/dotnet-embedding/
    hjc4869
        24
    hjc4869  
       2018-01-07 13:07:20 +08:00 via iPhone
    @plqws iOS Android 用 Xamarin 就行了,库全部 target .NET Standard 2.0
    gamexg
        25
    gamexg  
       2018-01-07 13:11:21 +08:00
    以前学过 c# ,感觉微软 .net 的文档很好,印象最深的是每个库函数都明确的标明是否线程安全。
    但是当时非常烦的一个问题是依赖 .net 框架,而且不支持将运行时静态编译进程序。
    现在没接触,就不知道具体情况了。


    微软开源+跨平台支持太晚了,要是一开始就开源+跨平台还好,或者一开始就提供跨平台时间表。
    现在再提供跨平台让人不放心使用,怕微软什么时间策略一变又不提供跨平台支持了。
    另外 ms 名声并不好,印象早年打击过开源的 .net 实现 mono。
    TangMonk
        26
    TangMonk  
    OP
       2018-01-07 13:11:47 +08:00 via Android
    @flynaj c# 应该比现在常见的语言好用很多,你去读读微软的文档就知道了
    TangMonk
        27
    TangMonk  
    OP
       2018-01-07 13:12:43 +08:00 via Android
    @gamexg 现在貌似收购 mono 了
    gamexg
        28
    gamexg  
       2018-01-07 13:17:14 +08:00
    @TangMonk #27 那更悲剧,单点,没容错机制了。
    只能和 mysql 一样再建立一个开源分支了,但是专利还是比较麻烦。
    alcarl
        29
    alcarl  
       2018-01-07 13:21:18 +08:00 via Android
    最好用的是 vb 啊ଘ(੭ˊ꒳​ˋ)੭666✧
    TangMonk
        30
    TangMonk  
    OP
       2018-01-07 13:25:52 +08:00 via Android
    @fwee c#的爹也不比 golang 的爹差啊,而且还是有社区的 https://github.com/dotnet/csharplang , 虽然现在一些通用的包可能还不多。
    hjc4869
        31
    hjc4869  
       2018-01-07 13:30:14 +08:00   ❤️ 1
    @gamexg mono 和 .NET Core 都有专利承诺,具体看 repo 里的( PATENTS.txt ),大概意思就是你不针对 .NET 的专利起诉微软,微软就把这些专利免费授权给你用。
    早期没有这个承诺 mono 根本不敢开发的。
    realpg
        32
    realpg  
       2018-01-07 13:38:26 +08:00
    @TangMonk #2
    golang 要啥 runtime ?
    都是本地静态链接程序
    notreami
        33
    notreami  
       2018-01-07 13:39:39 +08:00
    就怕变化太快,项目 刚上线,就告诉你,过时了,不支持了。。。
    TangMonk
        34
    TangMonk  
    OP
       2018-01-07 13:40:24 +08:00 via Android
    chih758
        35
    chih758  
       2018-01-07 13:42:05 +08:00
    微软就是原罪
    realpg
        36
    realpg  
       2018-01-07 13:47:56 +08:00   ❤️ 1
    @TangMonk #34
    你确定你看懂了这段英语?
    TangMonk
        37
    TangMonk  
    OP
       2018-01-07 13:50:41 +08:00 via Android
    @realpg 不好意思,我的英语不太好,麻烦你指明一下,到底是那句话说明了 golang 没有运行时?
    hjc4869
        38
    hjc4869  
       2018-01-07 14:01:12 +08:00 via iPhone
    @TangMonk 他怕是觉得 golang 没有一个用来加载 dll,运行时 JIT 检查编译链接的那个东西,然后把那个东西称作运行时
    realpg
        39
    realpg  
       2018-01-07 14:11:13 +08:00   ❤️ 10
    @TangMonk #37
    英语不好,就别跟人家玩咬文嚼字的游戏,内容不理解,连约定俗成的概念都不了解,就跟人玩文字游戏,没意思。

    任何程序,只要能 run,那就有 runtime 概念。具体 runtime 是啥意思,字面意思都很容易理解,这要都理解不了,那还是别吃这碗饭了。

    通常意义,就像一楼说的某种语言需要 runtime,指的是需要外部 runtime libary,对于传统.net就是.net framework, 对于 msvc 的高版本,就是 vc2xxx runtime redist,对于 java,就是 jre。

    golang 的所有单一输出,默认都是静态编译的纯本地机器码,不需要任何外部 runtime libary 支持。

    而.net core,核心应该还是.net 的那一套,只是不需要显式安装 runtime libary,在生成对应平台目标程序时,在程序内内嵌了一个 runtime,然后用这个 runtime 去执行原始程序翻译成的中间码。这样由于一般程序调用的库有限,可以把最基础的热门基础 runtime 库用目标平台机器码写好无论是否需要直接复制进二进制,然后一些非热门库根据代码是否使用,采用可选扩展形式,封装进程序,相当于每个发布的程序都带一个不全功能的解释器来压缩发布文件体积,核心还是.net 那一套,只是为了不需要用户麻烦的单独安装 framework 还有坑爹的不同版本 framework 乱套问题。顺带为了跟某些潜在竞争对手做竞争,扩展了一直强调的跨平台。
    TuringGunner
        40
    TuringGunner  
       2018-01-07 14:16:46 +08:00
    微软的东西,国内生态实在太差了

    早 10 年开源说不定都没 java 什么事了
    TangMonk
        41
    TangMonk  
    OP
       2018-01-07 14:24:35 +08:00 via Android
    @realpg 多谢指教
    beginor
        42
    beginor  
       2018-01-07 14:44:39 +08:00 via Android
    其实我觉得微软应该认真发展 mono,虽然是收购 xamarin 时的捎带品,但是.net core 的功能包括跨平台、本地化编译、自带运行时发布等,mono 在多少年前早就实现了。

    而且现在 mono 还帮微软扛起 VS for Mac/Linux 的大旗
    qinix
        43
    qinix  
       2018-01-07 14:56:47 +08:00 via iPhone   ❤️ 5
    @realpg

    你搞混了「虚拟机、静态链接、动态链接、运行时」的区别
    wezzard
        44
    wezzard  
       2018-01-07 15:03:56 +08:00
    Vive F#.
    joe1213
        45
    joe1213  
       2018-01-07 15:12:08 +08:00 via Android
    @realpg 😓
    shadownet
        46
    shadownet  
       2018-01-07 15:16:57 +08:00
    @TangMonk UI 只能 web,还是弱了
    TangMonk
        47
    TangMonk  
    OP
       2018-01-07 15:21:51 +08:00 via Android
    @shadownet 有开源的跨平台 UI
    qqmishi
        48
    qqmishi  
       2018-01-07 15:27:04 +08:00
    太晚了,当时想在服务器上跑 C#,mono 用的怀疑人生,等 core 出来的时候早就抛弃 C#的方案了。
    alinwu05
        49
    alinwu05  
       2018-01-07 15:32:54 +08:00
    @realpg
    Does Go have a runtime?
    Go does have an extensive library, called the runtime, that is part of every Go program. The runtime library implements garbage collection, concurrency, stack management, and other critical features of the Go language. Although it is more central to the language, Go's runtime is analogous to libc, the C library.

    有运行时,虽然不如虚拟机那么重量级。
    missdeer
        50
    missdeer  
       2018-01-07 15:50:56 +08:00   ❤️ 1
    一直觉得 C#很强大,但 MS 家的技术更新换代太快了,也许几天不关注就被告知你前几天用的技术已经过时了。。。
    ivmm
        51
    ivmm  
       2018-01-07 15:54:39 +08:00
    ASP.NET 的 Docker 可不可以用在 Linux 上运行传统 ASP 网站?

    最近苦于搭建 WIn Server ASP 环境,太麻烦了
    sammo
        52
    sammo  
       2018-01-07 16:07:59 +08:00
    真正的好东西 为什么要分享给别人呢?
    CatCode
        53
    CatCode  
       2018-01-07 16:22:16 +08:00
    同觉得,要是微软早点儿开源跨平台,没准现在已经火了
    现在啊,凉凉
    zhx1991
        54
    zhx1991  
       2018-01-07 16:36:38 +08:00
    招不到人...
    zjsxwc
        55
    zjsxwc  
       2018-01-07 16:43:20 +08:00
    我宁愿选择 java 也不用 dot net
    willm
        56
    willm  
       2018-01-07 16:45:21 +08:00
    技术的先进性只是很小的一方面,关键是生态。而在目前国内的技术环境中,.NET 技术栈毫无优势,人人都要黑一把 Microsoft 来显示自己的“牛逼”。最可怕的是,在马太效应的影响下,.NET 会越来越式微,所以如果你不是多年.NET 开发人员的话,.NET Core 其实没什么关注的必要。
    TangMonk
        57
    TangMonk  
    OP
       2018-01-07 16:49:00 +08:00 via Android   ❤️ 1
    @ivmm 不太清楚,如果用 VS 创建项目的时候就选择. NET Core APS.NET 的话就可以在 linux 上运行,你的项目估计要改下吧

    微软有提供迁移的文档 https://docs.microsoft.com/en-us/aspnet/core/migration/proper-to-2x/
    aminic
        58
    aminic  
       2018-01-07 17:05:17 +08:00 via Android
    ms 的小心思呀,一颗赛艇。
    ivmm
        59
    ivmm  
       2018-01-07 17:25:33 +08:00
    @TangMonk 多谢,我研究一下
    liuzelei
        60
    liuzelei  
       2018-01-07 17:37:31 +08:00
    我们已经跑在 centos 上了,爽的不要不要的。
    rider--gitlab--jenkins--centos,一套流水线。
    asp.net core is awesome !
    kiwi95
        61
    kiwi95  
       2018-01-07 17:56:16 +08:00 via Android
    C#的爹还不够好?只是这爹对一大票儿子不好,怪谁,吹 C#也要有度,好归好,没人用
    eslizn
        62
    eslizn  
       2018-01-07 18:05:08 +08:00
    @TangMonk Go programs are compiled ahead of time to native machine code
    hujianxin
        63
    hujianxin  
       2018-01-07 18:20:00 +08:00   ❤️ 1
    自从 golang 诞生以来,都有大批大批的人骂 golang 是烂语言:连继承都没有、连泛型都没有、if err != nill 满天飞等等等等。
    但是结果呢,依旧压不住 golang 越来越流行,越来越多的公司开始使用 golang。比 golang 语法好的语言太多太多了,但是流行度有 golang 高的屈指可数。

    所以呢,我认为,判断一个语言好坏,怎么能简简单单的用大家自认为好的语法评断呢?
    xupefei
        64
    xupefei  
       2018-01-07 18:41:09 +08:00   ❤️ 1
    @realpg #39
    > golang 的所有单一输出,默认都是静态编译的纯本地机器码
    不是纯机器码。你看看汇编就知道了,几乎就是硬凹了个 runtime lib 进去,你的代码一直在 call 这个 lib 里面的函数。相比 C/C++的汇编,golang 的可谓是十分丑陋。
    这种无限 call 的风格简直就像是脚本语言。
    wuethan
        65
    wuethan  
       2018-01-07 18:48:33 +08:00 via Android   ❤️ 1
    只有我从 Java 转.Net 吗? 搞 Java 给人打工好几年挣着死工资 自学.net 做软件和站点一年挣了十几万
    TangMonk
        66
    TangMonk  
    OP
       2018-01-07 18:49:24 +08:00 via Android
    @wuethan 做游戏外挂?
    h4lbhg1G
        67
    h4lbhg1G  
       2018-01-07 18:54:42 +08:00
    @xupefei 这帖子把 LE 大佬也钓来了! go 语言内置了一个 runtime,只是打包 exe 比 python 方便一点。
    winglight2016
        68
    winglight2016  
       2018-01-07 19:21:57 +08:00
    @wuethan 兄弟这句话似乎很眼熟的样子~~~
    sneezry
        69
    sneezry  
       2018-01-07 19:23:09 +08:00 via iPhone   ❤️ 12
    之前我看到关于微软的争论通常是困惑和愤怒的,很多东西明明微软做的比同类产品 /技术优秀,为什么还遭到很多人的“无脑”抵触呢?为什么很多人对微软有这么深的偏见?

    后来见得多了,我在反思这个问题,一两个人做出没有道理的事再正常不过,可是很多人都做了没有道理的事,那这件事基本可以确定是有道理的。

    现在我想我知道原因了,那就是微软“善变”。

    从某种意义上说,是一种信用上的缺失,大家对使用微软技术心理上没有安全感,选择微软的技术本能地对未来有所焦虑。

    没错,过去十年里,微软做了一些惹恼开发者的事情,比如和 Flash 竞争的 Silverlight,后来继续支持 Flash 的 Edge 不再支持了,再比如大家都清楚的 Windows Phone。

    不过这些产品是 SB 时代(史蒂芬·鲍尔默)的产物,我不敢说纳德拉时代微软会彻底解决“失信”的问题(毕竟公司大了,做出一些失败的产品是很正常的,Google 不是也有 Dart 么),但是与 SB 时代绝对是有巨大区别的。

    信用是靠一点点积累的,尤其是在有信用缺失前科的情况下重建信任更加艰难,所以我现在看到对微软有偏见的朋友会发自内心的理解,毕竟曾经那些事确实都是微软干出来的。

    当然选择相信现在的微软的朋友,你们大可放心用,SB 和纳德拉最大的分歧就是对跨平台和开源上的态度。SB 是商人出身,而纳德拉是技术出身,他们的背景决定了现在的微软和曾经的微软一点也不像同一个公司。
    TangMonk
        70
    TangMonk  
    OP
       2018-01-07 19:30:38 +08:00 via Android
    @sneezry 大佬,膜拜你很久了
    LukeEuler
        71
    LukeEuler  
       2018-01-07 19:42:47 +08:00
    c#语法写起来还是很爽的。but,在一台禁用 root,禁止联外网的 linux 服务器上,dotnet 几乎把我搞死了。没有静态编译,dotnet 的 sdk 还有可怕的 c 依赖。
    XIVN1987
        72
    XIVN1987  
       2018-01-07 19:49:50 +08:00   ❤️ 1
    怎么看这贴子感觉 Go 比 C#流行很多似的??

    可是在 Toibe、Github、StackOverflow 的榜单上明明 C#比 Go 排名高的多啊!
    TangMonk
        73
    TangMonk  
    OP
       2018-01-07 19:55:21 +08:00 via Android
    @XIVN1987 应该是国内不行
    zjsxwc
        74
    zjsxwc  
       2018-01-07 20:00:57 +08:00
    @XIVN1987

    C#排名很高? http://www.githubrank.com/ 这个排名里 C#少的可怜哦
    janxin
        75
    janxin  
       2018-01-07 20:06:37 +08:00
    支持 Net Core 干爆 Java...不过你觉得有希望吗...
    XIVN1987
        76
    XIVN1987  
       2018-01-07 20:22:49 +08:00   ❤️ 1
    @zjsxwc

    我说的是流行度排行榜,https://octoverse.github.com/ 页面 “ The fifteen most popular languages on GitHub ” 章节

    在 Toibe、StackOverflow 的榜单里面 C#的排名比这个榜单更高,但即使在这个榜单里 C#也依然比 Go 高
    KgM4gLtF0shViDH3
        77
    KgM4gLtF0shViDH3  
       2018-01-07 20:41:44 +08:00 via Android
    @wuethan 做站点和语言有啥关系。。
    loqixh
        78
    loqixh  
       2018-01-07 20:45:47 +08:00   ❤️ 2
    @realpg 其实你要这种.net core 也有, 还在开发中, 现在还没正式版, 不过基本没什么问题了
    https://github.com/dotnet/corert/blob/master/samples/WebApi/README.md
    kikyous
        79
    kikyous  
       2018-01-07 21:03:00 +08:00   ❤️ 2
    王者荣耀就是 c# 写的
    Tuisku
        80
    Tuisku  
       2018-01-07 21:16:10 +08:00 via Android
    @kikyous
    手滑按了赞,你在这说的 C#应该是指 Unity 3D 吧。。
    halFKing
        81
    halFKing  
       2018-01-07 21:33:41 +08:00   ❤️ 2
    C# 语言层面上是真厉害,写起代码来非常舒服,MS 文档支持也好,可惜 Windows 服务器太蠢,生态环境和 JAVA 不能比

    看好 .Net Core,能在 Linux 上能用 .Net 真的很赞
    rogwan
        82
    rogwan  
       2018-01-07 21:41:02 +08:00
    wintel 联盟挤牙膏的风格一脉相传,巨硬的软件编写能力一直很强,但就是不使劲,看看 Mobile 的下场
    rogwan
        83
    rogwan  
       2018-01-07 21:48:51 +08:00
    @sneezry 感觉 Python3 分叉差点也让 Python 阵地尽失。
    hackxing
        84
    hackxing  
       2018-01-07 21:49:15 +08:00
    又看到一大波 黑 我软。
    bobuick
        85
    bobuick  
       2018-01-07 21:53:07 +08:00
    好个毛线。java ,golang 之类的,随便一个模式玩的很成熟的,你用.net core 试下就知道了,上生产就等着给自己挖坟了。
    nikymaco
        86
    nikymaco  
       2018-01-07 23:00:27 +08:00
    @sneezry 老铁,深有同感。说 C#语言好不好,那是相当好。说.NET 生态棒不棒,只能就是个雏儿。很多码农一直错误的以为语言就是技术的全部,每个语言的诞生都有它的时代背景,遥想十年以前,那是信息化建设时代我们俗称的 IT 时代,.net 和 java 都是时代的宠儿,两大阵营各种正能量的「刀光剑影」好不快哉,到了现在,IT 时代已经变成了 DT 时代,互联网,云计算,大数据,AI,都没有了 C#的身影,反而剑走偏锋手游界硬生生的杀出了 unity3d,事物总是按二八原则划分,80%的码农跟着 20%的工程师走,知其然不知其所以然的分享着社区带来的优良产物。.net 想要再次站回浪口还有很长的路要走,厚积薄发,抓住良机。
    Phariel
        87
    Phariel  
       2018-01-07 23:18:09 +08:00 via Android
    C 艹艹已经凉了很多年了 君不见现在还有几个大平台还在用.net 的?以前用.net 搭起来的都纷纷转 Java 了
    darrh00
        88
    darrh00  
       2018-01-07 23:58:30 +08:00
    看了这多吹的,晚上花了一个小时折腾了一下,看完打包部署那几节文档,呵呵,只想说一 sh*t。Go 部署就一个文件到处拷,.net 我还是再过 20 年再看看吧。
    mengzhuo
        89
    mengzhuo  
       2018-01-08 00:05:53 +08:00
    @kikyous #76
    所有 unity 的游戏都是 C#

    C# 语法我不是很喜欢(当年客户端没空实现一些功能,1 天内我就帮着写了点逻辑提交,说明上手还是比较容易的
    微软的东西并不是不好,但毕竟黑盒有时会绊你一下(为了帮客户端实现了 TLS+自定义协议,搜遍文档,SO 找了一路……社区代码质量真是醉了……最后还是我摸索了半天参数才调对的。
    Go 真是我一见就爱,可能是因为我是写 Python Web 出身的。
    ResidualSoils
        90
    ResidualSoils  
       2018-01-08 09:33:03 +08:00
    诶。
    jeremaihloo
        91
    jeremaihloo  
       2018-01-08 09:43:06 +08:00   ❤️ 1
    我还是希望.net core 发展的好一些的,毕竟我还是很讨厌 Java 的,虽然我现在是个搞 python 的
    nannanziyu
        92
    nannanziyu  
       2018-01-08 09:51:50 +08:00   ❤️ 1
    @darrh00
    不就是 dotnet publish -o Output 一句话嘛?
    然后 dotnet xxx.dll 就可以了
    之后就都是 nginx 的工作的,不明白这有什么麻烦的
    TangMonk
        93
    TangMonk  
    OP
       2018-01-08 10:21:03 +08:00   ❤️ 1
    @nannanziyu publish 后就不用 donet xx.ddl 运行,直接./xxx 就行,因为 publish 包含了.net core 运行时了
    darrh00
        94
    darrh00  
       2018-01-08 10:23:51 +08:00
    @nannanziyu

    你 n 多台服务器上的 dotnet 哪来的? 不需要安装? 如果还有 dotnet 依赖我还不如去用 java 呢。

    另外跟 nginx 什么关系? dotnet 能运行在 nginx 里? 可能我孤陋了,去 Google 一下。
    TangMonk
        95
    TangMonk  
    OP
       2018-01-08 10:27:10 +08:00
    nightcat
        96
    nightcat  
       2018-01-08 10:53:13 +08:00
    @TangMonk It also has a number of disadvantages:

    Because .NET Core is included in your deployment package, you must select the target platforms for which you build deployment packages in advance.

    The size of your deployment package is relatively large, since you have to include .NET Core as well as your app and its third-party dependencies.

    Deploying numerous self-contained .NET Core apps to a system can consume significant amounts of disk space, since each app duplicates .NET Core files.
    darrh00
        97
    darrh00  
       2018-01-08 10:53:15 +08:00
    使用 self-contained, 打包了一个 hello-world,
    ```
    dotnet publish -o hello-world --self-contained -r linux-x64
    ```
    打出来一个目录, 内有 179 个文件,文件夹大小 63MB, bzip2 压缩后还有 25M,这点可以跟 node_modules 相媲美了。
    好吧,至少能打出来包,扔到服务器一跑,挂了,还有 libc 的依赖,libc 版本不行。
    ftexplore
        98
    ftexplore  
       2018-01-08 10:53:36 +08:00
    语言特性本身从来就不是影响市场的第一要素,关键是现存的技术市场生态环境。说白了就是用的人多才是硬道理。
    hjc4869
        99
    hjc4869  
       2018-01-08 10:55:11 +08:00 via iPhone
    @darrh00 你用的该不会是 CentOS 6 吧……
    TangMonk
        100
    TangMonk  
    OP
       2018-01-08 10:57:58 +08:00
    @nightcat 打包出来的确是大。。这个不知道 CoreRT https://github.com/dotnet/corert 能不能改进
    1  2  
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1567 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 16:55 · PVG 00:55 · LAX 08:55 · JFK 11:55
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.