2007/12/18

Win2008/VS2008を使用したアプリ開発セミナーに行ってきました

MSDNオフラインセミナー:Windows Server 2008 / Visual Studio 2008 を使用したエンタープライズアプリケーション開発の実践
日時:2007/12/17 18:30~20:00
場所:小田急ホテルセンチュリーサザンタワー

今日は久し振りにMSDNオフラインセミナーに参加してきました。

最近、勤務地が新宿から遠くなったので足が遠のいていましが、参加するといろいろと勉強になるので、また参加したいですね。

さて、今日はWindows Server 2008とVisual Studio 2008を使用したアプリケーション開発がテーマでした。

講師の方は小高太郎さんでした。今日の小高さんはスーツ姿にサンタ帽という不思議ないでたちでセミナーが始まりました。あ、すぐサンタ帽はとってしまいましたが。

今回は、かなり規模の大きな開発をケーススタディとして取り上げて説明していたので、新しいテクノロジーをどのように活用すればいいのか大分イメージがついてよかったです。

以下、備忘録メモ。

 

■WF(Windows Workflow Foundation)

今までも何回かWFの説明は聞いていたのですが、どうもピンと来なかったのですが、今日の説明でようやく理解できた気がします。

私の理解だと、WFはこんな感じだと思います。

「WFはGUIで業務フローをデザインし、各プロセス(アクティビティ)に業務ロジックを設定する。業務フロー処理はWFに任せてしまい、また変更の起きやすい業務フローをGUIで簡単に修正できるため開発生産性・保守性とも向上する」

業務フローをWFで先に作っておいて、そこに業務ロジックを組み込んでいくんですね。

この基本がブレていたので、今まで理解できていませんでした。

また、.NET Framework3.5には「ReceiveActivity」というアクティビティが追加になっていて、今まで手間がかかっていたWCFとWFの連携が簡単になったそうです。

あと、WFをサーバで動作させるには、ビジネスロジックをホストする必要がありますが、Windows Server 2008では、「WAS(Windowsプロセスアクティブ化サービス)」というものがあり、WASを使うと簡単にサーバにホストできるそうです。

 

■ASP.NET

ASP.NETでは、WFのインスタンスをローカル変数で持ってしまうと、ポストバックの度に変数が初期化されてしまい、WFがうまく動かないとのこと。

これは、WCFの「コンテキスト」を使用すればいいようです。コンテキストは、セッションのような仕組みをWCFでも使えるようにするもので、シリアライズしてセッションに入れておくことができるそうです。

あと、Visual Studio 2008では、ASP.NET AJAXの設定がWeb.configに記述され、Visual Studio 2005よりASP.NET AJAX開発が簡単になった模様。

 

■単体テスト

Visual Studio 2008 Professionalには、単体テスト機能とコードカバレッジ機能がついているようです。以前、コードカバレッジ機能を探したときに見つからなかったのですが、また調べてみようと思います。

(2007.12.18追記)
やっぱりないですね。いくら探しても見つからないので製品情報を確認したら、そももそProfessional版にはコードカバレッジ機能が付いていませんでした。リリースまで紆余曲折があったのかもしれませんね。

 

■高可用性

OS標準機能の「ネットワーク負荷分散(NLB)」を使用して、開発環境でも負荷分散で動作確認する方法のデモがありました。この発想は全くなかったので、非常に参考になりました。

また、クラスタ構成でASP.NETでセッション管理を行うと、サーバごとにセッション管理をしていてはうまくいきません。セッションを複数のサーバで共有するには以下の方法があるとのこと。

  • セッション用のサーバ(StateServer)を立てる
  • SQL Serverに永続化する
    • 無効なセッションはSQL Server Agentが削除してくれるらしい。すばらしい。」
  • 他のDBで永続化する

 

■関連セミナー

 

2007/09/20

REMIX07 TOKYOに行ってきました

REMIX07 TOKYOに行ってきました。 

Silverlightの情報を収集するために参加したのですが、その目的は十分に達成できたと思います。

株式会社アークウェイの森屋英治さんのお話は、微妙な笑いがあり、内容もとてもためになりますね。

