[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 2chのread.cgiへ]
Update time : 10/17 05:12 / Filesize : 262 KB / Number-of Response : 797
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

【質問】ASP.NETスレ Part5【議論】



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落ち?)

あんまり需要ないのかもしれませんが。。。

280 名前:nobodyさん mailto:sage [2009/05/16(土) 00:33:16 ID:???]
最近VB.NETでのレスをよく見かけるが、実業務のasp.netでもVBって多いのか?
言語の優劣を語る気はないがなんとなく気になったC#使い。

281 名前:nobodyさん mailto:sage [2009/05/16(土) 02:18:45 ID:???]
もともとのASPがVBだから、その流れでVBが多いんじゃない?
業務系もVB6の流れを汲むところは、今でもVB.NETが多いし

新しい言語に切り替えるって難しいよね
新しいテクノロジに理解があるところばかりじゃないし
過去の資産に縛られたりして


282 名前:nobodyさん mailto:sage [2009/05/16(土) 03:21:32 ID:???]
で旧VBで下手に培われてしまった悪しき習慣が.NETにも浸食するんだぜ。
VBの頃はネットが普及したせいで、ばかみたいなコードや習慣が広がりすぎた。
でその悪しき習慣をASP.NETとかにまでそのまま持ってくるもんだからとんでもないことに。


283 名前:nobodyさん mailto:sage [2009/05/16(土) 03:24:32 ID:???]
>>280
俺はC#だ
VBなんて見ただけで寒気がする

284 名前:nobodyさん mailto:sage [2009/05/16(土) 04:40:23 ID:???]
質問
1.Global.asaxはシングルトンか?
2.Global.asaxにインスタンス変数を定義して、HttpContextのようにリクエストに関する情報を保持するのは問題ないか?
3.BeginRequestイベントとHTTPハンドラ(ページインスタンスなど)は常に同一スレッドで実行されるか?
4.ViewStateUserKeyはCSRF対策に利用できるか?
5.Global.asaxにインスタンス変数を定義して、グローバル変数として使えるか?
6.汎用ハンドラ(ashx)でIsReusableがtrueを返すように実装すると、そのハンドラは基本的に再利用されるものと期待できるか?
7.グローバル変数が必要な時Applicationオブジェクトを定義するのは望ましい方法か?
8.サーバを分散していない場合、ApplicationオブジェクトはそのWebアプリケーション内で完全に一つとみなしてよいか?
9.ViewStateは基本的に改ざん防止策がほどこさえているので、ViewStateの値は基本的に信用してよいか?
10.Webガーデンを使用していないのに、そのアプリケーションプール用のワーカープロセスが複数同時に動作することはあり得るか?
11.認証チケットはデフォルトで暗号化されているため、HTTPSでなくても安全か?
12.フォーム認証でログアウトすると、その認証チケットでは二度とアクセスできなくなるか?
13.SQLインジェクションは、Webアプリケーション特有の脆弱性か?


285 名前:284 mailto:sage [2009/05/16(土) 12:15:07 ID:???]
ちなみに俺はリアルモンク属性だからはやく答えないと病院食を食うことになる

286 名前:nobodyさん mailto:sage [2009/05/16(土) 12:23:16 ID:???]
自分で調べろって感じだな

287 名前:284 mailto:sage [2009/05/16(土) 12:36:25 ID:???]
実は理解度クイズだよ。
正答率は自称詳しい人でも結構低かったりもする。

>>285誰だよおまえはw


288 名前:284 mailto:sage [2009/05/16(土) 12:38:15 ID:???]
とでも書けば、誰かが答えてくれるに違いない



289 名前:nobodyさん mailto:sage [2009/05/16(土) 12:44:04 ID:???]
いやいやクイズという限り、いつか出題者が回答するから問題ない

290 名前:nobodyさん mailto:sage [2009/05/16(土) 12:46:21 ID:???]
まあ言われてみれば誤解さえれそうだが、ほんとにクイズだよ。
俺がさっきちょっと考えてみただけの。
テストや宿題じゃなくて(っていうか中身見りゃわかるだろうけど、そういうレベルの問題じゃない)
正解は○がって数書こうと思ったけど、結構偏ってるな、疑うなら書くが。

問題のニュアンスはわりと詳しいつもりやつが理解してないことが多かったもの。
その前に内容がマニアックに偏ってるけどな。


291 名前:nobodyさん mailto:sage [2009/05/16(土) 12:58:07 ID:???]
こんな?

1× 2× 3? 4○ 5× 6? 7× 8○ 9○ 10?
11○ 12? 13×

?のとこはワカンネ
あと設定次第だったり、環境次第だったりするところがあるよね
ViewStateUserKeyが空文字の場合とか、
認証チケットは暗号化されてるけど認証に至るまでの経緯でhttpsでないと安全でない場合とか

292 名前:nobodyさん mailto:sage [2009/05/16(土) 13:04:00 ID:???]
いや8も×か 中身じゃなくてApplicationオブジェクトそのものは別インスタンスかな


293 名前:nobodyさん mailto:sage [2009/05/16(土) 13:08:00 ID:???]
正解は5個、かな?(ざっと確認してみたから間違ってたらすまんね)

環境しだいだったりするのは確かにあるが、
環境を特殊にどうこうした場合とかではなくて
一般的な標準的な状態と思ってもらっていい。
ViewStateUserKeyの場合はもちろん文字列をうまく設定すれば普通に利用できるか?という話だし、
認証チケットの扱いも特殊な状況は想定していない。
単にHTTPSじゃない経路で認証チケットを使うのは安全か?(認証チケット自体は暗号化されているが)。
ということ

Applicationオブジェクトは、そこに保存した変数というか、中身のことと思ってくれていいよ。
書き方悪かったな、いわゆるApplication変数はサーバ内で完全に一つと思っていいか?ということ。

294 名前:nobodyさん mailto:sage [2009/05/16(土) 15:53:09 ID:???]
いやいや気になるから正確な答えを頼むよw


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ネストさせるぐらいなら、
日付ブレークの判定いれる方が簡単だと思うがな






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<262KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef