Gleyzer両氏によって共同開発されました。2019で、同言語の発表を行いました。InfoQはPurdy氏に言語と、氏らが解決を目指した問題について聞きました。設計/アーキテクチャアジャイルマニュフェスト:ソフトウェアアーキテクトの視点ソフトウェアアーキテクトの役割と責任はアジャイルソフトウェア開発のためのマニフェストの価値と矛盾していると見えますが、優れたアーキテクトはアジャイル開発チームをサポートするテクニックを見つけています。Streamingは、ストリーミングデータのためのSQLライクなインターフェースを提供します。Streamsによって、Redisがストリーミングデータを複数のプロデューサとコンシューマの間で消費、保持、配信することができるようになります。ソフトウェア開発のマニフェストたゆまず息もつかずに市場に突進することで、会社を静かに消滅の崖っぷちへと追い込みます。それは設計してコードを書く方法を再考する時です。簡単さへの投資は、速さへの投資です。簡単さは知的財産の主鉱脈でもあります。競争上の優位性は、一度失ったら、もう一度手に入れることはほとんど不可能です。Buytaerts氏が過去10年間にわたって、企業がDevOps採用のハイプサイクルをくぐり抜け、変革に対する誤解を解消する過程を支援してきた経験について語ります。Applications"の新しい略号)の利用と作成が語られるようになりました。(この3つの違いはほとんどないといってもいいくらいですが、流行語あるいは新3文字略語の選択や利用で、技術的な正確性が問題にならないことはありえません。)クライアントアプリケーションに隠れているこの新しい波の原動力は単純です。AJAX風のクライアント側スクリプト記述とつながったときでさえも、かなり制限されたHTMLのユーザインタフェース機能にユーザが飽きているからです。従来の実行ファイルをインストールするためにすべてのユーザPCを訪ね回る、いわゆる"ファットクライアント"がせいぜいで、非現実的であり、最悪の場合、完全にどうしようもない状態になるため、開発者は、サーバ側に配置するメリットを失いたいとは考えていません。そんなことから、クライアントアプリケーションの新しいハイブリッド型が誕生しました。これは、ほとんどの場合クライアント層で実行されるもので、従って、ローカル処理能力をうまく活用でき、(うまく行けば)非常に多くのネットワーク横断が避けられますが、サーバが提供する何らかの方法による更新は続けられます。このようにして、"リッチクライアント"が生まれました。なければ"スマートクライアント"が。なければ"リッチインターネットアプリケーション"が。リッチクライアントに利用する技術は何かが、議題であり幅広く討論するための課題です。中には、Eclipseリッチクライアントプラットフォーム(RCP)を好む人がいるのは、すでに、それがクライアント側のコードベースの自動更新を管理するのに必要なツールや技術が多数組み込こまれているからですが、一方、その他の人たちは、AJAXが既存のHTMLベースのサーブレット、JSPアプリケーションを、さらに優れたリッチクライアントに変形させるのは簡単であるため、AJAXの方を好みます。この人たちは、AdobeのFlashプレーヤと対応するFlex開発キットを感情豊かに称賛し、すべてのユーザのブラウザのほとんどにFlashプレーヤがあまねく存在していることを挙げました。関連スポンサーコンテンツ知恵のあるJava開発者をずっと避け続けている、興味深い一面に、別のクライアントプラットフォームがあります。これは、すでにユーザのデスクトップのほぼすべてに存在し、ユーザインターフェイスオプションとして驚くほどの量の能力と柔軟性を提供し、リリースされたすべてに集中的な研究を経た親しみやすいユーザ対話型形式を提供しています。OfficeプラットフォームのWord、Excel、Outlook、PowerPoint、InfoPathのことを話しています。Officeの拡張性Officeを拡張する方法に関する書籍、雑誌、および記事などに使われる紙のために、多くの森林がすっかり伐採されてしまい、そして、開発者がアプリケーション構築のため、Officeを拡張したり、あるいは、利用したりできるすべての方法ための(この記事も言うに及ばず)十分な空間がInfoQウェブサーバにはほとんどありません。Office自体の知識をさらに探求しようと、この記事の最後でいくつかのリソース調査が積極的に推し進められています。Officeの拡張には、ユーザが定義したツールバーをOfficeアプリケーション内に作成したり、新しい公式を追加してExcelを拡張する機能など、それ以上の機能が含まれています。今のところ、Office2003[GLOVA1]の非常に明瞭なUI要素である、スマートタグの1つに焦点を当てます。スマートタグスマートタグは、Word内の単語の下に現れる紫の点線、あるいは、Excelのセルの右肩に現れる紫の三角形と、マウスをその上辺りに置くと現れる小さな"i"ボタンのことで、その言葉に関連するコンテキストメニューのどれかに重ねて、クリックすることができます。Wordで916-555-1212のような電話番号と打ち込んだとき、ドロップダウンメニューには"アドレス帳に追加"があり、この電話番号をOutlookのアドレス帳に追加できます。この段落に書いたことがWordでどのようになるかを下記の図1で確認ください。基本的に、スマートタグは文章内のある文字列を認識することで動作し、認識すると、アイコンとドロップダウンメニューが使用可能になります。これは、おのおの"認識"とそれに関連する一連の"動作"として知られ、これについては後ほど詳しく説明します。この特殊なスマートタグは、Officeに搭載され、初期設定時(電源投入時ではなく)にインストールされ、WordあるいはExcelの"オートコレクト"ダイアログ("ツール"、"オートコレクトのオプション"、次に、"スマートタグ"タブを選択)を探して"電話番号"のSmartTag機能をオンにすることで有効となります。電話番号スマートタグの選択方法については留意してください。チェックボックスをクリアすると、明らかに特殊なこのSmartTag動作が無効になってしまいます。ユーザは、"スマートタグのラベルテキスト"チェックボックスをクリアすれば、すべてのスマートタグをオフにすることができます。ExcelやPowerPoint、あるいは他のOfficeアプリケーションでスマートタグを使うとき、正確には動作と構成がわずかに異なります。分かりますが、Excelの構成ダイアログはわずかに異なり、すでに述べたように、スマートタグの視覚的合図はセルの角にある小さな三角形で、Wordに見られる紫の点線ではありません。スマートタグの実装スマートタグは2つの方法で組み込みできます。1つは、低電力であることを示していますが、非常に簡単である方法と、もう1つは、非常に多くのコードと開発時間が必要ですが、より一層の柔軟性を実現しています。Office(別称、VSTOといわれる)パッケージを利用して.NETにスマートタグDLL(2番目のオプション)の書き込みを表示することは、非常に興味深く刺激的ではあるのでしょうが、Officeにスマートタグが入る簡単な方法があり、かなりうまくJavaを適合させると、すなわち、"スマートタグリスト"のXMLファイルを作成するとか、単純にユーザのハードディスクの妥当な場所に保存するなどを行うと起きます。Office』を参照いただくか、VSTO2005年セカンドエディションの見本例をダウンロードしてください。"JPetStore"の見本アプリケーションを利用して、Tomcatの内部で走らせるつもりで(手元のマシンに関しては、現実のシナリオの公開サーバのどこかにこれがおそらく存在すると思われます)、ExcelにJPetStore製品とアイテムのID番号を認識する方法を教えるつもりです。認識されれば、スマートタグでコンテキストメニューを表示すると、ユーザーはブラウザを立ち上げて適切な製品やアイテムをブラウザに表示することができるため、ふさわしいペットについて話していることを確認することができます。現実のシナリオでは、このタグは、ユーザがペットオンラインで注文をしているときに利用したり、あるいは、販売員が顧客と話をしているときに利用する、非常によく整えられたExcel文書のテンプレートにおそらくあると思われます。本題に入りますが、スマートタグの作成を簡単にするために、Microsoftは、特別なスキーマに従う、よく知られた場所にあるXMLファイルを認識できる単一スマートタグを作成しました(スマートタグSDK資料に説明されている)。スマートタグリスト(MOSTL)として知られ、利用されているXMLドキュメントは、"スマートタグリスト"と呼ばれます。1つ作るのは明らかに簡単です。ディレクトリに通常のOfficeが組み込まれていると仮定して、"LIST"と呼ばれるサブディレクトリがあり、ここで、以下に示すものに多少似ている標準XMLドキュメントを作成することができます。間、電話番号を認識するためにここで述べられている複雑な正規表現を無視すれば、以下に述べられているように、スマートタグリストファイルは非常に簡単です。2つのネームスペースの使用に留意ください。これらは、Office2003用で、これらのタグがOfficeXPで使用可能を願うのなら、異なるネームスペースURIが利用されます(資料に説明されています)。この資料では、"FL"の接頭字は強制であり、すべての例がこれを使うことも提案しています。必要がなくても、一貫性以外に理由がなくても、これを使用し続けることが強く推奨されています。<FL:name>は、一目瞭然のことであり、必要です。<FL:lcid>は、スマートタグが使用可能な場所を述べ、任意に選択できます(すべての場所で利用可能であるという意味)。<FL:description>は、必要です。<FL:updateable>とFL:autoupdate>は、スマートタグリスト自体を更新できるようにするために利用されます。<FL:smarttag>は各スマートタグを記述しています。ここのケースでは、これは、前述された正規表現サポートよりはむしろ、認証テキストと動作で成っているでしょう。"タイプ"の属性には、固有のネームスペースを含む必要がありますが、前記の形である必要があり、"フラグメント"の接尾辞(#文字の後に来る部分)が付いたURIでなければならにことを意味します。フラグメントの限定詞を忘れると、このタグが取り消されてがっかりしますが、スマートタグリストが間違っていれば、ただ単にスマートタグダイアログにこのタグが現れないことをOfficeが伝えていないためです。<FL:caption>は、ドロップダウンメニューに表示されるものです。<FL:terms>(スマートタグが認証するテキスト表現が含まれる)と、<FL:actions>(ドロップダウンメニューで使用できる動作を述べている)です。その結果、これを合わせると、JPetStoreスマートタグの最初の画面で見たものが、次のようになります。ここで、2つのスマートタグ、1つは、JPetStore製品IDの一部を認証するためのもの、もう1つは、JPetStoreアイテムIDの一部を認証するものの一覧方法について留意してください。このとき、それぞれがJPetStoreウェブアプリケーションの適当なページにブラウザウィンドウを開き、URLの"{TEXT}"プレースホルダの場所に認証された言葉を渡します。"動作"要素の"id"属性に値を指定する場合は注意してください。ここでのあらゆる重複は、何の言及もなく障害を引き起こし、原則"後勝ち"の結果になってしまいます。このファイルを前述したサブディレクトリに保存してください。インターネットエクスプローラや、スマートタグリストが起動時に一度読み込まれ、Officeのどれか実行中のインスタンスに共有されているのかも含め、まったくOfficeプログラムが走っていないことを確認ください。Excelを起動すると、スマートタグは、オートコレクトダイアログのスマートタグタブに記載され、チェックを受けると、スプレッドシートに入力された製造あるいはアイテムIDを認証し、実行中のウェブアプリケーションの内部の適切なウェブページにアクセスするチャンスをユーザに提供します。前記の簡単なXMLファイルに関して非常に分かりきったことのひとつに、使用可能な製品とアイテムIDのわずかな部分だけの所有をこのファイルが実行するはもちろんのこと、現在では、スマートタグリスト自体の内部に製品とアイテムIDのハードコードを持っていることです。このどちらも、現実のシナリオでは行われないでしょう。あらゆる最新の製品やアイテムIDがサーバ上で使用可能になると、スマートタグリストが自身を更新できるようにと考えています。これを実行するのは、幸いにも非常に簡単です。スマートタグをヒットするためのURLを含め、いくつかの更新情報を含めるためにスマートタグリスト変更する必要があり、そのとき、ウェブアプリケーション内部に適切なリソースを提供して、更新され動的に生成されたスマートタグリストファイルを用意します。これを実行するため、以下に示すように、元のスマートタグリストをほんの少し変更します。POSTリクエストを発行します。HTTPリクエストのもう一方端でのリソースは、以下に示すものに多少似ている必要があります。(ここで、JPS構文は簡潔にするために利用されます。MVCビューである可能性があります)。次に、これは、<FLUP:smarttaglistdefinition>要素のコンテンツのダウンロードをOfficeに伝えます。ここには、新しいスマートタグリスト定義が含まれているでしょう。ここで、<FLUP:checkpoint>要素は、スマートタグリスト要素定義の<FL:lastCheckpoint>要素に対応し、サーバでのチェックポイントがユーザマシンでのlastCheckpointを越えると、更新が発生します。ここで、プログラムの中で値を400に固定しますが(これは、以前のスマートタグリスト定義に在った0よりも明らかに大きい)、現実のアプリケーションでは、これは、値をインクリメントする可能性があり、実行中のコンテナの内部でプロダクトID、あるいは、アイテムIDが変化するたびに変化します。要約スマートタグができることや、Javaアプリケーション、あるいは、サービスと統合できるさまざまな方法のほんの表面を実際には論じただけです。顧客のスマートタグを書く場合、たとえば、タグが、アイテム(一覧表、価格、その他)の現行情報のために、(Springコンテナに呼びかけるRPCを通してか、あるいは、多分、局所的にサーバ上に固定されたデータや、外部方式過程によって更新されデータを調べることで)おそらく直接サーバに問い合わせる可能性があります。Officeは、Wordに"検索ウィンドウ枠"などの数多くその他の拡張機能を持っています。Word文書の右側にあるウィンドウ枠は、"さまざまな検索やレファレンスサービスで調べるため"、ユーザがテキスト入力できるために利用され、これらのサービスは、基本的には特別なWSDL定義済みインターフェイスを実行するサービスです。明らかに、これらのサービスを.NETで書く必要はありませんが、おそらく、あらゆるJ2EEコンテナ内部で実行中のJAX-WSサービスだと考えられます。OfficeがMicrosoftの有標製品であり、エンドユーザのマシンに利用するために使用許諾が要求されるため、開発者の中には、Officeを使うという考え方にためらう人もいるでしょう。Officeを使うポイントの一部に、多くの場合、ユーザがすでにOfficeがインストールされたものを持っている(特に、ビジネス環境では)と言う理由がありますが、Microsoftは、WordやExcel、PowerPointを目的とした無料の使用許諾不要の"ビューア"も利用できるようにし、ユーザがドキュメントを"開き、見て、プリントする"ことができようにしています。一部の例として(オンラインで買い物したユーザに領収書を送る場合など)、ドキュメントの読み込み専用ビューで、特に簡単にセーブされるもので十分な場合があります。最後に、何人かの開発者がこれらの特徴と機能の多くをOpenOffice(オープンソースで、Office2003とOffice2007に対してプラットフォームが移植可能な競争相手である)でも利用できることを指摘するでしょう。この点についての議論は目的とするところではなく、問題となっているユーザ基盤にすでにOpenOfficeがインストールされていれば、ここでOfficeについて議論したと同じように多くのことが考慮されるべきです。OpenOfficeの開発者には失礼ながら、Microsoftには、拡張可能であるOfficeを構築することに関する多くの経験があり、特に重要なのは開発者に対して引き出せる知識やサンプルが膨大にあります。オフィス生産性基盤選択に関わらず、リッチクライアントアプリケーションの基準として、ユーザにすでにインストールされたソフトウェア基盤を利用すれば、相当信じられないほどの強力な解決策を導き出せ、信じられないほどかなりのユーザを幸せにすることができます。Officeは、すべてのプロジェクトには正しいクライアント解ではない可能性がありますが、システムのあるクラスに対しては公正な方策であり、クライアントとしてOfficeを利用すると、最初からSwingやSWT、あるいは、AJAXで完全に何かを構築しようとするよりも似ても似つかないほど非常に簡単であると思われます。(x86)http://www.microsoft.com/downloads/details.aspx?familyid=f5539a90-dc41-4792-8ef8-f4de62ff1e81&displaylang=enは最新でもっとも優れたVSTOパッケージで、利用にはOffice2007が必要です。注意点としては、これはVSTO拡張を行うためのランタイムのみであり、別にSDKが必要です。SDKです(2つのページ間で名前がちがうにもかかわらず)。SDKhttp://www.microsoft.com/downloads/details.aspx?familyid=c6189658-d915-4140-908a-9a0114953721&displaylang=enはスマートタグSDKのダウンロードページです。これをダウンロードする主なメリットはドキュメントを手に入れる事が出来ることです。ドキュメントはこちらでも手に入れることが出来ます。List"で、このドキュメントではすべてXMLフォーマットを利用しています。アプリケーションの組み込み方法』著...。Basicの構築について詳しく述べられていますが、Officeアプリケーション世界のいくつか興味深い見識、特に、作り上げられたさまざまな"利用事例"や解決策が提供されていません。毎週火曜日に前週のまとめコンテンツがお送りいたします。25万人ものシニアデベロッパーのコミュニティーにぜひご参加ください。サンプルを見るあなたのメールアドレスはこちら国を選んでください。プライバシーポリシーに従って私の個人情報を扱うことに同意します。登録するとさまざまなことができます。アカウント登録をしてInfoQをお楽しみください。あなたの意見をお聞かせください。毎週火曜日に前週のまとめコンテンツがお送りいたします。25万人ものシニアデベロッパーのコミュニティーにぜひご参加ください。サンプルを見る様々なイノベーターとアーリーアダプターがお送りするテクノロジーの概要を見る。自分がまだ知らないことに気づいていないと知るあなたが興味のあるトピックスをいつでも最新な情報に。あなたのメールアドレスはこちら国を選んでください。プライバシーポリシーに従って私の個人情報を扱うことに同意します。よい世界へ私たちが暮らす世界を大切に思い、よりよいものにしたいと考えています。人のためのソフトウェア開発を加速し私たちのミッションを実現することで、この思いを成し遂げようとしています。私たちは利益の1%をさまざまな慈善団体に寄付しています。会社として、また従業員として、そうしたことの価値を強く信じているからです。with.プライバシーBTあなたのプロファイルは最新ですか?プロフィールを確認してアップデートしてください。アドレス*Eメールを変更すると確認のメールが配信されます。会社名:現在の会社名をご入力ください。Other組織規模:現在の組織規模をご入力ください。2,501+国:現在の国を設定してください。Zimbabwe都道府県:現在の都道府県に設定してください。次の都道府県にアップデートする:ニュースレターを購読しますか?インダストリーメールを購読しますか?本Eメールに登録すると、以前より関心のあったトピックの関連情報をお送りする場合がございます。詳細はこちらのプライバシーポリシーをご覧ください。newsletter?新しいメールアドレスに確認用のメールを送信します。このポップアップ画面は自動的に閉じられます。