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

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

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







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

前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