- 1 名前:nobodyさん mailto:sage [2009/01/23(金) 09:46:51 ID:???]
- ●過去ログ
Part1 - 【質問】 ASP.NETスレ 【議論】 pc5.2ch.net/php/kako/1040/10406/1040698263.html 【質問】ASP.NETスレ Part2【議論】 pc8.2ch.net/test/read.cgi/php/1111480331/ 【質問】ASP.NETスレ Part3【議論】 pc11.2ch.net/test/read.cgi/php/1160355849/ 【質問】ASP.NETスレ Part4【議論】 pc11.2ch.net/test/read.cgi/php/1184683786/ (dat落ち?) あんまり需要ないのかもしれませんが。。。
- 295 名前:nobodyさん mailto:sage [2009/05/16(土) 16:34:45 ID:???]
- 2 4 9 10 が○
それ以外は×だよ
- 296 名前:nobodyさん mailto:sage [2009/05/17(日) 06:17:41 ID:???]
- 基本的にとか、望ましいとか言っちゃうとあいまいさがのこるから
問題文もう1回精査してから回答とともにアップしなおしてくれ
- 297 名前:nobodyさん mailto:sage [2009/05/17(日) 09:24:47 ID:???]
- やだよめんどくさい。
1.Global.asaxのインスタンスはアプリケーションドメイン内で単一である 2.Global.asaxにインスタンス変数を定義するば、HttpContextのようにリクエストに関する情報を保持することができる 3.BeginRequestイベントとHTTPハンドラ(ページインスタンスなど)は常に同一スレッドで実行される 4.ViewStateUserKeyにユーザIDやセッションIDを設定すると、はCSRF対策にも利用できる 5.Global.asaxにインスタンス変数を定義すると、グローバル変数として使える 6.汎用ハンドラ(ashx)でIsReusableがtrueを返すように実装すると、そのハンドラは可能な限り再利用される 7.グローバル変数が必要な時はApplication変数を使用しなければならない 8.サーバを分散していない場合、Application変数はそのWebアプリケーション内で完全に一つである 9.ViewStateの検証が有効(デフォルト)の場合は、ViewStateの値にはインジェクション系の対策は不要である 10.Webガーデンを使用していない場合でも、そのアプリケーションプール用のワーカープロセスが複数同時に動作することはあり得る 11.認証チケットはデフォルトで暗号化されているため、HTTPSでなくても安全である(盗聴されても不正ログインはできない) 12.フォーム認証でログアウトすると、その認証チケットは無効となり、その認証チケットでは二度とアクセスできなくなる 13.SQLインジェクションは、Webアプリケーション特有の脆弱性である 1.× 2.○ 3.× 4.○ 5.× 6.× 7.× 8.× 9.○ 10.○ 11.× 12.× 13.×
- 298 名前:nobodyさん mailto:sage [2009/05/17(日) 11:05:51 ID:???]
- >>295以上の情報が何もないじゃないか
解説ぐらい書けよ
- 299 名前:nobodyさん mailto:sage [2009/05/17(日) 12:05:47 ID:???]
- 自分で調べろよw
- 300 名前:nobodyさん mailto:sage [2009/05/17(日) 12:14:56 ID:???]
- 今携帯だから後で書くよ。
疑問のある番号あるなら疑問点を書いてね。
- 301 名前:nobodyさん mailto:sage [2009/05/17(日) 12:40:24 ID:???]
- 5.Global.asaxにインスタンス変数を定義すると、グローバル変数として使える
インスタンス変数ってのは、スタティックじゃない変数ということかな? Global.asaxにPublicな変数定義しとけば、グローバルに使えると思うんだが
- 302 名前:nobodyさん mailto:sage [2009/05/17(日) 13:12:04 ID:???]
- そ、スタティックじゃないってこと。
- 303 名前:nobodyさん mailto:sage [2009/05/17(日) 13:16:28 ID:???]
- 単にグローバル変数ってのもやや曖昧だったね。
ここでは、アプリケーション全体で共有できるグローバル変数という意味。 まあだいたい一般的にこういう意味になるとは思うが。
- 304 名前:nobodyさん mailto:sage [2009/05/17(日) 16:45:45 ID:???]
- クイズ
1.Global.asaxのインスタンスはアプリケーションドメイン内で単一である 2.Global.asaxにインスタンス変数を定義すると、HttpContextのようにリクエストに関する情報を保持することができる 3.BeginRequestイベントとHTTPハンドラ(ページインスタンスなど)は常に同一スレッドで実行される 4.ViewStateUserKeyにユーザIDやセッションIDを設定すると、CSRF対策にも利用できる 5.Global.asaxにインスタンス変数を定義すると、アプリケーション全体で共有できるグローバル変数として使える 6.汎用ハンドラ(ashx)でIsReusableがtrueを返すように実装すると、そのハンドラは可能な限り再利用される 7.グローバル変数が必要な時はApplication変数を使用しなければならない 8.サーバを分散していない場合、Application変数はそのWebアプリケーション内で完全に一つである 9.ViewStateの検証が有効(デフォルト)の場合は、ViewStateの値にはインジェクション系の対策は不要である 10.Webガーデンを使用していない場合でも、そのアプリケーションプール用のワーカープロセスが複数同時に動作することはあり得る 11.認証チケットはデフォルトで暗号化されているため、HTTPSでなくても安全である(盗聴されても不正ログインはできない) 12.フォーム認証でログアウトすると、その認証チケットは無効となり、その認証チケットでは二度とアクセスできなくなる 13.SQLインジェクションは、Webアプリケーション特有の脆弱性である
- 305 名前:nobodyさん mailto:sage [2009/05/17(日) 16:49:05 ID:???]
- 回答
1.×Global.asaxは各リクエストに一つのインスタンスが割り当てられる(リクエスト完了後はプールされて再利用) 2.○1.より、リクエストに関する情報をインスタンス変数に保持することができる 3.×セッション準備時の同期化などの仕組みにより、スレッドが切り替わることがある 4.○もちろん使える 5.×1.より、インスタンス変数はアプリケーション全体で共有できない 6.×実はIsReusableは無視されている(常に再利用されない、まあこれは今の実装の話であってどうでもいい話ではある) 7.×そんなわけはない(むしろApplication変数はあまりお薦めではない、これにはいろいろ理由があるが) 8.×Webガーデンを使えば単一にはならない、またアプリケーションのリサイクルなどにより一時的に複数になり得る 9.○検証が有効であれば、少なくとも中身を改ざんされることはない(キーが漏れてるとかそういう状況はない前提) 10.○ワーカプロセスのリサイクルにより、一時的に複数同時に動作することがある 11.×盗聴されれば見事に不正アクセスできる(チケットの暗号化の意味はまた別にある) 12.×認証チケットは無効にはできない(ログアウトはクッキーを消すだけ)、とくに有効期限が長い場合これは要注意 13.×そんなわけはない
- 306 名前:nobodyさん mailto:sage [2009/05/17(日) 20:31:50 ID:???]
- こういうのは問題の出し方が難しいな
主眼をどこに置くかで結果が違いそうなこともありそうだ それはともかく知らないことがいくつかあったので勉強になったよ 今度実験してみようっと
- 307 名前:nobodyさん mailto:sage [2009/05/18(月) 18:33:02 ID:???]
- .NETっでviewState OFF設定にしても、実行したら勝手にviewStateが入ってるんだけどなんでなんだろう?
- 308 名前: [―{}@{}@{}-] nobodyさん mailto:sage [2009/05/18(月) 18:35:32 ID:???]
- >>307
イベント識別するのにもViewState使ってたと思うからその分じゃね
- 309 名前:nobodyさん mailto:sage [2009/05/19(火) 01:35:59 ID:???]
- でも.NETでできてるサイトで、ソース(htmlの)みてもviewStateが一切無いページとかあるんだよね。
つまり.NETのコントロール一切使わなければ出ないって事かな? それだと.NET使う意味ねーな・・・
- 310 名前:nobodyさん mailto:sage [2009/05/19(火) 01:54:25 ID:???]
- 例えばどこ?
- 311 名前:nobodyさん mailto:sage [2009/05/19(火) 01:55:28 ID:???]
- ああそうだMVCならでないかもね
- 312 名前:nobodyさん mailto:sage [2009/05/19(火) 21:35:47 ID:???]
- なんか、viewstate="false"ってやってても
<asp:CheckBox id="CheckBox1" runat="server" /> がたくさんあると、viewstateがえらいことになる・・・・ なんとかしてOFFにしたいもんだ
- 313 名前:nobodyさん mailto:sage [2009/05/19(火) 22:02:16 ID:???]
- 実際に20個設置してみたけど、これがえらいこと??
PostBack前の状態を維持する仕組みをhiddenフィールドで ベタに構築することを考えたら遙かにサイズは小さいと思うし、 セキュリティ的にも安心できるし、 十分に利便性はあると思うけど それを考慮してもViewStateが嫌ならASP.NETを使わないか 旧ASPとして利用するしかないね
- 314 名前:nobodyさん mailto:sage [2009/05/19(火) 23:02:51 ID:???]
- enableviewstate=falseの意味ねーじゃん
ばか?
- 315 名前:nobodyさん mailto:sage [2009/05/19(火) 23:11:27 ID:???]
- 20個設置してたら2kぐらいの文字列にならん?
- 316 名前:nobodyさん mailto:sage [2009/05/20(水) 00:04:28 ID:???]
- <form runat="server">を使わなければviewstate撲滅できるよ
使えるコントロールが限られるけど
- 317 名前:nobodyさん mailto:sage [2009/05/20(水) 00:25:56 ID:???]
- >>314
falseに設定したものはviewstate反映されてないだろ?
- 318 名前:nobodyさん mailto:sage [2009/05/20(水) 01:07:46 ID:???]
- >>317
試してから言えよ
- 319 名前:nobodyさん mailto:sage [2009/05/20(水) 13:35:47 ID:???]
- >>318
falseにしたコントロールやページに関してはViewStateに反映されないよ ただASP.NETとして必要なぶんが反映されてるだけ
- 320 名前:nobodyさん mailto:sage [2009/05/20(水) 14:49:36 ID:???]
- んだな
>ASP.NET によって使用されるページには、ポストバックを検出することを目的として、 >EnableViewState が false の場合でも読み込まれる非表示のビューステート フィールドが存在する場合があります。 ちゃんとMSDNにも書いてある。つまりASP.NETの仕様。 phpでも、ページからのpostであることを示すために、 hidden fieldで<input type="hidden" name="mode" value="postback">とかして、 $mode = $_POST["mode"];で受け取ってpostbackが入っていたらpostされたと認識して 初期処理したりするけど、それをViewStateを利用して実現してる。 これすら嫌ならもはやwebアプリは向いてないから止めたほうがいいと思う。 それかすべてsessionでやる。 モバイルASP.NETはこのViewStateの仕組みを一部のコントロールを除いて ViewStateでなくてsessionでやってるよ。
- 321 名前:nobodyさん mailto:sage [2009/05/20(水) 15:52:47 ID:???]
- ViewStateだとドロップダウンリストの選択位置とか覚えておいてくれるから便利。
PHPとかで実装しようとすると大変だろうな
- 322 名前:nobodyさん mailto:sage [2009/05/20(水) 16:52:27 ID:???]
- 基地外ばっかり
- 323 名前:nobodyさん mailto:sage [2009/05/20(水) 17:51:12 ID:???]
- >>321
大変ではないけどめんどくさいだけ 便利なのには違いない つうか、必要でないViewStateだけ残して切ればいいじゃん それすら嫌とか言うなら論外だろ 何かデータを保持るためのInputとかを別の形で実装してるようなもんじゃないか
- 324 名前:nobodyさん mailto:sage [2009/05/20(水) 18:01:54 ID:???]
- ViewState切り詰め話はTechNet辺りでもよく出てるが、
大した問題にならないから無視しろか、 サーバーコントロールは極力使わなずResponse.writeしろの、 大体この二つに分かれてる感じだな。 一時期俺も削減に躍起になってたけど、そもそもASP.NETって時点で… と気づいてからは余りこだわらなくなったな。
- 325 名前:nobodyさん mailto:sage [2009/05/20(水) 21:21:01 ID:???]
- 10KBのViewStateには超文句言うのに平気で数十KBの画像おきまくったりするページワロス
- 326 名前:nobodyさん mailto:sage [2009/05/21(木) 00:42:51 ID:???]
- 画像は受信拒否できるしなぁ
ViewStateは問答無用だろ。。
- 327 名前:nobodyさん mailto:sage [2009/05/21(木) 00:45:50 ID:???]
- 制作者からの視点で論じてたんじゃないのか?
- 328 名前:nobodyさん [2009/05/21(木) 01:36:07 ID:/8BtlCky]
- ViewStateこつこつ削ってどれだけ結果に違いが出るんだよ。ほぼ意味ねーだろ。こういう所に拘るPGはマジ使えねぇ。
- 329 名前:nobodyさん mailto:sage [2009/05/21(木) 02:38:51 ID:???]
- 携帯みたいな従量課金の場合には影響があるので
気になるプログラマはいると思う んで、ユーザ数が多いと、そういうコツコツが大事だったりするので、 なんでViewStateを完全に無くすことができないかを知りたいと思う好奇心は プログラマに必要な資質だと思う だけど、ViewStateの動作を詳しく把握してもいないのに ViewStateの存在を制御できないから気持ち悪いとか、 こんなにViewStateがたくさん埋め込まれるのは理解できない みたいなこと言ってるプログラマがいたら確かに使えない奴だと思う
- 330 名前:nobodyさん mailto:sage [2009/05/21(木) 04:14:36 ID:???]
- >携帯みたいな従量課金の場合には影響があるので
>気になるプログラマはいると思う 普通自動でセッションに保存されるでしょ
- 331 名前:nobodyさん mailto:sage [2009/05/21(木) 07:40:13 ID:???]
- 例えばGoogleの検索結果なんかはそのままブックマークできるけど、
そういうのやろうとすると邪魔じゃね?viewstate。
- 332 名前:nobodyさん mailto:sage [2009/05/21(木) 08:20:41 ID:???]
- 意味がわからん。
ViewStateに対して間違った期待をしてないか。
- 333 名前:nobodyさん mailto:sage [2009/05/21(木) 13:12:01 ID:???]
- ブックマークさせたいならGETだけでアクセス出来るようにしとくだけ。
ポストバックの結果をブックマークしたいなんてことしなければ。
- 334 名前:nobodyさん mailto:sage [2009/05/21(木) 14:32:49 ID:???]
- 当たり前のことだがASP.NET使ってるんだからそれに見合う環境は用意するべきだろ
- 335 名前:nobodyさん mailto:sage [2009/05/21(木) 14:46:42 ID:???]
- みなさんSeasar.NETやEntlibなどのフレームワークは利用されていますか?
参考までにそのメリット・デメリットなどご意見いただけないでしょうか。
- 336 名前:nobodyさん mailto:sage [2009/05/21(木) 14:59:13 ID:???]
- ENTLIB大袈裟
S2.NET合わない
- 337 名前:335 mailto:sage [2009/05/21(木) 15:29:27 ID:???]
- >>336
そうですか。 紹介している記事もちらほら見かけるし、一見便利そうだったんで 使うのが一般的なのかとおもったのですが、そうでもないんですかね。
- 338 名前:nobodyさん mailto:sage [2009/05/21(木) 15:47:46 ID:???]
- 今何もないなら試してみるのもいいとは思うよ。
俺は使う気はないがもちろん使えることもあるだろう。
- 339 名前:nobodyさん mailto:sage [2009/05/21(木) 15:49:01 ID:???]
- 覚えれば便利そうだねぇ
.NETに取り入れてられればいいんだけど 標準でないものを使うのは気が引ける といいつつJQuery使ってるけどw
- 340 名前:335 mailto:sage [2009/05/21(木) 17:29:21 ID:???]
- 今の仕事はClassicASPがほとんどなんです。
その片手間で.NET学習しながら次の案件を・・・とは考えているのですが、 なかなか時代の進歩に学習が追い付かなくて悩んでたんです。 ご意見ありがとうございました。参考にいたします。
- 341 名前:nobodyさん mailto:sage [2009/05/21(木) 18:47:50 ID:???]
- 念のために書いておくと、
ASPの片手間でASP.NETは無謀。
- 342 名前:nobodyさん mailto:sage [2009/05/21(木) 20:31:49 ID:???]
- >>333
Googleの検索、トップページじゃなくて検索後のページで考えれば、 動作的にはポストバックでしょ(getだけど)。 その結果をブックマークしたい、って話よ。
- 343 名前:nobodyさん mailto:sage [2009/05/21(木) 20:56:33 ID:???]
- >>342
何を言ってるんだ、お前は
- 344 名前:nobodyさん mailto:sage [2009/05/21(木) 21:10:26 ID:???]
- >>343
例えばTextBoxのサーバコントロールを設置して、 「送信」ボタンをクリックすると、自動的にPOSTでポストバックされるということを 言いたいんじゃないかと想像
- 345 名前:nobodyさん mailto:sage [2009/05/21(木) 21:38:57 ID:???]
- よくわからんが<form>をmethod="get"にするだけで、
ViewStateからなにやらクエリパラメータになるんだね 長いViewStateだと死にそうだけど 普通にクエリパラメータを作成して、Response.Redirectして 受け取り側では、Page.Request.QueryStringでGET内容を取得して 処理すれば手間(といってもphpとかなら当たり前の作業)だけど実現できそうだ つーか、phpでは当たり前の実装が手間に感じるほど PostBackは便利すぎってことだよね・・ この辺をうまく実装してくれるような仕組みってASP.NETにあったっけ?
- 346 名前:nobodyさん mailto:sage [2009/05/21(木) 21:59:07 ID:???]
- だからそういう香具師はASP.NET MVCを使えと (ry
- 347 名前:nobodyさん mailto:sage [2009/05/21(木) 22:55:04 ID:???]
- MVCの利点がイマイチよくわかんないのよね
- 348 名前:nobodyさん mailto:sage [2009/05/21(木) 23:14:05 ID:???]
- ポストバックとかViewStateとかASP.NET特有の概念が嫌いで
古き良きWeb開発をしたい人にはとても良い。 しかしまあ、Webアプリ開発初心者には普通のASP.NETのが簡単だろうな。 Java人なんかにはMVCはグッとくるかもな。
- 349 名前:nobodyさん mailto:sage [2009/05/21(木) 23:17:16 ID:???]
- >>342
クエリに検索キーがついたURLの文字列をブックマーク(記録)するだけで ポストバックとかは関係無いと思うが。。
- 350 名前:nobodyさん mailto:sage [2009/05/23(土) 08:52:49 ID:???]
- だから、ブックマークする為に
ブラウザのアドレス欄に「検索キーがついたURLの文字列」が現れて欲しい訳だけど、 form runat="server" method="post" 内のサーバコントロールに(ユーザーが)検索キーを入力した場合、 クエリ文字列は現れてくれない(URLは変化しない)し、 method="get" にすれば現れるけど、もれなくviewstateもついてくるから邪魔。 っていう話。 >>344でだいたい合ってる。
- 351 名前:nobodyさん mailto:sage [2009/05/23(土) 09:36:30 ID:???]
- まあそこは自前でやるなりするしかないでしょ。
ってのが最初から言われてることでしょ。
- 352 名前:nobodyさん mailto:sage [2009/05/23(土) 09:43:31 ID:???]
- 単純な設定変更とか、そういうレベルではできないね。
何にしても便利なやり方にはトレードオフはあるわな。 ASP.NET MVCみたいの使うとか(詳しく知らんからどんな感じにできるのか分からんけど)、 こういう用途の時だけは、ポストバックされた情報をもとに クエリやパスに直してリダイレクトして結果表示ってのが簡単かな。 >>345みたいな方法だね。
- 353 名前:nobodyさん mailto:sage [2009/05/23(土) 13:26:19 ID:???]
- そもそも論でポストバック結果をブックマークしたいってのはどういう状況?
- 354 名前:nobodyさん mailto:sage [2009/05/23(土) 13:27:16 ID:???]
- >>352
よく考えたらNameValueCollentionをメンバに持つクラスを作って、 それにAddされて内容に従って、name=value&name1=value1みたいな出力をさせて、 URL作るだけだから、そんなに面倒じゃないね 受け取り側もHttpUtility.ParseQueryStringでやれば、 URLを自動的にNameValueCollectionに入れてくれる ひょっとしたら、もっと便利なutilityクラスがあるかもしれないけど。
- 355 名前:nobodyさん mailto:sage [2009/05/23(土) 13:29:36 ID:???]
- >>353
検索結果を表示させる一覧ページとかじゃない? 例えば業務なら担当が自分のページだけをブックマークしておいて、すぐに表示したいとか
- 356 名前:nobodyさん [2009/05/23(土) 13:46:59 ID:0dm/bxqY]
- そこそこの規模の運用でサイト分けってどうされていますか?
現在、IIS上、1つのWebアプリの中に10個程フォルダ分けして運用していますが、 これら全てをチェックアウトしてくると、1ビルドに軽く10分程かかります。 したがって、毎回開発に必要な分を取捨選択して落としてきています。 以前、別の会社が作成したサイトを見せてもらった時は、 そもそもサイトはIIS上全て別Webアプリとして管理されていました。 しかし、そのためにApp_Code配下の共有ライブラリは それぞれのサイトごとに保持するという形を取られていました。 通常、あるべき管理体系を考えると前者はあり得ないんでしょうが、 後者の冗長管理もどうなんだと、いう感じです。
- 357 名前:nobodyさん mailto:sage [2009/05/23(土) 16:56:23 ID:???]
- >>355
そういう用途ならサーバ側に用意するのが普通では? 業務に関係無く、要は個人用にカスタマイズしたページだよな。。 検索結果だって毎回同じキーワードで検索する意味不明。 >>356 開発元(マイクロソフト)が発行している開発技術大全だかに 詳しく解説されてるよ。ASP.NETの応用編だったかな。 発行年月は古いが基本的なことが書かれていてためになる。 ViewStateなんかも巷の初心者向けには書かれてないことがあったりするからおすすめ。
- 358 名前:nobodyさん mailto:sage [2009/05/23(土) 17:02:05 ID:???]
- >>357
いや、だからgetで指定されてると便利な場合だよ googlemapのような緯度経度で指定してリンクを張りたいとか、 特定の商品のカテゴリ一覧だけを表示させたいとか。 一つのページ内で完結しているんでなく、 外部からのリンクを許可するような場合。
- 359 名前:nobodyさん mailto:sage [2009/05/23(土) 17:41:00 ID:???]
- >>357
そのサーバ側の用意として、getで指定するページを作るわけだが まあ、厳密にはポストバックされているページではないがな
- 360 名前:nobodyさん mailto:sage [2009/05/23(土) 17:44:57 ID:???]
- >>356
運用って何を指しているんだ? チェックアウトやビルドは通常開発段階での話だが、 開発方法をして運用っていってるのか? あるべき管理体制ってのは、何の管理をする体制のこと? ソースの管理か?
- 361 名前:nobodyさん mailto:sage [2009/05/23(土) 18:55:09 ID:???]
- >>360
エスパーすると、共有のライブラリをプロジェクト(Webサイト)ごとに 管理しないといけないから面倒ってことでしょ それでも1サイトを1プロジェクトにして参照設定して、 発行すればライブラリも発行されるからそれの何が不便なのかよくわからないけど。 同じサーバに同じDLLが複数存在することを気持ち悪いと思うのなら 感覚としては理解できるけど、逆に、そのサイトがアクセス数が増大してしまって、 個別のサーバに移植したいという需要が発生した時には、 何も考えることなくそのWebサイトだけを他に移動させればいいんで、 その点では利便性は増してると思うけど。
- 362 名前:nobodyさん mailto:sage [2009/05/24(日) 08:23:28 ID:???]
- >>350
HttpRequest.QueryString()を使えばいいだけのような気がするのだが。 別にPostBackだけが唯一のパラメータ取得の方法じゃないし。
- 363 名前:nobodyさん mailto:sage [2009/05/24(日) 16:17:44 ID:???]
- お前ホントに頭悪いな
- 364 名前:nobodyさん mailto:sage [2009/05/25(月) 16:11:35 ID:???]
- というかさ、ViewStateが「強制」なのが気持ち悪いのであって
アクセス数が多かったり、携帯だったりだと少しでも無駄は省きたいわけだ。 無駄にステートを保存してもらわなくていいし。 なんでページで「OFF」と指定しているのに組み込まれるのか。 というと、ASP.NETつかうなだとかいうやつがでてくるだろうけど、 これはMSも設計ミスと認めてるわけで、次.NETでは完全にOFFになるようだ。 結論からいうと3.5までではあきらめろ。
- 365 名前:nobodyさん mailto:sage [2009/05/25(月) 16:12:47 ID:???]
- ※ただしイケメンに限る
- 366 名前:nobodyさん mailto:sage [2009/05/25(月) 17:05:50 ID:???]
- ViewState無しで、POSTされた後であるかどうかをどうやって判断するんだろうな
改ざん無しで
- 367 名前:nobodyさん mailto:sage [2009/05/25(月) 17:07:56 ID:???]
- 携帯はモバイルASP.NET使わないほうが悪い
- 368 名前:sage mailto:sage [2009/05/25(月) 17:44:02 ID:???]
- キーが「日付」「SEQ」のテーブルがあって、それを表示させるウェップページを考えています。
表示させる際に、日付でグループ化したいんですが -------- yyyy/mm/01 ・01 xxxxxxx ・02 xxxxxxx yyyy/mm/02 ・01 yyyyyyy ・02 ccccccc -------- みたいな感じで。 .NET2.0だと、Repeaterの入れ子で実現するしかないでしょうか?.NET3.5だとListViewで お手軽に実現出来そうなんですが。
- 369 名前:nobodyさん mailto:sage [2009/05/25(月) 18:06:49 ID:???]
- テーブル構造がよく分からないが、
SQLテーブルに日付テーブルの日付をinner joinして 日付テーブルID、SEQテーブルID、日付、項目というテーブルを取得して、 日付でソートし、日付が異なるたびに実行時バインドで<tr><td>yyyy/MM/dd</td></tr> という行を表示してやればrepeaterを入れ子にしなくてもいいんでね?
- 370 名前:nobodyさん mailto:sage [2009/05/25(月) 18:10:14 ID:???]
- >>368
最終的にどんなHTMLにしたいか考えたら結構簡単だと思うんだけど・・・ どんな方法だって実現できると思うけど? あれだけど、極端な話テーブル使う方法もあるだろうし
- 371 名前:nobodyさん mailto:sage [2009/05/25(月) 20:34:29 ID:???]
- 日付、SEQでソートして、日付が変わったときだけ日付を表示すればいいんだろ
入れ子にする必要なんてないだろ 日付の部分だけ実行時バインドで、表示するかどうか判定するロジック組めばいいんじゃね
- 372 名前:nobodyさん mailto:sage [2009/05/25(月) 22:49:35 ID:???]
- >次.NETでは完全にOFFになるようだ。
詳しく
- 373 名前:nobodyさん [2009/05/26(火) 00:59:11 ID:/YYr/a48]
- >>372
ASP.NET 4.0でMVC Framework標準装備って話でしょ。 ただ、MVC採用が現行の切り捨てに直結はしないと思うが。
- 374 名前:nobodyさん mailto:sage [2009/05/26(火) 12:50:31 ID:???]
- そういう意味なの?
どう考えても置き換わるもんじゃないのに。
- 375 名前:nobodyさん mailto:sage [2009/05/26(火) 14:00:24 ID:???]
- コードビハインドがなくなったら、
いままでのサーバコントロールとか一式駄目になるな
- 376 名前:nobodyさん mailto:sage [2009/05/26(火) 14:12:00 ID:???]
- うーむMVCも触ってみようかな
- 377 名前:nobodyさん mailto:sage [2009/05/26(火) 20:37:00 ID:???]
- MVCやってみた
実行時バインドを多様してhtmlとコードを分離してるってだけみたいな感じだね M→Linq To SQLやLink To Entityなどデータベースからデータを取得する V→htmlと実行時バインド C→実行時バインドの結果だけを作るクラス こんな感じ? むかし普通のASPの頃、デザインとコードを分離したくて、 1)デザイナの作成したhtmlの任意の場所に##Result##みたいなマーカーを設置する 2)ASPで出力するhtmlを作成する 3)ASPでFSOで1)を読み込んで、##Result##の文字を2)で作成したhtmlで置換する なんてことをやってたけど、これをシステム化した感じだ コードとデザインを別の意味で分離できるからこれはこれで便利なんだろう ただ動的に生成されるタグは少なからず存在するので JavaScriptの問題はやっぱり解決はできなさそうだ。
- 378 名前:nobodyさん mailto:sage [2009/05/27(水) 10:49:08 ID:???]
- VWD 2005 Express Editionを使っています。
データベースのテーブル作成で、 列名'ID' を IDENTITYの指定で(Is Identity)>「はい」を選択し ・IDENTITYインクリメント=1 ・IDENTITYシード=1 とした場合、 「テーブルデータの表示」を開くと、自動的に初期値ID=1が表示され、 1レコードを入力完了すると、自動的にID=1が表示される。 となるのではと思うのですが、 'ID' の欄が「セルは読み取り専用です。」と(タスクバーに)表示され手入力不可。 これはよいのですが、データがNULLのままです。 どうすれば自動的にIDが入力されるようになるのでしょうか?
- 379 名前:anon mailto:sage [2009/05/27(水) 11:44:02 ID:???]
- >>368
まともな回答が付いてないようなので。 repeaterをネストさせるのが一番簡単だと思うよ。 DataSetとしては、日付をDistinctしたものと、テーブルをそのまま取得し たものの2つを用意して、2つの間でリレーションを設定。本文を格納した DataSetに対してはDataViewを設定。 これで階層構造で表示させられる。
- 380 名前:nobodyさん mailto:sage [2009/05/27(水) 12:18:04 ID:???]
- >>379
>まともな回答が付いてないようなので。 >>369,371は無視か? それともまともじゃないというのか? Repeaterのネストは本人も方法として言ってる 簡単かどうかは考え方によるだろうが データセットにリレーション張ってRepeaterネストさせるぐらいなら、 日付ブレークの判定いれる方が簡単だと思うがな
- 381 名前:nobodyさん mailto:sage [2009/05/27(水) 12:58:36 ID:???]
- VWD 2005 Express Editionを使ってます。
GridViewに編集ボタンを付けて実行し 編集ボタンをクリックすると、下記のエラーメッセージが出ます。 「使用されている SQL Server のバージョンでは、データ型 'date' がサポートされていません。」 スタック トレースを見ても意味が分かりません。 何処を直せば、あるいはパッチの追加インストールとか必要なのでしょうか?
- 382 名前:nobodyさん mailto:sage [2009/05/27(水) 13:04:36 ID:???]
- どういうデータをどうバインドしてんだよ、こんちくしょうが。
- 383 名前:nobodyさん mailto:sage [2009/05/27(水) 13:07:41 ID:???]
- >>378
設定してすぐにテーブルを開くと表示されてるのは、 全部のフィールドがNULLになってると思うけど、 これは新規に行を追加するところだから 何かしらを入力(ID以外のデータ)してenterキーを押して決定すると 新しい行がデータベースに追加され、IDが表示される
- 384 名前:nobodyさん mailto:sage [2009/05/27(水) 13:09:52 ID:???]
- >>381
わかんないけど、日付を表示させようとすると、 そういうエラーが発生するんだよ ソースを表示するとGridView内にタグにdbtype="date"みたいな 表示がかかれてるところがあるから、そのdateをdatetimeにすると 正常に表示される。 編集や削除を許可してるなら、その数のぶんだけあるから 複数修正すること
- 385 名前:nobodyさん mailto:sage [2009/05/27(水) 13:33:53 ID:???]
- >>384
できました!なじゃこりゃw ありがとうございます!バグなんですかねこれって?
- 386 名前:nobodyさん mailto:sage [2009/05/27(水) 13:40:46 ID:???]
- DB側の仕様が変わったのについてこれないんだろうぁ
- 387 名前:nobodyさん mailto:sage [2009/05/27(水) 14:08:08 ID:???]
- >>385
IME ga kowareta ze ww tabunn kono fix program jya ne? install shitara kekka houkoku plz connect.microsoft.com/VisualStudio/Downloads/DownloadDetails.aspx?DownloadID=17185
- 388 名前:nobodyさん mailto:sage [2009/05/27(水) 21:23:09 ID:???]
- あなるせっくすしたい
- 389 名前:nobodyさん mailto:sage [2009/05/28(木) 17:38:31 ID:???]
- すみません。あちこちググってもわかりませんでした。天才様、お願いします。
asp.net(1.1)webサイトAがあります。 これは現在順調に動いています。 アプリケーションルートはwwwrootにあります。 ところが、このサイトを携帯サイトにも対応させようということになり wwwroot直下にmovileというアプリケーションを登録し、元のサイトのコードをすべてコピーしました。 現在はまだここまでで、携帯にhtmlをコーディングし直しているわけではなく、PCで閲覧してテスト中です。 データベースからのデータを得る部分はwwwroot直下の別アプリケーションwevserviceを参照しています。 これはコピー元、コピー先ともに同じです。 ところが、単なるポストバックプログラムは動くようになったのですが、wevseervicceを参照している部分だけ >>System.Net.WebException: 操作がタイムアウトしました。 エラーが出ます。web.configはすべてコピー元と同じ設定にしてあるのですが、movileアプリケーションだけが エラーを出します。 どこかに同一サーバー内の別アプリを区別するセキュリティやタイムアウトの設定があるのでしょうか? ヒント、誘導でもいいのでお願いします。
- 390 名前:nobodyさん [2009/05/28(木) 17:53:13 ID:wAV+Bwsc]
- すみませんageさせていただきます。レスお願いします。
- 391 名前:nobodyさん mailto:sage [2009/05/28(木) 18:43:17 ID:???]
- わかんないけど、単にディレクトリ掘っただけならweb.configまでコピーする必要ないんじゃないのかな
IISサービスマネージャ(スナップイン?)で、新たなアプリケーションを追加(仮想ディレクトリの追加?)を 追加して新しいサイトとしてやってみるのは試してみた? どこで処理が止まってるかデバッグで確かめて、 その接続がなんでいかないかを考えたほうが早いようなきもするけど。 あとmovileじゃなくてmobileね
- 392 名前:nobodyさん [2009/05/28(木) 19:08:30 ID:wAV+Bwsc]
- >>391
ありがとうございます。 web.configをコピーしたのには、将来的にcookieless=trueとして携帯サイトとしてクッキー対策するためと ログイン画面への遷移を指定するためで、どちらもアプリケーションルートのweb.configのみという制約があるのです。 処理が止まっているのはwebサービスの応答待ちです。 webサービス側はまったくリクエストが届いていない感じです。 サーバー内には目立ったエラーログはありません。
- 393 名前:nobodyさん mailto:sage [2009/05/28(木) 19:13:32 ID:???]
- なので、一つ一つ試してみたら?
web.configがなかったらどうかとか、 webサービスがなんで動作しないのか、 可能性を一つ一つ試して排除してみるしかないと思う。 asp.net 1.1 とwebサービスの特有の何かしらの症状なら、 あまり利用したことがないから想像がつかないけど。
- 394 名前:nobodyさん [2009/05/28(木) 19:21:36 ID:wAV+Bwsc]
- >>393
ありがとうございます。 なるほど!テストしてみます!
- 395 名前:nobodyさん mailto:sage [2009/05/28(木) 19:27:17 ID:???]
- >wwwroot直下にmovileというアプリケーションを登録し、元のサイトのコードをすべてコピーしました。
>データベースからのデータを得る部分はwwwroot直下の別アプリケーションwevserviceを参照しています。 ああ、別アプリに登録してるのか。 それだと、webserviceが共通で利用できない可能性ってないのかな? 俺が勘違いしてるね。スマン
|

|