[表示 : 全て 最新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落ち?)

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

2 名前:nobodyさん mailto:sage [2009/01/23(金) 09:47:26 ID:???]
ASP.NET Developer Center
www.microsoft.com/japan/msdn/asp.net/
MSDN
www.microsoft.com/japan/msdn/

Visual Studio 2005 Express Edition
www.microsoft.com/japan/msdn/vstudio/express/
ASP.NET Web Matrix Project
www.microsoft.com/japan/msdn/asp.net/webmatrix/

Microsoft ASP.NET クイック スタート チュートリアル
ja.gotdotnet.com/quickstart/aspplus/default.aspx

3 名前:nobodyさん mailto:sage [2009/01/23(金) 13:44:50 ID:???]
ASP.NET MVC
www.asp.net/mvc/

4 名前:nobodyさん mailto:sage [2009/01/26(月) 04:41:30 ID:???]
ほしゅ

5 名前:nobodyさん mailto:sage [2009/01/27(火) 08:51:00 ID:???]
ASPってXPHomeでも出来ますか?
プロバイダの無料ホームページサーバーがASPに対応していないと転送してもうごかないんですか?

6 名前:nobodyさん [2009/01/27(火) 08:51:33 ID:0yzijSJe]
おいーい

7 名前:nobodyさん [2009/01/27(火) 11:09:24 ID:tugN284u]
教えてくれなくてもいい
教えてくれなくてもいいからこのスレに人がいるのかだけでも教えてくれ!!!

8 名前:nobodyさん mailto:sage [2009/01/27(火) 13:38:13 ID:???]
>>5
VWD Express入れれば、テストまではXP HOMEで大丈夫だよ。
2行目は、対応謳ってないところでは無理です。

9 名前:nobodyさん mailto:sage [2009/01/27(火) 14:22:32 ID:???]
おーできるんですか!本を買って始めてみようかと思います。thxです。
ずばりなんでこのスレは人がすくないんでしょうか?

10 名前:nobodyさん mailto:sage [2009/01/27(火) 14:47:58 ID:???]
ム板にASPスレがあるからかな

本来はこっちだと思うがム板でも間違いではないね
ちなみに向こうも進行は遅い
MSのドキュメントが充実してるのか、書籍が充実してるのか・・

ASP.NETについて語ろう
pc11.2ch.net/test/read.cgi/tech/1152591404/



11 名前:nobodyさん mailto:sage [2009/01/28(水) 15:08:45 ID:???]
念のために言っておくが、ASPとASP.NETは別物だぞ

さらに、プロパイダがASPに対応といった場合、
ここで言っているASPやASP.NETとは全く別の、
アプリケーションサービスの提供という意味のときもある。


12 名前:nobodyさん [2009/01/28(水) 18:38:10 ID:CAkFRKAi]
自分のプロバイダ調べたんですが、MIMEタイプに何があれば可能なんですか?
検索してもASPはなかったんですが

13 名前:nobodyさん [2009/01/28(水) 22:21:48 ID:sY0o9h6N]
使えるプロバイダはでかでかとASP.NET対応とかうたってるはずだから
なければ対応してない

14 名前:nobodyさん mailto:sage [2009/01/29(木) 00:15:41 ID:???]
大手で対応してるとこ皆無じゃないですか?どうやって活用すればいいんですかこれ
アプリのヘルプとかをWEB形式にしてサーバーなくてもアプリ配布だけでaspxファイル見えるようにできるんですか?

15 名前:nobodyさん mailto:sage [2009/01/29(木) 00:28:11 ID:???]
企業が自社サイト立てるようなときに使う物であって、個人が
共用Webサーバーで使うようなもんじゃないよ、基本的に。

で、大手が対応するも何も、ついでに対応できるようなもんじゃないから、
ASP.NETのホスティング業者を探してください。

16 名前:nobodyさん mailto:sage [2009/01/29(木) 00:28:35 ID:???]
自分でサーバーたてれば?

17 名前:nobodyさん mailto:sage [2009/01/29(木) 00:39:12 ID:???]
まじダメなの・・・
VSに入ってるからやってみたかったんだけど持ち腐れくさい
せめてアプリに埋め込みぐらい出来てほしかった。終わった・・・

18 名前:nobodyさん mailto:sage [2009/01/29(木) 00:58:57 ID:???]
だいたいCPUの能力が有り余ってる時代にサーバーで処理させるって方向自体がおかしい
各自のPCで処理させるほうがいいに決まってる

19 名前:nobodyさん mailto:sage [2009/01/29(木) 01:31:10 ID:???]
ASP.NETってのはサーバ環境だぞ
アプリに埋め込むようなもんじゃないだろ

お前が何をしたいのかわからんが、たぶんお前のやりたいことにASP.NETはイランと思われ


20 名前:nobodyさん mailto:sage [2009/01/29(木) 02:03:52 ID:???]
なんとなく、WPFやSilverlightやれば満足できるんじゃね?と思った。



21 名前:nobodyさん mailto:sage [2009/01/29(木) 03:23:35 ID:???]
Silverlightとかは技術力があっても絵心が無いとダメだなと思った。

22 名前:nobodyさん mailto:sage [2009/02/01(日) 15:06:08 ID:???]
そうか?Webシステムの管理画面とか、
多少見た目が悪くても問題無い所で活躍すると思うけどなぁ。

絵心が必要な部分はFLASHで充分。

23 名前:nobodyさん mailto:sage [2009/02/01(日) 20:22:47 ID:???]
いや、そういう場所はただのhtmlでよくね?
「システムの管理画面」をリッチクライアントっぽく作りこむ意味がわからん……

24 名前:nobodyさん mailto:sage [2009/02/04(水) 11:58:05 ID:???]
.NETスレで申し訳ないが、
VisualStudio2008でレガシーASP(.NETじゃないASP)の開発って可能ですか?

25 名前:nobodyさん mailto:sage [2009/02/04(水) 15:50:53 ID:???]
ASP.NET 開発サーバをコマンドから立ち上げて、IIS でいう「既定のコンテンツページを有効にする」
で index.aspx をデフォルトの拡張子にする、みたいなことはできますか?

ASP.NET 開発サーバはそういうことはできないのかな。。


26 名前:nobodyさん [2009/02/05(木) 11:15:34 ID:zvOyitUX]
保守

27 名前:nobodyさん mailto:sage [2009/02/09(月) 03:06:51 ID:???]
Referを書き換えたいのですが、ググってみても方法が分かりません。
一般的な、「a.aspxページのボタンを押してb.aspxに遷移」の処理だと

ブラウザに表示されているボタン押す

a.aspxにPostBack

a.aspx.csの `Button_Click` が呼ばれて

そこに記述してあるresponse.Redirect("b.aspx")で

b.aspxが表示

となると思いますが、b.aspxまで来た時のRefererを加工しておきたいんです。
HttpRequest.UrlReferrerは参照しか出来ないようですし。

28 名前:nobodyさん mailto:sage [2009/02/09(月) 07:57:00 ID:???]
referrerはクライアントでどうとでもできるから
あまり当てにしたプログラムはつくらないほうがいいと思うんだな
a.aspxから呼ばれたってのを調べたいときは
sessionでも使ってチェックしたほうがいいんじゃないかな

29 名前:nobodyさん mailto:sage [2009/02/10(火) 22:06:20 ID:???]
VS2005にてWEBサービスを開発しております。
クライアントからの要求時に送られてきたSoapエンベロープ内の
文字列を丸ごと取得したいのですが、何か方法はないでしょうか?


30 名前:nobodyさん mailto:sage [2009/02/14(土) 13:14:06 ID:???]
hosyu



31 名前:nobodyさん [2009/02/14(土) 16:33:05 ID:cqYeov/9]
VB.NETで作成したWebカスタムコントロールを使用した場合、テーマの適用って出来ないんでしょうか?


32 名前:nobodyさん mailto:sage [2009/02/16(月) 18:43:19 ID:???]
なぜGridViewはdivで囲まれるのでしょうか。
div余計なんですが、どのように使用しろというのですか
除去することができれば教えて下さい。

33 名前:nobodyさん mailto:sage [2009/02/16(月) 19:56:52 ID:???]
除去できんこともないけど、 こういう方向もあります。
www.asp.net/CSSAdapters/GridView.aspx
たしかにhtmlソース汚いよね。

34 名前:nobodyさん [2009/02/17(火) 18:52:18 ID:TWz5D9vv]
BulletedListで入れ子ってできますか?


35 名前:nobodyさん [2009/02/17(火) 19:25:49 ID:VOp+dOz2]
Windows XP + IISで質問です。

VS.net2008 で作った VB.net コンソールアプリを
実行ファイルに指定しているのですが、ビルドされた
実行ファイルをブラウザから参照すると、実行ファイル
をダウンロードさせるような動きになってしまいます。

ところが、ビルド時に出力された、xxxx.vhost.exe を
ブラウザで指定して見ると、実行結果はエラーになり
ますが、サーバー側で実行しようとします。

この違いはどのようなことが原因と考えられるでしょか。

IISの設定では、EXEファイルを保存したディレクトリの
実行アクセス権を、「スクリプトおよび実行可能ファイル」
に設定しています。

36 名前:nobodyさん mailto:sage [2009/02/17(火) 19:32:48 ID:???]
出来るのであれば、自分も知りたいです。

37 名前:nobodyさん [2009/02/17(火) 19:49:41 ID:VOp+dOz2]
ええと、できましたw

ごめん!お騒がせしたおわびに、こんな感じで。

・環境
 xpなので、IIS5.x系です。
 VBは多分環境を問いません。対応するランタイムが
 IIS側に入っていることが条件です。
・IISの設定
 公開ディレクトリで、実行アクセス権を、
 「スクリプトおよび実行可能ファイル」に設定します。
・VB側の処理
 HTTPヘッダを自前で書くこと。
 コンソールアプリケーションとして作成すること。
 get パラメータであれば、Mainの引数として簡単に
 パラメータを取得できる。こんな感じのコードで実行
 ファイルを作成して動作確認するとわかりやすいかも。

module hogeModule
  sub main(byval sOptions as string)
    console.writeline("HTTP/1.0 100 OK")
    console.writeline("Content-type: text/html")
    console.writeline(vbnullstring)

    dim sStr as string
    for each sStr in sOption
     console.writeline(sStr)
    next
    console.writeline("おわり")
  end sub
end module

38 名前:nobodyさん [2009/02/17(火) 19:51:29 ID:VOp+dOz2]
ちなみに、間違ってたのは、httpヘッダの部分で、
test/html とか書いてましたw

IEで見たらダウンロードのダイアログに、xxx.exe
と出ていたのでてっきり実行ファイルをDLしようと
していたのかと思ったら、存在しない content-type
ということで、IEがexeのファイル名のまま、CGIから
戻ってきた文字列をファイル保存しようとしていた
だけでしたorz

文字の間違いには気をつけようぜ!w

39 名前:nobodyさん mailto:sage [2009/02/26(木) 05:59:12 ID:???]
保守

40 名前:nobodyさん [2009/02/27(金) 18:17:47 ID:aU5MUsG5]
AjaxControlToolkit-Framework3.5の不具合?

ツールボックスより標準のasp TextBoxを配置。
そのTextBoxにMaskedEditExtenderをくっつけ、
CultureName:ja-JP
Mask:99:99
MaskType:Time
と設定。
MaskedEditValiDatorをくっつけ、
InvalidValueMessage:エラー
と設定。

ここまでは問題なくエラーチェックをしてくれますが、
aspの標準のボタンを設置し、押すと正常でもエラー表示されます。
年月日は大丈夫だったので私の設定ミスでしょうか?



41 名前:nobodyさん mailto:sage [2009/02/27(金) 21:48:56 ID:???]
こっちにもasp.netがあったのか
プログラム板にもあったから、そっちに常駐してたよ
asp.netこんなに便利なのにユーザ少ないよな
まったくかなしいぜ

42 名前:nobodyさん [2009/02/28(土) 21:45:49 ID:3vV5LoA6]
本屋で今日、aspの本を見ました。
一番分かりやすそうでした。
aspとjavaと.netとCはどれが一番人気ですか?

43 名前:nobodyさん mailto:sage [2009/02/28(土) 21:53:30 ID:???]
>>42
釣りかもしれないけど...
ASP.NETは、基本的には.NETだよ。

44 名前:nobodyさん [2009/02/28(土) 22:39:55 ID:3vV5LoA6]
>>43
「.NET」とは「.NET Framework」
と何かに記載されていました。
「.NET」にもいろいろ種類があるのでしょうか。
「VB.NET」「ASP.NET」とのちがいはなにでしょうか・・・。

45 名前:nobodyさん mailto:sage [2009/02/28(土) 23:42:56 ID:???]
ASP.NETは.NET FrameworkをつかったWEBサーバの環境
VB.NETは.NET Frameworkの言語のひとつ


46 名前:nobodyさん [2009/02/28(土) 23:53:48 ID:3vV5LoA6]
>>45
ありがとうございます。
ASP.NET内でVB.NET言語を使用するイメージですね。
あと・・・もう1つ質問なのですが・・・
.NET Framework をいろいろwebで調べましたが、概念がよく解りません。
webサーバー上に、別のwebサイトの検索結果やwebアプリケーションの実行結果を自動で引っ張ってきてくれる
便利な環境というイメージでしょうか。

47 名前:nobodyさん mailto:sage [2009/03/01(日) 00:45:49 ID:???]
なにを期待してるのか分からないが、そんな魔法みたいなことできるわけなかろう
.net frameworkは便利な部品がいっぱい集まった巨大なライブラリみたいなもん。

たとえばファイルを開いて閉じるのにC言語だと10行かかなくちゃいけないところを
5行で済む感じみたいな

これらを使うとお前さんがやりたい「別のwebサイトの検索結果やwebアプリケーションの実行結果を自動で引っ張ってきてくれる」
みたいなことがPHPやパールでコーディングするよりは楽に出来ますよってだけ。

48 名前:nobodyさん mailto:sage [2009/03/01(日) 00:48:15 ID:???]
そうか、やりたいのはマッシュアップか。

49 名前:nobodyさん [2009/03/01(日) 10:42:16 ID:rplbU7vt]
イメージがわいてきました。
ありがとうございました。
企業HPでgoogleマップを展開してくれるみたいなものがマシュアップというのですね。
高度な技術ですね。

50 名前:nobodyさん [2009/03/02(月) 22:40:22 ID:TS5QNvIN]
ちょいと質問

検索ページ→詳細ページ 
みたいに主キーをSessionで詳細ページに渡して詳細表示させるような場合、
主キーを格納してるセッションはどこで破棄してる?
戻るボタンで戻った時や、リロードされた場合に備えて自動破棄(なければ切れました表示)が普通かな?

また、@検索ページ→詳細ページ→A検索ページ
みたいに元のページに戻る時、@と同じ検索条件の一覧をAでも表示させておきたい場合は、
やはり@の検索条件をSessionに保存しといて、Aで再現するのが普通?
場合によっては、検索条件をクリアしたいときもあると思うから、そんなときはSessionクリアすればいいんだろうけど、
なんか力業で強引な気がして、もっとスマートな方法ってないのかな?



51 名前:nobodyさん mailto:sage [2009/03/04(水) 16:55:08 ID:???]
>>50
>リロードされた場合に備えて自動破棄
自動廃棄ってのはどういう事を言ってるの?
セッションは自分で廃棄しなければ、通常はタイムアウトで廃棄されるだけだと思うが

渡したい情報の量とかにもよるだろうが、俺ならクエリ文字列として受け渡しするな


52 名前:nobodyさん mailto:sage [2009/03/04(水) 18:13:03 ID:???]
>>51
自動破棄というのは、仰るとおりタイムアウトで破棄されるってこと。
書き方が紛らわしかったね。すまん。

クエリ文字列ということは、遷移する間、条件となるデータをhiddenfieldなり、
viewstateなりで持ち続けるってことだよね。その方法かセッションしかないよねぇ。
うーん。

53 名前:nobodyさん mailto:sage [2009/03/04(水) 23:17:46 ID:???]
クエリ文字列はQueryStringプロパティということで
GETパラメータを想定してると思われます。

54 名前:nobodyさん mailto:sage [2009/03/05(木) 23:06:37 ID:???]
画面遷移のパラメータを安易にSessionに持つと、ブラウザの2窓できないクソアプリになるのでやめてくれ

55 名前:nobodyさん mailto:sage [2009/03/06(金) 01:46:04 ID:???]
正直、getやpostで値を持ち続けるのは面倒臭いw

56 名前:nobodyさん mailto:sage [2009/03/06(金) 04:41:06 ID:???]
セキュリティとの兼ね合いだな

57 名前:nobodyさん [2009/03/11(水) 19:26:02 ID:cFXXjK9z]
たとえば一つの表で列1に対する集計、列2に対する集計など
複数の結果を一つのページに表示する場合、
それぞれに対してSqlDataSourceを作るのが普通ですか?
それとも自力でごりごりコードファイルにSQLを書いていくものでしょうか?

またはもっと素敵な方法ありますか?

58 名前:nobodyさん mailto:sage [2009/03/12(木) 01:36:38 ID:???]
おれも疑問

@検索ページ→詳細ページ→A検索ページ
こういうとき、
A検索ページへの検索条件引渡しは、GETパラメータ(QueryString)で渡すとして、
詳細ページに移動した時点での@の検索条件はどこに保管しとくのがいいのやら。

sessionに持つと、2窓同時操作ができないのよね・・・

59 名前:nobodyさん mailto:sage [2009/03/12(木) 23:28:13 ID:???]
>>58
ふつうにクエリ文字列として渡すので何か問題が?
詳細ページと検索ページ2に同じパラメータ渡すだけだろう


60 名前:nobodyさん mailto:sage [2009/03/13(金) 03:40:19 ID:???]
そういう場合、GETでクエリストリングに検索条件を列挙するのが普通だね。ウィンドウをもう一枚開きたいとか、ブラウザの戻るボタンとか。もっと言うと、アクセスログ解析とか。様々な点でGETの方がいい。



61 名前:nobodyさん mailto:sage [2009/03/13(金) 20:08:50 ID:???]
>>59-60
詳細ページでもGETパラメーターか
なるほど

詳細ページでは検索条件を直接使わないから、
詳細ページにもGETパラメーター渡すっていう考えに及ばなかった

すっきりしたよ
ありがとう

62 名前:nobodyさん mailto:sage [2009/03/16(月) 19:35:40 ID:???]
>>57
自分の場合は、ほとんどC#2.0のRepeaterにDataSetをDataBindしているので、
よほどのことがない限り、自力で合計して自力で合計値を表示させてる。
SQLで集計行を儲けるクエリがあったと思うよ

63 名前:nobodyさん mailto:sage [2009/03/16(月) 19:48:12 ID:???]
>>58
>sessionに持つと、2窓同時操作ができないのよね・・・
セッションキーだけをGETやPOSTで渡すという方法もあるよ
検索時に検索ボタンのクリックで、検索条件を納めた情報をユニークなキーでセッションに保存して、
ユニークなキーをGETやPOSTで持ち回りし、検索ページ表示時にユニークキーから
保存したセッションから検索条件を取得して再現するとか。


64 名前:nobodyさん [2009/03/17(火) 13:27:16 ID:lh6o9g9J]
お手数ですが何方かご存知のの方が
おりましたら教えて下さい。
SPREADにて作成したCELLに数字(例:01)を入力し
実行時にブレイクポイントを張って
入力した数値を見てみると
「01」ではなく「1」としてデータが格納されております。
これはSPREADの仕様なのか
CELL作成時に、書式設定可能なのか
教えて頂けますでしょうか。

65 名前:64 [2009/03/17(火) 13:28:09 ID:lh6o9g9J]
ちなみに言語は
VBです。

66 名前:nobodyさん mailto:sage [2009/03/17(火) 15:32:46 ID:???]
>>64
SPREADってグレープシティのコンポーネント?
よくわからないけど、Excelと同じなら、Excelでも入力した文字が数値に変換可能なら、
自動的に数値に変換して表示したりするので、たぶん仕様だと思う
文字列として表示したいのなら、そのセルまたは列の属性を決めるプロパティがないかな?
たとえば日付型、文字型、数値型とか。

67 名前:nobodyさん mailto:sage [2009/03/17(火) 16:47:17 ID:???]
セルを文字列型にしたひな形作って読み込ませりゃいいんじゃね?

68 名前:nobodyさん mailto:sage [2009/03/31(火) 10:25:24 ID:???]
保守

69 名前:nobodyさん mailto:sage [2009/04/04(土) 01:24:29 ID:???]
Webサービスの参照を追加する場合、VSのウィザードからやるのが一般的のようですが、
これをプログラムソースのみで行うことは可能でしょうか?
可能であれば方法も教えて頂けませんでしょうか?

70 名前:nobodyさん mailto:sage [2009/04/04(土) 18:57:54 ID:???]
プログラムソースのみで行うってのはどういうことを意味してるのかわからんが
あれはプロキシクラス作ってるだけの気がするから、そのプロキシクラスと
同じようなクラスを自分でコーディングすればできるんじゃね

ウィザード使わずにプロキシクラス作りたいって話なら、
Wsdl.exeの使い方を調べてみれば



71 名前:nobodyさん mailto:sage [2009/04/13(月) 03:26:26 ID:???]
保守

72 名前:nobodyさん mailto:sage [2009/04/15(水) 20:35:37 ID:???]
検索ページへはhistory.back()で戻すw


73 名前:nobodyさん mailto:sage [2009/04/17(金) 16:12:21 ID:???]
というわけで移転( ´∀`)

74 名前:nobodyさん mailto:sage [2009/04/17(金) 18:04:52 ID:???]
(再生手続開始の申立て)
第二十一条
 債務者に破産手続開始の原因となる事実の生ずるおそれがあるときは、債務者は、裁判所に対し、
再生手続開始の申立てをすることができる。債務者が事業の継続に著しい支障を来すことなく
弁済期にある債務を弁済することができないときも、同様とする。
2 前項前段に規定する場合には、債権者も、再生手続開始の申立てをすることができる。

(疎明)
第二十三条
 再生手続開始の申立てをするときは、再生手続開始の原因となる事実を疎明しなければならない。
2 債権者が、前項の申立てをするときは、その有する債権の存在をも疎明しなければならない。

75 名前:nobodyさん mailto:sage [2009/04/17(金) 18:09:37 ID:???]
MVCの分離なんて理想論です
偉い人にはそれが分からんとです

76 名前:nobodyさん mailto:sage [2009/04/17(金) 18:46:47 ID:???]
ASP.NETだと、

Model 型付きDataSetや集計をするクラス、ストアド、SQL CLR
View aspxとコードビハインド
Controller 入力チェック、重複チェック、楽観ロック

でしょ?
ViewにControllerを書いてしまうことが多いけど、
それさえちゃんとすれば、ほとんど実行できてるに等しいんじゃね?

77 名前:nobodyさん mailto:sage [2009/04/17(金) 23:19:49 ID:???]
n層データ構造でググれ。
MVCってのはオブジェクト指向と同じで幾つかの宗派がある。

78 名前:nobodyさん mailto:sage [2009/04/17(金) 23:51:43 ID:???]
>>76が正解っぽいな

79 名前:nobodyさん mailto:sage [2009/04/18(土) 02:53:40 ID:???]
コードビハインドの関数を<%%>の中から呼べますか?
シングルファイルだと普通に呼べるんですが・・・

80 名前:nobodyさん mailto:sage [2009/04/18(土) 10:30:16 ID:???]
普通に呼んでるが



81 名前:79 mailto:sage [2009/04/18(土) 13:32:54 ID:???]
あーそうか、アクセス修飾子を省略してたからダメだったんだ(C#)。
レスどうも。おかげで気づきました。

82 名前:nobodyさん mailto:sage [2009/04/24(金) 13:01:47 ID:???]
言語 .net1.1 C#

すいません、初歩的な質問かもしれないのですが、
うちの会社では本番機サーバーにプログラムをリリースする時に、コンパイル済みdllファイルとソースファイル(aspx、resx、cs)を、
全部アップしてリリース作業終了となっています。
本来はdllだけでも良かったりしますか?


83 名前:nobodyさん mailto:sage [2009/04/24(金) 13:17:42 ID:???]
WEBサイト?
WEBアプリ?

84 名前:nobodyさん mailto:sage [2009/04/24(金) 13:33:50 ID:???]
>>83
すいません、
会社の売上を管理するWEBサイトです。
社内LANだけに公開されています。

85 名前:nobodyさん mailto:sage [2009/04/24(金) 13:42:39 ID:???]
そもそもソースをアップと言ってもそれを公開するわけでもなかろう?
発行するようにしてるんであればそれに任せりゃいいんじゃね?

ソースをどっ化のファイル鯖に上げるとか言うのなら話は別だけど

86 名前:nobodyさん mailto:sage [2009/04/24(金) 16:03:29 ID:???]
Webサイトならaspxファイルだけの場合もあるし、
何かの参照設定してdll読み込んでるならDLLと両方の場合もあるんじゃ?
だから、この場合、たぶんなんかのライブラリとかを参照設定して利用してると考えれば
両方アップすればいいんでね?

87 名前:nobodyさん mailto:sage [2009/04/24(金) 17:54:58 ID:???]
>>85
>>86
ありがとうございます。
何らかの参照設定等が行われていると考えて、とりあえずこのままいきたいと思います。
ありがとうございました。

88 名前:nobodyさん mailto:sage [2009/04/24(金) 18:51:30 ID:???]
>>84
まず、開発環境かいてみ?
たぶん、>>83の言う、WEBサイトとWEBアプリの違いがわかってないと思うぞ


89 名前:nobodyさん mailto:sage [2009/04/24(金) 21:51:36 ID:???]
>言語 .net1.1 C#
ってんだからWebアプリでそ
だったらCSとか不要。
dllとかとaspxはもちろんいる。


90 名前:nobodyさん mailto:sage [2009/04/25(土) 02:15:15 ID:???]
>>88
>>89
度々すいません。
開発環境で試しにresxとcsファイルを
別の場所に退避させても普通に動作しました。

会社の人にも確認したところ、アップロード作業には
FFFTPを使用するのですが、複数画面のリリースが発生した場合
いちいちCTRL押しながらaspxファイルだけ選択してアップではなく、
シフト押しながらずらっとまとめて選択して
アップする方がラクだからとの事でした。

どうもありがとうございました。



91 名前:nobodyさん mailto:sage [2009/04/25(土) 03:10:57 ID:???]
なんかズレてる気がするのは俺だけ?

92 名前:nobodyさん mailto:sage [2009/04/25(土) 13:05:13 ID:???]
はぁ?って感じだな
webサイトを発行っていうかプリコンパイルしてないのか

93 名前:nobodyさん mailto:sage [2009/04/25(土) 13:19:02 ID:???]
別に事前にコンパイルする必要はないだろ

94 名前:nobodyさん mailto:sage [2009/04/25(土) 14:42:14 ID:???]
ソースをそのまま公開サーバに置くのか?

95 名前:nobodyさん mailto:sage [2009/04/25(土) 15:26:07 ID:???]
社内だっつってんだろ。カスが!

「デスクトップにショートカット作っとくといいよ。」と同程度のアドバイスが理解できなくて
こんなところでお門違いな質問しちゃっただけだよ。

96 名前:nobodyさん mailto:sage [2009/04/25(土) 16:05:53 ID:???]
ナイス カス呼ばわり

97 名前:nobodyさん mailto:sage [2009/04/25(土) 22:28:39 ID:???]
>>95
ファビョんなよwwwww
つうかこいつの会社レベル低そうだな
つうか社内用でもそろそろ1.1とかねぇよ

98 名前:nobodyさん mailto:sage [2009/04/25(土) 22:57:36 ID:???]
技術力は関係無いだろ
だいたいシステム要件は顧客の希望なわけで

99 名前:nobodyさん mailto:sage [2009/04/25(土) 23:05:51 ID:???]
>>98
この場合自社が顧客なようですが
わけもわからず使ってるあたりがウフフな感じですね

この運用を今もやっているということは・・・・
だいたい想像がつきますね

100 名前:nobodyさん mailto:sage [2009/04/25(土) 23:12:55 ID:???]
自社が顧客だとしてもシステム要件は存在するだろ普通



101 名前:nobodyさん mailto:sage [2009/04/25(土) 23:14:38 ID:???]
>>100
この場合システム要件の話をしているわけはないと思いますが?

102 名前:nobodyさん mailto:sage [2009/04/25(土) 23:15:07 ID:???]
むしろ、何でもかんでも最新技術の利用を認める会社のほうが、少ないよな

103 名前:nobodyさん mailto:sage [2009/04/25(土) 23:17:21 ID:???]
どこまでを最新技術というのか・・・・


104 名前:nobodyさん mailto:sage [2009/04/26(日) 00:52:04 ID:???]
他のアプリが乗ってて運用してる場合
へんにアップデートするとおかしくなる可能性もあるからな
セキュリティアップデート以外の余分なものは入れないのが普通だろ

105 名前:nobodyさん mailto:sage [2009/04/26(日) 01:38:16 ID:???]
それはやれないのなら仕方ないが実績が無いのは検証不足というんじゃね?
まぁふつう鯖分けるとか対策するだろうけどさ

106 名前:nobodyさん mailto:sage [2009/04/26(日) 02:09:45 ID:???]
過去に作ったアプリについて、OSなりフレームワークをアップデートしても
動作するかどうかなんて検証する余裕なんてないよ
まして他社製が動作してたら検証の余地なんて無い

仕方ないからその鯖にのせるために
新しいテクノロジを使えない例なんてゴマンとあるよ

107 名前:nobodyさん mailto:sage [2009/04/26(日) 02:12:10 ID:???]
単なるデプロイから要件定義の話に広がり、
果ては技術論にまで及ぶのが2chクオリティ

>>90
通常はリリース用のディレクトリを用意しておき、
開発が完了したら「Webサイトの発行」で出力先をリリース用ディレクトリを指定する。
(直接Webサーバを指定してもいいが)
本番環境へのアップロードはリリース用ディレクトリの中身全部をFFFTPで送ってやればおk
(それこそシフト押しながらずらっとまとめて選択してw)

ソースはどう管理してるのか知らないが、VSSなんかの場合はコミットして
タグはっておけばいいんじゃね?

ソースをそのままアップしても問題なく動くけど、セキュリティ意識を持つなら避けるべき。
昨今は内部犯行も多いしね・・

108 名前:nobodyさん mailto:sage [2009/04/26(日) 16:19:55 ID:???]
.NET1.1にWebサイトもWebサイトの発行も無えよ

109 名前:nobodyさん mailto:sage [2009/04/26(日) 19:48:39 ID:???]
2chクオリティとか言ってた奴がいちばん2chクオリティだったとわw

110 名前:nobodyさん mailto:sage [2009/04/27(月) 20:06:01 ID:???]
asp.net用にセッションをインテリセンスを利用してタイプセーフに
管理するクラスを記述してみたんだけどこういうのって有用かな?



111 名前:nobodyさん mailto:sage [2009/04/28(火) 12:11:09 ID:???]
ないよりはあった方がいいように思うけど、
果たして必要かと言われると微妙。
それが必要される背景とシステム的な需要は
分けて考えられるべきではないかと。

要するに場合による。

112 名前:nobodyさん mailto:sage [2009/04/28(火) 15:40:55 ID:???]
なるほどサンクス
帰宅したらどこかにうぷして公開してみるよ

113 名前:nobodyさん mailto:sage [2009/04/28(火) 17:24:00 ID:???]
>>111
こんな感じ
hp.vector.co.jp/authors/VA038417/NlpSession.zip

○使い方
・Sessionとして保存するクラスを定義する
Sessionに保存する情報を格納するClassを、NlpSessionDataBaseを継承して作成する
NlpSession.csの一番下のサンプルがそれ

・Sessionデータの保存
NlpSessionDataProvider.Session<SessionData>().BirthDateTime = DateTime.Now;

・Sessionデータの取得
DateTime dt = NlpSessionDataProvider.Session<SessionData>().BirthDateTime;

・Sessionが保存されているかどうか
bool hasSession = NlpSessionDataProvider.HasSession<SessionData>() ? true : false;

・Sessionの削除
NlpSessionDataProvider.RemoveSession<SessionData>();

114 名前:nobodyさん mailto:sage [2009/04/28(火) 19:29:51 ID:???]
ぬ・る・ぽ・製・作・所wwwwwwwwwwww
なんちゅう名前付けてんだw

つうか、あれだ・・・
殴打の作者だったのか

お世話になりました。orz


うちでも似たようなの作りはしてる。
ページ単位で利用するセッションデータの管理と破棄の機能もくっつけてる感じのやつだけど
Redirectで飛びまくるページなんかの条件保持とかに使ったりかなぁ…

ケースバイケースで使えるんじゃないかな?
と思う


115 名前:nobodyさん mailto:sage [2009/04/28(火) 20:26:35 ID:???]
  ∧_∧∧_∧ ガッ
 ( ・∀・)⊃Д´) 
 (O  / つ つ ←>>114
 人  Y ゝ ) )
 し(__) し し

なるほど。
windowsformでは、staticを利用したグローバル変数的なものを使う場合があるけど、
それをasp.netのsessionを利用して実現できないかと思ったのと、
かつインテリセンスを利用可能にして、タイプミスしないようにするためにと思って、
ジェネリクスを利用した似非singletonパターンぽい感じにしてみたんだけど、
わりとみんな似たようなことは考えてるんだね

116 名前:nobodyさん mailto:sage [2009/04/28(火) 21:53:55 ID:???]
>>115
むしろこういうの持ってないより持ってた方があとあと考える手間は減るわな


117 名前:nobodyさん mailto:sage [2009/04/29(水) 01:30:43 ID:???]
VS2005 .NET2.0 WebForm C#
処理中にマウスをwait(砂時計)にする方法しりませんか?
ググりかたが悪いのか、WindowsForm しかでてきかません・・・

118 名前:nobodyさん mailto:sage [2009/04/29(水) 02:16:14 ID:???]
氏名          :TextBox 検証コントロール:RequiredFieldValidator
メールアドレス     :TextBox 検証コントロール:RequiredFieldValidator と RegularExpressionValidator
メールアドレス(確認) :TextBox 検証コントロール:RequiredFieldValidator と CompareValidator
メルマガ配信      :CheckBox(配信希望のときチェック)

[送信]ボタンクリックで、確認画面を表示

のようなWebフォームを作りたいのですが

検証条件
1.氏名入力必須
2.メルマガ配信がチェック有りの場合は、メールアドレス入力必須
3.メルマガ配信がチェック無しの場合は、メールアドレス入力任意

のようにしたいのですがアドバイスお願いします。

119 名前:nobodyさん mailto:sage [2009/04/29(水) 03:23:09 ID:???]
>>117
マウスカーソルを出してるのはクライアントだから、
サーバ側のプログラムでマウスカーソルを変えることはできません
また、クライアントはサーバが処理中かどうかはわかりません
WEBのアプリってのはそういうもんです

>>118
メールアドレスの必須入力は、CustomValidator使って検査

120 名前:nobodyさん mailto:sage [2009/04/29(水) 12:49:22 ID:???]
>>117
asp.net ajaxでやってみたら、なんとなくだけどできそうな感じ

<asp:UpdatePanel ID="UpdatePanel1" runat="server">
 <ContentTemplate>
  <div id="TestDiv" runat="server">
   <asp:Button ID="Button1" runat="server" onclick="Button1_Click" Text="Button" />
   <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label><br />
  </div>
 </ContentTemplate>
</asp:UpdatePanel>

Page_Loadに
this.Button1.Attributes.Add("onclick", "TestDiv.style.cursor = 'wait'");
としてjavascriptでbutton1クリック時にカーソルをwaitに変更し、

Button1_Clickイベント発生時に処理を行ったあとに
System.Web.UI.HtmlControls.HtmlGenericControl a = (System.Web.UI.HtmlControls.HtmlGenericControl)this.ScriptManager1.Page.FindControl("TestDiv");
a.Style.Add("cursor", "default");
でカーソルをデフォルトに戻す




121 名前:nobodyさん mailto:sage [2009/04/29(水) 12:57:41 ID:???]
>>118
validatorは型どおりのだと便利だけど、
少し複雑なことさせようとするととたんに不便になったり
結局、自分は自分で検証してlabelにエラーメッセージを表示させてるよ

122 名前:120 mailto:sage [2009/04/29(水) 13:02:38 ID:???]
ごめん最後の奴はテストのやつそのまま貼ってしまった

標準に戻すだけなら、
this.TestDiv.Style.Clear();か
this.TestDiv.Style.Remove("cursor");でいいと思うけど、
postbackされると自動的にカーソルが元に戻ってしまうっぽいので、
何もしなくてもいいのかもしれない

あんま検証してないけどいろいろ試してみると面白いかも

123 名前:118 mailto:sage [2009/04/29(水) 15:48:19 ID:???]
Protected Sub magazineCheckBox_CheckedChanged
(ByVal sender As Object, ByVal e As System.EventArgs)Handles chbMmagazine.CheckedChanged

 If chbMmagazine.Checked Then
  ReqEmail.Enabled = True
  reqConfirm.Enabled = True
  lblComent.Text = "チェック有り"
 Else
  ReqEmail.Enabled = False
  reqConfirm.Enabled = False
  lblComent.Text = "チェックなし"
 End If
End Sub

みたいに書いてみたんだけど、チェックのON/OFF(hbMmagazine.Checked)を切り替えても
検証(メール欄入力検証:ReqEmail.Enabled = True/False、確認欄入力検証:reqConfirm.Enabled = True/False)
つまり、ErrorMesageの表示/非表示
が切り替わらない。どうすれば?

>>119
>メールアドレスの必須入力は、CustomValidator使って検査
CustomValidatoの使い方、args.IsValidがどうのていうのが検索したけどよくわからないです。

完全独学で勉強しているものでmicrosoftのサイトを見てもまだ???な状態です。

124 名前:nobodyさん mailto:sage [2009/04/29(水) 18:46:34 ID:???]
>>120
クライアントのスクリプト使うなら、Ajax使わなくてもできるような気がする

>>123
とりあえず入門書買ってこい

チェックボックスの変更でバリデータの有効/無効が切り替えられるのは、
ポストバックが発生した後だってことはわかってるか?
ポストバック発生しても切り替わってないってならソース晒せ

IsValidは検査に通ったかどうか設定する

125 名前:nobodyさん mailto:sage [2009/04/30(木) 01:34:00 ID:???]
あー、任意のページを別ページからインスタンス化したい。
そうすりゃテストとか死ぬほど楽なんだけどなぁ。

126 名前:nobodyさん mailto:sage [2009/04/30(木) 01:45:18 ID:???]
検証コントロールについて詳しく解説しているサイトがあったら教えてください

127 名前:nobodyさん mailto:sage [2009/04/30(木) 13:04:53 ID:???]
msdn

128 名前:nobodyさん mailto:sage [2009/04/30(木) 13:06:45 ID:???]
検証コントロール覚えるより正規表現を覚えたほうがいい気がする

129 名前:nobodyさん [2009/04/30(木) 18:37:25 ID:8hdVVO13]
ASP.NET ってHTMLの出力がめんどくない?
みんなリテラルにつっこんでるの?

130 名前:nobodyさん mailto:sage [2009/04/30(木) 18:56:16 ID:???]
htmlそのものを自分で記述して出力することがあんまりないと思う
定型ならLabelに記述するし、テーブルで行によって変化するならRepeaterを使ってしまうから
仮にhtmlを埋め込み式で出力したい場合でも、

public string Nullpo1()
 return "ぬるぽ";
public void Nullpo2()
 Response.Write("ぬるぽ");

をコードビハインドに定義して
<% =Nullpo1()%>
<% Nullpo2();%>
をhtmlに埋め込めばいいんでないの?
phpと同じだし、そんな大変かな?



131 名前:nobodyさん mailto:sage [2009/04/30(木) 21:17:04 ID:???]
>>129
HTMLの生文字列を出力したくなったら、
設計がおかしい(少なくともASP.NET向きではない)と思う。
Labelに<br />をたまに打つ位だな。

132 名前:nobodyさん [2009/05/01(金) 10:28:34 ID:2Yd9vHgr]
PHPみたいに
<?php foreach(): ?>
<htmlタグ>
<?php endforeach;?>
とか
<?php if(): ?>
<htmlタグ>
<?php else: ?>
<htmlタグ>
<?php endif; ?>

みたいにやりたいんだけど。
出来ないのかな?

<% =Nullpo1()%>
こうゆうやり方が出来るのはしらなかった。


<dl>
<dt>項目</dt>
<dd>内容</dd>
<dt>項目</dt>
<dd>内容</dd>
<dt>項目</dt>
<dd>内容</dd>
</dl>

上記の繰り返しなどをコードビハインド?上で
リテラルなどに突っ込んで出力とかは出来るけど、
デザイナなどにコードビハインドを変更してもらうのはちょっと気がひけるし・・・

133 名前:nobodyさん mailto:sage [2009/05/01(金) 12:24:34 ID:???]
前者はRepeaterコントロールを使う

後者はいろいろやり方があるけど、
例えばある特定の場合のみ表示させたいhtmlタグがある場合は
Visible=falseのPanelを配置して条件によってVisible=trueにして表示させる
または複数の場合分けが存在しhtmlをごっそりと入れ替えたい場合には
MultiViewとViewを利用して表示する条件に従って表示させたいViewを表示させるようにする

>上記の繰り返しなどをコードビハインド?上でリテラルなどに突っ込んで出力とかは出来るけど、
これは完全にRepeaterコントロールの範疇のような気がする


134 名前:133 mailto:sage [2009/05/01(金) 12:33:01 ID:???]
あとaspみたいな扱いももちろんできるよ

<body>
 <form id="form1" runat="server">
  <% for (int i = 1; i < 10; i++) {%>
   ぬるぽ
  <%}%>
 </form>
</body>

実行結果「ぬるぽ ぬるぽ ぬるぽ ぬるぽ ぬるぽ ぬるぽ ぬるぽ ぬるぽ ぬるぽ 」

135 名前:nobodyさん mailto:sage [2009/05/01(金) 13:17:49 ID:???]
>>132
>デザイナなどにコードビハインドを変更してもらうのはちょっと気がひけるし・・・
コードビハインドの理想は、デザインとコードの完全な分離なんだ
コードビハインドでコードをデザイナーがどうこうとか考え方がまちがってる

デザインするファイル(*.aspx)には一切のコード書かない
コードが必要なとこはすべてコントロールを置く。必要なコントロールがないなら作る
コードはすべてコードビハインド(*.aspx.cs,*.aspx.vb)に書く
これがasp.netなWEBアプリ開発の基本的な理想形

まあ実際は実行時バインド(<%= %>)とか便利なんで使いまくりなんだがなw

136 名前:nobodyさん mailto:sage [2009/05/01(金) 13:32:14 ID:???]
そうなるとITemplateインターフェースを知って勉強がしたくなるよね
codezine.jp/article/detail/425?p=1

まーphpとかclassaspのようなwebとして考えるんじゃなくて
windowsformの気持ちで取り組んだほうがいいのかもしれない




137 名前:nobodyさん [2009/05/01(金) 13:53:38 ID:2Yd9vHgr]
Repeaterの情報ありがとう。
入れ子も出来るみたいだし、それなりに使えるかも。
ただ、繰り返し中の条件分岐を作るのは面倒くさそう。

Panelの表示・非表示は思いついたけど、
Panelって<div>タグに置換されるからちょっといやな感じ。
中身は出力するけど、<div>タグには置換されないならありかも。


><% for (int i = 1; i < 10; i++) {%>
上記の使い方が出来ないと思い込んでいたけど、
今日試してみたら出来た。
色々検索して探しても、そんな情報が見つからなかったからな。
みんな使っていないって事か?


>コードビハインドでコードをデザイナーがどうこうとか考え方がまちがってる
もちろん、コードビハインドにHTMLタグが一切出てこないようにしたいです。
HTML出力のためにプログラマに負担がいくのはちょっと…てな感じです。

138 名前:nobodyさん [2009/05/01(金) 13:54:29 ID:2Yd9vHgr]
とりあえず、
コードビハインドにパブリックな Hashtableを持たせて、
出力するデータを全て突っ込んで出力することにしました。(邪道?)

↓こんな感じ
<% if value("flg") then %>
<%= value("data") %>
<% end if %>

<% for each i as string in value("list") %>
<%= string %>
<% next %>


フリーでテンプレートエンジンもあるようなので、
時間があったら試してみたいです。

139 名前:nobodyさん mailto:sage [2009/05/01(金) 14:56:32 ID:???]
邪道というか、.NET以前のasp的なやり方だな
旧aspの頃にはよくやってた

>もちろん、コードビハインドにHTMLタグが一切出てこないようにしたいです。
>HTML出力のためにプログラマに負担がいくのはちょっと…てな感じです。
逆だ。デザイナーに一切のコード見せなくするのが狙い
まあ、プログラマーが一切html触らないのは理想だが、
これはさすがにちょっと無理が多いからな

ホントは、htmlのレンダリングに関することは、コントロール作成者の役割で
プログラマの役割じゃない、ってのが理想形なんだろうな。
(まあコントロール作成者はプログラマなんだがw)
asp.netのコントロールはレンダリング相手によって出力するhtml変えるからな

少なくとも
><% if value("flg") then %>
><%= value("data") %>
><% end if %>
これは関数化してこの前後のif、end if文ぐらいはコードビハインドに入れてくれと思う


140 名前:nobodyさん mailto:sage [2009/05/01(金) 15:03:27 ID:???]
panelがdivになるのが嫌だったら、
<table id="table1" runat="server">
にしてコードビハインドで
this.table1.Visible = false
でもいいんでないかな

あと、よほど遠回りになるなら別だけど
多少のことなら「面倒」を理由に避けるのはいかんと思うw



141 名前:nobodyさん mailto:sage [2009/05/01(金) 15:40:26 ID:???]
ASP.NETでテンプレートエンジン使うくらいなら、
ASP.NET MVCを使う方が良いと思う。

142 名前:nobodyさん [2009/05/01(金) 15:52:57 ID:2Yd9vHgr]
>逆だ。デザイナーに一切のコード見せなくするのが狙い
理想はそうですよね。
上部に <% Page Language=… とかすら無くしたいものです。

<asp:****>
みたいなタグが出てくるとデザインを変更しづらくなるので、
なるべく避けたいところです。

>これは関数化してこの前後のif、end if文ぐらいはコードビハインドに入れてくれと思う
このいい方法がおもいつかないです。

例えば動的にアンカーの表示・非表示とURLとアンカーテキストを表示する場合、
どういった感じになるのですかね。
<a href="*****">*****</a>

現在はこんな感じです。
<% if value("hoge") then %>
<a href="<%= value("hoge_url") %>"><%= value("hoge_name") %></a>
<% end if %>

143 名前:nobodyさん mailto:sage [2009/05/01(金) 16:16:42 ID:???]
だから、従来のASPやPHPの方法論を頭から全く捨てて、ASP.NETという新しい概念として理解しないとだめ
動的にアンカーの表示非表示を行うならこうすればいい

protected void Button1_Click(object sender, EventArgs e)
{
 if (DateTime.Now.Month == 5)
 {
  this.HyperLink1.NavigateUrl = @"www.yahoo.co.jp/";
  this.HyperLink1.Text = DateTime.Now.Month.ToString()+ "月";
  this.HyperLink1.Visible = true;
 }
}

144 名前:nobodyさん [2009/05/01(金) 17:16:36 ID:2Yd9vHgr]
>動的にアンカーの表示非表示を行うならこうすればいい
こういった概念などはわかるんだけど、
デザイナとの分業を考えたときに難しいかなと。

例えばデザイナがアンカーテキストに taget="_blank" を
入れたい場合、わざわざプログラマーに頼む感じになると難しいです。

145 名前:nobodyさん mailto:sage [2009/05/01(金) 17:40:36 ID:???]
>例えばデザイナがアンカーテキストに taget="_blank" を入れたい場合、わざわざプログラマーに頼む感じになると難しいです。

デザイナがタグをこうするだけじゃん
<asp:HyperLink ID="HyperLink1" runat="server" Target="_blank">HyperLink</asp:HyperLink>


146 名前:nobodyさん mailto:sage [2009/05/01(金) 17:42:10 ID:???]
いやだから、taget="_blank"したいならaspxファイルにそう書いとけばいいだけ
ブログラマ全く関知する必要ないんだが?
asp.netのコントロール使うのが嫌なら、
<a>タグにrunat="server"って書いといてもらえば、コードビハインドでどうとでもできるだろ

関数化する例は>>130がそのままだろ。VBなら
funciton hoge() as string
if value("flg") then
return value("data")
else
return ""
end if
end funciton
こんな感じか。
んでaspxに
<%= hoge() %>
だけかいときゃいい。余分なコード見せる必要ないだろ
未検証だから間違っててもしらね
理想はこういったものはコントロールにするんだよ。
そうすれば、デザイン画面に表示するものも自分で設定できるから


147 名前:nobodyさん mailto:sage [2009/05/01(金) 17:53:56 ID:???]
>>146
<a href="test.html" id="anchor" runat="server" target="_blank">123</a>
でもいけるからね

お好きな方でドゾー

<form id="form1" runat="server">
 <div>
  <asp:HyperLink ID="HyperLink1" runat="server" Target="_blank">HyperLink</asp:HyperLink>
  <a href="test.html" ID="Anchor1" runat="server" target="_blank">Anchor</a>
 </div>
</form>


if (DateTime.Now.Month == 5)
{
 this.HyperLink1.NavigateUrl = @"www.yahoo.co.jp/";
 this.HyperLink1.Text = DateTime.Now.Month.ToString() + "月";
 this.HyperLink1.Visible = true;

 this.Anchor1.HRef = "www.yahoo.co.jp/";
 this.Anchor1.InnerText = DateTime.Now.Month.ToString() + "月";
 this.Anchor1.Visible = true;
}


148 名前:nobodyさん [2009/05/01(金) 18:43:59 ID:2Yd9vHgr]
><a href="test.html" id="anchor" runat="server" target="_blank">123</a>
なるほど、runat="server"をつければ変更出来るのですね。
勉強になります。


ASPタグを使わずにHTMLタグの繰返しを行う場合は、
Repeaterを使うのがベストですかね?

149 名前:nobodyさん mailto:sage [2009/05/01(金) 19:24:31 ID:???]
本を一冊買えば分かることを

150 名前:nobodyさん mailto:sage [2009/05/01(金) 19:54:38 ID:???]
Repeaterがいいんじゃない
ASP.NETの実践的な本は少ないからね。



151 名前:nobodyさん mailto:sage [2009/05/01(金) 20:09:09 ID:???]
Repeaterタグの表現にaspタグが必要だから、どんな場合でも不可能

それより、なんでデザイナに対してそこまで気を遣わなければならないかを
記述したほうがもっと良い解決方法が浮かぶと思う

152 名前:nobodyさん mailto:sage [2009/05/01(金) 21:04:22 ID:???]
んー。
ASP.NETはPHPと大きく違うよねー。
PHPだとHTMLに埋め込むだけだし、
Dreamweaverも対応しているからデザイナと作業しやすいんだよね。

153 名前:nobodyさん mailto:sage [2009/05/01(金) 21:11:41 ID:???]
DreamWeaverはASP.NETも対応してて、普通にASP.NETのタグを出力するぞ?

>PHPだとHTMLに埋め込むだけだし、
それもできるよ?


154 名前:nobodyさん mailto:sage [2009/05/01(金) 21:16:03 ID:???]
ああ、そうなんだ。知らなかった。
じゃあ、なんでコラボしにくいのかなぁ。

155 名前:nobodyさん mailto:sage [2009/05/01(金) 21:21:36 ID:???]
そもそも本当に、コラボしにくいのか?

156 名前:nobodyさん mailto:sage [2009/05/01(金) 21:23:30 ID:???]
CSSは当てにくいよね

157 名前:nobodyさん mailto:sage [2009/05/01(金) 21:32:25 ID:???]
何がどうあてにくいんだ?

158 名前:nobodyさん mailto:sage [2009/05/01(金) 21:45:47 ID:???]
サーバーコントロール使うと、長いIDが生成されない?

159 名前:nobodyさん mailto:sage [2009/05/01(金) 21:51:57 ID:???]
それとCSSと何の関係があるんだ?

160 名前:nobodyさん mailto:sage [2009/05/01(金) 22:55:30 ID:???]
IISの話もここでいいかな?



161 名前:nobodyさん mailto:sage [2009/05/02(土) 00:12:57 ID:???]
TechNetのフォーラムでいいんじゃない?とは思う

162 名前:nobodyさん mailto:sage [2009/05/02(土) 00:14:45 ID:???]
2chには2chの良さがw

163 名前:nobodyさん mailto:sage [2009/05/02(土) 00:39:28 ID:???]
ASP.NETのアプリでSessionを利用しているのですが、
時々タイムアウトしていないのに不意にセッション記憶値が
消える事がありこれを解決したいと思っています。
InProcで動かしているのでワーカープロセスがリサイクルしている
せいと思うのですがリサイクルのイベントログを仕込んでも
なにもログがでません。
他に何か思いつくことがありますでしょうか?

環境
・Windows2003、IIS6、DotNet1.1
・IISの設定画面でワーカープロセスがリサイクルしそうなのを
すべてOFFした。
・DotNet1.1、VS2003でビルドしたアプリをデプロイ

長文すみません。

164 名前:nobodyさん mailto:sage [2009/05/02(土) 00:43:29 ID:???]
リサイクルのイベントログってどうやってとってる?
パフォーマンスカウンタで確認してるか

165 名前:nobodyさん mailto:sage [2009/05/02(土) 00:45:37 ID:???]
これです、よろしくお願いいたしまーす

ttp://technet.microsoft.com/ja-jp/library/cc756146.aspx

166 名前:nobodyさん mailto:sage [2009/05/02(土) 05:13:03 ID:???]
まずはステートサーバで稼働してプログラムやデバッグ環境に問題がないか確認したほうがいい

167 名前:nobodyさん mailto:sage [2009/05/03(日) 01:07:20 ID:???]
>>158
必ずしも長いIDが生成されるわけではないが、場合によっては
.aspxファイルに指定したIDと出力されたhtmlのIDが一致しない
たとえばリピーターなんかでそのタグを繰り返すと、
識別できるように繰り返されたタグに個別のIDが振られる

>>159
ID指定でCSS適用させてると問題になるかもな
後はサーバコントロールがプロパティからCSS生成したりしやがる時があったような気が


168 名前:nobodyさん mailto:sage [2009/05/03(日) 01:17:48 ID:???]
>>163
思いつくことってのはセッションが消える理由か?
クライアントかプロキシがセッションクッキーぽいしてるんじゃね

169 名前:nobodyさん mailto:sage [2009/05/03(日) 11:14:18 ID:???]
>167
わかりやすい説明だね。
マスターページの時もIDが長くなるよね。

こんな記事があるということはCSSが簡単ということはないんじゃない。

「ASP.NET 2.0を使ってCSS対応のWebサイトを作成する」
ttp://japan.internet.com/developer/20070220/27.html

170 名前:nobodyさん mailto:sage [2009/05/03(日) 11:17:11 ID:???]
CSS Friendly Control Adaptersは以下に引っ越したのかな?
ttp://www.codeplex.com/cssfriendly



171 名前:nobodyさん mailto:sage [2009/05/03(日) 14:26:23 ID:???]
>>169
いや簡単だと思うよ
ID指定しなければいいだけ。普通にclass=""でCSSクラスを適用すればスタイルシートが適用される

172 名前:nobodyさん mailto:sage [2009/05/03(日) 22:40:49 ID:???]
ASP.NETを特殊なものと思い込みすぎだろ
吐き出し方にクセはあるとしても結局はただのHTMLとJavaScript・CSSで組み合わさったページ作るだけじゃないか



173 名前:nobodyさん mailto:sage [2009/05/04(月) 13:12:06 ID:???]
ポトペタだけで構築して、出来上がったソースを見もしないやつらが多いということだな

174 名前:nobodyさん mailto:sage [2009/05/04(月) 15:41:59 ID:???]
>172
その吐き出し方が気持ち悪いと思う人も多い

175 名前:nobodyさん mailto:sage [2009/05/04(月) 16:24:55 ID:???]
一度でもサーバコントロールを自作してみれば、
中身はただとResponse.Write(html)なのが理解できるのにな

176 名前:nobodyさん mailto:sage [2009/05/04(月) 16:28:46 ID:???]
コードビハインドをシンプルにするために、JavaScriptをaspxに埋め込みたい。
けれどマスタページ構成なんかで各ASP.NetコントロールのIDなんかをFindControlして
ClientIDプロパティでひっぱってこないとJavaScriptで使えるIDを取得できない。

なのでコードビハインド上でJavaScriptの文字列を動的に出力する形にしてるんですけど
もっと賢いやり方ありませんか?

そもそもaspxにJavaScript書くのはデザイナさんがいやがる?


177 名前:nobodyさん mailto:sage [2009/05/04(月) 16:38:46 ID:???]
>>176
具体的に何がしたいの?
イベント発生元のコントロールと、イベントトリガーと、
何のコントロールのどのプロパティを操作したいのかが知りたい

178 名前:176 mailto:sage [2009/05/04(月) 17:37:01 ID:???]
失礼しました。

たとえば1~10の数値が選択できるDropDownList(ASPコントロール)が3つあって、
それぞれに選択された数値の合計が10以内かどうかを、ユーザ側環境でチェックするJavaScriptです。

チェックトリガはDropDownListのonChangeです。
このとき、DropDownListコントロールのIDはASP.NET側が生成してしまうため、
aspxファイルにJavaScriptを書く際のIDをどのように持ってくるのかなと思いまして。。

aspxにJavaScript置いて、コントロールのIDは<%= %>で参照するのが普通ですか?
コントロールが3つ程度ならいいのですが、20個、30個を想定した場合はどうなんでしょう?

179 名前:nobodyさん mailto:sage [2009/05/04(月) 19:31:57 ID:???]
>>178
DropDownListのOnChangeで、合計値を出すってことかな?
そしたら、functionで、それぞれがOnChangeする度に足したり引いたりするスクリプトを書いて、
自分自身をfunction(this)とでもして渡せばいいんじゃない?
別に自分自身のID知らなくても計算可能だと思うが

180 名前:nobodyさん mailto:sage [2009/05/04(月) 20:14:47 ID:???]
サンプルかいてみたぞい
<script type="text/javascript" src="prototype-1.6.0.3.js"></script>
<script language="JavaScript">
var arrayid = new Array();
var arraynum = new Array();
function nullpo(drop){
 if (arrayid.indexOf(drop.id) == -1)
 {
  arrayid.push(drop.id);
  arraynum.push(drop.value);
 }
 else
 {
  arraynum[arrayid.indexOf(drop.id)] = drop.value;
 }
 var sum = 0;
 for (i=0; i< arraynum.length; i++)
 {
  sum = sum + parseInt(arraynum[i]);
 }
 alert(sum);
}
</script>




181 名前:nobodyさん mailto:sage [2009/05/04(月) 20:15:40 ID:???]
<body>
<select id="drop1" OnChange="nullpo(this);">
<option value="0">0
<option value="1">1
<option value="2">2
<option value="3">3
</select>
<select id="drop2" OnChange="nullpo(this);">
<option value="0">0
<option value="1">1
<option value="2">2
<option value="3">3
</select>
</body>

182 名前:nobodyさん mailto:sage [2009/05/04(月) 20:17:00 ID:???]
これならdropdownlistが何個になろうが、OnChange="nullpo(this);"を記述するだけ
protorypeかjqueryあたりのハッシュテーブル使えばもっと楽にできるかもしれん

183 名前:nobodyさん mailto:sage [2009/05/04(月) 20:29:28 ID:???]
問題はデザイン時に指定しているIDと
実際に動作しているときに出力されるIDが違う、ってことなんだよな

CSSならクラス指定でいいかもしれないが、スクリプトになると問題がある
で、解決方法とすれば、実行時にスクリプト書きかえるか
なるべくID指定しなくて済むようにスクリプト組むぐらいしかないのかと

ClientIDを決定するロジックを自分で決められればいいと思うんだが
そんなことできないかな?


184 名前:176 mailto:sage [2009/05/04(月) 21:07:27 ID:???]
>>180-182
ありがとうございます。ASPで云々ではなくJavaScript側で対応ですか。
参考になります

>>183
CSSもIDとclassで書式が違うので問題になったりしますね。
「なんでIDで指定できないの?」みたいな

ExpressionWebってこの辺を解決してくれたりするんですかね?

185 名前:nobodyさん mailto:sage [2009/05/04(月) 21:32:36 ID:???]
>>183
おそらく無理

>子コントロールをページにレンダリングするコントロールもあります。
>このような親コントロールは名前付けコンテナであり、INamingContainer を実装します。
>名前付けコンテナを含むページをブラウザに表示すると、
>名前付けコンテナの子コントロールの name 属性と id 属性に一意の ID が指定されていることをページ ソースで確認できます。
>ただし、ブラウザで表示される ID を直接参照することはお勧めしません。
>子コントロールに対して一意の ID を生成する式は変更されることがあります。
>代わりに、子コントロールの ClientID プロパティの値を取得し、
>この値を使用して子コントロールを参照します。

>たとえば、ページ内に動的にクライアント スクリプトを作成する場合があります。
>クライアント スクリプトが子コントロールを参照する場合、
>子コントロールの ClientID プロパティを取得して動的なスクリプトに組み込みます。

msdn.microsoft.com/ja-jp/library/3hc29e2a(VS.80).aspx

186 名前:nobodyさん mailto:sage [2009/05/04(月) 23:41:14 ID:???]
>>183
>CSSならクラス指定でいいかもしれないが、スクリプトになると問題がある

それで、JQueryが出てきたんでは?
どこまで、使えるのか、まだ試してないが。

187 名前:nobodyさん mailto:sage [2009/05/04(月) 23:49:24 ID:???]
>>186
そうだjquery勉強しようと思ってたんだった
どんどん新しいテクノロジが出てきておいつかないよね

asp.net勉強して、C#でジェネリクスとかでてきて勉強して、
そう思ったらajaxでてきて、SQL/CLRもやんなきゃってなって、
LinqToEntityキタ━━━━(゚∀゚)━━━━!!、ラムダ式がきたっちゃになって、
今度はリッチクライアントでsilverlightですか?(´Д⊂グスン いまここ

188 名前:nobodyさん mailto:sage [2009/05/04(月) 23:53:52 ID:???]
jQueryで作るAjaxアプリケーション
は良い本だった。

189 名前:nobodyさん mailto:sage [2009/05/05(火) 00:01:46 ID:???]
サーバサイドの実装がめんどくさそう
asp.net ajaxはポトペタだしすごい便利なんだよな

190 名前:nobodyさん mailto:sage [2009/05/05(火) 00:47:31 ID:???]
>>186
JQuery詳しく知らないが、普通の一般的なスクリプトのライブラリじゃないの?
JQuery使うとIDに依存しない実装できるってんなら話は別だが
今問題にしてるのは、クライアントに出力されるIDをどうするか、って話で
サーバ側の制御の問題なんだが



191 名前:nobodyさん mailto:sage [2009/05/05(火) 12:09:59 ID:???]
>>190
いま見てみたんだが、だいぶいろんなことが可能そう

MSDNによれば、
>他のコントロール内でレンダリングされたコントロールの参照
>子コントロールをページにレンダリングするコントロールには、
>GridView、DetailsView、FormView、DataList、Repeater の
>各コントロールなどのデータ リスト コントロール、ユーザー コントロール、
>および Web パーツ コントロールが含まれます。

これらは行が動的に生成されるので、
操作した行にあるコントロールを操作するとか、
同じ列の同じコントロールを全部参照するとかは行うけど
ある特定行(ID)をピンポイントで操作するというのはあまりないと思うんだが、

そうすると
・$(".className") 特定のクラスを持つタグにアクセスする
・$(tagName, base) 要素を検索する
・$("tagName > tagName") 特定の階層条件を満たすタグにアクセスする
でほぼクリアできそうだ。

192 名前:nobodyさん mailto:sage [2009/05/05(火) 14:03:29 ID:???]
久しぶりにいじると楽しいjavascript
jQueryでscriptを記述

<script type="text/javascript" src="jquery-1.3.2.js"></script>
<script type="text/javascript">
function culc() {
 var sum = 0;
 for (var i = 0; i < $(".calcSelect").size(); i++) {
  sum += parseInt($(".calcSelect").get(i).value);
 }
 alert(sum);
}

function getrow(clientid) {
 var object = $("#" + clientid);
 alert($("select", object).get(0).value);
}
</script>

193 名前:nobodyさん mailto:sage [2009/05/05(火) 14:04:24 ID:???]
Repeaterでdropdownlistを配置して

<form id="form1" runat="server">
<div>
 <asp:Repeater ID="Repeater1" runat="server">
  <ItemTemplate>
   <div id = "<%# Container.ClientID %>">
    <select id="Select1" class="calcSelect">
     <option value="0">0</option>
     <option value="1">1</option>
     <option value="2">2</option>
    </select>
    <input id="Button1" type="button" value="button" onclick="getrow('<%# Container.ClientID %>');"/>
   </div>
  </ItemTemplate>
 </asp:Repeater>
 <input id="Button2" type="button" value="button" onclick="culc();" />
</div>
</form>

リピータに適当にバインドする
this.Repeater1.DataSource = new int[] { 1, 2, 3, 4, 5 };
this.Repeater1.DataBind();


194 名前:nobodyさん mailto:sage [2009/05/05(火) 14:08:38 ID:???]
行のobjectを取得する方法はいろいろあると思うけど、
今回はContainer.CliendIDで行ごとに一意の名前を付けて、
そこから目的とするobjectを取得してみた

列の集計は集計するobjectに同じclass名を設定すれば
配列で取得できるのでそこから合計値を求めることができる

クライアント側だけで何かをしようと思うのなら割と便利かもしれない

195 名前:nobodyさん mailto:sage [2009/05/05(火) 14:38:08 ID:???]
>>191
同じクラスの要素や、同じタグの要素をID使わないでどうやって識別するんだ?

繰り返し系のコントロールはまあ仕方ないにしても
マスターページやUpdatePanelでもID変わるのがなぁ

196 名前:nobodyさん mailto:sage [2009/05/05(火) 14:43:33 ID:???]
>>195
>>192-194で試してるように、極端な話、一意の名前を持ったclassのdivで囲めば直接アクセスできる

197 名前:nobodyさん mailto:sage [2009/05/05(火) 14:59:57 ID:???]
>>194
細かい突っ込みだがな、
>今回はContainer.CliendIDで行ごとに一意の名前を付けて、
正確には、システムが自動的に生成した一意の名前を指定して、だな
システムが生成したIDを実行時バインドでスクリプト中に埋め込んでるんで、
これは実行時にスクリプト書き換えてる
で、このID生成ロジックだが、>>185が書いてある通り
>子コントロールに対して一意の ID を生成する式は変更されることがあります。
だから、それなら自分で実装できないかと思ったんだよ

これができれば、マスターページ使うページはIDは
そのまま出力させる、ってことが可能じゃないかと思ったんだ
いま1.1でマスターページ使ってないシステムあるんだが、試しに
マスターページつかって2.0(3.5)に移行してみたら、クライアントスクリプト周りが全滅したんでなw


198 名前:nobodyさん mailto:sage [2009/05/05(火) 15:16:49 ID:???]
>>197
いや、だから>>192-194を読んでる?
今回は一意の名前としてContainer.CliendIDを利用しただけで、
それを自分の用意したものに変更すればいいだけでしょ?

そうすりゃ自分で生成したIDで実装しているのと同じじゃない。
例えば
private int _count = 0;
public string GetID(bool canAdd)
 return canAdd ? "ctrl" + (this._count++).ToString() : "ctrl" + this._count.ToString();
を実装して、Container.ClientIDの代わりに実行時バインドしてあげればいい。

199 名前:nobodyさん mailto:sage [2009/05/05(火) 16:03:29 ID:???]
>>198
実行時バインドで動的に書き換えるならどうとでもなるだろ
そもそもの問題はな、ASP.NETのコントロール使うと
自分で指定したIDと、実行時に出力されるIDが違う(ことがある)、ってことなんだよ
これはデータバインドするような繰り返し系のコントロールに限らないんだ
で、このルールが制御できない
ルール決め打ちでも実用上問題ないかもしれないが、自分でルール決めれたら
実行時バインドに頼らなくても(クライアントスクリプトだけで)ID生成できるだろ

サーバコントロールじゃないhtml要素に実行時にID振るなら、自分で制御できるかもしれんな
webコントロールじゃなくてhtmlコントロールだと動作変わるのか?
あとで実験してみるが、たとえばdivに(実行時バインドで)ctrl1,2,3...ってID振るようにしても、
runat="server"つけたらID変わると思うんだ

200 名前:nobodyさん mailto:sage [2009/05/05(火) 16:57:12 ID:???]
そもそもrunat="server"つけると、解析エラーになった
サーバコントロールのIDにバインド式は書けない模様



201 名前:nobodyさん mailto:sage [2009/05/05(火) 22:49:02 ID:???]
>>165
念のため言っとくが、アプリケーションプールのリサイクルとは別に
アプリケーション自体の再起動(アプリケーションドメインの再起動)もあるぞ。

まあありがちなのは、binフォルダにログ書くとかあほなことやってるパターンだな。


202 名前:nobodyさん mailto:sage [2009/05/06(水) 03:19:58 ID:???]
>>199
>実行時バインドで動的に書き換えるならどうとでもなるだろ
IDは書き換えられないでしょ

>マスターページやUpdatePanelでもID変わるのがなぁ
こちらのテストではASP.NET AJAXフォームに設置したUpdatePanel内に
コントロール配置してもIDは変化しないよ(Repeater等は除く)?

>自分で指定したIDと、実行時に出力されるIDが違う(ことがある)、ってことなんだよ
まったくソースをみてくれてないんだなぁ。
誰もIDの話なんかしていないんだけど。

>そもそもrunat="server"つけると、解析エラーになったサーバコントロールのIDにバインド式は書けない模様
だからID名を実行時にバインドしろなんて言っていないし、
>>192-194でもそんなことしてないんだが。
なんで>>192-194のソースを見て何をしているか理解しようとしてくれないのか理解に苦しむ。


203 名前:nobodyさん mailto:sage [2009/05/06(水) 06:54:06 ID:???]
>>202
>IDは書き換えられないでしょ
サーバコントロールじゃないhtml要素なら書き換えられる

>こちらのテストではASP.NET AJAXフォームに設置したUpdatePanel内に
>コントロール配置してもIDは変化しないよ(Repeater等は除く)?
これ、サーバコントロールでも?
後日検証してみる

>まったくソースをみてくれてないんだなぁ。
>誰もIDの話なんかしていないんだけど。
>>176,183 あたりの流れから話してるんだと思ったが、そうじゃなかったのか
じゃあお前に絡んだ俺が悪かった

>だからID名を実行時にバインドしろなんて言っていないし、
>>192-194でもそんなことしてないんだが。
>>193
 <div id = "<%# Container.ClientID %>">
は、IDを実行時にバインドしてるのじゃないのかね?

まあ、IDがどうこうを主眼にしてないなら、>>192-194について
これ以上俺が言いたいことはない
話がかみ合わないのも当然で、あやまっておく



204 名前:nobodyさん mailto:sage [2009/05/06(水) 09:13:30 ID:???]
>>164
>>201
ご返答ありがとうございます。

リスタートの条件はこれくらいかな。
ttp://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=28589&forum=7&start=8

仮想ディレクトリ下のファイル・ディレクトリをいじってるので、
これが怪しい気がしてきた。
aspx等のみ対象だったら無関係だけど。
ttp://support.microsoft.com/default.aspx?scid=kb%3Bja%3B319947

なんにせよリスタートしているか確認して出直してきます。

205 名前:nobodyさん mailto:sage [2009/05/06(水) 10:44:48 ID:???]
>仮想ディレクトリ下のファイル・ディレクトリをいじってるので、

どういじってる?
例えばフォルダ作ったりしたら強制再起動だった気がするぞ、詳細は覚えてないが。


206 名前:nobodyさん mailto:sage [2009/05/06(水) 10:49:18 ID:???]
基本的にアプリからいじっていいのは、
App_Data配下のみだと思っておいた方がいい。


207 名前:nobodyさん mailto:sage [2009/05/06(水) 11:16:35 ID:???]
以外と良いスレだな。

208 名前:nobodyさん mailto:sage [2009/05/06(水) 11:46:30 ID:???]
>>203
何がしたいんだ?
反論のための反論か?

209 名前:BASP21でメール送信の際 503エラーが起こっています。1 [2009/05/06(水) 13:07:40 ID:rRUTbrry]

この質問をご覧いただきましてありがとうございます。

普段、Linux系のサーバを使っていますが、臨時でwindows + ASPのトラブルに当っています。

ASPサイトにて、BASP21で問題無くメール送信をしていたのですが、つい1週間程前から503エラーとなり、原因が判らず困っております。

コードは

Set ObjBasp = Server.CreateObject("basp21")
rc = ObjBasp.SendMail(メールサーバ,メールto,メールfrom,サブジェクト,mbody,"")
Set ObjBasp = Nothing

となっていて、1週間前まで送信に問題はありませんでした。

エラー戻り値は
503 This mail server requires authentication when attempting to send to a non-l

となっています。

認証が必要なのかと思ったのですが、全く同じソースの、別のページでは
503エラーは出るものの、メールは送信できています。
逆に、メールが全く送信できないページがあり、そこの対処で四苦八苦しております。


210 名前:BASP21でメール送信の際 503エラーが起こっています。2 [2009/05/06(水) 13:14:29 ID:rRUTbrry]
サーバはwindows2003です。

サーバ管理者に問い合わせたところ、

> > 要求情報:
> > 要求 URL: www.xxxxxx.co.jp/WebResource.axd?d=2dXuOoZJYqjHKODUjwMZpPRcN5cMzka2nYnKY2l5s1&t=6337110551241250
> > 要求パス: /WebResource.axd

> > イベント コード: 3005
> > イベント メッセージ: An unhandled exception has occurred.

> > 例外情報:
> > 例外の種類: CryptographicException
> > 例外メッセージ: パディングは無効なので、削除できません。

との返答が帰ってきましたが、
サーバに /WebResource.axd というファイルは無く、
この返答がよく判っていない状況です。

ご指導いただければ幸いです。





211 名前:nobodyさん mailto:sage [2009/05/06(水) 14:39:29 ID:???]
WebResource.axd要求してるということは、ASP.NETだと思うんだが
まず、ASP.NETなのか旧aspなのか?

212 名前:BASP21でメール送信の際 503エラーが起こっています。 [2009/05/06(水) 16:30:05 ID:rRUTbrry]
お返事感謝致します。

本当に不慣れでお恥ずかしい限りですが、
.NETでは無いと思われます。
下記が、ルートにある Default.aspx の頭の部分です

<%@ Page Language="VB" MasterPageFile="~/xxxxe.master" AutoEventWireup="false" CodeFile="Default.aspx.vb" Inherits="_Default" title="xxxxxxx" %>
<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">

213 名前:nobodyさん mailto:sage [2009/05/06(水) 16:53:20 ID:???]
.aspxってのは普通ASP.NETの拡張子なんだがな
.aspxのなかでServer.CreateObject("basp21") やってるのか?

214 名前:BASP21でメール送信の際 503エラーが起こっています。 [2009/05/06(水) 17:37:24 ID:rRUTbrry]
お返事遅れて申し訳ありません。

Set ObjBasp = Server.CreateObject("basp21")

自体は、単体のdefault.aspで行っております。



215 名前:nobodyさん mailto:sage [2009/05/06(水) 19:22:43 ID:???]
>>203
いやだからだな・・・

サーバコントロールはRepeaterなどで配置するとIDが変わる

jQueryを使えばいいじゃない

jQuery使ったことないけどID直接指定(ID変わるから)できないから無意味では?

jQueryでサーバコントロールに指定したclass名で直接的にオブジェクト取得できるし
jQueryで<div id=''></div>で囲めばid名で直接的にオブジェクト取得できるよ
(class名は変わらないし、<div>のタグはサーバコントロールではないのでID変わらないから)

という流れで話しているのに、

>>197 >だから、それなら自分で実装できないかと思ったんだよ→だから代替方法を説明してるんですが・・
>>199 >実行時バインドで動的に書き換えるならどうとでもなるだろ→サーバコントロールはできないです
>>203 >は、IDを実行時にバインドしてるのじゃないのかね?→サーバコントロールできないからIDかわらんdivで代替してるんです

と、かみ合ってないのは、あなたとほうだと思う






216 名前:nobodyさん mailto:sage [2009/05/06(水) 19:26:54 ID:???]
だから>>192-194を実際に動作させて、少しソースをいじってくれれば、
Repeaterコントロール内に設置された、
ASP.NETによって長いIDが勝手に付けられてしまうコントロールでも
オブジェクトを取得できるということを示していることがわかると思ううんだが、
なんで試してくれないの?

MasterPageでも同様の手法で、長いIDに変わってしまうコントロールを
取得できるから、わりと便利だと思うんだが。


217 名前:nobodyさん mailto:sage [2009/05/06(水) 19:42:52 ID:???]
>>209
www.kotaete-net.net/Default.aspx?pgid=14&qid=140640416076

218 名前:nobodyさん mailto:sage [2009/05/06(水) 21:11:31 ID:???]
>>216
ためしてるし、お前が示している範囲ではおまえの言うとおりだ

219 名前:nobodyさん mailto:sage [2009/05/06(水) 21:43:45 ID:???]
ASPかASP.NETかどっちなんだよw


220 名前:nobodyさん mailto:sage [2009/05/06(水) 22:39:19 ID:???]
>>215
>>203が馬鹿なんだから、ほっとけ



221 名前:nobodyさん mailto:sage [2009/05/07(木) 00:48:26 ID:???]
ASP.NET AJAX + jQueryで適当にやってると酷いことになるよね
ASP.NET + jQueryかASP.NET AJAXオンリーにするかで分けた方がいいと思う


222 名前:nobodyさん mailto:sage [2009/05/07(木) 03:13:36 ID:???]
>>214
Server.CreateObject("basp21") やってるソースがあるファイルの拡張子は
.aspxじゃなくて.aspなのか?

まあ、単にメールサーバーがSMTP認証要求してるだけの気がするが


223 名前:BASP21でメール送信の際 503エラーが起こっています。 [2009/05/07(木) 11:20:52 ID:eAkk+1Gw]
皆さん、お忙しい中ご返答感謝いたします。

確認したところ、ASP.NETでした。

>>222

Server.CreateObject("basp21") やってるソースがあるファイルの拡張子は asp です。

>まあ、単にメールサーバーがSMTP認証要求してるだけの気がするが

私も、今はその線が強いと感じて現在テスト中です。
今まで、問題がありませんでしたので、なぜ急に・・・と思っているのですが。
しかもメール自体は送信されているので・・・

サポートからの/WebResource.axd が問題という所でASP系資料ひっくり返したり、
孤軍奮闘でしたので、お返事大変心強いです。感謝致します。

224 名前:nobodyさん mailto:sage [2009/05/07(木) 12:21:41 ID:???]
>>223
マルチポストしてんじゃねーよ 失礼だろ
www.kotaete-net.net/Default.aspx?pgid=14&qid=140640416076

225 名前:BASP21でメール送信の際 503エラーが起こっています。 [2009/05/07(木) 12:38:46 ID:eAkk+1Gw]
>>223 様

失礼がありましたこと、お詫び申し上げます。

226 名前:nobodyさん mailto:sage [2009/05/07(木) 21:14:30 ID:???]
/WebResource.axdはASP.NET特有。
だが問題のページはaspだという。
だが確認してみればASP.NETだという。


227 名前:BASP21でメール送信の際 503エラーが起こっています。 [2009/05/07(木) 23:08:17 ID:o/J6ITqf]
本当に門外漢ですみません・・・サイト自体は全く知らない人間が作ったものでして・・・

サポートの続報では、

認証は必要無いそうです。
メールは送れてるので、

default.asp内のObjBasp.SendMail 自体は動いていて、
何か他の部分でしくじってて、それが

ObjBasp.SendMailの戻り値503と/WebResource.axdのエラーとしてでてるのだろうと。

しかし、ObjBasp.SendMailの戻り値と/WebResource.axdの関連性がイマイチわかりません。

メールが送れてるにも関わらず、503の戻り値があり、

そのエラーのヒントは /WebResource.axd だということなのですが・・・

228 名前:nobodyさん mailto:sage [2009/05/07(木) 23:53:45 ID:???]
ヒントってなんだよw ヒントもらってるなら正解も教えてもらえw
aspならWebResource.axdは直接関係ないよ

ObjBasp.SendMailの戻り値503 って何をどうやって何を確認してるんだ

229 名前:nobodyさん mailto:sage [2009/05/08(金) 00:08:57 ID:???]
マルチポスト野郎は消えてくれよ
誰も教えないだろこんな状況じゃ

本当に失礼だと思うならこっちでも詫びいれてるはずだよな?
www.kotaete-net.net/Default.aspx?pgid=14&qid=140640416076


230 名前:nobodyさん mailto:sage [2009/05/08(金) 00:58:30 ID:???]
ヒントとか・・・
何となくわかってるけど解決してないとかそういうもんじゃねぇのかw
調べる時間を得るために



231 名前:nobodyさん mailto:sage [2009/05/08(金) 01:46:47 ID:???]
ascxファイルとcsファイルを作ったんだが、上手く値が渡されない(Labelとか)
aspxのときは問題なくいったんだが、ascxにした途端、宣言したlabelはnullがなんとかとかいって、
値がうまく共有?出来ない
どなたが打開のヒント頂けませんか?

232 名前:nobodyさん mailto:sage [2009/05/08(金) 01:55:36 ID:???]
ソースをうぷしれ

233 名前:nobodyさん mailto:sage [2009/05/08(金) 12:01:02 ID:???]
>>231
UserControl1.Findcontrol("Label1").text = "hage"
//キャスト省略

234 名前:nobodyさん mailto:sage [2009/05/08(金) 18:05:34 ID:???]
>>233は教えてあげる目的でそういう記述してくれてると思うけど、
実際にはLabelオブジェクトをプロパティで公開するか
Label.Textを公開してあげればいいんじゃないかと思われる


235 名前:231 mailto:sage [2009/05/09(土) 00:26:29 ID:???]
ごめんなさい、非常に強い睡魔で寝てしまいました
>>232-234
俺の勘違いでイベント発生してないだけでした
本当にバカでした

236 名前:nobodyさん mailto:sage [2009/05/09(土) 09:51:49 ID:???]
(#^ω^)…

237 名前:nobodyさん mailto:sage [2009/05/09(土) 13:10:10 ID:???]
それでもlabelobjectがnullな状態ってのがよくわかんないね

238 名前:nobodyさん mailto:sage [2009/05/09(土) 23:37:56 ID:???]
くっそー
いままでprototypeだったけどjquery結構便利だな
なんか和んだ( ´ー`)フゥー...

239 名前: [―{}@{}@{}-] nobodyさん mailto:sage [2009/05/11(月) 09:16:40 ID:???]
>>238
VS2008SP1からだったか、jqueryは標準サポートだしな

240 名前:nobodyさん mailto:sage [2009/05/12(火) 00:01:12 ID:???]
VS2005でなんとかしてjQuery使えないかな
IntelliSenseは無くてもいいから



241 名前:163 mailto:sage [2009/05/12(火) 01:28:31 ID:???]
>>204の続きです。
以下のイベントログが出力されており、
AppPoolが再起動している為、
セッション情報が消えてるぽいです。
クラッシュダンプで調べるしかないでしょうか?
他に調査方法があればご教授お願い致します。

・イベントログ
アプリケーション プール 'xxx' を提供しているプロセスは、
World Wide Web 発行サービスで致命的な通信エラーを検出しました。
イベントID 1011


242 名前:nobodyさん mailto:sage [2009/05/12(火) 01:37:48 ID:???]
>>240
普通にJQueryいれりゃいんじゃないか?


243 名前:nobodyさん [2009/05/12(火) 05:14:26 ID:U71Iyk1V]
旧ASPでPDFファイルを作成したいのですが、どんな方法があるでしょうか。
PDFは表形式で、グリッドの高さは可変で、行の途中にページの境目が来る
ようならその行の前に改ページしなくてはなりません。
サーバー側の処理でPDFファイル化したいです。
よろしくお願いします。

244 名前:nobodyさん mailto:sage [2009/05/12(火) 06:58:22 ID:???]
安心したまえ。PDFだってテキスト直うちで書けるんだ。
つまり、FileSystemObjectでテキストファイルを生成して、
後はPDFの仕様通り文字列を吐き出せばいいだけだよ。簡単でしょ。

マジレスすると、無理だから別途そういうパッケージソフトを買う。
ビジネスソフト板で帳票作成ソフトというと、まぁ数は限られるから調べてみるといい。

245 名前: [―{}@{}@{}-] nobodyさん mailto:sage [2009/05/12(火) 09:09:04 ID:???]
>>241
本質的な解決ではないけど、session維持したいなら
stateserverモードを使うとかどうよ?

246 名前:nobodyさん mailto:sage [2009/05/12(火) 10:47:32 ID:???]
ClassicASPでPDFって言うと何があるのかね
ASP.NETならActiveReport一押しなんだけど

247 名前:243 [2009/05/12(火) 11:35:40 ID:U71Iyk1V]
>>246
ActiveReportって定型のフォーマットしかできないイメージなんですが、
グリッドの高さ変えたりページはみだす前に改行したりできますか?



248 名前:nobodyさん mailto:sage [2009/05/12(火) 12:00:02 ID:???]
>>247
フリーハンドで描画できるだろ。

249 名前:nobodyさん mailto:sage [2009/05/12(火) 12:03:03 ID:???]
>>247
CanGrowとかCanShrinkとか
まぁ・・・簡単な動的〜FORMATイベントとか駆使して複雑な動的ってのもできるっちゃぁ出来ると思うけど

たいがいの案件はこなせてきた

一回体験ばん入れて使ってみればどうかな?

250 名前:249 mailto:sage [2009/05/12(火) 12:03:47 ID:???]
だめだ・・・日本語が支離滅裂だ…
疲れてんのかな・・・



251 名前:nobodyさん mailto:sage [2009/05/12(火) 13:08:49 ID:???]
>>247
>グリッドの高さ変えたりページはみだす前に改行したりできますか?
設計が悪いだけじゃない?
改行したら自動的に2行分に伸長してくれて描画してくれるとか余裕だと思うけど

おおよその要求には応えてくれたけど、できないこともあるかもしれない
例えば1行に記述できず2行に伸長してくれたとき、
それがページの最下行だったら改ページして次ページの最上行にしてくれるとか、
もしくはそのまま印刷してくれるを選択できるとか、フッターの表示の関係とか。

グリッドの高さについては、サンプルのCreating and Modifying Report Layouts at Run Time
にあるように実行時調整してしまえば、可能と思われる(英語版ですまん)

>The format event allows the properties of report sections and controls
>to be modified including height, visibility, and other visual properties.
//フォーマットイベントでは、レポートセクションやコントロールの高さや表示/非表示などを含む
//表示に関するプロパティを変更することができる

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みたいな方法だね。


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が共通で利用できない可能性ってないのかな?

俺が勘違いしてるね。スマン


396 名前:nobodyさん [2009/05/29(金) 02:19:51 ID:DlIDf9OB]
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

Debug.WriteLine(Session.SessionID)

End Sub


↑のように書いてページにボタンを置いてポストバックしてみると、毎回違う値が出力される。
SessionIDってそういうものなの?
セッションIDなんて名前なんだから同一セッションの場合は同一の値が返ってくるものと思ってた。

397 名前:nobodyさん mailto:sage [2009/05/29(金) 03:05:08 ID:???]
>>396
同じだよ
クッキーが無効になってる
とか
support.microsoft.com/default.aspx?scid=kb;ja;316112
とか

398 名前:nobodyさん mailto:sage [2009/05/29(金) 08:10:07 ID:???]
Calenderを使って日付けを入力することは簡単にできるのですが、例えば
TextBoxに「2001/6/1」と入力して、それをカレンダーに反映させるにはどうすればよいのでしょうか?

今月じゃない日付を選ぶ場合、月をクリックして前月、前月と繰り返し再表示させなくてはならず、
年月日をダイレクトで指定し、そのカレンダー上に日付に関連する情報を表示(日付を赤バックにする)し
内容を確認できるようにしたい。
最終的に日付の入力はDropDownListで入力する予定です。

399 名前:nobodyさん [2009/05/29(金) 11:09:25 ID:I+rUeGmY]
>>395
いえいえ、とんでもありません。
>webserviceが共通で利用できない可能性
やはりことあたりが疑わしいので、webサービスに接続しているアカウントなどを
追ってみたいと思います。

400 名前:nobodyさん mailto:sage [2009/05/29(金) 14:01:33 ID:???]
>>398
DateTime dateTime;
if (DateTime.TryParse(this.TextBox1.Text, out dateTime))
 this.Calendar1.VisibleDate = dateTime;





401 名前:nobodyさん mailto:sage [2009/05/29(金) 23:31:08 ID:???]
>>163
もう解決済みかもしれんが、亀レスしておく。ASP.NET のワーカー
プロセスは以下のタイミングで再起動する。
・Web.config や Machine.config の更新
・bin 以下のコンテンツの変更(アセンブリ)
・*.aspx 等のコンテンツの変更多数
・なんか具合が悪い時(ぴゅう!)
よって、InProc モードを使っているとタイムアウトしていないのに
データが失われるという不可解な現象に悩まされることになる。
これがデフォルトの動作モードというのはもはや犯罪。いくら速くても
データがロストするんじゃね。

ということで、Session に重要なデータ保存するなら、InProc を使っては
いけない。つまり、ASP.NET 2.0 以降を使うべき。ただ StateServer などを
使う場合には Session に格納するオブジェクトに Serializable 属性が必要
になるので要注意。

402 名前:nobodyさん mailto:sage [2009/05/30(土) 00:27:53 ID:???]
>>401レスどうもです。

原因は、>>241でして、
どうしようもない状態です。
iis 8007006dでググルと事例は
やたら出るが、対処方がみつからないです。

InProcを利用すべきでない等も
理解しているのですが
変えられない状況です。


403 名前:nobodyさん mailto:sage [2009/05/30(土) 00:32:22 ID:???]
InProcでないといけない理由って?


404 名前:nobodyさん mailto:sage [2009/05/30(土) 00:37:39 ID:???]
複数部署のアプリが混在している
1つのプロジェクト構造の為、
自部署のアプリのみをソースレベルで
慎重に分離して、StateServer対応の為、
シリアライズの部分を慎重に見直して、
全再テストする工数が莫大だからです。



405 名前:nobodyさん mailto:sage [2009/05/30(土) 00:47:53 ID:???]
セッションを他の部署でも使ってるっから自分のとこだけでは変更できないてこと?
あれから18日も経ってるけど解決できてないんだね。ご苦労様です。

サーバの再インストールとかやってみた?
どっちにしても、そのままだとシステムとして成り立たないから、
何が原因か、サーバなのか、プログラムなのか、
結果的に全部署で再テストする必要が出てきそうだね。カワイソス

www.google.co.jp/search?hl=ja&q=
World+Wide+Web+%E7%99%BA%E8%A1%8C%E3%82%B5%E3%83%BC%E3%83%93%E3%82%B9%E3%81%A7%E8%87%B4%E5%91%BD%E7%9A%84%E3%81%AA%E9%80%9A%E4%BF%A1%E3%82%A8%E3%83%A9%E3%83%BC%E3%82%92%E6%A4%9C%E5%87%BA%E3%81%97%E3%81%BE%E3%81%97%E3%81%9F%E3%80%82+&btnG=
Google+%E6%A4%9C%E7%B4%A2&lr=&aq=f&oq=

406 名前:nobodyさん mailto:sage [2009/05/30(土) 01:25:38 ID:???]
>>402
iis 8007006d でぐぐると、日本語では1件しか表示されない
MSのサポート情報の機械翻訳で日本語があれだが、エラーの原因が書いてある
そこに書いてある対処方法は当然ためしたか、該当しないか確認したんだよな?


407 名前:398 mailto:sage [2009/05/30(土) 04:44:22 ID:???]
Protected Sub Calendar1_SelectionChanged(ByVal sender As Object, ByVal e As System.EventArgs) _
Handles Calendar1.SelectionChanged
 'カレンダーの日付を選択すると、「選択した日付」を表示(確認)
 lblSelectedDay.Text = Calendar1.SelectedDate.ToShortDateString
End Sub

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
 'ページロード初回のとき、「今日の日付」を表示
 If Not IsPostBack Then
  lblToday.Text = DateTime.Now.Date.ToShortDateString
 End If
End Sub

Protected Sub btnChandeDay_Click(ByVal sender As Object, ByVal e As System.EventArgs) _
Handles btnChandeDay.Click
 '「日付変更」ボタンをクリックしたとき、「今日の日付」を表示
 Calendar1.VisibleDate = Convert.ToDateTime(txtInputDay.Text)
 lblChangedDay.Text = txtInputDay.Text                   '入力した日付をラベル表示(確認)
 lblChangedDay2.Text = Calendar1.SelectedDate.ToShortDateString '選択した日付をラベル表示
End Sub

という感じで作ってみました。
extBoxに「2001/6/1」と入力して、それをカレンダーに反映させる、については
>Calendar1.VisibleDate = Convert.ToDateTime(txtInputDay.Text)
によって該当月のカレンダーが表示されますが、日付の選択状態が実行されません。
指定した日付を選択状態にするにはどうすればよいのでしょうか?

408 名前:nobodyさん mailto:sage [2009/05/30(土) 05:15:58 ID:???]
>>407
>指定した日付を選択状態にするにはどうすればよいのでしょうか?
普通にCalendar1.SelectedDateにセットすればいいだけの気がするんだが、
これって読み取り専用か?

409 名前:nobodyさん mailto:sage [2009/05/30(土) 06:09:32 ID:???]
そんだけ動いてるってことはサーバの負荷が大きくなってプロセス再起動してる感じかなぁ…
ロードバランサ使って負荷分散するとかしないと厳しそうな気もするけど・・・
監視ソフトでも入れて負荷みないとなんともいえん

410 名前:nobodyさん mailto:sage [2009/05/30(土) 06:17:21 ID:???]
Calendar1.VisibleDate = Convert.ToDateTime(txtInputDay.Text)
Calendar1.SelectedDate = Convert.ToDateTime(txtInputDay.Text) ←追加
lblChangedDay.Text = txtInputDay.Text
lblChangedDay2.Text = Calendar1.SelectedDate.ToShortDateString

>Calendar1.SelectedDate = Convert.ToDateTime(txtInputDay.Text)
を追加したら上手くいきました。ありがとう!



411 名前:nobodyさん mailto:sage [2009/05/30(土) 07:12:47 ID:???]
>これがデフォルトの動作モードというのはもはや犯罪。いくら速くても
>データがロストするんじゃね。

むしろデータがロストしても致命的にならないくらい
セッションをできるだけ使わないのがおすすめだけどな。
おれはセッションにはせいぜいリダイレクトの瞬間のやりとりデータしか入れないぜ。


412 名前:nobodyさん mailto:sage [2009/05/30(土) 11:10:13 ID:???]
データの受け渡しをするにしても、必ずSerializableなクラスを渡すようにするのがいいね
設計段階で、Selializableな基底クラスを用意して、それを継承したクラスのメンバ変数で
値を持つようにして、それをsessionで受け渡しすればいい。
InProcで問題が発生してStateServerの利用になっても問題無く移行できる。

413 名前:nobodyさん mailto:sage [2009/05/30(土) 11:48:58 ID:???]
Serializable属性は継承されません

414 名前:nobodyさん mailto:sage [2009/05/30(土) 11:53:13 ID:???]
ん、そうなの?
継承クラスでそのままSerializableできたけどなんでだろう?

415 名前:nobodyさん mailto:sage [2009/05/30(土) 12:56:14 ID:???]
>>413
Silializerだと駄目だね
SessionとかだとSerializable属性なしでも通るのか。
知らなかった。サンクス!


416 名前:410 mailto:sage [2009/05/30(土) 14:29:16 ID:???]
MasterPage上の表の左コラムに、>>407,410で作ったカレンダーを貼り、
日付を選択したら、表の右コラムのContentPlaceHolder1に関連情報(Result.aspx)を表示する。

というのを作成しました。
Server.Transfer("Result.aspx?targetDay=" + Calendar1.SelectedDate.Date)
これで対象となる日付を引き渡し、該当する関連情報を表示するところまでできたのですが

なぜかカレンダー表示がその都度初期値(今日の日付を含む月)に書き換えられてしまいます。
選択した日付を含む年月のカレンダーを表示し、且つ選択した日を選択表示にするには
どうすればよいですか?

417 名前:nobodyさん [2009/05/30(土) 14:45:21 ID:yVbH19hK]
もう、やりたいこと全部コメントに書いてプロジェクトごとアップロードしたら?
俺は落とさないけど。

418 名前:nobodyさん mailto:sage [2009/05/30(土) 15:27:24 ID:???]
よくわからんけどVBって日付の妥当性チェック無しでConvertしても許されたり
stringにDateTime突っ込んだりしても推測して型変換してくれるの?

419 名前:nobodyさん mailto:sage [2009/05/30(土) 15:37:08 ID:???]
普通にブラウザの戻るボタンで戻ると、ちゃんと日付が反映されてるよ
戻るボタンでもAJAX使ってると今日の日付にもどっちゃうけど

ただ単に同じページに戻っただけなら、初めてページを表示させるのと同じだから
表示の日付も今日の日付になってるというのは当たり前の話。
日付を選択して違うページに移動し、再び日付選択ページに戻った時、
その日付を維持したいのなら、セッションかクッキーを使用するか、
GETかPOSTで日付データを渡して値を設定するしかない。

420 名前:410 mailto:sage [2009/05/30(土) 16:12:33 ID:???]
MasterPage

 表左コラム   | 右コラム
          | 
 カレンダー   | 該当年月日に属する情報
 Calendar.ascx | Result.aspx

こんな感じで、カレンダーで選んだ日付に属する情報を表の右コラムに表示する。

Server.Transferを使うことで、選択した年月日の情報を表示することはできました。
ところがResult.aspxが表示された瞬間、Calendar.ascxのカレンダーが初期年月に戻ってしまう。

カレンダー上に、右コラムで表示された情報の日付が選択された該当月が表示されたままにしておいて
同月の前後その他の情報を続けて表示確認したい。

マスターページに共通の見た目のデザインを設定し、この上で
Webユーザーコントロールから必要な項目を選択し、Webフォームに見たい情報をデータベース検索し表示する。
みたいなことができるような仕組みを作ろうかと思っています。



421 名前:nobodyさん mailto:sage [2009/05/30(土) 16:47:09 ID:???]
マスターページとかめんどくさそうだなw

422 名前:nobodyさん [2009/05/30(土) 17:07:38 ID:yVbH19hK]
>>420
ちょっと危険なコーディングだがMasterPage側での処理ということで。
ttp://teke348.dyndns.tv/src/up8781.zip

カレンダーなんて、そのうち「ある場合ではこうで、そうでない場合はこう」
とか色々制限がつきやすいものだから、それ自体をユーザーコントロールにした方が吉。

423 名前:nobodyさん mailto:sage [2009/05/30(土) 20:25:01 ID:???]
>>422
優しいね
ソース眺めて(・∀・)ニヤニヤしようかな(・∀・)ニヤニヤ

424 名前:nobodyさん mailto:sage [2009/05/30(土) 20:35:56 ID:???]
(・∀・)ニヤニヤしようと思ったらVBだからよくわからんかったわw

425 名前:nobodyさん mailto:sage [2009/05/31(日) 03:44:11 ID:???]
フォーム認証のメリットって何?ベーシック認証じゃ駄目なん?
認証受けずにページを表示しようとしたら指定のページに強制的に飛ばされる、つーのは
便利だと思うけど。

426 名前:nobodyさん mailto:sage [2009/05/31(日) 04:17:10 ID:???]
認証方法はユーザIDとパスワードの組み合わせだけだと思うか?

427 名前:nobodyさん mailto:sage [2009/05/31(日) 14:48:59 ID:???]
ベーシック認証に他のやり方があるかどうかわからないけど、
Windowsのアカウントユーザを追加してIDとパスを設定しなくちゃいけないから面倒だからじゃない?
apacheとかでも動的に.htaccessとかにユーザを追加管理しなきゃいけなから
面倒だったと記憶してるんだけど。
フォーム認証ならデータベース等を利用して動的にユーザの追加や削除ができるでしょ。



428 名前:nobodyさん mailto:sage [2009/05/31(日) 17:35:56 ID:???]
まあ、ASP.NET側で自分で独自に処理してやれば、BASIC認証でも自由にやれる。
けどわざわざやる価値はあんまりないわな。


429 名前:410 mailto:sage [2009/06/01(月) 17:45:43 ID:???]
>>422
どうもありがとうございます。
MasterPageに複数のWebコントロールを載せて、結果をDefoult.aspxに表示するというコンテンツを作ると、
Sessionを使うと煩雑になるのと、時系列的にPageを切り替えていくのならOKですが、それぞれの
Webコントロール(上のデータ表示)に、同時に反映させるのが難しいかと思いました。

結局、MasterPage画面に配したWebコントロールページに同時にServer.Transferを送ることで
画面上のデータをすべて同期させることができることが解りました。
VIEWSTATEが少し冗長となりましたが。

またアドバイスお願いします。

430 名前:nobodyさん mailto:sage [2009/06/02(火) 22:10:04 ID:???]
>>418
int型へのキャストで以下が成立する言語
CInt("+2,7,42,4,6,") = 274246
#全角は入力間違いをしている訳ではない



431 名前:nobodyさん mailto:sage [2009/06/02(火) 23:17:26 ID:???]

まぢかw

432 名前:nobodyさん mailto:sage [2009/06/04(木) 17:26:18 ID:???]
参考書で練習問題やってたらAdventureWorksってのが出てきたんだけど
自分で設定汁って書いてあるんだけど、なにこれ?

433 名前:nobodyさん mailto:sage [2009/06/04(木) 18:33:57 ID:???]
マイクロソフトが配布してるデータベースのサンプル

434 名前:nobodyさん mailto:sage [2009/06/10(水) 14:01:06 ID:???]
質問です。1つのイベントを複数のイベントハンドラに対応付ける事は出来るでしょうか?

ネットで探していると
「1つのイベントハンドラを複数のイベントに対応付ける」
というのは沢山出てくるのですが、逆は見つけれません。
そもそも無茶な事しようとしているのでしょうか?

具体的にはボタンがクリックされた時にイベントを2つ呼び出したいといった感じです。

435 名前:nobodyさん mailto:sage [2009/06/10(水) 17:51:41 ID:???]
イベントハンドラ内から新しいイベント投げてやればいいんじゃね

436 名前:nobodyさん mailto:sage [2009/06/10(水) 18:17:32 ID:???]
>>434
こういうこと?

protected void Page_Load(object sender, EventArgs e)
{
 this.Button1.Click += this.Button2_Click;
 this.Button1.Click += this.Button3_Click;
}

protected void Button2_Click(object sender, EventArgs e)
{
}
protected void Button3_Click(object sender, EventArgs e)
{
}


437 名前:nobodyさん mailto:sage [2009/06/10(水) 18:42:20 ID:???]
ヒント:オブザーバー

438 名前:nobodyさん mailto:sage [2009/06/10(水) 18:52:20 ID:???]
デザインパターン使って自分で定義せんでも、.Clickに+=すればいいやんw

439 名前:nobodyさん mailto:sage [2009/06/10(水) 20:41:28 ID:???]
>>435, >>436,
やっぱそうなりますよね。
javascriptだと、onclick="hoge();piyo();" みたいな書き方が出来た気がするので、
そういう単純な方法無いかな〜と思ったんです^^;

>>437, >>438,
そいうデザパタがあるんですね〜勉強してみたいと思います。

440 名前:1/2 mailto:sage [2009/06/10(水) 21:06:01 ID:???]
質問です
コードビハインドで組んでいるのですが、コンテナの使い方がいまいちわかりません
csファイル1
public class Jouhou{
 private int suuji;
 private string moji;
 public Jouhou(int suuji,string moji){
  this.〜〜
 }
 public setget〜〜〜  
}

CSファイル2
public class Dousa{
protected System〜〜.Repeater rpt;
 private void Page_Load(〜〜){
  List<Jouhou> joho=new List<Jouhou>();
  joho.add(〜〜); x3とか
  this.rpt.DataSource=joho;
  this.rpt.DataBind();
 }
 
 protected string hoge(string moji){
  return moji;
 }
}

ascxファイル
<asp:Repeater〜ID="rpt"〜〜〜>
 <ItemTemplate>
  <%# DataBinder.Eval(Container.DataItem, "moji") %>←正常にLiteralが作成されて、表示される
  <asp:Literal ID〜〜〜〜 Text="hoge(DataBinder.Eval(Container.DataItem, "moji"))">←エラーが出る(エラーは不明)



441 名前:2/2 mailto:sage [2009/06/10(水) 21:09:12 ID:???]
つまりRepeaterにはきちんとデータはバインドされていて、mojiとかが正常に以降しているのに、
メソッドに値を送り込もうとすると失敗します。
例えば、
<asp:Literal ID〜〜〜〜 Text="hoge("aaaa")">
とすればきちんとaaaaが返ってきます

やりたいことは、repeaterの中のデータを一旦検証メソッドに送って、その結果を返したいです。
どなたかアドバイス頂けないでしょうか?


442 名前:nobodyさん mailto:sage [2009/06/10(水) 23:18:50 ID:???]
>>441
なんかこんなんつくってたわ
昔作ったから意味は忘れた

<asp:TextBox ID="TextBox" Text='<%# this.GetColumnData(Container, "Data") %>' runat="server"></asp:TextBox>

protected string GetColumnData(RepeaterItem repeaterItem, string columnName)
{
 object columnData = DataBinder.Eval(repeaterItem.DataItem, columnName);
 string returnData = "";
 if (columnData is string)
  returnData = (string)columnData;
 else if (columnData is int)
  returnData = ((int)columnData).ToString();
 else if (columnData is decimal)
  returnData = ((decimal)columnData).ToString();
 else if (columnData is DateTime)
  returnData = ((DateTime)columnData).ToString("yyyy/MM/dd");

 return returnData;
}

443 名前:nobodyさん mailto:sage [2009/06/10(水) 23:23:30 ID:???]
>>442
ありがとうございます!
さっそくそれを参考にいろいろ調べてみます

444 名前:nobodyさん mailto:sage [2009/06/12(金) 09:14:01 ID:???]
すみません。初心者なのですが
皆さんのお知恵をお貸し下さい。

現在、ASP.NETでWEBアプリの勉強をしているのですが
SQLサーバーに、バイナリー形式で保存してある
画像を加工してから出力したくて
BITMAPクラスを使用すればいいことまでは分かったのですが
データベースから取り出した、バイナリーデータを
どうやってBITMAPクラスに入れればいいのか、分からず四苦八苦しています・・・
分かる方からすれば、くだらないかも知れませんが、教えてください。><

Dim image As Bitmap

Dim writeStream As Byte() = New Byte(record.Item(0).toByteArray.Length - 1) {}
System.Buffer.BlockCopy(record.Item(0).toByteArray(), 0, writeStream, 0, record.Item(0).toByteArray.Length)

image = New Bitmap(writeStream)

これだとエラーになっちゃうんです><


445 名前:nobodyさん mailto:sage [2009/06/12(金) 17:26:51 ID:???]
>>444
//MSSQLからバイナリデータの取得 varbinary(MAX)
TestDataSetTableAdapters.TestTableTableAdapter tableAdapter =
 new TestWindowsForms2008.TestDataSetTableAdapters.TestTableTableAdapter();
TestDataSet.TestTableDataTable dataTable = new TestDataSet.TestTableDataTable();
tableAdapter.Fill(dataTable);

//MemoryStresmにMSSQLから取得したbyte[]データを格納 行が無かった場合のチェックする必要あり
MemoryStream ms = new MemoryStream(dataTable[0].BitmapData);
//Bitmapのインスタンスを生成
Bitmap bitmap = new Bitmap(ms);

//BitmapのインスタンスをImageプロパティに設定
this.pictureBox1.Image = bitmap;


446 名前:nobodyさん mailto:sage [2009/06/12(金) 17:29:16 ID:???]
格納する側

//Bitmapインスタンスの生成とbitmapデータの取得
Bitmap bitmap = new Bitmap("test.bmp");
//BitmapデータをMemoryStreamに読み込む
MemoryStream ms = new MemoryStream();
bitmap.Save(ms, System.Drawing.Imaging.ImageFormat.Bmp);

//Bitmapデータを格納するTableのインスタンスの生成
TestDataSetTableAdapters.TestTableTableAdapter tableAdapter =
 new TestWindowsForms2008.TestDataSetTableAdapters.TestTableTableAdapter();
TestDataSet.TestTableDataTable dataTable = new TestDataSet.TestTableDataTable();
tableAdapter.Fill(dataTable);

//新しい行の作成と、バイナリデータの設定
TestDataSet.TestTableRow row = dataTable.NewTestTableRow();
row.BitmapData = ms.ToArray();
dataTable.Rows.Add(row);

//Tableの更新
tableAdapter.Update(dataTable);

447 名前:nobodyさん mailto:sage [2009/06/12(金) 18:11:28 ID:???]
>> 445
ありがとうございます。
無事解決できました。
本当にありがとうございました

448 名前:nobodyさん mailto:sage [2009/06/14(日) 03:05:11 ID:???]
ASPのころ、本当にVBSでできることぐらいしかできなくて苦労したけど
ASP.NETになってから、画像も加工できるし、メールも送れるし、FTPも簡単だし、
FileSystemObjectも簡単になってるし、日付計算も簡単になってるしで、
本当に便利になったよね

BASP21すげーーーーーーとかいって使ってたのを思い出したよ

449 名前:nobodyさん mailto:sage [2009/06/15(月) 15:22:19 ID:???]
レイアウトの自由度のためだけに、一意なレコードしか選択されなくても
Repeater使ってるんだけどおかしい?
FormViewはHTMLに展開されるときにデフォルトでtableタグが生成されるのが
いただけない。ちなみに.net framework2.0限定。

あとデザイナ画面でRepeaterコントロールがデフォで5行表示されるのもなんとか変更したい。
<HeaderTemplate>だけだとItemTemplateが無い場合、表示されないし・・

450 名前:nobodyさん mailto:sage [2009/06/15(月) 15:36:10 ID:???]
>>449
そこまで文句言うならデザイナにでもパネル突っ込んでガリガリループでHTMLとかコントロール突っ込んでいけば?



451 名前:nobodyさん mailto:sage [2009/06/15(月) 19:19:29 ID:???]
>>449
Item5個だけのクラスを新たに作って、リピーターに突っ込めばいいだけなんじゃないの?

452 名前:nobodyさん mailto:sage [2009/06/15(月) 21:15:04 ID:???]
そんなの自由自在
ASP.NET サーバコントロールプロジェクトで自作でhtmlを生成して表示してもいいし、
ユーザコントロールにLiteralコントロールを設置して自分でhtml出力すればいい

>あとデザイナ画面でRepeaterコントロールがデフォで5行表示されるのもなんとか変更したい。
何行表示されても構わないように設計(デザイン)する必要があるわけだから、
極端に言えば何行の表示でも別にいいでしょ
<ItemTemplate>がなければ複数行の動的な生成が難しいんだから一般的には必要ないかと

453 名前:nobodyさん [2009/06/15(月) 21:32:48 ID:Ovw0FDNW]
Visual Web Developer 2005 Express Edition質問です。
PlaceHolderの中にコントロールをドラッグ&ドロップしたいんですけど、
プレースホルダーを配置して、この上にドラッグドロップしてみたんだけど無理でした。
どうやるの?

454 名前:nobodyさん mailto:sage [2009/06/16(火) 02:03:02 ID:???]
たぶんやりたいこととか目的とズレてるような気がするけど、
単にPlaveHolder内にタグを配置したいならデザインビューに切り替えて

<asp:PlaceHolder ID="PlaceHolder2" runat="server">

</asp:PlaceHolder>

の※の部分にコントロールをポトペタすればコントロールが配置できる
でも本来、PlaceHolderは実行時にコントロールを生成するコンテナとしての役割が大きいので、
単に配置するだけとか、配置して一斉に非表示にしたいとか目的なら
Panelとか使ったほうがいいと思う。

455 名前:nobodyさん mailto:sage [2009/06/16(火) 20:27:08 ID:???]
>>454
ありがとうございます!!!!!多謝です!

デザインビュー上ではやっぱりできないのですね
自分のはFreeのツールだから禁止させられているのかと思いました。

やりたいことは、タブみたいに、ボタンをおしたら、違う画面になる(でも同じWebフォームで処理したい)
みたいな事です。
なので、パネルでやります。

m(_ _)m

456 名前:nobodyさん mailto:sage [2009/06/16(火) 21:10:44 ID:???]
>>455
ある特定の一部分だけ非表示にしたり、表示したりするならPanelでもいいけど、
ごっそり変えるなら、MultiViewとViewを使ったほうがわかりやすい

一つのaspxで、入力フォーム→入力確認ページ→実際に登録みたいなこともできるよ
PostBackが仕様のASP.NETだと、そういうのに2枚のaspxが必要だと思ってる人もいるみたいだけど

457 名前:nobodyさん mailto:sage [2009/06/16(火) 21:45:59 ID:???]
>>456
たびたびありがとうございます!!!!!
さっそくMultiViewにします!

458 名前:nobodyさん mailto:sage [2009/06/21(日) 11:03:39 ID:???]
本番機と開発機でweb.configが違うんだけど、上手い管理の仕方無いかな。
いつか間違えてしまいそうで怖いんだが。

459 名前:nobodyさん mailto:sage [2009/06/21(日) 15:17:48 ID:???]
>同じ名前 (Web.config) の複数の構成ファイルを、ASP.NET の
>Web アプリケーション サーバーの複数のディレクトリに置くことができます。
>各 Web.config ファイル内の構成設定 (IIS 認証の設定など) は、
>それぞれのディレクトリ内のソース ファイルに適用されます。

>Web プロジェクトでは、既定の Web.config ファイルの設定に優先する、
>カスタムの構成ファイル (mysettings.config など) を作成できます。
>チーム開発環境では、カスタムのファイルを作成することが必要になる場合があります。
>カスタム構成ファイルの作成が必要となる状況、
>特に共有プロジェクト開発時の必要性の詳細については、
>「Web 参照、Web プロジェクト、およびソース管理の統合」を参照してください。
>Web プロジェクトの場合、ソース管理に追加する必要がある *.config ファイルは、Web.config だけです。

msdn.microsoft.com/ja-jp/library/aa290084.aspx

とか?

460 名前:nobodyさん mailto:sage [2009/06/21(日) 15:19:15 ID:???]
あとは、やったことないけど、
FTPとかでの更新ならweb.configだけ異なる権限にしておいて、
勝手に書き換えられないようにしておくとか、そんなんはできないのかな



461 名前:nobodyさん mailto:sage [2009/06/21(日) 15:35:33 ID:???]
>>458
ウチの場合は、web.config.dev とか、web.config.release 等の名前で
複数の web.config を用意している。自動デプロイスクリプトを組んでる
ので、その中でデプロイ先の環境を判別して web.config にコピってる。
まあ、普通だな。手作業はとにかく排除するのが基本じゃね。

462 名前:458 mailto:sage [2009/06/21(日) 23:22:51 ID:???]
レスありがとう。
>>460
これはちょっと楽そうだ
読み取り専用属性つけて試してみる。

>>461
だね。ちょっと手を抜いて手作業でしてたけど、後々を考えると
しっかりやった方がいいよね。
XCOPYでゴソってやって、最後にweb.configだけ上書きって
流れだけか。
思考停止してたけど、なんも考える事無かったな。

ありがとう。

463 名前:nobodyさん mailto:sage [2009/06/24(水) 19:17:16 ID:???]
俺は毎回コピーした後にweb.config手作業で書き換えてる
たまに書き換え忘れることもあるがw

web.configに設定する内容を、本番と開発で、全く同じにするか、
間違えると動かない設定にしてるので、書き換えないと本番が動かないようにしてる
一番困るのは、書き換え忘れで本番が変な設定で動くことだからな

464 名前:nobodyさん mailto:sage [2009/06/24(水) 21:51:34 ID:???]
開発環境と本番環境でweb.configが違うってのは、どういう場合とか?
そういうときはディレクトリ分けして、ディレクトリごとにweb.configを統一しといたほうがいいと思うんだけど

465 名前:nobodyさん mailto:sage [2009/06/24(水) 22:53:08 ID:???]
>>464
appSettings とか connectionStrings は結構違うでしょ。あとは認証、
ログ設定、例外発生時の挙動なんかも変えたくなると思うけど。

466 名前:nobodyさん mailto:sage [2009/06/24(水) 23:04:24 ID:???]
>>464は何か意図を勘違いしてると思うのだよ


467 名前:nobodyさん mailto:sage [2009/06/24(水) 23:58:39 ID:???]
>>465
それってディレクトリごとにかえられになかったっけ?

468 名前:nobodyさん mailto:sage [2009/06/25(木) 01:32:47 ID:???]
ディレクトリ毎にweb.configは設定できるはず(やったことない)だけど、
問題はその中身を書き換えなきゃいけない、ってことだと思うんだが。
>>465が書いてる通りのものは結構書き換えなきゃいけない
と思うんだけど。

469 名前:nobodyさん mailto:sage [2009/06/25(木) 17:13:04 ID:???]
UpdatePanel の中にラベルとボタンがあります。

ボタンが押されたら、とある PDFファイル をクライアントに attachment として投げつけて
ラベルの文字を「投げたお」と書き換えたいです。(UpdatePanelの更新)

ですが、UpdatePanel の中では PDF をクライアントに投げつける、ということが出来ないみたいです。
何か良い策はないでしょうか。

インテルのWebサイトとかでは、ファイルの投げ付け&画面遷移を同時にやってるやつがありますが
どんな仕組みなんでしょう・・・(そこにヒントがある気がしてます)

470 名前:nobodyさん mailto:sage [2009/06/25(木) 17:55:06 ID:???]
ボタンクリックで新規ブラウザを立ち上げてPDFをダウンロードさせ、
UpdatePanelで表示してあげればいいんでね?




471 名前:nobodyさん mailto:sage [2009/06/25(木) 18:00:53 ID:???]
>>468
これとか?

social.msdn.microsoft.com/forums/ja-JP/aspnetja/thread/13d412a8-4416-429e-909e-0af88b528c16

472 名前:nobodyさん mailto:sage [2009/06/25(木) 21:32:10 ID:???]
>>471
し、しらんかった・・・
これは便利そうだ。設定変えたいとこだけ全部外だし
出来そうだなー。
結論としては「ディレクトリ毎」っていうのが、実は
「configファイルを分割」っていう意味だったってこと?
だから「web.config書き換えるっていつだよ?」みたいな
話になってたって事?

まぁどっちでもいいが、良いこと知った。トンクス。

473 名前:nobodyさん mailto:sage [2009/06/26(金) 00:25:17 ID:???]
configSourceはweb.configと同じく更新が即反映されるので
大抵のもんはappSettingに突っ込んで分離してる

474 名前:nobodyさん mailto:sage [2009/06/26(金) 05:38:12 ID:???]
そして今度は外だししたファイルを上書きするわけですね


475 名前:nobodyさん mailto:sage [2009/06/26(金) 11:36:26 ID:???]
>>474
これは?

location 要素は、ASP.NET 構成 API を使用することによりプログラムから設定できます。また、ASP.NET MMC スナップインの [場所] タブを使用して設定することもできます。
msdn.microsoft.com/ja-jp/library/ms178692.aspx

476 名前:nobodyさん mailto:sage [2009/06/26(金) 17:43:41 ID:???]
>>465
それはweb.configの指定を特定のパスに限る設定だろ

今問題になってるのは
環境を設定するファイルがあって、本番のそのファイルを開発環境のファイルで上書きすること

で、>>471の方法では、結局上書きする(=書き換える必要がでる)ファイルが
web.configからconnection.config(とか任意のファイル)に変わるだけで
結局上書きしないようにするとか手作業で書き換えるとかする必要がでるんじゃないか、ってのが>>474の主張

web.configから任意のファイルになるだけ判りにくくて混乱の元になる気がするぜ


477 名前:nobodyさん mailto:sage [2009/06/26(金) 19:00:22 ID:???]
>>476
location要素をプログラムから設定できるんなら
環境(サーバ名とか)によって任意のファイルを指定できるんでないのかなと思って。

478 名前:nobodyさん mailto:sage [2009/06/29(月) 19:17:18 ID:???]
お世話になります、自分で独自に作ったクラスをwebサービスの戻り値にするにはどのようにしたらよろしいでしょうか?
イメージとしては

class 個人情報(){
 private string 氏名;
 private int 年齢;
 setget〜〜〜
}
//個人情報クラスのリストを戻す
[webmethod]
class 個人情報[] 個人情報リスト(){
 List<個人情報> aaa=new List<個人情報>();
 aaa.add(new 個人情報(名無し,10));
 aaa.add〜〜〜;
 return aaa;
}

このような感じで作ってもエラーが出てうまく行きません、独自クラスではなくintやstringといったものなら正常に返せます
よろしくお願いします。 

479 名前:nobodyさん [2009/06/29(月) 19:43:32 ID:uOZzkvvT]
以下について教えて下さい。
[やりたい事]
1)登録ボタン押下
2)DB検索
3)フォームの入力データとDB結果をチェック
4)重複データでない場合=「新規登録しますか?」ダイアログ表示
>OK=DB追加
>キャンセル=中止

重複データの場合=「重複してますが登録しますか?」ダイアログ表示
 >OK=DB追加
 >キャンセル=中止

このような処理を実施させるには、どのような制御を実装すれば良いのでしょうか?

[聞きたい事]
・表示するメッセージを上記のように変動させて確認ダイアログを表示したい
・OK/キャンセルの戻り値を取りたい

登録ボタンのOnClientClickに「return confirm("登録しますか?");」を設定すれば
動作すると思ったのですが、上記1)の後に「登録しますか」ダイアログが出てしまい想定する動作になりませんでした。

不躾で申し訳ありませんが、ご教授の程よろしくお願い致します。

[環境]
Microsoft Visual Studio 2008 Version 9.0.30729.1 SP
Microsoft .NET Framework Version 3.5 SP1
Microsoft Visual Web Developer 2008
VBScript

480 名前:nobodyさん [2009/06/29(月) 20:51:34 ID:JEwwWVNF]
すでにあるxlsファイルを更新したいんですが、どうすればいいのでしょうか?
A*1に1を入れて保存とかそんな感じでお願いします



481 名前:nobodyさん mailto:sage [2009/06/29(月) 22:31:40 ID:???]
>>480
すでにあるがサーバ上にあるのか、クライアント側にあるのかわからないけど、
サーバ側なら
www.atmarkit.co.jp/fdotnet/dotnettips/717excelfile/excelfile.html
で操作できるんでないかね。
Microsoft Excel 11.0 Object Libraryって奴で。

クライアント上にあるのならサーバにアップロードするなりしないといけないと思う

482 名前:nobodyさん mailto:sage [2009/06/29(月) 23:18:11 ID:???]
>>479
JavaScriptでやりたいということだと、かなり特殊なことをしなくちゃいけないので面倒臭い。
なので、可能なら同じページに戻して、新規登録だけど登録していい?とか、重複してるけど登録していい?
というメッセージを表示させて確認を求めるほうが楽。

AJAXを使えばJavaScriptでも簡単にできるかもしれないけど、
非AJAXでやるとしたらこんな感じかな。
他に簡単な方法のアイデアがあったら求む・・・

<form id="form1" runat="server">
 <asp:HiddenField ID="HiddenField1" runat="server" Value="0" />
 <asp:HiddenField ID="HiddenField2" runat="server" Value="0" />
 <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
 <asp:Button ID="Button2" runat="server" onclick="Button2_Click" Text="Button" />
</form>



483 名前:nobodyさん mailto:sage [2009/06/29(月) 23:18:11 ID:???]
>>479
OnClientClickだとポストバック前に実行しちゃうよ

proshile.blog.drecom.jp/archive/14
でいけるけど、今ってもっと良い方法がないのかな?
普段1.1使っててわからん。




484 名前:nobodyさん mailto:sage [2009/06/29(月) 23:19:02 ID:???]
>>479
つづき

protected void Button2_Click(object sender, EventArgs e)
{
 //ユーザによるボタンのクリック DB内を調査して表示する→2回目のボタンを押す
 if (this.HiddenField1.Value == "0")
 {
  //Value = 1でユーザによるclick Value = 2でJavaScriptによるクリック
  this.HiddenField1.Value = "1";
  //データベース内のデータを確認する作業をここでする
  //もしyesが押されたらHiddenField2にtrueを、noならfalseを格納する
  ScriptManager.RegisterStartupScript(this, typeof(Page), "test", "if (confirm('')) { form1.HiddenField2.value = 'true'; } else {form1.HiddenField2.value = 'false';};form1.Button2.click();", true);
 }
 //JavaScriptによる2回目のクリック confirmの結果により動作を分ける
 else if (this.HiddenField1.Value == "1")
 {
  //もしyesを押された時の処理
  if (this.HiddenField2.Value == "true")
  {
   //confirmでyesをclick時に行う動作
  }
  //Value = 1でユーザによるclick Value = 2でJavaScriptによるクリック
  this.HiddenField1.Value = "0";
 }
}

485 名前:nobodyさん [2009/06/29(月) 23:19:21 ID:fVwdImLx]
全てのページに、URLにuserid=XXXX
といった文字列を追加したいのですが
アプリの本数が多くて、簡単に追加できる方法ないですかね?

486 名前:nobodyさん mailto:sage [2009/06/29(月) 23:30:27 ID:???]
>>485
すべてのページでgetを受け取れるようにしたいのか、
すべてのページのハイパーリンクにgetのクエリを付与したいのか
詳しく書いてくれないと何とも言えない。

でもuseridが変更されるとこまると思うから常識的にはsessionを使うべきだと思う

487 名前:nobodyさん mailto:sage [2009/06/29(月) 23:35:02 ID:???]
>>486
説明不足でした。getのクエリ文字列に追加したいのです。

sessionを使うのが普通なのは承知していますが
環境の都合上使用ができないのです。(クライアントのCOOKIEも)


488 名前:nobodyさん [2009/06/29(月) 23:42:59 ID:fVwdImLx]
また、言葉足らず・・・
sessionを使用ができないのではなく、
sessionだけではなく、GETのクエリ文字列にもパラメータが必要ということでした。

489 名前:nobodyさん mailto:sage [2009/06/29(月) 23:49:37 ID:???]
>>488
response.redirectでやると思うが、?userid=xxxxって追加する専用メソッドを入れたらいいんじゃない?

追加メソッド(string url){
 return url+="?userid="+this.userid;
}

みたいな感じで、useridがどこにあるのか知らないけど

どなたか>>478もお願いしますm(_ _)m

490 名前:nobodyさん mailto:sage [2009/06/30(火) 00:00:00 ID:???]
>>489
やはり、その方法しかないですかね?
useridはIIS上で保持しています。

URLに付加された状態でProxyを通過させたいんですよね・・・
(言葉足らずで情報が小出しになってしまい申し訳ないです)



491 名前:nobodyさん mailto:sage [2009/06/30(火) 00:31:17 ID:???]
プロクシを通過させると何か問題なの?


俺ならSystem.Web.UI.Pageを継承するクラスUserPageを作成して、
private int UserIDみたいなメンバ変数と
public void Redirect(string url,)みたいなメソッドをを作成して
urlとUserIDからRedirectさせるようにする

んで、そのクラスを継承するページを設定するかな?
public partial class Default : UserPage
みたいな感じで
そうすれば各ページでuseridを取得するルーチンを書かなくて済むし、
現状のresponse.redirectをUserPage.Regirect(string url)に置換するだけで済むし

492 名前:nobodyさん mailto:sage [2009/06/30(火) 01:25:00 ID:???]
>>478

public class Person
{
private string name;
public string Name
{
get { return this.name; }
set { this.name = value; }
}

private int age;
public int Age
{
get { return this.age; }
set { this.age = value; }
}
}

[WebMethod]
public List<Person> GetPersonList()
{
List<Person> aaa = new List<Person>();
aaa.Add(new Person { Name = "Taro", Age=8 });
aaa.Add(new Person { Name = "Jiro", Age = 7 });
return aaa;
}

でとりあえず動いてるみたいなんだが、どんなエラーなんだ?

493 名前:nobodyさん mailto:sage [2009/06/30(火) 01:26:01 ID:???]
半角スペース消えるの忘れてた・・orzスマソ

494 名前:479 mailto:sage [2009/06/30(火) 09:14:08 ID:???]
>>482,484
ご教授ありがとうございます。おおよその動きは理解出来ました。

>AJAXを使えばJavaScriptでも簡単にできるかもしれないけど、
AJAXは使っています。
その場合、提示された処理より簡単に実装出来るのでしょうか?
出来ればこちらのやり方も教授頂けると嬉しいです。

>>483
ご教授ありがとうございました。 

495 名前:478 mailto:sage [2009/06/30(火) 10:15:56 ID:???]
>>492
ありがとうございます、新しいページで作り直したら動きましたorz

496 名前:nobodyさん mailto:sage [2009/06/30(火) 16:05:45 ID:???]
>>494
AJAXなら、フォームからフォーカスが外れるたびに入力内容をチェックしにいって、
重複か重複でないかをチェックして、ScriptManager.RegisterStartupScriptで
JavaScriptで定義した変数にbool値を格納する
例 var isDuplicate = true;

登録ボタン押下時に、JavaScriptでisDuplicateの変数内容によって、
onSubmitで表示するconfirmの表示文字を変更させればいい。
cancel時にPostの処理を中止するのはどちらも同じだから。

497 名前:479 mailto:sage [2009/06/30(火) 17:26:30 ID:???]
>>496
ご丁寧にありがとうございます。
482,484を実装し、期待する動作は確認出来ました。
作成しデバッグしている最中にASPの制御、と言うかスタンドアロン(VB)との違いが良く分かりました。
(それにより)496の内容もすぐに理解出来ました。応用させて頂きます。
ご教授頂いた事に感謝致します。
本当にありがとうございました。

498 名前:nobodyさん mailto:sage [2009/07/01(水) 17:57:52 ID:???]
MSの開発技術大全のASP.NET編で、SQLDataAdapterコントロールが
デザイナにD&Dできるみたいな記述になってるけど、VS2005や2008でも出来たっけ?

499 名前: [―{}@{}@{}-] nobodyさん mailto:sage [2009/07/01(水) 18:29:24 ID:???]
>>498
SqlDataSourceとかObjectDataSourceコントロールの事じゃないか

500 名前:nobodyさん [2009/07/02(木) 20:39:30 ID:ZUKdZhY7]
ASPでjavascriptを使わずにあるボタンを押したら、とあるテキストボックスに1を入力するっていう処理をやりたいのですが、
今まではポストバックさせてやっていたのですが、そうするといちいち画面が切り替わるのがうっとうしいので画面が切り替わらないで処理をやりたいです。
可能でしょうか?



501 名前:nobodyさん mailto:sage [2009/07/02(木) 20:54:55 ID:???]
不可

502 名前:nobodyさん [2009/07/02(木) 21:15:02 ID:ZUKdZhY7]
>>501
ありがとうございます
そうですか、あきらめてjavascript使うしかないですね



503 名前:nobodyさん mailto:sage [2009/07/02(木) 21:46:24 ID:???]
1って入力してもらう

504 名前:nobodyさん [2009/07/02(木) 21:51:06 ID:ZUKdZhY7]
目的は1を入力した状態にしたいのではなくて、テキストボックスをreadonlyにしたいのです。

javascriptで実装するにはどういうコードを書けばいいのでしょうか?

505 名前:nobodyさん mailto:sage [2009/07/02(木) 21:57:01 ID:???]

マジレスすると、TextBox.Textに1を入れた後にTextBox.ReadOnlyにtrueを設定

506 名前:nobodyさん [2009/07/02(木) 21:59:45 ID:ZUKdZhY7]
ポストバックさせたくないんですよ

507 名前:nobodyさん mailto:sage [2009/07/02(木) 23:41:47 ID:???]
AJAX使いなよ
ポストバックしてるけどしていないような感じで実現できるから

508 名前:nobodyさん [2009/07/02(木) 23:48:58 ID:ZUKdZhY7]
一番簡単に実装するには何がいいでしょうか?
当方VB、Cの経験しかありません

509 名前:nobodyさん mailto:sage [2009/07/02(木) 23:56:35 ID:???]
そろそろスルーで

510 名前:nobodyさん mailto:sage [2009/07/03(金) 00:01:26 ID:???]
WebアプリなのにJavaScriptもポストバックもだめとかそもそもが間違ってるよな。
スタンドアロンアプリでも作ってろよ



511 名前:nobodyさん [2009/07/03(金) 00:11:41 ID:WYeGS7LZ]
しょうがないじゃん、最近はじめたんだから。
radiobutton_checkedイベントやdropdownlist_chengedindexイベントでいちいち画面がロードされるのうざいでしょ?


512 名前:nobodyさん mailto:sage [2009/07/03(金) 00:30:44 ID:???]
>>499
いや、SqlDataAdapterだ。俺の目が腐ってなければ・・

ちなみにいまVS2008で試したがグレーアウトでデザイナにはドロップできない。
VS2005ではできるか試してもらえる人はいるだろうか。

グレーアウトになってるってことは使うなってことだよなぁ
手打ちでコーディングはできるんだから。

513 名前:nobodyさん mailto:sage [2009/07/03(金) 01:20:01 ID:???]
silverlight使えよ。

514 名前:nobodyさん mailto:sage [2009/07/03(金) 01:41:25 ID:???]
>>511
>しょうがないじゃん、最近はじめたんだから。
ブラウザは散々使っているんだろうから、その経験則から何が実現可能か不可能か判断できずに、
最近始めたばかりだと開き直るようじゃあ、あなたにWebアプリは向いてないよ。

↓お好きなのドゾ
Silverlight Flash Ajax ActiveX JavaApplet

>>512
標準ではツールボックスにSqlDataAdapterの表示がないんだが、
どれを参照すれば表示されるん?

515 名前:nobodyさん mailto:sage [2009/07/03(金) 01:52:55 ID:???]
>>514
コントロールツールボックスを→クリで「全て表示」とかなかったっけか

516 名前:nobodyさん mailto:sage [2009/07/03(金) 13:20:41 ID:???]
>>512
2005は手元に無いからわからんが、2003なら出来るな
データアダプタ構成ウィザードが立ち上がってきた

517 名前:500 [2009/07/04(土) 00:48:45 ID:gSOLs+sG]
いろいろ調べた結果ユーザーコントロールを使用することにより実装することができました
ここって結構無知が多いんだな

518 名前:nobodyさん mailto:sage [2009/07/04(土) 01:41:16 ID:???]
PostbackもJavaSciptも使用せずに動的に変更なんてできませんよw

519 名前:nobodyさん mailto:sage [2009/07/04(土) 01:43:34 ID:???]
だなぁ、多分ASP.NET自体を新しい概念で開発したんだろうなw
その場合.NETって名前そのものが変わると思うけどw

520 名前:518 mailto:sage [2009/07/04(土) 01:50:28 ID:???]
>>519
無知で結構だから、もし実現できるのなら教えてほしいよ

何を勘違いしたんだろうな。
ユーザコントロールつかってもポストバックはするし。
ユーザコントロールはJavaScriptの実装には不向きだから、
AJAXでも実装したんかな?



521 名前:nobodyさん mailto:sage [2009/07/04(土) 02:05:56 ID:???]
ICallBackEventHandlerで勘違いしたに20000000000ジンバブエドル

522 名前:nobodyさん mailto:sage [2009/07/04(土) 02:19:19 ID:???]
JavaScriptおもいっきしつかっとるやんw
つか、それならAJAX使ったほうが楽でしょ

523 名前:nobodyさん mailto:sage [2009/07/04(土) 04:29:22 ID:???]
要は画面が切り替わったのに気付かなければいいんだろ?
つ Page.SmartNavigation

ASPとASP.NETは別物だからちゃんと区別して書こうな
ホントにASP.NETじゃないASPの話だったらスレ違いだがなw


524 名前:nobodyさん mailto:sage [2009/07/04(土) 09:47:11 ID:???]
>>517
UpdatePanelで勘違いしたに30000ペリカ

525 名前:nobodyさん mailto:sage [2009/07/04(土) 16:47:14 ID:???]
>>523
聞いたことがないと思ったら2.0以降でDeprecatedか

526 名前:nobodyさん mailto:sage [2009/07/04(土) 17:25:28 ID:???]
ここ最近みてると、

ASP.NET→JavaScriptの関数の実行(引数引き渡しも含む)
JavaScript→ASP.NETのメソッドの実行(引数引き渡しも含む)

という需要が多そうだな

527 名前:nobodyさん [2009/07/05(日) 11:58:29 ID:Km3uJP2Y]
HTMLデザイナの表示をカスタマイズで
カラムの幅を狭めると、

デー
タバ
イン
 ド

みたいになって縦長になってウザイっす。。
なんで「データバインド」なんて意味のない文字列を表示させるのかな。
これを消したいです。なんか方法ありませんか????

528 名前:nobodyさん mailto:sage [2009/07/05(日) 14:08:13 ID:???]
データバインドであることがわかるし、
縦長になるとデザイン上の狂いのあることが発見できることもある
ウザイときもあるが表示のおかげでデザインの狂いを修正できたことが何度かあるよ

従って一長一短

529 名前:nobodyさん mailto:sage [2009/07/05(日) 14:18:45 ID:???]
んなのMSに聞けばいいだろ?
ここはお前のVSサポートセンターじゃねえ

530 名前:nobodyさん mailto:sage [2009/07/05(日) 14:22:06 ID:???]
このスレの存在意義なくすなよカス



531 名前:nobodyさん mailto:sage [2009/07/05(日) 14:33:29 ID:???]
2chで煽るのが僕のレーゾンデートルですw

532 名前:nobodyさん mailto:sage [2009/07/05(日) 15:11:29 ID:???]
>>528
なるほど。そういう物だと理解します。

533 名前:nobodyさん [2009/07/05(日) 15:32:32 ID:Km3uJP2Y]
GridViewのHyperLinkFieldに対して、2個のSQLのカラムを使って、DataTextFormatStringを作りたいです。

以下のSQLで抽出した2個のカラムを結合した文字列をハイパーリンクに表示させたいです。
select fig_name, fig_number from figure

これで抽出できるのはおのおの、
・fig_name:
'図'と'表'のいずれか
・fig_number:
図表番号。数字。

とします。

そしてハイパーリンクにはこの2個をくっつけて

“図1”とか、“表2”とかにしたいです。

とりあえず、以下のようにやったけどだめでした。。
DataTextField="fig_name,fig_number"
DataTextFormatString="{0}{1}"

どなたか、ヒントでも結構ですのでよろしくお願いします。。

534 名前:nobodyさん mailto:sage [2009/07/05(日) 17:32:49 ID:???]
>>533
簡単に思いつくのは、TemplateFieldで自前で追加

535 名前:nobodyさん mailto:sage [2009/07/05(日) 17:55:40 ID:???]
SQLのクエリで自前で合成したフィールドを作ればいいんでないの
SELECT (Table.fig_name + Table._number) AS fig_fullname FROM Table
とか。

でもこれだとSQLDataSourceが使えなかったり、
GridViewの編集や削除が使えない可能性があるから嫌われそうだけど。
>>534のTemplaterFieldにしても編集とかできなさげ。

んで、結局、編集、削除、追加は自前で実装して、
どうせ実装するならRepeaterでいいじゃんということに落ち着く流れになりそう。

536 名前:nobodyさん mailto:sage [2009/07/05(日) 21:51:56 ID:???]
>>534,535さん
ありがとうございます。
RowCreateでデータベースから抽出された結果にアクセスできたので、
そこで文字列をつくって、ハイパーリンクに貼り付けました。
やりかたはダサイかもしれませんが、まぁまだ素人なので。。

537 名前:nobodyさん mailto:sage [2009/07/06(月) 00:03:42 ID:???]
ユーザーコントロールのIDを取得したいのですが、どうすればいいのでしょうか?

538 名前:nobodyさん mailto:sage [2009/07/06(月) 00:41:21 ID:???]
ClientID

539 名前:nobodyさん [2009/07/06(月) 01:25:51 ID:bdwzJZ3p]
UpdatePanel凄すぎワロタ。やっぱMSはすげーなぁ。

540 名前:nobodyさん mailto:sage [2009/07/06(月) 06:49:00 ID:???]
>>524
おめでとう どうやら君が真のエスパーだったようだ



541 名前:nobodyさん mailto:sage [2009/07/06(月) 10:36:39 ID:???]
開発技術大全って.net 3.5以降とかのは出版されてる?

>>516とかみるとかなり古そうだが。。

542 名前:nobodyさん mailto:sage [2009/07/06(月) 12:44:03 ID:???]
開発技術大全は記述されてるフレームワーク関連は古いが、
それ以前のASP.NETのアーキテクチャに関する仕組みを知りたいということなら
そんなに色あせないで見ることが出来る。

データベース関連ならADO.NETとLink To Entitiesの本を買うべきだし、
コントロールの使い方ならもっと別の本を買うべき。
それに、どうせいろいろやりたくなると、
DataSet+Repeaterコントロールに落ち着くことになるからね

543 名前:nobodyさん [2009/07/06(月) 18:51:33 ID:/VP1pSJi]
テキストボックスのIDをascxからaspxに持ってきたいんだけど、string型になっちゃうのは仕様なんですが?
textbox型で持ってくることは出来ないのでしょうか?
ctypeで変換しようとするとstring型はtextbox型へ変換できませんってでます

544 名前:nobodyさん mailto:sage [2009/07/06(月) 19:01:42 ID:???]
無知な俺らに聞いても無駄だと思うが
ユーザコントロールを作るということは、新しいクラスを設計するということ。
ユーザコントロールにサーバコントロールを配置するということは、
そのクラスのメンバ変数にサーバコントロール型のオブジェクトを
privateのスコープで持つということと同じなので、
ユーザコントロール側で、そのテキストボックスのインスタンスを公開するプロパティを宣言すればいい。
そうすれば、ユーザコントロールに配置したテキストボックスのIDは知る必要がない。

でもそれだと隠蔽の意味がなくなってしまうので、
外からでも変更可能なプロパティだけを
ユーザコントロールのプロパティとして再定義して公開するのが普通のやり方。

545 名前:nobodyさん [2009/07/06(月) 19:11:22 ID:/VP1pSJi]
>>544
つまりどういうことですか?
コードで書いて教えてください
・user.ascx
protected sub name () as textbox
get
return txtname.clientID
end get
end sub

・main.aspx
dim TextName as textbox = name
TextBox.text="Test"

今はこんな感じで書いていてだめになっています

546 名前:nobodyさん mailto:sage [2009/07/06(月) 19:32:14 ID:???]
無知だからVBはわからないがC#だと
public string Text
{
 get { this.TextBox.Text = value; }
}

547 名前:nobodyさん mailto:sage [2009/07/06(月) 19:35:52 ID:???]
ああget→setかな
すまん無知で

548 名前:nobodyさん mailto:sage [2009/07/06(月) 19:37:50 ID:???]
Protected ReadOnly Property name() as TextBox

Get
Return txtname
End Get

End Property

でいいんちゃうか。


549 名前:nobodyさん [2009/07/06(月) 19:41:53 ID:/VP1pSJi]
>>548
txtnameだけでIDを送ることができるんですね。
ありがとうございました。

550 名前:nobodyさん mailto:sage [2009/07/06(月) 19:43:38 ID:???]
>>548
少なくともユーザコントロールで、所有してるオブジェクトをそのままプロパティで公開するのは止めたほうがいいよ



551 名前:nobodyさん mailto:sage [2009/07/06(月) 19:57:47 ID:???]
それは分かってるがID:/VP1pSJiが何をしたいか分からんことには。。

552 名前:nobodyさん [2009/07/06(月) 20:16:06 ID:/VP1pSJi]
すいません>>545がちょっとまちがっていました
・user.ascx
protected sub name () as textbox
get
return txtname.clientID
end get
end sub

・main.aspx
dim TextName as textbox = name
TextName.text="Test"

つまりユーザーコントロールにあるコントロールをaspx側で操作したいというこです

553 名前:nobodyさん mailto:sage [2009/07/06(月) 20:19:06 ID:???]
だからコントロールのプロパティをUserControlのプロパティとして公開しなさいっての

554 名前:nobodyさん [2009/07/06(月) 20:21:29 ID:/VP1pSJi]
>>553
どうやるんですか?

555 名前:nobodyさん mailto:sage [2009/07/06(月) 20:57:29 ID:???]
>>554
>>546-547

556 名前:nobodyさん [2009/07/06(月) 22:05:11 ID:Igs6oFx6]
質問させてぇ〜

「無効なポストバックまたはコールバック引数です。
イベントの検証は、構成の <pages enableEventValidation="true"/>、
またはページの <%@ Page EnableEventValidation="true" %> を使用して・・・」

っていう糞長いエラーが。。

状況はMultiViewの中のViewのなかのGridViewのなかに配置したTemplateField(イメージボタン)
に、
CommandName="delete"
OnClientClick="return confirm('削除してよろしいですか?');"

ってプロパティ設定をして、ゴミ箱のイメージボタンをおしたら削除されるようにしたわけ。

で、さらにこのGridViewのイベントハンドラを以下のようにしてるわけ。
OnRowCommand = "GridViewMeans_RowCommand"

で、このイメージボタンを雄と件のエラーが発生します。。。

そもそもこのエラーって何を意味するの?
「ぽすとばっくやコールバックのイベントが、それをレンダリングしたサーバコントロールから由来するとだめ」
しかもセキュリティの理由から??
意味が分からない。
意味が分からないから対処方法も想像できない。単にenableEventValidation="false"にすればいいよ、とか
意味も分からず闇雲にトライエラーしたくないし。
だれか、ずばっと、こういうパラダイムがあるから、それを解決するためにこういうセキュリティ上の配慮が必要で、そのために
チェックしてるんだ!!!とか男らしい回答求む。

557 名前:nobodyさん mailto:sage [2009/07/06(月) 22:24:58 ID:???]
>>556
techbank.jp/Community/blogs/mymio/archive/2008/03/28/381.aspx

558 名前:nobodyさん mailto:sage [2009/07/06(月) 22:53:47 ID:???]
>>557
ご回答ありがとうございます。
するってぇと、何でImageButtonをViewStateに保存しちゃまずいんですかね?
そういうモノだから??

559 名前:nobodyさん mailto:sage [2009/07/06(月) 22:56:34 ID:???]
とりあえず試してみました。
変わりませんでした。。
やはりあの、、原理を。。

560 名前:nobodyさん mailto:sage [2009/07/06(月) 23:10:21 ID:???]
例えばRepeaterやGridViewコントロールなどのように、
動的に行が生成されるコントロールで、
さらに動的にRepeaterやGridViewなどのような動的に行を生成するコントロールを作成し、
その中でClickイベントを実装すると、その問題が発生するということだったはず。

ページによって存在するかどうかわからないイベントの発生元が存在した場合に、
それを検証する術がないのでエラーになるという感じだったような気がする。
例えばRepeaterの中のLiteralコントロールに、サニタイズをせずに文字列を表示させてしまい、
擬似的にポストバックされるコードを記述されてしまうのを検知するのと区別が付かないとかなんとか。

記事のありかは忘れた。



561 名前:nobodyさん mailto:sage [2009/07/06(月) 23:23:44 ID:???]
>>560
おお〜。なるほど!ありがとうございます
分かりません!

でも自分の頭じゃ理解できないってことだけは分かりました。

まぁMFCなんかでもダイアログボックスを表示中に他のタイマーとかのイベントがくると
ダイアログボックスのなかのメッセージポンプがそれを処理しちゃって、
その辺を考えて作らないといけないとか、そんな苦労を思い出します。
要は凝ったフレームワークにありがちな落とし穴って事ですかね。

うーん。困ったw

562 名前:nobodyさん mailto:sage [2009/07/06(月) 23:35:38 ID:???]
>>554
・main.aspx
dim TextName as textbox = CType(ユーザコントロールのID.FindControl("txtName"), TextBox)

これでお前のやりたいことはたぶんできるだろう

これをやるべきじゃないとか何とかいろいろあるんだが、
まあそれは勉強してくれと言うしかない

563 名前:561 mailto:sage [2009/07/07(火) 00:48:14 ID:???]
いろいろ試行錯誤した結果、TemplateFieldのItemTemplateの中身がLinkButtonだと削除機能は全く問題ないけど、
ImageButtonだとだめみたいです。
ImageButtonにしてEnableViewStateをFALSEにしてもだめみたいです。
なんか、ImageButtonがだめのかねぇ。
もう寝ます。

564 名前:561 mailto:sage [2009/07/07(火) 21:59:56 ID:???]
海外のサイトあさって回答を見つけたよ。
なんでもGridViewのサーバーサイドのイベントが2回以上起こると発生するらしい。
自分の場合は最初に(書いてなかったけど)RowCreateイベントを使ってる。
そして2回目はボタンをクリックしたときに発生する。
この2回のポストバックにおいて、RowがもってるID(つまりe.Row.ID)が食い違っていると
この検証に引っかかるらしい。
(ただのMSのバグじゃねーの??)
自分の場合、最初はRowCreateで、この時点ではe.Row.IDはNULL、たぶんボタンをクリックしたときはなんか値が入ってるんだろうね。
それが食い違っているからだめ〜ってこと。
なんで最初にユニークな値を突っ込んでおけばいいらしい。
つまり
RowCreate()
{
e.Row.ID=Guid.NewGuid().ToString();
}

これでOKだった。でもなぜLinkボタンならよいのかは不明。Linkボタンはポストバックじゃないからかな。

565 名前:nobodyさん mailto:sage [2009/07/07(火) 22:06:15 ID:???]
1ページに対してイベントは1回だから別に間違ってないだろ
それこそ、故意にイベントを発生するタグを挿入される危険性を排除するのが目的なんだから

566 名前:nobodyさん mailto:sage [2009/07/07(火) 22:10:13 ID:???]
なんだ、兄さんよく知ってる感じだな。
もっと早く出てきて教えてくれよ。

567 名前:nobodyさん mailto:sage [2009/07/07(火) 22:27:17 ID:???]
IDが変わるような操作したあと、databindし直すのが正しい操作じゃないのか?


568 名前:nobodyさん mailto:sage [2009/07/07(火) 22:58:50 ID:???]
>>567
たぶんあなたの言っていることは正しい。

569 名前:nobodyさん mailto:sage [2009/07/07(火) 23:52:10 ID:???]
javascriptどうすれば簡単に覚えられますか?
VBに浸りすぎてぜんぜんわからん

570 名前:nobodyさん [2009/07/07(火) 23:57:57 ID:ID58Jon/]
.NETではなくASPなのですが、スレがないのでこちらに書き込みます。
DBテーブル上にBASE64エンコードされた画像データ(テキスト)が格納されています。
これをデコードしてresponseで出力したいのですが。。

エンコードはBASP21のBASE64関数を使い、ファイル経由で行いました。
デコードはファイル経由にしたくないので、なんとか直接出力したいのですが。
ちなみにBASP21でデコードすると

Dim o_buf
o_buf = objBASP.BASE64(rsRecord.Fields("Field_name").value, 1)
Response.BinaryWrite o_buf
Response.End

のような感じになりますが、o_bufにバイナリイメージの先頭数byteしか入ってこなかったので、
BASP21は使えないと考えています。
「これぞ王道」のような方法があればお教えください。
いまさらながらASPでプログラムを作成する案件がでてきて、慣れない中苦戦しているもので。。
よろしくお願いします。




571 名前:nobodyさん mailto:sage [2009/07/08(水) 00:10:09 ID:???]
>>570
>エンコードはBASP21のBASE64関数を使い、ファイル経由で行いました。
直接デコードしたら表示できる?

>デコードはファイル経由にしたくないので、なんとか直接出力したいのですが。
ファイル経由にしたらデコードできる?

>o_bufにバイナリイメージの先頭数byteしか入ってこなかったので
なんで入ってこないの?

>「これぞ王道」のような方法があればお教えください。
バイナリのままデータベースに保存できないの?


572 名前:nobodyさん mailto:sage [2009/07/08(水) 00:19:39 ID:???]
>>569
VBを窓から投げ捨てる

573 名前:nobodyさん [2009/07/08(水) 01:35:13 ID:ZNTcUj46]
レスありがとうございました。

>>エンコードはBASP21のBASE64関数を使い、ファイル経由で行いました。
>直接デコードしたら表示できる?

>>デコードはファイル経由にしたくないので、なんとか直接出力したいのですが。
>ファイル経由にしたらデコードできる?

 ファイル経由でのデコードはできています。(BASP21利用で)
 このファイルをビューアで見ることもできます。
 サーバ負荷が高くなりそうなので、ファイル経由は避けたいと思っています。

>o_bufにバイナリイメージの先頭数byteしか入ってこなかったので
なんで入ってこないの?

 BASP21の関数利用の結果がそうなっていました。
 ここは理由はよくわかりません。。

>「これぞ王道」のような方法があればお教えください。
バイナリのままデータベースに保存できないの?

 バイナリのまま保存する方法も現在調査中です。
 エンコードする方法と、両方を調べている最中です。

 どうぞよろしくお願いします。


574 名前:nobodyさん mailto:sage [2009/07/08(水) 09:09:29 ID:???]
>>573
モード6と7が対なのはわかるんだけど、
それと、その他のモードに互換性があるのかな
他のは、いわゆるwidestringだけに対応してて、バイナリには対応してないんじゃないのかな。
異なるモード間で互換性がないと意味がないから、
ファイルをエンコードするのに、FSOでファイルを読み込んで、
一度変数に入れてから6と7以外のモードで変換してみたらできるのかな?

575 名前:nobodyさん mailto:sage [2009/07/08(水) 18:32:48 ID:???]
aspの質問ですらなく、BASP21の話じゃないか、それ
BASP21って専用のスレとかないのか?
それか、サポート付きの有償版みたいなのなかったか?

BASE64ってそんなに難しい規格じゃないから、
自分でデコードする関数書いたらどうだね

576 名前:nobodyさん mailto:sage [2009/07/09(木) 00:56:21 ID:???]
このスレ的には、
FCL使えって感じだけどな

577 名前:nobodyさん mailto:sage [2009/07/09(木) 17:08:52 ID:???]
Framework Class LibraryってClassicASPにも存在するの?

578 名前:nobodyさん mailto:sage [2009/07/09(木) 22:37:40 ID:???]
ページの名前変えたらものすごい変なエラーが出るようになった。。

579 名前:nobodyさん mailto:sage [2009/07/09(木) 22:59:29 ID:???]
ASP.NETは一つ一つのページがpertialクラスになってて、
ページ名がクラス名になってるんだけど、
リネームしてもそのクラス名は変更されないから
リネームしたことでページ名が重複しちゃったんじゃね?

580 名前:nobodyさん mailto:sage [2009/07/09(木) 23:02:18 ID:???]
>>579
まぁ変え方がまずかったんだと思う。いま一生懸命直してます。



581 名前:nobodyさん mailto:sage [2009/07/09(木) 23:11:57 ID:???]
1日1回はローカルでもいいから、別のトコにバックアップとったほうがいいよ
データベースがらみとか、アドオンの帳票がらみでわけわからん具合になること結構あるから

582 名前:nobodyさん mailto:sage [2009/07/11(土) 14:43:11 ID:???]
よくも悪くもバッドノウハウの固まり

583 名前:nobodyさん mailto:sage [2009/07/13(月) 00:21:32 ID:???]
画面上に100個位コントロール(TextBox)が並んでて、Postされた時に一々値を拾うのが
めんどくさいんですが。なんか上手い方法無いですかね?
特に、Repeaterで自動生成されたTextBoxとか、IDもサーバで勝手に振られるのでどうして
いいのか分かりません。

やりたいこと:Postされた値をなんか上手い方法でDataSetに入れてしまいたい。
DataBindって参照しか出来ないEvalじゃなくて、双方向更新も可能なメッソドもあるとか?

584 名前:nobodyさん mailto:sage [2009/07/13(月) 01:18:02 ID:???]
>>583
具体的には忘れたけど、こんな感じ

■Repeaterの場合
for (int i = 0; i < this.Repeater1.Items.Count; i++)
{
 RepeaterItem ri1 = this.Repeater1.Items[i];
 TextBox textBox = (TextBox)ri1.FindControl("textBox");
}

■ページにポトペタした場合
Control control = this.Page.FindControl("controlName");
でID名でコントロールが取得できるので、連番で名付けてループさせて取得すればいい

DataSetに格納したい行をClassか、structで宣言して、
ループする度にインスタンスを生成し、IList<T>に格納していけばいい。
別途IList<T>からデータを取得してDataSetに格納するクラスを別途作成す。。



585 名前:nobodyさん mailto:sage [2009/07/13(月) 02:12:46 ID:???]
>>583
>DataBindって参照しか出来ないEvalじゃなくて、双方向更新も可能なメッソドもあるとか?
使い勝手があれだから、きっと絶対必ず役に立たんがBindというのはある。
例えばObjectDataSourceのConflictDetectionを設定してやれば、
UPDATEやDELETEで指定したメソッドに対して、
変更後の値と変更前の値を自動で放り投げてくれる。

586 名前:nobodyさん mailto:sage [2009/07/13(月) 16:29:19 ID:???]
VS2005 + IIS6.0 + IE6.0 or 7.0で開発しております。
DataGrid(GridViewではありません)のヘッダー固定に関しての質問です。

DataGridのヘッダー行を固定しようと思い、ネット上でサンプルを参考にして
浮いているように見えるのですが、とりあえずヘッダー行の固定を実装しました。
参考URL:jsajax.com/aspGridView/Chapter1/ch1-03.aspx

ですが、この固定しているヘッダー行が常に最前列に出ているようで
画面上のメニューバーから展開されるサブメニュー項目が、ヘッダーの後ろに表示されてしまいます。
メニューバーはJQueryで作成しています。
参考URL:css-tricks.com/examples/SimplejQueryDropdowns/

JQueryで作成している箇所は、DBから動的に項目を取得して
メニュー自体をHTMLで作成しているので、JQueryをはずすことはできません。

ヘッダー行かメニュー項目のZ-INDEXで解決するかと思ったのですが、
どうも効いてないようで解決方法の糸口が見つかりません。
どなたか詳しい方いらっしゃいませんでしょうか?




587 名前:nobodyさん mailto:sage [2009/07/13(月) 16:53:47 ID:???]
jquery.dropdownPlain.jsでz-index記述してみたら

588 名前:nobodyさん mailto:sage [2009/07/13(月) 18:05:58 ID:???]
>>587
やってみましたが結果は変わらずでした

固定しているヘッダー行が浮いたような状態になり、
DataGridよりも若干右にズレているのも気になります。
これが問題なんでしょうか・・




589 名前:nobodyさん mailto:sage [2009/07/13(月) 18:25:38 ID:???]
メニューを表示させなければうまくいくのか?
あと改行してメニューが干渉しない位置にヘッダーを表示させて場合はうまくいくのか?

うまくいくのならメニューを表示させたことで、メニューのスタイルシートが、
ヘッダのスタイルシートに悪影響を及ぼしてるんだろうから、
メニューの何が悪さをしてるのか、一つ一つスタイルを削って試して見るしかない

590 名前:nobodyさん [2009/07/14(火) 21:55:30 ID:s5DuVBkc]
VS2008、C#でASP.netという構成ですが・・・すいません、ビルドの後、プリコンパイルされたDLLというのは何処に格納されるのでしょうか?
ASP.net 2.0の、しかもCodeBehind属性を使っているレガシーなアプリをメンテナンスしているのですが、CodeBehindに指定されている.csの内容を修正してもそれが反映されません。
(aspxの内容を修正した場合は反映されています)

ビルドしてプリコンパイルすればいいかと思ったのですが、ビルドしても\binに格納されているDLLが更新されないのです。
おそらくどこかに設定があると思うのですが、見つけることが出来ませんでした。
よろしければアドバイスをお願いします。

ちなみに、Webサイトのプロパティの「MSBuildオプション」→「出力フォルダ」は、修正してみましたが特に変化はありませんでした。



591 名前:nobodyさん mailto:sage [2009/07/14(火) 22:00:55 ID:???]
プロジェクトフォルダ-releaseフォルダの中かな
もしくはdebugフォルダ

592 名前:590 mailto:sage [2009/07/14(火) 22:44:54 ID:???]
>>591
早速のお返事、ありがとうございます。
が・・・ありませんねぇ、どちらも。
もしかしてプリコンパイルは関係ないのかな? でも、今参照しているbinの中のdll、参照外すと動かなくなるしなぁ・・・。

593 名前:nobodyさん mailto:sage [2009/07/15(水) 01:38:50 ID:???]
VS2008のASP.NET2.0ということは、Webアプリでなく、Webサイトだと思うけど、
参照設定で、他のDLLを参照する設定になってない?
普通、通常に使用しているだけなら、Webサイトで作成していてbin以下にdllが
作られることはないと思う。
だからビルドしても、外部参照のdllは更新されるはずがないような気がする。

webアプリだったら、あまり詳しくしらないのでよくわからん。

594 名前:nobodyさん mailto:sage [2009/07/15(水) 05:36:31 ID:???]
CodeBehindならWEBアプリな予感
だったらビルドしたらbinディレクトリにあるはずだが

WEBサイトならビルドしてもDLLは(見えるところには)作成されない
プリコンパイルってVSからできたっけ?


というか、参照してるDLLってなんのこと言ってるんだ?
そのプロジェクト以外のDLLをBinに入れて参照してるなら、
そんなもんはそのプロジェクトいくらビルドしても変わるわけないぞ

595 名前:nobodyさん mailto:sage [2009/07/15(水) 05:56:10 ID:???]
>>594
IDEからプリコンパイルできると書いてあるね
msdn.microsoft.com/ja-jp/library/bb398860.aspx

Webサイトでもコードビハインドだし、
「プリ」ってわざわざ付けるということは、webサイトなんじゃないかと思うんだけど。

596 名前:nobodyさん mailto:sage [2009/07/15(水) 11:45:02 ID:???]
エスパー解答

実はプリコンパイルは関係なくて、
>CodeBehindに指定されている.csの内容を修正してもそれが反映されません。
>(aspxの内容を修正した場合は反映されています)
のあたりを詳しく聞く必要があるとみた!

.csの内容を修正しても反映されないって、例えば画面の初期化処理だとか、
ポストバック時の処理を変えたりしてみても以前のロジックが走る、
ってことかな?

.csを削除してみるだとか、新しいページ追加して確認してみるとかはどうでしょう?

プリコンパイルとかWebサイトとかの話はよく分からないので、分かる方お願いします。

597 名前:590 mailto:sage [2009/07/15(水) 11:55:15 ID:???]
>>593-595

失礼、「Webサイト」でしたね。が・・・。

>WEBサイトならビルドしてもDLLは(見えるところには)作成されない
あれ? もらってきたソース一式に、\binディレクトリがありますけど・・・?

えっと、binにアプリケーション名.dllを放り込むと、VSの方で勝手にそのdllへの参照設定をします。
その参照設定を外すとdllが削除され、「型 '(アプリケーション名).Global'が読み込めませんでした」ってコンパイルすら通らなくなります。
(当然、「デバッグ」→「デバッグ開始」でも動きません)
それで、「ああ、ビルドしてdllを作り直せば、.csへの修正が反映されるのね」と思ったのですが、
「ビルド」→「Webサイトのビルド」ではDLLが作られない/更新されない・・・おや? というところで詰まっているのです。
うーん・・・別に、開発してるときはプリコンパイルなんてしてくれないくていいのになぁ。

598 名前:590 mailto:sage [2009/07/15(水) 11:57:39 ID:???]
>>596
おっと、すれ違い失礼。ええ、問題になっているところはソコですね。
ただ、>>597のような考えで「プリコンパイルされたDLLが更新されないのが問題だよね?」と思ったのですよ。
ちょっとやってみましょう>新しいページを追加

599 名前:590 mailto:sage [2009/07/15(水) 12:23:54 ID:???]
>>598
ダメですね。「型'アプリケーション名.hogehoge'を読み込めません」となります。
.csを無視してDLLを見に行ってるような感じです。

600 名前:590 mailto:sage [2009/07/15(水) 19:32:14 ID:???]
お騒がせしました。
結局、.net 2.0を明示的に指定して最初からソリューションを作り直し、そこにソースをコピーして再ビルドをかけました。
何が悪かったんだろう・・・。
※ツリー部にドラッグ&ドロップでコピー可能、しかも関連ファイルまで根こそぎ持っていくのにはちょっと感心しました>VS2008

とりあえず.csの修正は反映されるようになりましたが、やはりリビルドはしないとダメですね。



601 名前:nobodyさん mailto:sage [2009/07/15(水) 19:37:54 ID:???]
>>600
ソースファイルのタイムスタンプがおかしくなってるとか、マシンの時刻がおかしくなっているとか
プロジェクトの何かのファイルのタイムスタンプがおかしくなっているとか…。


602 名前:nobodyさん mailto:sage [2009/07/15(水) 19:55:28 ID:???]

たぶん、webアプリケーションと間違えてないか?

それか一つのソリューションに、webサイトプロジェクトと、他のプロジェクトがあって、
webサイトプロジェクトから、他のプロジェクトへの参照設定がされてる。
dllは、他のプロジェクトで作成したクラスのdllだからASP.NETの.csを変更してビルドしても
何の変化もないので不思議がってる。

こんなところだろ

603 名前:nobodyさん mailto:sage [2009/07/16(木) 01:59:14 ID:???]
現在Visual Studio 2008(VB.net)を使用しMasterPageの中に
<div></div>ブロックで囲んだGridViewを配置し、
ヘッダー行を固定しようと、.Freezingのお決まりのCSSを書き
GrdiViewHeaderのCSSにそのFeeezingのCSSを指定したところ、

ヘッダー行は正常に固定する事が出来たのですが、
<div>ブロックで正常に width:450pxと指定しているにも関わらずGridViewのヘッダー行(だけ)が
その<div>ブロックの幅を右横に突き抜けて表示されてしまいます。
一体何が原因なのでしょうか?
※IE7

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
指名 |  年齢 | 趣味 | 経験年数 | 

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 A     15   || ↑ヘッダー部分だけが突き抜けてしまう。(ここで趣味・経験年数)
 B     15   ||
 C     15   ||
〜〜〜〜〜〜〜〜〜
〜〜〜〜〜〜〜〜〜|


604 名前:nobodyさん mailto:sage [2009/07/16(木) 03:01:51 ID:???]
スタイルシートはdivで指定しても、その内側のタグのスタイルの指定で
表現してくれないことがあるから、そのヘッダー行に直接スタイルを適用してみたら?

というか、そういう時は、生成されたhtmlのソースをローカルなどにコピペしてブラウザで表示させるなどして、
関係ないhtmlタグを次々と消していって、目的とするタグだけで確認したほうがいいよ。
まったく関係無いと思われるスタイルが影響している場合があるから。

その目的とする表示を構成しているタグだけを残して他のタグをすべて消去し、
それでも問題が発生するかどうか確認するなどして、
他の要素が影響を及ぼしてる可能性をなるべく排除すべき。


605 名前:nobodyさん mailto:sage [2009/07/16(木) 03:18:17 ID:???]
>>604
ありがとうございます。
今日会社で試してみます。

606 名前:nobodyさん mailto:sage [2009/07/16(木) 09:29:33 ID:???]
>>600
レガシーなって、もともとはどのバージョンで作ってあったんだ?
それはWEBアプリで作ってあったのか、WEBサイトでつくってあったのか?

>>602
俺がエスパーするに、元がWEBアプリだったのを、今はWEBサイトで修正しようとしてる
今修正した部分はWEBサイトなんで、アプリケーション.DLLに反映されない
既存部分はWEBアプリなんで、アプリケーション.DLLへの参照がないと動かない

ソース全部コピーしたってことは、今全部WEBサイトになったんで動いてる

ま、こんなとこだろう


607 名前:590 mailto:sage [2009/07/16(木) 16:43:13 ID:???]
>>606
そうですね。*.slnファイルも貰ったのでそのまま開いたのですが、こちらで空のwebサイト、webアプリを作成して比較してみると、webサイトの*.slnのようです。
これで開発してる、って言ってたんだけどなぁ・・・。

608 名前:nobodyさん mailto:sage [2009/07/16(木) 19:05:01 ID:???]
>>606
その可能性が高そうだね
つかwebアプリをwebサイトに移植しても、そのままで動作するんだな

609 名前:nobodyさん mailto:sage [2009/07/16(木) 22:19:36 ID:???]
VS2005は知らんが、VS2008でWebサイトを作成してビルドすると
勝手にbinフォルダが作成されてる。その中にaspxに付随する.csやAPP_CODE配下のクラスファイルが
コンパイルされたdllが放り込まれる。aspxのヘッダはこのbinフォルダのdllを見に行くように全て書き換えられる。

別にビルドしなくても、.csのソース付きaspxをWebサーバに配置しても
IISとASP.NETは普通に解釈してくれる(まぁビルドするのと同じことしてるんだろけど)
正式リリース時は速度&セキュリティを考えてビルド方式にしたほうがいいよな。。

610 名前:nobodyさん mailto:sage [2009/07/16(木) 22:25:32 ID:???]
VS2008のWebサイトで、ビルドしても、リビルドしても、binフォルダもできないし、dllもできないぞ?



611 名前:nobodyさん mailto:sage [2009/07/16(木) 23:25:29 ID:???]
>>609
お前の言うWebサイトとは、VSでのプロジェクトの種類としてのWebサイトか?
一般的な意味でのWebサイトか?

一般的な意味でのWebサイトやWebアプリって言葉と
VSでプロジェクトの種類としてのWebサイトとWebアプリってのは別の話だぞ

binフォルダにDLL作るのはWebアプリだ。ソース修正したらビルドしないとDLLに反映されない
WebサイトではDLLは通常見えるところには作られてない。ソース修正したら自動的にコンパイルされ反映される
これを任意のタイミングで指定したところにDLL作らせるのがプリコンパイル

実際のところはWebアプリかWebサイトかは、VSが.ASPXのページディレクティブをどうするかだけで
ASP.NETは各ページの指定通りに動く。なので混在してても動く


612 名前:nobodyさん mailto:sage [2009/07/16(木) 23:35:34 ID:???]
>>610
悪かった。ビルド→Webサイトの発行でやってみてくれ

>>611
VSのプロジェクトのWebサイトですよ

613 名前:nobodyさん mailto:sage [2009/07/17(金) 00:38:13 ID:???]
それは発行するとプリコンパイルされるだけの話

614 名前:nobodyさん mailto:sage [2009/07/17(金) 00:40:18 ID:???]
それぞれのメリット

・Web サイトの発行ユーティリティを使用する利点
プリコンパイル プロセスにより、コンパイル時エラー、および Web.config ファイルと他の非コード ファイル内の潜在的なエラーを検出できます。
ソース コードは、.aspx ファイル内のマークアップを含め、Web サイトから削除されます。
これにより、知的財産を保護でき、第三者がサイトのソース コードにアクセスしにくい状況を作ることができます。
サイト内のページが既にコンパイルされているため、最初の要求時にページを動的にコンパイルする必要がありません。
これにより、ページの初期応答時間を短縮できます。ただし、ページが動的にコンパイルされる場合でも、以降の要求についてはその出力はキャッシュされます。

・Web サイトの発行ユーティリティを使用する欠点
指定する発行オプションによっては、サイトを変更する際、再コンパイルが必要になる場合があります。
したがって、サイトの開発中、頻繁に変更を加えるような場合にWeb サイトの発行ユーティリティを使用することは実用的ではありません。
Web サイトの発行ユーティリティでは、コンパイル済みサイトをリモート サーバーに配置することはできません。
ローカル コンピュータまたはローカル エリア ネットワーク上の別のコンピュータにのみコピーできます。

615 名前:nobodyさん mailto:sage [2009/07/17(金) 01:10:21 ID:???]
>>614
それはMSのコメントなのか?

>Web サイトの発行ユーティリティでは、コンパイル済みサイトをリモート サーバーに配置することはできません。
発行ユーティリティでFTP経由を指定できるんだが、これはリモートサーバとはいわないのか

616 名前:nobodyさん mailto:sage [2009/07/17(金) 01:15:08 ID:???]
すまんVWDの話な

617 名前:nobodyさん mailto:sage [2009/07/17(金) 01:30:49 ID:???]
説明がめんどいからURLだけ
msdn.microsoft.com/ja-jp/library/bb398992.aspx

VWDじゃなくても、発行ユーティリティを使用した欠点に、
>Web サイトの発行ユーティリティでは、コンパイル済みサイトをリモート サーバーに配置することはできません。
>ローカル コンピュータまたはローカル エリア ネットワーク上の別のコンピュータにのみコピーできます。
の記述はあるな

FTPの利用は、Webサイトのコピーツールのほうらしいなぁ

618 名前:nobodyさん mailto:sage [2009/07/19(日) 17:06:01 ID:???]
「検索」ボタンを押されたときにSQLを実行して実行結果をGridViewに描画させたいです。
SQLは、ユーザが指定した検索条件でいろいろ動的に変えたいので
SqlDataSourceのSelectCommandでは対処できないのかな?と思ってます。

そこで、「検索」ボタン押下されたときにポストバック処理の流れで
GridViewのDataSouceにArrayとかそんなようなオブジェクトを渡して描画させたいです。
そんなようなやり方でいいんですかね?

619 名前:nobodyさん mailto:sage [2009/07/19(日) 19:03:15 ID:???]
>>618
基本的にはそれでいいが、SQL Injectionには気をつけろ

620 名前:nobodyさん mailto:sage [2009/07/19(日) 19:04:33 ID:???]
ありがとん



621 名前:nobodyさん mailto:sage [2009/07/19(日) 19:30:24 ID:???]
単に検索条件変えるだけでSQL文の構造が変わる訳じゃないのなあら
SqlCommand の Parameter 使うとか。

622 名前:nobodyさん mailto:sage [2009/07/19(日) 23:37:25 ID:???]
面倒かもしれないけど、自前のクエリ実装と、Repeaterの組み合わせのほうがいいと思うんだけどなぁ

623 名前:nobodyさん mailto:sage [2009/07/20(月) 01:35:00 ID:???]
>>622
そんなんわかるほどスキルないもん。
ヒントだけでもいいから教えてください。

624 名前:nobodyさん mailto:sage [2009/07/20(月) 16:03:44 ID:???]
>>623
プロジェクトのデータセットを追加して、GridViewにBindするだけ
何かを選択させて条件で表示させたいなら、DataTable.Select("Query")を利用すればいい

625 名前:nobodyさん mailto:sage [2009/07/20(月) 16:45:16 ID:???]
>>624
ありがとうございます。
キーワードが増えたのでそれで勉強してみます

626 名前:nobodyさん mailto:sage [2009/07/20(月) 23:36:16 ID:???]
>>624
SqlDataSourceなりObjectDataSourceなり
データソースを使わせた方がいいと思うが…。
ページングができませんだの、編集ボタンでエラーが出ますだの言われかねんぞ。

627 名前:nobodyさん mailto:sage [2009/07/21(火) 13:52:20 ID:???]
ASP.NETのプロジェクトを作成して、そのなかでSQL ServerのDBに対して「ADO.NET Entities Data Model」
LINQでアクセスしています。

このDBを定期的に掃除するコードを実行したいので、タスクスケジューラから実行できる、
コンソールアプリのプロジェクトを作成しました。このプロジェクトから、↑のASP.NETのプロジェクトを
プロジェクト参照した場合、

new XXXXDatabaseEntities()

のところで、TypeInitializationExceptionが発生します。

ASP.NET側のプロジェクトのWeb.Configにあった接続文字列をこのコンソールアプリのプロジェクトの
App.Configにコピペしてきたのですが、それでは不十分なのでしょうか?

628 名前:nobodyさん mailto:sage [2009/07/21(火) 17:13:29 ID:???]
>>627
いま気づいたが、ひょっとしてDLL側にconfigを用意してそこに接続文字列を書かないといけないのか・・。

629 名前:627 mailto:sage [2009/07/21(火) 18:40:41 ID:???]
解決しました。

・DllのConfigは書いても無駄
・App.Configの内容がXXX.exe.configにビルド時にコピーされる

この2つを理解していなかったのが原因でした。

630 名前:nobodyさん mailto:sage [2009/07/21(火) 19:36:42 ID:???]
>このDBを定期的に掃除するコードを実行したいので、タスクスケジューラから実行できる、
>コンソールアプリのプロジェクトを作成しました。
ストアドプロシージャで作成してSQLのjobから実行したほうがいいんでないの?



631 名前:627 mailto:sage [2009/07/21(火) 20:01:58 ID:???]
>>630
ストアドプロシージャは書くのが面倒&書き慣れていないので、LINQで書きたいのです。

また、ログをDBに出力するメソッドなどは既に用意してあるので、
出来ればそのメソッドを用いて、DBの掃除をしたときにログを出力したいのです。

ところで、SQLのjobなら定期的に実行する仕組みがIISかSQL Serverかに搭載されているのですか?

632 名前:nobodyさん mailto:sage [2009/07/21(火) 20:30:30 ID:???]
うろ覚えですまん
MSSQLには定期実行するjobの機能がある。ただしExpress以上。
jobがなくても、SQLCMDだったかなで、別途ファイルに保存したクエリを実行できるから、
これをOSのタスクスケジューラーで実行するという方法もあったはず

ストアドプロシージャでも、SQL/CLRを使えば、.NETが使えるから、
Linq To Entitiesも、ログを残すこともできるんでないかな。
.NET3.5でSQL/CLR使ったことないからよくわからん。

633 名前:627 mailto:sage [2009/07/21(火) 20:44:49 ID:???]
>>632
ああ、SQL Serverにジョブを定期実行する仕組みがあるのですね…。
これは知りませんでした。勉強になりました。


634 名前:nobodyさん mailto:sage [2009/07/23(木) 06:02:37 ID:???]
>>631
自分はストアド派だなぁ

その「DBの掃除」がストアド化されていて
後で「ログを出力」という要件が追加になった場合、
ストアドの中だけ弄れば済む。

「後で要件追加(変更)」なんて設計者としては最初から織り込まないといけないと思う。
→ストアド内でログ出力するロジックを追加した方が総工数は下がる

635 名前:627 mailto:sage [2009/07/23(木) 13:07:42 ID:???]
>>634
> →ストアド内でログ出力するロジックを追加した方が総工数は下がる

それはストアドを駆使して書いてある場合の話であって、ASP.NETでの開発の場合、
ストアド使わずにLINQで殴り書きするほうがインテリセンスも使えて生産性が高いように思うのだが。

636 名前:nobodyさん mailto:sage [2009/07/23(木) 14:04:17 ID:???]
つSQL CLR


637 名前:627 mailto:sage [2009/07/23(木) 14:25:10 ID:???]
>>636
SQL CLRは技術的に見ても面白いテクノロジーですが、
LINQに比べると書きやすさがずいぶん劣るように思います。

638 名前:nobodyさん mailto:sage [2009/07/23(木) 15:01:03 ID:???]
コーディングのし易さ、早さ、書きやすさを最大限に追求することで、
プロジェクト全体の保守を含めた生産性の高さが最大になる案件やシステムなら、
そうすればいいじゃんとしか言えない。

639 名前:627 mailto:sage [2009/07/23(木) 15:36:04 ID:???]
>>638
ああ、ええ、まあ、そうですよね・・。

もう少し生産的な話として・・

LINQで書いたものはCLRに変換されてserver sideで実行されるのですから、
ストアドプロシージャがLINQで書ければ便利な気がするのですが、どうでしょう?

640 名前:nobodyさん mailto:sage [2009/07/23(木) 15:42:28 ID:???]
データベーステクノロジの使い分けとかみたいなのが
赤間さんとかの対談の形で
MSDN のページに載ってたんだけど
今探したら見あたらないな



641 名前:627 mailto:sage [2009/07/23(木) 15:49:30 ID:???]
>>640
これのことですかね?
msdn.microsoft.com/ja-jp/data/dd919164.aspx


642 名前:nobodyさん mailto:sage [2009/07/23(木) 16:03:33 ID:???]
そうそう、それそれ。

643 名前:nobodyさん mailto:sage [2009/07/23(木) 16:11:21 ID:???]
分業が必要な規模のアプリの場合、
その複数のプログラマがみんな美しいSQL文を書けるわけじゃないし
マニュアル等々で均一化するのも大変

1人のデータベーススペシャリストに
美しいSQL文でストアド作らせてた方が効率いいだろ、と感じる

あと、ASPの場合、外部からのハックキングを想定せねばならず
データベースへのアクセス権限としてテーブルへの直アクセスを許したくない

644 名前:nobodyさん mailto:sage [2009/07/23(木) 16:15:12 ID:???]
仕様変更でDBのフィールドが一つ増えるたびに、
関係するクライアントアプリやASP.NETに記述したlinqをすべて書き直すなら、それでもいいんじゃね?

単一クエリなら問題ないが、1行の操作が他のテーブルに影響を与えるなら、
ストアドプロシージャやビューをフルに活用したほうが、
処理をDB内にカプセル化できるから、仕様が変更されても、
アプリケーションを変更する必要がないし他でも簡単に使いまわすことができる。

その典型例がDBを掃除するコード。
引数が必要ないからアプリ側に影響を与えないし、
ループして複数の行に対して処理するだろうからストアドのほうが高速だし、
トランザクションも明示的に処理ができる。

645 名前:nobodyさん mailto:sage [2009/07/23(木) 16:16:25 ID:???]
一つのページで大量のクエリかけなきゃいけないときってどうしてるの?
select * from a;
select * from b;
...

って感じでやって取り込むのがいいの?

646 名前:627 mailto:sage [2009/07/23(木) 16:25:09 ID:???]
>>643-644
> 仕様変更でDBのフィールドが一つ増えるたびに、
> 関係するクライアントアプリやASP.NETに記述したlinqをすべて書き直すなら、それでもいいんじゃね?

これについてですが、私の場合、DBにアクセスするコードは、サブのプロジェクトを作ってそこに集約させてあるので、
DBのフィールド1つごとに修正する箇所があちらこちらに発生するということはないです。

ただ、ストアドで処理をDB内にカプセル化するという発想やDBのスペシャリストにストアドを書かせるという発想は
私にはなかったので643,644は本当に参考になりました。ありがとうございます。

647 名前:nobodyさん mailto:sage [2009/07/23(木) 16:31:51 ID:???]
>>645
取得したいデータによって、動的に取得したいテーブルが変化するとかへんな設計してなければ、
二つのテーブルから合計値を取得するとか、簡単なものなら
クラスにクエリをたくさん記述して、各ページで再利用してる場合もある

ただ、複雑な計算が必要だったり、テーブル数が多くなる場合には、
MSSQL側に、その計算式をまるごとビューとして登録するか、
テーブル値関数として登録してる。

プログラム側では、一つの表として取得できるのでそれを描画するだけ。

648 名前:nobodyさん [2009/07/23(木) 16:36:22 ID:FURNmJTN]
VS2005(VB)で開発しています
ドロップダウンリストを使用してデータを格納しているのですが
画面上からドロップダウンリストを操作した時に、表示される項目の向きが
常に下方向のみ表示できる方法はないでしょうか?
________
[_______]▼
項目A
項目B
項目C

このように表示したいのですが・・・。
現状だと▼ボタンを押して表示されるデータが、リストボックスの中央から
表示されているような状況です

宜しくお願い致します

649 名前:nobodyさん mailto:sage [2009/07/23(木) 16:36:55 ID:???]
>>646
それだと、仮にクライアントアプリだと、修正されるたびに、すべてのPCにデプロイする必要があるから面倒

DBの掃除コードはコンソールアプリからだけの実行かもしれないが、
仮にコンソールアプリからでもASP.NETからでも利用したい機能が発生した場合、
一つのプロジェクト内のクラスが変更になれば、両方をデプロイなり発行しなくちゃいけない。

DBに登録すれば、それに関するストアドの修正だけで済むので、
クライアントもASP.NETもコードを変更する必要がないので。

650 名前:627 mailto:sage [2009/07/23(木) 17:04:52 ID:???]
>>649
ああ、なるほど。クライアントアプリのときはそうでしょうね。



651 名前:nobodyさん mailto:sage [2009/07/23(木) 17:10:18 ID:???]
あんまりストアドに頼ると、DBMSを変更しづらくなるのがやだなあ。
よほどの理由がない限り、DBMSへの機能依存を前提とした設計は
避けたほうが無難じゃね?

652 名前:nobodyさん mailto:sage [2009/07/23(木) 17:18:22 ID:???]
>>650
コンソールとASPでやってて、SQLを別プロジェクトにしてる時点で、
同じDLLをASPとコンソールの二つからみてるわけだから同じじゃん
異なるバージョンのDLLで稼働してるのが気持ち悪くない人なら別にいいけど。

>>651
DBそのものの変更の可能性を考えるのなら、
使用言語が変更しづらくなる可能性も考慮しなきゃw
ストアドなら、そこにアクセスして操作できる言語なら
言語に依存せずに利用することができるとも言えるw

653 名前:627 mailto:sage [2009/07/23(木) 17:25:10 ID:???]
>>652
> 同じDLLをASPとコンソールの二つからみてるわけだから同じじゃん

サーバーサイドだけならdeployする手間が、普通のクライアントアプリとは違うので
>>649の「それだと、仮にクライアントアプリだと、修正されるたびに、すべてのPCにデプロイする必要があるから面倒」
という問題は無いかな、と思いました。

> 異なるバージョンのDLLで稼働してるのが気持ち悪くない人なら別にいいけど。

この部分がいまひとつ理解できていないのですが、私の構成は次のようになっています。

コンソールプロジェクト = DBの掃除を行なうコードを書いたプロジェクト(A) + DBへアクセスするためのサブプロジェクト(B)
ASP.NETのプロジェクト = 普通のASP.NETのプロジェクト(C) + DBへアクセスするためのサブプロジェクト(D)

上の B = D で、これはどちらも同じバージョンのDLLなのですが・・。

654 名前:nobodyさん mailto:sage [2009/07/23(木) 17:34:37 ID:???]
>>653
別に、あなたのやり方を否定してるわけでも、自分のやり方を推奨してるわけじゃなくて、
相反する考え方があるという事なんで、あくまで一般論の話ね。

どんな想定かわからないけど、複数のものを変更しなくちゃいけない場合、
その時点で変更し忘れ等のミスが発生する可能性が高まるということ。
例えばwebサーバが複数あるとか。

>上の B = D で、これはどちらも同じバージョンのDLLなのですが・・。
ASP.NETのプロジェクトの開発で何か変更になったとき、
サブプロジェクトDのDLLを変更するのはいいけど、
その時点でBに反映させなければ、異なるバージョンの物でそれぞれが動作している
という気持ち悪い状況になるでしょ。

そういうやり方をしてるなら、Dが変更されたら、変更されたDLLをBとして反映する
必要があるから、結果的に複数のものを変更する必要があるんじゃないの?という話。
BとDが異なるバージョンのDLLで動作しているのが気持ち悪くない人というのは
そういう意味。

655 名前:627 mailto:sage [2009/07/23(木) 18:10:04 ID:???]
>>654
ああ、なるほど。意味がわかりました。

> その時点でBに反映させなければ、異なるバージョンの物でそれぞれが動作している
> という気持ち悪い状況になるでしょ。

確かにそれはそうですね。

私はdeployの作業自体はスクリプトを書いて自動化してあるのですが、そこに書き忘れたら、
というのはありますね。

656 名前:nobodyさん mailto:sage [2009/07/23(木) 18:33:32 ID:???]
というか、Linq To SQLは終了の方向だから、
EntityFrameworkのほうで頑張るしかないな

657 名前:nobodyさん mailto:sage [2009/07/23(木) 21:15:25 ID:???]
>652
DBMSは導入先の環境・都合で変わりうるでしょ。開発言語に関してはそれはまず有り得ない。
大体、「開発言語を変更しろ」なんてのは事実上「1から作り直せ」と同義なんだから、
ストアド部分だけ流用できたって、たいして嬉しくないよ。

658 名前:nobodyさん mailto:sage [2009/07/23(木) 21:33:24 ID:???]
DBMSが具体的に何を差してるかわからんが、
データベースのソフト(MySQLたのOracleだのMSSQLだの)を差してるなら、
導入先の環境、都合でこれらがそんな頻繁に変わるか?

データだって移行せにゃいかんし、
そもそもクエリだってデータベース間で関数名や、その引数なんかに違いがあるんだから、
言語が統一ならどんなDBであってもまったく変わらないなんて完全な錯誤だと思うんだけど。
あるシステムでデータベースを異なる製品に変更しろなんて要求があったら、
1から作り直すのと同じだと思うし、あまりの仕打ちにそれ以上に腹が立つわw

659 名前:nobodyさん mailto:sage [2009/07/23(木) 22:08:49 ID:???]
いつだってフルスクラッチ大好きな俺は大歓迎だ!
ただし、金と時間はくれよな!

660 名前:nobodyさん mailto:sage [2009/07/24(金) 12:02:04 ID:???]
ASP.NETで開発しています。
JavaScriptで使っているデータを1日1回、DBから生成して .js ファイルとして書き出しておくことを考えています。

その .js ファイルを IIS7でホスティングすることになるのですが、
「DBから生成して .js ファイルとして書き出しておく」ときに、テンポラリに書き出して、
.NET FrameworkのFile.Copy(src , dst, overwrite = true)で前のファイルに上書きしようと考えています。

ところが、このファイルの書き出し中にこのファイルをクライアントブラウザから要求されて
IIS7が読み込もうとしたとき、コピー中の中途半端なファイルがクライアントブラウザに渡されます。

この挙動は望むものではなくて、出来れば、コピー前の古いファイルか、コピー後の新しいファイルかの
どちらかをクライアントブラウザに渡して欲しいのです。

これはIIS7の設定で解決するのでしょうか?それとも、File.Copyを使うのが良くないのでしょうか?



661 名前:nobodyさん mailto:sage [2009/07/24(金) 15:08:26 ID:???]
rename してからコピーして rename
コピー中はファイル存在せず

662 名前:nobodyさん mailto:sage [2009/07/24(金) 15:10:12 ID:???]
いや、少し違うか

hoge.new で予め作っておく
hoge.js → hoge.bak にリネーム
hoge.new → hoge.js にリネーム
hoge.bak を削除

663 名前:nobodyさん mailto:sage [2009/07/24(金) 17:35:30 ID:???]
>>660
javascriptって.jsしか無理なんだっけ?
自分なら.jsファイル(もしくは変更されるデータ)をデータベースから取得し、
アクセスがあるたびに動的に生成するな

ファイルを作成するプログラムが、バッチ処理の役割も果たしていて、
日に1回の集計処理を行ってるとすると、若干厄介かもしれないけど

664 名前:660 mailto:sage [2009/07/24(金) 18:02:37 ID:???]
>>661-662
それだと hoge.js → hoge.bakにrename中にアクセスされるとnot foundになるのが
嫌なのです。その2つのrenameは実際にはほぼatomicに行なわれるとは思うのですが。

>>663
確かにデータベースから流しても良いのですが、そのオーバーヘッドが嫌なのです。


(自己解決)
NTFSは次のようにtransactionをサポートしているらしいので
面倒ですが、これを使うことにします..。

Enhance Your Apps With File System Transactions
msdn.microsoft.com/en-us/magazine/cc163388.aspx


665 名前:nobodyさん mailto:sage [2009/07/24(金) 18:24:53 ID:???]
おーNTFSでファイルのトランザクションができるのかw
同じ.jsだとIEでキャッシュ扱いされそうな気がするんだが、その辺はどうなんだろ
レポート頼む

666 名前:660 mailto:sage [2009/07/24(金) 19:23:06 ID:???]
>>665
> 同じ.jsだとIEでキャッシュ扱いされそうな気がするんだが、その辺はどうなんだろ

それはIISのファイルのexpireの設定次第だと思います。

667 名前:nobodyさん mailto:sage [2009/07/24(金) 19:40:49 ID:???]
へーその都度、生成されるaspxでも?

668 名前:660 mailto:sage [2009/07/24(金) 20:25:23 ID:???]
>>667
forums.techarena.in/software-development/1193025.htm

にサンプルがありますがファイルの拡張子ごとにexpireする時間を設定できるようです。
このうちjsのexpireを1hourぐらいに設定しておけば、>>665 の問題は解決するのではないかと。

669 名前:nobodyさん [2009/07/24(金) 22:19:14 ID:1HXeI2xc]
生成し終わったファイルをコピーして別のファイル上書きするだけなら
そんな問題おきなさそうだけどなぁ。
ファイルシステム書き換えるだけでしょ。
Windows の Copy コマンドとか使えないのかな。

670 名前:660 mailto:sage [2009/07/24(金) 23:37:28 ID:???]
>>669
> 生成し終わったファイルをコピーして別のファイル上書きするだけなら
> そんな問題おきなさそうだけどなぁ。

起きます。System.IO.File.Copyでコピーした場合、ファイルコピーが開始されると
同時に、クライアントブラウザへの古いほうのファイルの転送が中断され、
結果として中途半端なファイルがクライアントブラウザに渡されます。

WindowsのCopyコマンドというのが何を指しているのかわかりませんが、
DOSプロンプトのcopyコマンドのことでしたら、これと同じ挙動のようです。



671 名前:nobodyさん [2009/07/25(土) 01:29:42 ID:WtyVOn10]
>自分なら.jsファイル(もしくは変更されるデータ)をデータベースから取得し、
>アクセスがあるたびに動的に生成するな

うわ、死んだ方がいいなこいつw

672 名前:nobodyさん mailto:sage [2009/07/25(土) 02:03:30 ID:???]
>>671
なんで?
それが駄目ならデータベースからデータを取得して、
動的に中身を生成するasp.netの全否定になると思うけど?

673 名前:nobodyさん mailto:sage [2009/07/25(土) 02:15:27 ID:???]
ASP.NETの動作にDB接続が必須だったとは初耳だ

674 名前:nobodyさん mailto:sage [2009/07/25(土) 02:19:13 ID:???]
ストアドってよく使われるもんなの?
個人的には全部ソースで作ればいいじゃんと思うんだけども。

675 名前:nobodyさん mailto:sage [2009/07/25(土) 02:27:23 ID:???]
>>673
データベースからデータを取得してhtmlを生成する仕組みで動作してる
aspx全般のことを言ってるのに、asp=db必須なんて言うのは論理のすり替え

676 名前:nobodyさん mailto:sage [2009/07/25(土) 03:11:46 ID:???]
>>674
ストアドに限らず、viewやテーブル値関数、トリガーを含めてなら便利だし、結構使う
問題なく動作してるなら、別にソースからでもいいんじゃない?

メリットはデータベースを一つのオブジェクトとみた場合、データの操作はデータに近いところで行うという、
可能な操作や状態のみ閲覧でき、実装を隠蔽できるOOPのメリットと併せて考えればわかりやすいと思うけど
あとは複数クエリの実行なら、ストアドのほうが処理が速いということかな
ASP.NETとはいえ、DBとWEBサーバは別だろうから、DB-WEB間のネットワークトラフィックを最低現にできるメリットもある

677 名前:nobodyさん mailto:sage [2009/07/25(土) 03:12:12 ID:???]
>>675
んじゃーお前は何でもかんでもDBに突っ込んで毎回取りに逝けばいいよ。

678 名前:nobodyさん [2009/07/25(土) 08:21:37 ID:BV/bwvMa]
俺頭悪いから
>>675 からなんで >>677 な意見が出るのか理解できない…。

>>673 はまぁ極端ではあるけど
>>672 の文章自体誤解を受けかねない部分はあるからまぁ仕方ないのかなって気はするけど。
まぁでもなんかとにかくかみつきたくてかみついてるような印象はあるか。

679 名前:nobodyさん mailto:sage [2009/07/25(土) 11:37:23 ID:???]
>>671はjs「ファイルを動的に生成」ってところに
突っ込みたかったんだと思ったが…

680 名前:nobodyさん mailto:sage [2009/07/27(月) 09:33:53 ID:???]
>>664
どこまで極めないといけないのか知らんが
js ファイルを作成する都度、別ファイル名にして、
aspx 側で食わせる js ファイル名を動的に変更させたらどう?



681 名前:sage mailto:sage [2009/07/27(月) 10:06:33 ID:???]
TextBoxにもLabelにもなるユーザコントロールって作れないんスかね?
ReadOnlyのプロパーティをtrueにすればLabel、falseにすればTextBox、みたいな。

TextBoxを変更不可にするんじゃどうしても見た目的に駄目なケースがあるんで。

682 名前:nobodyさん [2009/07/27(月) 10:34:22 ID:lA2VJ4lQ]
動的にコントロール追加すればいいんじゃないの

683 名前:nobodyさん mailto:sage [2009/07/27(月) 14:43:15 ID:???]
Repeaterでテキストボックスを動的に生成しています。
ボタンが押されたら内容をチェックして、何らかのエラーがあればエラーのあったテキスト
ボックスの背景色を変えたいんですが、方法が分かりません。

テキストボックスは動的に生成しているので、 プロパティで変更することも出来ないみたいで。


684 名前:nobodyさん mailto:sage [2009/07/27(月) 15:31:56 ID:???]
>>681
作れなくはないが、見た目だけならCSSで無理か?

>>683
FindControl

685 名前:nobodyさん mailto:sage [2009/07/27(月) 15:33:45 ID:???]
>>681
TextBoxとLabelを配置したUserControl作って、ReadOnlyプロパティとTextプロパティを作って、
TextBox.Visible = !ReadOnly Labe.Visible = ReadOnlyすればいいじゃない

>>683
public List<TextBox> TextBoxList = new List<TextBox>();
protected void Page_Load(object sender, EventArgs e)
{
 for (int i = 0; i < this.Repeater1.Items.Count; i++)
 {
  RepeaterItem ri1 = this.Repeater1.Items[i];
  TextBox textBox = (TextBox)ri1.FindControl("TextBox1");
  TextBoxList.Add(textBox);
 }
}
あとはお好きにどぞ

686 名前:nobodyさん mailto:sage [2009/07/27(月) 15:59:05 ID:???]
>>685
683は、validationをclient-sideで行なって、かつ、TextBoxとLabelとの切り替えもclient-sideで
行ないたいということなんじゃない?

まあJavaScriptで書くしかないわな・・。

ASP.NET、client-sideで処理するためのtool setが用意されていないので
何かとJavaScriptを書かないといけなくて面倒なんだな。

687 名前:nobodyさん mailto:sage [2009/07/27(月) 17:02:42 ID:???]
このスレの>>200近辺にあるjQueryを使えば大丈夫

688 名前:nobodyさん mailto:sage [2009/07/27(月) 17:09:31 ID:???]
>>687
何がjQueryで大丈夫なのかは知らないが、
あまりにjQueryとの親和性が悪いので
ASP.NET4.0ではjQueryを統合するとか何とか。


689 名前:nobodyさん mailto:sage [2009/07/27(月) 17:42:49 ID:???]
×あまりにjQueryとの親和性が悪いので
○ASP.NET AJAXがあまりにjQueryとの親和性が悪いので

690 名前:nobodyさん mailto:sage [2009/07/27(月) 20:19:11 ID:???]
>>686
UserControl、ReadOnlyプロパティから考えるにサーバコントロールじゃないの?
そもそもClientでValidationを行うのが間違いだし
超簡単にやるなら、こんなでいいんじゃない。

<%@ Control Language="C#" AutoEventWireup="true" CodeFile="WebUserControl.ascx.cs" Inherits="WebUserControl" %>
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<asp:Label ID="Label1" runat="server" Text="Label" Visible="False"></asp:Label>
public partial class WebUserControl : System.Web.UI.UserControl
{
 public bool ReadOnly
 {
  get { return this.Label1.Visible; }
  set
  {
   this.Label1.Visible = value;
   this.TextBox1.Visible = !value;
  }
 }
 public string Text
 {
  get { return this.Label1.Text; }
  set
  {
   this.Label1.Text = value;
   this.TextBox1.Text = value;
  }
 }
}



691 名前:nobodyさん mailto:sage [2009/07/27(月) 21:07:41 ID:???]
>>690
> そもそもClientでValidationを行うのが間違いだし

何故間違いなの?余計なトラフィック増やしたくないから、まずclient-sideで行なって、
サーバーはサーバーで再度validationを行なうのが常識でしょ。

692 名前:nobodyさん mailto:sage [2009/07/27(月) 21:20:16 ID:???]
>>691
>何故間違いなの?
ああ正確にはClient「だけ」だな 言葉足らずですまんかった

>余計なトラフィック増やしたくないから、まずclient-sideで行なって、
>サーバーはサーバーで再度validationを行なうのが常識でしょ。
入力内容をポストしてValidateするのと、JavaScriptでチェックするのの、
どちらが容量が少ないかだけの観点なら、失敗される予想回数と、
Postされるデータの容量と、Validationに必要なJavaScriptの容量が関係するから、
一概にClientでチェック=トラフィックが低いとは言えないけどね

693 名前:nobodyさん mailto:sage [2009/07/27(月) 23:45:26 ID:???]
>>692
> 一概にClientでチェック=トラフィックが低いとは言えないけどね

ああ、なるほど。トラフィックという観点ではそうだね。

実際は、ASP.NET ajaxでも、アクセスされるごとにサーバー側では
モデル等を再構築するのでアクセスごとのサーバーの負荷は並々ならぬものがあるので
なるべくならclient-sideで、というのは信念としてあるわけだけど。

694 名前:nobodyさん mailto:sage [2009/07/27(月) 23:49:45 ID:???]
>>671
動的生成したjsの内容をいキャッシュしとけばいいよ。
ってか良くやる方法だよ。
あんまりキャッシュとか活用されないことが多かったりするけどね。


695 名前:nobodyさん mailto:sage [2009/07/27(月) 23:52:13 ID:???]
クライアントサイドの検証コードなんてほとんどキャッシュされるから、
実質的にはクライアントでも検証を行う方が有利なことが多いんじゃないかと思うけどね。


696 名前:nobodyさん mailto:sage [2009/07/27(月) 23:55:29 ID:???]
>>694の続き
jsファイルでやりたいなら、ashxハンドラなどで、ファイルを読んでキャッシュして
リクエスト時にはそれを返す方法でもいい。
ファイルの更新時刻を見て、例えば一秒以内程度なら前の結果を返すとか自由に制御できる。


697 名前:nobodyさん mailto:sage [2009/07/28(火) 00:30:07 ID:???]
>>695
そこらへんまで行くと、完全に実装にかかるコストやなんやらとのトレードオフ
ISDNとか56kモデム全盛の時代は帯域が狭いから、
トラフィックも考慮されてたけど、今じゃよほど特殊な環境やページでなければ
トラフィックを気にして設計することなんかほとんどない

その証拠に、画面を描画するcssも、よくあるライブラリを記述するjsも、
必要な部分だけincludeしてるわけじゃなく、サーバに対して1つだけを設定してるだけでしょ
さらに言えば、今時、JavaScriptで入力チェックしてるサイトも少数派になってる
どうせ両方に実装するのならJavaScriptのほうは不必要という考えもできるからね

698 名前:nobodyさん [2009/07/28(火) 02:26:18 ID:FCPdlHYK]
ASP.NETのValidatorが自動生成するスクリプトでのチェックならいいが、
自力でScriptをゴリゴリ実装するのは後で他人が多大なる被害を被るのでやめてくれ。
んなもんサーバ側でやればいいだろーが。

699 名前:nobodyさん mailto:sage [2009/07/28(火) 08:13:31 ID:???]
前任者のソースに__doPostBackを
自前の関数から呼んでるのとかあったな

700 名前:nobodyさん mailto:sage [2009/07/28(火) 09:19:48 ID:???]
つーか、client側にゴリゴリ処理を書くとか、むしろアリエネーとか思うんだが。
そんなの、いくらでもエンドユーザが改変可能じゃん。

原則は、全部のデータをサーバに丸投げして、あとはサーバ側でチェック。
仮にclient側のjavascriptでチェックしてても、全く同じチェックをサーバ
側でも再実施。だったら実装の手間隙考えて、微々たるトラヒックの事なん
か気にしない。(=clientではチェックしない)



701 名前:nobodyさん mailto:sage [2009/07/28(火) 11:02:01 ID:???]
なんでajaxが出てきたと思ってる
ってまあ言いたいことは分かってるんだけどな

702 名前:Appri童貞 [2009/07/28(火) 17:08:04 ID:sYPKb5BW]
エラー発生アプリケーション xxxxxxxxxxxx.exe、バージョン 1.0.0.0、
エラー発生モジュール kernel32.dll、バージョン 5.2.3790.4480、
エラー発生アドレス 0x0000bef7

こんなログ出た人いますか?


703 名前:nobodyさん mailto:sage [2009/07/28(火) 17:20:27 ID:???]
>>702
聞く前にぐぐれ

kernel32.dll 0x0000bef7 5.2.3790.4480
でぐぐったら、1つ目のリンクにSystem.OutOfMemoryExceptionがどうとか書いてあるぞ。

704 名前:Appri童貞 [2009/07/28(火) 17:33:53 ID:sYPKb5BW]
ありがとう^^


705 名前:nobodyさん mailto:sage [2009/07/28(火) 19:06:55 ID:???]
死ね

706 名前:nobodyさん mailto:sage [2009/07/28(火) 19:48:08 ID:???]
むしろ生きろ

707 名前:nobodyさん [2009/07/29(水) 03:14:53 ID:S6cUwBjX]
>>699
ゴメン、今のプロジェクトで __doPostBack 書いてる。

708 名前:nobodyさん mailto:sage [2009/07/29(水) 03:30:54 ID:???]
クライアントスクリプトからポストバックする方法って普通になかったっけ?
別に問題ないと思うけど

709 名前:nobodyさん mailto:sage [2009/07/29(水) 07:38:21 ID:???]
ASP.NET2.0以降ならICallBackEventHandlerで出来るな。
しかしだからって、__doPostbackを自前で呼ぶことが許容できるかというと微妙。
十中八九、代替する方法があるだろうしな。

710 名前:nobodyさん mailto:sage [2009/07/29(水) 19:40:32 ID:???]
リンクをcssで無効にして、Scriptでクリックすることにするという方法が簡単らしいね
ClientScriptで動作させることが前提の非ビジュアルコンポを作ったら楽かもしれない
つか、ICallBackEventHandler試したことないから、やってみようかな



711 名前:nobodyさん mailto:sage [2009/07/29(水) 20:30:18 ID:???]
MaskedEditExtenderについて、教えて下さい。

<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<ajaxToolkit:MaskedEditExtender
ID="MaskedEditExtender1"
runat="server"
InputDirection="RightToLeft"
Mask="99,999"
MaskType="Number"
TargetControlID="TextBox1">
</ajaxToolkit:MaskedEditExtender>

と設定されたテキストボックスに、1を入力してポストバックなりすると
100,000と変換?されてしまします。
Mask="9,999" でもダメでした(1,000になってしまう)
しかし
Mask="999999" やMask="9,999,999"では問題ありませんでした。

これは何かの制限でしょうか?

712 名前:nobodyさん [2009/07/30(木) 01:45:47 ID:6Jkou0XR]
__doPostback実装してもいいじゃん。ダメな理由って何がある?

713 名前:nobodyさん mailto:sage [2009/07/30(木) 02:45:19 ID:???]
ServerControlの配置と、自分で記述するClientScriptの相関関係がまったくなくなるのが問題と言えば問題

714 名前:nobodyさん mailto:sage [2009/07/30(木) 03:29:35 ID:???]
まったくなくなるかどうかはクライアントスクリプトの実装次第だと思うが
コールバックとポストバックは似て非なるものだから
どうしてもポストバック使いたいときもあるだろう
つか1.1まではそれしかなかったしな

ダメな理由はない
まあ、見通しが悪くなることが問題といえば問題
だがそれはコールバックでも同様

715 名前:nobodyさん mailto:sage [2009/07/30(木) 06:36:24 ID:???]
コントロール名を変更しても、JavaScriptのほうまでは変更してくれないでしょ
だから相関関係が無くなる

716 名前:nobodyさん mailto:sage [2009/07/30(木) 07:36:36 ID:???]
それは最初からJavascriptが間違ってるだろ。


717 名前:nobodyさん mailto:sage [2009/07/30(木) 08:11:07 ID:???]
>>712
もちろん最終的には開発者の自由なんで、あくまで俺の見解として。

まず、前にも書いたがそんなことをしなくても
十中八九、正攻法で解決できると予想される。
また、他に方法がなかったとしても、
果たして裏道を使ってまで解決する要件か疑問が残る。

次に、そのような組み方は「らしくない」と感じる。
極端な例えだが、Responce.WriteでHTML出力してたり、
GridViewに仕込まれた無数のhiddenを見ている気になる。

最後に、フレームワークを使っていて、
ハッキング(裏道の利用)に手を染めたら負けかなと思ってる。

718 名前:nobodyさん mailto:sage [2009/07/30(木) 14:41:52 ID:???]
>>716
違う
最初は正しかったが、IDEでaspxの何かを変更をすることで、
結果的に間違ったものになったということ

基本的にIDEの機能や本来のやり方と無縁だからこうなる

719 名前:nobodyさん mailto:sage [2009/07/30(木) 18:15:21 ID:???]
>>715
それはスクリプトでIDなんかをハードコーティングするから悪い

スクリプトをサーバコントロールで動的に生成して出力するようにすれば
サーバコントロールとの関係は崩れない。これがAPS.NET流じゃないかな
まあ、__doPostback直接書くのはお勧めじゃない。GetPostBackEventReference使えと

.aspx側(html側)にスクリプト書いたとしても、動的に変更する必要があるところは
実行時バインド式で書いとくのが通常

720 名前:nobodyさん mailto:sage [2009/07/30(木) 21:07:58 ID:???]
>スクリプトをサーバコントロールで動的に生成して出力するようにすれば
これが読みにくくて判読しにくいんだよな
そもそもサーバサイドスクリプトがcsに書かれてるのも違和感だし
うまく解決できないものか



721 名前:nobodyさん mailto:sage [2009/07/30(木) 21:46:45 ID:???]
aspx側に書けばいいじゃん。


722 名前:nobodyさん mailto:sage [2009/07/30(木) 22:11:19 ID:???]
ASP.net 2.0 なんですが、GirdViewの「編集」(正確には「更新」)のイベントハンドラを独自に記述する方法はあるでしょうか?

GridViewによるマスタメンテを実装しているのですが、GridViewはEnableViewStateをfalseにしないと更新が出来ないそうですね。
現在、ロジック側でConnectionStringを設定するつくりになっているので、EnableViewStateがtrueでないと動かないのです。
ということで%一行目%しかないかと思ったのですが、どこか参考になるURLなどご存知の方がいらっしゃれば、ご教授いただければ幸いです。
よろしくお願いします。

723 名前:nobodyさん mailto:sage [2009/07/30(木) 22:18:30 ID:???]
>GridViewはEnableViewStateをfalseにしないと更新が出来ないそうですね。
そうなの?初めて聞いた。

>ロジック側でConnectionStringを設定するつくりになっているので、EnableViewStateがtrueでないと動かないのです。
そうなの?これも初めて聞いた。

724 名前:nobodyさん mailto:sage [2009/07/30(木) 22:21:01 ID:???]
ゴメン、意味が分からない。
同じ環境でGridViewから更新処理してるが、EnableViewstateはTrueのままだぞ。
あと編集処理は通常CommandNameがEditであって、
更新はUpdateだから同じものでも無いはずなんだが。
まぁイベントハンドラならOnCommand辺りでフックすればいいんじゃないか。

と、ここまで書いて思い付いたが、
もしかしてObjectDataSource等をかまさずに
直接DataSourceにオブジェクトを割り当ててるとか?

725 名前:nobodyさん mailto:sage [2009/07/30(木) 22:26:48 ID:???]
今テストしたけど、GridViewのEnableViewState=trueで更新できるな
VS2008+MSSQL2005

726 名前:nobodyさん mailto:sage [2009/07/30(木) 22:41:33 ID:???]
エスパーすると
IsPostBackがtrueの時にDataBindするとイベントが発生しないということと、
ポストバックしてEnableViewStateがtrueの時だと、
取得時のデータと異なる可能性があるというデータの整合性や楽観的ロックの
関係とごっちゃになってるような気がする。



727 名前:722 mailto:sage [2009/07/30(木) 23:43:56 ID:???]
>>723-726
というと、これはガゼ?
ttp://bbs.wankuma.com/index.cgi?mode=al2&namber=6830&KLOG=17
ttp://yaplog.jp/iamcat/archive/23

(1)削除は出来る
(2)更新も、少なくともSQLは流れてる
 ※UpdateCommandのSQL文弄るとエラーになるので
から、画面から入力した内容がUPDATE文に流れていないのだと判断したのですが・・・。

>>723
>>ロジック側でConnectionStringを設定するつくりになっているので、EnableViewStateがtrueでないと動かないのです。
>そうなの?これも初めて聞いた
初回は動くんですが、ポストバックするとConnectionStringが元に戻ってしまうらしいんですよ。
Page_loadで毎回代入してるはずなんですけどね・・・。

728 名前:nobodyさん mailto:sage [2009/07/30(木) 23:58:28 ID:???]
>>727
>というと、これはガゼ?
それは、GridViewにデータをバインドした後に、誰かがデータを変更した場合の話

初回アクセス時にデータを取得し、それ以降はサーバとブラウザの間でポストバックして、
データを持ち回りしているので、その間にデータベースのデータが変更されても、
変更されたデータとして反映されないということ。

>初回は動くんですが、ポストバックするとConnectionStringが元に戻ってしまうらしいんですよ。
そう考えるとConnectionStringが元に戻るんじゃなくて、表示されるデータが戻ってるだけでは?
ConnectionStringをLabelなどに表示してみて、本当に変わっているかどうかチェックしてみたほうがいい

729 名前:728 mailto:sage [2009/07/31(金) 00:08:52 ID:???]
ああ、ごめん上のレスは却下
System.ArgumentException: 無効なポストバックまたはコールバック引数です。
の理由にはならないね

ただ、ポストバックで特殊なことをしてなければそんなエラーはでないから普通は関係ないはず

730 名前:nobodyさん [2009/07/31(金) 00:14:03 ID:dsR5PDEA]
ASPでデバッグモードの時のみコードを実行させることってできます?
C#でウインドウアプリ作るときはプロジェクトの設定して
Conditional属性つければ、デバッグ時のみコードを実行させることが
できますが、同じようなことをASPでできないものでしょうか?

#if DEBUGでの切り分けはあんまり使いたくないなぁということで・・・
属性じゃなくても、似たようなことができる方法教えてもらえると助かります。





731 名前:730 [2009/07/31(金) 00:16:46 ID:dsR5PDEA]
あ、失礼しました
ASP.NETです
言語はC#です



732 名前:nobodyさん mailto:sage [2009/07/31(金) 02:18:59 ID:???]
>>720
>そもそもサーバサイドスクリプトがcsに書かれてるのも違和感だし
クライアントサイドの間違いじゃないのか?
サーバサイドのスクリプト(プログラム)が.csに書いてあるのは普通だろう
そのために.aspxと.aspx.csに分離してあるんだから

まあ、サーバサイドとクライアントサイドのコードが混在すると
読みにくくて判読しにくいのは同意するが、これはWEBアプリの宿命的な部分もあるしな
ASP.NETな開発で考えると、そこはコントロールの作成者が苦労すれば、
その利用者は何も考えなくてよい、ってことなんだが...最大の成功例はAjaxToolkitか
実際はカスタムコントロールなんて作らんとページロジックに書く場合がほとんどだろうし
作ってもコントロール利用者=コントロール作成者な場合が多いからなw

733 名前:nobodyさん mailto:sage [2009/07/31(金) 19:40:32 ID:???]
VS2008SP1のセキュリティがあたらねぇ
WindowsUpdateはクソだな

734 名前:nobodyさん [2009/08/01(土) 09:06:35 ID:7MJE4N/J]
ASP.NET MVC 2 Preview 1
www.microsoft.com/downloads/details.aspx?FamilyID=d34f9eaa-fcbe-4e20-b2fd-a9a03de7d6dd&DisplayLang=en

735 名前:nobodyさん mailto:sage [2009/08/01(土) 11:34:44 ID:???]
mvcは要らない子

736 名前:nobodyさん mailto:sage [2009/08/01(土) 11:58:07 ID:???]
海外ではMVCに移行してきてると思うけど
携帯向けのことも考えるとMVC以外あり得ん

737 名前:nobodyさん mailto:sage [2009/08/01(土) 13:47:25 ID:???]
ASP.NET for Mobilesはやれば出来る子

738 名前:nobodyさん mailto:sage [2009/08/01(土) 15:10:04 ID:???]
ASP.NET MVCちょっと使ってみて、やべー、使いやすい!
って俺は思ったんだが。
他のフレームワークでのMVC開発全くやったことなかったし。

739 名前:nobodyさん mailto:sage [2009/08/01(土) 15:45:55 ID:???]
コードビハインドで事足りる
MVCならResponse.Writeで全部はき出すのとそんなに変わらん

740 名前:nobodyさん mailto:sage [2009/08/01(土) 15:56:50 ID:???]
今更Web Forms vs MVCみたいなこと言ってんのかよ



741 名前:nobodyさん mailto:sage [2009/08/01(土) 16:01:59 ID:???]
ASP.NET MVCはLAMP対策。
それ以上でもそれ以下でもない。

742 名前:nobodyさん mailto:sage [2009/08/01(土) 16:07:10 ID:???]
使いやすい云々よりjQueryフレンドリーなのが大きい

743 名前:nobodyさん mailto:sage [2009/08/01(土) 16:12:12 ID:???]
苦肉の策って奴だなLAMP方式

744 名前:nobodyさん [2009/08/01(土) 22:28:24 ID:Xxdx6Cb4]
ASP.NET MVCは単テがしやすいとか聞いたがそうなの?
今までのASP.NETでは、まともに単体テストやろうとしたらかなり面倒だよね。

745 名前:nobodyさん mailto:sage [2009/08/01(土) 23:07:40 ID:???]
つVisual Studio Team Edition for Software Testers

746 名前:nobodyさん [2009/08/02(日) 16:46:34 ID:Ql7mD23J]
ttp://www.netdive.jp/asp.html

747 名前:nobodyさん mailto:sage [2009/08/02(日) 21:54:48 ID:???]

これは便利だね

748 名前:nobodyさん mailto:sage [2009/08/02(日) 22:00:36 ID:???]
昔のASP?


749 名前:nobodyさん mailto:sage [2009/08/03(月) 00:39:33 ID:???]
っつーかマルウェア検出されるんだけど

750 名前:nobodyさん mailto:sage [2009/08/04(火) 10:35:52 ID:???]
画面が重いとかクレーム付けられてンだけど、画面上にLabelとTextboxが5マンコも載ってりゃ
当然だろ常考。こっちは設計書に忠実に実装してるだけですが何か。

ページ切り替えとかの実装を要求されるンかなぁ。
更新系の画面でページ切り替えとか、考えることが増えてマジウザイんだけど。



751 名前:nobodyさん mailto:sage [2009/08/04(火) 10:41:59 ID:???]
>>750
初心者乙

752 名前:nobodyさん mailto:sage [2009/08/04(火) 14:09:01 ID:???]
5万項目も入力&入力チェックする人間も大変だな

753 名前:nobodyさん mailto:sage [2009/08/04(火) 19:43:51 ID:???]
Label+Textbox合わせて最大5マンコ位なんで、Textboxだけなら2マンコ位です。
横方向にTextBoxが40×Repeaterで500ループ、なので入力チェックの実装はそれほど大変では
ないのですが、、、

実際に運用した際の入力の手間については考えていません。


754 名前:nobodyさん mailto:sage [2009/08/04(火) 20:38:23 ID:???]
そういうのはグリッドで設計すべき

755 名前:nobodyさん mailto:sage [2009/08/04(火) 20:45:22 ID:???]
text二万個分のViewStateやらポストやらとか考えたくもない
でも設計に口出ししなかったんだから仕方ないな

756 名前:nobodyさん mailto:sage [2009/08/04(火) 21:24:45 ID:???]
ちなみに何を入力させてんの?
それがわからないと最適解はわからんよね
NDAとかで具体的に話せないなら、似たような事例で

757 名前:nobodyさん mailto:sage [2009/08/04(火) 22:30:19 ID:???]
>>754
グリードってGridView?あんまりGridViewを用いるメリットが思いつかない・・・
ちなみに、サンプルに良くある「行毎にある編集ボタンを押して編集モード、編集が終ったら行ごとの更新ボタ
ン押下で再び参照モード」 って挙動は駄目なんで。
ユーザはあくまでExcelへの入力のごときフィーリングを求めてるみたい。

>>755
詳細設計から参加だから、もうどうしようもなかった。
ポストは、xmlに定義した内容を見て、Request.Paramsを分解してDataSetに突っ込むっていう部品を作っ
たんであまり気にしてません。VIEWSTATEは・・・Sessionに突っ込んでるけど、恐ろしいサイズになってそう。

>>756
顧客情報。
1営業担当あたり500人程度を想定してるんで。

758 名前:nobodyさん mailto:sage [2009/08/04(火) 22:36:00 ID:???]
わかりにくかったらすみません
repeater全体にlinkbuttonつけたんですが、
そのどこかの行をクリックするとその行だけ詳細パネルが開いて、他の行もそのまま表示ってしようとしたところ、
パネルは開いたのですが元々あった一覧行が消えてしまいます
何が原因だと思いますか?

759 名前:nobodyさん mailto:sage [2009/08/04(火) 23:01:36 ID:???]
Excelのごとき入力をしたい画面をWebでつくるという腐った提案ナイスだな。
Excelでいいじゃんって言ったらしばかれそうだなw


760 名前:nobodyさん mailto:sage [2009/08/04(火) 23:02:09 ID:???]
>>757
どういう契約関係かわからんが仕様書段階で忠告があってしかるべき仕様だよな
仕様通りつくって運用上の問題が発生したのなら、当然、別料金で作り直しでしょ
仕様の設計者が社内の人間なら、泣く泣く作り直すしかないね。
設計者に飯でもおごってもらえw

それはともかく、初めからマトリクス状に500行あるってこと?
それともユーザを追加していくうちに最大で500行まで増えそうってこと?
前者なら設計が最悪、後者なら20行ごとにページングするしかないね。
各行ごとに編集や削除ボタンを設置しておけば、表全体に対して入力チェック
する必要ないし、PostBackの容量も少なくて済むし。



761 名前:nobodyさん mailto:sage [2009/08/04(火) 23:07:32 ID:???]
>>758
>repeater全体にlinkbuttonつけたんですが、
各行に1個のボタンを付けて、それをクリックすると行の詳細が、
パネル(パネルってなに?)に表示されるってことかな?
んで、クリックするとなぜかそのクリックした行のデータだけ
repeaterから削除されてるってこと?

いまいちどういう動作をしてるからわからんので、
記述したプログラムをどこかにupもしくは
操作している最中の動きをスクショでとってどこかにup

762 名前:nobodyさん mailto:sage [2009/08/05(水) 00:32:56 ID:???]
能力の無い馬鹿ほど最初に予防線を張りたがるよねw
大抵が、パフォーマンスが出ないのは作りがしょぼいだけ。それを仕方ないと言い訳する屑。

googlemapみたいにアジャックスつかって、見えてる部分だけデータを拾ってくるようにして、スク
ロールインした部分は随時データを拾ってくるようにすればいい。
これなら、画面上に見えてるコントロールの数はずっと少なく出来るし、レスポンスも工場する。

763 名前:nobodyさん mailto:sage [2009/08/05(水) 01:14:20 ID:???]
何いってんだか意味ワカンネ

764 名前:nobodyさん mailto:sage [2009/08/05(水) 01:27:35 ID:???]
>アジャックス

765 名前:nobodyさん mailto:sage [2009/08/05(水) 01:41:38 ID:???]
TextBox20000個より阿呆がいる

766 名前:nobodyさん mailto:sage [2009/08/05(水) 01:44:50 ID:???]
>>762
やってみろよ。
見せてくれ。
作りがしょぼいだけってんだから簡単にできるんだろ。


767 名前:nobodyさん mailto:sage [2009/08/05(水) 01:49:29 ID:???]
まもっとも、できるできないより問題はどんだけコストをかけるのかなんだけどな。


768 名前:nobodyさん mailto:sage [2009/08/05(水) 02:01:41 ID:???]
一方ロシアはページング機能を搭載したRepeaterコントロールを
ASP.NET AJAXを使って実装した

769 名前:nobodyさん mailto:sage [2009/08/05(水) 02:39:30 ID:???]
>>762
要件勝手に変えて何いってんだか



770 名前: [―{}@{}@{}-] nobodyさん mailto:sage [2009/08/05(水) 09:24:53 ID:???]
>>758
ポストバックして一覧再描画してないって落ちじゃね?



771 名前:nobodyさん mailto:sage [2009/08/05(水) 11:29:00 ID:???]
SharePoint Server
Excel Services...

772 名前:nobodyさん mailto:sage [2009/08/05(水) 13:09:46 ID:???]
>757

普通、OWC考えないか?

773 名前:nobodyさん mailto:sage [2009/08/05(水) 21:03:42 ID:???]
>>757
つ jqGrid(JQuery Grid Plugin)
つ UltraWebGrid(NetAdvantage)

774 名前:762 mailto:sage [2009/08/06(木) 00:52:33 ID:???]
>>769
ハァ?
要件は全然変わってないだろ。馬鹿ですか?w

775 名前:nobodyさん mailto:sage [2009/08/06(木) 01:01:32 ID:???]
>見えてる部分だけデータを拾ってくるようにして、スクロールインした部分は随時データを拾ってくるように
って書いてなければ、勝手にそんな機能を実装してるわけで要件は変わってる


776 名前:762 mailto:sage [2009/08/06(木) 01:16:17 ID:???]
要件の定義と機能の設計の違いが分からない馬鹿しかいないの?

777 名前:nobodyさん mailto:sage [2009/08/06(木) 01:23:02 ID:???]
検索した時のスナップショットってのが必要かも知れんがな。
まあそれはおいといて早く作って見せてくれよ。
実装イメージでもいいぞ。


778 名前:nobodyさん mailto:sage [2009/08/06(木) 01:34:52 ID:???]
「要件」という言葉を、「(システム開発の)要件定義」のことだと、勝手に論理のすり替えして楽しい?

>>757
「詳細設計から参加だから、もうどうしようもなかった。」って記述してるんだから、
すでに詳細設計書が存在してるわけで、この場合の「要件」とは、
その詳細設計書を実現するのに必要な条件のことでしょうよ。

>よう‐けん〔エウ‐〕【要件】
>1 大切な用事。「―のみ記す」
>2 必要な条件。「教育者としての―を満たす」

779 名前:nobodyさん mailto:sage [2009/08/06(木) 01:47:15 ID:???]
そもそも、ブラウザの画面をスクロールさせて、コントロールが表示エリアに入ったことをフックできるイベントなんてあったっけ?
仮に出来たとしても、cssで非表示させてるだけならhtmlのファイルサイズの削減にはならないから軽くならないし、
ポストするデータサイズも同じだし、むしろスクロールする度にJavaScriptのイベントが発生するから、
ベタに表示させるより重くなるんじゃね?

ASP.NET AJAXでスクロールするたびに動的にコントロールを生成するのなら、
初期に表示されるコントロールが少ないからhtmlのファイルサイズの削減にはなるけど、
スクロールさせるたびにサーバに問合わせてコントロールを表示させてデータを表示させるなんて、
物凄く遅くなるんでないかな。
さらにデータが変更されたテキストボックスが表示エリアから消えた場合、
それを復元する術がないから、非表示になったテキストボックスのデータも
いちいちサーバにポストバックして保存しないといけない。
そんなことするなら、ベタに5万個のテキストボックスを表示させたほうが軽くないか?

780 名前:nobodyさん mailto:sage [2009/08/06(木) 02:03:42 ID:???]
簡単に実装するなら <iframe> を縦に並べてスクロールインしたときにページ単位でロードするだけでいい。
お前にも作れるよ。



781 名前:nobodyさん mailto:sage [2009/08/06(木) 02:16:18 ID:???]
複数行にまたがって変更する場合どうすんの?

782 名前:nobodyさん mailto:sage [2009/08/06(木) 02:21:31 ID:???]
でそれはべたに作るより速いのかね?


783 名前:nobodyさん mailto:sage [2009/08/06(木) 02:30:15 ID:???]
50ページに分割したら最初にロードするのは1000個だけですむ。
遅くなる理由が見つからない。

784 名前:nobodyさん mailto:sage [2009/08/06(木) 02:31:02 ID:???]
onscrollでスクロールされたイベントは発生するが、
どのコントロールが表示状態になったかは取得できないな
従って、絵に描いた餅

Flashかsilverlightなら可能だと思うが

785 名前:nobodyさん mailto:sage [2009/08/06(木) 02:35:15 ID:???]
>>783
単にページ分けでいいじゃん

786 名前:nobodyさん mailto:sage [2009/08/06(木) 02:43:39 ID:???]
全件表示か、ページ分けしての表示なら問題ないが
1つのページに複数のページが表示されるのは機能的に問題

データはいつ削除されるか追加されるかわからないんだから、
最悪の場合、50ページすべての行に同じデータが表示される可能性がある
そして後からデータが追加されて51ページ目が発生した場合にも対応できない。

787 名前:nobodyさん mailto:sage [2009/08/06(木) 05:47:17 ID:???]
ページ分割というか、まあ1画面に表示する項目を絞れば早くはなるだろうな
後はAJAXなりで適当にスクロールしてるように見せかければいい


>>786
そういったことを防ぐために排他制御って考え方があるんだが
機能的に問題かどうかは、ロックがどうなってるかによる
普通のWEBアプリに見られるような楽観的ロックなら問題かもしれないが
適切なロックがあれば問題ない

そう考えると元の設計は、もしかするとロックするから
全項目を1画面に表示したいのかも知れない...と思ってみたがたぶん違うなw


788 名前:nobodyさん mailto:sage [2009/08/06(木) 08:19:08 ID:???]
楽観的排他制御じゃないロックなんて普通は最後の手段に近いけどな。
まずはセッションとかでどうにかならないか考えるだろ。
あと数を絞れば速くなるに決まってるなんて言ってるのがいるが、
ホントに試してみたのかい?

789 名前:nobodyさん mailto:sage [2009/08/06(木) 08:21:18 ID:???]
例えば一気に端から端までスクロールしてもまともに動くのか、
実は最初から全部読んだ方がスムーズだったなんてことはないのか。

790 名前:762 mailto:sage [2009/08/06(木) 09:46:36 ID:???]
>>778
詳細設計から参加、つーたら、普通は詳細設計書を書くところから参加という意味だろ。
馬鹿なの?死ぬの?




791 名前:nobodyさん mailto:sage [2009/08/06(木) 13:11:14 ID:???]
いいこと思いついた。スクーロルバーは標準のスクーロルバーじゃなくて、ボタンか何かを
配置して、画面上には常に固定のコントロールを配置。
で、スクーロル下をボタンをクリックしたら
txtbox2の内容をtxtbox1に
txtbox3の内容をtxtbox2に
txtbox4の内容をtxtbox3に
txtbox5には新規にDBから取得した内容を新規にセット
ってやれば、画面上には常に一定数のコントロールしか表示されないし、PostBackerの処理
も簡単で一石二鳥じゃね?

792 名前:nobodyさん mailto:sage [2009/08/06(木) 14:01:14 ID:???]
>>790
突っ込まれると思ったw
詳細設計時に存在するには内部設計書だな。すまんかった。

つーかいちいちプログラムと関係ないところのツッコミしかできないのかよ?
吐いた唾を飲み込むの?死ぬの?
唾飲み込むぐらいじゃしなねーけどwww

793 名前:nobodyさん mailto:sage [2009/08/06(木) 14:14:19 ID:???]
>>787
Webアプリで1画面表示する間、ずっとデータベースをロックしろとでも?
この場合、いつ最下部のページを表示する画面にスクロールかわからないから、
ページをみてる間はずっとロックかけてる必要がでてくるわけだが。
他人が使う可能性や、ブラウザのページの切り替わりの
可能性なんて考えたら、そんなロックは実用上不可能だろ。

結局、重複させない、または表示途中で削除されたデータに対応するには
クライアント側(ポストバックかクッキー)かサーバ(セッション)でデータを持ち続け、
最終的に楽観的ロックで確認するしかない。

>>791
2万行あったら最下部までたどり付くのに2万回クリックすんの?ww
そうなると100行単位とかのページ単位で切り替わるほうがいいんじゃね?
それでも200回クリックじゃつらいから、10ページ前に戻る、10ページ後に進む的な
ページングのボタンを設置したほうがいいんじゃね?
そうなると>>768で答えは既にでてる。

794 名前: [―{}@{}@{}-] nobodyさん mailto:sage [2009/08/06(木) 15:33:22 ID:???]
ま、作る前にワーニング出さなかった君の負けだよ。

Ajax、XBAP、Silverlight、Flashなんでもいいから
ユーザビリティーの良いのに作り直す事だね。

795 名前:nobodyさん mailto:sage [2009/08/06(木) 15:40:39 ID:???]
キミちゃんと最初から読んでる?

796 名前: [―{}@{}@{}-] nobodyさん mailto:sage [2009/08/06(木) 15:51:43 ID:???]
>>795
ああ、読んでるよ。
設計書通りに作ったんだろ。

設計書見た段階でこりゃ動かんわってわかってたんなら
その段階で何かするべきなんだよ。

ちゃんとせんから余計な後戻りが発生するんだ。






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前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