本屋によったら、インサイドSQL Server2005の本が売っていた。
というわけで、今回も購入。税込4935円。やっぱり黄色い本は高いなぁ。
2008年7月21日月曜日
ASP.NETのメモ(メンバシッププロバイダ)
カスタムメンバシッププロバイダを使ったログインの作成
Visual Studio2008を起動して、新しいサイトを作成

.NET Framework2.0を選択して、

デフォルトページ以外にも、2つのページを作成。

まずは、ログイン画面。

同じ要領で、ユーザページ(ログイン後の画面)を作成する。

続いてカスタムメンバシッププロバイダを作成する。

ここで「はい」を選択し、App_Codeに入れる。

クラスの継承元[:MembershipProvider]を入力し、

そのキーワード(MemberhsipProvier)の上で右クリック、
継承クラスの実装を選択して、

abstractのメソッドを実装するスケルトンを作成。
そのあと、直近で利用するValidateUser()のみをちょっと
実装する。

続いてWeb.configの変更。元のWeb.configからの変更箇所は、
authenticationタグ(変更) 、membershipタグ(追加)、
authorizationタグ(追加)、 下のlocationタグ(追加)
です。

ログイン画面、ログインパーツを置いてみます。

置いたログインパーツをクリックしてコード編集画面へ、

コード編集画面で、ログイン部分を記述

ログインパーツで入力されたもので認証を呼び出す。

これでコード修正おわり。
あとはF5で実行。

OKを選択し、動作確認。
Default.aspxは未ログインでも表示できること、
UserPage.aspxを未ログイン状態で表示するとログインページ
に移動し、ログイン入力すると、UserPage.aspxを表示すること、
ログイン後は、UserPage.aspxを直接入力しても表示されることを確認する。
Visual Studio2008を起動して、新しいサイトを作成

.NET Framework2.0を選択して、

デフォルトページ以外にも、2つのページを作成。

まずは、ログイン画面。

同じ要領で、ユーザページ(ログイン後の画面)を作成する。

続いてカスタムメンバシッププロバイダを作成する。

ここで「はい」を選択し、App_Codeに入れる。

クラスの継承元[:MembershipProvider]を入力し、

そのキーワード(MemberhsipProvier)の上で右クリック、
継承クラスの実装を選択して、

abstractのメソッドを実装するスケルトンを作成。
そのあと、直近で利用するValidateUser()のみをちょっと
実装する。

続いてWeb.configの変更。元のWeb.configからの変更箇所は、
authenticationタグ(変更) 、membershipタグ(追加)、
authorizationタグ(追加)、 下のlocationタグ(追加)
です。

ログイン画面、ログインパーツを置いてみます。

置いたログインパーツをクリックしてコード編集画面へ、

コード編集画面で、ログイン部分を記述

ログインパーツで入力されたもので認証を呼び出す。

これでコード修正おわり。
あとはF5で実行。

