トップページphp
986コメント449KB

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

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2007/07/17(火) 23:49:46ID:pyJr9yIy
●過去ログ
Part1 - 【質問】 ASP.NETスレ 【議論】
http://pc5.2ch.net/php/kako/1040/10406/1040698263.html

【質問】ASP.NETスレ Part2【議論】
http://pc8.2ch.net/test/read.cgi/php/1111480331/

【質問】ASP.NETスレ Part3【議論】
http://pc11.2ch.net/test/read.cgi/php/1160355849/
0523nobodyさん2008/05/13(火) 05:27:32ID:???
>>521
フレーム使ってファイルを複数に分断するデメリットが大きい。
フレームで作るのは10年前の作り方という気がする。
商用Webサイトでフレームつかってるところがほとんど
なくなったの考えてみて。

まぁDataGrid使ってみれば分かるよ
結果のソート、ページングなどもできて便利。
0524nobodyさん2008/05/13(火) 10:28:06ID:???
521じゃないけど
でも実際はSEOの関係でフレーム非推奨になったわけで、主な用途はイントラなんで
代替となる機能がサクッと実現できないのが困る。
0525nobodyさん2008/05/13(火) 23:26:50ID:???
まぁ確かにそれもあるんだけど、それを言ってしまうと、
VB6の方が何でも出来てよくなかった?とかその辺の話にな(ry
0526nobodyさん2008/05/14(水) 21:34:17ID:???
>>522
クイックチュートリアル読んで、
コードビハインドの意味を考察してみるといいよ。

MS謹製の書籍でも.aspxにビジネスロジック書いてたりすることがあるが、
説明しやすくためであるのと実運用で使うのは意味が異なる。
0527nobodyさん2008/05/15(木) 00:50:53ID:???
>>522
できるよ。
以上。
↓次の方どうぞ
0528nobodyさん2008/05/15(木) 10:34:44ID:???
コードとビジネスロジックの分離。
3階層 とか ObjectDataSource とか でググれ

つづきはwebで・・・
0529nobodyさん2008/05/15(木) 21:21:11ID:???
現在VS2005で勉強がてらクライアントコールバックを勉強しているのですが、
これって基本的な動きはAjaxと同じですよね?

あとパフォーマンスの面で、

・ASP.net Ajaxをインストールして使用
・クライアントコールバックで代用


どちらの方が良いでしょうか?
0530nobodyさん2008/05/16(金) 10:25:05ID:???
・ASP.net Ajaxをインストールして使用
0531nobodyさん2008/05/16(金) 23:17:17ID:???
FormViewのHeaderTemplateとItemTemplateにそれぞれラベルなどをおく。
Headerの方のラベルにFormViewに関連付けたSQLDataSourceコントロールからバインド。
ItemTemplateの方のラベルに別のSQLDataSourceコントロールの値を設定したい。

FindControlでFormView.Row.Findcontrol(///)でラベルを参照して、設定してやろうとすると
うまく設定できたり、逆にRowが見つからない(=オブジェクト参照がry)のエラーでとまったりと
メチャクチャな動きをしやがる。

大体100回トライしてみて90回くらい失敗、残り10回くらい成功する。
ソースは全く書き換えてない。

似たような経験の片いらっしゃいません?
0532nobodyさん2008/05/16(金) 23:49:09ID:???
毎回同じデータが取られてる?
データ取りの処理に問題あるのでは?
0533nobodyさん2008/05/17(土) 00:05:07ID:???
>>530
ASP.net Ajaxをどうしてもインストールしてはダメな環境です。

因みに自分でASP.net+Ajaxの原始的な方法でAjaxを実装したのですが
飛ばし先のhoge.aspxのPage_Loadの中で
  Response.Write("呼出元のhtmlページに返す文字");
と記述すると呼出元のページではResponse.RequestTextには
<!Document*** という余計な文字列も返されてしまうのですが
何か良い方法はありますか?
私は、JavaScriptで次の通り「」の中の部分のみを切り取って出力
しています。
そもそも、この様な方法でも問題無いのでしょうか?

「 呼出元のhtmlページに返す文字 」 <!Document ***
0534nobodyさん2008/05/17(土) 00:20:53ID:???
Response.Write("呼出元のhtmlページに返す文字");
Response.End();
0535nobodyさん2008/05/17(土) 00:28:21ID:???
>>534

試してみます!!

あざぁーっっっっっっっす!!








0536nobodyさん2008/05/17(土) 06:22:24ID:???
>>514
自分も昔ここで同じ質問したことあるんでそのときの経験談書きますね。
まぁ既に出てる話ですので参考程度に。

1.フレームはとにかく推奨されない
2.フレームなしに書き直したところ意外に利便性は変わらない
3.バグが発生したとき対応にすごく困る状況になりやすい

2と3が主な理由ですね。
0537nobodyさん2008/05/17(土) 13:25:15ID:71sy1o27
以下の様なことをやろうとしています。

@リクエスト 
→セッション新規作成、セッションIDの名前のファイル作成

Aリクエスト
→セッションがすでに存在すれば、
 セッションIDの名前のファイルに情報を書き込み、サービスにも利用

Bセッションタイムアウトなどによりセッション破棄
→セッションIDの名前のファイルを削除

で、Bをどのように実装すればよいかで困っています。

3のセッション破棄を検知したいのですが、
global.asaxのSession_Endでは
破棄されるセッションIDが取得できないようですし。

何かいい方法ありませんか?
0538nobodyさん2008/05/17(土) 19:55:36ID:???
自分の目が節穴で無ければ、this.Sessionで見えてるこのオブジェクトはなんなのだろう。
0539nobodyさん2008/05/18(日) 23:57:40ID:???
そうやって決めうちで削除したり、何かを作ったりするのはやめたほうがいい
ClassにPage.Sessionを渡して、あとはClassに処理させる。

Classでは、Page.Sessionのindexをなめて作成したファイルと比較し、
新しいSessionObjectがあればファイル作成、
なければ削除という処理を行う。
これをページを作成するごとに繰り返せばok。
0540nobodyさん2008/05/19(月) 00:20:18ID:???
>>536
あざーす。参考にさせてもらいます。
0541Ajax 12008/05/20(火) 21:54:07ID:???
Ajaxの勉強をしているのですが@ITを参考に次の様にコードを入力してVS2005にて
実行をしたところエラーが出てしまいます。どうすればAjaxを実行出来ますか?
(Ajax.dllは参照済みです。)
[ AjaxXML.aspx ]
<!--
AjaxXML.GetMessageOfTheDay(GetMessageOfTheDay_CallBack);
function GetMessageOfTheDay_CallBack(response)
{
alert(response.value);
}
-->
</script>
[ AjaxXML.aspx.vb ]
Imports Ajax
Partial Class AjaxXML
Inherits System.Web.UI.Page
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Ajax.Utility.RegisterTypeForAjax(GetType(AjaxXML))
End Sub
<Ajax.AjaxMethod()> _
Public Function GetMessageOfTheDay() As String
Return "Experience is the mother of wisdom"
End Function
End Class
0542Ajax22008/05/20(火) 21:55:07ID:???
[ web.config ]
<system.web>
<httpHandlers>
<!-- Register the ajax handler -->
<add verb="POST,GET" path="ajax_/*.ashx"
type="Ajax.PageHandlerFactory, Ajax" />
</httpHandlers>
  ・・・
[ エラー ]
Microsoft _JScript 実行時エラー:'AjaxXML'は宣言されていません。
0543nobodyさん2008/05/24(土) 00:42:12ID:???
これまでWindowsアプリをメインに作って来たのですが、私一人しかいない現場で
私がASP.netアプリを作る羽目になりました。

作業内容として只単純に、データの照会(取引の一覧を取得し画面に表示するだけ)
を行うだけなのですが、私の作成した画面のレイアウトは
 ・Label
 ・Table
コントロールを***.aspx画面に張りつけてその項目に値をセットしているだけなのですが
この方針って間違ってますか?

スタイルシートの知識とかは無いので.NETのデザイン画面で適当にデザインをして
(スタイルシートなんて使わず)ドラッグしてピヨーッと伸ばして行・列幅の調節
をしています。(html / StyleSheet / JavaScriptについてはアマチュアレベル)

ASP.net(.NetFrameWorkについては結構詳しいです。)に関して実務経験豊富な
ベテランの方如何でしょうか?ご意見を聞かせて下さい。
0544nobodyさん2008/05/24(土) 01:18:22ID:???
>>543
一覧表示に適したコントロールならGridViewがある。
GridViewは表示対象をDataSetまたはDataTableオブジェクトとして扱って
バインドさせるだけでおk
0545nobodyさん2008/05/24(土) 12:46:33ID:???
と、言うかその程度なら別にASP.NETとWindowsFormで違いないだろ。
0546nobodyさん2008/05/24(土) 12:49:50ID:taKpBKe5
GridViewでヘッダの表示を固定することってできますか?
エクセルの「ウィンドウ枠の固定」みたなやつで、沢山の行があって
下にスクロールしてもヘッダだけは画面上に表示されるようにしたいのです。
やり方を知っていたら教えてください。
0547nobodyさん2008/05/24(土) 13:42:15ID:???
CSSで出来る。ググレ
0548nobodyさん2008/05/24(土) 18:41:07ID:???
上でフレームの話が出てたけど、フレームの代わりにdivでスクロール表示させて表示したいけど、
ウィンドウいっぱいに表示するのが、IE6だとうまくできません。参考になるサイトありませんか。
0549nobodyさん2008/05/25(日) 16:09:24ID:???
>>548
>>228と同じ内容なら>>229
「Repeater」コントロールで<div style="float:left;">
0550nobodyさん2008/05/25(日) 19:56:25ID:BMpN20e7
エクセルとかPDFをサーバー側で作るとして、それをダウンロード画面に表示するのはどやってるの?
「保存」とか「開く」とか出る画面を出したいけど
0551nobodyさん2008/05/26(月) 00:08:03ID:???
>>550
Response.WriteFileで本当ならOK。
だけどちょっと大きなファイルを扱おうとするとエラーを吐きやがります。
なので下記ページのサンプルコードのような書き方をすれば良いかと。
http://support.microsoft.com/kb/812406/ja
05525502008/05/26(月) 21:04:10ID:4YPDbsMz
>>551
あざーす。
ちなみに、これですと物理ディスク上のファイルをResponse.OutputStream.Write()で書き込みしてますが、
物理ディスク上のファイルでないと無理でしょか?たとえば、エクセルなどは動的に作ったらディスクに保存せず
そのままクライアントに流したいのですけど
05535502008/05/26(月) 23:03:08ID:4YPDbsMz
自己レスです。
.NETではファイル生成しなければ無理みたいですね。失礼しました。
0554nobodyさん2008/05/26(月) 23:20:56ID:???
釣りかマジかどっちだ??
05555502008/05/26(月) 23:30:41ID:???
え?
マジでしょう。スプレッド.NETとかっての使うのは無しの場合では、無理っぽい(らしい)けど、方法ありますか?
0556nobodyさん2008/05/26(月) 23:50:17ID:???
言ってる意味多分わかった気もするけど>>552の日本語が悪いだろ
05575502008/05/27(火) 00:51:48ID:???
すいませんです^^;新米なので
05585512008/05/27(火) 01:25:43ID:???
>>550
Excelデータのバイト配列が作れる状況ならファイル生成なんて不要。
要はResponse.OutputStreamに必要なデータをWriteできれば良し。
そのデータは当然ファイルから作っても良いし動的に作っても良いわけで。

自分の経験としてはウェブサービス経由で取得したExcelデータを
ウェブサーバ上ではファイルを作成せずに
そのままクライアントに返してました。

ただ,どうやってExcelデータを動的に作成するのか知らんけど
バイト配列を作成する手っ取り早い方法として
一旦保存してFileStreamを読むことになることはあるかもしれん。
0559nobodyさん2008/05/27(火) 11:19:57ID:???
GridViewの内側の罫線はデザイナから変更できないのでしょうか?
BorderColorプロパティでは外側しか変更されないのですが…
0560nobodyさん2008/05/27(火) 11:34:28ID:???
質問です。
FormViewをHTML展開したときに、デフォルトでは
tableが構築されるけど、これを<p>とか<div>にしたい場合は
どこをいじればいいのでしょう?


>>559
GridViewのGridLinesプロパティとか?
05615592008/05/28(水) 10:28:14ID:???
>>560
ありがとうございます。
解決しました。
0562nobodyさん2008/05/28(水) 16:58:40ID:BjXoHKSe
phpからasp.netに移行しようと思って昨日から勉強しています。
あるサイトのサンプルコードを見て疑問に思ったのですが、

<form runat="server">
  <asp:ListBox id="lb_Address" runat="server">
    <asp:ListItem>東京</asp:ListItem>
    <asp:ListItem>神奈川</asp:ListItem>
    <asp:ListItem>千葉</asp:ListItem>
    <asp:ListItem>埼玉</asp:ListItem>
  </asp:ListBox>
  <asp:TextBox id="tb_Name" runat="server" />
  <asp:Button id="btn_Submit" Text="Submit" runat="server" />
</form>

なぜこのようにわざわざaspの独自タグ?(サーバコントロールと書かれていましたが)で記述するのでしょうか?
phpからきた自分としては、htmlで出来る部分はhtmlでやって、
プログラム的な部分だけC#なりVB.NETなりで記述するものなのでは?と思ってしまうのですが、
これはhtmlで<input>等と直接記述するのと比べて何か意味があるのでしょうか?
馬鹿っぽ質問で申し訳ないですがよろしくお願いします。
0563nobodyさん2008/05/28(水) 17:09:52ID:???
>>562
<asp:....>の部分はIISで適当なHTMLタグに置き換えられて
ブラウザに送信される。
<aspの部分をそのまま送ったらブラウザが理解できない。

asp.netはブラウザの種類を判別して、最適なタグに
置き換えてくれるのだ。
05645622008/05/28(水) 17:32:16ID:BjXoHKSe
>asp.netはブラウザの種類を判別して、最適なタグに
>置き換えてくれるのだ。
そうだったんですかー
納得できました。どうもありがとうございます。
0565nobodyさん2008/05/28(水) 21:32:20ID:HG8kee+E
>>562
htmlで出来る部分はhtmlでやって、プログラム的な部分だけC#、とは言っても、
リストボックスを例に出すぐらいだから、ユーザの選択内容をプログラム側に渡すでしょ?
PHPで言うところの$_POST["lb_Address"]みたいにさ。

ここで$_POSTと同じ役割の機能としてASP.NETでは、Request.Form["lb_Address"]と書けば、
リストボックスの選択内容をサーバ側コードで一応取得できるんだけど、これはASP.NETの
標準的なプログラミングモデルではやってはいけない。
代わりに、lb_Address.SelectedValueみたいな感じで取得する。

逆に、リストボックスのどれかの値をあらかじめ選択した状態のページを生成する場合、
PHPならprintでselectとoptionタグを書き込むだろうけど、
ASP.NETでは同じようにResponse.Writeというもので一応直接htmlタグを出力することも出来るが、
やっぱり普通はやっちゃいけない。代わりにthis.lb_Address.SelectedIndex = 3みたいな感じでセットする。


PHPやASPからだと、そのへんの考え方を理解するのに少し時間がかかるかも
0566nobodyさん2008/05/28(水) 21:36:52ID:???
コニツワ!

ASP.NETに、PortalAPI(JSR168風な)ってあるん?
05675622008/05/28(水) 22:04:30ID:???
>>565
ご丁寧にどうもありがとうございます。
phpユーザの為に似たような書き方もできるようにしてるけど推奨されないということですかねー
少し考えていた感じとは違うので時間かかりそうですが、
1からやるつもりで頑張っていきたいと思います。
0568nobodyさん2008/05/29(木) 00:51:41ID:???
とどのつまり、オブジェクト指向ってことです
0569nobodyさん2008/05/31(土) 03:24:26ID:???
DBのフィールドを見て処理を分岐させるために、
SqlCommand.ExecuteScalar()で値を取ってきているのですが
フィールドがNULLの場合もあります。
こういう場合はどのような型で結果を受けるべきなのでしょうか?
Nullable(Of Integer)では落ちました。
DBNULLとVBのNothingは違うということなのかな…。

今はとりあえずObject型で受けてから、IsDBNull()で聞いて分岐させてます。
0570nobodyさん2008/05/31(土) 11:45:42ID:???
>>569
DBNull.Value
0571nobodyさん2008/05/31(土) 17:24:10ID:???
ありがとうございます。
0572nobodyさん2008/06/01(日) 18:04:07ID:???
排他制御について質問です。
一覧表示->更新処理が行える画面なのですが、
ユーザーAとBが同時に一覧を取得して、先にAがあるレコードを更新した場合
Bはもう一度一覧を取得し直さないと更新が行えないようにしたいです。

現在はSqlCommandのTransactionを利用して以下のような流れです。
1.更新前処理で更新対象行のレコードから、全項目を取得
2.取得した項目をキーとしてSELECT実行
3.存在ありならば更新がかかっていないとみなしてUPDATE->Commit
 存在なしならば他から更新されたとみなしてRollback->更新を促すメッセージ表示

GridViewのUpdateメソッド、およびテーブルにDateTimeの列を追加等が
出来ない環境なのですが、他に良い案や定石などありますでしょうか。
なお、同時更新は滅多に起こることのない環境です。
0573nobodyさん2008/06/01(日) 21:17:02ID:???
>>572
レコードにバージョンを表すフィールド(TimeStamp, 最終更新日時, あるいはただの連番)を追加するか、
全フィールドを比較するか以外に、オプティミスティック同時実行制御を行う方法なんてないんじゃない?

GridViewのUpdateメソッドも、デフォルト状態では結局のところ全フィールドの比較を内部的に実行していたと思う

どうしてもそのテーブルを変更できないなら、別テーブルに同じ主キー貼ったものを切り出して、バージョンを表すフィールドを追加して、更新系の画面では元のテーブルとバージョンテーブルをチェック&更新するようにするとか
0574nobodyさん2008/06/02(月) 00:00:19ID:???
SELECTで取得→ハッシュで比較→COMMIT/ROLLBACK
05755722008/06/02(月) 01:51:03ID:???
>>573,574
回答ありがとうございます。別テーブルに切り出すのは良い案かもしれません。
今はSqlCacheDependencyを利用した変更通知を探っています。
MSDN見ながらのテストでは変更通知が連続してきたり、
逆に来なかったりでズタボロですが…。
0576nobodyさん2008/06/02(月) 03:34:54ID:???
おいおいどこに行く気だよ
前列比較のがましじゃないか?
0577nobodyさん2008/06/02(月) 10:07:07ID:kZgOWgo+
ブラウザ上でユーザに編集はさせたくないけど、載ってる値をpostしたときに
サーバへ飛ばすTextBoxってどのような設定にすればいいですか?
ReadOnlyをTrueにしたら値がサーバにやってこなかったです。

都合でLabelは使えません(JavaScriptでも編集したいため)。
別途hiddenフィールドを作るしかないですかね。。。
0578nobodyさん2008/06/03(火) 16:11:36ID:???
ASP.NET 3.5 のレンタルサーバって国内はまだ無いですかね?
0579nobodyさん2008/06/03(火) 17:39:51ID:???
自宅で開業して人柱erになる
0580nobodyさん2008/06/04(水) 00:19:04ID:???
>>577
エスパーじゃないので目的がわからないけど,
クライアントから送信されるデータを信用しろというのは無理な相談だし,
普通にセッション変数を利用すれば解決する問題だったりしない?
05815802008/06/04(水) 00:22:51ID:???
JavaScriptの文字が見えない馬鹿=自分。
0582nobodyさん2008/06/04(水) 01:13:59ID:???
>>580
てことはJavaScriptで使えれば、Labelでいいんじゃね
var elm = document.getElementById("<%=Me.Label1.ClientID%>");
0583nobodyさん2008/06/04(水) 05:17:43ID:???
ASP.NETって初心者には敷居高いですよねー
最悪でもVisualBasic使いこなせるレベルでないと、入れない気が。

ココから始めると結構分かりやすいぞ、みたいな、超初心者でも
コツコツ学んでいける方法や入口を教えて頂けると助かります。
宜しくお願い致します。
0584nobodyさん2008/06/04(水) 05:57:30ID:???
>>583
GUIでなんでも済ませられるし(細かいところはソース直書きだけど)、かなり楽だと思うよ
でもイベントとかプロパティとかVB扱ったことないと、戸惑うことが多いかも

いきなりASP.NETをするよりVB2005とか2008の参考書買って勉強した方がいいかも
0585nobodyさん2008/06/04(水) 18:23:30ID:???
>>583
パソコン教科書 Microsoft Visual Web Developer 2005 Express Edition入門
がオヌヌメって書こうと持ったら、すでに2008のがでてますね。
2005の方しか内容知らないけど、初心者のオイラにはすんげー役に立ったよ。
05865832008/06/05(木) 00:38:53ID:HpXjKLmr
>>584
>>585
有難うございます。
「10日でおぼえるASP.NET 2.0」って本を買ってみたんですが、
本を見ずにもう一度同じ様に書けるか、となると、もうさっぱりorz

コツコツやってみます。
0587nobodyさん2008/06/05(木) 14:01:10ID:???
VS2008std ターゲット.net3.5で開発しています。

新しいプロジェクトで 「ASP.NET Web アプリケーション」を作成したのですが、

デザインモードに切り替え、ツールボックスからLabelをD&Dしたのですが
ドロップできません。(ドロップ無効のカーソルに変わる)
ソースに直に記述 <asp:Label〜 してもデザイナ上ではエラーになります。
しかし実行は可能でブラウザでも表示されている。

ファイル→新規作成→Webサイトの「ASP.NET Web サイト」でプロジェクト?を作成すると
Labelなどの標準コントロールがドロップできます。

「Web アプリケーション」プロジェクトでは標準コントロールは使えないのでしょうか?
0588nobodyさん2008/06/05(木) 14:19:50ID:???
>>587
俺の所では新しいプロジェクトから
ASP.NET Webアプリケーション
選んでも問題なくラベル貼れるけど。
0589nobodyさん2008/06/05(木) 14:59:51ID:???
>>588
えぇっ!
じゃぁ環境の問題なのか・・・

なにか悪いことしたかなぁ
VS2005も共存してるのがまずいのかなぁ

とりあえず再インストールしてみます。
05905872008/06/05(木) 16:04:17ID:???
原因がわかりました。

WebApplicationを作成したフォルダ名がまずかったみたいです。
C#Testフォルダに作成するとドロップできないみたいです。
#という文字がいけないのかもしれません。

本当にありがとうございました。
0591nobodyさん2008/06/05(木) 16:32:40ID:???
>>582
ASPのラベルってHTMLに展開されると
ただのインライン要素(<span>)とかになっちゃうじゃないですか。

その場合、JavaScriptでテキストを変更できますか?
InnerHTMLとか試してみたんですが、IEはできるけどFirefoxでは
できなかったりで、結局諦めちゃったんですけど。
0592nobodyさん2008/06/05(木) 17:47:11ID:???
css設定して、これでFireFoxでもおkwww って思ってたら
Mac標準のSafariで全然駄目・・・ menuコントロールつかえねー orz
0593nobodyさん2008/06/06(金) 13:19:55ID:???
>>591
DOM。
0594nobodyさん2008/06/06(金) 18:33:09ID:???
郵便番号を入れると住所が途中まで(市町村くらいまで)出てくるような
ユーザ登録ページがよくありますが、あれは何らかのパッケージプログラム
のようなものを利用しているのでしょうか?

それともSQLサーバーとかに全部の郵便番号と住所を取り込んでいるのでしょうか?
0595nobodyさん2008/06/06(金) 19:52:40ID:???
大抵、郵便局が作ってくれるCSVをまんまDBに取り込んでるだけじゃないの?
0596nobodyさん2008/06/07(土) 00:05:51ID:???
メール配信システムを作っているんだけど。配信先リストは登録画面で配信情報を入力するときfileUploadコントロールを使いCSVで読み込む。
画面は 登録画面→確認画面→登録というようにして画面はMultiViewを使いたい。
MultiViewを使えば画面間の情報の受け渡しは楽なのだがfileUploadで読み込んだリストはどうやって保持するか、途中で処理をやめてもゴミデータが残らない方法ってない?
0597nobodyさん2008/06/07(土) 04:14:30ID:???
途中で止まって困るならトランザクション使えばいいんじゃまいか?
0598nobodyさん2008/06/07(土) 11:14:01ID:???
>>597 参考ページ無いい?
0599nobodyさん2008/06/07(土) 14:32:51ID:???
>>594
ウェブサービス
0600nobodyさん2008/06/07(土) 15:50:23ID:???
>>596
ViewStateで保持すればいいので?
0601nobodyさん2008/06/07(土) 16:25:08ID:???
>>599
もうちょっと詳しく教えてください。
どこかが提供しているwebサービスを使うという意味ですか?
06026012008/06/07(土) 16:39:50ID:???
601取消。
検索したら郵便番号のWebサービスはたくさんあるようでした。

郵便番号データベースは12万件のレコードがあるらしい。
普通のasp.netのDB処理するとパフォーマンスが心配。

こういう大きなテーブルを高いパフォーマンスで処理するには
どんな技がありますか?
サーバ起動時に予めメモリ上のDataSetに読み込んでおいたら
激速になりそうですが、そういうことはできますか?

http://www.post.japanpost.jp/zipcode/dl/kogaki.html
0603nobodyさん2008/06/07(土) 16:42:28ID:???
12万件程度なら全然大きくない。
0604nobodyさん2008/06/07(土) 17:07:49ID:???
むしろ小さいね
0605nobodyさん2008/06/07(土) 17:08:30ID:???
>>602
つ「適切なINDEX作成」
つ「実行計画確認」
0606nobodyさん2008/06/07(土) 18:29:25ID:???
>>602
Webサービスを利用するならDB処理なんて必要ないわけで。
(自前でDB用意するなら指摘されてるようにインデックスを作ることになるかと。)
0607nobodyさん2008/06/07(土) 23:26:09ID:???
>>603-606
ありがとうございます。
割とシンプルな処理のようなのでSQLにインポートして
インデックス作ってみます。
0608nobodyさん2008/06/08(日) 00:10:11ID:???
AjaxZIP使ってサーバサイドから分離しちまうのが一番手軽では

ってそれだとスレ違いか
0609nobodyさん2008/06/10(火) 15:32:26ID:???
社外へほいほいアクセスできる環境も少ないしね。
ってイントラの話じゃない?
0610nobodyさん2008/06/10(火) 21:50:34ID:???
ASP.NETってIFRAMEで別のサイトを表示とかしても問題ないのでしょうか?
0611nobodyさん2008/06/10(火) 22:52:01ID:???
ほとんどプログラム言語に触れたことが無くて、
2週間前までASP.NETが何なのか知らなかった状態から
言語はC#で、という縛りもつけて
「やれ」という指示で課題に取り組み始めたんですがさっぱり。

参考書籍を買おうかと思っているんですけど
ASP.NETの参考書でオススメのものってありますか?
0612nobodyさん2008/06/11(水) 01:07:01ID:???
Visual Studio 2005によるWebアプリケーション構築技法
0613nobodyさん2008/06/11(水) 08:31:41ID:???
MovableTypeのように、
ページやコントロールで出力されるHTMLをファイルに出力したいのですが
出力されるHTMLはどうやれば取得できるのでしょうか?
0614nobodyさん2008/06/11(水) 22:38:50ID:wlI2c4q6
質問よろしいでしょうか。
Visual Web Developer 2005 Express Edition でウェブページ作成の勉強をしてます。
そこで、ぐぐってもわからない問題が出てきました。
データベースSQLserverの情報をページ上に表示するのに、
DataSetのTableAdapter、ObjectDataSource、GridViewを用いて表示しています。
表示の際、検索で表示させるためにTableAdapterで検索パラメータを持つクエリを追加し、
ObjectDataSourceでそのクエリを選択してGridViewに表示させようと試みました。
そこでObjectDataSourceでクエリを設定する時に、パラメーターソースの選択の設定を
するのですが、そこのDefaultValueの設定を何も設定しない場合、デバッグでのページ表示
でエラーが起こってしまいます。
エラーについては
「System.ArgumentNullException: 値を Null にすることはできません。」
と表示されます。

どなたかこのエラーの原因についてわかりませんでしょうか?
ちなみに色々試してみると検索する項目がint型の場合はエラーが起きず、DefaultValueを
設定していなくても、値が0で検索され表示されるようです。
0615nobodyさん2008/06/12(木) 05:47:44ID:???
>>614
デフォルト値をブランクにしないで、
何か適当に設定すればいいんじゃね?
0616nobodyさん2008/06/13(金) 10:47:27ID:???
XMLファイルをDataSetに読み込んで、加工(アンカーをつけたり)して
ページに表示しているサイトなのですが、
アクセスが集中(1秒間に10〜20アクセス)すると使用メモリが極端に大きくなり
しまいにはすべて403エラーになってしまいます。

こういう場合、どのように回避すれば良いでしょうか?

そのページのアンカーからはパラメータを渡して
また同じページにリンクしています。

検索エンジンが来るとサーバが落ちてしまい、
困っています。
0617nobodyさん2008/06/15(日) 00:28:40ID:???
あのさー、せめてどの程度のデータをDataSetに入れてるとか、
アンマネージドなリソースの有無とか説明してくれないと・・・
0618nobodyさん2008/06/15(日) 00:49:01ID:???
>617が言うとおり状況がよくわかんねえけど、
DataSetをキャッシュするかページをキャッシュするかどっちかしたら。
06196162008/06/15(日) 12:10:06ID:???
>>617-618
すみません、DataSetに読み込んでいるデータ量は200KB程度のXMLです。
アンマネージドのリソースはありません(DBなし)。

ブログのように毎日の報告をリンク付きで表示していて、
その固まりを10日分表示しています。

キャッシュですね、考えてみます!
ありがとうございました!
0620nobodyさん2008/06/17(火) 19:41:06ID:???
FormView の ItemTemplateにDropDownListを入れて
そのDropDownListに DataSourceの指定とかしたいんですが出来ません。

((DropDownList)HeaderFormView.FindControl("List")).DataSource = DS
((DropDownList)this.HeaderFormView.Row.FindControl("List")).DataSource = DS

上記2個試しましたが、オブジェクトがインスタンスされていません。 とエラーになります。
FormView の ItemTemplateはどの時点で有効になったりとか調べたり出来ませんか?
06216202008/06/17(火) 21:19:54ID:???
自己解決 4時間もかかったよ・・・
FormVireのItemTemplateはPageLoadではまだいないみたいで
使いたいコントロールのprerenderでDataSourceを指定したらうまくいきました。

まだまだ知識が足りないと実感した日だった・・・
0622nobodyさん2008/06/18(水) 20:28:21ID:HnUDlBar
開発環境から運用環境へWebサイトの発行をしました。
ところが運用環境ではGACの参照設定ができてないようです。
Web.configに記述はあります。
運用先環境にこの参照設定を追加するにはどうしたらいいでしょうか。エスパーしてください。

追加したいのは以下の参照
<add assembly="Microsoft.VisualBasic, Version=8.0.0.0, Culture=neutral, PublicKeyToken=xxxxxxxxxxx"/></assemblies></compilation>
0623nobodyさん2008/06/18(水) 20:32:52ID:???
【環境】
ASP.NET
.NET Framework2.0
OS:Windows2003R2
IIS:6.0
です。
■ このスレッドは過去ログ倉庫に格納されています