马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
我实在想不明白net网页编程的机制,为什么非要那么蛋疼,在同一个平台下重复编译。从一入手下手,.NET栈就对不受办理的库供应了一流的撑持。经由过程利用P/Invoke,开辟者能够会见年夜多半的Win32API,同时还能取得COM撑持以会见大批的使用和第三方库。跟着近期静态言语运转时的不休开展,利用Python、Ruby及JavaScript编写的剧本也到场出去了。
但.NET开辟者应当如许做么?ClintHill说:不。这项事情很棒并且工具也在精益求精着。.NET来了,这真使人感应镇静。但6年已往了,镇静的感到却在不休消褪。全部文明入手下手变得有点猖狂了。这类文明的一个准绳(从狭义下去说,我利用了准绳)是你所用的一切组件都必需从.NET承继上去。也就是说假如你必要一个Web控件库,那末它必需是个.NETC#库,由于你正利用它来构建项目。假如这个库不是收费的,大概是费钱也买不到,那你只能本人往构建了。 这会招致一些成绩,往小里说会招致项目开辟速率变慢乃至延期。往年夜里说会招致开辟者不再信任其他的手艺了,不管这些手艺是怎样完善的办理成绩的。如今我对这类情形感应十分扫兴。 Clint将这些成绩一古脑儿的复兴给了滞销书作者JeffAtwood所公布的一篇博文。Jeff与出名作者JoelSpolsky如今正处置于一个名为StackOverflow的论坛。当他们想清算其站点的HTML时,Jeff对现有的库都不太中意。他的缘故原由是:由于他们不是用.NET编写的。我消费了整整一周的工夫为StackOverflow构建了一套HTML清算函数,我会对此感应忏悔么?一定会的。在.NET生态圈外有大批的清算办理计划,但针对C#或VB.NET的却少之又少。我已将中心代码奉献给社区了,以是将来的.NET冒险家们能够将我们的代码作为其旅途上的路标了。他们能够从我们编写的复杂、惯例的代码中进修,然后将其持续用在StackOverflow上。 DareObasanjo注释了一般情形下这为何不是一个好举措。Jeff实验办理的成绩是同意HTML标签的部份子集而扫除其他的标签以免跨站点剧本(XSS)打击。Jeff的办理计划的成绩(社区中的良多人包含SimonWillison都已指出了)在于他利用了正则表达式来过滤HTML输出,这类体例会假定你所失掉的HTML都是格局优秀的。而这时候成绩就来了,正如良多开辟者所指出的那样,你不能不思索因为良多古代的Web扫瞄器自在的HTML剖析体例所发生的不划定规矩HTML。如许假如你不想将貌似平安实则有风险的HTML存储起来,那你就必需对经常使用扫瞄器所处置的每一个HTML举行反向工程。如许,要想利用这类办法,Jeff真的应当思索利用功效加倍完美的HTML剖析器,如SgmlReader大概BeautifulSoup而不是正则表达式。 这场争辩不单单只是关于HTML清算,它还触及到了.NET文明的中心。关于.NET开辟者来讲,在你天天的事情中利用非.NET库好么?
检察英文原文:IsItAppropriatetoUseNon-.NETLibrariesinYourDaytoDayWork?
本文出自:http://www.infoq.com/cn/news/2008/11/Using-NET-Interopt
听03很多师兄说主讲老师杭城方讲课很差就连旁听也没有去了) |