BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース 非.NETライブラリを日々の業務で使用するのは適切か?

非.NETライブラリを日々の業務で使用するのは適切か?

まず初めに、.NETスタックには管理されていないライブラリに対する一流サポートがあった。P/Invokeを使用することで、ほとんどのWin32 APIにアクセスすることができ、COMのサポートにより、デベロッパを豊富なアプリケーションや第三者ライブラリへ開放する。Dynamic Language Runtimの最近の進歩により、Python、RubyおよびJavaScriptで書かれたスクリプトも関与している。

しかし、実際に.NETデベロッパはこれを利用しているのか?Clint Hill氏は、していないと言う(リンク)

作業はすばらしく、ツールはつねに改善されてきた。.NETが現れ、それに興奮した。しかし6年もすると、それは廃れてきた。多少おかしな風潮になってき た。この文化の教義の1つは、使用されているすべてのコンポーネントは、.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氏が解決しようとしている問題は、クロスサイトスクリプト(XSS)を避けるために、その他のHTMLを取り除きながら、HTMLタグのサブセッ トを許可する方法である。Jeff氏のアプローチでの問題は、Simon Willison氏を含む多くの人びとがコメントの中で指摘したが、正規表現を使用して、このようにHTML入力をフィルタリングすることは、かなりうま く形成されたHTMLがあることが前提になっている。そのアプローチでの問題は、多くのデベロッパが難しいと感じているが、現代のWebブラウザのリベラ ルなHTML解析ポリシーのため、不正な形式のHTMLの不安もあるということである。それゆえ、このアプローチを使用するためには、安全に見えるが、実 際はリスクをはらんでいるHTMLを格納することがないように、共通のブラウザのすべてのHTML解析quirkごとに、エンジニアを反転させる必要があ る。それゆえ、このアプローチを利用するには、SoupJeff氏は、正規表現の代わりにSgmlReaderやBeautiful Soupのような完全なHTMLパーサーを使用することを検討しておくべきだった。

この議論は、HTMLの無菌化についてではなく、.NETの風潮の核におよぶものである。.NETデベロッパにとって、非.NETライブラリを日々の業務で使用することが適切か?

 

原文はこちらです:http://www.infoq.com/news/2008/11/Using-NET-Interopt

この記事に星をつける

おすすめ度
スタイル

BT