Adobe
製品
Creative Suiteファミリー
Photoshopファミリー
Acrobatファミリー
Flash Platform
Digital Marketing Suite
Digital Enterprise Platform
Digital Publishing Suite
その他の製品一覧
ソリューション
コンテンツオーサリング
教育
金融機関
デジタルマーケティングソリューション
その他のソリューション
ラーニング サポート ダウンロード 会社情報
ご購入
アドビストア安心のサポート& サービス
アカデミック版のご購入学生、教職員、個人
ライセンスのご購入企業、教育機関、官公庁
販売パートナー
検索
 
情報 サインイン
ようこそ、 カート 注文状況 ユーザー登録
マイアカウント
サインアウト
サインインの目的 お客様のアカウントや体験版ダウンロード、製品の拡張機能、コミュニティエリアへのアクセスなどを管理するため
Adobe
製品 セクション   検索  
ソリューション 会社情報
サポート ラーニング
サインイン ようこそ、 注文状況 ユーザー登録
Qty:
Subtotal
Checkout
Adobe Developer Connection / ColdFusionデベロッパーセンター /

ColdFusion 8新登場

著者 Ben Forta

Ben Forta
  • forta.com

作成日

30 July 2007

ページ ツール

Facebookでシェア
Twitterでツイート
LinkedInでシェア
ブックマーク
印刷

Tags

必要条件

ユーザーレベル

初級

非常に優れた性能を持つColdFusion 7が発表されてから2年以上たち、その間には様々な変化がありました。

  • 製品に冠する社名は新しくなり、現在はアドビです(何度名前が変わったかが気になる方のために言うと、ColdFusionを保有する会社は3つ目になりました)。
  • Adobe Flex Builder 2がリリースされ、多くの開発者にとってEclipseがより一層魅力的になりました。
  • Ajaxは、ホメロスの『イリアス』の登場人物、ソフォクレスの悲劇、オランダのサッカーチーム、家庭用洗剤として使われてきた名前ですが、この製品が次世代のWebフロントエンドを構築する画期的な新しい手段となりました。
  • Apolloと呼ばれていたAIRのベータ版が公開され、開発者はFlex/FlashおよびHTML/JavaScriptを使用してデスクトップアプリケーションを構築できるようになりました。

こうした新しい動きは、ColdFusion 8の新たな機能を考える上で大変重要なことでした。

幸せなことに、2007年前半、当社のプレリリースユーザグループツアーの一部としてColdFusion 8を何千人もの開発者に披露することができました。プレゼンテーションやデモを準備しながら、ColdFusion 8には語りたいことがなんと多くあるのだろう、と驚きました。ColdFusion MX7は既に充分な競争力のある製品でしたが、ColdFusion 8へのバージョンアップは、これまでのアップデートとは異なり、まさに「飛躍的」なものでした。プレリリースユーザグループツアーの期間中、デモの内容やプレゼンテーションを慎重に選び、毎週アップデートしていました。ここでも、ColdFusion 8を構成する機能とテクノロジのハイライトについて、皆さんにご紹介したいと思います。

ここでは、私にとってのColdFusion 8が重要である理由のトップ8を紹介します。

理由8:進化したCFML

私たちがCFML(ColdFusion Markup Language)を愛してやまないのは、それがクリーンであり簡単で生産性も高く、そして何よりもコーディングしていて楽しいということです。しかし、これは改善の余地がないということではありません。ColdFusion 8では、CFMLをさらに簡単に、また直感的に使うための多くの改善点が導入されています。

例を示しましょう。これまでのColdFusionの式では、++や-=のような演算子はサポートされていませんでしたが、ColdFusion 8のCFMLでは++、--、%、+=、-=、*=、/=、%=、&&、||、!がサポートされています。また、CFSCRIPTタグブロックでは、ColdFusion 8では==、!、=、<、<=、>、>=も式の演算子としてサポートされています。

別の例を挙げましょう。配列を作成し、値を入力するとします。以下に示すのはこれまでのColdFusion構文です。

<CFSET myArray=ArrayNew(1)> <CFSET ArrayAppend(myArray, "Adam")> <CFSET ArrayAppend(myArray, "Ben")> <CFSET ArrayAppend(myArray, "Tim")>

同じ内容がColdFusion 8では次のようになります。

<CFSET myArray=["Adam", "Ben", "Tim"]>

次に、これまでの初期化構造体を作成する方法を示します。

<CFSET myStruct=StructNew()> <CFSET myStruct.product="ColdFusion"> <CFSET myStruct.version=8>

同じ内容がColdFusion 8では次のようになります。

<CFSET myStruct={product="ColdFusion", version=8}>

もちろん、古い構文も使用できますが、JavaScriptやActionScriptなど複数の言語を使って作業する開発者にとっては、ColdFusion 8によりコードがさらにクリーンになり、より一層の一貫性を持たせることができます。

もう1つ例を挙げます。これはCFMLで強化された機能の中でも、私が気に入っているものの1つです。CFMLタグを使用していて、オプションの属性を使用する必要がある場合があるとします(CFQUERYタグのCACHEDWITHIN属性か、CFMAILタグのSERVER属性など)。タグに属性を条件付きで付加する方法はないので、それぞれ異なる属性を持つタグの複数のセットを使用することになります。しかし、ColdFusion 8では次のように処理できます。

<CFSET args=StructNew()> <CFSET args.name="myQuery"> <CFSET args.datasource="myDSN"> <CFIF needCaching> <CFSET args.cachedwithin=CreateTimeSpan(0,1,0,0)> </CFIF> <CFQUERY ATTRIBUTECOLLECTION="#args#"> ... </CFQUERY>

この例では、CFQUERYタグにはATTRIBUTECOLLECTIONという属性があります。この構造には通常CFQUERYタグに渡される属性のNAME=VALUEペアが含まれ、これらの属性の代わりに使用されます。この場合の利点は何でしょうか。初心者にとっては、コードがクリーンで単純であることです。しかし、もっと重要なことは、ここに示すように、メンバを構造に条件付きで追加でき、条件付き属性を1度だけ処理する方法の問題が解決することです。

これらはごくわずかの例ですが、おわかりになるように、CFMLはこれまでよりもはるかに強力になりました。もちろん、これらの強化機能はすべて必要に応じて使うものであり、以前の方法でコードを記述し続けることができます。

理由7:より多くのバックエンドへのアクセス

かつてCold Fusion 2でC/C++でのユーザ独自のタグの記述をサポートしたときから、統合は常にColdFusionの歩みにおける重要な部分です。何年もの間、私たちはCOM、CORBA、Java、JMS、XMPP、SOAP、AMFなどのサポートを追加してきました。いろいろな意味でColdFusionはミドルウェアであり、様々なバックエンドをバインドしてそれらを活用するアプリケーションを記述できるようにする接着剤のようなものです。このような流れから、ColdFusion 8にも重要な新しい統合オプションが追加されています。

ユーザの組織で.NET開発を行っているのであれば、ColdFusion 8が完全な.NETクライアントであることを知れば興味を持っていただけるでしょう。これは、ローカルであってもリモートであっても、また、Windows以外のサーバからであっても、CFMLコードによって.NET CLR内で実行されているクラスまたはアセンブリを呼び出せることを意味しています。コードスニペットを以下に示します。

<!--- Get System.IO.DriveInfo class ---> <cfobject type=".NET" name="sidiClass" class="System.IO.DriveInfo"> <!--- Get drives ---> <cfset drives=sidiClass.GetDrives()>

このコードでは.NET System.IO.DriveInfoクラスのインスタンスを取得し、GetDrives()メソッドを呼び出して、ColdFusionサーバ上のハードドライブのリストを取得します。おわかりのように、これは非常に簡単な例ですが、大切なことは、ColdFusion 8では.NETコードの呼び出しが非常に簡単になったということです。ColdFusion 8は、CFML、Java、および.NETコードを同じページ内から呼び出せる唯一のプラットフォームであり、1つの結果セット内に結果を結合することもできます。これは実に強力な機能です。

もう1つの例は、Microsoft Exchangeの統合です。ユーザの組織でExchangeを使用している場合、ColdFusionは他のExchangeクライアントのようにExchangeサーバに接続でき、CFMLタグの呼び出しの事項としてタスクの追加やグループミーティングの設定などが行われます。以下のスニペットによって、ユーザであるBenのすべてのカレンダーのエントリが取得されます。

<CFEXCHANGECONNECTION SERVER="192.168.10.10" USERNAME="ben" PASSWORD="p@$$w0rd" CONNECTION="con1"> <CFEXCHANGECALENDAR ACTION="get" CONNECTION="con1" NAME="calQuery">

カレンダーのエントリの作成、データのフィルタリング、サブフォルダへのアクセスなども同様に簡単です。

理由6:高度なPDF統合

ColdFusionはColdFusion MX 7で初めてPDF統合を導入し、CFDOCUMENTタグとCFREPORTタグを使用してPDFドキュメントを作成できるようになりました。ColdFusion 8では、2つの新しいフォームのPDF統合が追加されました。

新しいCFPDFタグを使用して、PDFファイルのマージ、ページの追加または削除、パスワードによるファイル保護、PDFのフラット化、ページのサムネールの作成などができます。この例では、レポートフォルダのすべてのPDFファイルと2つの追加のPDFファイルをnew.pdfという名前の新しいPDFファイルにマージします。

<cfpdf action="merge" destination="new.pdf" overwrite="yes"> <cfpdfparam source="reports"> <cfpdfparam source="sales/jan.pdf"> <cfpdfparam source="sales/feb.pdf"> </cfpdf>

新しいCFPDFFORMタグを使用するとPDFフォームの作業が簡単になります。次の例では、既存のPDFフォームに値を入力します。

<cfpdfform action="populate" source="my.pdf"> <cfpdfsubform name="form1"> <cfpdfformparam name="employeeName" value="Ben Forta"> <cfpdfformparam name="date" value="#now()#"> <cfpdfformparam name="department" value="ColdFusion Team"> </cfpdfsubform> </cfpdfform>

CFPDFFORMタグを使用すると、ここに示すようにフォームフィールドに入力できるだけでなく、電子的に送信したフォームから値を抽出することもできます。

ここで紹介したのは注目機能の一部に過ぎません。ColdFusionの開発者が高度なPDF統合を使用できるようにする様々な属性やオプションは数多くあります。そのすべてはいくつかの簡単なタグで表されます。

理由5:帰ってきたデバッガ

ColdFusion 4およびColdFusion 5には、インタラクティブなデバッガが装備されていました。しかし、ColdFusion MXに移行してインタラクティブなデバッガはなくなり、多くの開発者をがっかりさせました。さて、この度、7年間の時を経て、デバッガが帰ってきました。今度は、Eclipseに構築されています。EclipseはFlex Builderを動かすのと同じエンジンです。

新しいデバッガの機能は以下のとおりです。

  • ローカルまたはリモートのColdFusionサーバに対するデバッグ
  • ブレークポイントの設定
  • 変数の監視
  • step-into、step-overなど
  • 他のブラウザから起動したアプリケーションのデバッグ
  • 同一のColdFusionサーバに対する複数のデバッグセッション

デバッガはColdFusionの一部として装備され、追加料金なしで使用できます。Eclipseをインストールし、ColdFusion 8を保有して、RDSアクセスを確保することだけが必要です。これらがあれば準備完了です。

また、クライアント側のAjaxデバッガも追加されましたが、Ajaxについては後ですぐに説明します。

理由4:セキュリティの向上

ColdFusion 8では、管理者はユーザに自分自身のアプリケーションを管理できる権限を与えることができますが、これまでよりも厳しいセキュリティ管理が行われます。新しいセキュリティ機能には、以下のようなものがあります。

  • 複数の設定が可能なColdFusion管理者ログイン。ユーザは一部の管理者ツールにアクセスできますが、管理者による定義に従って、他の部分のアクセスは制限されます。
  • 複数のRDSログイン、およびRDSログインをサンドボックスに関連付ける機能。共有環境でRDSを安全に使用できるようにします。
  • アプリケーションごとの設定。ColdFusion管理者にアクセスする必要はありません。
  • FIPS準拠暗号化。

ColdFusion 8のリリース準備を行う中で、サードパーティのセキュリティリスクを解析する会社に依頼して製品を徹底的に解析しました。ここで、「ColdFusion 8は、新機能によって提供される機能に関して妥協することなく、アプリケーションレイヤ攻撃に対する復元力が非常に高いことを示した。」という評価を得ました。自分たちではそんなにうまく言えませんでしたが。

理由3:Ajaxの導入

多くのColdFusion開発者がAjaxのサポートを要望してきましたが、その内容は次の2つの種類に分類されます。

Dojo、Prototype、JQueryなどを使用して本格的なAjaxフロントエンドを構築することを要望するユーザがいます。これらのアプリケーションは2つの部分に分かれます。クライアント部分はDHTML/CSS/JavaScriptで記述され、バックエンドはColdFusionなどの様々なバックエンドテクノロジで記述されます。通常、これらはJSONと呼ばれるXML形式を使用して統合され、バックエンドサーバとブラウザ間で送受信されたデータはJSONパケットとしてフォーマットされます。ColdFusionでは、JSONに対する組み込みサポートを提供することによりこのような統合を驚くほど簡単に行い、簡単な関数を使用してデータを変換できるようにし、JSONパケットとしてCFC結果を自動的にエンコーディングすることまでできます。

また、ずっと簡単なことを望んでいるユーザもいます。実はこちらのほうが多数派です。このようなユーザは、Ajax型の機能をすばやく簡単に活用する手段である、Ajax型のコントロールとウィジェットを要望しています。ColdFusionではこれを実現しました。

簡単な例であるauto-suggestコントロールから始めましょう。このコードスニペットをご覧ください。

<!--- Get data ---> <cfquery datasource="cfartgallery" name="data"> SELECT artname FROM art ORDER BY artname </cfquery> <!--- The form ---> <cfform> Art: <!--- Populate auto-suggest control ---> <cfinput type="text" name="artname" autosuggest="#ValueList(data.artname)#"> </cfform>

データベース駆動型のauto-suggestコントロールを作成するのに必要なのはこれだけです。コントロールは通常のテキストフィールドのように見えますが、一旦ユーザが入力を開始すれば、中断があると候補のリストがポップアップ表示されます。これはAjaxコントロールではありません(データはすべてクライアント側にあるため、非同期のコールバックはありません)が、とても役に立つ例です。

同じ例のAjax版を示します。

<cfform> Art: <cfinput type="text" name="artname" autosuggest="cfc:art.lookupArt({cfautosuggestvalue})"> </cfform>

ここでは、auto-suggestコントロールは、auto-suggest参照に対して非同期に呼び出される、サーバ上のColdFusionコンポーネントをポイントします。問題のCFCは次のようになります。

<cfcomponent output="false"> <cfset THIS.dsn="cfartgallery"> <!--- Lookup used for auto suggest ---> <cffunction name="lookupArt" access="remote" returntype="string"> <cfargument name="search" type="any" required="false" default=""> <!--- Define variables ---> <cfset var data=""> <!--- Do search ---> <cfquery datasource="#THIS.dsn#" name="data"> SELECT artname FROM art WHERE artname LIKE '#ARGUMENTS.search#%' ORDER BY artname </cfquery> <!--- And return it ---> <cfreturn ValueList(data.artname)> </cffunction> </cfcomponent>

ColdFusionは必要とされるクライアント側のJavaScriptを生成し、この例は機能します。非常に簡単です。

以下に、SELECTタグのコントロールに関する別の例を示します。最初のコントロールで選択が行われ、次のコントロールは関連するオプションで更新されます。

<cfform> <table> <tr> <td>Select Media Type:</td> <td><cfselect name="mediaid" bind="cfc:art.getMedia()" bindonload="true" /></td> </tr> <tr> <td>Select Art:</td> <td><cfselect name="artid" bind="cfc:art.getArt({mediaid})" /></td> </tr> </table> </cfform>

ここでは2つのCFSELECTタグが使用されており、それぞれCFCメソッドにバインドされています。最初のCFSELECTタグはgetMedia()メソッドに設定されています。2番目のタグは、最初のタグが変更されるときは必ずgetArt()への呼び出しによって設定され、最初のタグの値が引数として自動的に渡されます。

次に、ライブデータグリッドの例を示します。これはソートやページングなどをサポートします。

<cfform> <cfgrid name="artists" format="html" pagesize="10" striperows="yes" bind="cfc:artists.getArtists({cfgridpage}, {cfgridpagesize}, {cfgridsortcolumn}, {cfgridsortdirection})"> <cfgridcolumn name="lastname" header="Last Name" width="100"/> <cfgridcolumn name="firstname" header="First Name" width="100"/> <cfgridcolumn name="email" header="E-Mail" width="200"/> </cfgrid> </cfform>

ここでも、データはCFCメソッドへの非同期呼び出しを行うことによってロードされ、ページが変更されたとき、またはデータをソートし直したときにメソッドが再度呼び出されます。

新しいColdFusion Ajaxサポートは強力で洗練されており、ここですべてを紹介することはできません。詳細については、「Designing and developing with Ajax features in ColdFusion 8」を参照してください。このテーマについては後日記事で取り上げる予定です。

理由2:強力なサーバモニタリング

ColdFusionは長い間、魔法で動く封印されたマシンであり、内部構造を決して明かさないブラックボックスでした。これがユーザにとっては問題の原因でした。以下のようなことを考えたことがありませんか。

  • ページの実行速度が遅い理由を知りたいと思ったことはありますか。
  • 自分のサイトのどのページまたはどの部分がサーバに最も負荷をかけているか知りたいと思ったことはありますか。
  • 最もよく使用されるものとそうではないものをキャッシュするために、データベースクエリをキャッシュする最善の方法を調べようとしたことはありますか。
  • そうすることで原因を追究するための証拠をすべて失うとわかっていても、サーバを再起動する必要のある問題が発生したことはありますか。
  • サーバのどのアプリケーションが最もメモリを消費するかを調べようとしたことがありますか。
  • 要求を拒否しなければならなかったことがありますか。
  • メモリ不足のサーバ、長い実行スレッドが多すぎるサーバ、JVMが破損したフォームが欠点のサーバを処理しなければならなかったことがありますか。

ご覧のように、複数インスタンスを利用するメリットは数多くあります。これらの情報はすべて、またこれ以外の情報も、新しいColdFusionサーバモニタリングによって入手できるようになりました。1台または複数のサーバを監視でき、様々な統計や仕様をドリルダウンしそれにアクセスできます(装備されているFlexフロントエンドを使用)。また、警告を作成してサーバがそれ自身の状態を監視し問題が発生する前に対処できるようにすることもできます。

これでもまだ十分でないなら、モニタリングAPIを利用して自分自身の監視フロントエンドを記述することもできます。

もはやColdFusionはブラックボックスではありません。

監視機能の使用の詳細については、「ColdFusion 8 server monitoring, Part 1: Using the Server Monitor in development」*を参照してください。

理由1:非常に高速であること

今までの理由がすべて不十分であったとしても、ColdFusion 8をデプロイする最も説得力のある理由の1つは、これまでよりもずっと高速であることです。ColdFusion 8では、既存のアプリケーションをコードをまったく変更しないでこれまでよりも速く実行できます。

私たちは、240万行を超す顧客のCFMLのコードに対し詳しいテストを行い、コードがどのように実行され、ボトルネックがどこで発生するかを調べました。次に、当社の開発者を動員して、パフォーマンスを引き出すことに専念させました。

以下の統計をご覧ください。

  • ColdFusion 8における構造操作の速度は、ColdFusion MX 7の2倍です。
  • ColdFusion 8におけるリスト操作の速度は、ColdFusion MX 7の2倍です。
  • ColdFusion 8ではCFSETタグは4倍以上の速度で実行されます。
  • CFPARAMタグはColdFusion MX 7の場合の35倍の速度で実行されます。
  • ColdFusion 8では日付機能はこれまでの6倍の速度です。
  • 正規表現関数の速度は2倍以上です。
  • ColdFusion 8ではCFCインスタンス化は20倍以上の速度です。

これらは一部の統計の一例に過ぎません。

実際にはどのような意味があるでしょうか。

私たちがテストを行ったすべてのColdFusionアプリケーションは、ColdFusion 8ではこれまでより速く実行されました。大部分のアプリケーションで平均して30~40%のパフォーマンスの向上が見られ、アプリケーションによってはColdFusion MX7に比べ3、4倍のパフォーマンスを示したものもあります。

また、ColdFusion 6や7のコードの多くはそのままで機能します。心配されるような中断も問題もなく、きちんと機能します。

良いことはあっても悪いことはありません。これがアップグレードする理由にならないなら、私にはどんなものが理由になるのかわかりません。

ColdFusion 8はこれまでのアップグレードとは一味違います。これは今までで最も重要で劇的なリリースであり、この重要な製品に対するAdobeの意欲の確かな証拠です。新しい統合の機会、言語の強化、セキュリティと管理の向上、驚くような性能の向上を得るために、ColdFusion 8を使ってみてはいかがでしょうか。ColdFusion デベロッパーになるために、今ほどエキサイティングなタイミングはありません。

ColdFusion 8の詳細

新しいデザインになったColdFusionデベロッパーセンターで新しいリソースをご覧ください。

  • 新しくなった「Getting Started」のリソース*
  • ColdFusionコミュニティに関する更新情報*
  • 新しいデザインのホームページ*には、ColdFusionブロガーに関する情報に遅れないようにするためのウィジェット、イベント、および最新のColdFusionに関する記事のアーカイブがあります。

また、新しい記事や更新された記事などの、ColdFusion 8の使用に関する情報もすべてご参照ください。

  • Designing and developing with Ajax features in ColdFusion 8
  • ColdFusion 8 server monitoring, Part 1:Using the Server Monitor in development*
  • ColdFusion 8 server monitoring, Part 2:Using the Server Monitor in production*
  • Using the ColdFusion 8 step-through debugger for Eclipse*
  • Image manipulation capabilities in ColdFusion 8*
  • Connecting to a database in ColdFusion*(更新済み)
  • Displaying database data on a web page*(更新済み)

Tutorials & Samples

Tutorials

  • Debugging tips for ColdFusion
  • Getting started with Adobe ColdFusion Builder 2
  • Manually configuring Internet Information Services 7 connector with ColdFusion

Samples

ColdFusion Blogs

More
02/07/2012 ColdFusion offer from Intergral
02/05/2012 CF101 Archive: October 2007 Every Beginner must Grow Up
02/04/2012 CF101 Archive: September 2007 Object Oriented Pizza
02/04/2012 Job Opening for ColdFusion Developer at Arizona State University

ColdFusion Cookbooks

More
07/27/2011 Passing a list with with STRING values
05/27/2011 AUTOMATED SANITIZED Resultset with ColdFusion
03/16/2011 Using Metadata To Add Static Variables to ColdFusion Components
03/10/2011 Find an extension

製品

  • Creative Suiteファミリー
  • Photoshopファミリー
  • Acrobatファミリー
  • Flashプラットフォーム
  • Digital Marketing Suite
  • Digital Enterprise Suite
  • Digital Publishing Suite
  • モバイルアプリ

ソリューション

  • カスタマーエクスペリエンスマネジメント
  • コンテンツオーサリング
  • デジタルマーケティング

業種別ソリューション

  • 教育
  • 金融機関

サポート

  • ヘルプ&サポート
  • 注文と返品
  • ダウンロードに関するヘルプ
  • ユーザー登録に関するヘルプ

ラーニング

  • ADC: Adobe Developer Center
  • Adobe TV
  • Design Magazine
  • Photoshop Magazine
  • Focus In

ご購入方法

  • アドビストア
  • アカデミック版のご購入
  • ライセンスのご購入

ダウンロード

  • Adobe Reader
  • Adobe Flash Player
  • Adobe AIR
  • Adobe Shockwave Player

会社情報

  • プレスルーム
  • パートナープログラム
  • 企業の社会的責任(英語)
  • 採用情報
  • 投資家の皆様へ(英語)
  • イベント&セミナー
  • Legal(英語)
  • お問い合わせ
国・地域および言語の選択 日本(変更)
国・地域および言語の選択 閉じる

North America

Europe, Middle East and Africa

Asia Pacific

  • Canada - English
  • Canada - Français
  • Latinoamérica
  • México
  • United States

South America

  • Brasil
  • Africa - English
  • Belgium - English
  • Belgique - Français
  • België - Nederlands
  • България
  • Česká republika
  • Danmark
  • Eastern Europe - English
  • Eesti
  • España
  • France
  • Deutschland
  • Hrvatska
  • Ireland
  • Israel - English
  • Italia
  • Latvija
  • Lietuva
  • Luxembourg - Deutsch
  • Luxembourg - English
  • Luxembourg - Français
  • Magyarország
  • Middle East and North Africa - English
  • Moyen-Orient et Afrique du Nord - Français
  • Nederland
  • Norge
  • Österreich - Deutsch
  • Polska
  • Portugal
  • România
  • Россия
  • Schweiz - Deutsch
  • Suisse - Français
  • Svizzera - Italiano
  • Slovenija
  • Slovensko
  • Srbija
  • Suomi
  • Sverige
  • Türkiye
  • Україна
  • United Kingdom
  • Australia
  • 中国
  • 中國香港特別行政區
  • Hong Kong S.A.R. of China
  • India - English
  • 日本
  • 한국
  • New Zealand
  • Pacific - English
  • 台灣

Southeast Asia

  • Includes Indonesia, Malaysia, Philippines, Singapore, Thailand, and Vietnam - English

Copyright © 2012 Adobe Systems Incorporated. All rights reserved.

当Webサイトをご利用のお客様は、利用条件およびプライバシーポリシー(2011年9月30日更新)にご同意いただいたものとみなされます。

Reviewed by TRUSTe: site privacy statement