家に帰ってきて、IT系のニュースをチェックしていたら、ITproでこれでもかというくらいREMIXの記事がアップされていて、ちょっとびっくりしました。

以下、ちょっとした備忘録メモです。

 

■備忘録メモ

  • Silverlight
    • クライアントサポート環境
      • Windows
        • IE / FireFox
        • 将来はOperaも対応予定らしい
      • Mac OS X
        • Safari / FireFox
        • FireFoxいつの間に?
      • Linux
        • Moonlightでサポート
        • Mozilla系ブラウザサポート?
      • Windows Mobile
        • Silverlight for mobie を開発中らしい
    • SilverlightはWeb or Desktopの二者択一に新しい選択肢を追加
    • XAMLは、"ザムル"と"ザメル"の2通りの読み方がある?
    • VSのオブジェクトブラウザはお友達
      • mini-CLRのサポート範囲チェック
    • x:Nameは大事(like 要素id)
    • Silverlight <-> JavaScript/DOMは相互にアクセス可
    • LINQ to Objects / LINQ to XML サポート予定
    • IsolatedStrageでローカルファイルへアクセス可
    • Silverlight Architecture Overview
    • SilverlightはWMVにアルファ情報を持てない → 大変らしい
    • Silverlightはオーバレイインターフェースが簡単(Flash大変)
    • YouTubeにSilverlightの動画あり
    • 書籍『Microsoft Silverlight完全解説』 - 2007/9/26発売予定
  • Virtual Earth

 

■Silverlightサイト

 

■REMIX07 ニュース

 

■関連セミナー

 

2007/08/31

LINQのセミナーに行ってきました

MSDNオフラインセミナー:LINQ の利用による Web アプリケーションのデータドリブン開発
日時:2007/08/30 18:30~20:00
場所:小田急ホテルセンチュリーサザンタワー 

今後、.NETの開発では大きなインパクトを持つであろう、LINQ (Language Integrated Query) のセミナーに参加してきました。 

LINQは、O/Rマッピング的な機能もありますが、それは論理レベルでの話で、LINQ自体はもう1つ上のレベルの概念レベルのテクノロジーになるようです。 

これにより、DB/XML/Objectといった異なるデータソースへのアクセスが可能になるようですね。 

LINQのテクノロジーは、大きな可能性を秘めているとは思いますが、DBの更新系がサポートされていないことなどから、まだ使いどころがよく分かりません。。。 

ふと思うことをつらつらと。 

  • 異なるデータソースへ統一したアクセスが可能になるのは魅力 
  • 実行時ではなく、コンパイル時にDBアクセスなどの文法チェックがされるのもいい 
  • 参照系に限ってうまく使えば、確かに生産性が上がりそう 
  • とはいえ、要員の教育工数はどうするのか? 
  • 現時点では、データ層のDB参照系にLINQを組み込むことが考えられるが、更新系と異なるテクノロジーは、かえって工数を増さないか?もしくは混乱が起きないか? 
  • LINQは、.NET Framework3.5ベース 
  • Windows Vistaのデフォルトは.NET Framework 3.0 
  • Windows Updateにより、Windows XPにも、今は.NET Framework 3.0が入っていることが多い 
  • LINQをクライアントサイドで使うためには、.NET Framework 3.5の配布が必要だが、いろいろ面倒かなぁ。 
  • .NET中心の組織ではいいけれど、LINQによりMicrosoftの技術にロックインされるのは微妙 
  • ローレベルでも国際標準に従っている方が、他のプラットフォームの技術に適応しやすい面は考慮しなくても大丈夫か? 
  • SQLインジェクションへなどへのセキュリティ対策は?

LINQの可能性は認めつつも、現業で採用するには、まだ分からないところが多いですね。 

これは、しっかり勉強しないと。 

 

以下、備忘録メモ。 

  • LINQは、オブジェクトデータモデルの構造表現力と、リレーショナルモデルの一括処理能力を実現する概念レベルのテクノロジー 
  • LINQは、概念レベルの埋め込みクエリ処理。論理レベルではない。 
  • 基本は拡張クエリ式を使用。その方が分かりやすい。 
  • ラムダ式は必要なときのみ使用がいいらしい。 
  • LINQ to XML では、複数のXMLをequals句でJOINできる? 
  • LINQからストアドを呼び出せる 
  • 通常は問題はないが、DBMLファイルにも限界がある 
  • 複雑なデータは、ADO.NET Entity Frameworkを使用 
  • LINQ to SQLで正式サポート対象はまだ参照のみ 
  • 現在のLINQ to SQLでも更新処理は一応できる

(2007.9.16追記)


 

■関連サイト 

■関連セミナー 

 

Tags: ,

2007/08/28

ASP.NET モバイルセミナーに行ってきました

MSDNオフラインセミナー:ASP.NET モバイル Web アプリケーション再入門
日時:2007/08/27 18:30~20:00
場所:小田急ホテルセンチュリーサザンタワー

ASP.NETでモバイルサイトを作るにはどうすればよいのかを知りたいと思い、セミナーに参加してきました。

ASP.NETでモバイルサイトを作れば、デバイスの違いを気にしなくていいという期待がありましたが、さすがにそれはないようです。

ASP.NET1.xのころは、Micorsoftでモバイルデバイスのアップデートを行っていたのですが、今は自分でモバイルデバイス用の設定を作らなくてはいけません。

また、標準で用意されている機能より凝ったことをしようとすると、とたんに難しくなるようです(既存コントロールの拡張とか)。 

モバイルデバイスに合わせたタグを自動出力してくれるのはありがたいのですが、凝ったことをするにはその自動処理の仕組みも理解する必要がありそうです。

以下、備忘録メモ。 

■ASP.NETモバイルのプロジェクトの作成方法

ASP.NET モバイルは、VSのバージョンによって作成方法が異なる。

  • VS.NET2002
    • Mobile Internet Toolkit をインストール
    • 「ASP.NET モバイルWebアプリケーション」でプロジェクト作成
  • VS.NET2003
    • 「ASP.NET モバイルWebアプリケーション」でプロジェクト作成
  • VS2005
    • 「新しいWebサイト」でプロジェクト作成
    • 「新しい項目の追加」で下記を追加
      • モバイルWebフォーム
      • モバイルWeb構成ファイル

■ASP.NET モバイルの特徴

  • 1ページに複数のフォームを並べることが可能
  • モバイルデバイスに対応したマークアップを自動出力
  • モバイルデバイスごとに処理を変更可能

■モバイルWebコントロール

■独自コントロールの作成

独自にコントロールを作るには、以下の2つの方法がある。

  • ユーザーコントロール
  • カスタムコントロール

■既存のコントロールの拡張

できなくはないが、デバイスアダプタを作成する必要があり、かなり難しそう。

■モバイルデバイス

モバイルデバイスの扱いについては、@ITの下記連載を参照。セミナーの方が詳しいが割愛。

機種情報の追加情報。

モバイルデバイスの機種情報。

 ユーザエージェント情報。

 機種情報。

エミュレータ。

■実機検証

Soft Bankでは「Soft Bank Solution Provider(SSP)」になれば、無料で検証センターを使用できるらしい。

有料だが「ケータイラボ」だと、テスト用の実機を貸し出ししてくれるらしい。これはいいかも。

■関連サイト

■関連エントリー

 

2007/08/27

Tech・Ed 新聞がPDFで公開されています

Tech・Ed 2007 Yokohama 「Tech・Ed 新聞」 via 中の技術日誌ブログさん

Microsoftのサイトにて、Tech・Ed 2007 Yokohamaで配布されていた「Tech・Ed 新聞」が公開されています。

Tech・Ed の雰囲気を知るにはちょうどいい資料だと思います。

 

2007/08/25

Tech・Ed 2007 Yokohama に行っていました

8月21~24日の4日間、MicrosoftのTech・Ed 2007 Yokohama に行っていました。

今回は、Tech・Edに初めての参加でしたが、おもしろかったですね。

Tech・Edでは1つのセッションが75分なのですが、数えてみたら21セッションに参加していました。合計で、約26時間になります。

セッションの内容をいろいろ聞いていると、、今はテクノロジーの大きな転換期で、あと1~2年くらいで、システム開発の現場も、随分と変わっていくだろうと感じます。