OKを選択し、動作確認。
Default.aspxは未ログインでも表示できること、
UserPage.aspxを未ログイン状態で表示するとログインページ
に移動し、ログイン入力すると、UserPage.aspxを表示すること、
ログイン後は、UserPage.aspxを直接入力しても表示されることを確認する。
2008年7月14日月曜日
オープンソースのグラフ作成用Dll
グラフ作成http://www.atmarkit.co.jp/fdotnet/vblab/extcompo_02/zedgraph_01.html
http://sourceforge.net/project/showfiles.php?group_id=114675&package_id=184194
zedgraph_dll_v514_464をダウンロード
参照の追加,zedgraph_dll_v5.1.4フォルダ直下の2つのdllとも。画像のキャッシュフォルダとして、ZedGraphImagesフォルダを作成。(コントロールを置くappxページと同じフォルダに)ツールボックスにZedGraphタブを追加し、アイテム選択で"ZedGraph.Web.dll"を選択。aspxページにZedGraphWebパーツを配置、RenderGraphイベントハンドラを追加。(以降このイベントハンドラをZedGraphWeb1_RenderGraphとする)ZedGraphWeb1_RenderGraphイベントハンドラはこんな型になるので、外部クラスで書かせてみる。(当然Page_Loadが動いた後にRenderGraphが動く(はず)なので、Page_Loadで生成したデータをインスタンス変数を介してRenderGraphで利用できそう。) protected void ZedGraphWeb1_RenderGraph(ZedGraph.Web.ZedGraphWeb webObject, System.Drawing.Graphics g, ZedGraph.MasterPane pane)
{
BurnOutGraph.CreateChart(pane[0]);
}
public static class BurnOutGraph
{
// Call this method from the Form_Load method, passing your ZedGraphControl instance
public static void CreateChart(GraphPane zgc)
{
// Get a reference to the GraphPane
GraphPane myPane = zgc;
GraphPane myPane = zgc; :以降は、http://zedgraph.org/wiki/index.php?title=Multi-Y_Demoのページと同様で作れそう。
他、ユーザ管理の方法。用意されている簡単に仕上げるためにVisual Studio標準のLoginパーツを使いたい。ただ、完成版では、Linux(mono+xsp2)でも動かせるようにしたいので、DBはSQL Serverの他、SQLiteでも動作可能としたい。(なので、SQL ServerべったりっぽいLINQは今回は使わないようにしようと考えてる。)で、カスタムのRoleProviderとMembershipProviderを作って、web.configで指定してやればよいはずなんだけど、http://www.codeproject.com/KB/aspnet/WSSecurityProvider.aspxのページが英語。abstractなクラスを継承し、abstractなメソッドを実装すればインスタンスが作れて、ちゃんと動きそうなんだけど。
http://d.hatena.ne.jp/hate666komei/20061219/1166516102では、プログラミングASP.NET 2.0の P.818から書いてあるって書いてあるけど、あの本は会社に置きっぱなしにしているので手元にない。
まだ、時間はあるからあんまりあせらなくてもいいか。
http://sourceforge.net/project/showfiles.php?group_id=114675&package_id=184194
zedgraph_dll_v514_464をダウンロード
参照の追加,zedgraph_dll_v5.1.4フォルダ直下の2つのdllとも。画像のキャッシュフォルダとして、ZedGraphImagesフォルダを作成。(コントロールを置くappxページと同じフォルダに)ツールボックスにZedGraphタブを追加し、アイテム選択で"ZedGraph.Web.dll"を選択。aspxページにZedGraphWebパーツを配置、RenderGraphイベントハンドラを追加。(以降このイベントハンドラをZedGraphWeb1_RenderGraphとする)ZedGraphWeb1_RenderGraphイベントハンドラはこんな型になるので、外部クラスで書かせてみる。(当然Page_Loadが動いた後にRenderGraphが動く(はず)なので、Page_Loadで生成したデータをインスタンス変数を介してRenderGraphで利用できそう。) protected void ZedGraphWeb1_RenderGraph(ZedGraph.Web.ZedGraphWeb webObject, System.Drawing.Graphics g, ZedGraph.MasterPane pane)
{
BurnOutGraph.CreateChart(pane[0]);
}
public static class BurnOutGraph
{
// Call this method from the Form_Load method, passing your ZedGraphControl instance
public static void CreateChart(GraphPane zgc)
{
// Get a reference to the GraphPane
GraphPane myPane = zgc;
GraphPane myPane = zgc; :以降は、http://zedgraph.org/wiki/index.php?title=Multi-Y_Demoのページと同様で作れそう。
他、ユーザ管理の方法。用意されている簡単に仕上げるためにVisual Studio標準のLoginパーツを使いたい。ただ、完成版では、Linux(mono+xsp2)でも動かせるようにしたいので、DBはSQL Serverの他、SQLiteでも動作可能としたい。(なので、SQL ServerべったりっぽいLINQは今回は使わないようにしようと考えてる。)で、カスタムのRoleProviderとMembershipProviderを作って、web.configで指定してやればよいはずなんだけど、http://www.codeproject.com/KB/aspnet/WSSecurityProvider.aspxのページが英語。abstractなクラスを継承し、abstractなメソッドを実装すればインスタンスが作れて、ちゃんと動きそうなんだけど。
http://d.hatena.ne.jp/hate666komei/20061219/1166516102では、プログラミングASP.NET 2.0の P.818から書いてあるって書いてあるけど、あの本は会社に置きっぱなしにしているので手元にない。
まだ、時間はあるからあんまりあせらなくてもいいか。
2008年7月12日土曜日
今日はMCP試験2つ
70-444 (155分)を10時から70-443(185分)を12時35分から。
いわゆる2コマ連続。
1つめの試験は全52問。
休憩時間を確保するためにぎりぎり受かる見込みでさくっと100分ぐらいでサクッと終わらせてみた。
結果は、700点以上で合格で、678点。やべっ。サクッと落っちゃった。
メガマック+ポテトL+コーラLのセットを食べながら、午後の勉強して、試験に臨む。
午後の試験は、1シナリオが約30分約10問、それが6シナリオで構成されている試験でした。
2シナリオが終わった後に急に腹痛が。
あと2時間ぐらい試験が残ってるのに。。。
時々迫ってくるウェーブで、おなかがぎゅるぎゅる音を立てる。
冷や汗を描きながら、肛門に力を入れて出産しないように頑張って耐える。
自然と右手を腹の上に添えてました。
。。。でも、ウンが味方したのか終わってみれば、700点以上合格で、820点でした。
明日からは、70-444の試験勉強か。がんばろう。
いわゆる2コマ連続。
1つめの試験は全52問。
休憩時間を確保するためにぎりぎり受かる見込みでさくっと100分ぐらいでサクッと終わらせてみた。
結果は、700点以上で合格で、678点。やべっ。サクッと落っちゃった。
メガマック+ポテトL+コーラLのセットを食べながら、午後の勉強して、試験に臨む。
午後の試験は、1シナリオが約30分約10問、それが6シナリオで構成されている試験でした。
2シナリオが終わった後に急に腹痛が。
あと2時間ぐらい試験が残ってるのに。。。
時々迫ってくるウェーブで、おなかがぎゅるぎゅる音を立てる。
冷や汗を描きながら、肛門に力を入れて出産しないように頑張って耐える。
自然と右手を腹の上に添えてました。
。。。でも、ウンが味方したのか終わってみれば、700点以上合格で、820点でした。
明日からは、70-444の試験勉強か。がんばろう。
2008年6月25日水曜日
プロコンのデータベース
今年は、プログラムの方に参加しよう。
せっかくもらったVisual Studio2008があるので、これを使おう(LINQとかXAMLとか)
DB:SQL Server 2005 Express SP2
開発言語:C#
アプリ形態:Windows Application(XAML:なんかグラフを書かなきゃいけないみたいだから)
とりあえずテーブル定義だけ、こんな感じでやってみます。

データ取得は、作成したLinQtoSQLクラスから以下のようにSQLっぽい書き方で取れるみたい。
DataClasses1DataContext dtc = new DataClasses1DataContext();
var query = from p in dtc.Project
where p.Id == 1
orderby p.Name
select new{p.Name,p.Id};
最後に折れ線グラフについては、xamlで、 以下のようにCanvasの中に名前付きPolylineを埋めておき
プログラムの中で、以下のように属性を変更しちゃえばかけるみたい。
polyline1.Points.Clear();
Random rand=new Random();
for (int i=0;i<10;i++) { polyline1.Points.Add(new Point(i * 10, rand.Next(100))); }
2008/7/23 追記:
LinuxのMONO+XSP2でも動かせるようにするので大幅方針転換。
・利用データベースに(ゆくゆくは)SQLiteを追加できるようにしておく。
・LINQ2SQLはやめて、DataSetとDataAdapterを使ったADO.NETの書き方にする。
理由は、LINQ2SQLがSQL Server専用であることと、xsp2では(たぶん)対応していないことから。
・PolyLineを使うのではなく、オープンソースのグラフ描画ライブラリを使う。
理由は、描画ライブラリの方が簡単そうだから。
・データベースの若干の見直し。
TaskWorkerテーブルの列をTaskId,WorkerIdのみにして、この2つの要素を複合したものを主キーとする。
WorkTimeテーブルの列からTaskWorkerIdを削除、TaskId,WorkerId列を追加し、この列を複合の外部キーとする。
(参照元のキーは、TaskWorkerのTaskId,WorkerId)
せっかくもらったVisual Studio2008があるので、これを使おう(LINQとかXAMLとか)
DB:SQL Server 2005 Express SP2
開発言語:C#
アプリ形態:Windows Application(XAML:なんかグラフを書かなきゃいけないみたいだから)
とりあえずテーブル定義だけ、こんな感じでやってみます。

データ取得は、作成したLinQtoSQLクラスから以下のようにSQLっぽい書き方で取れるみたい。
DataClasses1DataContext dtc = new DataClasses1DataContext();
var query = from p in dtc.Project
where p.Id == 1
orderby p.Name
select new{p.Name,p.Id};
最後に折れ線グラフについては、xamlで、 以下のようにCanvasの中に名前付きPolylineを埋めておき
プログラムの中で、以下のように属性を変更しちゃえばかけるみたい。
polyline1.Points.Clear();
Random rand=new Random();
for (int i=0;i<10;i++) { polyline1.Points.Add(new Point(i * 10, rand.Next(100))); }
2008/7/23 追記:
LinuxのMONO+XSP2でも動かせるようにするので大幅方針転換。
・利用データベースに(ゆくゆくは)SQLiteを追加できるようにしておく。
・LINQ2SQLはやめて、DataSetとDataAdapterを使ったADO.NETの書き方にする。
理由は、LINQ2SQLがSQL Server専用であることと、xsp2では(たぶん)対応していないことから。
・PolyLineを使うのではなく、オープンソースのグラフ描画ライブラリを使う。
理由は、描画ライブラリの方が簡単そうだから。
・データベースの若干の見直し。
TaskWorkerテーブルの列をTaskId,WorkerIdのみにして、この2つの要素を複合したものを主キーとする。
WorkTimeテーブルの列からTaskWorkerIdを削除、TaskId,WorkerId列を追加し、この列を複合の外部キーとする。
(参照元のキーは、TaskWorkerのTaskId,WorkerId)
2008年6月19日木曜日
登録:
投稿 (Atom)