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落ち?) あんまり需要ないのかもしれませんが。。。
252 名前:nobodyさん mailto:sage [2009/05/12(火) 13:13:33 ID:???] ↑ すまん上の「できない例」は想像の話。 グループヘッダーとか、レポートのフッターの改行とか伸長とか、改ページごとに表示するとかは 帳票によってクセがあったり得手不得手があるもんなので、試してみるしかないね。
253 名前:nobodyさん mailto:sage [2009/05/12(火) 13:26:34 ID:???] >>251 ActiveReportsならASP.NETのも基本的に変わらないけど >改行したら自動的に2行分に伸長してくれて描画してくれるとか余裕 CanGrowプロパティだったかな? で伸縮させるように出来る >それがページの最下行だったら改ページして次ページの最上行にしてくれるとか、 >もしくはそのまま印刷してくれるを選択できるとか プロパティいじるだけでそうなるはず。 KeepTogetherかなんか忘れたけど 高さ操作は処理中にしようと思うと基本的にFormatイベントでのみしか推奨されていないけどいける 中途半端な知識なんで勘違い多いかも知れんが
254 名前:nobodyさん mailto:sage [2009/05/13(水) 10:29:56 ID:???] CustomValidatorを継承したコントロールを作ったんだけど、 ページ内のValidationSummaryがErrorMessageを拾ってくれない。 isValidやErrorMessageは正しくセットされていることは確認した。 カスタムコントロールのは拾ってくれないのかな?
255 名前:nobodyさん mailto:sage [2009/05/13(水) 11:41:36 ID:???] 継承って文字通り継承? それともユーザコントロール?
256 名前:nobodyさん mailto:sage [2009/05/13(水) 13:01:18 ID:???] 文字通りの継承。 検証失敗時にTextが表示されるし、 ValidationGroupも検知して検証してくれている。 ただ、なぜかValidationSummaryに反映されない。 もちろんPage.IsValidもfalseになってる。
257 名前:nobodyさん mailto:sage [2009/05/13(水) 14:31:56 ID:???] Page.GetValidators()を調べてみたんだが、 単にメンバに持ってるValidatorCollentionをsingletonで返してるだけなんだな どうやってValidatorCollentionにValidator(BaseValidator)をaddしてるのかよくわからん ValidatorCollentionの中身も単なるIEnumerableを実装したリストクラスに見えるし
258 名前:sage mailto:sage [2009/05/13(水) 15:35:29 ID:???] チラ裏 今更ながらIIS+ASP.NET+SQLiteでゴニョゴニョしてみたけど、手軽で良いわこれ。 要IIS(monoっつー手もあるけど保留)な点さえクリア出来るなら、ちょっとしたページ作成なら これでいいや。
259 名前:nobodyさん mailto:sage [2009/05/13(水) 15:38:24 ID:???] オレもこれやりたくてmono入れようとしてるけどSolarisだときっついな まあ時間取れるまでWinサーバ使うか・・・
260 名前:nobodyさん [2009/05/13(水) 19:23:50 ID:EB+s12M/] .NET Framework 3.0のPage.PreviousPage.FindControlについて教えてください。 トップページにある「発言ボックス」に入力した文字列を、表示ページにて表示したいのですが テキストボックスを参照できなくて困っています。 マスターテンプレート(Template.master) ┗トップページ (Default.aspx) ┗ユーザコントロール(Hatsugen.ascx ID=hatsu) ・テキストボックス コントロール(ID=moshi) ・ボタン コントロール(botan) マスターテンプレート(Template.master) ┗表示ページ (showhatsugen.aspx) という2つのページ(階層)があるのですが、トップページ側のボタンコントロールで PostBackUrl="showhatsugen.aspx" としています。 showhatsugen.aspx側で、@ITの記事を参考にテキストボックス(moshi)を参照しているのですが nullが返ってきてしまいます。 ■試したこと @@ITの記事のまんま試してみた。 TextBox a = (TextBox)Page.PreviousPage.FindControl("moshi"); Aユーザコントロールも参照しないとだめかもと試してみた。 TextBox a = (TextBox)Page.PreviousPage.FindControl("hatsu").FindControl("moshi"); Bテンプレートもいれないとだめかもと思って試してみた。 TextBox a = (TextBox)Page.PreviousPage.Master.FindControl("hatsu").FindControl("moshi"); 上記のような階層の場合、どのように値を参照できるか教えてください。 ■参考にした@ITの記事 ttp://www.atmarkit.co.jp/fdotnet/dotnettips/406asppostback1/asppostback1.html
261 名前:nobodyさん [2009/05/13(水) 19:37:56 ID:EB+s12M/] あ、できました。Bで。
262 名前:nobodyさん mailto:sage [2009/05/13(水) 19:45:55 ID:???] PostBackは原則的に同一ページにするのが望ましいというのはわかってて、 あえてそれをやってるんだよね?
263 名前:nobodyさん mailto:sage [2009/05/13(水) 20:05:04 ID:???] はぁ? 馬鹿じゃね。しねよ
264 名前:nobodyさん mailto:sage [2009/05/13(水) 20:21:45 ID:???] そこらの本読むとPostbackUrlやServer.Transferの方が Response.Redirectよりよく思えるんだよな。 いやまぁ実際メリットもあるけど。
265 名前:nobodyさん mailto:sage [2009/05/13(水) 22:50:11 ID:???] ASP.NET MVCのほうが良いよ。
266 名前:nobodyさん mailto:sage [2009/05/13(水) 23:01:05 ID:???] PostbackUrlが良いと言ってるやつは実践してみてないやつ。 ASP.NETの各種仕組みと相性が悪い。 Server.Transferはいいんだけど。URLが紛らわしくなるため敬遠されることが多い。
267 名前:nobodyさん mailto:sage [2009/05/13(水) 23:49:01 ID:???] 一つの画面に収まる機能は一つのページに記述して 異なるページに遷移するときはsessionだのcookieだの使用したほうがわかりやすいよね asp.netの場合は1ページが1クラスだから、 クラス内の処理は、なるべくクラス内に責任もって記述してあげるのが オブジェクト指向の観点からもわかりやすい気がする 各ページのクラスにCookieやSessionを扱う、 ICookieや、ISessionみたいなインターフェースを実装して、 Serializableなデータを保持するクラスを、 ページ間でやりとりできるようにしたら面白いのになと思ったり。
268 名前:nobodyさん mailto:sage [2009/05/14(木) 00:02:25 ID:???] >>267 うちはページ継承してベースページを作成して 各機能ページはそれを継承して処理ってる セッション管理とかログインしているいないとかのチェックはベースページ側でやってたり インターフェイスもいいけどなんか使いどころが難しくってさ・・・ 各ページで実装もセにゃいかんし レベルが低いだけだとは思うが
269 名前:nobodyさん mailto:sage [2009/05/14(木) 00:15:25 ID:???] やたらとインターフェイス使いたがるのもどうかしてる
270 名前:sage [2009/05/14(木) 11:53:07 ID:W6V8lEeJ] はじめまして。 現在vs2008、.NET FrameWork3.5にてASPのシステムを作成しています。 セッションが切れた場合の処理としてテストしているのですが global.asaxでsession_startでセッションが切れた場合にエラー画面へ リダイレクトする処理を入れているのですが そこを通った後またsession_startに来てしまいリダイレクトしてくれません。 ログをみてもその関数が終わったらすぐにその関数というようになっています。 原因を知っている方お願いいたします。 If Me.Request.RawUrl.IndexOf("XXX.aspx") < 0 Then If Session("UserId") = "" Then Response.Redirect("XXXXX/ERRGAMEN.aspx ") End If End If
271 名前:nobodyさん mailto:sage [2009/05/14(木) 12:33:07 ID:???] これかな? エラーページにResponse.Redirectで遷移すると 設定したSessionが消えてしまうことがあるらしい ttp://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=10653&forum=7 ログやそれに似た用途ならglobal.asaxでもいいけど 認証ならフォルダごとにWeb.configでやったほうがいいかも
272 名前:270 mailto:sage [2009/05/14(木) 13:26:27 ID:???] >>271 的確なアドバイスありがとうございます。 リダイレクトをtransferにすることで対処できました。
273 名前:nobodyさん mailto:sage [2009/05/14(木) 15:08:04 ID:???] ここASP.NETだけど・・・
274 名前:nobodyさん mailto:sage [2009/05/14(木) 15:18:31 ID:???] WebフォームにCalendarコントロールを貼って ・日付が変更される毎にカウンターCcountを1増加させて表示(Label1) ・選択されたカレンダーの日付を表示(Label2) ・PageLoadされる毎にカウンターPcountを1増加させて表示(Label3) させたい。 Partial Class _Default Inherits System.Web.UI.Page Public Shared Pcount As Integer Private Ccount As Integer Protected Sub Calendar1_SelectionChanged(ByVal sender As Object, ByVal e As _ System.EventArgs) Handles Calendar1.SelectionChanged Ccount = Ccount + 1 Label1.Text = Ccount.ToString 'Calendarの日付が変更された回数を表示 'カレンダーの日付を選択したら、カレンダーの値を表示する Label2.Text = Calendar1.SelectedDate.ToShortDateString End Sub Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) _ Handles Me.Load Pcount = Pcount + 1 Label3.Text = Pcount.ToString 'PageLoadされた回数を表示 End Sub End Class カウンターの定義で、上記のように Public Shared ではなく Private にすると 数値が初回+1しただけで、それ以上増分されません。 何がいけないのでしょうか?
275 名前:nobodyさん mailto:sage [2009/05/14(木) 15:38:57 ID:???] >>274 public shared PcountはASP.NET全体で利用するアプリケーション変数(グローバル変数)的なものだったと思う privateにすると、そのPageのメンバ変数になるので、ポストバックすると新しいPageのインスタンスが生成されるから、 Pcountも新しいインスタンスの異なるメンバ変数扱いになってポストバック前のデータを保持しない そう考えるとpublic sharedは便利と思うかもしれないけど、 複数の人が同時にそのページを利用すると、使用した人の数だけPcount++されてしまって 思ったような動作はしないと思うよ Aさんが日付選択→Pcount → 1 Bさんが日付選択→Pcount → 2 Aさんが日付選択→Pcount → 3 Aさん2回目の使用でPcount==2のはずなのに途中でBさん使ったのでなぜかPcount==3 なんでPcountの値をセッションやクッキー、ViewStateに保存して Page_Loadで復元するような処理を書く必要がある この場合同じページへのPostBackだしセキュリティにも大きな影響を与えなさそうなので、 ViewStateがいいと思う
276 名前:nobodyさん mailto:sage [2009/05/14(木) 16:02:31 ID:???] 早速のレスありがとうございます。 >privateにすると、そのPageのメンバ変数になるので、 >ポストバックすると新しいPageのインスタンスが生成されるから、 >Pcountも新しいインスタンスの異なるメンバ変数扱いになって >ポストバック前のデータを保持しない ということですね、理解しました。 データの保持の違いとか、処理タイミングとか、実行順とかまだ整理できて無くて そのために簡単なサンプルフォームを作って、カウンター表示を仕込んで試しているのですが 条件が変わると自分の狙った内容と実行結果が違ってたりして、・・・頑張ります!
277 名前:nobodyさん mailto:sage [2009/05/15(金) 19:06:29 ID:???] Web開発の初期に、よくはまる道だ がんばれ
278 名前:nobodyさん mailto:sage [2009/05/15(金) 21:06:17 ID:???] JavaScriptで好き勝手やって、ViewStateの内容と 同期しなくなるとか昔はまったな。 挙句、不正な操作扱いされたりとか。
279 名前:nobodyさん mailto:sage [2009/05/15(金) 21:07:23 ID:???] 肝心なのはPublicかPrivateかじゃなくて Sharedかそうじゃないかなんだが、大丈夫か
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 みたいな方法だね。