Microsoftだけでも、非常に多くのテクノロジーが登場しますが、その中でも、以下のものは注目だと思います。

  • LINQ(Language Integrated Query)
  • Silverlight
  • WCF(Windows Communication Foundation)
  • VSTO(Visual Studio Tools for Office)
  • Office Open XML File Formats

まだ、情報ベースの理解なので、うまく説明はできないのですが、概要は以下のような感じかと。

あえて、WPF(Windows Presentation Foundation)は外してますのであしからず。

 

■LINQ(Language Integrated Query)

LINQは、.NET Framework 3.5から登場したデータアクセス方式です。

LINQはSQL Server/XML/Object/LDAPなどのデータ形式に、統一した方法でアクセスすることができます。

例えば、SQL Serverへからデータ取得を行うには、以下のように書きます。

var titles = from t pubs.titles
                  where t.price >= 20.0M
                  select t;

 

コードに直接、データアクセスのステートメントが書かれていますね。

このメリットは、テーブルのフィールド名などがインテリセンスで表示されることと、通常のSQLのように実行時ではなく、コンパイル時にエラーチェックされることです。

しかも、 LINQ(正確にはLINQ to SQL)では、LINQのステートメントを最適なT-SQLに変換して実行してくれます。リレーションがからんだ複雑なものも、もちろんOK。

そして、ObjectにもLINQは同じようにアクセスができます。例えばDataSetに対しても、LINQで条件を指定してデータ抽出なんかできたりします。今までは、一度取得したDataSetは、自分でプログラムを書いて処理していたので、これは便利ですね(DataViewとかあったと思いますが)。

なんでこんなことができるかというと、LINQは、リレーショナルデータモデルやオブジェクトデータモデルのような「論理データモデル」ではなく、上位の「概念データモデル」のレベルで処理を実行しているため。

残念ながら、.NET Framework 3.5時点での、LINQ to SQL では更新機能はありませんが、講師の赤間信幸さん曰く「LINQは超大型技術」というように、まさにその通りで、今後の大きな期待が持てる技術だと思います。

(2007.8.26更新).NET Framework 3.5時点でのLINQ to SQLでも、更新機能はあるようです。小野@どっとねっとふぁんさん、情報ありがとうございます。 

 

■Silverlight

Silverlightは、いま非常に注目されていますね。

詳しいことは、こちらを見ていただきたいのですが、Silverlightも大きな可能性を感じます。

Silverlightのインパクトはこの辺でしょうか?

  • アニメーションなどFlashに負けない高度な表現力
  • ブラウザのプラグインとして動作し軽く早い
  • クロスブラウザ(IE/FireFox/Safari)
  • クロスプラットフォーム(Windows, Mac OS X)
  • 3D以外は、WPFと同じようなことができる
  • C#,VB,JS,LLなど複数の言語が使える
  • XAMLを介することで、デザイナーと開発者がシームレスに協業できる
  • デザイナー用のExpression, 開発者用のVisual Studioとツールも分かれる
  • DRMに対応

 

■WCF(Windows Communication Foundation)

WCFは、.NET Framework 3.0の時点で登場しましたが、WCFの持つポテンシャルも高いと思います。

WCFはサーバサイドテクノロジーですが、1つのプログラムを書けば、後は設定を変えるだけで、Webサービスでリクエストを受けたり、MSMQ/.NET Remotingなどのリクエストも受けることができるイメージかと。

で、.NET Framework 3.5のWCFは、REST/JSON/RSS/ATOMなどもサポートし、より幅が広がったようです。

 

■VSTO(Visual Studio Tools for Office)

業務アプリケーションにおける、VSTOのインパクトも大きそうです。

新しいVSTOでは、Office2003/2007のアドインを作成できるだけでなく、ClickOnceにも対応しました。これで、Officeのアドインでも配布作業が大幅に楽になりますね。

また、Officeのアドインには、WPFを組み込むこともできたりして、かなりいろいろできそうです。

なんだかんだいって、ユーザはOfficeを使い慣れてますし、Excelにデータが表示されれば、再加工も簡単ですからね。

 

■Office Open XML File Formats

これはすごーく地味ですが、業務アプリケーションの作成では、かなりの威力を発揮する可能性があります。

Open XML File Formatsは、Office 2007で標準で使用されるファイルフォーマットなのですが、XMLベースで作られているため、プログラムから更新することができます。現在は、Word/Excel/PowerPointで使えます。

しかも、過去のOfficeファイルに変換する方法もあるようなので、結構いい感じ。

サーバサイドで、ExcelなどをOLE経由でコントロールすると、サーバが落ちますからね。

サーバサイドで、うまく使えると面白そうです。

 

まあ、そんなこんなで、疲れたけれども、楽しい4日間でした。

 

2007/07/31

Windows Mobile アプリケーション開発セミナーに行ってきました

MSDNオフラインセミナー:Windows Mobile アプリケーション開発
日時:2007/07/30 18:30~20:00
場所:小田急ホテルセンチュリーサザンタワー

 W-ZERO3やEM・ONEなどで、普及しつつあるらしいWindows Mobileのアプリケーション開発セミナーに行ってきました。

現状においては、Windows Mobile端末に触れることはないのですが、いきなり話がやってきてあわてるというのはいかにもありそうなので、折角の機会なので参加してきました。

今回の講師の方は、エバンジェリストの高橋忍さんでした。セミナー案内の写真とは随分印象が違っていたので、ちょっと驚きました。

さて、Windows Mobileのお話を聞いてデモを見たのですが、これならモバイル開発もできそうかもと思いました。

Windows Mobileの開発は、Visual Studio 2005(以降VS2005)を使用するのですが、.NETの開発スタイルで行えるので、モバイルアプリケーションの開発がかなり効率的にできそうです。

GUIによる画面作成はもちろん、エミュレータを使用したデバッグもできますし、ビルド時にモバイル端末にプログラムを送り込むこともできたりして、なかなかよさそうな感じでした。

また、モバイル端末では画面が回転するのですが、それもVS2005でGUIで動作確認できるのがいい感じです。

まあ、実際に開発を行えば、それ相応の苦労はあるでしょうが、業務アプリケーションの構築を考えるなら、結構いい選択肢かもしれません。

 

