ActionScript3.0の勉強
突然、今さらながら、ActionScript3.0をやってみる。
一般的なプログラム言語と違って描画周りがオブジェクト化されており
それをベースのオブジェクトに貼り付けて描画している印象をうける。
なので、制御方法もチョット違うアプローチをする必要があるようだ。
具体的にはMainが持っているstageや、graphics
(これらはたぶんSpriteクラスからの継承)
といったものにたいして、様々なアクションを行うことで
制御を行っていく必要がありそうだ。
Visual Studio 2012 C++で.NET Framework 4.0 以前をターゲットする方法
詳しい内容はここにかいてある
リンク先がなくなるといやなので部分的に転載
プロジェクトファイル(*.vcxproj)を直接テキストエディタで開いて書き換える
DLLの種類について
DLLにも色々あるようでC#でつかえるDLLとそうじゃないものがあるようだ。
1、Win32
一昔まえの最も一般的なDLLの形だと思われる。何も考えずにC++あたりでDLLをつくるとこの形式になる。しかしこの形式ではC#では参照ができないようで利用することができないので、どうしても使いたいときは他の形式のDLLでラッピングするといった作業が必要になる。C#側で再定義してもいけるっぽい。
2、COM
C++だとATLとかていうテンプレートで作成できるが、Visual Studio 2012 ExpressではATLプロジェクトは作れない。C#はとは相性がよいらしくそのまま使えるらしい。
3、CLR
.Netで一般的に使われる形式らしくそのまま使える。Win32形式をラッピングするならこの形式が良いと思えるがフレームワークのバージョンに注意しないといけない。
WebMatrixでのアプリ開発(ログイン編)
まずは適当にログインができるページを作ろうと考えたわけだ
DBにMySQLを使えば安上がりになると考えて、早速やってみる。
ASP.NETには便利なクラスが色々用意されてるようで、ログインをコントロールするWebSecurityクラスもそのひとつとなる。
で早速WebSecurity.InitializeDatabaseConnectionを使ってDBを初期化しようかと思ったわけだが、指定したテーブルが見つからないというエラーをMySQLが吐いてくれた。テーブル名を[]で囲って表記してるようで、これでは見つかるはずがない。
何か情報がないかと探し回ること丸1日、ここにMySQLには未対応なんでSQL Server Compactでもつかってくれという内容のことが書かれていた。面倒だがログインコントロールを自分で実装するか、ログイン部分のDBをSQL Server Compactを使って制御する必要があるようだ。
で、WebSecurity.InitializeDatabaseConnectionなのだが、初期化のためのメソッドなので当選呼ぶのは1回だけでよい。2回以上呼ぶとエラーになる。アプリケーション起動時にだけ呼ぶには_AppStart.cshtmlに記述する必要があるようだ。_AppStart.cshtmlはルートディレクトリに配置すればよいらしい。
Web上でのクッキーを使ったセッション管理
まずはクッキーの発行
HttpCookie mc = new HttpCookie("MyTestCookie"); DateTime now = DateTime.Now; // クッキーの値に発行した時間 mc.Value = now.ToString(); // 有効期限は発行後1分間 mc.Expires = now.AddMinutes(1); Response.Cookies.Add(mc); Response.Write("<p> クッキーを発行しました</P>");
続いてクッキーの受信
HttpCookie mc = new HttpCookie("MyTestCookie"); mc = Request.Cookies["MyTestCookie"]; if (mc != null) { Response.Write("<p> クッキーを受信しました</p>"); Response.Write(mc.Value); }
クッキーが偽造されていないという前提であれば、クッキーの受け渡しができたかどうかだけ見ればセッションの管理は可能となる。となると後は偽造対策になるわけだが、サーバ側に接続したクラインとのIPを保存し過去に発行したクッキーの送り先と一致するかを確認することで、簡単な偽造対策になると考えられる。まぁ抜け道はあるがあくまで簡易的なものとして利用できそうだ。