【AICon】探索RAG 技术在实际应用中遇到的挑战及应对策略!AICon精华内容已上线73%>>> 了解详情
写点什么

在你每天的工作中使用非.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:56341
用户头像

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

关注

评论

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

Op丨ARB链dapp代币合约质押项目系统开发

l8l259l3365

【有奖体验】AIGC小说创作大赛开启!通义千问X函数计算部署AI助手

Serverless Devs

阿里云 Serverless AI

产品经理的效率利器:揭秘提升工作效率的10大神器!

彭宏豪95

项目管理 产品经理 在线白板 办公软件 在线协作

Meetup 回顾|Data Infra 研究社第十六期(含资料发布)

Databend

Chat Towards Data Science|如何用个人数据知识库构建 RAG 聊天机器人?

Zilliz

chatbot Zilliz zillizcloud rag

私有化部署的理想选择,WorkPlus成为企业微信、钉钉的完美替代方案

WorkPlus

Python 面向对象编程:类、对象、初始化和方法详解

小万哥

Python 程序员 软件 后端 开发

如何为3D模型设置自发光材质?

3D建模设计

材质 纹理 贴图

苹果Mac电脑思维导图软件XMind for mac中文破解版

iMac小白

XMind下载 XMind2023 XMind破解版 XMind中文版 XMind Pro

第11期 | GPTSecurity周报

云起无垠

特权账号管理系统简述

尚思卓越

特权账号管理 特权账号 PAM

最好的私有云桌面解决方案

青椒云云电脑

云桌面

设计一套评论系统

Kevin_913

Java 数据库设计 评论系统

运维:MySQL常用的服务器状态命令

这我可不懂

MySQL 数据库

幸福里基于 Flink & Paimon 的流式数仓实践

字节跳动云原生计算

flink paimon

灵活、可用、高扩展,EasyMR 带来全新 Yarn 的队列管理功能及可视化配置

袋鼠云数栈

hadoop YARN CDH 资源调度 hdp

鲨海狂潮,存力崛起

脑极体

存力

低代码助力软件开发

互联网工科生

软件开发 低代码

WorkPlus平台级定制,让您完全掌控业务与生态

WorkPlus

EndNote 21 for mac破解版 EndNote 21激活安装

iMac小白

EndNote 21下载 EndNote 21破解版 EndNote 21 mac

特权账号的功能

尚思卓越

网络安全 堡垒机 特权账号

1024程序员节获奖名单公示~恭喜各位上榜同学

Openlab_cosmoplat

1024程序员节

redigo连接池的源码分析

胡译胡说

Go redis 源码 源码分析 连接池

HarmonyOS多音频播放并发政策及音频管理解析

HarmonyOS开发者

HarmonyOS

如何区分特权账号管理系统PAM和堡垒机

尚思卓越

网络安全 堡垒机 特权账号管理

JNPF:让应用开发更简单、快捷

树上有只程序猿

开发平台 低代码平台 JNPF

WorkPlus打造安全专属的移动数字化航空母舰,助力企业全面掌控业务和生态

WorkPlus

关于数据库分片你需要知道的

遥遥知识库

Java 分布式数据库 后端 数据库分片 关于XX你应该知道的

如何使用透明贴图实现火焰效果

3D建模设计

材质 纹理 贴图

低代码让软件开发更快捷、简单

高端章鱼哥

低代码

【鸿蒙生态千帆起】HDD扬帆上海,赋能广大开发者共赢未来

最新动态

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