facebook twitter hatena line google mixi email
★お気に入り追加


  • 1
  •  
  • 2012/07/26(木) 14:55:28.26
ASP.NETとは、マイクロソフトが提供するWeb アプリケーションと XML Web サービスを構築するための
Microsoft .NET Frameworkの一連のテクノロジの一つです。
技術の移り変わりの早い分野ですので、みんなで質問、相談しつつ、より理解を深めていきましょう。

●ASP.NET関連サイト
マイクロソフトASP.NETデベロッパーセンター
http://msdn.microsoft.com/ja-jp/asp.net/default.aspx
ASP.NETオフィシャル(英語)
http://www.asp.net/
VisualStudioホームページ
http://www.microsoft.com/japan/msdn/vstudio/
SQLServerホーム
http://www.microsoft.com/japan/sqlserver/2005/default.mspx
IISオフィシャル(英語)
http://www.iis.net/
ASP.NETにAJAX技術を取り入れるASP>NET AJAX(英語)
http://www.asp.net/ajax/
ASP.NETにMVCアーキテクチャを取り入れるASP.NET MVC(英語)
http://www.asp.net/mvc/
ASP.NETでのお役立ちの定番サイト
http://www.atmarkit.co.jp/channel/aspnet/aspnet.html

ここまで見た
  • 260
  •  
  • 2015/08/16(日) 02:28:47.83
MVCなどは技術ではなくてパターンでしかないので、見様見真似で何とかなるはなし。
本質はそこではない。

ここまで見た
  • 261
  •  
  • 2015/08/19(水) 05:34:09.62
>>254
Web formsとASP.net MVCは共存できる
場所によって使い分けられる

VSのバージョン古いとだめだけど

ここまで見た
  • 262
  •  
  • 2015/08/19(水) 05:39:21.23
>>257
asp.net mvcの大きな特徴は
コントロールがない
ポストバックがない

長所は性能が高いこと
UIデザインを完全に制御できること

>>260
MVCと省略して書いてる人多いが、いまはASP.net MVCの話をしている。
技術的にもWeb formsとは別物

ここまで見た
  • 263
  •  
  • 2015/08/28(金) 07:26:19.06
すみませんお願いします。

ASP.NETのwebフォームユーザです。VS2010pを使っています。
page上で自作C#クラスからsqlcommandを発行してSQL SERVERのストアドプロシジャを読みだして、
ListViewにバインドすることができました。

ListViewの<template>を駆使して、<table><tr><td>構造で取得したレコード内容を表示させるわけですが、
思ったようなデザインができません。
CSSを使って、奇数行の色分けはできましたが、限界を感じています。
(今まで、Accessのレポートを使っていたので思う通りにデザインできていました。)

もっとCSSを使えるようになってデザインもできるようになりたいんですが、
これは何かのデザインツールが必要だと思うに至りました。
ListviewサーバコントロールとCSSとデザインツールを駆使して、思う通りのデザインをしたいんですが、
可能なんでしょうか。

のちのことを考えればMVCに移行したほうが良いときなんでしょうが、
MVCを使えるようになるまではしばらくはサーバコントロールを使いたいと思っています。

ここまで見た
  • 264
  •  
  • 2015/08/28(金) 07:28:41.06
たとえば、ListViewの吐き出したhtmlを読み込んで、
マウスでテーブルの列幅や高さなどを調整して、CSSファイルとして保存する。
必要なclassやタグは、ListViewのItemTemplateに手動で記述する。
保存しておいたCSSファイルとがっちゃんこして、素敵なデザインを構成できればなあと考えています。

ここまで見た
  • 265
  •  
  • 2015/08/28(金) 22:35:12.67
>>263-264
ListViewのテンプレート、デザインモードで編集できないんだな

>ListviewサーバコントロールとCSSとデザインツールを駆使して、思う通りのデザインを
まあ、デザインツールがあれだが、テンプレートでほぼ思い通りのデザインに出来ると思うが

>必要なclassやタグは、ListViewのItemTemplateに手動で記述する
必要なclassやタグを自分で書くのなら、普通にソースビューでテンプレート修正すればいいだけでは
なんか適当なhtmlデザインツールでダミーのテーブルでも作ってコピペすればいいんじゃね
ソースビューで思うとおりに編集できないなら、MVCでデザインとかレイアウトとか多分無理だぞ

ここまで見た
  • 266
  •  
  • 2015/08/29(土) 07:21:29.85
>>265
レスありがとうございます。

>テンプレートでほぼ思い通りのデザインに出来る
>ソースビューで思うとおりに編集できないなら、MVCでデザインとかレイアウトとか多分無理だぞ

どんなHTML要素をListViewのXXtemplateで吐き出すようにすればよいんでしょうか。
<TABLE>だと思い通りの場所にデータを配置するのは限界があると思うんです。

ここまで見た
  • 267
  •  
  • 2015/08/29(土) 19:41:24.49
>>266
コントロールとか関係なく、素のhtml(とcss)で思った通りのレイアウト書けるのか?

それが出来ないと話にならんのだが、まあ出来ないんだろうから適当なデザインツールでデザインしてコピペしろと

それが出来るなら、そうなるようにテンプレート書けば良いだけ
まあ、完璧に再現出来ない事もあるかもしれんが、それなら再現したいhtml明示して
どうしてもListViewで無理ならRepeater最強w

ここまで見た
  • 268
  •  
  • 2015/08/29(土) 20:39:16.81
>>267
ありがとうございます。

素のHTML,CSSで、思った通りのデザインができることが大切なんですね。
サーバーコントロールが便利だ!って考えていたので、HTMLなんて触る気持ちが今ままでは0でした。

逆転しましたね。サーバーコントロールよりも、HTML,CSSがメインになってしまったと感じます。
<TABLE>タグくらいが多かったwebアプリにもデザインが求められるようになったからでしょうか。

それからすみません、
Repeaterつかうと、Listviewにできない何ができるようになるんでしょうか。
MVCの世界に片足つっこんでますよね。

ここまで見た
  • 269
  •  
  • 2015/08/29(土) 20:54:39.62
世の中の流れはJavaScript+HTML+CSSだからね。
c#でwebアプリを作ってもデフォでbootstrapがついてくる。

ここまで見た
  • 270
  •  
  • 2015/08/29(土) 23:23:03.26
>>269

bootstrapって、ms以外の物でオープンソースなんですよね。
必要なパッケージを開発環境にインストールできるようになったのも、
今後はms以外のオープンソースな物をどんどん使って行くことになるってことですよね。
webで必要な技術は、webがオープンであるがゆえに、
msだけでは付いて行けなくなったのかなあ。

ここまで見た
  • 271
  •  
  • 2015/08/30(日) 22:05:40.86
デスクトップアプリを.netで作ると簡単に逆コンパイル出来るけど、asp.netの場合はどうなの?
サーバーサイドの.netのバイナリーファイルをクライアントサイドから見えたりしないの?

ここまで見た
  • 272
  •  
  • 2015/08/31(月) 00:25:42.51
実行ファイルが見えるかどうかと逆コンパイル出来るかどうかは違う話だが

普通サーバサイドの実行ファイルやそのソースは見えたりしないようにする
不適切な設定してたらしらん。デフォルトの設定でもその辺が見えるようなことはない

ここまで見た
  • 273
  •  
  • 2015/09/08(火) 17:42:20.24
WebForm1.aspxと言うファイルを発行する際に、
いわゆるminifyみたいな処理をして発行したいのですが、標準でそういう
機能をVisual Studio 2013は持っていますか?
要するに不要なコメントなど除去して発行したいのですが。

ここまで見た
  • 274
  •  
  • 2015/09/08(火) 20:49:13.18
>>273
単に不要なコメントを除去するだけだったら、「サーバー側コメントブロック」を使うといいよ

<%-- コメント --%>
みたいな書き方するとクライアントには送信されない。

発行するときにaspxから除去したいとなると、違う方法が要るね

ここまで見た
  • 275
  •  
  • 2015/09/08(火) 21:32:42.23
>>274
レスありがとございました。
<%-- コメント --%>
このコメントがそういう意味だったのですか!
知らなかった。ASP.NET一週間目くらいなのですが、なんでこんな
変なコメントがあるのか疑問でしたが解消できました。感謝です。

ここまで見た
  • 276
  •  
  • 2015/09/08(火) 23:43:55.21
コメントに限らず<% %>はサーバ側で処理する内容だからな
aspxのミニファイは標準ではたぶん対応してないと思う。探せばいくつかツールは見つかるけど
aspxは一旦サーバ側でコンパイルされてキャッシュされるから、どの程度のパフォーマンス向上があるかわからんしねぇ
たしかに転送量は若干へるだろうけど、ビューステートに比べれば微々たるもんだと言う気がするわ

ここまで見た
  • 277
  •  
  • 2015/09/09(水) 07:05:02.35
皆さんとても詳しそうなので、もう一つ教えてください。
WebForm1.aspxにTextBox1とButton1を配置してTextBox1に入力したデータをButton1を押すと
サーバー側でそのデータをC#で加工するという単純なアプリを作っています。
だいたいうまく行くのですが、問題があります。
それは、TextBox1にコピペでデータを貼り付けた場合に、その直後にButton1を押してもC#でTextBox1.Text
を取り出しても、中身がありません。
コピペした後でButton1を押す前にFormの上を一回クリックするとか、他の部分を触るなどした後でButton1を押すと
C#でそのデータが取り出せます。要するにTextBox1にコピペした後、フォーカスが他の部分に移ると上手く行くようなのですが、
Formをクリックするなど面倒なので、もっとスマートに解決する方法はありますか?VS2013、.NET4.0です

ここまで見た
  • 278
  •  
  • 2015/09/09(水) 10:44:00.85
>>277
それはサーバ側(ASP.NET)の問題じゃなくて、クライアント側(ブラウザ)の問題だと思われるが

そもそもボタンを押したのなら、その時フォーカスはボタンに移ってるはずだが
ブラウザ何で、どうやって送信してるんだ
ブラウザ側のスクリプトでなんかやってんじゃないのか

ここまで見た
  • 279
  •  
  • 2015/09/09(水) 12:04:57.85
>>277
>Formの上を一回クリックする

フォームって、論理的なものであって、不可視じゃないの?

ここまで見た
  • 280
  •  
  • 2015/09/09(水) 12:14:41.97
ASP.NET v.s.2010で、サーバーコントロールでWEBアプリを作っています。

まだ始まったばかりなので、自作クラスを作りながらのことが多いです。
自作クラスは、一つのWEBアプリ内に、csファイルとして作成しています。
一応、ネームスペースにまとめるようにしています。

しかし、これをほかのアプリからも使うんですが、
やはり、exeファイルのアセンブリにコンパイルしなおしたほうが良いでしょうか。
ずぼらな性格なので、必要なものを探し回ったり、あるいはコードに変更を加えてしまって、従来からのアプリに影響がでて困ったり、
いろいろと不安要素があります。

なにか、汎用クラスの管理にコツがあったたら教えてください。

ここまで見た
  • 281
  •  
  • 2015/09/09(水) 12:30:44.55
>>279
フォームというより、ブラウザーの余白部分とかそういう意味でした。

>>278
>ブラウザ何で、どうやって送信してるんだ

VS2013でWebフォームアプリの作成を選んで、
自動生成されるWebForm1.aspxに
ScriptManager1
TextBox1
Button1
を配置しただけの簡単なアプリです。
このやり方で良いのかどうかも良く分かりません。

ここまで見た
  • 282
  •  
  • 2015/09/09(水) 12:32:45.67
>>280
いまさら2010かよ
複数のアプリで使うのなら、その部分ははじめから別プロジェクトでdll作っとけよ
exeにする必要なんてないぞ

ここまで見た
  • 283
  •  
  • 2015/09/09(水) 12:37:01.03
>>281
サーバサイドとクライアントサイドの区別ついてるか?
ブラウザは何で、どうやってブラウザから送信してるのかって聞いてるんだが

ここまで見た
  • 284
  •  
  • 2015/09/09(水) 12:37:16.69
>>282
レス、ありがとう、さっそく。

>別プロジェクトでdll作っとけ

抽象クラスも混じっているし、単独で走らせられない(実行のできない)クラス群になるんですが、
別プロジェクトに切り離して、どうやってデバッグするんでしょうか。
あっ!、検証用のコードも混じらせるということなのかな。

ここまで見た
  • 285
  •  
  • 2015/09/09(水) 12:39:06.73
>>281
>ScriptManager1

これが臭いんだが、
これを外した、通常動作のものは動作するのだろうか。

ここまで見た
  • 286
  •  
  • 2015/09/09(水) 12:40:20.83
>>282
コミュニティー2013を使うと、
2010にはないメリットがあったら、教えてください。
インストールするきっかけがほしい。

ここまで見た
  • 287
  •  
  • 2015/09/09(水) 12:42:08.88
>>283
ie11
Button1のOnClickでC#の関数に行くからそこでTextBox1.Textを読んでるんだが。
何かおかしい?

ここまで見た
  • 288
  •  
  • 2015/09/09(水) 12:46:00.58
>>287
>TextBox1.Text

これって、ajaxの定義範囲から外れて定義されているとかない?

ここまで見た
  • 289
  •  
  • 2015/09/09(水) 12:47:46.00
>>285
>>ScriptManager1
>これが臭いんだが、
自分でも何でこれを追加したのか忘れました。とにかく最初に質問したようにTextBox1にコピペした場合や、deleteキーやbackspaceキーで編集した直後にButton1押して、C#側でそのデータを読み出したいだけなんですが。なぜか変更前のデータになってしまいます

ここまで見た
  • 290
  •  
  • 2015/09/09(水) 12:50:52.32
>>288
>これって、ajaxの定義範囲から外れて定義されているとかない?
それはどうやって調べれば分かりますか?
<asp:TextBox ...
みたいに頭に<aspがついていますがこれでいいんでしょうか?

ここまで見た
  • 291
  •  
  • 2015/09/09(水) 12:53:04.98
>>289
一度、新しくWEBページを作成して、
テストコードを入力したほうが早いと思うよ。
なんか、ajax関係の動作が噛んでおかしくなっていそう。(ScriptManagerはその役割を担っている)

おっしゃっている、テスト動作は、ふつう、問題なくできるよ。
page_loadや、button_clickサーバイベントハンドラで取得するんでしょ。
問題ないはず。

ここまで見た
  • 292
  •  
  • 2015/09/09(水) 13:47:22.14
>>291
ありがとうございました!
新規にやり直したら、うまく行きました。
ASP.NETやっている人はみんな親切でいいなあ。

ここまで見た
  • 293
  •  
  • 2015/09/09(水) 19:09:07.36
また質問なんですが、
WebForm1を実行すると以下のような順番でイベントが発生するようです。
C#のPage_Init()
C#のPage_Load()
$(document).ready()
$(window).load()
C#側では IsPostBack == true と言う判定を使えばPostBackかどうか分かりますが、
クライアントサイドでも同じような判定は可能でしょうか?
要するに最初にWebForm1を開いて$(document).ready()など実行される場合と、
それ以降に$(document).ready()が実行される場合を区別出来ますか?

ここまで見た
  • 294
  •  
  • 2015/09/09(水) 21:06:10.84
>>293
というか、getと、postしかないから、
クライアントサイドからどうのこうのという場合は、常にpostなのでは?

ここまで見た
  • 295
  •  
  • 2015/09/09(水) 22:07:53.25
さわりはじめだから右も左もわからんのだろう

ここまで見た
  • 296
  •  
  • 2015/09/09(水) 22:18:42.52
>>284
>別プロジェクトに切り離して、どうやってデバッグするんでしょうか。
同じソリューションなら普通にデバッグできるだろ
今時一つのソリューションで複数プロジェクト扱えないようなエディション使ってたら知らん

