2009年12月28日月曜日

ExtJs-66 Ext.data.Writerで。。。meta。2

あら。先日の実装から はや2W。
ソース壊れたりなんだりしてまたもや牛歩。。。

いまのシステムはサーバサイドはASP.NETC#で組んでるのだが、
Jsonのシリアライズがどうも。。ってなっててそれはJson.NETで解決済みだったんだけど
いままでは一行ごとのシステムコミットで実装しててサーバサイドへのリクエストは単一行情報のみだった。

現状の実装ではWriterをしようすることで
複数行のCreate、複数行のUpdateが可能になり、それぞれのURLへリクエストが送られてくることになる。

わかってないことが二つあった。
①まず、リクエストのなまえってなにでくんのか?
 Ext.data.Writerのソース見ると params[this.meta.root] に突っ込んでる。
 で、WriterのmetaってのはReaderのmetaの複製。これはStoreのコンストラクタでやってる。
 前のえんとりExtJs-65でラップしてるのでシステム内は「rows」ってことになる。a
 サーバサイドでstring reqdata = Request.Form["rows"].ToString();
 でアクセス可能。よしよし。


②Json.netが使えていない。
 ってーのもJobjectクラスのParseメソッドしか触っておらず、
 単一情報だったときは泥臭く、『[{一行情報}]』の『[]』をTrimしてParseにかけてた。
 うごきゃーいいし、ってのりだったのでまったく見ていなかかった。
さて、複数だとこまるー。
 ってことでちゃんとリファレンスを読むとJarrayクラスがある。
 想像通りJobjectの配列返却。問題なし。

ってことでめでたく、、
複数行のCRUD実装のゴールが見え隠れ。

コンテキストメニューの実装を加えればこの開発の基礎周りは出来上がり。
よかった。今日はもう寝る。

2009年12月24日木曜日

復活の呪文

完全とまではいかないけど復活。。
SDカードをHD代わりにはもうしない。。。


で、復活の呪文
参照の追加で system.transactions.dll

#TransactionScope使ってんのわすれてて、ビルドエラーおきた。

動作確認取れたし、ひとまずおしまい。。ねよー。

2009年12月23日水曜日

やばいこわれた


あらー。
こわれたよー。

もうだめだめちゃんです、。。。

意気消沈。

2009年12月21日月曜日

さむい

あと一時間で起きる時間。

ねるべきか、
おきてそのまま出社するべきか。

微妙にねむくないんだよなぁ。。

ややピンチ

子供寝かしつけたらねてしまい、
1時半過ぎにおきてめがさめているので
いろいろといじくり始め。

さぁそろそろ寝る前にソースでも眺めようかとおもい、、、
実行させるもコンパイルエラー。

あれれついこの間動いてたのに。
寝ぼけたかな?とおもい、コンパイルエラーを起こすファイルを
開こうとすると壊れてるっていう。

ファイルはある。テキストエディタでも動かない。
バイナリエディタでは、、確認するのわすれた。。

で、いまは
CHKDSKしろっていうからしてたらそのファイル、
最初のアロケーションユニットがうんたらっていってて壊れてたっぽい。

そのほかも多数。。
あららなかんじで、そろそろバックアップでもとっておくかな。
その前に。「っつーか寝ろよ。」って自分突っ込みを。

2009年12月18日金曜日

SQLServer2008の列変更

EeePCからデータベースを移行して
接続確認したんだけど、
なぜか小数点列がfloatとかで定義してて、、
あれまぁとdecimalにしよっと。と変更したんだけど、、、

"変更の保存が許可されていません"

っていう。

そうなんですか?
http://support.microsoft.com/kb/956176/ja
だそうです。

おっしゃ。できた。

2009年12月17日木曜日

はやー

メモリ4Gにして64GBのSSDにしたら
ログイン画面まで48秒だったのが25秒になった。
はやー。

今日は開発環境つくりー。
captureSTAFF LITEが使えなさそうで悲しい。
64bitの障壁ってこのあたりなのかな。

テキストエディタ、バイナリエディタも大丈夫そうだし。
ZoomツールもOK。

今はSQLServerインストール。
このあとVS2008入れておしまい。
もう眠いので寝ようっと。

2009年12月14日月曜日

ExtJs-65 Ext.data.Writerで。。。meta。

また眠りながらコードを書いていたせいか
どこまで書いてたかわからなくなってUNDOしても
何があってるかわからなくなって。

要するに動かなくなって困ったということ。

現象は
ProxyにapiでCRUD別にURLを設定してEditorGridで編集してもUpDateでなくてCreate
が呼ばれてしまう。

追ってみて途中で気がつく。
storeのsaveメソッドは
Delte
Create
Updateの順に実行される。
判断基準は
removeリスト要素チェック→Delte実施。
ModifiedRecordsリスト取得
 →rs[i].phantom情報化チェック→新規追加行か?
 →
あぶれたものをUpdate

とこんな具合?

さて、このphantomフラグ。
なぜtrueなんだろう?
このphantomフラグがtrueに為る契機は
record.id内による。
このidに触れる部分はrealizeメソッド、でいいのかな。
でもrealizeは今回直接的には関与せず。
問題はidが設定されていないとされてデフォルトの
ExtJs側が付与するコードつまり現実でない状態ってのが問題。

プライベートメンバの_phidにidせっとっして
そのあとid=でdataのmeta.idproperty値をセットしている。。

あれ?metaデータってid,root,totalPropertyジャなかったっけ?
ソースコードを確認するとidで実装してる。
これじゃぁ認識してくれないわけだ。
そそくさとidからidPropertyに変更して実行。

ちゃんとUpdate用のURL、呼んでくれました。めでたし。

#疲れているときのプログラムは本当に危険がいっぱい。
しかしこのmetaの説明ってちゃんとしたのはどこに書いてあるんだろう。

ひとまずラップして使うことにした。
/**
* @class ExtWrapper.Reader システム共通リーダ
* @namespace ExtWrapper
* @extends Ext.data.JsonReader
* @cfg {Array/Object} フィールド情報
* @constructor and @param
*/
ExtWrapper.Reader = function(config){
var meta = {
idProperty: 'id',
root: 'rows',
totalProperty: 'results'
};
Ext.applyIf(this, config);
ExtWrapper.Reader.superclass.constructor.call(this, meta, config );
}
Ext.extend( ExtWrapper.Reader, Ext.data.JsonReader,{
});

2009年12月13日日曜日

ようこそエイサー



予算の都合EeePCでの開発って試みてたけど、
やはりEeePCにVS2008、SQLServer2005積んでの開発は
プチストレスがあり。。。
かつ1024×600ってのもIDEの複数ペインには適しておらず。。

日進月歩。
CULVてーもんが開発されーのでもってAcerがまたヤッスクしてくれたので
ノッテミマシタ。
うはー買ってしまったよ。
Win764bitってのがうれしい限りです。

当然デフォルトでは使用するつもりはなく
メモリ4GBのSSD64GBに換装です。

ので、リカバリディスクをAcereRecoveryManagementで作成中。
最近のってリカバリディスクついてないのねー。
ブランクDVDの在庫あってよかった。

ってじつはメモリもSSDもまだ購入できておらず。
地元のPC屋が20時で閉まってしまうので
子供寝かしつけてからだと間に合いませぬ。

え?このPCはどうしたかって?
スーパーに買出しに行くがてら電気屋で。

開発ライフがまた楽しくなりそうです。
キーピッチが広くなったのでまだ不慣れ。。

EeePCは移行後修理出して居間のブラウジング専用PCになるのかなぁ。
ようやくネットブックらしく成るね。
いままで無理させてきたからお疲れ様でした。

2009年12月8日火曜日

twitter

また人の影響受けてtwitterをはじめてみた。
FeedTweetにもトーロクしてみた。

そういやみくしーにも手をつけてないな。
どうすんだっけかな。。

ってこれでTwitterに更新記録されんのかな。