以下、備忘録メモです。

  • Win32 > .NET Compact Framework
    • Compact FrameworkはWin32 APIの機能を網羅しているわけではない
    • できないことも結構あるらしい
    • 実際のアプリケーションとしては問題のないレベルの模様
  • Compact Framework
    • .NET Frameworkのサブセット
    • 動作原理は同じで、初回起動時が遅いことも同じ
    • XML, Webサービス, MSMQ 、Threadなどもサポート
    • SQL Server 2005 Mobile Edition (無償)
    • SQL Server 2005 Compact Edition (無償)
      • SQL Server 2005 Mobile Edition の後継らしい(参考
      • デスクトップでも使えるようだ
  • Windows MobileとCompact Frameworkは別物
    • レイヤーとしては、Windows CE → Windows Mobile → Compact Framework
  • 開発環境
    • VS2005 Standard 以上
    • Windows Mobile SDKをインストール(5.0 or 6.0)
    • Windows Mobile 各国語版エミュレータイメージをインストール(5.0 or 6.0)
  • エミュレータ
    • Active Syncで端末をつなぐと、実機にビルドしたアプリケーションを転送&実行
    • デバッグが可能
    • バッテリーの残り時間もエミュレート可
    • 実機より遅い
    • エミュレータはカスタマイズ可能
      • VS2005のツール→オプション→デバイスツール
      • 表示(背景)が少し崩れるが、使用上は問題なし
    • エミュレータマネージャ(dvcemumanager.exe)
      • 「クレードに接続」を選ぶと、PCとエミュレータがActive Syncで接続可能
  • フォーム
    • 画面の回転には、DockプロパティやAnchorプロパティを使用
    • ペンのタップはマウスの左クリックと同じ
  • その他
    • 実機に応じた開発の仕方が必要

 

■オンラインリソース

 

2007/07/23

マイクロソフトの開発プロジェクト運営のしくみセミナーに行ってきました

MSDNオフラインセミナー:マイクロソフトの開発プロジェクト運営のしくみセミナー(開発ツール編)
日時:2007/07/23 18:30~20:00
場所:小田急ホテルセンチュリーサザンタワー

本日は、Microsoftで開発しているツールで、どのようなプロジェクト管理を行っているかというセミナーに参加してきました。

このセミナーは、3月のセミナーの続編で、講師の方は佐藤精一さんです。

今回は、テストで発見されたバグをどのようにMicrosoftで管理しているかというお話でしたが、いやぁ参考になりました。

システム開発において、バグをどのように管理するのかというのは、なかなか表に出てこないノウハウですよね。うまくやっている組織は当然のようにやっていますが、うまくいっていない組織は手探りで苦しんでいるという感じでしょうか。

Microsoftでは製品リリースが近づいてくると、「エンドゲーム」というフェーズに入り、バグに優先度を付けて、徹底的にバグ修正をするそうです。

前回のセミナーのお話では、「エンドゲーム」ではプロジェクトリーダークラスが集まって、この優先度を付ける会議を毎日行うという徹底ぶりとのこと。

しかも、「エンドゲーム」にはいくつかのモードがあり、「承認モード」に入ると、プロジェクトのリーダーの承認がないと、チェックインすらできないそうです。

Windows2000以前のMicrosoft製品と、今のMicrosoft製品の品質には大きな開きがあると思っていますが、こういったプロジェクト管理の部分も随分進歩したんでしょうね。

技術セミナーではないので、詳しいことは書きづらいのがちょっと残念ですかね。

 

■関連サイト

■関連セミナー

■関連エントリー

 

2007/07/21

Silverlightセミナーに行ってきました

MSDNオフラインセミナー: Microsoft Silverlight が切り拓く Web の世界
日時:2007/07/20 18:30~20:00
場所:小田急ホテルセンチュリーサザンタワー

最近、Flashのキラーアプリケーションとして注目を集めている、Silverlightのセミナーに参加してきました。

セミナー講師の方は、大野元久さんでした。大野さんは、このセミナーの準備のために、前日は4時まで頑張ったそうです。お疲れさまでした。m(_ _)m

今まで思っていたより、Silverlightが今後のWeb業界に与えるインパクトは大きいだろうと感じました。特に、Webでコンテンツを配信するようなビジネスは、Silverlight1.1のリリース(2008年初頭?)辺りから、大きく変わるかもしれません。

以下は、備忘録メモです。

  • Silverlight概要
    • クロスプラットフォーム
      • クライアントOS → Windows, MacOS X
      • Webサーバは限定しない → Linux等もOK
    • 対応ブラウザは、IE, FireFox, Safari
    • XAMLによりデザインと開発が分離可能に
    • JS,C#,VB,Ruby,Pythonといった言語での開発
    • メディア配信への対応
      • 動画(WMV,VC-1)・音声(WMA,MP3)
      • HTTPのプログレッシブダウンロード
      • ストリーミング配信(要Windows Media Server)
      • DRM対応 ← このインパクトは大きい
    • 低コスト
      • ストリーミング配信に追加コスト不要
      • Expression Studioは某ツールより安いらしい
  • Silverlight 1.0
    • JavaScriptのみ
    • テキストは日本語未対応
    • DRMは未装備
  • Silverlight 1.1
    • CLR対応 → C#, VBで開発可能に
      • .NET Frameworkのサブセット
      • mini-CLR ?
      • 処理速度が速い
    • DLR対応 → Ruby,Pythonで開発可能に
    • 日本語テキスト対応予定
    • DRM対応
  • WPFとの比較
    • 一部コントロール未対応
    • 3D, GPU未対応
    • オフラインは×
    • 逆に言えば、それ以外はできる
    • しかも、Silverlightはクロスプラットフォーム
  • Silverlight Streaming by Windows Live
    • Microsoftによるストリーミングサービス(α版)
    • 4GBの領域+10万回/月の再生が無料(商用OK)
    • 1ファイルは22MBまで
    • Silverlightからのみ呼び出し可
    • CDN(Content Delivery Network)による配信

 

■関連サイト(Microsoft系)

■関連サイト(その他)

■関連セミナー

■関連エントリー

 

2007/07/11

SQL ServerのJIS2004対策セミナーに行ってきました

MSDNオフラインセミナー:SQL Server 2000/2005 [JIS X 0213:2004 対応に関するガイドライン] 技術ポイント解説 
日時:2007/07/09 18:30~20:00
場所:小田急ホテルセンチュリーサザンタワー

最近は、JIS2004にアプリケーションはどのように対処すればよいのか調べていますが、影響範囲が大きすぎて、アプリケーションの入り口で、問題を起こす文字をはじく方向に傾きつつ今日この頃です。

 さて、Microsoftから公開されている、下記ドキュメントの解説を行っていただけるということで、セミナーに行ってきました。

いやぁ、このドキュメントは、文字コードにもともと詳しいのならともかく、一度解説を受けないと理解するのは難しいですね。 

まず、JIS2004には3つの文字分類があります。

  • 標準字形
    • JIS2004で字形が変わった文字
    • 「MSゴシック明朝JIS04字形とJIS90字形.pdf」を参照
  • 補助文字
    • いわゆるサロゲートペア文字
    • 「MSゴシック明朝V5.00フォントアップデート情報.pdf」を参照
  • 結合文字
    • 通常の文字の「か」などに、「゜」を結合した文字
    • 「MSゴシック明朝結合文字.pdf」を参照

なお、PDFの資料は下記からダウンロード可能です。

 

そして、下図がなかなか難しい。

JIS2004
『SQL Server の JIS2004 対応に関するガイドライン』15頁より

この図が意味するのは、以下のようなことです。

「MS*」フォントも、「メイリオ」フォントも、JIS2004をサポートした上で、中国語のみのフォントもサポートしていますが、両者は微妙にサポートしている文字が違います。

そして、Vistaの中国語フォントは、JIS2004をサポートした上で、「MS*」フォントと「メイリオ」の両方の中国語のみのフォントフォントをサポートしています。但し、Vistaの中国語フォントは、結合文字をサポートしません。

 

あと、下図はJIS2004の特殊な文字をまとめた表になっており、JIS2004の検証用として使用できます。説明を聞くまでは、そんな大事なものとは気がつきませんでしたが。。。

JIS2004用検証文字
『SQL Server の JIS2004 対応に関するガイドライン』13頁より

 

また、Unicode, JIS, SQL Server の内容やリリース時期を、よく理解しておく必要があるかと。

SQL Server Unicode JIS2004
2000 Unicode2.0 (1996年) 仕様のみサポート
2005 Unicode3.2 (2002年) 文字も割り当て

 

SQL Server 2000は、Unicode2.0をサポートしているので、JIS2004を扱うことは一応できますが、補助文字(サロゲートペア文字)などは文字として割り当てられていない(重み値がない)ため、照合順序によっては、正しく補助文字を扱うことができません。

じゃあ、SQL Server 2005は安泰かというとそうでもなく、結合文字には重み値が割り当てられていないため、照合順序によっては、正しく結合文字を扱うことができなかったりします。

 

そして、問題をさらにややこしくするのが、SQL Server 2000/2005 両方で、Transact-SQL の文字列操作関数が補助文字と結合文字を正しく扱えないことです。

一応、SQL Server 2005には、SQL CLR用の「StringManipualteサンプル」はありますが、こういったものを使用しないとJIS2004に対応できないのは、しんどいですね。

他にも、照合順序が関連してきたりして複雑になります。

 

うーむ。JIS2004対応は、本当に手強いですねぇ。。。

でも、セミナーに参加してよかったです。

自力でここまで理解するのは、ちょっと難しいですからね。

 

■関連サイト

■関連セミナー

■関連エントリー

 

より以前の記事一覧



プロフィール

  • 名前:fnya
    経歴:
    SE としての経験は15年以上。様々な言語と環境で業務系システム開発を行い、セキュリティ対策などもしていました。現在は趣味SE。

    Twitter では、ブログでは取り上げない情報も公開しています。


    ブログについて

    このブログは、IT、スマートフォン、タブレット、システム開発などに関するさまざまな話題を取り上げたり、雑感などをつづっています。

    >>ブログ詳細
    >>自作ツール
    >>運営サイト
    >>Windows 10 まとめ

    Twitter のフォローはこちらから Facebook ページはこちら Google+ページはこちら RSSフィードのご登録はこちらから