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 StudioとSQLのりょう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をつかうよりはながいじかんがひつようになるだろう。すべてのテーブルかんりページでつかう、べつのモデルをさくせいするひつようがでてきた。

