.net 的库作者是不是都在向 js 看齐?

181 天前
 bthulu

一个项目, 非要拆成好几个项目, 恨不得一个 class 对应一个 dll 文件, 刷爆 nuget 排名

说的就是你, serilog, asyncex.

一个简单的工具类 tools, string 相关的起一个项目, int 相关的起一个项目, long 相关的起一个项目, 然后一股脑上传到 nuget 上面, 你想引入 tools, 瞬间就给你带入 toos.string, tools.int, tools.long, tools.double, tools.float, tools.bool, tools.common, tools.context.

总之一句话, 不用 dll 文件把你的 publish 文件夹塞爆绝不罢休.

它明明可以用一个 30kb 的 tools.dll, 它不, 它非要拆成 10 个 3kb 的 dll

如果依赖的三方库稍微多一点, 那最后发布文件夹简直就跟 node_modules 一样臃肿.

我觉着再这么下去, 总有一天发布文件夹内的文件会成千上万甚至几十万.

3301 次点击
所在节点    .NET
22 条回复
deali
181 天前
发布可以设置打包成单文件啊。 加个 PublishSingleFile 参数就行了
jjx
181 天前
根源还是来自 java 的思维吧
thinkershare
181 天前
不知道你在吐槽啥,.NET 原本的大型程序集 Assembly 本来就太大了,基本也没多少人使用 Module 模块。
我是希望尽量减小 dll 的体积,一个服务,几千个 dll 完全可以接受。
另外完全可以实现一份源代码发布多个包,一个大型的包包括所有子模块,各个子模块也可以发布独立的包。
我极度讨厌依赖大量我不需要的东西,至于文件你看着烦躁,完全可以自己打包到一个单文件里面。
stinkytofu
181 天前
虽然我没有开发过.net, 但是这样这不挺好的么, 只用 double 不用 float 的话, 不就省了 3kb 么. 这样还挺简洁明了的
netabare
181 天前
dll 太大了 Unity 那边编译时间直线上升,编译一下都能跟同事出去吃顿饭回来发现还没编译完。

dll 小一点可以选择加载更少的依赖,这不挺好?
opentrade
181 天前
怎么做都是有人吐槽的
gux928
181 天前
我之前开发 wpf 的就想问,怎么把这些 dll 集中到一个文件夹里。主目录下就一个 exe 或者再来个配置文件。其他都在子目录下。

多一点不要紧,就是看起来太乱。😵‍💫
Chad0000
181 天前
作为一个.net 全端,npm 那套才是更可恶的。
bthulu
181 天前
@gux928 你最后解决了吗? 我开发的 asp.net, 也是一堆 dll 在主目录下面.
nodejsexpress
181 天前
我觉得分拆了 才能让体积更小。不然什么都往一个文件里面堆,不相关的依赖引进来。
就是不知道为啥这个 node_module 文件夹会这么大。。
bthulu
181 天前
@stinkytofu 有你想的这么简单就好了. 你以为的是只用 double 不用 float 的话, 就只引用 double 就行了. 事实却是 double 又依赖了 common, context 等等. 这样我重新部署的时候, 很难看出来到底多了几个 dll.

对于一般人来说, 这或许也没啥, 把 dll 一股脑全复制过去覆盖掉旧的就行了.

但是我这边很多项目是通过 todesk 部署在国外客户的工厂里的台式机里面. 这种跨国网速是很慢的, 比不得跨国云厂商, 两边都是家用带宽, 只有个几 kb 的传输速率. 把 dll 全部甚至过去替换的方案几乎是不可行的. 只能是挑一挑多了哪几个 dll, 压缩成一个文件复制过去.

这种情况下我就希望 NUGET 上引入一个库, 就只引入一个 dll, 不然找起来实在费劲.
clorischan
181 天前
发布可以生成单文件
yjd
181 天前
@gux928 同感,就像拉屎现场。经常下到.net 程序大部分都这样。
xomix
181 天前
@bthulu 这种特殊需求你为什么要问责开源作者?你这不是只能吃流食的病人骂肯德基没有液态炸鸡的心吗?
cc666
180 天前
@bthulu 直接使用现有工具或者对文件夹进行 diff 不就好了么,小文件不是更有利于这种场景么?你不会肉眼 diff 吧
wanguorui123
180 天前
拆分了编译速度会变快
wu67
180 天前
这是 Java boy 的思路, 别黑 JS boy 呀, 那些瞎开文件一堆零零碎碎的, 几乎都是从 Java boy 那抄过来的, 我是前端看了也想骂人, 还有那些浓浓 Java 味道的 js 代码, 真是一言难尽
xingheng
180 天前
@netabare #5 dll 是 windows 下的动态库吧,应该不会参与编译,直接链接就好了。(很多年不做 windows 开发了)
jones2000
180 天前
关键是导入库没有成本, 如果都是收费库,就不可能出现了。
bthulu
180 天前
@cc666 一直以来都是肉眼 diff 的. 跨国还要跨 todesk 进行 diff, 这个工具还真不好写.

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/990376

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX