timnishのにっき

2008-11-20 やっと Web Parts きのうのかどうにせいこう

やっと Web Parts きのうのかどうにせいこう

くろうのまつ、やっと Web Parts きのうをかどうさせることができた。ぜんかい、Vista かんきょうのもと Web パーツでこうせいされるサンプルページをさくせいしたさいには、このページをひょうじすることができなかった。

なぜなら、Web Parts きのうではここのユーザがそれぞれのせんたくでページのこうせいやがいけんをへんこうすることができるので、パーソナリゼーションがひつようになる。ASP.Net 2.0 ではMicrosoft SQL Server Express Edition をつかいパーソナリゼーションをじっしするのがデフォルトになっている。Visual Studio 2005 はアプリケーションのApp_Data フォルダにExpress Edition から ASPNETDB テーブルファイルをじどうてきにはいちする。はじめて VS 2005 をつかうかいはつしゃにはひじょうにべんりかもしれないが(Express Edition はむりょうでダウンロードできる)、ASP.Net 1.1/VS2003/SQL 2000 のかいはつかんきょうから ASP.Net 2.0/ VS2005/SQL 2005 にいこうするわたしにとってはおおきなしょうがいとなった。たんに WebPartManager をいれただけのページをロードしようとしたとき、さっそくつまずいた。Machine.config のしじにしたがって、ざんじSQL Express のロードをこころみたあとデータベースエラーがレポートされてページのロードにしっぱいした。web.config にコーディングしてページを SQL 2005 ゆうどうするほうほうをべつのほんからはっけんするまで、かなりじかんをついやした。このほんからきほんのほうほうをまなんだが、たんに WebpartManagement をふくむだけのページをロードするまでには、なんかいもコードをかきかえなければならなかったのはいうまでもない。

さて、いよいよ Web Parts をいれたページをロードすると、なんとテンプレートのなかにいれたすべてのサーバコントロールのうえに“Untitled 1”“Untitled 2”…などがじゅんばんにひょうじされていておどろいた。ASP.Net 2.0 ブックからのサンプルページにあった“title=xxxx”のぶぶんにたいして Vs 2005 がエラーだともんくをいっったので、これをさくじょしたけっかむひょうだいとなってしまったのだ。そこで、エラーけいこくをむししてタイトルそうにゅうをふっかつしたところ、ただしいひょうだいがひょうじされた。

またブックからのサンプルコードで、“for each (…in WebPartManager1.SupportedDisplayModes)”をつかうこうぶんにはかんしんさせられた。しかし、ざんねんながら VS 2005 C# はエラーだといってこのコードをコンパイルしないのだ。そこでしかたなく、4つのモード、Browse、Design、Edit、Catalog をしゅどうで <asp:ListItem> せんげんをつかいドロップダウンコントロールにそうにゅうした。このほうほうでもきのうするのだが、もんだいはサインインせずに Browse いがいのモードをせんたくするとみにくいエラーがひょうじされるてんだ。そのかいけつほうほうとして、むめいのばあいはこのドロップダウンコントロールをひひょうじにして、ぶじしゅうりょうした。

<えいごにスイッチ>

2008-09-23 しんきの2.0ログインきのうがていきょうするユーザかんりシステムをテ

しんきの2.0ログインきのうがていきょうするユーザかんりシステムをテスト

しんきのウェブサイトは、バイリンガルけいしきのブロッグさくせいをサポートするばしょにするけいかくなので、ユーザかんりのかんれんページはVistaのかいはつかんきょうからインポートせずに、はじめからさいさくせいしてかくてじゅんをテストしてしょうらいのさんしょうとすることにした。

ログインセクションでていきょうされるしんきのう、ならびにロールかんり API のもくてきはしゅしゅのユーザかんりコーディングのじどうかで、デフォルトデータベースとして“aspnetdb”をしようする。このデータベースは“Visual Studio Command Prompt”からよびだす“ASP.NET SQL Server Setup Wizard”でじどうてきにさくせいされる。

“aspnetdb”データベースでは、” aspnet_Membership、aspnet_Roles、aspnet_Users、 aspnet_UsersInRoles”の 4 テーブルがきょうどうでにんかきのうをじっこうする。さいしょの 2 テーブルには、のちの 2 テーブルとかんれんづける ID らんがある。この ID は、にゅうりょくされるなまえ(ユーザめいとロールめい)とはむかんけいけいにじどうせいせいされるので、おなじなまえをふくすうかいにゅうりょくすることができる。さらに、さいごのテーブルをのぞき、かくテーブルにはアプリケーション ID らんがあり、テーブルをアクセスするそれぞれのアプリケーションがきろくされる。Visual Studioデバッガーからアクセスするばあいと、つうじょうのブラウザからアクセスするばあいとでは、べつべつのアプリケーションがきろくされる。したがって、ぜんしゃでにゅうりょくしたユーザはこうしゃではにんしょうやにんかされない。ぎゃくもどうようである。

Property きのうにかんしては、メンバーきのうとどのようにかんれんするのかふめいである。メンバーきのうでにんしょうされたのち、aspnet_Profile テーブルにkey/value けいしきできにゅうすることができる。しかし、ユーザ ID はにんしょうされたユーザ ID とはまったくむかんけいになっている。このテーブルを aspnet_Membership テーブルとどうやってかんれんづけるのかさらにしらべるひつようがる。

<えいごにスイッチ>

2008-09-01 しんきのXPでかいはつかんきょうをせっていするためながいかんおやすみ

しんきのXPでかいはつかんきょうをせっていするためながいかんおやすみ

Vistaときぞんのネットワークでのさぎょうではしゅしゅのもんだいがはっせいししつぼうしたので、しんきのコンピュータをXPプロフェッショナルでこうにゅうしあらたなネットワークをさくせいすることにした。しかし、しんきのネットワークでかいはつかんきょうをさいせっていするのにながいかんかかってしまった。Vistaのふるいかんきょうをほうきしたじてんにいまようやくとうたつした。

こんかいのTIMEOテーブルかんりページのさいこうちくでは、SmartTagをつかいかんたんにTIMEOせつぞくのSqlDataSourceをさくせいすることができた。またさくじょきのうもSmartTagでかんたんにさくせいすることができ、まえのブロッグでせつめいしたきゅうかんきょうのもとでのたいへんなくろうとはじつにこうたいしょうであった。

きゅうネットワークのときには、インターネットのそくどがおそいのはVistaのせいだとおもっていた。しかし、しんきのルーターによるあたらしいネットワークのせっていで、これはまちがいであることがわかった。しんネットワークにとまっているVistaパソコンでも、しんきのルーターによりインターネットはこうそくになっている。ていそくのげんいんは、じつははんぶんこわれていたふるいルーターであったのだ。

おどろいたことに、ちょうじかんをひつようとしたのは6ねんふるいXPコンピュータからあたらしいXPコンピュータへのかいはつかんきょうのいどうであった。ふるいコンピュータはトラブルがおおすぎたので、あたらしいコンピュータにすべてのファイルをコピーし、ぜんしゃをかんぜんにクリーンアップしてテレビにせつぞくし、ネットワークないでデジカメでとったしゃしんひょうじせんもんとした。そしてあたらしいXPにVisual Studio 2003と2005、ならびにSQL 2000と2005をインストールした。VistaのようにVisual Studio 2003とSQL2000のインストールをきょひしたり、Visual StudioSQLのりょう2005はんにはアップグレードバージョンのダウンロードをようきゅうしたりすることはなく、XPにはすべてをもんだいなくインストールできた。

しかしVisual Studio 2003とSQL2000でコピーしたアプリケーションデータベースをじっこうするだんかいで、あたらしいXPはストップしてしまった。TIMEOウェブアプリケーションでは、ふるいコンピュータでただしくにほんごをひょうじしていたにほんごテキストが、すべてもじばけしてアルファベットのごみひょうじになってしまった。したがって、すべてのページをさいさくせいしてにほんごをしゅうふくし、TIMEOウェブサイトにさいインストールしなければならなかった。また、ふるいコンピュータからコピーしたデータベースファイルは、しんきのコンピュータのSQL2000がいっさいにんしきせずむようのちょうぶつとなった。げんざいは、リモートのTIMEOウェブサイトにあるデータベースのみをりようせざるをえなくなっている。

じょうきとはたいしょうてきに、VistaからあたらしいXPへのいどうはひじょうにえんかつだった。Visual Studio 2005できぞんのウェブページをクリックし、Vistaからコピーしたファイルをただえらぶだけでかんたんにインポートすることができた。

<えいごにスイッチ>

2008-06-23 Web せつぞくに SqlDataSource ではなく ObjectDataSource をしよう

Web せつぞくに SqlDataSource ではなく ObjectDataSource をしよう

SmartTag きのうをつかって TIMEO の SqlDataSource せいせいにしっぱいしたので、SmartTag をつかい ObjectDataSource のせいせいをこころみたところ、これはみごとにせいこうした。

SmartTag で Bots, Comments, Commentsja, Person かくテーブルのデータひょうじページをじどうてきにさくせいすることができた。Smart Tag きのうは SqlManagement クラスにあるすべてのメソッドをドロップダウンリストでひょうじするので、これからひょうじゅんひょうじメソッドをせんたくすることができた。このメソッドはテーブルめいをもじれつひきすうとしてうけとり、していされたテーブルのすべてのれつをひょうじする。しかし、このきのうを“さくじょ”にもえんちょうして、おなじクラスにあるひょうじゅんさくじょメソッドをよびだそうとしたところしょうがいにそうぐうした。このプログラムはテーブルめいにくわえて、さくじょするつらの ID ばんごうをしめすせいすうひきすうをうけとる。しかし、SmartTag がここでせいせいしたコードは、していされたひょうじゅんさくじょプログラムをみつけることができなかった。りゆうはまったくふめいである。

したがって、ID ばんごうをしゅどうでテキストボックスににゅうりょくし、ボタンをプッシュしてひょうじゅんさくじょメソッドをよびだすおなじみのほうほうをとった。これを Person テーブルページでテストしたところ、つぎのラインで SQL エラーがはっせいした:

int RowsAffected = MyCommand.ExecuteNonQuery();

コンパイラはエラーメッセージをひょうじしたが、このメッセージからはエラーのげんいんがわからなかった。したがって、エラーのげんいんをみつけるため SQL れいがいメッセージをよむことにし、ひょうじゅんさくじょメソッドをつぎのようにかいていした。

Try

{

MyConnection.Open();

int RowsAffected = MyCommand.ExecuteNonQuery();

MyConnection.Close();


return RowsAffected.ToString();

}


catch (SqlException SQLexc)

{

return SQLexc.ToString();

}

このかいていから、エラーがインライン SQL コマンドにあることがわかった。Delete ののち、まちがって select コマンドからの * をづけていた。さらに、パラメータめいのまえに @ をつけるのをわすれていた。しょうらいは、からならずこのこうぶんをつかいエラーが SQL れいがいメッセージでわかるようにすることにした。

<えいごにスイッチ>

2008-06-05 Webせつぞくではだめ

かくテーブルをかんりするページをつくるモデルページをさくせいしたが、Webせつぞくではやくにたたなかった。

コメント・トラックバックをかんりするしんきかんりページをかいはつするまえに、あたらしいGridView/DetailsViewをふくしゅうして、DataGridにさくじょ・へんしゅうボタンをさくせいするためながいOn_Initコーディングをかくのをしょうりゃくできないかしらべてみることにした。

このもくてきで、ASP.Netのほんからのサンプルページをさいさくせいすることにした。このかていでGridViewページとDetailsViewページをおなじページにけつごうすると、すべてのテーブルかんりページをさくせいするモデルページになることがわかった。テーブルかんりページにはひょうじ、へんしゅう、さくじょきのうがひつようだからだ。

このモデルページは、DesignビューにあるSmart Tagをしようしてさいさくせいした。Smart TagきのうがASP.Net CodeとSQL Queryをじどうてきにせいせいしてくれるので、じつにらくにSqlDataSource、GridView、DetailsViewをさくせいすることができた。このきのうはAuto Generate ColumnsやAuto Generate Rowsをむこうにして、ASPXページにちょくせつコードでBound Fieldsをせいせいしてくれるので、On_Initにながいコードをかくひつようをなくしてくれる。しかしQuery Builderきのうはまったくコードせいせいのやくにたたず、ほんのサンプルページからDelete QueryやUpgrade Queryコードをはりつけざるをえなかった。

じょうきのモデルでテーブルかんりページをさくせいするまえに、つい Botsぼうぎょページをさくせいすることにした。このページではぜんかいにゅうりょくから100つらのみのコメント・トラックバックをひょうじしてテーブルがBotsのこうげきでいっぱいになっていないかをテストする。こうげきがあればひょうじされているすべてのれつをさくじょするボタンをクリックする。こうげきがなければつうじょうのテーブルかんりページにジャンプするリンクがある。さらに、Botsテーブルをひょうじするボタンもさくせいし、さくねんのBotsこうげきをきろくしたデータがすべてほぞんされているのをはっけんした。このひょうじをみてきろくされたBotsのじゅうしょをじゅんばんにソートするひつようせいをかんじた。

まえにさくせいしたGridViewモデルにしたがいBotsテーブルかんりページのさくせいをかいしした。ところがSmart TagきのうによるTIMEOせつぞくストリングをつかうせつぞくにしっぱいし、このきのうはしつぼうにおわった。たぶん、このきのうがさどうするためには、データベースがおなじコンピュータになければならないのだろう。したがって、SQLせつぞくコードをさくせいするこれまでとおなじルートをたどらざるをえなくなり、デザインページでSmart Tagをつかうよりはながいじかんがひつようになるだろう。すべてのテーブルかんりページでつかう、べつのモデルをさくせいするひつようがでてきた。

<えいごにスイッチ>

www.learn-japan.org(romaji/hira/kata/hirakata)