【質問】ASP.NETスレ Part6【雑談】

このエントリーをはてなブックマークに追加
934nobodyさん:2010/03/09(火) 01:52:31 ID:???
「不可能」となったときの、当然の対応の仕方が仕事をしてないからピンとこないんだろうな
さすが、事故解決能力の無い、ソースくれくれ君だよ
935nobodyさん:2010/03/09(火) 02:03:52 ID:???
>>932
その通り
手段に引っ張られて目的を達成できないとかありえない
でも「結果が出れば手段なんてなんでもいいんだ」とExpressに固執して生産性下げるのも愚の骨頂
「Expressでなんでもできるからいいだろ」と言うのは時間を金額に換算する必要のない立場の人間だけ
936nobodyさん:2010/03/09(火) 02:18:44 ID:???
有償サポートが受けられるというのが大きいと思うぞ
SQLServerもそう

何か不具合があったとき、こっちの不具合なのか、
MSの不具合なのか判断してもらえるところが大きい
937nobodyさん:2010/03/09(火) 02:50:44 ID:???
Express edition(Visual Web Developer)だと、機能制限のせいで
SQL Server上のテーブルデータにコントロールをバインドさせるような
基本的な事もGUI操作でできないよね?
生産性落ちるどころのレベルじゃないと思うんだけど。
938nobodyさん:2010/03/09(火) 03:04:55 ID:???
リファクタリングとデバッグの制限もある
それにプロジェクトに自作DLLを導入してる場合、その自作DLLを作成するプロジェクトを混在できないから面倒
あと、多くの帳票作成ソフトとかの外部アドオンがExpressだと導入できない
939nobodyさん:2010/03/09(火) 06:55:54 ID:???
>>937
データバインドできないの?まじで?
940nobodyさん:2010/03/09(火) 07:31:05 ID:???
>>939
“GUI操作で”出来ない
手書きすればメモ帳でだってできる
941nobodyさん:2010/03/09(火) 09:30:37 ID:???
自分の所は部内システムで使ってるだけだからexpressだな

それどころか鯖も買ってもらえなくて
自分の業務用PCでとりあえず動かしている状態
942nobodyさん:2010/03/09(火) 09:51:01 ID:???
普通の開発会社なら個人にVSのライセンス割当たってるもんじゃないの?
943nobodyさん:2010/03/09(火) 12:51:26 ID:???
今までASPXで動いてたページにAjaxを組み込むことになりました
以前のASPXページはポストバックごとに状態をセッション変数に保存していましたが
Ajaxだと当然ポストバックが発生しません

こんなとき、Ajaxからセッション変数を更新する方法を解説しているページなどありましたら
ご紹介ください。

時間をかけて自分で調べればいいのですが、時間に余裕がありませんのでよろしくお願いします。
944nobodyさん:2010/03/09(火) 13:17:11 ID:???
Ajaxをどういう方法で組み込むか知らんけど、サーバーリクエスト先でセッション変数参照するだけでしょ
ASP.NET AJAXなら該当イベントで、それ以外ならリクエストされるページで

イベントで動くって基本に立ち戻れば悩むようなことじゃないと思うんだけど
「ポストバックで処理していたのをどうすればいいんだろ」って思考に囚われすぎてないかい?
945nobodyさん:2010/03/09(火) 13:26:48 ID:???
なるほど!! ASP.NETを使うつもりでしたが、イベントはサーバー側で発生するのに変りはないんですね!
946nobodyさん:2010/03/09(火) 13:42:01 ID:???
イベントはクライアント側で発生
そこでxmlHttpRequestでサーバを呼ぶ
つーか、サーバを呼ばなきゃただのDHTML
947nobodyさん:2010/03/09(火) 19:12:31 ID:???
セッション変数は、使わないのが普通ですか?

http://support.microsoft.com/kb/316148/ja

948nobodyさん:2010/03/09(火) 20:33:41 ID:???
リンクと質問は関連してるのか?にしても、古いKB引っ張ってきたな。
セッションは使う。