>>293
サーバサイドとクライアントサイドの区別ついてるか...
クライアントで非同期ポストパックかどうか調べたいって話ならPageRequestManager使えばいいんじゃね
使い方は適当にググれ

ここまで見た
  • 297
  •  
  • 2015/09/09(水) 22:41:31.76
>>294
常にpostだってのが、フォームをsubmitするメソッドの事を言ってるのなら
getでポストバックさせることもできるぞ

クライアントサイドからのアクションはポストバックにきまってるだろっていうならまあその通りか
ただ$(document).ready()とかは初回表示時もポストバック時も非同期ポストバック時も発生するから

ここまで見た
  • 298
  •  
  • 2015/09/09(水) 22:52:30.01
>>297
>ただ$(document).ready()とかは初回表示時もポストバック時も非同期ポストバック時も発生するから
それをクライアントサイドで区別したいんですが、無理ですか?

ここまで見た
  • 299
  •  
  • 2015/09/09(水) 23:07:28.40
>>298
よくわからんが、初回表示した時と、なんらかのアクション後(POST BACK後)をクライアントサイドでも区別したいということかな?

多分、サーバー側でその状態をJavaScriptとして書き出せばできるんじゃなかろうか。

ここまで見た
  • 300
  •  
  • 2015/09/10(木) 00:46:07.45
PageRequestManager使えって言ってるだろ

ここまで見た
  • 301
  •  
  • 2015/09/10(木) 00:57:16.83
>>296
知らない奴に限って要領を得ない事をグダグダ書くんだよな

ここまで見た
  • 302
  •  
  • 2015/09/10(木) 02:47:26.43
そりゃ要点をちゃんと抑えて整理出来るなら自分で解決できてるだろうからな

ここまで見た
  • 303
  •  
  • 2015/09/10(木) 10:43:52.19
>>284
ありがとうございます。
できました!

しかし、objフォルダと、binフォルダと、どう違うんでしょうか。
両方に、同じ名称で同じサイズのdllがあったんですが。

objフォルダに入っているdllを、参照設定しましたけど。

ここまで見た
  • 304
  •  
  • 2015/09/10(木) 14:50:56.21
iisとasp.netでwebサイト作った場合、物凄く負荷が大きい時に誤動作してAさん向けのページがBさんに表示されるなんて事は無いですか?

ここまで見た
  • 305
  •  
  • 2015/09/10(木) 16:43:44.33
>>303
dllを参照するんじゃなくて、そのdllを作るプロジェクトを参照するんだぞ

ここまで見た
  • 306
  •  
  • 2015/09/10(木) 16:47:00.31
>>304
高負荷でそんな「誤動作」するとか見たことも聞いたことも無いわ

ここまで見た
  • 307
  •  
  • 2015/09/10(木) 17:42:17.23
TextBoxに文字貼り付けるとValidationが反応して怒られる場合有りますよね。
これを無効化するとどう言う危険性が有るんですか?
貼られた文字列を実行する処理など入れて無ければ問題無いですよね?

ここまで見た
  • 308
  •  
  • 2015/09/10(木) 20:19:54.23
>>304
そんなの有ったとしてもアプリケーション側のバグでしょ

ここまで見た
  • 309
  •  
  • 2015/09/10(木) 21:16:32.20
>>305
プロジェクトフォルダ内にあるobjフォルダのアセンブリ(dll)自体を参照させたら、
参照側プロジェクトにdllファイルが自動的にコピーされたんだけど。

ここまで見た
  • 310
  •  
  • 2015/09/10(木) 21:25:25.32
>>304
プログラマらしからぬ発言

ここまで見た
  • 311
  •  
  • 2015/09/11(金) 00:07:58.84
>>307
その程度の認識だとXSSの考慮が漏れてそう・・。
まあ出力時にエスケープが徹底されていれば問題ないけど。

お絵かきランド
フリックゾンビ
ここまで見た

★お気に入り追加

このページを共有する
facebook twitter hatena line google mixi email