NVIDIA 初创加速计划,免费加速您的创业启动 了解详情
写点什么

在你每天的工作中使用非.NET 库好么?

  • 2008-11-30
  • 本文字数:1133 字

    阅读完需:约 4 分钟

从一开始,.NET 栈就对不受管理的库提供了一流的支持。通过使用 P/Invoke,开发者可以访问大多数的 Win32 API,同时还能获得 COM 支持以访问大量的应用和第三方库。随着近期动态语言运行时的不断发展,使用 Python、Ruby 及 JavaScript 编写的脚本也加入进来了。

但.NET 开发者应该这样做么? Clint Hill 说:不

这项工作很棒而且工具也在不断改进着。.NET 来了,这真令人感到兴奋。但 6 年过去了,兴奋的感觉却在不断消褪。整个文化开始变得有点疯狂了。这种文化的一个原则(从广义上来说,我使用了原则)是你所用的所有组件都必须从.NET 继承下来。也就是说如果你需要一个 Web 控件库,那么它必须是个.NET C#库,因为你正使用它来构建项目。如果这个库不是免费的,或者是花钱也买不到,那你只能自己去构建了。

这会导致一些问题,往小里说会导致项目开发速度变慢以致延期。往大里说会导致开发者不再相信其他的技术了,无论这些技术是如何完美的解决问题的。现在我对这种情况感到非常失望。

Clint 将这些问题一股脑儿的回复给了畅销书作者 Jeff Atwood 所发布的一篇博文。Jeff 与知名作者 Joel Spolsky 现在正从事于一个名为 Stack Overflow 的论坛。当他们想清理其站点的 HTML 时,Jeff 对现有的库都不太满意。他的原因是:因为他们不是用.NET 编写的

我花费了整整一周的时间为 Stack Overflow 构建了一套 HTML 清理函数,我会对此感到后悔么?肯定会的。在.NET 生态圈外有大量的清理解决方案,但针对 C#或 VB.NET 的却少之又少。我已经将核心代码贡献给社区了,所以未来的.NET 冒险家们可以将我们的代码作为其旅途上的路标了。他们可以从我们编写的简单、常规的代码中学习,然后将其继续用在 Stack Overflow 上。

Dare Obasanjo 解释了通常情况下这为什么不是一个好办法

Jeff 尝试解决的问题是允许 HTML 标签的部分子集而排除其他的标签以避免跨站点脚本(XSS)攻击。Jeff 的解决方案的问题(社区中的很多人包括 Simon Willison 都已经指出了)在于他使用了正则表达式来过滤 HTML 输入,这种方式会假设你所得到的 HTML 都是格式良好的。而这时问题就来了,正如很多开发者所指出的那样,你不得不考虑由于很多现代的 Web 浏览器自由的 HTML 解析方式所产生的不规则 HTML。这样如果你不想将貌似安全实则有风险的 HTML 存储起来,那你就必须对常用浏览器所处理的每个 HTML 进行反向工程。这样,要想使用这种方法,Jeff 真的应该考虑使用功能更加完善的 HTML 解析器,如 SgmlReader 或者 Beautiful Soup 而不是正则表达式。

这场争论不仅仅只是关于 HTML 清理,它还触及到了.NET 文化的核心。对于.NET 开发者来说,在你每天的工作中使用非.NET 库好么?

查看英文原文: Is It Appropriate to Use Non-.NET Libraries in Your Day to Day Work?

2008-11-30 20:56351
用户头像

发布了 88 篇内容, 共 258.6 次阅读, 收获喜欢 8 次。

关注

评论

发布
暂无评论
发现更多内容

关于AIOps、AI人像写真、云上AI应用训练与推理的感想

老周聊架构

AI 年度总结

功能强大的PDF编辑器推荐:Acrobat Pro DC 2023 最新中文版

胖墩儿不胖y

PDF pdf编辑器 Mac软件分享

推荐给前端开发的 5 款 Chrome 扩展 🚀

不在线第一只蜗牛

chrome 前端 开发 扩展

使用低代码工具构建电商平台:简化开发流程,加速应用搭建

EquatorCoco

软件开发 低代码 电商营销

DevOps系列文章之Docker部署web ssh工具sshwifty教程。

百度搜索:蓝易云

Docker Linux Web SSH 云服务器

前端 JS 安全对抗原理与实践

EquatorCoco

前端 接口 js 接口安全

聊聊kube-scheduler如何完成调度和调整调度权重

不在线第一只蜗牛

架构 集群 Kubernetes 集群

智慧工地源码:数字孪生智慧工地可视化解决方案

源码星辰

10分钟搞懂20个Golang最佳实践

俞凡

golang 最佳实践

Sobit:将BRC20资产桥接到Solana ,加速铭文市场的火热

鳄鱼视界

一文聊透 Linux 缺页异常的处理 —— 图解 Page Faults

bin的技术小屋

Linux 操作系统 内存管理 内核

Typora for Mac(Markdown文本编辑器) 1.7.6中文激活版

mac

Typora 苹果mac Windows软件 Markdown编辑软件

wsl下面的子系统启用systemctl教程。

百度搜索:蓝易云

Linux windows wsl 云服务器 systemctl

Go高级并发模式

俞凡

golang 最佳实践

INFINI Gateway 如何防止大跨度查询

极限实验室

Gateway 极限科技 数据网关

实时获取淘宝商品评论数据:价值、挑战与解决方案

Noah

2023-12-23:用go语言,一支n个士兵的军队正在趁夜色逃亡,途中遇到一条湍急的大河 敌军在T的时长后到达河面,没到过对岸的士兵都会被消灭 现在军队只找到了1只小船,这船最多能同时坐上2个士兵。

福大大架构师每日一题

福大大架构师每日一题

终端闲思录(4)- 关于终端的哲学呓语

黑客不够黑

2023平台云原生探索与实践

雪雷

DevOps 认证 #云原生 应用现代化

【Java】智慧工地源码-支持私有化部署,SaaS模式+全套硬件设备

源码星辰

源码 智慧工地

Sobit:将BRC20资产桥接到Solana ,加速铭文市场的火热

股市老人

如果让你来设计消息加密

EquatorCoco

信息安全 加密 消息加密

云原生中间件 MongoDB 的集群架构与设计

老周聊架构

mongodb 云原生 年度总结

苹果Mac电脑远程桌面连接推荐 Microsoft Remote Desktop正式版

mac大玩家j

远程办公 远程办公软件 Mac软件 远程工具

记一次生产慢sql索引优化及思考

快乐非自愿限量之名

MySQL 数据库 sql 索引 索引优化

Sobit:将BRC20资产桥接到Solana ,加速铭文市场的火热

EOSdreamer111

生成式AI:创造力助力者还是替代者?

京东JDAPI:电商行业的得力助手

Noah

Audition 2021 mac(au2021) v14.2中文激活版

mac

苹果mac Windows软件 audition 2021 au2021 数字音频编辑软件

Pixelmator Pro for Mac(图像编辑软件) v3.5.3激活直装版

mac

Pixelmator Pro 苹果mac Windows软件 图像编辑软件

软件测试/测试开发丨常见的测试用例设计方法

测试人

软件测试 测试开发

在你每天的工作中使用非.NET库好么?_.NET_Jonathan Allen_InfoQ精选文章