KBの件はsessionStateをInProc以外にしてれば、
ワーカープロセスが再起動してもセッション情報は失われない。
つか、そんなKB持ち出すまでもなく、
iisはアイドルが20分程続くと勝手にワーカープロセスを再起動する。
この時、sessionStateがInProcだとセッション情報が消失するという楽しい仕様だ。
949nobodyさん:2010/03/09(火) 21:13:14 ID:???
InProc
ASP.NET3.5 + IIS6 でセッション変数使用中にWeb.configを保存しなおしたら
ほんとうにセッション変数が消えてしまいました・・・

こんな危険なセッションモードが「デフォルト」になっているのは何故ですか?

950nobodyさん:2010/03/09(火) 21:21:56 ID:???
たぶん、昔のASPのデフォルトがInProcだったから
951nobodyさん:2010/03/09(火) 21:31:21 ID:???
ワーカープロセスは、CPUやメモリの負荷が高くなっても再起動しますよね。
昔の人はどうやって運用してたんだろう。

952nobodyさん:2010/03/09(火) 22:28:37 ID:???
InProcなセッションがリサイクルで吹っ飛ぶのは「IISの常識」
IISの動作を見れば分かり切ったことだし、ASP.NET開発の書籍でSessionのとこ見れば必ず注意事項として載ってる

ところが、MSのオフィシャル情報にはこう載ってる罠
http://msdn.microsoft.com/ja-jp/library/z1hkazw7(VS.80).aspx
> データの永続性 セッション状態変数に配置されたデータは、インターネット インフォメーション サービス (IIS: Internet Information Services) の
> 再起動やワーカー プロセスの再起動があっても失われずに保持されます。
> これは、データが別のプロセス領域に格納されているためです。
> また、セッション状態のデータは、Web ファームや Web ガーデン内のプロセスなど、複数のプロセス間で保持できます。

ステートサーバを使って実現することをさも既定の動作であるかのように書いてる。
セッションについて理解していればこれが宣伝広告的なものだと分かるんだけど、そうじゃないと鵜呑みにしちゃうよね。
こうして騙される人が増えると。

ちなみに昔はセッションなんて使わないのが常識だった。
せいぜい持たせて認証情報くらい。
これなら吹っ飛んでもログインしなおす流れを明示できる。
連続的な情報はCookieやページ内にhiddenで突っ込んだりしたもんだ。
ASP.NETでもContextやViewStateで十分な情報はそれを使った方が良いよ。
953nobodyさん:2010/03/09(火) 23:48:19 ID:???
>インプロセス モード
>アプリケーションの Web.config ファイルの processModel 要素で
>webGarden 属性に true を設定して Web ガーデン モードを有効にしている場合は、
>InProc セッション状態モードを使用しないでください。
>このモードを使用すると、同じセッションに対する要求がそれぞれ異なるワーカー プロセスによって処理される場合、
>データ消失が発生する可能性があります。
954nobodyさん:2010/03/10(水) 00:37:48 ID:???
>>953
引用のつもりなら出自を明確に
あと、そのコピペじゃ何を言いたいのか全然分かんない
InProcで消えるパターンが他にもあるよと言いたいだけ?
955nobodyさん:2010/03/10(水) 18:32:27 ID:???
>>952
それプロファイルプロバイダを利用した場合の長所って書いてあるだろ
本当にここはレベルが低いな
956nobodyさん:2010/03/10(水) 18:39:54 ID:???
これはバグですか?

1.Visual Studio 2008 SP を起動
2.ファイル - 新しいプロジェクト - ASP.NET Webアプリケーション を選択して[OK]
 .Net Framework 3.5 を設定
3.デザイン画面を表示
4.Panelコントロールを配置
5.panelコントロールの中にTextBoxコントロールを配置
6.TextBoxコントロールのプロパティウィンドウでTextプロパティに何か文字を入力し確定
7.そのままデバッグの開始

デフォルト表示されるはずの文字が表示されないのです。
ちなみにPanelに載せなければ正しく表示します。
3台のPCで試して3台とも再現しました。
957nobodyさん:2010/03/10(水) 19:08:45 ID:???
>>955
セッション状態とプロファイルプロパティは別物だし>952のリンク先でも
別セクションにわけて解説してある
プロファイルプロパイダは後者のことで、>952は前者のことだぞ
958nobodyさん:2010/03/10(水) 21:04:55 ID:???
ソース君必死(笑)
959nobodyさん:2010/03/10(水) 22:21:17 ID:???
>>956
つインシデント
960nobodyさん:2010/03/11(木) 06:36:48 ID:???
>>959
バグみたいなことに金払うの?
961nobodyさん:2010/03/11(木) 09:02:01 ID:???
>>960
製品の不具合に起因することはインシデント返還される
暫定的な非公開hotfixと引き換えにすることもできる
バグが確定的なら無料の窓口でも対応してくれる
962nobodyさん:2010/03/11(木) 13:09:39 ID:???
いきなりSRする必要はない
まずは無料サポートに問い合わせて対応させる
バグならその旨連絡来るし、そうじゃなさそうならSRをすすめられる
963nobodyさん:2010/03/16(火) 13:14:56 ID:???
○A ○B ○AorB
_______
|        |
 ̄ ̄ ̄ ̄ ̄ ̄ ̄
A|B |C
―――――
1|12|aaa
2|13|bbb
3|14|ccc
4|15|ddd

GridViewで作成した表に、ラジオボタンで選択した行をテキストボックスに
入力した文字列で検索した結果を、表示したいと考えています。

具体的には、ラジオボタンでAを選択した状態でテキストボックスに1と入れると、GridViewに

A|B |C
―――――
1|12|aaa

が表示され、ラジオボタンでAorBを選択した状態でテキストボックスに3と入れると、GridViewに

A|B |C
―――――
2|13|bbb
3|14|ccc

と表示したいのですが。
ご意見いただけないでしょうか。
964nobodyさん:2010/03/16(火) 13:40:43 ID:???
GridView.Rows.Countになるまでグリグリ探してあれば
その行をVisible=Flaseで良いんじゃね?
965nobodyさん:2010/03/16(火) 15:07:09 ID:???
ラジオボタンとテキストボックスから動的に条件組み立てて、
その条件で元データをフィルタする

俺なら動的にSQL組み立てるが、ポストバック間で元データのデータセットを
保持してるならRowFilter使うのもありかな
966nobodyさん:2010/03/16(火) 15:30:51 ID:???
GridViewを使わない
967nobodyさん:2010/03/16(火) 15:47:11 ID:???
どこにDB使ってると書いてあるんだ?w
968nobodyさん:2010/03/16(火) 16:18:41 ID:???
俺なら動的にSQL組み立てるが
訂正
俺ならDB使って動的にSQL組み立てるが
969nobodyさん:2010/03/16(火) 16:25:51 ID:???
処理タイミングで結構話が変わる気がする
「テキストボックスに3と入れると」ってのはクライアントサイドで完結して欲しいって意図も感じる
どこかに「絞り込み」ってボタンがあって、普通にポストバックしていいなら結構楽な話だけど、クライアントサイドで完結したいならこめんどう
Ajaxにしてグリッドだけサーバの結果で書き換えるって手もあると思う
970963:2010/03/16(火) 17:22:59 ID:???
みんなごめん、いろいろ大切な情報が抜け過ぎだた

