ASP.NET网页编程之在你天天的事情中利用非.NET库好么?仓酷云
我实在想不明白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很多师兄说主讲老师杭城方讲课很差就连旁听也没有去了) 同时也感谢博客园给我们这个平台,也感谢博客园的编辑们做成专题引来这么多高人指点。 以上是语言本身的弱点,在功能方面ASP同样存在问题,第一是功能太弱,一些底层操作只能通过组件来完成,在这点上是远远比不上PHP/JSP,其次就是缺乏完善的纠错/调试功能,这点上ASP/PHP/JSP差不多。 如今主流的Web服务器软件主要由IIS或Apache组成。IIS支持ASP且只能运行在Windows平台下,Apache支持PHP,CGI,JSP且可运行于多种平台,虽然Apache是世界使用排名第一的Web服务器平台。 但是java靠开源打出的一片天地,特别是在微软的垄断下能打开今天的局面还是有它的生命力的。 碰到复杂点的问题都不知道能不能解决,现在有点实力的公司都选择自已在开源的基础上做开发。但没听说过有人在IIS上做改进的,windows、sqlserver集群方面的应用也很少见。 ASP在执行的时候,是由IIS调用程序引擎,解释执行嵌在HTML中的ASP代码,最终将结果和原来的HTML一同送往客户端。 能产生和执行动态、交互式、高效率的站占服务器的应用程序。运用ASP可将VBscript、javascript等脚本语言嵌入到HTML中,便可快速完成网站的应用程序,无需编译,可在服务器端直接执行。容易编写。 可以通过在现有ASP应用程序中逐渐添加ASP.NET功能,随时增强ASP应用程序的功能。ASP.NET是一个已编译的、基于.NET的环境,可以用任何与.NET兼容的语言(包括VisualBasic.NET、C#和JScript.NET.)创作应用程序。另外,任何ASP.NET应用程序都可以使用整个.NETFramework。开发人员可以方便地获得这些技术的优点,其中包括托管的公共语言运行库环境、类型安全、继承等等。 可以通过在现有ASP应用程序中逐渐添加ASP.NET功能,随时增强ASP应用程序的功能。ASP.NET是一个已编译的、基于.NET的环境,可以用任何与.NET兼容的语言(包括VisualBasic.NET、C#和JScript.NET.)创作应用程序。另外,任何ASP.NET应用程序都可以使用整个.NETFramework。开发人员可以方便地获得这些技术的优点,其中包括托管的公共语言运行库环境、类型安全、继承等等。 可以看作是VC和Java的混合体吧,尽管MS自己讲C#内核中更多的象VC,但实际上我还是认为它和Java更象一些吧。首先它是面向对象的编程语言,而不是一种脚本,所以它具有面向对象编程语言的一切特性。 由于JSP/Servlet都是基于Java的,所以它们也有Java语言的最大优点——平台无关性,也就是所谓的“一次编写,随处运行(WORA–WriteOnce,RunAnywhere)”。除了这个优点,JSP/Servlet的效率以及安全性也是相当惊人的。
页:
[1]