[過去ログ] 【質問】ASP.NETスレ Part5【議論】 (970レス)
上下前次1-新
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
921(1): 2009/08/24(月)15:23 ID:??? AAS
>>920
> 既に現在のWebアプリって規模はフォームアプリと変わらないですよね?
うーむ。 まあ、それは理解できなくはないが、Outlook風のWebアプリを作った経験から言わせてもらえれば、
コンポーネントベースで部品をまず開発していくので、部品ごとのテストは出来るし、その部品を
組み合わせて作っていくので、テストしにくくなることもないし、ログ調べてまでデバッグしなければ
ならないということ自体があり得ない。
私がいま書いているASP.NETのプロジェクト、ソースコードにして10万行近くあるが、
ログを調べたいと思ったことは一度もないな。
最悪でも、stack traceをLabelにでも出力しとけばそれで事足りることがほとんどだし。
Webアプリでそんなに内部状態が違いに干渉しあうようなことってそうそう無いので
省2
922(1): 2009/08/24(月)15:37 ID:??? AAS
>>921
自分で最初から作っていくなら、まさにその通りなんですけれど、
他社が作って、品質も不明なモノを解析して機能追加するときには、
やっぱり、ログ出力文をガンガン埋め込んでいくのが、一番早いと思うんです。
正直、英文コメントが少し書かれていたりするだけだと、そうするしかないかなと。
> 要するに誰もログ出力で困っちゃいないからスタンダードな方法が確立されてないんだと思うのだが。
1) 小規模開発ならログ出力が無くても困らない。
2) 数億単位の大規模開発なら、ほぼMSコンサルがプロポーザル段階から付いてるので、
そこがサンプルコードを提供して、フリーでは外に出てこない
って感じだと思います。
省2
923: [―{}@{}@{}-] nobodyさん[sage] 2009/08/24(月)15:38 ID:??? AAS
>>920
デバッガとページレベルトレースとアプリケーションレベルトレースで事足る
必要ならトレースリスナーをごにょごにょ
924: 2009/08/24(月)16:54 ID:??? AAS
>え〜、でも、ビジネスロジックとかデータアクセスとかそれなりに巨大になりますし、
Formにぐだぐだ書くのはあまりよくない実装法でしょ。
ビジネスロジックは、再利用可能なように別クラスにすべきだし、
ソリューションごとに必要な共通な機能なら、
Pageの継承クラスにメソッドを準備して、静的クラスに委譲すればいい。
ページに書くのは初期処理や各種のイベントに対応した処理を行うときだが、
これも他のクラスに委譲させれば済む。
入力データも一つのクラスのプロパティとして保持しておいて集約で管理する。
その中には入力チェックや表示のための変換も用意しておけば、
再利用できて便利だし、Formとロジックが分離できるから見通しがいい。
省6
925(1): 915 2009/08/25(火)01:19 ID:??? AAS
>>916
画面全体を更新しつつポストバックしたらUpdatePanel内のコントロールにフォーカスセットしたいのです。
この動画で言うと、最後の例でUpdatePanel内外のラベルコントロール両方が変わる感じでしょうか。
>>919
UpdatePanel内に配置したコマンドボタンでポストバックが発生したときにはそれで大丈夫なのですが、
UpdatePanel外のコマンドボタンでのポストバックだとフォーカスセットしてくれません。
もちろんcontrol.Focus()でもダメでした。
926: 2009/08/25(火)01:51 ID:??? AAS
>>922
> やっぱり、ログ出力文をガンガン埋め込んでいくのが、一番早いと思うんです。
素人くさい方法だが、Console.WriteLineで出力して、デバッグウインドウへの出力を見るぐらいでは駄目なのか?
これで駄目なら、普通にsingletonのファイルへ書き出すクラスを用意して、そいつを呼び出すだとか。
どんなタイプのログ出力がしたいのかさっぱりわからないのだが。
逆に、こういうタイプのログを出力すると他社製のコンポーネントの理解が早く進むというのが
あれば教えて欲しいぐらいだが。
927: 2009/08/25(火)09:34 ID:??? AAS
読んでて思ったんだが、IDEじゃなくて本番環境で
デバッグしたいんじゃないの?
928: 2009/08/25(火)14:01 ID:??? AAS
AA省
929: 925 2009/08/25(火)22:51 ID:??? AAS
もう一度テストページ作ってみたらすんなりとフォーカスセットされました。
アドバイスくださった方々ごめんなさい&ありがとうございました。
930(2): 2009/08/26(水)00:15 ID:??? AAS
今やってるプロジェクトでは
ボタンのvisible,enableとかの画面制御、入力チェック、データベースへの入出力など
そのページに関する処理はすべてFormに記述されてて一つのaspxファイルで完結しているんですが
こういう実装はよくないんでしょうか?
Formとビジネスロジックを分けてる簡単なサンプルがあればいいんですが
931(2): 2009/08/26(水)07:09 ID:??? AAS
>>930
プロジェクトの大きさや、内容、求められる開発効率によるから、良いか悪いかの判断は難しいかな
もし、Formのクラスに、connectionStringや、入力チェックの正規表現なんかを直書きしてたら論外。
DBへの接続や基本的な入力チェックはブロック化できるから、最低でもstaticなメソッドで用意しておくべき。
さらに、これらを分離して記述するとしたら、機能をさらにブロック化していって、
どの機能を共通化すると便利かを考えて分けてみるといいと思う。
すると、だいたい、基本的にはMVCモデルに似た形になってくと思う
外部リンク:www.itarchitect.jp
外部リンク[html]:www.bin-cook.com
ASP.NETだと、WinFormのような動作をするので、構造的にMVCモデルをそのまま適用できなくて、
省11
932: 2009/08/26(水)07:14 ID:??? AAS
App_Code以下にどんどんpublicなクラスが増えていくお…
933: 2009/08/26(水)13:17 ID:??? AAS
HttpApplicationを継承してるクラスのApplication_Errorメソッドで
例外を一括してキャッチしてファイルログに書きだしてるんですけれど、
参照ライブラリの中の例外がApplication_Errorを通らないことが分かってきました。
イベントログにはID1309で上がってくるし、Web.configのCustomErrorでも出ます。
なので、死ぬほど困るっていうわけでは無いのですが、
出来ればコードのどこかで一括してキャッチ出来たらなぁと‥‥
どなたか、Application_Error以外で一括キャッチする方法ご存知の方いらっしゃいます?
934(1): 2009/08/26(水)15:48 ID:??? AAS
>>931
MVCモデルを否定するわけではないが、それがすべてでもベストでもない
>構造的にMVCモデルをそのまま適用できなくて
そのまま機能分割なりしていって、MVCモデルになるわけないだろう
それははじめからMVCモデルにしようと思って機能分割してるからそうなるんだ
標準のASP.NETはMVCモデルとの相性は悪い
だからASP.NET MVCなどが登場したりしてるんだよ
935(1): 2009/08/26(水)16:35 ID:??? AAS
>>934
MVCのあたりを説明するのが面倒だったので、MVCのリンクを参照したのが、
逆に遠回りな説明になってしまったかな?
その点を端折りたかったのでMVCを経由しただけで、経由したからMVCは
直接、ASP.NETには適用できないと注釈しただけで、それ以外に他意はないよ。
なんで、MVCが絶対とは言ってないし、ASP.NETにMVCはそのまま適用できない(=相性悪い)という
ことについても意見が一致しているようだから、
MVCモデルにしようと意識して機能を分割していかなければ
MVCモデルに似た形にならないのか、なるのかということが論点かな?
>そのまま機能分割なりしていって、MVCモデルになるわけないだろう
省13
936: 2009/08/26(水)20:13 ID:??? AAS
ログ出力はそういう専用のライブラリ使うか自作するか、
もしくは使い捨てレベルで共通機能化するか
TraceSourceをそのまま使うか、
まあ大抵そんなとこだろ。
ログ出力をConsoleやファイルに直で書くやつはそういない。
937(1): 2009/08/26(水)22:37 ID:??? AAS
>>935
機能分割でも共通化でもいいんだが
ASP.NETに相性わるくて直接適用できないようなものを素人に勧めるなよ
938: 2009/08/26(水)22:56 ID:??? AAS
>>937
>>931を良く読んで欲しいのだが、誰もMVCをやってみろなんて進めてないよ
MVCに近い形で実装してる自分の実装例を紹介はしてるけど。
共通化させようとすると、自然とMVCのような形に似てくると思う
↓
MVCとはこういう感じ(とリンク先を紹介)
↓
でもMVCはそのままASP.NETでは適用できない
↓
だから自分は、こんな感じで共通化、分離して再利用しやすいようにしてる。
省3
939: 2009/08/26(水)23:09 ID:??? AAS
別に至らねえよ
940: 2009/08/26(水)23:17 ID:??? AAS
至らないと思うなら、それでいいんじゃない?
俺は自然と近づくと思うし、それだけなら単なる見解の相違。
941(1): 2009/08/26(水)23:49 ID:??? AAS
お勧めでもないものを紹介だけしたのね
普通、なんかいいのないかって聞かれて、
非常に詳しく紹介し、自分なりの利用法も説明する
普通の感性ならお勧めされたと思うんじゃないか?
少なくとも俺にはあれはMVCをお勧めしてるように見えた
ASP.NETに相性わるくて直接適用できないようなものを素人に紹介するなよ
受け取った方はお勧めされてると勘違いするぞ
942(3): 2009/08/27(木)00:10 ID:??? AAS
>>941
いちいち揚げ足取りや、言葉尻だけ捉えて意見を言われても困る。
↓こんな感じでも紹介しちゃったら駄目なの?
MVCっていう考え方もあるという意味もあって、参考になると思って記述したんだけどな。
■分離して記述したいなら、機能をブロック化して、機能を共通化させると便利か考えるといいと思うよ
>さらに、これらを分離して記述するとしたら、機能をさらにブロック化していって、
>どの機能を共通化すると便利かを考えて分けてみるといいと思う。
■そうするとMVCモデルに近い形になると思うんだ
>すると、だいたい、基本的にはMVCモデルに似た形になってくと思う
■ちなみに、MVCモデルってのは、こんな感じだけど、でもASP.NETにそのまま当てはまるのは難しい。
省15
943(1): 2009/08/27(木)00:23 ID:??? AAS
とりあえず、StrutsやASP.NET MVC等のWebアプリ界隈で指すMVCと
責務の分担をさしたMVCは区別されていることに気づいてくれ。
君の言うMVCはn層データ構造と言い換えても大した差異は生まれない。
(元々n層データ構造自体がMS流のMVC解釈であるためというのもあるが)
例えば>>942をASP.NETの用語で言うならばaはコードビハインドであり、
bはDALであり、cはaspx, ないしコードビハインドだ。
944: 2009/08/27(木)00:24 ID:??? AAS
というわけで、MVCそのものを進めてるわけではないは明らかでしょ?
MVCそのものを勧めたり、または勧める目的で紹介してるというわけでなく、
MVCのメリットを理解してもらうために紹介してるんだよ。
その上で、そのメリットを享受するために自分の実装例を紹介してる。
MVCそのものは、そのまま適用できないかもしれないが、
MVCのメリットを紹介するためにMVCを紹介するのは何もおかしくないでしょ。
945: 2009/08/27(木)00:36 ID:??? AAS
>>943
だからだな、そのMVCのメリットをASP.NETに取り入れるとって話をしてるんだが。
>君の言うMVCはn層データ構造と言い換えても大した差異は生まれない。
>(元々n層データ構造自体がMS流のMVC解釈であるためというのもあるが)
>例えば>>942をASP.NETの用語で言うならばaはコードビハインドであり、
>bはDALであり、cはaspx, ないしコードビハインドだ。
つーか、ASP.NETの概念でMVCのメリットを記述した内容を説明しても意味ないと思うんだが。
データアクセスレイヤーだって、コードビハインドに記述できるから、それを言ってしまえば、
aもbもcも全部、コードビハインドでしょ。
そうじゃなくてコードビハインドで記述できる内容を、別クラスに定義するなどして、
省1
946(1): 2009/08/27(木)01:22 ID:??? AAS
>>942
勧めるなっていったら、勧めたんじゃない、紹介しただけだっていったのはお前だ
揚げ足とるってのはそういうことだ
これ以上向いてないモデルについて説明する必要ないだろう
947: 2009/08/27(木)01:33 ID:??? AAS
ぼくのかんがえたさいきょうのエムブイシーをくらえー
948: 2009/08/27(木)01:52 ID:??? AAS
>>946
何度も書いてるが、MVCのメリットを理解してもらうために、MVCを紹介して何が悪い?
初めからMVCの利点を理解してもらうために、リンク先を紹介してるのに、
MVCは合わない→MVCを勧めて意味あんのか→MVCを紹介して意味あんのかって
変遷してるのは自分のほうじゃない。
しかも言葉尻捉えて他人を批判してるから、揚げ足とるようなことはするなっていってるわけで。
何度もいうが、MVCを紹介(正確にはリンク先を紹介)して何が悪いんだ?
>共通化させようとすると、自然とMVCのような形に似てくると思う
>↓
>MVCとはこういう感じ(とリンク先を紹介)
省5
949: 2009/08/27(木)02:03 ID:??? AAS
読解力ねーからmvcを絶賛してると勘違いしたんだろ
引き返せなくなって難癖つけてる
950: 2009/08/27(木)02:09 ID:??? AAS
>>共通化させようとすると、自然とMVCのような形に似てくると思う
>>↓
>>MVCとはこういう感じ(とリンク先を紹介)
水晶を買って以来、幸運が続いててさ。彼女はできるわ(ry
ところでこの店で売ってるのが件の水晶なんだ。
951: 2009/08/27(木)02:21 ID:??? AAS
>>共通化させようとすると、自然とMVCのような形に似てくると思う
>>↓
>>MVCとはこういう感じ(とリンク先を紹介)
>>↓
>>でもMVCはそのままASP.NETでは適用できない
水晶を買って以来、幸運が続いててさ。彼女はできるわ(ry
ところでこの店で売ってるのが件の水晶なんだ。
でもそれは意味ないんだ。
952: 2009/08/27(木)08:50 ID:??? AAS
せっかくいい話をしてるんだ。内容で議論してくれるとうれしい。
953(2): 2009/08/27(木)09:04 ID:??? AAS
ちょっとMVCの話が出てるから、便乗で質問させて欲しいんだけど、
MVCフレームワークを使わずにASP.NETで開発してるときってさ、
このMVCのVだけ別の会社向けに変更したいとき、みんなどうしてる?
つまり、A社にASP.NETで作ったシステム納品したんだよ。
それと同じでデザインだけ変更したシステムをB社にも納品したいんだよ。
そのためには、Vだけ差し替えなくてはならない。
でも中身は一緒なので、なるべくソースコード、プロジェクトは一本化しておきたい。
ASP.NETの .aspxって、VとCがくっいてて、分離できないのよね。
みんなどうやって解決してるの?
省2
954(1): 2009/08/27(木)09:23 ID:??? AAS
>>953
そんな事態があるわけ無い。
デザインが異なれば機能も異なるし、ガワだけ変えて済む問題じゃない。
普通は三層モデルで、ビジネスレイヤーとデータアクセスレイヤーを
別のクラスライブラリプロジェクトで作っておく。
1つのソリューションの中に以下の感じで。
CompA.Web <- Webプロジェクト
CompA.Business <- クラスライブラリプロジェクト
CompA.DataProvider <- クラスライブラリプロジェクト
CompA.Tests <- テストプロジェクト
省1
955(1): 2009/08/27(木)09:44 ID:??? AAS
>>954
> デザインが異なれば機能も異なるし、ガワだけ変えて済む問題じゃない。
いや、本当にガワだけなんだ。
ショッピングサイトとか、デザインだけ変えて納品したいんだ。
> もし、本当に>>953の言う通りなら、Webプロジェクト以外は同じ
だからそのWebプロジェクトに、顧客Aと顧客Bへの納品物で
共通部分があるのが嫌なんだ。
だから、
> 私は、バッチファイルで、A社とB社とで、.aspx (.designer.aspxではないほう) が
> 差し変わるようにしたけど、こんな原始的な方法しかないのかな?
省1
956(1): 2009/08/27(木)09:58 ID:??? AAS
CSSと画像ファイル変えるだけなら、それだけ変えればいいんじゃ
957: 2009/08/27(木)10:14 ID:??? AAS
>>956
CSSと画像ファイルだけではなく、html上の文字列も変えたいんだ。
958(1): 2009/08/27(木)10:23 ID:??? AAS
文字列なら、パラメータにしてしまうとか。
grid_viewみたいなのを使わないページなら、
テンプレートエンジン使うとか。
959(1): 2009/08/27(木)10:38 ID:??? AAS
>>955
B社にソース納品したとき
「これ他にも流用してるんじゃね?」と勘ぐられたくなければ
面倒でも、「御社専用のコードです」って見える風に手間かけるしかないと思うけど
あと、asp.net は継承って上手くできなかったっけ?
真に共通部分だけでベースクラスつくって、差分は継承後のクラスで書く、とか
Windows フォームなら、バンバン継承して作っちゃってるけど
960(1): 2009/08/27(木)10:38 ID:??? AAS
>>958
文字列は、Webデザイナーが変更するんだ。パラメータにすると、そのパラメータが
どこに格納されていて、どこに表示されるかWebデザイナーに説明するのに余計な手間がかかるんだ。
WebデザイナーはDreamWeaverか、Expression Web2で編集を行なう。
この編集が直観的な出来ないような改造はしたくない。
またパラメータだと、それが正しい場所に埋め込まれて、きちんとDIVのボックス内に収まるか、実際にレンダリング
してみないとわからないし、Webデザイナー側で文字列を好きな位置に増やしたり出来ない。
だから、パラメータ化するのは、かなりのデメリットがあって、それなら↓こっちのほうが
はるかにいい解決方法なんだ。
> 私は、バッチファイルで、A社とB社とで、.aspx (.designer.aspxではないほう) が
省1
961: 2009/08/27(木)10:43 ID:??? AAS
>>959
> B社にソース納品したとき
> 「これ他にも流用してるんじゃね?」と勘ぐられたくなければ
いや具体的に言うとショッピングサイトで、各会社ごとにデザインだけカスタマイズしての納品なんだ。
だから、流用も何も、デザインだけカスタマイズしての納品ということは納品先のすべての会社に了解してもらい、
納得してもらっているんだ。
> あと、asp.net は継承って上手くできなかったっけ?
あなたが、どういうコードを想定しているのかちょっとわからない。
Windowsフォームの場合でも、別の会社に納品するときに
デザインを変更したいことってあると思うのだが、そういうとき、継承で解決するの?
962(1): 2009/08/27(木)10:48 ID:??? AAS
>>960
普通のhtmlページで、たとえばデータベースからのデータで文字が置き換わるだけのようなページだったら、
デザイナにhtmlファイルで作ってもらって、置き換わる部分だけ$name$とかにしとくあれだよ。
963: 953 2009/08/27(木)11:49 ID:??? AAS
>>962
> デザイナにhtmlファイルで作ってもらって、置き換わる部分だけ$name$とかにしとくあれだよ。
$name$ とかに変更したあとのファイルをデザイナーにまたいじってもらおうと思ったときに
デザイナーが最初に作っていたhtmlファイルとは違うので、デザイナーがその構造を理解するのに
余計な時間がかかる。
あと、DreamWeaverでもExpressionWeb2でも直接.aspxを編集して、Web.UIのControlを含めて
正確にレンダリングできるのでWebデザイナーにレポジトリのaspxを直接編集して欲しいんだ。
そんなわけで、結局、↓こっちのほうが優れたやり方だと感じるんだが。
> 私は、バッチファイルで、A社とB社とで、.aspx (.designer.aspxではないほう) が
> 差し変わるようにしたけど、こんな原始的な方法しかないのかな?
964(1): 2009/08/27(木)12:25 ID:??? AAS
うん、だから好きなやり方でやれば良いじゃん。誰かに怒られるわけでもないし。
あと、htmlファイルはいじらないでそのまま使うんだよ?
965(1): 953 2009/08/27(木)12:53 ID:??? AAS
>>964
ん? いじらないの?
ひょっとして、smartyみたいな独自タグ用意して、htmlを書いてそれをaspx側用に置換して使うって話?
あなたの言っていることとは違うのかも知れないが、
htmlを書いてaspxに変換するのは面白いかも知れん。
html → aspx と designer.aspx を自動生成できるように簡単なコンパイラみたいなのを作っておいて、
こいつに対して、View("Label1").Text = "12345"; のように viewとしてアクセスできるような仕組みが
あれば、(MVCフレームワークのように) viewだけ差し替えるなんてことも出来るかも知れん。
postback処理とかある程度自前で書かないといけないのが、アレなんだが…。
こういうフレームワークは勉強のために作ってみたいと思っていたので、いいかも知れん。
966: [―{}@{}@{}-] nobodyさん[sage] 2009/08/27(木)12:56 ID:??? AAS
>>965
そういうのを世の中ではテンプレートエンジンと言うのだが・・・
967: 2009/08/27(木)13:32 ID:??? AAS
T4があるじゃないか。
外部リンク[aspx]:blogs.msdn.com
968: 2009/08/27(木)18:08 ID:??? AAS
普通にDWでaspxのデザインできるから、それで作ってもらえばいいんでないの?
サーバコントロールの名前だけ変えないでねって感じで
ぺろぺろっとhtmlだけ置き換えたいならASP.NET MVCのほうがいいかもな
969(1): 2009/08/28(金)15:26 ID:??? AAS
さーせん。
Visual Web Developer 2008 Express Editionで、.NETじゃない旧来のASPて開発可能?
外部リンク:www.microsoft.com
すれ違いだったらスマソ。。
970: 2009/08/28(金)16:26 ID:??? AAS
>>969
Expressでやったことは無い(当方Pro)が、一応できるよ
インテリセンスもそれなりに利くし、IDEでデザインも弄れる
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.254s*