データはDBつかって管理していて、どれもvarcharだと思ってくれ
絞り込みボタンを設置して、ポストバックさせる予定
971nobodyさん:2010/03/17(水) 08:27:50 ID:hGXHTczy
GridView.Rows[i].cell[j]でぐりぐり探せば?SQLだとSQLの管理もしなきゃいけないしめんどうじゃね、AorBorCの条件があるって事は複数の条件のSQLが出来上がるわけだし
ただ画面に表示されてないデータの情報がほしい場合にはどっかに保存してなきゃいけないけど
972nobodyさん:2010/03/17(水) 09:14:48 ID:???
データ量との見合いでしょ
対象が例の通りの4件ならぐりぐりでいいけど、それなりの量を相手にするなら検索はDBに任せた方がいい
3つの条件受け取るストアド作っておけば呼び出し側はSqlDataSourceで簡単に対応できるし
たかが3条件でSQLが複雑とか言わないよね?
973963:2010/03/17(水) 10:20:23 ID:???
結局、ボタンイベントでパラメータを切り替えて、値を入れることにしました
全部GUIでできないかなーと思ってたのですが、やっぱり無理か
974nobodyさん:2010/03/17(水) 13:14:18 ID:???
>>973
ストアド使えばASP.NET側はGUIだけでできるよ
975nobodyさん:2010/03/20(土) 11:17:10 ID:???
Framework1.1のシステムにAjaxを使いたくて Ajax.NET Professional を導入することにしました。http://www.ajaxpro.info/
で、web.configの <system.web> 直下に

<httpHandlers>
  <add verb="POST,GET" path="ajaxpro/*.ashx" type="AjaxPro.AjaxHandlerFactory, AjaxPro"/>
</httpHandlers>

を設定しろとあるのでそうしたのですが、このweb.configには認証が必要なセクションがあり

<location path="search/protected" allowOverride="false">
 <system.web>
  <authorization>
  <deny users="?" />

という設定になっています。ここの <system.web> 直下に

  <httpHandlers>
   <add verb="POST,GET" path="/ajaxpro/*.ashx" type="AjaxPro.AjaxHandlerFactory, AjaxPro"/>
  </httpHandlers>

と書いてみましたが、認証が必要なページだけweb.configのパスが見つからないというエラーが出ます。

ディレクトリ構造は
wwwroot
 ajaxpro
 search/protected
となっています。
パスの書き方が違うのだと思うのですが、いろいろ試してもうまくいきません。
どうか、ご教示くださいませ。
976nobodyさん:2010/03/20(土) 12:11:03 ID:???
追記、さらに
別のアプリケーションとして登録してあるウェブサービスがあり
wwwroot
 ws
に置いてあるんですが、wwwrootのweb.configを編集しているとウェブサービスもエラーを出してることに気がつきました。
もちろんwsディレクトリにもweb.configはあります。ここも<httpHandlers>を設定するとオブジェクト参照にインスタンスがありません。にメッセージが替わりました。

どうしたものでしょうか・・・
977nobodyさん:2010/03/20(土) 12:26:33 ID:bKU/HHKK
あげときます
978nobodyさん:2010/03/20(土) 19:59:38 ID:???
普通にjQuery使ったほうがいい
979nobodyさん:2010/03/20(土) 20:41:24 ID:???
※このスレの現状

ソース厨がスレを荒らして、みんなスレからいなくなる

ソース厨はAJAXわからない

しかもソース厨はレベル超低い

簡単な質問にもまともなレスがつかない
980nobodyさん:2010/03/20(土) 20:49:51 ID:bKU/HHKK
それぞれにアセンブリを配置して参照設定したらとりあえずエラーは回避できました

この先どうなるかわかりませんが、とりあえずありがとうございました。
981nobodyさん:2010/03/20(土) 22:15:31 ID:???
MSがオフィシャルで開発QA掲示板やってるのに2ちゃんで質問する意味がわかんねぇ
MVP様は実績積むために張り付いてるし、1日反応無いだけでMS社員が反応してくれる
そっちのがレベルもレスポンスも上なのにここで回答求める方がアホ
982nobodyさん:2010/03/21(日) 01:30:58 ID:???
まあ、ここで質問したところでAJAX君が役に立たない回答返すだけだしなw
ASP.NETスレもPart6で終了か。
983nobodyさん
4辺りから見てるが、糞度は今と大してかわらんぞ。