【質問】ASP.NETスレ Part4【議論】
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2007/07/17(火) 23:49:46ID:pyJr9yIyPart1 - 【質問】 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/
0002nobodyさん
2007/07/17(火) 23:50:28ID:pyJr9yIyhttp://www.microsoft.com/japan/msdn/asp.net/
MSDN
http://www.microsoft.com/japan/msdn/
Visual Studio 2005 Express Edition
http://www.microsoft.com/japan/msdn/vstudio/express/
ASP.NET Web Matrix Project
http://www.microsoft.com/japan/msdn/asp.net/webmatrix/
Microsoft ASP.NET クイック スタート チュートリアル
http://ja.gotdotnet.com/quickstart/aspplus/default.aspx
0004nobodyさん
2007/07/18(水) 01:17:05ID:???>>エラーチェックって皆サーバでやるんすか?
>普通はそうするわな
>
>例えるなら、東口、西口、正面口に入り口がある空港で正面でしか持ち物検査しなかったら、
>幾ら口すっぱく正面口から入れと言い聞かせても東口、西口使う馬鹿が居る。
>だから飛行機に搭乗するには絶対通らなければならない場所で持ち物検査するのと同じ。
>
>>ユーザーがノートPC+Winカードで利用するので
>>クライアントで出来ることはクライアントに任せたいと考えています。
>意味不明。回線が細くて、処理速度が遅いって言うのが理由なら
>なおさら、サーバー側で処理してあげるべきだと思うが。
>998 名前: nobodyさん 投稿日: 2007/07/17(火) 23:47:57 ID:pyJr9yIy
>サーバ側でチェックしてNGだった場合
>再描画されちゃわないんすか?
前スレの最後の質問の件なのですが、サーバで入力値のチェックをやるのが一般的なのはわかりました。
入力値チェックでひっかかった場合、メッセージボックスなどでユーザーに通知しますが
その後再描画処理が走らないのでしょうか?
Page_Loadイベントなりでメッセージボックスを表示して、そのまま処理を中断し
再描画を止めることは出来るのでしょうか?
ページのサイズが大きい場合、クライアントでチェックすれば
再描画はしないので良いのでは?と思っていました。
0005nobodyさん
2007/07/18(水) 01:27:49ID:???0006nobodyさん
2007/07/18(水) 03:41:17ID:???Response.Writeがどうとかチェック用JavaScriptがどうとか言ってるけど
ASP.NETならペタペタコントロールはりつけてやるのが楽なんじゃないの?
0007nobodyさん
2007/07/18(水) 09:23:25ID:???この手の質問する奴って大抵「クライアントの為に」って
言葉使うんだけど実際には「自分の為に」なんだよな。
エラーチェックに関しても、クライアント側とサーバ側両方で
対応しとけば「クライアントの利便性とデータの正確性」両方
とも網羅できるのに。
0008nobodyさん
2007/07/18(水) 11:03:13ID:???0009nobodyさん
2007/07/18(水) 12:03:56ID:???< > ← このリンクにマウスを合わせたときに「前月に移動」「来月に移動」という
ツールチップが表示されます。
各日付のツールチップは英語化できたのですが、「前月に移動」「来月に移動」を英語にすることは可能でしょうか?
http://forums.microsoft.com/MSDN-JA/ShowPost.aspx?PostID=324245&SiteID=7
0010nobodyさん
2007/07/18(水) 17:27:48ID:???共通オブジェクトのみを集めたプロジェクトを作成し、画面とかカスタムコントロールとかクラスとか
いろんなプロジェクトで使えるようにしたのですが、何故かカスタムコントロールだけ別プロジェクトから利用できません。
「仮想パス '*/test/test1.ascx' がほかのアプリケーションに割り当てられていますが、これは許可されていません。」
というエラーが発生してしまいます。
プロジェクトをまたがるカスタムコントロールの使用は出来ないのでしょうか?
共通部品化出来れば便利なんだけど、そういう考えは普通じゃないのかな・・
0011nobodyさん
2007/07/18(水) 22:04:51ID:???残念ながら不可能だと思われます。
「共通で利用する部品を作りたい」という目的は
カスタムサーバーコントロールを開発することで達成できますが,
ほんのちょっぴり敷居は高くなります。
お互いがんばりましょう。
>共通部品化出来れば便利なんだけど、そういう考えは普通じゃないのかな・・
普通です。ただしUIが関係する部品はビジネスロジック層以降の共通化に比べるとメリットが小さいと思います。
0012前スレ986
2007/07/19(木) 11:40:25ID:???教えていただいたことを参考に、ヤフーの wsdl ファイルの中身の属性などを
いろいろ変更してみたりしたんですが、wsdl.exe だとどうしてもちゃんとした
プロキシクラスが生成されませんでした。
wsdl ファイルの最後に gsoap とあったのでそれを試してみたところ、
単数でしか受け取れなかったものを、しっかり複数で受け取れるような
クラスを生成してくれたので、こちらを使ってみることにします。
どうもありがとうございました。
SOAP を使うと互換性を気にせずに簡単に組めるかと思ったんですが、
そうでもなかったみたいですね><
0013nobodyさん
2007/07/19(木) 22:07:16ID:t+6ymqWH例えば、AタグのHREFにURLを指定しますが、そこのパラメータにRequestで受け取った値をセットしたいのです。
Aタグをサーバコントロールにして、csでセットするというのは出来るのですが、aspxで出来たら手っ取り早いので。。
例)
<a href="top.aspx?id=<% Response.Write(Request["id"]); %>">Top</a>
0014nobodyさん
2007/07/20(金) 17:13:03ID:dtQ5f3a5Web.configじゃなくて他のファイルを読ませたい場合はどうしたら良いでしょうか?
Web.configってプロジェクト単位で出来ちゃうから、色んなプロジェクトで共通につかっているファイルを読ませたいんです。
0015nobodyさん
2007/07/20(金) 22:09:50ID:???構成ファイルの階層と継承の仕組みを考えると,
システム共通の設定はmachine.configで定義するだけで良いし
関連アプリケーション共通の設定ならフォルダ構成をきちんと管理すれば良い。
0016nobodyさん
2007/07/21(土) 10:43:46ID:u6ArajqG<%= Request
0019nobodyさん
2007/07/21(土) 16:36:49ID:LDWi9U5ySessionモードはStateServerを使用しています。
すべてのセッションがタイムアウトしているかどうかを監視するサービスを作る必要があるのか
と思ったのですが
簡単に実現する方法はありますでしょうか?
アプリケーション上ですべてのセッションの状態を見ることはどのようにすればできるでしょうか?
HttpApplicationからは自分のセッションしか見れないように見えました。
0020nobodyさん
2007/07/22(日) 00:52:26ID:zWRToYk90021nobodyさん
2007/07/22(日) 09:42:13ID:???VisualBasic(VisualStudio).NET 2003 = 7.1
VisualBasic(VisualStudio).NET 2005 = 8
VisualBasic(VisualStudio).NET 2008 = 9
わからなかったら検索する癖つけような。
WikiPediaに載ってた。
0022nobodyさん
2007/07/22(日) 12:41:22ID:???クリックすることでそのヘッダでソート出来るというものがありますが
これてクリックしたイベントでSQL発行してソートさせてるんでしょうか?
それともDataTableのメソッドでソート処理が出来るのでしょうか?
0023nobodyさん
2007/07/22(日) 15:06:21ID:???DataTable(DataView)を並び替えようが
SQL発行しようが好きなようにやればよい。
0024nobodyさん
2007/07/22(日) 21:07:17ID:???そもそも、ASP.NETに関わらず自分のセッション情報以外に
アクセスできるのはセキュリティ的に問題があるので
実装されている方が珍しいと思います。
とりあえず、「すべてのセッションがタイムアウトしているか」なら
SessionモードはStateServerでも確かApplication_OnEndが動いたはず。
コレで代用できるのなら利用してみたら。
あとは、
「すべてのセッションがタイムアウトしているかどうかを監視するサービス」
と言うのをどう言う風に想定してるのか分からんが、
セッション情報をDBにでも書き出しておいて作れば良い。
ASP.NET パフォーマンス カウンタでアクティブなユーザー セッション数が
取得できているから、外部から取得する方法もあるかも知れんが。
http://technet2.microsoft.com/WindowsServer/ja/Library/58de2498-d7d7-4557-ae2f-e6435aac344b1041.mspx?mfr=true
0025nobodyさん
2007/07/22(日) 22:12:21ID:???.NETを使わないとそろそろ…と思いいじりはじめたところ
初歩的なWEBフォームを.NETで作ろうとして悩み中。
レガシーASPでは、
入力画面(html)→入力値のチェック&確認画面の表示(ASP)→DBへ入力値の登録&確認メール送信&登録完了画面の表示(ASP)
という感じでチマチマやってたのを
ASP.NETじゃどうやりゃいいんでしょか?
ググってみたものの、案外そういうもののサンプルが見つかりません。
もっと高度そうなスケジューラとか在庫管理とかならあるんですが、
なにか手がかりあれば、教えていただけると助かります。
0026nobodyさん
2007/07/22(日) 22:54:06ID:???ググって見つからないなら本屋行け。
仮にもASP経験してこの程度のことで人の手借りるのは手抜きにも程がある。
0027nobodyさん
2007/07/22(日) 22:55:18ID:???0028nobodyさん
2007/07/22(日) 23:27:09ID:???それぞれの使いどころを教えていただけないでしょうか?
0029nobodyさん
2007/07/22(日) 23:32:46ID:???ASP.NETの特性
コントロールの状態(値とか状態とか)を再描画のたびに復元する必要が無い(ViewStateが自動的に行ってくれる)
イベントトリブンで記述が可能(イベントを認識するためのJavascriptを自動的に記述してくれる)
ポストバックが基本(データをポストする先は常にそのページ自身)
コントロールが必要とする基本的なJavascriptは自動的に作成
他にも色々あるが省略
で、これを上を意識できないと結局レガシーASPと同じになるので
やり方は色々あると思うが簡単に説明。
aspxファイルにViewStateを活用するために「Panel」コントロールあたりを3つ作成し、
それぞれのPanelに「入力画面(ボタンやTextBoxのnput系のHTMLタグをASPコントロールで)」、
「確認画面(Labelコントロールあたり)」、「登録完了画面」を作成
あとはasp.netボタンのclickイベントで処理+それぞれのPanelのVisibleを制御
(デザインのボタンコントロールをダブルクリックすればVBの様にイベント書く所へ飛ぶ)
エラーチェックは検証コントロールかJavascript・clickイベント内で行う。
まぁ、本とか>>2のMicrosoft ASP.NET クイック スタート チュートリアルで
サーバコントロールとかViewStateとかの裏側の動き(レガシーASPの動作に置き換えて)
理解する事をお薦めします。
0030nobodyさん
2007/07/22(日) 23:54:09ID:???ご丁寧な解説どうもありがとうございます。
教えていただいた内容をふまえてがんばります。
ここ1週間ほど本屋を5〜6軒まわりASP.NET初心者向けを3冊ほどは買ったのですが
GridViewやFormViewを使った割と高度なシステムの例はあっても
案外こういう低レベルに見えた受付フォームみたいなものの例がなく、
悩んでおりました。
0031nobodyさん
2007/07/22(日) 23:55:11ID:???普通のASPと違うの?
0032nobodyさん
2007/07/23(月) 00:05:24ID:???DataBinder.Eval(Container.DataItem, "aaa"と
Eval("aaa")の違いって事か?
上記の事なら詳しく説明するの面倒なので簡単に言えば「同じもの」
>>31
legacyの辞書的な意味は『遺産、遺物』。
コンピュータの世界では古い技術であるが現在まで残っている技術
003319
2007/07/23(月) 00:05:44ID:???レスありがとうございます。
セッションがタイムアウトしたら、連携するシステムに対して
ユーザがいなくなったことを通知しなければいけないので
DB使わずにASP.NET組み込みのイベントなどで簡単にできないのかな?と思いました。
「すべてのセッションを監視して、タイムアウトしたセッションに対して処理を実行したい」が正しい記述でした。
申し訳ないです。
素直にDBに格納する方が楽なようです。
サンプル セッション状態ストア プロバイダ
http://msdn2.microsoft.com/ja-jp/library/ms178588(VS.80).aspx
とか参考にして何とかなりそうです。
> 「すべてのセッションがタイムアウトしているかどうかを監視するサービス」
> と言うのをどう言う風に想定してるのか分からんが、
同一アセンブリ内で監視サービスでセッションを監視しようとしていましたが
AppDomainのアンロードと共に監視対象がリセットされてしまうため、うまくないなぁと。。
アプリケーション状態の保存にもちょっとだけSessionServer使わせてよ。と思ったけど、
現在のHttpContextを元にSessionStateの実装が想定されているので無理でした。
0034nobodyさん
2007/07/23(月) 06:47:10ID:srWGE4oQSqlDataSourceを使うメリットはあるんでしょうか?
0035nobodyさん
2007/07/23(月) 14:26:55ID:???SqlDataSourceをGridViewに使えば、
単一のテーブルであれば「ソート」「ページング」「更新」「削除」を
自動的に作成してくれます。
まぁ、ObjectDataSourceとかDataSourceへDataTableとかじゃないと
複雑なロジックには耐えきれないとは思うが。
0036nobodyさん
2007/07/23(月) 15:38:43ID:???JavaScriptでは可能なのですが、C#で書きたいのでよろしくお願いします。
0037nobodyさん
2007/07/23(月) 21:38:10ID:???0038nobodyさん
2007/07/23(月) 21:46:09ID:???でも、どこみてもJavaScriptしか書かれてないんですけど、
VBScriptだと相性が悪いんでしょうか?
教えてください
0039nobodyさん
2007/07/23(月) 22:14:54ID:???0040nobodyさん
2007/07/23(月) 22:28:49ID:???DataSetはあまり使う機会が無いのですが。
DataTableはGridViewのDataSourceにぶち込むためによく利用しますが。
0041nobodyさん
2007/07/23(月) 23:16:28ID:yAPedHBahttp://msdn.microsoft.com/library/ja/default.asp?url=/library/ja/cpguide/html/cpconTheADONETDataSet.asp
0042nobodyさん
2007/07/25(水) 12:46:29ID:SGx7LnS+AllDisabled()という全てのコントロールを無効化し、onserverclickイベントで処理をしたいのですが、ボタンを無効にすると
Page_Load後に本来処理が走る、onserverclickイベントが実行されません。
function AllDisalbed()
{
var i;
var cnt;
cnt = document.forms(0).elements.length
for(i = 0; i < cnt; i++){
document.forms(0).elements(i).disabled = true;
}
}
例えば、登録ボタンをクリックした場合など、その処理中に
画面上のボタンやリンクをクリックさせたくない場合、皆さんはどのようにロジックを組んでいますか?
クライアントで処理するのではなく、Page_Loadで書いてたりするのでしょうか?
0043nobodyさん
2007/07/25(水) 13:21:44ID:???disabledにするとASP.NETのポストバック判別用の
JavaScriptが動作しないのでイベントが動かなくなる。
だから、setTimeoutでワンクッション置くと解決する。
setTimeoutを使いたくないなら、
ttp://osada.bz/PermaLink.aspx?guid=b01b5502-5e06-4e87-a616-16c01610c08e
あたりを参考にdisabledの後にボタン本来のポストバック関数を呼ぶ。
0044nobodyさん
2007/07/25(水) 16:41:06ID:???TrayParseを使わないとダメなのでしょうか?
皆さんはこんな感じでロジックを組んでいるのでしょうか?
IsNumeric関数のように対象文字列だけ引数に入れるような関数は無いのでしょうか?
int nNull;
if (!int.TryParse(this.text1.Value.ToString(), out nNull))
{
this.text1.Value = "0";
}
■ このスレッドは過去ログ倉庫に格納されています