JP2005011355A - モジュール型Webアプリケーションを作成するためのフレームワーク - Google Patents

モジュール型Webアプリケーションを作成するためのフレームワーク Download PDF

Info

Publication number
JP2005011355A
JP2005011355A JP2004181697A JP2004181697A JP2005011355A JP 2005011355 A JP2005011355 A JP 2005011355A JP 2004181697 A JP2004181697 A JP 2004181697A JP 2004181697 A JP2004181697 A JP 2004181697A JP 2005011355 A JP2005011355 A JP 2005011355A
Authority
JP
Japan
Prior art keywords
web
zone
control
property
framework
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2004181697A
Other languages
English (en)
Other versions
JP4861611B2 (ja
Inventor
Joseph Keith Croney
キース クロニー ジョーゼフ
Nikhil Kothari
コザリ ニキル
Michael Harder
ハーダー マイケル
Gregory S Lindhorst
エス.リンドホースト グレゴリー
Andres Sanabria
サナブリア アンドレス
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Corp
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of JP2005011355A publication Critical patent/JP2005011355A/ja
Application granted granted Critical
Publication of JP4861611B2 publication Critical patent/JP4861611B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/958Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • Information Transfer Between Computers (AREA)
  • User Interface Of Digital Computer (AREA)
  • Document Processing Apparatus (AREA)
  • Programmable Controllers (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】 モジュール型Webページを作成するためのフレームワークを提供する。
【解決手段】 拡張可能パーツ基本クラスおよび拡張可能ゾーン基本クラスを含むフレームワークを使用することで、Webポータル等を含む、モジュール型のカスタマイズされ、パーソナライズされたWebアプリケーションを開発できる。Webパーツコントロール等のパーツコントロールはパーツ基本クラスから派生し、ゾーンコントロール等はゾーン基本クラスから派生する。各ゾーンコントロールには、1つまたは複数のパーツコントロールが含まれ、各ゾーン内では、パーツコントロールをレンダリングする。Webパーツコントロールは、他のWebパーツコントロールと通信でき、編集、削除、ゾーンコントロールへの追加が可能である。パーツコントロールの機能は、特定のゾーン内のおよび異なるゾーンにまたがるパーツコントロール毎に広く変えることができる。
【選択図】 図7

Description

本発明は、一般に、Webアプリケーションを作成するためのシステムと方法に関する。より詳細には、本発明は、カスタマイズ可能なモジュール式フレームワークを使用してWebページを含むWebアプリケーションを作成するシステムおよび方法に関する。
ローカルエリアネットワークおよびワイドエリアネットワークの普及が進み、データの取り出しおよび配信の作業が行いやすくなった。通常、コンピュータユーザは、一般にWebページおよびWebサイトに存在するような単純なポイント&クリック方式のインターフェースを使用して情報を取り寄せることができる。Webポータルは、さまざまなサービスをユーザに提供する一般的なタイプのWebサイトまたはWebページである。Webポータルは、ウエルカム情報、検索機能、気象情報、ニュース情報、株式データ、他のサイトまたはページへのリンクなどを備えることができる。
経験上、整理され見栄えのするWebポータルはWebポータルのユーザのニーズに応えるのに効果的であることがわかっている。さらに、Webポータルはインターネットまたはイントラネットセッションで使用される最初のページであることが多いため、Webポータルは、ユーザが関心を持つ内容を提示し、またユーザにとって論理的に意味をなす方法、またはユーザから見て感じのよい方法で内容を整理できるようにカスタマイズ可能でなければならない。
多くのWeb開発者たちは、ユーザを引きつけて引き留めるサイトまたはWebポータルを作成しようと努力を続けてきた。一般的なアプローチとして、関係する内容がページのいくつかの領域内に配置されるようなモジュール型レイアウトをとるサイトを構築する。Webポータルは、モジュール方式で、カスタマイズ可能なレイアウトを活かすことができる唯一のページというわけではない。一般にインターネットまたはイントラネット上のWebサイトまたはページ、プロジェクトページ、会議ページ、在庫追跡ページなども、そのようなレイアウトを活用することができる。
このようなページまたはサイトのデザインおよび開発は、そのようなページをすばやく効率よく作成するためのツールがごくわずかしか存在していないため、難しい作業である。それぞれのWebページ開発者が、そのようなページのコードまたはデザインを自分で作成しなければならない。そのため、開発者はなかなかそのようなページを作成する気にならず、その結果あまり使いやすくない、あまり読みやすくないページが普及することになった。さらに、そのようなページがページ開発者により作成されると、それらのページをエクスポートして他の開発者に利用してもらうことができない。また、現在の技術を使用したのでは首尾一貫性のあるルック&フィールを備えるカスタマイズ可能なサイトを作成することも困難である。
Web開発者がWebページおよびWebサイトを作成するのを支援する技術の1つは、Webページサーバ上で実行されるスクリプトの使用である。これらのスクリプトを他のHTMLコマンドに埋め込み、動的でカスタマイズ可能なWebページを作成することができる。しかし、こうしたタイプのWebページは多大な開発投資を必要とするため、Webページのカスタマイズ性を高めようとするとコストが上昇する。つまり、豊富な内容を備え、デザインがモジュール化され整合性が高く、カスタマイズ可能な成功したWebサイトを構築するのは、かなりの開発時間を要し、またポータルソリューションに現在のところ一貫したモデルがないため、難しいということである。
これらの制限およびその他の制限は、モジュール型のカスタマイズ可能なWebアプリケーションを作成するためのシステムと方法に関する本発明により克服される。具体的には、本発明は、Webポータル、WebページなどのWebアプリケーションを作成するための拡張可能フレームワークに関する。フレームワークは、Webパーツ(web parts)、エディタパーツ(editor parts)、およびカタログパーツ(catalog parts)などのパーツコントロール(part controls)を備える。フレームワークは、さらに、ゾーン(zones)、エディタゾーン(editor zones)、およびカタログゾーン(catalog zones)などのゾーンコントロール(zone controls)も備える。各ゾーンコントロールは、通常、1つまたは複数のパーツコントロールを含む。
各パートコントロールは、パーツ基本クラス(part base class)から派生し、各ゾーンコントロールは、ゾーン基本クラス(zone base class)から派生する。Webパーツ、エディタパーツ、およびカタログパーツは、パーツ基本クラスが備える機能のほかに追加機能を備える。ゾーン、エディタゾーン、およびカタログゾーンは、ゾーン基本クラスが備える機能のほかに追加機能を備える。
WebページなどのWebアプリケーションは、複数のゾーンに分けられ、各種パーツコントロールは、それぞれのゾーンに配置されている。各ゾーンは、特定のゾーン内の各パーツの回りにクロムをレンダリングする役割を持つ。これは、タイトルバー、枠線、および動詞(verb)のルック&フィールを制御する。これにより、パーツコントロールの追加、削除、または変更によりWebページのカスタマイズまたはパーソナライズを行うときに一貫性のあるルック&フィールを推し進めることができる。エディタパーツはWebパーツを編集する場合に使用し、カタログパーツはゾーンからWebパーツを追加/削除する場合に使用する。エディタパーツは、エディタゾーンに含まれ、カタログパーツは、カタログゾーンに含まれる。
パーツコントロールおよびゾーンコントロールは、関連付けられたプロパティおよびメソッドを備える。ユーザ毎にパーツコントロールをパーソナライズすることができるプロパティおよびメソッドもあれば、すべてのユーザ向けに開発者がパーツコントロールをカスタマイズできるプロパティおよびメソッドもある。Webパーツのプロパティは、エクスポート/インポートすることができる。また、Webパーツの非表示および表示を設定することもできる。
Webページ作成時に、永続化フォーマットファイル(persistence format file)の中でゾーンコントロールが宣言される。パーツコントロールは、各ゾーンコントロール内で宣言される。Webパーツマネージャは、宣言されている各種ゾーン内のWebパーツを追跡するが、これもまた宣言される。各ゾーンは、通常、Webパーツマネージャに登録する。Webパーツマネージャの利点の1つは、一方のWebパーツが他方のWebパーツと通信できることである。これにより、例えば、一方のWebパーツのコンテンツを他方のWebパーツで使用することができる。
本発明の他の特徴および利点は、以下の説明の中で述べられており、一部は、説明から明らかであるか、または本発明を実施することから学ぶことができる。本発明の特徴および利点については、添付の特許請求の範囲で特に指摘されている機器および組み合わせを使用することで、理解され、得られる。本発明のこれらの特徴および他の特徴は、以下の説明および添付の特許請求の範囲を読むとよりいっそう明らかになるか、または以下で述べているように本発明を実施することで学ぶことができる。
本発明の上記の利点および特徴およびその他の利点および特徴を得る方法を説明するために、上で簡単に説明した本発明のより具体的な説明を添付の図面に示されている特定の実施形態を参照しながら行う。これらの図面が本発明の代表的な実施形態を示しているだけであり、したがってその範囲を制限しているものとみなされないことを理解していることを前提として、添付の図面を使用して本発明を具体的内容および詳細とともに説明する。
本発明は、モジュール型Webアプリケーションを作成するための方法とシステムの両方を対象とする。具体的には、本発明は、エンドユーザ側でパーソナライズおよびカスタマイズ化を行えるモジュール型Webページを作成するシステムおよび方法に関する。本発明の一実施形態は、モジュール型を採用した内容豊富でカスタマイズ可能なWebアプリケーションを作成するために使用できるインフラストラクチャまたはフレームワークを提示する。
一実施形態では、このフレームワークではサーバサイドビヘイビアおよびクライアントサイドビヘイビアを使用し、またコントロール同士の間で情報を共有することができる。例えば、フレームワークは、拡張可能基本クラスおよびコントロールを含む。一実施形態では、フレームワークにはパーツコントロール、ゾーンコントロール、およびパーツマネージャが含まれる。
パーツコントロールは、通常、特定のパーツコントロールの機能が他のパーツコントロールの機能と著しく異なることがあっても一貫した方法でパーツコントロールをユーザに見せられるようにするプロパティを備える。パーツコントロールのプロパティは、例えば、コントロールの回りに整合性のとれたウィンドウまたはユーザインターフェースをレンダリングする場合に使用する。一実施形態では、ユーザインターフェースは、タイトルバー、最小化する、最大化する、および閉じるの動詞、および囲む枠線を含むことができる。パーツコントロールを作成するには、複数の異なる基本クラスを使用する。例示的なパーツコントロールには、例えば、Webパーツコントロール、エディタパーツコントロール、およびカタログパーツコントロールがある。
ゾーンコントロールは、通常、パーツコントロールをモジュール方式または整合性のある方法でパーツコントロールを配列する場合に使用される。ゾーンは、各パートのユーザインターフェースをレンダリングする役割を持つ。例えば、パーツコントロールのプロパティにクロムユーザインターフェースが含まれる場合、特定のパーツコントロールを含むゾーンコントロールは、そのパーツコントロールのクロムユーザインターフェースをレンダリングする役割を持つ。ゾーンコントロールを作成する場合に使用するクラスとしては、制限ではないが、パーツから継承するすべてのコントロールをレイアウトするために使用されるゾーン基本クラス、エディタゾーンクラス、およびカタログゾーンクラスがある。本発明のいくつかの実施形態では、さらに、一方のユーザによって設定されたパーソナライズまたはカスタマイズ特性を、他のユーザから使用できるようにエクスポートする機能を備える。サードパーティ生成クラスも、フレームワークに組み込むことができる。
図1は、カスタマイズ可能なモジュール型Webページの一例を示す。Webポータルは、モジュール方式で編成された情報またはデータを含むWebページ100として示されている。例えば、Webページ100は、ウエルカム情報をWebパーツ102に、気象情報をWebパーツ104に、株式情報をWebパーツ106に、検索ウィンドウをWebパーツ108に、リンクの選択をWebパーツ110に配置する。Webページ100は、さらに、ユーザが自分の趣味および好みに応じてWebページ100をパーソナライズすることができるパーソナライゼーションリンク112を備える。これらのWebパーツは、Webパーツフレームワーク内の、Webパーツコントロールとも呼ばれる、Webパーツ基本クラスの参照により作成される。
本発明の一実施形態では、Webパーツのルック&フィールは、ゾーンを使用していくつかの側面を制御することができる。そこで図2を参照すると、図1に示されているWebパーツの特性を定義するために3つのWebゾーンが使用されていることがわかる。Webページ100は、3つのゾーン、つまり、上ゾーン200、左ゾーン202、および右ゾーン204を含む。上ゾーンは、ウエルカムWebパーツ102および検索Webパーツ108を含むことを注意されたい。左ゾーン202は、気象Webパーツ104およびリンクWebパーツ110を含む。右ゾーン204は、単一のWebパーツ、つまり株式Webパーツ106を含む。複数のWebパーツを1つのゾーンにグループとしてまとめる、ゾーン関連付け(zone association)は、特定のゾーン内に配置される個々のWebパーツのルック&フィールを調整するのに役立つ。ゾーンではこの調整を、ユーザインターフェースのレンダリング方法を制御することで行う。ユーザインターフェースは(図1に例示されているように)、タイトル112およびフレーム114などを含む。ユーザインターフェースは、さらに、動詞116なども含むことができる。
以下に、図1および2に示されているポータルを生成するために使用される永続化フォーマットファイル(この場合は、.aspx)の一例を示す。ゾーンおよびWebパーツが定義される領域は下線部分となっている。
<%@ Page language="C#" %>
<%@ Register TagPrefix="SampleParts" Assembly="Sample.web.user
interface" Namespace="Sample.web.user interface"%>
<html>
<head>
<link rel="stylesheet" href="Default.css" type="text/css" />
<title>Portal Sample</title>
<asp:WebPart manager runat=server />
</head>
<body>
<form runat="server">
<table>
<tr>
<td><img src="Logo.gif" >Home</td>
</tr>
<tr>
<td>
<table>
<tr>
<td>

<asp:WebPartZone runat="server" ID="TopZone"
Caption="Top"
orientation="Horizontal">
<ZoneTemplate>
<SampleParts:ContentWebPart
runat="server"/>
<SampleParts:SearchWebPart runat="server"/>
</ZoneTemplate>
</asp:WebPartZone >

</td>
</tr>
<tr style="height: 100%">
<td valign="top">
<asp:WebPartZone runat="server" ID="LeftZone"
Caption="Sidebar" >
<ZoneTemplate>
<SampleParts:WeatherWebPart
runat="server"Caption="Weather" />
<SampleParts:QuickLaunchWebPart runat="server"
Caption="Links"
Description="Favorite Links"/>
</ZoneTemplate>
</asp:WebPartZone>
</td>
<td valign="top">
<asp:WebPartZone runat="server" ID="RightZone"
Caption="Main Content" Width="100%">
<ZoneTemplate>
<SampleParts:StocksWebPart runat="server"
Caption="Stock Tracker" Font-Name="Verdana"/>

</ZoneTemplate>
</asp:WebPartZone>
</td>
</tr>
</table>
</td>
</tr>
</table>
</form>
</body>
</html>
図1および図2に示されているモジュール型Webページは、例えばASP.netフレームワークの.aspxファイルによる呼び出しなど、本発明のフレームワークのさまざまなクラスの呼び出しにより作成できるが、コントロールフォーマットファイル、この場合は.ascxファイル内でコントロールを宣言し、ゾーン内にそのコントロールフォーマットファイルを参照することにより他のカスタマイズされたページおよびWebパーツを作成することができる。図3は、ちょうどこのようなプロセスにより生成されたWebページ300を示している。.ascxおよび.aspxコードは以下のとおりである。
Events.ascx:

<%@ Control Language="C#" EnablePersonalization="true" %>
<script runat="server">

void Page_Load(Object sender, EventArgs e) {

// obtain the list of events from the Events table
// and bind to the DataList Control
ASPNETPortal.EventsDB events = new ASPNETPortal.EventsDB();
myDataList.DataSource = events.GetEvents(4);
myDataList.DataBind();


</script>

<asp:DataList id="myDataList" runat="server" EnableViewState="false"
Width="98%">
<ItemTemplate>
<span class="ItemTitle">
<asp:HyperLink id="editLink" ImageUrl="-/images/edit.gif"
runat="server" />
<asp:Label Text='<%"
DataBinder.Eval(Container.DataItem,"Title") %>'
runat="server" />
</span>
<br />
<span class="Normal">
<%# DataBinder.Eval(Container.DataItem,"WhereWhen") %>
</span>
<br />
<span class="Normal">
<%# DataBinder.Eval(Container.DataItem,"Description") %>
</span>
<br />
</ItemTemplate>
</asp:DataList>


Page.aspx


<%@ Page Master="..\Themes\Portal\Page.master" Theme="Portal"
EnablePersonalization="true" %>
<%@ Register TagPrefix="my" TagName="Events" Src="Events.ascx" %>
<%@ Register TagPrefix="Smaple" NameSpace="Sample.web.user interface"
%>

<asp:Content runat="server" ContentName="LeftZone">
<asp:WebPartZone runat="server" id="sidebarZone" Caption="Sidebar"
Width="100%">
<ZoneTemplate>
<my:Events runat="server" ID="Events1" />
</ZoneTemplate>
</asp:WebPartZone>
</asp:Content>

<asp:Content runat="server" ContentName="MainZone">
<asp:WebPartZone runat="server" id="mainZone" Caption="Main Body"
Width="100%">
<ZoneTemplate>
<sample:announcements runat=server />
<sample:QuickLinks runat=server />
</ZoneTemplate>
</asp:WebPartZone>
</asp:Content>

<asp:Content runat="server" ContentName="RightZone">
<asp:WebPartEditorToolPane runat="server" Height="100%"/>
</asp:Content>
Webパーツを構成することには、コントロールのプロパティを設定することが含まれる。構成設定は、アプリケーション開発者、管理者、および/またはエンドユーザが行うことができる。開発者または管理者によって行われる構成設定はカスタム設定と呼ばれ、エンドユーザによって行われる設定は個人設定と呼ばれる。したがって、エンドユーザは個人設定を使用してサイトまたはページをパーソナライズまたはカスタマイズするが、関係者および管理者はカスタム設定を使用してサイトまたはページをカスタマイズすることができる。一実施形態では、カスタム設定はサイトのすべてのユーザから見える。個人設定は、通常、個人設定を行った個々のユーザからしか見えない。
個人設定を使用するパーソナライゼーションの一例が、図4に示されており、これは一般的に、Webページ400を示している。ユーザは、Webパーツ403内の編集リンク402をクリックすることにより、エディタゾーン406内のエディタパーツ404にアクセスすることができる。本発明の例では、ユーザは「Title」テキストボックス408内のテキストを修正することによりWebパーツ403のタイトル405を変更することができる。ユーザは、「Frame State」ドロップダウンメニュー410を使用してフレーム状態を修正し、Webパーツが最大化された状態、最小化された状態、または通常状態で表示されるようにできる。ユーザは、さらに、「Frame Type」ドロップダウンメニュー412を使用してWebパーツ403のフレームタイプを修正することもできる。
図4に示されている本発明の例では、ユーザは、さらに、「Symbol」テキストボックス414に株式シンボルを追加したりそこから削除したりすることによりWebパーツ403に表示されている株価の追加または削除を行うこともできる。ユーザは、そのパーソナライゼーションの選択に満足したら、「Apply」動詞ボタン416を選択し、変更をWebパーツ403に適用し、エディタパーツ404を閉じることができる。エディタパーツ404はさらに、閉じる動詞ボタン418、「OK」動詞ボタン420、および「Cancel」動詞ボタン422などほかにも多数の動詞ボタンを備える。閉じる動詞ボタン418および「Cancel」動詞ボタン422は、エディタゾーン406内でユーザによって行われるWebパーツ403への変更を行うことなくエディタパーツ404またはエディタゾーン406を含まない通常表示モードにWebページ400を戻す同じアクションを呼び出し時に実行する。「OK」動詞ボタン420が呼び出されると、エディタゾーン404でユーザによって指定されたWebパーツ403に変更が加えられ、Webページは、エディタパーツ404またはエディタゾーン406を含まない通常表示モードに戻される。管理者カスタマイズシナリオで、またはWebページ開発者構築シナリオであっても、類似のインターフェースを使用できる。
フレームワークを使用することで、ユーザは使用可能なパーツのカタログからさらにWebパーツをWebページに追加することができる。図5Aに示されているような、一般に符号502で表されている、カタログパーツと呼ばれるWebパーツは、WebパーツをWebページ500に追加する場合に使用される。カタログパーツ502は、カタログゾーン504内に配置することができる。カタログパーツ502には、複数のカタログ510が用意され、ユーザは選択によりそれらを使用することができる。本発明の一実施形態では、カタログは、カタログリンク512をクリックすることにより選択できる。カタログリンク512をクリックすると、多数のテキストボックス506が表示され、Webページ500に追加するWebパーツを選択することができる。テキストボックス506をオンにして使用可能なWebパーツを選択し、「Add」ボタン508をクリックすると、WebパーツがWebページ500に追加される。カタログゾーン504は、個々のWebページユーザがWebページの表示のため選択をパーソナライズする場合に、またはWebページ開発者または管理者がカスタマイズシナリオで、特定のWebページのすべてのユーザから利用できる表示を作成するために使用することができる。
次に図5Bを参照すると、カタログパーツの他の例が示されている。カタログパーツ520は、Webページに追加するのに利用できるWebパーツ522の選択の表現を含む。Webパーツの各表現は、Webパーツタイトル524を含む。Webパーツタイトル524は、図1に示されているタイトル112などWebページにWebパーツが表示される場合のタイトルであるのが好ましい。Webパーツの表現は、さらに、パーツアイコン526を含む。パーツアイコン526は、この例ではWebパーツを表すグラフィックファイルである。
カタログパーツ520は、さらに、特定のカタログパーツ520内で使用可能なライブラリ528のリストを含むことができる。ライブラリ528のリスト内の各ライブラリは、一実施形態の場合などでライブラリリンク530をクリックすることにより選択可能である。これにより、選択されたライブラリリンク530と関連付けられているWebパーツ522の選択が表示される。
カタログパーツ520は、さらに、Webパーツ522の選択の表示を複数の異なるページに分割することもできる。ページリンク532が用意されており、Webパーツ522の選択を表示するさまざまなページ間にリンクが張られる。ページ別アイテムインジケータ(items−per−page indicator)534は、カタログパーツ520に現在表示されているWebパーツ522の選択のページの数値的表現、およびページ別のアイテム数とともにWebページに追加するために使用できるWebパーツの数の表現を示している。
カタログパーツ520はさらに、Webページ上のどのゾーンに追加Webパーツを追加するかを選択するためのドロップダウン選択ボックス538を備える。ユーザは、Webページに追加するWebパーツの選択を行い、新しいWebパーツの配置場所を選択した後、「Add」動詞536を選択する。これにより、カタログゾーンは追加機能を呼び出し、新規追加Webパーツが適切なゾーンに追加される。新規追加Webパーツは、さらに、Webパーツの相互作用およびレイアウトを調整する機能を果たすWebパーツマネージャに登録される。
示されている例では、Webパーツは、カタログパーツ520などのカタログパーツを使用してWebページに追加することができる。カタログパーツ520が付属しているカタログゾーンは、「Add」動詞536が呼び出されたときに選択されたカタログパーツ520に関連付けられている「Add」メソッドを呼び出す。その後、カタログパーツ520は、Webパーツマネージャの「Add」メソッドを呼び出してWebパーツ(522の1つ)をページに追加しなければならない。追加されたWebパーツ(522の1つ)は、Webパーツマネージャによって追跡される。
Webパーツフレームワークでは、Webパーツは定義済みのインターフェースまたは接続を介して情報を他のWebパーツに伝達することができる。これらの接続は、ページ上で定義するか、またはパーソナライゼーションを通じて作成することができる。同じ接続インターフェースで通信する2つのWebパーツは、接続が可能である。さらに、後述のように、トランスフォーマを使用して、Webパーツと異なる接続インターフェースとの通信を実装することができる。これにより、独立に設計、実装されている場合でも、任意のWebパーツがデータを共有することができる。
次に図6を参照すると、2つの接続されているWebパーツの他の例が示されている。図6は、選択可能な株式シンボルのリストを表示する株式リストWebパーツ600を示している。株式リストWebパーツ600は、インターフェース(この例では、IFieldDataインターフェースとして例示されている)を実装し、現在選択されている株式602を公開する。株式グラフWebパーツ604は、株式シンボルに基づいて履歴データのグラフを作成することができる。株式グラフWebパーツ604は、インターフェースを介して通信することができる。それぞれのWebパーツは、接続エンドポイントを、Webページの異なるゾーン内に表示される異なるWebパーツを調整する作業を支援するWebパーツマネージャに登録し、接続を確立することができる。一旦接続されると、2つのパーツ600および604により、エンドユーザはお気に入りの株式を次々に素早く見てゆき、関連するグラフを表示することができる。
またWebパーツフレームワークは、エンドユーザ向けのパーソナライゼーション設定またはシステム管理者向けのカスタマイズ設定のエクスポートおよびインポートを行うための機能も備える。例えば、ユーザが上記のエディタパーツを使用してパーソナライズされた表示を設定する場合、他のユーザがその設定を使用してWebポータルの特定の表示のプロパティを設定できるようにその設定をエクスポート可能とすることができる。この機能は、xmlファイルのエクスポートおよびインポートにより、一実施形態において以下で詳しく説明するように、実行することができる。
上記の説明では本発明のさまざまな実施形態のさまざまな特徴および有利な特性を取り上げて概要を述べたが、以下の説明では、Webページに表示されるWebパーツおよびゾーンを作成するためWebパーツフレームワークに含めることができるさまざまな基本クラスおよびクラスに注目する。Webページ開発者は、さまざまな基本クラスおよびクラスを使用して、モジュール型のカスタマイズ可能で、パーソナライゼーション可能なWebページを作成することができる。
本明細書で説明するWebパーツフレームワークの一実施形態には、他のクラスおよびコントロールの派生元である基本クラスの3つの一般的グループが含まれる。これらの基本クラスの一般的グループには、パーツコントロール、ゾーンコントロール、およびWebページマネージャが含まれる。一般に、パーツコントロールは、個々のWebパーツのそれぞれの機能を含む。このようなパーツの例としては、前述のWebパーツ、エディタパーツ、およびカタログパーツがある。ゾーンコントロールは、Webパーツを編成し、ユーザインターフェースを各パーツの回りにレンダリングするために必要な機能を備える。
Webページマネージャは、とりわけ、どのパーツをどのゾーンに含めるかを調整し、さまざまなWebパーツ間の接続を円滑にするのを助ける、表示されないクラスである。Webページマネージャは、さらに、異なるモードでWebページをレンダリングすることができる。例えば、エディタWebパーツの使用を有効にするために、WebページマネージャはWebページを編集表示モードでレンダリングする。カタログWebパーツを使用するには、Webページマネージャは、Webページをカタログ表示モードでレンダリングすることができる。Webページをカスタマイズするには、Webページマネージャは編集表示モードに似たカスタマイズ表示モードでWebページをレンダリングする。
パーツコントロール
図7を参照すると、パーツコントロールの機能についてさらに詳しく説明されている。パーツコントロールは、通常、「パーツ」基本クラス702に依存する(depend from)。また、依存も、本明細書で使用する用語であるが、当業者であれば派生または継承と記述することもある。パーツ基本クラス702には、他の3つの基本クラス、つまり、カタログパーツ基本クラス704、Webパーツ基本クラス706、およびエディタパーツ基本クラス708が依存する。基本クラスの構造は階層型であり、他の基本クラスに依存する基本クラスまたはクラスは依存元の基本クラスの機能すべてに加えて、いくつかの設計された追加機能を含む。例えば、パーツ基本クラス702を使用すると、階層内の最高位にあるため、すべてのモジュール型クラスのパーツコントロールを作成することができる。Webパーツ基本クラス706を使用した場合、パーツ基本クラス702のすべての機能に加えて、高度な機能を備えるクラスのコントロールを使用してモジュール型クラスを作成することができる。エディタパーツ基本クラス708を使用すると、パーツ基本クラス702の機能に加えて関連するコントロールのプロパティを設定するモジュール型コントロールを使用して、モジュール型コントロールを作成することができる。つまり、エディタパーツ基本クラス708を使用して、他のWebパーツ基本クラス706をパーソナライズすることができるということである。カタログパーツ基本クラス704は、カタログとして機能するコントロールに使用される基本クラスである。つまり、カタログパーツ基本クラス704は、Webページのレンダリング時に、他のWebパーツの追加または削除を行えるカタログパーツ基本クラスを含む。これらのクラスは、パーツ基本クラスの機能だけでなくカタログパーツ基本クラス用に設計された他の専用機能も使用して作成することができる。各基本クラス、つまり、カタログパーツ基本クラス704、Webパーツ基本クラス706、およびエディタパーツ基本クラス708は、図7に示されているように、それらのクラスから派生または継承する他のクラスを持つ。
基本クラスをおよびクラスのそれぞれには、基本クラスまたはクラスの機能の一部を有効にするプロパティがある。パーツ基本クラス702には、Description、FrameState、FrameType、LargeIconImageUrl、Roles、SmallIconImageUrl、Title、およびTitleStyleというプロパティが含まれる。
パーツ基本クラス702で使用可能なプロパティの1つ、およびしたがって、パーツ基本クラス702から継承する他のすべてのクラスは、Descriptionプロパティである。Descriptionプロパティは、他のWebパーツで使用可能なWebパーツの説明である。例えば、後述のように、Descriptionプロパティは、カタログパーツにより、またはタイトルバーの中のツールチップとして使用することができる。Descriptionプロパティは、Webページの作成で開発者が設定してしまった後、エンドユーザによるパーソナライズもシステム管理者によるカスタマイズも可能でない。Descriptionプロパティの一例は、上述の図1の説明に関して用意されているサンプルコードに含まれている。
パーツ基本クラス702の他のプロパティとして、FrameStateプロパティがある。FrameStateプロパティは、パーツのフレーム状態を定義する。例えば、FrameStateプロパティは、特定のWebパーツが最小化されているか、最大化されているか、または通常であるかを定義することができる。Webパーツが最小化されている場合、タイトルバーのみが表示される。Webパーツが通常の場合、タイトルバーとパーツコンテンツが表示される。FrameStateプロパティは、エンドユーザによるパーソナライズもシステム管理者によるカスタマイズも可能である。
パーツ基本クラス702のさらに他のプロパティとして、FrameTypeプロパティがある。FrameTypeプロパティは、パーツのフレームを組み立てるクロムのタイプを決定する。例えば、FrameTypeプロパティの設定として、タイトルのみを表示する、タイトルと枠線を表示する、または枠線のみを表示する、がある。
パーツ基本クラス702のさらに他のプロパティとして、LargeIconImageURLプロパティがある。このプロパティは、特定のWebパーツを表すイメージのURLを含み、このイメージはパーツアイコンとも呼ばれる。これらのアイコンは、パーツのグラフィック表現として使用することができる。図5Bの説明とともに上で説明したように、LargeIconImageURLプロパティは、Webページに追加するのに使用可能なWebパーツのグラフィック表現を示すためページカタログパーツにより使用することができる。これはさらに、特定のWebパーツのタイトル領域に含めることもできる。このプロパティは、エンドユーザによるパーソナライズもシステム管理者によるカスタマイズも可能でない。LargeIconImageURLプロパティと似たものとしてSmallIconImageURLプロパティがある。このプロパティにより、LargeIconImageURLに似た方法で特定のWebパーツを表すイメージのURLを記述するが、ただし、URLは、サイズが小さいイメージにリンクしている。
パーツ基本クラスのさらに他のプロパティとして、Rolesプロパティがある。Rolesプロパティでは、Webページ開発者は特定のWebパーツが利用可能なロールを設定することができる。例えば、Webパーツは、カスタマイズシナリオなどでのサイト管理機能をオープンの「Admin」ロールを持つすべてのユーザに提供することも可能である。
パーツ基本クラスでさらに使用可能な他のプロパティとして、Titleプロパティがある。Titleプロパティの値は、コンテンツの上のWebパーツの最上位に表示されるタイトルとしてレンダリングされる。これは、通常、Titleプロパティ文字列内のテキストと見出しの組み合わせである。本発明の好ましい実施形態では、Titleプロパティは、LargeIconImageURLおよびSmallIconImageURLに関して上で説明したパーツアイコンプロパティがクライアントにレンダリングされるときに代替えテキストとして使用しなければならない。
Webパーツ基本クラス
図7に例示されているWebパーツ基本クラス706は、パーツ基本クラスに依存しており、本明細書で定義される他のプロパティに加えてパーツ基本クラスのすべてのプロパティおよび機能を含む。例えば、Webパーツ基本クラス706は、Connectionsプロパティを含む。Connectionsプロパティは、このWebパーツと関連付けられた接続を記述する。Connectionsプロパティの使用例は、図6の説明とともに上述で説明されており、またWebパーツマネージャ基本クラスの説明でも本明細書において詳述することにする。
Webパーツ基本クラス706で使用可能なさらに他のプロパティとしては、HelpURLおよびWebPartHelpModeプロパティがある。HelpURLプロパティは、特定のWebパーツに関するヘルプを表示するページのURLに設定することができる。WebPartHelpModeプロパティでは、リンクの表示方法が定義される。例えば、リンクは、モーダルダイアログ(または、モーダルダイアログがサポートされていない場合は新規ブラウザウィンドウ)として表示することができる。また、リンクは、モードレスダイアログ(または、モードレスダイアログがサポートされていない場合は新規ブラウザウィンドウ)として表示することができる。さらにリンクを表示しておいて、現在のウィンドウを使用してヘルプのURLへナビゲートすることができる。
Webパーツ基本クラス706内に存在するプロパティのさらに他のグループは、「Allow」プロパティと呼ばれるパーツプロパティのグループである。これらのプロパティを使用することにより、Webページ開発者は特定のWebパーツで使用可能な機能を決定することができる。例えば、AllowCloseプロパティを使用すると、Webページ開発者は特定のWebパーツを閉じられる(つまり、ゾーンから除去される)かどうかを判別することができる。このプロパティは、一般に、すべてのユーザによるパーソナライズが可能である。AllowHideプロパティを使用すると、Webページ開発者は特定のWebパーツを非表示にできる(つまり、表示されない要素、ただしゾーン内にはそのまま含まれている)かどうかを定義することができる。このプロパティは、一般に、すべてのユーザによるパーソナライズまたはカスタマイズが可能である。AllowMinimizeプロパティでは、特定のWebパーツを最小化できるかどうかを決定する(Webページに表示されているタイトルバーのみ)。このプロパティは、すべてのユーザによるパーソナライズまたはカスタマイズが可能である。AllowMoveプロパティでは、Webパーツをゾーン内で、またはゾーン間で移動できるかどうかを決定する。このプロパティは、パーソナライズもカスタマイズも可能でない。AllowExportプロパティでは、特定のWebパーツプロパティ設定をエクスポートできるかどうかを決定する。
Webパーツ基本クラス706は、AllowPersonalizationプロパティも含む。こうして、ページ開発者が指定されたWebパーツについてパーソナライゼーションを禁止したい場合には、プロパティをfalseに設定すればよい。例えば、いくつかのプロパティは一般的な意味でパーソナライズが可能であるが、Webページ開発者がそれらのパーソナライズ可能な属性を削除することを選択した場合、EnablePersonalizationプロパティを単にfalseに設定するだけで削除することができる。したがってエンドユーザおよびシステム管理者は、このプロパティが設定されている特定のWebパーツを編集することを許可されない。
Webパーツ基本クラス706は、Captionプロパティも含む。このプロパティにより、Webパーツのクロム内のタイトルの終わりに追加される文字列を定義する。このプロパティは、ドキュメントの名前または他のコンテキスト固有の情報を対象とする。このプロパティは、静的であることが想定されるTitleプロパティとは異なり、動的であることが想定される。Webパーツ基本クラス706に含まれる他のプロパティとして、Directionプロパティがある。
Webパーツ基本クラス706で使用可能なもう1つのプロパティは、Hiddenプロパティである。Hiddenプロパティでは、特定のWebパーツをWebページに表示するかどうかを決定する。Hiddenプロパティがfalseに設定されているパーツは非表示とみなされる。一実施形態では、これらのパーツはインスタンス化され、事前レンダリングおよびレンダリング段階を通る。しかし、ゾーンは、Webページ上のコンテンツを表示しない。それにもかかわらず、非表示のパーツは接続に参加することができる。非表示のパーツは、後述のWebパーツマネージャを説明している本明細書の節で説明するように、通常またはデザインモードに入っている場合に非表示になっている。Webパーツマネージャがカスタマイズまたはパーソナライズのシナリオなどで編集モードに入っている場合、非表示パーツは通常、表示され、パーソナライズを行える。
Webパーツ基本クラス706のVisibleプロパティがfalseに設定された場合、Webパーツは閉じているとみなされる。Visibleプロパティがfalseに設定されているWebパーツはページ上にインスタンス化されるが、ライフサイクルのレンダリング段階を通らない(事前レンダリングとレンダリング)。Webパーツを閉じると、Webパーツは接続または他の通信に参加できなくなる。
Webパーツ基本クラス706のDisplayプロパティは、WebパーツをWebページブラウザに表示するかどうかを決定する。WebパーツをWebページブラウザに表示しないようにDisplayプロパティが設定されているとしても、特定のWebパーツはレンダリング段階を通る。このプロパティは、ユーザ毎のパーソナライズが可能である。Webパーツ基本クラス706のEditURLプロパティは、特定のWebパーツを編集するために使用することができるHTMLファイルのURLを含む。このプロパティは、すべてのユーザによるパーソナライズおよびカスタマイズが可能である。
Webパーツ基本クラス706のエディタパーツプロパティは、Webパーツに関連付けられたカスタムエディタパーツの集まりを規定する。カスタムエディタパーツが依存する、エディタパーツ基本クラス708は、パーツ基本クラス702に依存しており、これについては以下で詳述する。このプロパティは、この例ではカスタマイズもパーソナライズも可能でない。
Webパーツ基本クラス706のIsSharedプロパティは、特定のパーツが複数のユーザ間で共有されているか、または現在のユーザからしか使用できないかを示す。このプロパティは、カスタマイズもパーソナライズも可能でない。Webパーツ基本クラス706のMissingAssemblyプロパティには、ユーザがWebページサーバ上にインストールされていないアセンブリ内に存在するWebパーツを追加しようとしたときに表示されるテキストが格納される。このプロパティは、カスタマイズもパーソナライズも可能でない。Webパーツ基本クラス706のTitleURLプロパティは、特定のWebパーツに関する捕捉情報を格納するHTMLドキュメントへのURLを含む。このリンクは、指定されている場合にフレームのタイトルバーに表示される。このプロパティは、すべてのユーザによるパーソナライズおよびカスタマイズが可能である。Webパーツ基本クラス706のVerbsプロパティは、特定のWebパーツに関連付けられた動詞の集まり(OK、Apply、閉じる、最大化、最小化など)の集まりを規定する。このプロパティは、カスタマイズもパーソナライズも可能でない。
これらのWebパーツは、一般に、常にではないが、ゾーン内にレンダリングされる。Webパーツ基本クラス706のzoneプロパティは、Webパーツを含むWebパーツゾーンを規定する。このプロパティは、カスタマイズもパーソナライズも可能でない。Webパーツ基本クラス706のZoneIDプロパティは、特定のWebパーツを含むゾーンのIDを規定する。このプロパティは、カスタマイズおよびパーソナライズが可能である。Webパーツ基本クラス706のZoneIndexプロパティは、ゾーン内の他のWebパーツに関するゾーン内のWebパーツのインデックスを規定する。
いくつかのクラスでは、プロパティに加えて、メソッドも用意されている。メソッドは、クラスの機能を呼び出す手段である。これらのメソッドはさらに、特定のクラスの機能を他の外部コンポーネントまたはクラスに提供する方法に関する情報も含む。例えば、Webパーツ基本クラス706は、GetConnectionInterfaceメソッドを備えている。このメソッドは、ヘルパメソッドであり、これにより、他のWebパーツから情報を受け取るWebパーツであるコンシューマは、追加接続インターフェースについて、コンシューマなどの他のWebパーツに情報を提供するWebパーツであるプロバイダに問い合わせを行うことができる。このメソッドは、後で詳しく説明する、トランスフォーマのような接続オブジェクトをトラバースするロジックを含む。
Webパーツ基本クラス706は、さらに、OnEditModeChangedメソッドを備える。このメソッドは、特定のパーツが編集モードに入ったり終了したりするときに呼び出される。このパーツは、Webパーツマネージャにフックしたいパーツ開発者への便宜のため追加されている。
さらに、特定のクラスの機能を定義するのは、列挙型である。列挙型は、プロパティ値を設定する特別なデータ型である。あるプロパティに対し列挙型が存在している場合、プロパティ値の選択を行うためのドロップダウンメニューを含むユーザインターフェースを構築することができる。例えば、Webパーツ基本クラス706には、WebPartHelpModeという列挙型がある。この列挙型は、パーツのヘルプURLの取り扱い方を記述するものである。3つの値があり、WebPartHelpMode列挙型に対して選択することができる。これには、モーダル、モードレス、およびナビゲートが含まれる。この特定の列挙型がモーダルに設定されている場合、ヘルプURLはモーダルウィンドウ内に表示されなければならない。この列挙型がモードレスに設定されている場合、ヘルプURLは、ウィンドウを消すことを指示するまでユーザの画面上でアクティブのままになっているかまたは表示されているモードレスウィンドウ内に表示されなければならない。この列挙型がナビゲートに設定されている場合、ページ全体がヘルプURLにナビゲートされる。
Webパーツ基本クラス706の中の他の列挙型として、パーツFrameTypeがある。パーツFrameType列挙型は、Webパーツおよびゾーンコントロールの両方により、ユーザインターフェースの一部として各Webパーツの回りに適用されるフレームを記述するために使用される。この例では、この列挙型は、none、title only、title and border、border only、および既定値という5つの値のうちの1つを持つことができる。値がnoneに設定されている場合、Webパーツの回りにフレームは表示されない。値がtitle onlyに設定されている場合、Webパーツ上にタイトルバーのみが表示される。値がtitle and borderに設定されている場合、タイトルバーと枠線の両方がレンダリングされる。値がborder onlyに設定されている場合、枠線のみがレンダリングされ、Webパーツ上にタイトルバーはレンダリングされない。値が既定値のままであれば、フレームタイプを囲まれているゾーンから取らなければならない。PartFrameType列挙型の実装例は、「Frame Type」ドロップダウンメニュー412として図4に示されている。
Webパーツ基本クラス706で使用可能な他の列挙型として、パーツFrameState列挙型がある。この列挙型は、パーツとゾーンコントロールの両方により、Webパーツの状態を記述するために使用される。この例では、この列挙型に対し、normal、minimized、または既定値の3つの値が用意されている。値がnormalに設定されている場合、通常のウィンドウが表示される。値がminimizedに設定されている場合、タイトルバーだけが表示される。値が既定値に設定されている場合、Webパーツ上で、フレームスタイルを囲まれているゾーンから取らなければならない。Webパーツ上で、既定値が使用される場合、標準のフレームスタイルを使用しなければならない。パーツFrameState列挙型の実装例は、「Frame State」ドロップダウンメニュー410として図4に示されている。
エディタパーツ基本クラス
パーツ基本クラス702に依存する他のクラスは、図7に例示されているようにエディタパーツ基本クラス708である。エディタパーツ基本クラス708は、エディタパーツ基本クラス708に固有のいくつかのプロパティおよびメソッドを含むパーツ基本クラス702の機能を超える機能を備える。エディタパーツは、編集に使用できる単一のWebパーツに関連付けることができる。エディタパーツのコントロールは、ユーザインターフェースを介してWebパーツを「編集」する場合に使用される。
エディタパーツ基本クラス708で使用可能な1つのプロパティとして、AllowMinimizeプロパティがある。このプロパティで、エディタパーツを最小化できるかどうかを指定する。エディタパーツ基本クラスで使用可能なもう1つのプロパティは、WebPartToEditプロパティである。このプロパティは、エディタパーツが担当するコントロールへの参照である。エディタパーツ基本クラス内に存在するさらにもう1つのプロパティは、Displayプロパティである。このプロパティで、エディタゾーンにこのパーツを表示するかどうかを指定する。例えば、エディタパーツに現在WebPartToEdit用のユーザインターフェースがない場合、このプロパティをfalseに設定して、その特定のエディタパーツが表示されないようにする。
エディタパーツ基本クラス708は、少なくとも2つのメソッドを備える。1つはApplyChangesメソッドである。ApplyChangesメソッドは、エディタパーツがその関連付けられたWebパーツに値を適用しなければならない場合にゾーンによって呼び出される。値がtrueであれば、保存が成功したということであり、値としてfalseが返されると、エラーが発生したということである。エディタパーツ基本クラスで使用可能なもう1つのメソッドは、SyncChangesメソッドである。このメソッドは、他のエディタパーツがエディタパーツに関連付けられているWebパーツコントロールプロパティを変更している可能性があるため、エディタパーツが値の同期をとらなければならない場合にゾーンによって呼び出される。これは、通常、他のエディタパーツにより適用された変更がすべて正常に返された後に呼び出される。
エディタパーツ基本クラスから派生する多数のクラスには、PropertyGridEditorパーツ710、BehaviorEditorパーツ712、AppearanceEditorパーツ714、LayoutEditorパーツ716、およびさまざまなサードパーティエディタパーツ718がある。
エディタパーツ基本クラスからはPropertyGridEditorパーツクラス710が派生する。PropertyGridEditorパーツ710は、Webブラウザで参照可能とのマークが付けられているプロパティを表示するエディタパーツである。PropertyBrowserEditorパーツクラス710は、プロパティのタイプに基づいて各プロパティの異なるユーザインターフェースをレンダリングすることができる。既定のユーザインターフェースは、コントロールのプロパティ値を設定するためにタイプコンバータと共に使用されるテキストボックスである。異なるプロパティタイプのユーザインターフェースは次のようなものとすることができる。プロパティタイプが文字列型であれば、レンダリングされるユーザインターフェースはテキストボックスになる。整数型、浮動小数点型、または単位型(unit)であれば、これもまたレンダリングされるユーザインターフェースはテキストボックスになる。ブールプロパティ型であれば、レンダリングされるユーザインターフェースはチェックボックス、ラジオボタン、またはドロップダウンになる。列挙型の場合、レンダリングされるユーザインターフェースは列挙型の値のドロップダウンである。DateTimeプロパティ型であれば、レンダリングされるユーザインターフェースはテキストボックスまたはカレンダになる。色型(color)であれば、レンダリングされるユーザインターフェースはテキストボックス、ドロップダウン、またはカラーピッカーである。
エディタパーツ基本クラス708から派生するコントロールで、PropertyGridEditorパーツコントロール710によって提供されるユーザインターフェースのタイプを指定する必要はない。その代わりに、エディタパーツにより自動的に決定される。さらに、PropertyGridEditorパーツコントロール710は、ページ開発者が共通のタイプに対する好ましいユーザインターフェースのレンダリングであることを示すためのいくつかのプロパティを含む。例えば、プロパティタイプがチェックボックスまたはラジオボタンの使用に役立つものである場合、PropertyGridEditorパーツコントロール710内のプロパティを使用すると、ページ開発者は使用するユーザインターフェースのタイプに関して選択することができる。
PropertyGridEditorパーツコントロール710は、さらに、エディタパーツのルック&フィールを調整するためのいくつかのスタイルプロパティも備える。一組のスタイルプロパティがテキスト書式設定の中心に置かれ、プロパティ:PropertyNameStyle、PropertySetterStyle、およびErrorStyleを含む。さらに、プロパティ名および関連付けられたセッタユーザインターフェースを編成するために使用されるテーブルの外観を制御するのにスタイルを使用することができる。このテーブルのスタイルは、GridStylePropertyを使用して制御することができる。例えば、ユーザは、グリッドの回りに線をレンダリングするようにエディタパーツを構成することも可能である。このスタイルは、プロパティ名およびセッタユーザインターフェースをラッピングする外部テーブルに適用される。
PropertyGridEditorクラスで指定できるプロパティのいくつかは、さまざまな選択を行うために表示されるユーザインターフェースに関するものである。これらのプロパティは、既定値を含むが、他の許容可能な書式も含むことができる。PropertyGridEditorパーツクラスのBoolEditorTypeプロパティは、ブール型プロパティに使用されるセッタユーザインターフェースのタイプを決定する。既定のタイプは、チェックボックスであるが、ラジオボタンまたはドロップダウンも使用可能である。ColorEditorTypeパーツは、色型プロパティに使用されるセッタユーザインターフェースのタイプを決定する。既定のタイプはドロップダウンであるが、上記のように、カラーピッカーまたはテキストボックスも使用することができる。PropertyGridEditorパーツのDateEditorTypeプロパティは、日付プロパティに使用されるセッタユーザインターフェースのタイプを決定する。このタイプの既定値は、テキストボックスであるが、またはその他の適当なインターフェースも指定できる。PropertyGridEditorパーツクラス710のUnitEditorTypeは、単位プロパティに使用されるセッタユーザインターフェースのタイプを決定する。このプロパティの既定値はテキストボックスである。
PropertyGridEditorパーツクラス710のWebPartToEditプロパティは、そのエディタパーツが受け持つWebパーツへの参照である。このプロパティは、エディタパーツが関連するコントロールに関するプロパティを調整する場合に使用することができる。
PropertyGridEditorパーツクラス710のDisplayプロパティは、エディタゾーンにこのパーツを表示するかどうかを示す。例えば、エディタパーツに現在のWebPartToEditに対応するユーザインターフェースがない場合、Displayプロパティはfalseに設定され、エディタパーツは表示されない。PropertyGridEditorパーツのGridStylePropertyは、使用可能なプロパティのグリッドに適用されるテーブルスタイルを決定する。
PropertyGridEditorパーツ基本クラス710はさらに、このクラスで使用可能なさまざまなメソッドを備える。PropertyGridEditorパーツ基本クラス710のApplyChangesメソッドは、エディタパーツが値を関連するコントロールに適用しなければならない場合にエディタゾーンによって呼び出される。「OK」または「Apply」動詞がエディタゾーン内で呼び出され、変更を保存すべきであることを指示した場合に、このメッセージメソッドはエディタパーツのホストとなっているエディタゾーンにより呼び出される。エラーが発生した場合にエディタパーツはfalseを返すことで、エディタゾーンは適切な動作をする。例えば、「OK」動詞がクリックされた場合、エディタゾーンは通常、ApplyChangesを呼び出した後にページを通常モードに設定する。しかし、エラーが発生すると、エディタパーツは表示されたままとなり、エラーを訂正することができる。True値が返されると、保存が成功したということである。
PropertyGridEditorパーツでは、2種類の例外が発生することがある。第1の種類の例外は、文字列をプロパティのデータ型に変換している間にエディタパーツ自体が投げる例外である。便宜上、これらの例外は、変換例外と呼ぶ。第2の種類の例外は、データベースのように、Webパーツまたはそれよりも下の何らかの層のプロパティのsetメソッドにより投げられる例外である。
PropertyGridEditorパーツは、設定可能プロパティのグリッドの最上位に一般エラーメッセージを表示する。このエラーテキストは、ErrorTextプロパティを通じて設定することができる。文字列の置き換えは、エラーの原因となった第1のプロパティの名前を置換して行うことができる。PropertyGridEditorパーツは、Convertルーチンが呼び出されたときに例外をキャッチし、修正することにより分かりやすい変換エラーメッセージを表示する。このような文字列置換には、「This property requires a numeric value」または「This value is out of range」または「This property requires a value greater than or equal to 0」または「This property requires an integer value」または「This property requires a web address」または設定されるプロパティに適した他のメッセージがある。
Webパーツが投げるエラーについては、フレームワーク側でそれと同時に例外メッセージを表示する。したがって、Webパーツ開発者は、エラーメッセージを標準例外メッセージではなくわかりやすい形式に修正することができる。本発明の一実施形態では、TypeConverterを使用したときにエラーを起こしやすいプロパティには、WebBrowsableのマークが付けられない。その代わりに、プロパティを設定するためのカスタムエディタパーツが用意される。
PropertyGridEditorパーツのSyncChangesメソッドは、他のエディタパーツ(つまり、Webパーツの関連コントロール)がコントロールプロパティを変更している可能性があるためエディタパーツが値の同期をとらなければならない場合にエディタゾーンによって呼び出される。SyncChangesは、ApplyChangesメソッドがすべてのエディタパーツから正常に戻ってからでないと呼び出されない。したがって、SyncChangesメソッドは、ApplyChangesメソッドのどれかがfalseを返した場合には呼び出されず、エラーが発生したことがわかる。
AppearanceEditorパーツ基本クラス714はエディタパーツ基本クラス708に依存する。AppearanceEditorパーツ基本クラス714は、title、size、frame typeなどの共通ユーザインターフェースのWebパーツプロパティを設定する。AppearanceEditorパーツ基本クラス714によってレンダリングされるAppearanceEditorパーツの例は、図8Aに示されており、一般的に800で示される。LayoutEditorパーツ基本クラス716は、エディタパーツ基本クラス708に依存する。LayoutEditorパーツ基本クラス716は、zone、ZoneIndex、Hiddenなどに対するWebパーツレイアウトプロパティを設定する。LayoutEditorパーツ基本クラス716によってレンダリングされるLayoutEditorパーツの例は、図8Bに示されており、一般的に802で示される。
BehaviorEditorパーツ基本クラス712は、エディタパーツ基本クラス708に依存する。BehaviorEditorパーツ基本クラス712は、AllowClose、AllowMinimize、AllowExport、EnablePersonalization、TitleURL、EditURL、HelpURL、およびDescriptionなどのビヘイビアプロパティを設定する。BehaviorEditorパーツは、すべてのユーザに対してWebページを修正する場合、または複数のユーザ間で共有されていないパーツを編集する場合に使用することができる。これは、AllowCloseなどの特定のプロパティがすべてのユーザに適用され、ユーザ別に設定すべきではないためである。BehaviorEditorパーツ基本クラスによってレンダリングされるBehaviorEditorパーツの例は、図8Cに示されており、一般的に804で示される。
カスタマイズ可能なサードパーティエディタパーツなどの他のエディタパーツは、さまざまなWebパーツに関連付けることができる。これらのカスタムエディタパーツが備えるWebパーツは、エディタパーツプロパティを通じてカスタムエディタパーツを公開する。カスタムエディタパーツを提供することを望んでいるパーツ開発者は、特定のWebパーツのエディタパーツプロパティを指定変更することができる。このプロパティは、指定されたパーツが編集モードに入ったときにEditorZoneによってチェックされる。
カタログパーツ基本クラス
カタログパーツ基本クラス704は、パーツ基本クラス702に依存する。カタログパーツは、ユーザが新しいWebパーツインスタンスをWebページに追加するためのユーザインターフェースを公開するパーツである。カタログパーツは、直接Webパーツマネージャとリンクされ、ユーザ毎にコントロールをページに追加しなければならないことを示している。カタログパーツのレンダリングはカタログゾーンによって行われる。カタログパーツ基本クラスに依存する2つのカタログパーツが図7にPageCatalogパーツ720およびTemplateCatalogパーツ722として示されている。第3のパーツカタログパーツも使用できる。
PageCatalogパーツ720は、すでに閉じられているWebパーツを表示する。Closedは、可視性がfalseに設定されている任意のパーツとして定義される。カタログからパーツが追加されると、パーツはカタログの中では使用できなくなる。一般に、カタログは、空になり始め、永続性フォーマットですでに宣言され、すでに閉じられているパーツで徐々に埋められてゆく。カタログは、通常、Webパーツをカタログ内で静的に宣言することを許可していない。
TemplateCatalogパーツ722を使用して、カタログを宣言的に作成する。<CatalogTemplate>に含まれるWebパーツはページに追加することができる。TemplateCatalogパーツによって宣言された同じカタログアイテムの複数のコピーをページに追加することができる。
カタログパーツのコントロールに依存するクラスは、機能をカタログパーツ基本クラス704に付加する。この機能の例は、図5Aと5Bを調べるとよくわかり、一般的にはCatalogWebParts 500および520を示している。カタログパーツ基本クラス704は、Webパーツ522の選択を取り込むためのコントロールを含む。カタログパーツコントロールは、さらに、カタログパーツ500および520にパーツを表示するのに適しているパーツアイコン526を選択するためにも使用できる。カタログパーツコントロールはさらに、パーツ説明を表示するためのコントロールを備える。さらに、ページ付け540、1ページ当たりの項目数を示すページ別アイテムインジケータ534、チェックボックススタイル、パーツイメージスタイル、パーツタイトルなどを表示するコントロールも含まれる。
カタログパーツ基本クラスには、2つのパブリックプロパティAvailablePartおよびWebパーツマネージャが存在する。パーツ基本クラスのプロパティである、AvailablePartプロパティは、カタログパーツ800で表示するためのカタログ内で使用可能なパーツを示す。AvailablePartsプロパティは、使用可能なWebパーツの変更セットを備えるWebサービスなどでは動的でもよい。カタログパーツは選択されたアイテムをページに追加するためWebパーツマネージャに含まれるメソッドに依存するため、各カタログパーツはWebパーツマネージャへの参照を含む。これは、クラス上のプロテクトメンバであり、拡張性を補助するために含まれている。
SelectedPart、ShowPartImage、ShowPartDescription、ShowPartTitle、PartTitleStyle、PartDescriptionStyle、PartImageStyle、CheckBoxStyle、Paginate、ItemsPerPage、PagerStyleなどいくつかのプライベートプロパティも存在する。これらのプロパティは、カタログパーツのルック&フィールを定義する作業を手助けすることによりカタログパーツのレンダリングを補助する。
特定の追加されるWebパーツがWebページに追加される場所を指定する「Add」メソッドが存在する。CatalogZoneは、「Add」動詞が呼び出されると、選択されたカタログパーツ上で「Add」メソッドを呼び出す。その後、カタログパーツは、Webパーツマネージャの「Add」メソッドを呼び出してWebパーツをページに追加する。そのとき以降、WebパーツがWebパーツマネージャにより追跡される。
Object基本クラスから派生する他のクラスに、WebPartVerbクラスがある。WebPartVerbは、特定のアクションを呼び出すゾーンによってレンダリングされるユーザインターフェース要素を定義する場合に使用される。クリックイベントは、クライアントまたはサーバ上で処理することができる。動詞は、メニュー内にレンダリングされるように設計されているが、イメージ、ボタン、またはリンクとしてレンダリングすることも可能である。WebPartVerbクラス内に存在するプロパティは、Checked、Description、Enabled、ImageUrl、OnClickを含む。
Checkedプロパティは、その呼び出に関わる動詞はチェッカユーザインターフェースを表示すべきかどうかを定義する。メニューユーザインターフェース環境では、動詞テキストの隣にチェックが表示される。Descriptionプロパティには、動詞の説明である文字列が格納される。この文字列は、ツールチップで表示することも可能である。Enabledプロパティは、特定の動詞を有効にするかどうかを決定する。動詞は、有効になっていなければ、メニューに灰色で表示され使用不可になっているか、または全く表示されない。ImageUrlプロパティは、動詞に関連付けられているイメージの位置を定義する。OnClickプロパティは、サーバサイドのclickイベントを受け取るイベントハンドラである。OnClientClickプロパティは、特定の動詞がクリックされたときに呼び出されるクライアントサイドの関数である。Textプロパティは、動詞のテキスト名である。このテキストは、メニューテキストとして表示される。Visibleプロパティは、特定の動詞が表示されるかどうかを定義する。
上述で定義されているプロパティのほかに、WebPartVerbクラスはさらに、この例のInvokeメソッドも含む。Invokeメソッドは、クリックイベントの定義に関わる特定の動詞についてそのクリックイベントを発動する(fire)メソッドである。
また、Object基本クラスからは、WebPartEventArgクラスが派生する。WebPartEventArgsクラスは、WebPartVerbとともに使用され、呼び出されたWebPartVerbに関連付けられているWebパーツを示す。このクラスは、呼び出されたWebPartVerbに関連付けられているWebパーツを定義する。
ゾーンコントロール
ゾーン基本クラスを使用して、パーツコントロールを首尾一貫した形で配列するパーツを作成する。例えば、ゾーンは、その特定のゾーンに関連付けられている各パーツを囲むクロムおよびユーザインターフェースをレンダリングする役割を持つ。そこで、図9を参照すると、ゾーンコントロールの階層が示されている。ゾーン基本クラス900には、それから派生する3つの基本クラスがある。これら3つの基本クラスは、WebPartZoneBase基本クラス902、EditorZone基本クラス904、およびCatalogZone基本クラス906である。ゾーン基本クラス900は、パーツ基本クラス702から継承または派生するすべてのコントロールのレイアウトの制御に使用される。WebPartZone基本クラス902は、Webパーツコントロールで使用される。EditorZone基本クラス906は、エディタパーツコントロールのレイアウトに使用される。CatalogZone基本クラス904は、カタログパーツコントロールのレイアウトに使用される。
図10は、ゾーンによってレンダリングすることができるさまざまなユーザインターフェースを例示している。図9および10を使用して、ゾーン基本クラスおよびゾーン基本クラスから派生するクラスのさまざまなプロパティについて説明することにする。ゾーン基本クラス900に属しているプロパティのいくつかは、Webページ上に特定のゾーンをどのようにレンダリングするかを定義するために使用できる。これらのゾーン基本クラスのプロパティには、BackImageURL、FrameType、Title、TitleStyle、およびTitleHorizontalAlignがある。これらのプロパティのうちいくつかは、すでに説明した本明細書の方法で列挙型により設定することができる。
ゾーン基本クラス900は、特定のゾーンの背景として使用すべきイメージのURLを定義するBackImageURLプロパティを備える。
ゾーン基本クラス900のFrameTypeプロパティは、編集、カタログ、およびデザインモードで特定のゾーンの回りにタイトルバーおよび枠線をゾーンでレンダリングする方法を指定する場合に使用される。例えば、図10を参照すると、FrameTypeの値としてnoneを指定した場合、ゾーンはゾーンフレーム1002もタイトルバー1004もレンダリングしない。FrameType値としてTitleOnlyを指定すると、タイトルバー1004はレンダリングされるが、ゾーンフレーム1002はレンダリングされない。FrameType値としてTitleAndBorderを指定すると、タイトルバー1004およびゾーンフレーム1002がレンダリングされる。FrameType値としてBorderOnlyを指定すると、ゾーンフレーム1002のみがレンダリングされる。FrameTypeプロパティは、さらに、上述で詳述したように、列挙型として表すこともできる。
ゾーンタイトルバー1004は、ゾーン基本クラス900の他のさまざまなプロパティを通じて制御することができる。例えば、TitleStyleプロパティは、タイトルバー1004のスタイルを指定する場合に使用することができる。そこで、TitleStyleは前景色および背景色などを定義する。ゾーン基本クラス900のTitleプロパティは、ゾーンのタイトルを表す文字列値を格納する。ゾーン基本クラス900のTitleHorizontalAlignプロパティは、ゾーンのタイトルに使用される位置揃えを定義する。
さらに、ゾーン基本クラス900は、特定のゾーン内に含まれるWebパーツの特性を定義する複数のプロパティを含む。例えば、プロパティPartStyle、PartFrameType、PartTitleHorizontalAlign、PartTitleStyle、PartVerbStyle、およびPartContentStyleは、ゾーン内に常駐するWebパーツのコンポーネントをレンダリングするためにゾーンコンポーネントのレンダリングを制御するのに使用されるプロパティに似た方法で使用される。図10を参照すると、パーツタイトル領域1006、パーツ動詞領域1008、パーツレンダリングコンテンツ1010、パーツフレーム1012、およびさまざまな他のコンポーネントは、上述のプロパティの値を設定することにより制御可能である。
WebPartZoneBaseクラス
ゾーン基本クラス900からは、WebPartZoneBaseクラス902が派生する。WebPartZoneBaseクラス902は、Webパーツコントロールのホストとなるように設計されている。WebPartZoneBase基本クラス902は、複数のプロパティを含む。
WebPartZoneBase基本クラスの一組のプロパティにより、ゾーン内の特定のアイテムがパーソナライズ可能かどうかが定義される。WebPartZoneBase基本クラスのAllowWebPartPersonalizationプロパティは、特定のゾーンに、このゾーン内のWebパーツの編集リンクを表示するかどうかを指定する。falseに設定した場合、後述のように、ドラッグ&ドロップの使用はこのゾーン内のパーツには許可されない。WebPartZoneBase基本クラスのLockLayoutプロパティがTrueに設定された場合、そのゾーンでは、Webパーツの移動または追加を許可しない。
WebPartZoneBase基本クラスのプロパティのうちいくつかは、ゾーン内または異なるゾーン同士の間のレンダリングされたWebパーツのドラッグ機能を制御する。WebPartZoneBase基本クラスのDragModeプロパティは、Webページ上でパーツをあちこち移動する場合に使用するDragModeを指定する。DragModeプロパティは、Image、WebPartTitle、およびNormalの3つの値を持つ。DragModeプロパティがImageに設定されている場合、後述のDragImageURLプロパティにより指定されたImageが使用される。DragModeプロパティの値がWebPartTitleに設定されている場合、Webパーツのタイトルバーはカーソルでドラッグされる。DragModeプロパティがNormalに設定されている場合、Webパーツ全体がカーソルでドラッグされる。WebPartZoneBase基本クラスのDragImageUrlプロパティでは、上述のように、DragModeがImageに設定されている場合に使用するイメージを指定する。WebPartZoneBase基本クラスのDragHighlightColorプロパティでは、ゾーンがターゲットの場合に使用するHighlight色を指定する。つまり、このプロパティにより、クライアント上でレンダリングされる配置ユーザインターフェースの色を指定する。配置ユーザインターフェースは、ターゲットゾーンを囲む枠線だけでなく、他のWebパーツ間の挿入点を示すのに使用されるバーをも含む。
WebPartZoneBase基本クラス902は、さらに、さまざまなWebパーツを特定のゾーン内に表示する方法を定義するための各種のプロパティを備える。WebPartZoneBase基本クラスのEditWebPartStyleプロパティは、現在編集中のWebパーツに使用するスタイルを指定する。このスタイルは、編集モードでしかWebパーツに適用されない。WebPartZoneBase基本クラス902は、ゾーン基本クラスのPartStyleプロパティで設定されているスタイルを指定変更する。
WebPartZoneBase基本クラスのOrientationプロパティは、ゾーンにWebパーツを水平にレイアウトするかまたは垂直にレイアウトするかを指定する。図11Aおよび図11Bは、水平にレイアウトされたゾーン1102および垂直にレイアウトされたゾーン1104を例示している。WebPartZoneBase基本クラスのPartTitleFormatStringプロパティでは、クロムに表示されるタイトルを形成するためのWebパーツのTitleおよびCaptionプロパティの組み合わせ方を指定する。WebPartZoneBase基本クラスのShowIconInPartTitleプロパティでは、特定のWebパーツのグラフィック表現であるパーツアイコンをタイトルバーに表示するかどうかを指定する。
WebPartZoneBasee基本クラスのプロパティの中には、Webパーツ内の動詞の外観に関するいくつかの特性を指定するものがある。WebPartZoneBase基本クラスのVerbプロパティでは、ゾーン内のすべてのパーツに適用される一組の動詞を定義する。これらは、WebパーツVerbとWebPartCloseVerbのような組み込みのゾーンの動詞との間に適用される。定義できるVerbsの例としては、Webパーツを閉じるWebPartCloseVerb、Webパーツを最小化するWebPartMinimizeVerb(Webパーツのタイトルのみが表示される)、最小化されているWebパーツを元のサイズに戻すWebPartRestoreVerb、およびユーザにヘルプURLを送るWebPartHelpVerbがある。閉じる動詞1202、最小化動詞1204、元のサイズに戻す動詞1206、およびヘルプ動詞1208を示す動詞レンダリングのさまざまな例が図12に示されている。WebPartZoneBase基本クラスのVerbButtonTypeプロパティは、動詞の表示方法を指定する。WebPartVerbプロパティで、ボタンのタイプがイメージであることを指定しているが、イメージURLを定義していない場合、WebPartVerbは、リンクボタンとしてレンダリングされる。WebPartZoneBase基本クラスのVerbStyleプロパティでは、動詞に適用されるスタイルを定義する。
WebPartZoneBase基本クラスのWebPartPaddingプロパティは、ゾーン内のWebパーツ間で適用されるパディングを定義する。WebPartZoneBase基本クラスのWebPartsプロパティには、ゾーン内のWebパーツのコレクションの一覧が表示される。
WebPartZoneBase基本クラスから派生するクラスは、図9に示され、一般的に符号908で表されるWebPartZoneクラスである。WebPartZoneクラスではゾーンのTemplateプロパティを追加するので、Webパーツを永続化フォーマットで追加することができる。
エディタゾーン基本クラス
EditorZone基本クラスは、エディタパーツおよびそのエディタパーツに関連付けられているユーザインターフェースをレンダリングするように設計されている。エディタパーツ404の例が図4に示されている。本発明の一実施形態では、EditorZoneはそれぞれのエディタパーツの回りに最低限のユーザインターフェースをレンダリングする。EditorZone基本クラス906は、ApplyVerb、CancelVerb、CloselmageUrl、エディタパーツ、ZoneTemplate、FooterStyle、OkVerb、ShowCloselmage、VerbButtonType、VerbStyle、およびWebPartToEditなどいくつかのプロパティを含む。EditorZone基本クラスはさらに、ApplyHandler、CancelHandler、OkHandlerなどのメソッドの選択も行う。
EditorZone基本クラスのApplyVerbプロパティは、例えば図4に示されている「Apply」動詞ボタン416など、「Apply」オペレーションを実行する動詞を定義する。ApplyVerbプロパティによって定義されている動詞を呼び出すと、各エディタパーツのApplyChangeプロパティが呼び出され、その後、エディタパーツ毎にSyncChangeが呼び出される。
EditorZone基本クラスのCancelVerbプロパティは、「Cancel」オペレーションを実行する、例えば図4に示されている「cancel」動詞ボタン422などの動詞を定義する。CancelVerbを呼び出すと、後述のように、Webパーツマネージャを通じてWebページが通常表示に戻る。CancelVerbDoesは、エディタパーツの「ApplyChange」メソッドを呼び出さない。
EditorZone基本クラスのOkVerbプロパティは、「OK」オペレーションを実行する、図4に示されている「OK」動詞ボタン420などの動詞を指定する。この動詞を呼び出すと、エディタパーツ毎にApplyChangeプロパティが呼び出され、その後、そのページは通常モードに戻る。EditorZone基本クラスのShowCloseImageプロパティは、「Close Image」をゾーンの右上に表示するかどうかを決定する。EditorZone基本クラスのCloseImageUrlプロパティは、ゾーンの右上に表示されるアイコンのImageUrlを指定する。
EditorZone基本クラスのVerbButtonTypeプロパティは、各動詞を表示するために使用されるButtonTypeを決定する。WebPartVerbがイメージurlを指定しないが、ボタンタイプはイメージに設定されている場合、動詞テキストは図4に示されている「OK」、「Apply」、および「Close」動詞ボタンについて示されているものに類似しているリンクボタンとしてレンダリングされる。EditorZone基本クラスのVerbStyleプロパティでは、ゾーンの動詞のそれぞれに適用されるスタイルを定義する。
EditorZone基本クラスのWebPartToEditプロパティでは、編集されているWebパーツを指定する。このプロパティは、基本クラス内のWebパーツマネージャに委譲される。EditorZone基本クラスのエディタパーツプロパティは、このゾーン内のエディタパーツの読み取り専用コレクションを指定する。EditorZone基本クラスのZoneTemplateプロパティは、特定のEditorZone内のエディタパーツの一覧を表示する。EditorZone基本クラスのFooterStyleプロパティは、特定のゾーンのフッタ424に適用されるスタイルを指定する。
一実施例では、EditorZoneクラスは、Webパーツが編集モードに入ったという通知を受け取る。これにより、EditorZoneはエディタパーツの新しい集まりを構築する。EditorZoneは、カスタムエディタパーツを取得するため現在編集されているWebパーツのBuildEditorパーツメソッドを呼び出す。次に、EditorZoneは、ZoneTemplate内のエディタパーツをインスタンス化する。編集中のWebパーツへの変更は、ユーザが行うことができる。行われた変更にユーザが納得した場合、ユーザは、上述のようにApplyVerbプロパティまたはOKVerbプロパティをインスタンス化する「OK」または「Apply」動詞ボタンを選択することができる。
カタログゾーン基本クラス
CatalogZoneは、カタログパーツを表示する場合に使用される。一度に表示できるカタログは通常1つだけである。CatalogZone基本クラス904は、AddVerb、AvailableCatalogText、CancelVerb、カタログパーツZoneTemplate、CloseImageUrl、FooterStyle TargetZone、TargetZoneIndex、SelectedCatalogパーツ、ShowCloseImage、ShowTargetZoneUserインターフェース、VerbButtonType、およびVerbStyleなどいくつかのプロパティを含む。Catalogゾーンはさらに、メソッド「AddHandler」および「CloselHandler」を含む。
CatalogZone基本クラス904のプロパティのうちいくつかは、CatalogZoneのレイアウトおよびコンテンツの表示を定義する。CatalogZone基本クラスのAvailableCatalogTextプロパティには、使用可能なカタログのリストの前に配置されるテキストが格納される。CatalogZone基本クラスのZoneTemplateプロパティは、特定のCatalogZoneに収められているカタログパーツを含むテンプレートである。CatalogZone基本クラスのSelected catalog partプロパティは、現在選択されているカタログを指定する。このプロパティは、カタログパーツがこのゾーン内にない場合などにはNULL値とすることができる。CatalogZone基本クラスのShowTargetZoneuserインターフェースプロパティは、TargetZoneユーザインターフェースをゾーンの一番下に表示するかどうかを指定する。CatalogZone基本クラスのFooterStyleプロパティは、特定のゾーンのフッタに適用されるスタイルを定義する。
CatalogZone基本クラス904のプロパティのうちいくつかは、VerbおよびVerbボタンをCatalogZone内にレンダリングする方法を定義する。CatalogZone基本クラスはAddVerbプロパティは、一般に、CatalogZoneのフッタ内に配置される。呼び出されると、現在選択されているカタログパーツの「Add」メソッドが呼び出される。CatalogZone基本クラスのCancelVerbプロパティは、「Cancel」オペレーションを実行する動詞を定義する。これにより、ページが通常表示に戻る。CancelVerbは、どのカタログパーツについても「Add」メソッドを呼び出さない。CatalogZone基本クラスのCloseImageUrlプロパティでは、ゾーンの右上に表示されるアイコンのImageUrlを規定する。CatalogZone基本クラスのTargetZoneプロパティは、このCatalogZoneに対する現在選択されているTargetZoneを指定する。選択されたWebパーツでAddが呼ばれると、これはパラメータとして渡される。CatalogZone基本クラスのShowCloseImageプロパティは、「Close Image」がCatalogZoneの右上に表示するかどうかを指定する。CatalogZone基本クラスのVerbButtonTypeプロパティは、各動詞を表示するために使用されるButtonTypeを指定する。WebパーツVerbにイメージurlがないが、ボタンタイプはイメージに設定されている場合、テキストはリンクボタンとしてレンダリングされる。CatalogZone基本クラスのVerbStyleプロパティでは、ゾーンの動詞のそれぞれに適用されるスタイルを定義する。
さらにCatalogZone基本クラスの他のプロパティも、特定のCatalogZoneのカタログパーツを管理するのに役立つ。CatalogZone基本クラスのカタログパーツプロパティには、特定のCatalogZone内のカタログパーツのコレクションの一覧が表示される。CatalogZone基本クラスのTargetZoneIndexプロパティでは、パーツがTargetZone内で追加されるインデックスを定義する。
Webパーツマネージャ
基本クラスの第3の一般的なグループは、Webパーツマネージャの基本クラスである。Webパーツマネージャ基本クラスは、Webページ上のWebパーツの追跡、Webページ上のゾーンの追跡、および各ゾーン内にあるWebパーツの追跡を行う。Webパーツマネージャは、さらに、Webページの編集状態を追跡することによりWebページのパーソナライゼーションを処理する。図6に示され説明されているような接続を円滑に行えるようにするため、WebパーツマネージャはWebパーツ間の接続を追跡し、Webパーツ間の接続通信を開始する。Webパーツマネージャは、Webパーツの定義およびパーソナライゼーションに関してデータベースに接続し、依存することができる。Webパーツマネージャは、編集モードの間にWebパーツをドラッグするなどのクライアントオペレーションを処理するためにスクリプトをレンダリングする役割も持つ。Webパーツマネージャは、一例の永続化フォーマットを通じて他のコントロールのようにWebページに追加することができる。Webページ上に通常表示されるWebパーツマネージャのインスタンスは1つだけである。
Webページは、その存続期間全体を通してさまざまな段階を通る。このような段階としては、初期化、ロード、事前レンダリング、状態保存、レンダリング、配置、およびアンロードがある。Webページマネージャは、これらの段階の一部でWebページ上の他のパーツと対話することができる。初期化段階では、Webページマネージャはインスタンス化され、ゾーンはインスタンス化され、ゾーンがWebパーツマネージャに登録され、制御ツリーはテンプレートからWebパーツにより構築される。ロード段階では、接続に関する信号がWebパーツに接続され、Webパーツマネージャは各WebパーツのConnectionプロパティを設定する。事前レンダリング段階は、Webパーツマネージャのクライアントスクリプトブロックが登録される。レンダリング段階では、Webパーツマネージャは、ゾーンおよびWebパーツがコンテンツをレンダリングする方法を追跡し制御する。
Webパーツマネージャは、DisplayMode、WebPartToEdit、ClosedWebPart、およびWebパーツゾーンをはじめとする、上述の機能を実行するいくつかのプロパティを含む。Webパーツマネージャはさらに、「AddWebPart」、「BeginWebPartEditing」、「CreateConnection」、「DeleteWebPart」、「EndWebPartEditing」、「XmlDocument Export」、「Import」、「MoveWebPart」、「RegisterConnectionEndPoint」、「RegisterZone」、および「SetDisplayMode」などのいくつかのメソッドも備える。
Webパーツマネージャの基本クラスのDisplayModeプロパティは、そのページの現在のDisplayModeを定義する。オプションとしては、Normal、Edit、Design、Catalogなどがある。Normal表示モードの例については図1から3に示されており、説明されている。Webページが表示モードの場合、Webパーツは通常モードで表示され、EditorZone、CatalogZone、およびゾーン枠線は表示されない。Edit表示モードの例については図4に示されており、説明されている。Webページが編集表示モードの場合、Webパーツは編集モードでレンダリングされ、EditorZoneおよびゾーン枠線は表示されるが、CatalogZoneは表示されない。Catalog表示モードの例については図5Aに示されており、説明されている。Webページがカタログ表示モードの場合、Webパーツは通常モードでレンダリングされ、CatalogZoneおよびゾーン枠線は表示されるが、EditorZoneは表示されない。Webページがデザイン表示モードの場合、Webパーツは通常モードでレンダリングされ、ゾーン枠線は表示されるが、EditorZoneおよびCatalogZoneは表示されない。個々のWebパーツを編集モードにすることができる。そのため、Webパーツはユーザインターフェースをインラインで表示したり、あるいはEditorZone内の関連するエディタパーツを表示することができる。Webパーツに現在のモードを通知するのに使用されるイベントは、ClosedWebPartsChanged、DisplayModeChanged、DisplayModeChanging、WebPartAdded、WebPartEditModeChanged、WebPartEditModeChanging、およびWebPartDeletedである。
Webパーツマネージャの基本クラスのWebPartToEditプロパティは、Webページが編集モードに入っているときに、現在編集されているWebパーツを識別するために使用される。このプロパティは、エディタゾーンおよびエディタパーツによって使用される。Webパーツマネージャの基本クラスのClosedWebPartプロパティは、表示プロパティがfalseに設定されているWebパーツの集まりを識別する。Webパーツマネージャの基本クラスのWebPartsプロパティは、そのページ上では静的であるパーツと動的に追加されたパーツとの両方を含む、Webパーツマネージャが受け持つWebパーツをすべて識別する。
Webパーツマネージャの基本クラスのZoneプロパティは、Webパーツマネージャが現在管理しているWebパーツの集まりを識別する。各Webパーツゾーンは、OnInitでWebパーツマネージャに登録され、そのゾーンはこの集まりに追加される。Webページのライフサイクルを後のほうで、各ゾーンは、WebパーツマネージャGetWebPartsForZoneを呼び出して、そのゾーンが現在含んでいるWebパーツを発見する。WebPartZoneはWebパーツマネージャでRegisterZoneを呼び出し、任意選択で、Webパーツの初期の集まりを渡す。その後、WebPartZoneは、GetWebPartsForZoneを呼び出すことにより、特定のゾーンに割り当てられているWebパーツを発見する。後述の「GetWebPartsForZone」メソッドを使用すると、ゾーンでは、どのようなWebパーツをレンダリングすることを受け持っているのかを判別することができる。このメソッドは、WebパーツマネージャのWebパーツコレクションを評価し、どのWebパーツが適切なゾーンに属しているかを調べる。Webパーツマネージャは、WebPart.Zone、WebPart.Visible、およびWebPart.Rolesにしたがって、Webパーツをフィルタ処理する。その後、ゾーンは特定のWebパーツが非表示になっているかどうかを確認する必要がある。
Webパーツマネージャの基本クラスにはさまざまなメソッドが用意されている。Webパーツマネージャの基本クラスの「BeginWebPartEditing」メソッドは、Webパーツの編集を開始する場合に呼び出される。このメソッドが呼び出されると、WebPartEditModeChangingおよびWebPartEditModeChangedイベントが発動する。Webパーツがすでに編集モードに入っている場合は、EndWebPartEditingが呼び出される。成功すると、WebPartToEditプロパティは、Webパーツのパラメータ値に設定される。
Webパーツマネージャの基本クラスの「EndWebPartEditing」メソッドは、「BeginEditingWebPart」メソッドを終了する場合に呼び出される。このメソッドが呼び出されると、WebPartEditModeChangingおよびWebPartEditModeChangedイベントが発動する。成功すると,WebPartToEditプロパティはクリアされる。
Webパーツマネージャの基本クラスの「MoveWebPart」メソッドは、ゾーン間でWebパーツを移動する場合に呼び出される。このメソッドを呼び出すには、移動するWebパーツを指定するWebPartパラメータ、ターゲットゾーンを指定するZoneパラメータ、およびWebパーツがターゲットゾーン内で追加される位置のインデックスを指定するZoneIndexパラメータの3つのパラメータを使用する。
Webパーツマネージャの基本クラスの「Get WebPartsForZone」メソッドは、含まれているWebパーツをレンダリングする必要がある場合にそれぞれのゾーンにより呼び出される。「GetWebPartsForZone」メソッドを使用すると、ゾーンでは、どのようなWebパーツをレンダリングすることを受け持っているのかを判別することができる。このメソッドは、WebパーツマネージャのWebパーツコレクションを評価し、どのWebパーツが適切なゾーンに属しているかを調べる。Webパーツマネージャは、WebPart.Zone、WebPart.Visible、およびWebPart.Rolesにしたがって、Webパーツをフィルタ処理する。その後、ゾーンは特定のパーツが非表示になっているかどうかを確認する必要がある。このメソッドは、Webパーツのコレクションを返す。
返すWebパーツのコレクションを決定するメソッドを例示する詳細な流れ図が図13に示され、説明されている。このメソッドは、ゾーンがGetWebPartsForZoneメソッドを呼び出すと開始する(ステップ1302)。Webパーツマネージャは、それぞれのパーツを調べる(ステップ1304)。Webパーツマネージャは、Webパーツで指定されてゾーンがターゲットゾーンであるかチェックして調べる(ステップ1306)。そのゾーンがターゲットゾーンでなければ、プロセスは他のWebパーツのチェックに戻る。そのゾーンがターゲットゾーンであれば、Webパーツマネージャは、WebパーツのVisibleプロパティがtrueに設定されているかどうかチェックして調べる(ステップ1308)。Visibleプロパティがtrueに設定されていない場合、プロセスは他のWebパーツのチェックに戻る。WebパーツのVisibleプロパティがtrueに設定されている場合、Webパーツマネージャは、Webパーツが現在のロールに関して利用可能かどうかをチェックして調べる(パーソナライゼーション、カスタマイズ、および開発のシナリオなどで)(ステップ1310)。WebパーツがWebパーツのRoleプロパティで定義されているように現在のRoleに対し使用可能でない場合、プロセスは他のWebパーツのチェックに戻る。Webパーツが現在のRoleについて利用可能な場合、Webパーツは特定のゾーンのWebPartCollectionプロパティに追加される(ステップ1312)。その後、WebPartCollectionは、Webパーツマネージャに返され(ステップ1314)、プロセスはループに入りWebパーツのそれぞれをチェックし続ける。
Webパーツマネージャの基本クラスの「AddWebPart」メソッドは、WebパーツをWebページに追加する場合に呼び出される。このメソッドを使って追加されるWebパーツは、動的であるとみなされ、後で削除することができる。AddWebPartメソッドは、Webパーツのインスタンス、またはXML DWPファイルのいずれかをとる。いずれの場合も、Webパーツマネージャは、通常、動的なコントロールを作成する。メソッドのこの例では、Webページに追加するWebパーツを識別するWebPartパラメータ、Webパーツの追加先のゾーンを指定するZoneパラメータ、およびWebパーツを追加する場合にゾーン内のインデックスを指定するZoneIndexパラメータなど3つのパラメータを指定する。
Webパーツマネージャの基本クラスのRegisterConnectionEndPointメソッドは、ConnectionEndPointの登録を望んでいるWebパーツにより呼び出され、上記のような接続によりWebパーツ同士を相互接続する。このメソッドで渡されるパラメータはConnectionEndPointであり、登録するConnectionEndPointを指定する。
Webパーツマネージャの基本クラスのRemoveWebPartメソッドは、Webパーツをページから削除する場合に呼び出される。このメソッドは、パーツのパーソナライゼーション設定を削除する。ページ上で宣言されている(したがって削除できない)パーツについては、このメソッドはVisibleプロパティをfalseに設定する。ページに動的に追加されたパーツについては、動的なWebパーツへの参照が削除される。このメソッドで渡されるパラメータは、Webパーツパラメータであり、削除するWebパーツを指定する。
Webパーツマネージャの基本クラスのSetDisplayModeメソッドは、Webページの表示モード設定をする。このメソッドを実行すると、後述のWebPartDisplayModeChangingおよびWebPartDisplayModeChangedイベントが発動する。さらに、現在編集中のパーツがあるときにWebページの編集モードを終了した場合、このメソッドは、Webパーツの編集を終了する。このメソッドとともに渡されるパラメータは、DisplayModeパラメータであり、ターゲットのWebパーツDisplayModeを設定する。
Webパーツマネージャに含まれるイベントは、ClosedWebPartsChanged、DisplayModeChanged、DisplayModeChanging、WebPartAdded、WebPartEditModeChanged、WebPartEditModeChanging、およびWebPartDeletedである。Webパーツマネージャの基本クラスのClosedWebPartsChangedイベントは、パーツを閉じるか、またはCloseWebPartコレクションから削除したときに発動する。Webパーツマネージャの基本クラスのDisplayModeChangedイベントは、DisplayModeが変更された後に発動する。Webパーツマネージャの基本クラスのDisplayModeChangingイベントは、DisplayModeが変更される前に発動する。このイベントのハンドラは、EventArgumentを調整することで、DisplayModeの変更を禁止することができる。Webパーツマネージャの基本クラスのWebPartEditModeChangedイベントは、WebパーツがEditModeに入った後、またはEditModeを抜けた後に発動する。Webパーツマネージャの基本クラスのWebPartEditModeChangingイベントは、WebパーツがEditModeに入る前、またはEditModeを抜ける前に発動する。
WebパーツがWebパーツゾーンの永続化フォーマットではなくデータベースで宣言されている場合、開発者はWebパーツマネージャを拡張することができる。CreateChildControlメソッドは、他のソースからWebパーツをフェッチするように指定変更しなければならない。WebパーツマネージャのWebPartCollectionプロパティは、子コントロールに依存しているため、これらのプロパティは指定変更する必要はない。「Delete」、「Add」、および「Move」メソッドも、代替えデータストアとやり取りするように指定変更することもあり得る。
上述の基本クラス、パーツの基本クラス、ゾーンの基本クラス、およびWebパーツマネージャの基本クラスの基本機能を理解すると、それらから派生する基本クラスおよびコントロールを相互運用するという観点で他のいくつかの機能についても説明できる。この拡張された機能には、インポートおよびエクスポート機能、Webパーツ同士の接続、およびWebパーツの構成がある。
アプリケーションでは、Webパーツのプロパティのエクスポートおよびインポート機能を使用することができる。このため、ユーザは自分たちのWebパーツ設定を共有することができる。エクスポートを実行する場合、Webパーツのプロパティの完全なXML表現を作成する。このドキュメントのフォーマットは、XMLファイルであり、WebパーツがXMLのシリアル化メタデータ属性を使用して制御する。その後で、XMLドキュメントをインポートできる。通常、パーソナライズ可能とマークされたプロパティのみがパーツの最終的なXML表現に含まれる。本発明の一実施形態では、エクスポートボタンをWebパート上に作成し、エクスポート機能を利用できるようにすることが可能である。
XMLフォーマットを使用して、Webパーツのパーソナライズされたプロパティ設定を記述する。ファイルには、TypeName、AssemblyName、およびWebパーツのさまざまなプロパティに対する値が含まれる。ファイルがアップロードされると、Webパーツマネージャは、指定されたオブジェクトをインスタンス化し、ファイル内のXMLを解析し、プロパティをそのオブジェクトに適用する。このWebパーツは、ページのWebパーツコレクションに追加され、他の動的パーツとして処理することができる。
Webパーツ同士を接続することにより、情報および機能を共有するようにできる。図6の説明とともに述べているように、接続は対になっている消費者と供給者のモデルを通じて動作する。接続機能をサポートするパーツは、Webパーツマネージャに登録しなければならない。その後、Webパーツマネージャはパーツ間の接続をつなぐ必要がある。
Webパーツが接続するには、以下のステップが行われる。すなわち、消費者および供給者WebパーツがConnectionEndPointをWebパーツマネージャに登録し、Webパーツマネージャはデリゲート(delegate)を介して供給者に接続オブジェクトを問い合わせ、Webパーツマネージャは、デリゲートを介してそれらが接続されていることをWebパーツに通知し、Webパーツは認識されている接続インターフェースを介して通信する。接続は、Connectionプロパティを通じてWebパーツマネージャの永続化フォーマットで定義することができる。
接続モデルは、接続の両端での供給者と消費者に基づく。それぞれの接続は、一次接続インターフェース経由で動作する。このインターフェースは、供給者と消費者の両方により認識される。供給者側のみが、インターフェースを実装する必要があるが、それは、消費者はインターフェースのメソッド、プロパティ、およびイベント通じて単に呼び出すだけだからである。接続は、特定の供給者および消費者の意味で双方向通信を実行することが可能でない限り、通常、双方向ではない。
フレームワークは、サーバサイドの接続に対する一次的サポートを含む。サーバサイドの接続は、ページ実行時に発生し、Webページの存続期間中のみアクティブである。クライアントサイドの接続は、ポストバック(post−back)なしでクライアント上で発生する接続である。供給者と消費者の両方がクライアントサイドの通信に対するサポートを実装していれば、接続フレームワークにより、接続されているパーツはクライアント上で通信することができる。これにより、サードパーティはクライアントサイドの接続を補助して構築することができる。
WebパーツマネージャはすべてのWebパーツ通信を追跡し、初期化する役割を持つ。接続プロセスは、各WebパーツがConnectionEndPointをWebパーツマネージャに登録したときに開始する。その後、存続期間中の適切な段階において、Webパーツマネージャは供給者に対するデリゲートを呼び出し、そのときに、供給者は自分自身を返すか、または他の接続オブジェクトのインスタンスを返す。Webパーツマネージャは、接続オブジェクトを受け取った後、ConnectConsumerCallBackに対するデリゲートを呼び出す。このときに、消費者は適切な接続インターフェースを介して自由に通信することができる。
接続に参加することを望むWebパーツは、1つまたは複数のConnectionEndPointを定義し、Webパーツマネージャはこれらを使用して、Webパーツをつなぎ合わせる。各ConnectionEndPointは、パーツ上でConnectionPointを識別する複数のプロパティを含む。Nameで、ConnectionPointの名前、例えば、「SelectedRow」を定義する。Connection Interfaceにより、この接続に対し一次インターフェース、例えば、IFieldDataを定義する。CallBack Delegateは、供給者では、ConnectionInterfaceを実装するオブジェクトを返すメソッドを参照するために使用され、消費者では、ConnectionInterfaceを実装するオブジェクトを受け取るメソッドを参照するために使用される。Descriptionには、ConnectionEndPointをエンドユーザに対し説明するテキスト、例えば「Provide selected Row to....」が含まれる。
RegisterProviderは、OnInitで供給者Webパーツにより呼び出される。GetConnectionCallback引数は、Connectionオブジェクトを作成する役割を受け持つメソッドへのデリゲートである。RegisterProviderメソッドを呼び出す供給者の例を以下に示す。
class MyListPart : web part, IRow


// Register the web part as a provider
// IRow is the primary connection interface
public override OnInit(){

// Create a new ConnectionEndPoint
ConnectionEndPoint endpoint = new ConnectionEndPoint(
Typeof(IRow), new
ConnectionProviderCallback(MyCreateConnection));
endPoint.Name = "RowProvider";
endPoint.Description = "Provide Row To";

//Register the ConnectionEndPoint with the web part manager
RegisterConnectionEndPoint(endPoint);

// Function called by CreateConnection Delegate,
// Since this part implements the connection, just return this
public object MyCreateConnection(){
return(this);


/* Implement IRow
& web part functionality
*/
RegisterConsumerは、OnInitで消費者Webパーツにより呼び出される。ConnectionConsumerCallbackパラメータは、接続を受け付ける役割を受け持つメソッドへのデリゲートである。RegisterConsumerメソッドを呼び出す消費者Webパーツの例を以下に示す。
class MyFormPart : web part

// Register the web part as a consumer
// IRow is the primary connection interface
public override OnInit(){

// Create the ConnectionEndPoint
ConnectionEndPoint endpoint = new ConnectionEndPoint(
Typeof(IRow), new
ConnectionConsumerCallback(MyConnectToProvider));
endPoint.Name = "RowConsumer";
endPoint.Text = "Retrieve Row From";

// Register the ConnectionEndPoint with the web partManaager
RegisterConnectionEndPoint(endPoint);


// Function called by delegate when this connection is
established
public void MyConnectToProvider(Object obj){
// Logic to handle Connection

トランスフォーマは、一方のConnectionInterfaceを他方に変換するロジックを持つオブジェクトである。例えば、トランスフォーマを使用すると、IFieldDataを認識するパーツはIRowDataを実装するパーツと通信することができる。そのために、トランスフォーマでは、供給者によって送信されたRowDataから適切なセルを選択し、消費者に公開する。IConnectionインターフェースは、接続に関与するすべてのトランスフォーマによって実装される。これは、どの接続インターフェースが使用可能か問い合わせる場合に使用する。
トランスフォーマの一実施形態の機能を図14に示す。供給者Webパーツ1402は、Stock List Webパーツとして例示されている。供給者Webパーツ1402は、SelectedStockList ConnectionEndPointを含む。供給者Webパーツ1402は、この例ではIRowDataインターフェースである第1の通信インターフェース1406を通じてトランスフォーマ1404に結合されている。これらのインターフェースについて、以下で詳述する。トランスフォーマ1404は、第1の通信インターフェース1406とともに送信されたデータをこの例で示されている株式のグラフパーツなどの消費者Webパーツ1408により読み取り可能なフォーマットに変換する。その後、第2の通信インターフェース1410で、適切なデータが消費者Webパーツ1408に送信される。
GetConnectionInterfaceメソッドは、基本クラスWebPartClassに依存する。これにより、Webパーツは、使用しているConnectionObjectが追加Connection Interfaceを実装するかどうかをチェックすることができる。このメソッドは、一次接続インターフェースに対しトランスフォーマが存在している場合に使用すべきである。
消費者Webパーツは、供給者インターフェースを通じて供給者と通信する。このインターフェースにより、消費者が供給者とやり取りすることをどれだけ期待できるかが定義される。フレームワークによって、複数の供給者インターフェースが実装される。例えば、IFieldDataはデータの単一セルへのインターフェースを備える。IRowDataは、リストの1行へのインターフェースを備える。IRowDataインターフェースは、選択方式のアクションに適している。IListDataは、リスト全体のインターフェースを備える。このIListDataインターフェースは、データセット全体の代替え表示を行うWebパーツに適している。IFilterインターフェースを使用して、リストに対してフィルタおよび/または並べ替えの式を設定する。IModifyRowインターフェースは、リスト内の1行の挿入、更新、および削除に使用することができる。
Webパーツは、自身を登録すると、このパーツが認識する供給者インターフェースを識別する。Webパーツは、複数のインターフェースを認識していることを知らせるためにRegisterConsumer/RegisterProviderメソッドを複数回呼び出すことができる。例えば、リストパーツではIRowおよびIModifyRowの両方をサポートすることが可能である。消費者パーツも、これらのインターフェースを両方とも認識することが可能である。Webパーツはさらに、異なる意味で同じインターフェースを2回実装することを決定することもできる。例えば、リストWebパーツは、現在選択されている行とマウスがホバリングしている現在の行との両方についてIRowをサポートすることができる。これは、両方ともIRowを実装する2つの別個の接続クラスを実装することにより可能である。
これらの接続クラスのそれぞれに対し、二次的接続インターフェースのさまざまなサポートを関連付けることが可能である。例えば、IRowModifyは、選択された行についてサポートされるが、ホバリングの行についてはサポートされない。2つのWebパーツが接続されると、消費者は供給者に、どのようなインターフェースをサポートしているかを問い合わせることができる。これは、Webパーツ基本クラス上で定義されているGetConnectionInterfaceメソッドを通じて行われる。より高度な機能を接続にまたがって共有したい開発者は、消費者Webパーツが認識するカスタム供給者インターフェースを実装することができる。
GetConnectionCallbackは、実際に接続オブジェクトを作成し、返す役割を持つ機能へのデリゲートとして使用される。これは、RegisterConnectionメソッドの中で参照される。実際の呼び出しを受け取るメソッドは、GetConnectionCallbackメソッド署名と照合しなければならない。
ConnectConsumerCallbackは、特定の接続が確立されたときに呼び出されるメソッドを識別するため消費者パーツにより使用される。このデリゲートは、RegisterConsumerメソッドの中で使用される。
本発明の実施形態は、後で詳述するように、さまざまなコンピュータハードウェアをはじめとする専用または汎用コンピュータを備えることができる。
本発明の範囲内の実施形態はさらに、格納されているコンピュータ実行可能命令またはデータ構造体を搬送するまたは保持するためのコンピュータ可読媒体も含む。このようなコンピュータ可読媒体は、汎用または専用コンピュータからアクセスできる使用可能な媒体とすることができる。例として、ただしこれに限るわけではないが、このようなコンピュータ可読媒体はRAM、ROM、EEPROM、CD−ROM、またはその他の光ディスク記憶装置、磁気ディスク記憶装置またはその他の磁気記憶デバイス、またはコンピュータ実行可能命令またはデータ構造体の形で目的のプログラムコード手段を搬送または格納するために使用できる、専用または汎用コンピュータによりアクセスできる、その他の媒体を備えることができる。ネットワークまたは他の通信接続(ハード配線、無線、またはハード配線と無線の組み合わせ)を介して情報をコンピュータに転送または供給すると、コンピュータはその接続をコンピュータ可読媒体として適切に認識する。したがって、そのような接続は、コンピュータ可読媒体と呼んで間違いない。上記の組み合わせも、コンピュータ可読媒体の範囲に含めなければならない。コンピュータ実行可能命令は、例えば、汎用コンピュータ、専用コンピュータ、または専用処理デバイスに特定の機能または機能群を実行させる命令およびデータを含む。
以下の説明は、本発明を実施できる適当なコンピューティング環境について簡潔に述べた一般的な説明である。必要というわけではないが、本発明について、ネットワーク環境でコンピュータによって実行されるプログラムモジュールなどのコンピュータ実行可能命令の一般的文脈において説明する。一般に、プログラムモジュールは、特定のタスクを実行する、または特定の抽象データ型を実装するルーチン、プログラム、オブジェクト、コンポーネント、データ構造などを含む。コンピュータ実行可能命令、関連するデータ構造体、およびプログラムモジュールは、本明細書で開示している方法のステップを実行するプログラムコード手段の例を表している。このような実行可能命令または関連するデータ構造体の特定の並びは、そのようなステップで説明される機能を実装するための対応する動作の例を表す。
当業者には、本発明が、パーソナルコンピュータ、携帯型デバイス、マルチプロセッサシステム、マイクロプロセッサベースのまたはプログラム可能な家電製品、ネットワークPC、ミニコンピュータ、メインフレームコンピュータなどをはじめとする、さまざまな種類のコンピュータシステム構成とともにネットワークコンピューティング環境で実施できることは明白であろう。また、本発明は、通信ネットワークを通じて(ハード配線リンク、無線リンク、またはハード配線と無線リンクの組み合わせにより)リンクされているローカルおよびリモート処理デバイスによりタスクが実行される分散コンピューティング環境で実施することもできる。分散コンピューティング環境では、プログラムモジュールは、ローカルおよびリモートのメモリ記憶デバイスに置くことができる。
本発明は、本発明の精神または本質的特徴から逸脱することなく他の特定の形で実現することが可能である。説明した実施形態は、すべての点で、説明のみを目的としており、制限することを目的としていないとみなすべきである。したがって、本発明の範囲は、上記の説明ではなく、添付の特許請求の範囲で指示される。請求項の均等物の意味および範囲内にあるすべての変更は本発明の範囲に含まれるものとする。
モジュール型Webポータルの一例を示す図である。 図1に示されているWebポータルのゾーンレイアウトを示す図である。 モジュール型Webポータルの他の例を示す図である。 Webページ上のWebパーツをパーソナライズするためのユーザインターフェースの一例を示す図である。 WebページにWebパーツを追加するためのユーザインターフェースの一例を示す図である。 WebページにWebパーツを追加するためのユーザインターフェースの一例を示す図である。 Webページ上の2つのWebパーツの間の接続を示す図である。 Webページ作成フレームワークで使用されるクラスおよび基本クラスの階層を示す図である。 外観、レイアウト、および動作を制御するWebページ上のパーツを示す図である。 外観、レイアウト、および動作を制御するWebページ上のパーツを示す図である。 外観、レイアウト、および動作を制御するWebページ上のパーツを示す図である。 Webページ作成フレームワークで使用されるゾーンコントロールのクラスおよび基本クラスの階層を示す図である。 本発明の一実施形態を使用して作成できるゾーンレイアウトおよびWebパーツレイアウトを示す図である。 本発明の一実施形態を使用して作成できるゾーンの水平レイアウトを示す図である。 本発明の一実施形態を使用して作成できるゾーンの垂直レイアウトを示す図である。 動詞アイコンのグラフィックの例を示す図である。 ゾーン内に配置するWebパーツを決定する流れ図である。 一方のWebパーツを他方のWebパーツに接続するために使用されるトランスフォーマを示す図である。
符号の説明
100、300、400、500 Webページ
102 ウエルカムWebパーツ
104 気象Webパーツ
106 株式Webパーツ
108 検索Webパーツ
110 リンクWebパーツ
112、405 タイトル
114 フレーム
116 動詞
200 上ゾーン
202 左ゾーン
204 右ゾーン
402 編集リンク
403、522 Webパーツ
404 エディタパーツ
406 エディタゾーン
408 「Title」テキストボックス
410 「Frame State」ドロップダウンメニュー
412 「Frame Type」ドロップダウンメニュー
414 「Symbol」テキストボックス
418 閉じる動詞ボタン
420 「OK」動詞ボタン
422 「Cancel」動詞ボタン
424 フッタ
502、520 カタログパーツ
504 カタログゾーン
506 テキストボックス
508 「Add」ボタン
510 カタログ
512 カタログリンク
524 Webパーツタイトル
526 パーツアイコン
528 ライブラリ
530 ライブラリリンク
532 ページリンク
534 ページ別アイテムインジケータ
536 「Add」動詞
538 ドロップダウン選択ボックス
600 株式リストWebパーツ
602 株式
604 株式グラフWebパーツ
702 Part基本クラス
704 CatalogPart基本クラス
706 WebPart基本クラス
708 EditorPart基本クラス
710 PropertyGridEditorPart
712 BehaviorEditorPart
714 AppearanceEditorPart
716 LayoutEditorPart
718 3rdParty CatalogPartPart
900 Zone基本クラス
902 WebPartZone基本クラス
904 EditorZone基本クラス
906 CatalogZone基本クラス
908 WebPartZone
1002 ゾーンフレーム
1004 タイトルバー
1006 パーツタイトル領域
1008 パーツ動詞領域
1010 パーツレンダリングコンテンツ
1012 パーツフレーム
1102 水平にレイアウトされたゾーン
1104 垂直にレイアウトされたゾーン
1302 GetWebPartsForZoneメソッド
1306 ターゲットゾーン
1402 供給者Webパーツ
1404 トランスフォーマ
1408 消費者Webパーツ

Claims (49)

  1. モジュール型Webアプリケーションを作成するフレームワークであって、
    1つまたは複数のパーツコントロールであって、各前記パーツコントロールが他のパーツコントロールのように各パーツをレンダリングすることを許可する1つまたは複数のプロパティを備える1つまたは複数のパーツコントロールと、
    1つまたは複数のゾーンコントロールであって、各前記ゾーンコントロールが各ゾーン内の前記1つまたは複数のパーツコントロールのうちの少なくとも1つを配列する1つまたは複数のゾーンコントロールと、
    前記1つまたは複数のパーツコントロールのうちのどれが各前記ゾーンコントロール内にあるか追跡するWebパーツマネージャと
    を備えることを特徴とするフレームワーク。
  2. 各前記パーツコントロールの1つまたは複数のプロパティにより、特定のゾーンコントロールが前記特定のゾーンコントロール内の各前記パーツコントロールの一貫性のあるユーザインターフェースをレンダリングする動作を有効にし、各前記パーツコントロールの機能は異なることを特徴とする請求項1に記載のフレームワーク。
  3. 前記パーツコントロールは、1つまたは複数のパーツ基本クラスから作成されることを特徴とする請求項1に記載のフレームワーク。
  4. 前記1つまたは複数のパーツ基本クラスは、パーツ基本クラス、前記パーツ基本クラスから派生するWebパーツ基本クラス、前記パーツ基本クラスから派生するカタログパーツ基本クラス、および前記パーツ基本クラスから派生するエディタパーツ基本クラスを含むことを特徴とする請求項3に記載のフレームワーク。
  5. 前記エディタパーツ基本クラスは、個人設定のうち1つまたは複数を含むcontrolプロパティ、前記1つまたは複数のパーツコントロールのlayoutプロパティ、および前記1つまたは複数のパーツコントロールのbehaviorプロパティを設定するモジュール型コントロールに使用されることを特徴とする請求項4に記載のフレームワーク。
  6. 前記カタログパーツ基本クラスは、少なくとも1つの前記ゾーンコントロールに追加することができるWebパーツのカタログを供給するモジュール型コントロールに使用されることを特徴とする請求項4に記載のフレームワーク。
  7. 前記1つまたは複数のゾーンコントロールは、1つまたは複数のゾーン基本クラスから作成されることを特徴とする請求項5に記載のフレームワーク。
  8. 前記1つまたは複数のゾーン基本クラスは、前記パーツ基本クラスから継承するコントロールをレイアウトするために使用されるゾーン基本クラス、前記ゾーン基本クラスから派生し、Webパーツコントロールに使用されるWebパーツゾーン基本クラス、前記ゾーン基本クラスから派生し、エディタコントロールをレイアウトするために使用されるエディタパーツコントロールをレイアウトするために使用されるエディタゾーン基本クラス、およびカタログコントロールに使用されるカタログパーツ基本クラスを含むことを特徴とする請求項7に記載のフレームワーク。
  9. 前記Webパーツマネージャはパーツコントロールであり、各前記ゾーンコントロールはWebパーツマネージャに登録されることを特徴とする請求項1に記載のフレームワーク。
  10. 前記Webパーツマネージャは前記1つまたは複数のパーツコントロール間の接続を追跡し、前記Webパーツマネージャは、Webページへの前記パーツコントロールの追加、Webページからの削除、Webページからの移動を行うことを特徴とする請求項9に記載のフレームワーク。
  11. 前記1つまたは複数のパーツコントロールの少なくとも一部は他の前記パーツコントロールと通信するためのインターフェースを備えることを特徴とする請求項1に記載のフレームワーク。
  12. 前記1つまたは複数のパーツコントロールの少なくとも一部は前記インターフェースを前記Webパーツマネージャに登録することを特徴とする請求項11に記載のフレームワーク。
  13. 前記1つまたは複数のパーツコントロールの少なくとも一部は、他のパーツコントロールと通信するための複数のインターフェースを備え、前記1つまたは複数のパーツコントロールの少なくとも一部は、前記複数のインターフェースを前記Webパーツマネージャに登録することを特徴とする請求項1に記載のフレームワーク。
  14. 前記複数のインターフェースの少なくとも一部は、意味は異なるが前記インターフェースと同じインターフェースであることを特徴とする請求項13に記載のフレームワーク。
  15. 開発者とユーザの両方によりカスタマイズ可能なWebページを作成するフレームワークであって、
    Webパーツ、カタログパーツ、およびエディタパーツのうち1つまたは複数を含むパーツコントロールの派生元であるパーツ基本クラスと、
    ゾーン基本クラスであって、
    前記Webパーツゾーンに含まれるWebパーツを配列するために使用されるWebパーツゾーンと、
    カタログゾーンであって、前記カタログゾーン内に含まれるカタログパーツを配列するために使用されるカタログゾーンと、
    エディタゾーンであって、前記エディタゾーン内に含まれるエディタパーツを配列するために使用されるエディタゾーンと
    のうちの1つまたは複数を備えるゾーンコントロールの派生元であるゾーン基本クラスを備えることを特徴とするフレームワーク。
  16. 前記パーツコントロールの各インスタンスは、前記ゾーンコントロールのインスタンス内で定義されることを特徴とする請求項15に記載のフレームワーク。
  17. 特定のゾーンコントロール内のパーツコントロールの各インスタンスは類似のユーザインターフェースを備えることを特徴とする請求項15に記載のフレームワーク。
  18. 前記パーツコントロールの少なくとも一部は、同じ前記ゾーンコントロール内、または他の前記ゾーンコントロール内の他の前記パーツコントロールと接続するための接続エンドポイントを備えることを特徴とする請求項15に記載のフレームワーク。
  19. 前記エディタゾーンは、前記パーツ基本クラス内で定義されているプロパティのユーザ入力が可能なように適合されていることを特徴とする請求項15に記載のフレームワーク。
  20. 前記プロパティはエクスポート可能であることを特徴とする請求項19に記載のフレームワーク。
  21. 前記プロパティのユーザ入力は、XMLドキュメントを使用してエクスポートされることを特徴とする請求項20に記載のフレームワーク。
  22. Webパーツマネージャクラスをさらに含み、前記Webパーツマネージャクラスは前記ゾーンコントロール内に含まれるパーツコントロールのインスタンスを追跡することを特徴とする請求項15に記載のフレームワーク。
  23. 特定のパーツコントロールを同じ前記ゾーンコントロール内で、または別の前記ゾーンコントロールへドラッグ&ドロップすることができることを特徴とする請求項22に記載のフレームワーク。
  24. 特定のカタログパーツは、特定のゾーンコントロールに追加されるユーザによって選択できるWebパーツのリストを供給するように適合され、前記特定のカタログパーツは、Webページの前記特定のゾーンコントロールに追加される前記Webパーツのリストからユーザが選択するための手段を備えることを特徴とする請求項15に記載のフレームワーク。
  25. 各前記パーツコントロールは、永続化フォーマットファイル内で宣言されることを特徴とする請求項15に記載のフレームワーク。
  26. 前記パーツ基本クラスは、
    各前記パーツコントロールが類似のユーザインターフェースによりレンダリングされるようにするプロパティと、
    特定のゾーンコントロールにより前記特定のゾーン内の各パーツコントロールの回りにユーザインターフェースをレンダリングする方法を定義するframetypeプロパティと、
    特定のパーツコントロールの使用が許可されるユーザを定義するrolesプロパティと、
    各前記パーツコントロールに対する1つまたは複数のアイコンと
    のうちの1つまたは複数を備えることを特徴とする請求項15に記載のフレームワーク。
  27. 各前記Webパーツは、
    他のWebパーツと通信するための接続インターフェースと、
    前記Webパーツのパーソナライゼーションを可能にするenable personalizationプロパティと、
    helpプロパティと、
    エンドユーザに公開するユーザインターフェースを決定する1つまたは複数のallowプロパティと、
    Webパーツが最小化、最大化、または通常であることを定義するフレーム状態と、
    trueの場合に前記Webパーツが非表示になるhiddenプロパティと、
    前記Webパーツを含むゾーンコントロールを識別するzoneプロパティと、
    前記ゾーンコントロールのIDを含むゾーンIDと、
    前記ゾーンコントロール内の他のWebパーツに関して前記ゾーンコントロールのインデックスを含むゾーンインデックスと
    のうちの1つまたは複数を含むことを特徴とする請求項15に記載のフレームワーク。
  28. 前記エディタパーツは、
    タイトル、高さ、幅、フレーム状態、およびフレームタイプの1つまたは複数を含む、Webパーツのuser interfaceプロパティを設定する外観エディタパーツと、
    hiddenプロパティ、zoneプロパティ、およびzone indexプロパティの1つまたは複数を含む、Webパーツのlayoutプロパティを設定するレイアウトエディタと、
    behaviorプロパティを設定するビヘイビアエディタパーツと、
    Webブラウザで参照可能とマークされているプロパティを表示するプロパティグリッドブラウザエディタパーツと、
    カスタムエディタパーツと
    のうちの1つまたは複数であることを特徴とする請求項27に記載のフレームワーク。
  29. 前記カタログパーツは、エンドユーザが新規WebパーツをWebページに追加できるようにするユーザインターフェースを公開することを特徴とする請求項15に記載のフレームワーク。
  30. 特定のWebページ上のすべてのパーツコントロールを管理するWebパーツマネージャさらにを含み、前記Webパーツマネージャは、
    前記特定のWebページ上のWebパーツコントロールを追跡すること、
    前記特定のWebページ上のWebパーツゾーンコントロールを追跡すること、
    前記特定のWebページ上のパーツコントロール間の接続を追跡すること、
    パーツコントロール間の通信を開始すること、および
    前記特定のWebページの編集状態を追跡すること
    のうちの1つまたは複数を受け持つことを特徴とする請求項15に記載のフレームワーク。
  31. 前記Webパーツマネージャはパーツコントロールの追加、削除、および移動を行うための1つまたは複数のメソッドを公開することを特徴とする請求項30に記載のフレームワーク。
  32. 前記1つまたは複数のメソッドは、カタログパーツ、エディタパーツ、およびゾーンコントロールにより呼び出されることを特徴とする請求項31に記載のフレームワーク。
  33. 前記ユーザインターフェースは、すべてのユーザについて新規WebパーツをWebページに追加するため管理者が使用することができることを特徴とする請求項29に記載のフレームワーク。
  34. 前記プロパティのユーザ入力により、すべてのユーザのプロパティが設定され、前記プロパティのユーザ入力は、管理者によって実行されることを特徴とする請求項19に記載のフレームワーク。
  35. 複数のプロパティは前記パーツ基本クラス内で定義され、前記複数のプロパティはWebページ開発者により永続化フォーマットで定義可能であることを特徴とする請求項15に記載のフレームワーク。
  36. モジュール型で、開発者またはエンドユーザによるカスタマイズが可能なWebページを作成する方法であって、
    少なくとも1つのゾーンコントロールを永続化フォーマットファイルの中で宣言することであって、各前記ゾーンコントロールはゾーン基本クラスから派生すること、
    少なくとも1つのWebパーツコントロールを各前記ゾーンコントロールの中で宣言することであって、前記Webパーツコントロールはパーツクラスから派生すること、および
    各前記ゾーンコントロールにより、各ゾーンコントロールのユーザインターフェース要素および前記少なくとも1つのWebパーツコントロールのいくつかのユーザインターフェース要素をレンダリングし、それぞれの少なくとも1つのWebパーツコントロールは各ゾーン内で類似の外観を備えること
    を含むことを特徴とする方法。
  37. 前記ゾーンコントロール内で少なくとも1つのWebパーツコントロールを宣言することは、前記少なくとも1つのWebパーツコントロールをコントロールフォーマットファイル内で宣言することをさらに含むことを特徴とする請求項36に記載の方法。
  38. Webマネージャパーツを宣言することをさらに含み、前記Webマネージャパーツはそれぞれの少なくとも1つのゾーンコントロール内で前記少なくとも1つのWebパーツコントロールを追跡することを特徴とする請求項37に記載の方法。
  39. 第1のWebパーツコントロールと第2のWebパーツコントロールとの間の通信を開始する前記Webマネージャパーツをさらに含み、前記第1のWebパーツコントロールは前記第2のWebパーツコントロールと通信することを特徴とする請求項38に記載の方法。
  40. 特定のWebパーツまたは前記特定のWebパーツのプロパティをエクスポートすることをさらに含むことを特徴とする請求項36に記載の方法。
  41. 特定のWebパーツまたは前記特定のWebパーツのプロパティをインポートすることをさらに含むことを特徴とする請求項36に記載の方法。
  42. さらにインポートされたプロパティを使用して現在のWebパーツコントロールのプロパティの少なくとも一部を設定することを含むことを特徴とする請求項41に記載の方法。
  43. 各前記Webパーツコントロールにアクセスできるユーザを指定するため各前記Webパーツコントロールのrolesプロパティを定義することを含むことを特徴とする請求項36に記載の方法。
  44. 前記パーツクラスから派生するエディタパーツを使用して特定のWebパーツコントロールを編集することであって、前記エディタパーツはエディタゾーン内に含まれること、
    前記パーツクラスから派生するカタログパーツを使用して他のWebパーツコントロールを特定のゾーンに追加し、前記カタログパーツはカタログゾーン内に含まれること、
    選択されたWebパーツコントロールをゾーンから削除すること、
    各前記Webパーツコントロールの1つまたは複数のプロパティをエンドユーザがカスタマイズできるようにすること、および
    エンドユーザがWebパーツコントロールに対しパーソナライゼーションを共有することを許可すること
    のうち1つまたは複数を含むことを特徴とする請求項36に記載の方法。
  45. 前記パーツコントロールのプロパティを使用してエンドユーザが前記パーツコントロールをパーソナライズできるようにすることを含むことを特徴とする請求項36に記載の方法。
  46. 前記パーツコントロールのプロパティを使用してエンドユーザによる前記パーツコントロールのパーソナライズを禁止することを含むことを特徴とする請求項36に記載の方法。
  47. 複数のプロパティを前記永続化フォーマットで宣言し、すべてのエンドユーザへの前記ユーザインターフェース要素のレンダリングを制御することを含むことを特徴とする請求項36に記載の方法。
  48. 各前記ゾーンコントロールのユーザインターフェース要素および前記少なくとも1つのWebパーツコントロールのいくつかのユーザインターフェース要素と情報をやり取りして、すべてのユーザについて前記類似の外観を制御することを含むことを特徴とする請求項36に記載の方法。
  49. 請求項36に記載の方法を実行するためのコンピュータ実行可能命令を備えることを特徴とするコンピュータ可読媒体。
JP2004181697A 2003-06-19 2004-06-18 モジュール型Webアプリケーションを作成するためのフレームワーク Expired - Fee Related JP4861611B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/465,269 US7281202B2 (en) 2003-06-19 2003-06-19 Framework for creating modular web applications
US10/465,269 2003-06-19

Publications (2)

Publication Number Publication Date
JP2005011355A true JP2005011355A (ja) 2005-01-13
JP4861611B2 JP4861611B2 (ja) 2012-01-25

Family

ID=33418214

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004181697A Expired - Fee Related JP4861611B2 (ja) 2003-06-19 2004-06-18 モジュール型Webアプリケーションを作成するためのフレームワーク

Country Status (10)

Country Link
US (1) US7281202B2 (ja)
EP (1) EP1489494A3 (ja)
JP (1) JP4861611B2 (ja)
KR (1) KR101085720B1 (ja)
CN (1) CN1627257A (ja)
AU (1) AU2004202329B2 (ja)
BR (1) BRPI0402399A (ja)
CA (1) CA2471615C (ja)
MX (1) MXPA04006074A (ja)
RU (1) RU2370809C2 (ja)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100412793C (zh) * 2005-12-20 2008-08-20 北京大学 一种J2EE应用服务器中Web容器的集成系统
JP2010009145A (ja) * 2008-06-24 2010-01-14 Hitachi Information Systems Ltd ウェブページ生成システム及びウェブページ生成プログラム
JP2012014209A (ja) * 2010-06-29 2012-01-19 Yahoo Japan Corp プロフィール表示装置、方法、プログラム及びシステム
JP2015125769A (ja) * 2014-03-25 2015-07-06 利仁 曽根 入力支援方法
JP2016511889A (ja) * 2013-02-10 2016-04-21 ウィックス.コム リミテッド. サードパーティアプリケーションの通信api
CN105940391A (zh) * 2013-12-04 2016-09-14 维克斯网有限公司 第三方应用活动数据收集
JP2021034058A (ja) * 2019-08-16 2021-03-01 株式会社 ディー・エヌ・エー 情報処理プログラム、情報処理方法及び情報処理システム
JP2021033386A (ja) * 2019-08-16 2021-03-01 株式会社 ディー・エヌ・エー 情報処理プログラム、情報処理方法及び情報処理システム

Families Citing this family (119)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6355243B1 (en) * 1999-11-13 2002-03-12 Bayer Corporation Method of thrombolysis by local delivery of active plasmin
US7464369B1 (en) * 2003-09-11 2008-12-09 Microsoft Corporation System and method for customizing extensible web part menus
US7493592B2 (en) 2003-10-24 2009-02-17 Microsoft Corporation Programming interface for a computer platform
US20050149549A1 (en) * 2003-12-31 2005-07-07 Jos Jaspers Content management in web environments
US7376739B2 (en) * 2004-02-11 2008-05-20 International Business Machines Corporation Persistence of inter-application communication patterns and behavior under user control
US20050228775A1 (en) * 2004-04-02 2005-10-13 Yahoo! Inc. Method and apparatus for adaptive personalization of navigation
US8296665B2 (en) * 2004-05-11 2012-10-23 Sap Ag Developing and executing applications with configurable patterns
US20050257167A1 (en) * 2004-05-11 2005-11-17 International Business Machines Corporation Embedded Web dialog
US8312382B2 (en) * 2004-05-11 2012-11-13 Sap Ag Developing and executing applications with configurable patterns
US9026578B2 (en) 2004-05-14 2015-05-05 Microsoft Corporation Systems and methods for persisting data between web pages
US20050262117A1 (en) * 2004-05-21 2005-11-24 Bea Systems, Inc. Lightweight portal
US8453065B2 (en) 2004-06-25 2013-05-28 Apple Inc. Preview and installation of user interface elements in a display environment
US8566732B2 (en) * 2004-06-25 2013-10-22 Apple Inc. Synchronization of widgets and dashboards
US7490295B2 (en) * 2004-06-25 2009-02-10 Apple Inc. Layer for accessing user interface elements
US8302020B2 (en) 2004-06-25 2012-10-30 Apple Inc. Widget authoring and editing environment
US7761800B2 (en) 2004-06-25 2010-07-20 Apple Inc. Unified interest layer for user interface
US8239749B2 (en) 2004-06-25 2012-08-07 Apple Inc. Procedurally expressing graphic objects for web pages
US20060026668A1 (en) * 2004-07-30 2006-02-02 Microsoft Corporation Web application framework
US8694912B2 (en) 2004-09-08 2014-04-08 Sap Ag Home and area pages
US8140975B2 (en) 2005-01-07 2012-03-20 Apple Inc. Slide show navigation
US20060230335A1 (en) * 2005-04-08 2006-10-12 Ilja Fischer Linking user interface frames
US7774332B2 (en) * 2005-04-12 2010-08-10 International Business Machines Corporation Enabling interactive integration of network-accessible applications in a content aggregation framework
US8543931B2 (en) 2005-06-07 2013-09-24 Apple Inc. Preview including theme based installation of user interface elements in a display environment
US8370770B2 (en) 2005-06-10 2013-02-05 T-Mobile Usa, Inc. Variable path management of user contacts
US8359548B2 (en) 2005-06-10 2013-01-22 T-Mobile Usa, Inc. Managing subset of user contacts
US8370769B2 (en) 2005-06-10 2013-02-05 T-Mobile Usa, Inc. Variable path management of user contacts
US7685530B2 (en) 2005-06-10 2010-03-23 T-Mobile Usa, Inc. Preferred contact group centric interface
US20070050703A1 (en) * 2005-08-26 2007-03-01 Pierre Lebel Methods, systems and computer program products for analyzing a hypertext markup language (HTML) document
US8176408B2 (en) * 2005-09-12 2012-05-08 Microsoft Corporation Modularized web provisioning
US7861219B2 (en) 2005-09-12 2010-12-28 Microsoft Corporation Script application framework
US7954064B2 (en) 2005-10-27 2011-05-31 Apple Inc. Multiple dashboards
US7752556B2 (en) 2005-10-27 2010-07-06 Apple Inc. Workflow widgets
US7743336B2 (en) 2005-10-27 2010-06-22 Apple Inc. Widget security
US9104294B2 (en) 2005-10-27 2015-08-11 Apple Inc. Linked widgets
US8543824B2 (en) 2005-10-27 2013-09-24 Apple Inc. Safe distribution and use of content
US7707514B2 (en) 2005-11-18 2010-04-27 Apple Inc. Management of user interface elements in a display environment
US7979789B2 (en) * 2005-12-19 2011-07-12 Microsoft Corporation System and method of replacing a delegate component associated with a delegate modular software component at software execution time
US8046732B2 (en) 2005-12-30 2011-10-25 Sap Ag Distribution of data changes in pattern configurations
US20070157105A1 (en) * 2006-01-04 2007-07-05 Stephen Owens Network user database for a sidebar
US7676505B2 (en) * 2006-01-27 2010-03-09 International Business Machines Corporation System, method and computer program product for shared user tailoring of websites
US20070220035A1 (en) * 2006-03-17 2007-09-20 Filip Misovski Generating user interface using metadata
US7716592B2 (en) 2006-03-30 2010-05-11 Microsoft Corporation Automated generation of dashboards for scorecard metrics and subordinate reporting
US8261181B2 (en) 2006-03-30 2012-09-04 Microsoft Corporation Multidimensional metrics-based annotation
US7840896B2 (en) 2006-03-30 2010-11-23 Microsoft Corporation Definition and instantiation of metric based business logic reports
US8190992B2 (en) * 2006-04-21 2012-05-29 Microsoft Corporation Grouping and display of logically defined reports
US20070250478A1 (en) * 2006-04-23 2007-10-25 Knova Software, Inc. Visual search experience editor
US7716571B2 (en) 2006-04-27 2010-05-11 Microsoft Corporation Multidimensional scorecard header definition
KR101058481B1 (ko) 2006-05-16 2011-08-24 리서치 인 모션 리미티드 애플리케이션의 사용자 인터페이스를 스킨화하는 시스템 및방법
US8255281B2 (en) 2006-06-07 2012-08-28 T-Mobile Usa, Inc. Service management system that enables subscriber-driven changes to service plans
US10013484B2 (en) * 2006-09-11 2018-07-03 International Business Machines Corporation User driven computerized selection, categorization, and layout of live content components
US7962892B2 (en) * 2006-12-28 2011-06-14 Sap Ag Designtime services for multiple patterns
US20080168368A1 (en) * 2007-01-07 2008-07-10 Louch John O Dashboards, Widgets and Devices
US9058307B2 (en) 2007-01-26 2015-06-16 Microsoft Technology Licensing, Llc Presentation generation using scorecard elements
US8321805B2 (en) * 2007-01-30 2012-11-27 Microsoft Corporation Service architecture based metric views
US8495663B2 (en) 2007-02-02 2013-07-23 Microsoft Corporation Real time collaboration using embedded data visualizations
US20090106706A1 (en) * 2007-02-07 2009-04-23 Donald Catherine uSite - Online software that generates individual websites for personal of commercial business use
WO2008126245A1 (ja) * 2007-03-30 2008-10-23 I-N Information Systems, Ltd. グラフ表示装置、プログラム
US8954871B2 (en) 2007-07-18 2015-02-10 Apple Inc. User-centric widgets and dashboards
US8667415B2 (en) 2007-08-06 2014-03-04 Apple Inc. Web widgets
US8473834B1 (en) * 2007-11-08 2013-06-25 Hewlett-Packard Development Company, L.P. Dynamic portal menu and message system and method
EP2184679A1 (en) * 2008-10-30 2010-05-12 Alcatel Lucent Method for operating an ending web-widget with data retrieved from a starting web-widget
US9495471B2 (en) * 2008-12-04 2016-11-15 International Business Machines Corporation Optimize view elements sizes to maximize most data viewed in a multiple view elements GUI
USD631891S1 (en) 2009-03-27 2011-02-01 T-Mobile Usa, Inc. Portion of a display screen with a user interface
US9355382B2 (en) 2009-03-27 2016-05-31 T-Mobile Usa, Inc. Group based information displays
US8893025B2 (en) 2009-03-27 2014-11-18 T-Mobile Usa, Inc. Generating group based information displays via template information
US9369542B2 (en) 2009-03-27 2016-06-14 T-Mobile Usa, Inc. Network-based processing of data requests for contact information
USD636403S1 (en) * 2009-03-27 2011-04-19 T-Mobile Usa, Inc. Portion of a display screen with a user interface
US9195966B2 (en) 2009-03-27 2015-11-24 T-Mobile Usa, Inc. Managing contact groups from subset of user contacts
USD631890S1 (en) 2009-03-27 2011-02-01 T-Mobile Usa, Inc. Portion of a display screen with a user interface
US8577350B2 (en) 2009-03-27 2013-11-05 T-Mobile Usa, Inc. Managing communications utilizing communication categories
US9210247B2 (en) 2009-03-27 2015-12-08 T-Mobile Usa, Inc. Managing contact groups from subset of user contacts
US8726147B1 (en) * 2010-03-12 2014-05-13 Symantec Corporation Systems and methods for restoring web parts in content management systems
CN102207857B (zh) * 2010-03-29 2014-08-27 日电(中国)有限公司 Gui元素识别方法、装置及系统
US8930830B2 (en) 2010-04-01 2015-01-06 Business Objects Software Limited Context-aware composites of functional modules
US20110314370A1 (en) * 2010-06-18 2011-12-22 Microsoft Corporation Tiered pageview generation for computing devices
US20120030581A1 (en) * 2010-07-28 2012-02-02 Weiyi Cui Mashup Component Framework for Business Enterprise User Interfaces
JP5892746B2 (ja) * 2010-09-29 2016-03-23 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation 個別化コンテンツ・レイアウトのための方法、システム、およびプログラム(個別化コンテンツ・レイアウトのためのシステムおよび方法)
FI20106336A0 (fi) * 2010-12-17 2010-12-17 Pocketsoft Oy Räätälöidyn sovelluksen tuottaminen käyttäjän päätelaitteelle
US9176742B2 (en) * 2010-12-27 2015-11-03 Microsoft Technology Licensing, Llc Converting desktop applications to web applications
US8732569B2 (en) 2011-05-04 2014-05-20 Google Inc. Predicting user navigation events
US9843665B2 (en) 2011-05-27 2017-12-12 Microsoft Technology Licensing, Llc Display of immersive and desktop shells
US10417018B2 (en) * 2011-05-27 2019-09-17 Microsoft Technology Licensing, Llc Navigation of immersive and desktop shells
US9769285B2 (en) 2011-06-14 2017-09-19 Google Inc. Access to network content
US8788711B2 (en) 2011-06-14 2014-07-22 Google Inc. Redacting content and inserting hypertext transfer protocol (HTTP) error codes in place thereof
US8650139B2 (en) 2011-07-01 2014-02-11 Google Inc. Predicting user navigation events
US8745212B2 (en) 2011-07-01 2014-06-03 Google Inc. Access to network content
US8744988B1 (en) 2011-07-15 2014-06-03 Google Inc. Predicting user navigation events in an internet browser
US8655819B1 (en) 2011-09-15 2014-02-18 Google Inc. Predicting user navigation events based on chronological history data
US8600921B2 (en) 2011-09-15 2013-12-03 Google Inc. Predicting user navigation events in a browser using directed graphs
US9104664B1 (en) 2011-10-07 2015-08-11 Google Inc. Access to search results
US9584579B2 (en) 2011-12-01 2017-02-28 Google Inc. Method and system for providing page visibility information
US8793235B2 (en) 2012-01-19 2014-07-29 Google Inc. System and method for improving access to search results
US10296558B1 (en) * 2012-02-27 2019-05-21 Amazon Technologies, Inc. Remote generation of composite content pages
CN102629203A (zh) * 2012-03-08 2012-08-08 北京神州数码思特奇信息技术股份有限公司 一种多操作平台的配置方法及装置
US9946792B2 (en) 2012-05-15 2018-04-17 Google Llc Access to network content
US8887239B1 (en) 2012-08-08 2014-11-11 Google Inc. Access to network content
US9141722B2 (en) 2012-10-02 2015-09-22 Google Inc. Access to network content
CN102999336A (zh) * 2012-11-19 2013-03-27 北京奇虎科技有限公司 应用界面实现方法和系统
CN103019538A (zh) * 2012-11-19 2013-04-03 北京奇虎科技有限公司 一种在终端中实现应用界面的方法和系统
US9292502B2 (en) * 2013-02-28 2016-03-22 Web Computing AS Modular platform for web applications and systems
IN2013DE01405A (ja) * 2013-05-10 2015-07-10 Unisys Corp
US10025856B2 (en) * 2013-06-14 2018-07-17 Target Brands, Inc. Dynamic landing pages
US9886168B2 (en) * 2013-06-24 2018-02-06 Infosys Limited Method and system for scenario-driven standard-compliant user interface design and development for effort estimation
US20150082208A1 (en) * 2013-09-16 2015-03-19 Uwe D. Klinger Multi-level user interface theming
CN105706040B (zh) * 2013-11-05 2019-10-15 瑞典爱立信有限公司 一种处理电子文件的方法、系统和计算机程序产品
CN103984548B (zh) * 2014-05-14 2018-03-06 陕西上讯信息技术有限公司 一种web应用前端框架及其构建方法、系统
CN104267954B (zh) * 2014-09-26 2018-02-16 青岛海信电器股份有限公司 一种用户界面中所包含的部件的生成方法和装置
US20160110321A1 (en) * 2014-10-17 2016-04-21 Karol Kalisz Application customization through linked embedded areas
CN105739996A (zh) * 2016-03-03 2016-07-06 南京南瑞继保电气有限公司 一种嵌入式装置研发用户分步开发方法
USD837239S1 (en) * 2016-07-06 2019-01-01 Fujifilm Corporation Digital camera display panel with transitional graphical user interface
US10409565B2 (en) * 2017-03-30 2019-09-10 Ice Tea Group Llc Pixel perfect real-time web application framework
CN110599112B (zh) * 2018-06-12 2023-10-27 百融至信(北京)科技有限公司 一种网络页面开发、维护方法和装置
US10331424B1 (en) * 2018-07-27 2019-06-25 Modo Labs, Inc. User interface development through web service data declarations
EP3726373B1 (en) * 2019-04-15 2024-03-06 Mendix Technology B.V. Creating an app method and system
USD961617S1 (en) * 2020-10-19 2022-08-23 Splunk Inc. Display screen or portion thereof having a graphical user interface for a process control editor
USD946035S1 (en) * 2020-10-19 2022-03-15 Splunk Inc. Display screen or portion thereof having a graphical user interface for a process control editor
USD946036S1 (en) * 2020-10-19 2022-03-15 Splunk Inc. Display screen or portion thereof having a graphical user interface for a process control editor
US11153363B1 (en) 2021-02-26 2021-10-19 Modo Labs, Inc. System and framework for developing and providing middleware for web-based and native applications
US20230267163A1 (en) * 2022-02-22 2023-08-24 Oracle International Corporation Runtime completion of web component metadata

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002312090A (ja) * 2001-04-09 2002-10-25 Ntt Data Pocket Corp 情報提供システム

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5911145A (en) * 1996-07-29 1999-06-08 Rae Technology, Inc. Hierarchical structure editor for web sites
US5940834A (en) * 1997-03-13 1999-08-17 Mitel Corporation Automatic web page generator
US5983227A (en) * 1997-06-12 1999-11-09 Yahoo, Inc. Dynamic page generator
US6247032B1 (en) * 1997-06-19 2001-06-12 International Business Machines Corp. Automated system and method for approving web site content
US6684369B1 (en) * 1997-06-19 2004-01-27 International Business Machines, Corporation Web site creator using templates
US5953526A (en) * 1997-11-10 1999-09-14 Internatinal Business Machines Corp. Object oriented programming system with displayable natural language documentation through dual translation of program source code
US8332478B2 (en) * 1998-10-01 2012-12-11 Digimarc Corporation Context sensitive connected content
US6313854B1 (en) * 1998-10-16 2001-11-06 International Business Machines Corporation Display mechanism for HTML frames
US6327628B1 (en) * 2000-05-19 2001-12-04 Epicentric, Inc. Portal server that provides a customizable user Interface for access to computer networks
JP2002182907A (ja) 2000-12-13 2002-06-28 Alpha International:Kk アプリケーション開発システムおよびアプリケーション開発プログラムを記憶した記憶媒体
US20020122060A1 (en) * 2000-12-18 2002-09-05 Markel Steven O. Wizard generating HTML web pages using XML and XSL
US6957416B2 (en) * 2001-01-31 2005-10-18 Hewlett-Packard Development Company, L.P. Document builder classes and methods
US20020138331A1 (en) * 2001-02-05 2002-09-26 Hosea Devin F. Method and system for web page personalization
US7552136B2 (en) * 2001-10-31 2009-06-23 International Business Machines Corporation Context management super tools and filter/sort model for aggregated display webpages
US20040148340A1 (en) * 2003-01-29 2004-07-29 Web.De Ag Web site having a zone layout

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002312090A (ja) * 2001-04-09 2002-10-25 Ntt Data Pocket Corp 情報提供システム

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100412793C (zh) * 2005-12-20 2008-08-20 北京大学 一种J2EE应用服务器中Web容器的集成系统
JP2010009145A (ja) * 2008-06-24 2010-01-14 Hitachi Information Systems Ltd ウェブページ生成システム及びウェブページ生成プログラム
JP2012014209A (ja) * 2010-06-29 2012-01-19 Yahoo Japan Corp プロフィール表示装置、方法、プログラム及びシステム
US10977427B2 (en) 2013-02-10 2021-04-13 Wix.Com Ltd. Third party application communication API
JP2016511889A (ja) * 2013-02-10 2016-04-21 ウィックス.コム リミテッド. サードパーティアプリケーションの通信api
JP2019145148A (ja) * 2013-02-10 2019-08-29 ウィックス.コム リミテッド. ウェブサイト構築システムのための装置
US10509850B2 (en) 2013-02-10 2019-12-17 Wix.Com Ltd. Third party application communication API
US11989253B2 (en) 2013-02-10 2024-05-21 Wix.Com Ltd. Third party application communication API
CN105940391A (zh) * 2013-12-04 2016-09-14 维克斯网有限公司 第三方应用活动数据收集
JP2015125769A (ja) * 2014-03-25 2015-07-06 利仁 曽根 入力支援方法
JP2021033386A (ja) * 2019-08-16 2021-03-01 株式会社 ディー・エヌ・エー 情報処理プログラム、情報処理方法及び情報処理システム
JP7339221B2 (ja) 2019-08-16 2023-09-05 株式会社 ディー・エヌ・エー 情報処理プログラム、情報処理方法及び情報処理システム
JP2021034058A (ja) * 2019-08-16 2021-03-01 株式会社 ディー・エヌ・エー 情報処理プログラム、情報処理方法及び情報処理システム

Also Published As

Publication number Publication date
CA2471615A1 (en) 2004-12-19
BRPI0402399A (pt) 2005-01-25
RU2004118670A (ru) 2005-12-10
AU2004202329B2 (en) 2009-10-22
RU2370809C2 (ru) 2009-10-20
CA2471615C (en) 2012-03-20
AU2004202329A1 (en) 2005-01-13
MXPA04006074A (es) 2005-07-12
KR101085720B1 (ko) 2011-11-21
JP4861611B2 (ja) 2012-01-25
US20040268228A1 (en) 2004-12-30
EP1489494A2 (en) 2004-12-22
EP1489494A3 (en) 2007-08-01
CN1627257A (zh) 2005-06-15
US7281202B2 (en) 2007-10-09
KR20040111167A (ko) 2004-12-31

Similar Documents

Publication Publication Date Title
JP4861611B2 (ja) モジュール型Webアプリケーションを作成するためのフレームワーク
US8312382B2 (en) Developing and executing applications with configurable patterns
US8296665B2 (en) Developing and executing applications with configurable patterns
US7761865B2 (en) Upgrading pattern configurations
US7469302B2 (en) System and method for ensuring consistent web display by multiple independent client programs with a server that is not persistently connected to client computer systems
US7434203B2 (en) Software logistics for pattern-based applications
US7469402B2 (en) Pluggable model framework
US20070214449A1 (en) Portlet template based on a state design pattern
Jacyntho et al. A software architecture for structuring complex web applications
US20050114361A1 (en) Method and apparatus for integrating data repositories and frameworks
EP1938222A2 (en) Browser based designer and player
JP2003099257A (ja) ウェブページ用オーサリングツール
US20040012630A1 (en) Process for automatically creating and controlling a set of graphical objects in a client-server environment
US7606820B2 (en) Detecting and handling changes to back-end systems
WO2007011609A2 (en) Control panel framework
US20050257190A1 (en) Developing and executing applications with configurable patterns
Shepherd Microsoft ASP. NET 4 Step by Step
Stephanidis et al. Universally accessible UIs: the unified user interface development
Mannadiar et al. AToMPM User’s Manual
Homer et al. Inside ASP. NET Web Matrix
Krebs et al. Adaptive applications for ubiquitous collaboration in mobile environments
Mandelkorn A Physician's Perspective
Gerow Automating Site Creation
MacDonald et al. ASP. NET AJAX
Muhammad et al. User Controls and Server Controls

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070612

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20100623

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100702

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20101004

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110520

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110822

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20111101

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20111107

R150 Certificate of patent or registration of utility model

Ref document number: 4861611

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20141111

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees