2008年2月21日

 Firefox では IM Control ボタンタイプの表示が崩れやすい傾向にあるようです(というかウィンドウタイプは未検証)。IE7・Opera・Safari (すべてWindows Vista 上)ではうまく表示されているんですけどね。どっちの解釈正しいのかはわかりません。

ひさんな状態

 この Blog でも Firefox で見ると表示が崩れてました。修正する際に気付いた点(だけ)をまとめておきます。

 ボタンタイプの IM Control は、主に div・canvas・a・img タグから構成されています。生成された HTML の各タグには、style 属性には適切なスタイルの設定がされていますが、これらのタグに対してスタイルの設定が別にされていると影響を受ける場合があります。

  • a タグに margin・padding が指定されている。
    Firefox だけ影響を受けます。0に設定しましょう。
  • div タグに text-align:left 以外が指定されている。
    Firefox だけ影響を受けます。center タグなどにより影響も受けます。
  • img タグに margin・padding が指定されている。
    全ブラウザで影響を受けます。0に設定しましょう。

 わかったのは以上です。しかし、Firefox での修正はたいへんですね。DOM Inspector は使えないようだし(あるタグが影響を受けているスタイルの設定がわからない)。IE Developer Toolbar みたいなものがあれば教えてください。

posted @ 23:40 | Feedback (2)

 Visual StudioからLive Search APIを利用するとき、2008以前は「Web参照の追加」ダイアログを使うことでMSNSearchServiceクラスが作られていました。2008からは「サービス参照の追加」になっています。作られるクラスもMSNSearchPortTypeClientクラスになりました。

 参照の追加によって作られたファイルはソリューションエクスプローラの「すべてのファイルを表示」ボタンにより確認できます。

 2008以前・2008で作られるクラスは、それぞれ

  • MSNSearchService: System.Web.Services.Protocols.SoapHttpClientProtocolを継承したクラス。
  • MSNSearchPortTypeClient: System.ServiceModel.ClientBase(Of TChannel)を継承したクラス。

になっています。同じWSDLから作成されるのでデータプロパティやメソッドは同じですが、2008のサービス参照の追加によって作られたクラスはWCFクライアントオブジェクトになっています。そのためWCFクライアントの使い方に沿った手順が求められます。

 サービスの操作を呼び出した後はCloseメソッドを使い終了します。例外の場合はAbortメソッドを使います。例外の種類も以前と異なっていることがわかります。SOAPによる例外はFaultExceptionによりわかりますが、以前のように詳細なメッセージは含まれていません。

Try
    Dim service = New MSNSearchPortTypeClient
    Dim searchResponse = service.Search(searchRequest)
    service.Close()
Catch timeoutEx As TimeoutException
    service.Abort()
Catch soapEx As ServiceModel.FaultException
    service.Abort()
Catch commEx As ServiceModel.CommunicationException
    service.Abort()
Catch ex As Exception
    service.Abort()
End Try

 参考: WCFクライアントの概要

 2008で従来のようにWeb参照の追加をしたい場合は、サービス参照の追加ダイアログの「詳細設定」ボタン→「Web参照の追加」ボタンから追加可能です。.NET Framework 2.0を使用したアプリケーションのために残されているようです。

posted @ 0:03 | Feedback (7)