2006年05月09日

Microsoft 圧縮 (LZH 形式) フォルダ

Microsoft 圧縮 (LZH 形式) フォルダ

便利な機能なのに辿り着きづらいのでメモ。
Photo Storyなんてソフトもあったのね。

posted by よっしぃ at 03:20 | Comment(0) | TrackBack(0) | その他

2006年04月21日

Cacheを使用するサンプルの公開

 Cacheを使用するサンプルをここに公開しました。

 SAMPLESネームスペースのBasTutorial.Presonクラスに1件追加を行うものです。実行して「Success」と表示されれば成功です。

 追加されたデータの確認は、システム管理ポータルの[SQL - SQLの実行」の画面でSQLクエリに「SELECT * FROM BasTutorial.Person」と入力して、「クエリ実行」ボタンを押すことでできます。

 また、動作には、ここで行っているCacheのインストールとユーザーの設定が別途必要です。サンプルファイルの「CacheSample\Person.cs」ファイルは、ここでの手順で作成されたファイルです。


 あと、簡単にサンプルの説明をします。

 「CacheSample\Program.cs」の内容は以下のようになります。

CacheSample\Program.cs
using System;
using InterSystems.Data.CacheClient;

namespace CacheSample
{
class Program
{
static void Main(string[] args)
{
CacheConnection CacheConnect = new CacheConnection();
CacheConnect.ConnectionString = "Server = localhost; "
+ "Port = 1972; " + "Namespace = SAMPLES; "
+ "Password = Sample; " + "User ID = Sample;";
CacheConnect.Open();
CosTutorial.Person person = new CosTutorial.Person(CacheConnect);

try
{
person.DOB = DateTime.Now;
person.Name = "Some person";
person.Phone = "Some phone";
person.Save();
Console.WriteLine("Success");
}
catch (Exception ex)
{
Console.WriteLine(ex.ToString());
}
finally
{
person.Close();
CacheConnect.Close();
Console.ReadLine();
}

}
}
}


 CacheConnectionは、「lib\InterSystems.Data.CacheClient.dll」のInterSystems.Data.CacheClient.CacheADOConnectionクラスです。
 オープンの方法は他のSystem.Data.IDbConnectionの派生クラスと違いはありません。
 これをCosTutorial.Personのコンストラクタの引数に渡します。
 CosTutorial.Personのプロパティに値を設定してSave関数を実行すれば、データベースに保存されます。
 Save関数は、InterSystems.Data.CacheTypes.CachePersistentクラスのものです。

posted by よっしぃ at 23:19 | Comment(0) | TrackBack(0) | その他

2006年04月20日

Cacheオブジェクトからクラスファイルを生成する

 オブジェクトデータベースCacheの最新バージョンでCacheオブジェクトのクラスが使えるようになりました。

 今回は、Cacheオブジェクトからクラスファイルを生成する方法を紹介します。

 まず、クラスファイルを生成するためには、Cacheの評価版のインストールとCache Managed Provider (.Net)が必要です。

 Cacheの評価版をダウンロードするためには、[url=https://www.intersystems.co.jp/cache/downloads/index.asp]ここ[/url]で個人情報とアンケートを入力して送信する必要があります。送信後、入力したメールアドレスにダウンロード方法が記入されたメールが届きます。
Cacheのインストールには、CachePCkit.exeをダウンロードし実行します。

 Cacheオブジェクトからクラスファイルを を生成するためには、ここから、Cache Managed Provider (.Net)をダウンロードする必要があります。Cache Managed Provider (.Net)は、Zipファイルで提供されているのでそれを任意の場所に解凍します。

 次にCacheに接続するためのユーザーの設定をします。

 Cacheのインストールが終わっていれば、タスクトレイに青のルービックキューブのようなアイコンがあるはずです。それがCacheのプログラムになります。ユーザーの設定はここから行います。

 まずCacheのアイコンにポインタを合わせて右クリックします。そして、表示されたメニューから、「システム管理ポータル」をクリックします。

 そうすると、ブラウザが起動して、Cacheを管理するポータルサイトが表示されます。そこで「セキュリティ管理 → ユーザ」の順でクリックします。表示されたユーザー管理の画面に「新規ユーザー作成」というリンクがあるので、それをクリックします。

 表示された、ユーザ定義作成画面で名前に「Sample」、パスワードに「Sample」を入力し、保存ボタンを押します。「保存しました。・・・」と表示されたら、ロールのタブをクリックし、ロールの編集画面を表示します。

 利用可能の項目から「%DB_SAMPLES」をダブルクリックし、選択済みの項目へ移動させます。そして、「割り当てる」ボタンをクリックし、ロールを割り当てます。

 これで、ユーザー設定は終了です。

【クラスファイルを生成するための手順】
1. Cacheオブジェクトからクラスファイルを生成するためCache Managed Provider (.Net)を起動します。実行プログラムは解凍先の「dotnet\bin\CacheNetWizard.exe」になります。

2.「Connect」ボタンをクリックします。

3.表示された「Access Denied」の画面で、「キャンセル」をクリックします。

4.表示された「Cache Connection Manager」ので、「Connect」ボタンをクリックします。

5.表示された「ConnectionList」の画面で「CACHEWEB」を選択してOKボタンをクリックします。

6.表示されたログオン画面、UsernameにSample、PasswordにSampleを入力し、OKボタンをクリックします。

7.ログインが成功すると「Cache Connection Manager」の画面に戻るのでOKボタンを押します。そうすると最初の画面に戻ります。

8.その画面の2で「Source File」を選択し、LanguageはC#かVBか好きな方を選択します。

9.3のOutput Fileに出力ファイル名を入力します。

10.4のAvailable ClassesでBasTutorialをクリックし、BasTutorial配下を展開します。

11.展開されたものからPersonをダブルクリックして、Selected Classesに表示させます。(BasTutorialのクリックで例外が発生するかもしれません。原因は不明で、ユーザー設定を適当に更新するとできるようになるようです。)

12.5の「Generate」ボタンを押すと生成が開始され、「Generate file」のメッセージが表示されれば終了です。3で指定したファイル名でクラスファイルが作成されます。

posted by よっしぃ at 23:19 | Comment(0) | TrackBack(0) | その他

2006年04月19日

Atlas April CTP のインストールに成功!

 これとは別の方法でDownload details: ASP.NET “Atlas” April Community Technology Preview (CTP)のインストールに成功しましたので、紹介させていただきます。

【手順】
1. まずここを開きます。
2. そのページのURLに「 http://download.microsoft.com/download/f/c/6/fc6a8a07-246f-4c93-a32c-9ba35390196f/AtlasSetup.msi 」と入力します。
3. Browseボタンをクリックします。
4. しばらくすると、ファイルのダウンロードの画面が表示されるので、「開く」をクリックします。
5. ダウンロード後にAtlas April CTPのインストールの画面が表示されるので、インストールを行います。


 ま、ココを参考にしただけですけどね。

 これが成功するかも環境によると思うので、試しにやってみる程度でお考え下さい。
タグ:ASP.NET AJAX

posted by よっしぃ at 23:19 | Comment(0) | TrackBack(0) | Atlas

2006年04月18日

Atlas April CTP のインストールについて

"Atlas" April CTP がインストール出来た!!!

 前回の件ですけど、フォーラムの書き込んでいる人も何人かいたし、ダウンロードの問題にしては、頻発しすぎな気がする。同じ環境でMarch CTPのインストールは問題なかったし。

 対症療法としては有効だと思うけど、根本的には公開側の問題の気がするなぁ。
タグ:ASP.NET AJAX

posted by よっしぃ at 23:19 | Comment(0) | TrackBack(0) | Atlas

2006年04月12日

Atlas April CTP のインストールで失敗

 最近リリースされたAtlas April CTPですが、インストーラーに不具合があるようです。  私はこういうメッセージが表示されインストールを正しく終了することができませんでした。
タグ:ASP.NET AJAX

posted by よっしぃ at 11:22 | Comment(0) | TrackBack(0) | Atlas

2006年03月31日

あなたもMVPになれるかも!?

MVP プログラム日本サイトのリニューアルとMVP審査応募ページの開設

ということらしいです。私は早速MVP審査に応募しちゃいました。みなさんも応募してみませんか??
タグ:話題

posted by よっしぃ at 23:19 | Comment(0) | TrackBack(0) | その他

2006年03月30日

Atlasのバインディングのサンプル

 Atlasでバインディングを使用するサンプルをここに公開しました。
 ソースを見ただけだとわからない部分も多いと思うので、説明させていただきます。Atlasは、2006 March CTPを使用しています。
 
 サンプルのサイトのファイル構成は以下のようになっています。

AtlasBindingSample
│   Default.aspx
│   Default.aspx.cs
│   eula.rtf
│   readme.txt
│   SupportService.asmx
│   Web.config
│   
├───App_Code
│       Converter.cs
│       KeyValueElemnt.cs
│       SupportService.cs
│       
├───App_Data
└───Bin
        Microsoft.Web.Atlas.dll

 まず、Web.Configですが、ドロップダウンリストで表示するデータが以下のように設定してあります。ASP.NET 1.1でお馴染みのSystem.Configuration.NameValueSectionHandlerを使うものです。
 
  <genre>
<add key="conveni" value="コンピニ"/>
<add key="famires" value="ファミレス"/>
<add key="fastfood" value="ファーストフード"/>
</genre>
<conveni-links>
<add key="http://www.sej.co.jp/index.html" value="セブンイレブン"/>
<add key="http://www.family.co.jp/" value="ファミリーマート"/>
<add key="http://www.lawson.co.jp/" value="ローソン"/>
</conveni-links>
<famires-links>
<add key="http://www.skylark.co.jp/skylark/index.html" value="すかいらーく"/>
<add key="http://www.dennys.co.jp/dj/index.html" value="デニーズ"/>
<add key="http://www.jonathan.co.jp/home/index.asp" value="ジョナサン"/>
</famires-links>
<fastfood-links>
<add key="http://www.mcdonalds.co.jp/" value="マクドナルド"/>
<add key="http://www.mos.co.jp/index.html" value="モスバーガー"/>
<add key="http://www.kfc.co.jp/" value="ケンタッキーフライドチキン"/>
</fastfood-links>
?の間に
 
   <section name="genre" type="System.Configuration.NameValueSectionHandler, System, Version=1.0.5000.0,& Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
<section name="conveni-links" type="System.Configuration.NameValueSectionHandler, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
<section name="famires-links" type="System.Configuration.NameValueSectionHandler, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
<section name="fastfood-links" type="System.Configuration.NameValueSectionHandler, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>

と設定してあるので、(NameValueCollection)ConfigurationSettings.GetConfig("genre")で?内の項目がSystem.Collections.Specialized.NameValueCollectionで取得できます。

 それをAtlas.Sample.Binding.Converter.ToListSystem.Collections.Generic.List<Atlas.Sample.Binding.KeyValueElemnt<string, string>>に変換しています。ジェネリックの説明については省きますがAtlas.Sample.Binding.KeyValueElemnt<TKey, TValue>System.Collections.Generic.KeyValuePairと殆ど同じものと思って下さい。今回のサンプル作成において、System.Collections.Generic.KeyValuePairではうまくいかなかった部分があったので作成しました。

 初期表示の段階でデータをドロップダウンリストに設定している部分が、Default.aspx.cs内のPage_Load関数内の
 
            Genre.DataSource = Converter.ToList((NameValueCollection)ConfigurationSettings.GetConfig("genre"));
Genre.DataBind();
Links.DataSource = Converter.ToList((NameValueCollection)ConfigurationSettings.GetConfig(this.Genre.SelectedValue + "-links"));
Links.DataBind();

の部分になります。ここも特に目新しい部分ではないので説明はしません。

 なお、ドロップダウンリストは、Default.aspx内で、
 
       <asp:DropDownList ID="Genre" runat="server" DataTextField="Value" DataValueField="Key" OnChange="Genre_OnChanged();"></asp:DropDownList>
<asp:DropDownList ID="Links" runat="server" DataTextField="Value" DataValueField="Key"></asp:DropDownList>
と宣言されています。

 今回のサンプルではバインディングの例以外にもAtlasを使っている部分があります。分類(Genre)のドロップダウンの値によって、名称(Links)のドロップダウンの内容が変わる部分です。JavaScriptでWebサービスを使用して<……-links>〜</……-links>のデータを取得して、ドロップダウンリストに設定しているだけですが、Webサービスを使用する部分以外にもAtlasの機能を使っています。まずは、その部分を紹介させていただきます。

 まず、Default.aspxの<script type="text/xml-script">〜</script>の部分に注目します。これもAtlasのXML Scriptという機能の部分です。
 その中の<components>〜</components>内の

               <select id="Genre"/>
<select id="Links" valueProperty="Key" textProperty="Value"/>


という部分がドロップダウンリストの処理の部分で必要なところです。この宣言で、初期表示の段階でAtlasで提供されるJavaScriptのクラスのSys.UI.Selectクラスのインスタンスを作成してくれます。

 idで対象としたいドロップダウンリストのIDの値を指定できます。January 2006 ReleaseではtargetElementだった部分なので、January 2006 Releaseから使用している人には注意が必要な部分です。さらに項目を追加すればプロパティの設定も行ってくれます。
 の「valueProperty="Key" textProperty="Value"」の部分がそれにあたります。
 これは、DropDownListクラスの「DataTextField="Value" DataValueField="Key"」と同じ意味を持つと思ってもらっていいです。データを展開するときに使用します。

 初期表示で作成されたインスタンスをJavaScript内でどう取得できるかというと、$(……).controlでできます。$(……)は以前も説明しましたが、document.getElementById(……)と同じ意味になります。
 「ID="Genre"」のものが取得したければ、$("Genre").controlとします。
 
 $("Genre").controlは、分類(Genre)のドロップダウンリストの選択値を取得する部分で使っています。
 Sys.UI.SelectクラスにはselectedValueという選択値を表すプロパティがあって、コード上で取得する場合は、get_selectedValue()で取得できます。
 蛇足ですが、設定する場合は、set_selectedValue(value)となります。

 Default.aspxの<script type="text/javascript" language="JavaScript">〜</script>の内のGenre_OnChanged関数の

     var genreValue = $("Genre").control.get_selectedValue();

の部分が実際に使用している部分です。

 Genre_OnChanged関数の中では、そうやって取得した分類(Genre)の選択値をWebサービスの関数の引数に渡しています。
 呼び出しているWebサービスのAtlas.Sample.Binding.SupportService.GetLinks関数はWeb.configから<……-links>〜</……-links>のデータをSystem.Collections.Generic.List<Atlas.Sample.Binding.KeyValueElemnt<string, string>>にして返しているだけです。引数の値によって、どの名称(Links)のデータが返るかが違うだけです。

 そのWebサービスから取得したデータを設定しているのがonSearchComplete関数内の部分です。ここで、$("Links").controlを使用しています。Sys.UI.SelectクラスにdataというSystem.Web.UI.WebControls.DropDwonListでいうDataSourceと同じ意味のプロパティがあってそれに「$("Links").control.set_data(results)」として、Webサービスが返してきたデータを設定しています。

 この時に、「valueProperty="Key" textProperty="Value"」が使われて、System.Web.UI.WebControls.DropDwonListで「DataTextField="Value" DataValueField="Key"」が設定されている場合と同じようなデータバインドの動きが行われます。
 この部分も今回のサンプルで紹介したかった部分です。

 最後に肝心のバインディングの部分です。今回のサンプルはアンカー(<a ……>〜</a>)にバインディングを設定しています。
 Default.aspxの<script type="text/xml-script">〜</script>の<components>〜</components>内の

                <hyperLink id="Anchor">
<bindings>
<binding dataContext="Links" dataPath="selectedValue" property="text"/>
<binding dataContext="Links" dataPath="selectedValue" property="navigateURL"/>
</bindings>
</hyperLink>

の部分がその設定をしている部分です。アンカーは

     

と宣言されています。

 dataContextは参照元を表し、dataPathはその参照元のどのプロパティを参照するかを指定します。
 「dataContext="Links" dataPath="selectedValue"」で$("Links").controlのselectedValueプロパティを参照元とするということです。今回のサンプルだと名称(Links)の選択値のチェーンのサイトのURL(例:セブンイレブンのサイトのURL http://www.sej.co.jp/index.html)ということになります。

 propertyは参照元の値を参照先のどこに設定するかということですAtlasSys.UI.HyperLinkクラスにはアンカーの表示文字を表すtextというプロパティとリンク先(<a href="……"の部分)を表すnavigateURLプロパティというものがあって、名称(Links)の選択値をそのそれぞれに設定するということです。

 名称(Links)を変更するとアンカーの文字とリンク先が同時に変わります。

 設定されているものが

                <hyperLink id="Anchor">
<bindings>
<binding dataContext="Links" dataPath="selectedValue" property="navigateURL"/>
</bindings>
</hyperLink>

となっていば、文字はそのままでリンク先だけがかわります。どちらの場合も当然ポストバックは発生しません。

 これがAtlasのバインディングというものです。参照元の値は文字列でなくbool値であっても構いません。チェックボックスのチェック状態によって、文字や入力項目を表示・非表示したりするのにも使えます。

 とても面白い機能だと思います。バインディング以外にも<script type="text/xml-script">〜</script>の<components>〜</components>の部分の宣言とかも便利だと思います。そのお陰で、今回のサンプルも動きの割りにコードが少ないと思います。

 Atlasって、使いこなすととても便利だと思うので、是非チャレンジしてみてくれると嬉しいです。
 今回のサンプルは盛り沢山の反面、わかりづらい部分も多いと思います。その場合は是非質問をお願いします。自分の勉強にもなりますので。
タグ:ASP.NET AJAX

posted by よっしぃ at 23:19 | Comment(0) | TrackBack(0) | ASP.NET

2006年03月29日

とてもためになると思われる記事の紹介

開発者の方にとてもためになると思われるブログの記事を2つほど紹介しておきます。どちらも同じブログのものですけどね。^^;

ソフトウェアの仕様書は料理のレシピに似ている

SEはメニューのないレストランのウェイターか?
タグ:記事

posted by よっしぃ at 23:19 | Comment(0) | TrackBack(0) | その他

2006年03月28日

ASP.NETのMVCフレームワーク

 ASP.NETのMVCフレームワークで[url=http://www.castleproject.org/index.php/MonoRail]MonoRail[/url]というものがあります。

 まだ、ちょっとしか見れてないですが、かなりよさそうです。
ASP.NETにもMVCフレームワークが必要と思っているので、これを広めていきたいと思っています。

 当然、サンプルの公開とか解説とかも考えていますよ?。
タグ:ASP.NET

posted by よっしぃ at 23:19 | Comment(0) | TrackBack(0) | ASP.NET

広告


この広告は60日以上更新がないブログに表示がされております。

以下のいずれかの方法で非表示にすることが可能です。

・記事の投稿、編集をおこなう
・マイブログの【設定】 > 【広告設定】 より、「60日間更新が無い場合」 の 「広告を表示しない」にチェックを入れて保存する。


×

この広告は1年以上新しい記事の投稿がないブログに表示されております。