ASP.NET MVC
MVCは"model-view-controller"の略で、関心の分離によってテストやメンテナンスのしやすさ、簡潔なコーディングを実現するアーキテクチャです。 ・日本語情報 日本マイクロソフト 井上さんのブログ http://blogs.msdn.com/b/chack/ ASP.NET デベロッパーセンター 技術情報 http://msdn.microsoft.com/ja-jp/asp.net/aa336581 ・英語情報 Getting Started with ASP.NET MVC 3 http://www.asp.net/mvc 興味はあるけどWindows Server高いしライセンスもいるのでムリ。 mvc2まではまともに動く mbc3のrazor viewも一応は対応してる razor対応してるのか。 PHPを捨てる時がきたようだ。 うむ、ただしmvc3には幾つかOpenでないライブラリが含まれている/利用されているので、 monoとしてはそれらライブラリを含めた配布はできないようだ。なので、正式対応はできないみたい ただ、visual studioで開発しコンパイルすればそれらライブラリのバイナリが含まれるので そのままmonoにコピー、実行できる。 要は、一部ライブラリは自分で用意してくれたら対応してるよってこと monoってあくまでもASP.netの実行環境じゃないの? 開発環境のmono develop?みたいな名前の奴も含めてのプロジェクトだからなのか。 IDEなんかは別にオリジナルで良いんだけどな。 asp.netだけではないよ .net というか、C#オープンになったしつかえる環境にしちゃおうぜプロジェクト 実際monoってどうなのよ? プロダクトレベルの使用に耐えるの? 使ってるなんて聞いたことないけど。 >>14 つまりはそういう事だ。 大人なら察しろ、な? 日本は保守的だから。 日本語の情報無いと使わないしね。 SPAだっけ? あれがmonoでも作れるようになったら起こして。 それまではPHPのマイクロフレームワークとJQueryの仲間たちで頑張るわ。 >>14 Webの事例は公式サイトくらいしか知らんな。 web以外だとマイクロソフト製のiPhoneアプリやらPS Vitaなど結構盛んなんだけどね >>10 Mono.UnixなどでLinux依存に出来てしまう諸刃の剣 >>12 一応mono-basicというのがある 一応 >>18 仕事で mono 使っているのですか? 私は windows では仕事なくなったから asp.net もやめたけど。 >>24 もともとWindowsは専門外。 最近はMonoだけでやってます。 >>25 なるほど。 よかったら教えてください。 Mono を選ぶ理由は何でしょう? 私が最も気に入っているのは C# や ASP.net ですが、 BSD や Linux の上なら ASP.net の利用はあきらめてその他を選びます。 あるいは、BSD や Linux とは別に Windows Server を用意します。 群馬県高崎市に住む41歳AB型、製造業界で派遣プログラマーの仕事をしているhekenekoこと、黒飛健と申します。 新日本テクトスという会社を追われ、その後どうしてよいかわからなくなりました。 だけど私の大好きな尾崎豊の歌に励まされ、夢であるプロのクリエイターを目指すことにしました。 何度も挫けそうになりましたが、尾崎豊の歌を聞きながら自分を励ましています。 今も尾崎豊の歌のおかげで、夢を諦めずにCGアニメの製作を続けられています。 とりあえず、以下の動画を見てください。一生懸命作ったもので、自分では既にプロレベルの傑作だと思ってます。 できればみなさんのご意見、ご感想を聞きたいです。 新しいラダニアムの翼(new wing of radaniam part T) .mp4 http://www.youtube.com/watch?v=PRPJ69rVgbE 題名”ラダニアムの翼その1(A wing of radaniam_partT).mp4” http://www.youtube.com/watch?v=WTde4RdA5LU 私の世界観の全てを凝縮した力作です。hekenekoワールドをご堪能あれ。 >>26 1. Visual Web Developer Webアプリで一番単調かつ時間がかかるのはHTMLコーディング。 この手のツールはプログラマー視点だと無くてもいいが、デザイナーが絡むとあった方がいい。 で、まともに使えるレベルでデザイナーっとプログラマーが共有できるHTMLエディタはDreamweaver + PHPかVWD + C#しかない。 >>26 2. 半動的言語 PHPやRubyなどの動的言語は巨大化した際に構文解析の都合上、ソースコードを追うのが大変。 たとえばPHPであれば統合開発環境でソースを追えるようにするにはPHPDOCを完璧き書いておく必要がある。 それなら静的言語(Java)でいいじゃんとなるが、Webという野良を相手にするには柔軟性に欠ける。 たとえば最近流行りのAJAXで扱うXMLやJSONをJava(や古いC#)で扱おうとすると前準備だけで壮大なことになる。 で、そこで出てくるのが半動的・半静的言語のC#4.0。 世の中で一番大事なのはバランス。 >>26 3. 運用 sshやscpなどが使えないと個人的に厳しい。 monoを使うのは話題性 実業務でも使っているがクリティカルなシステムはやはりWindowsサーバだな 落ちても泣かない案件は積極的にmonoを使う、あとはコスト的な理由 100台近いサーバーに一斉にデプロイするのにrsync使いたいという理由だけでmonoに移行した Windowsで1台1台コピーとかマゾい Linuxのシェルが使えるのは大きいよね PowerShellは使える人間が限られすぎだし ASP.NET MVCを使えるレンサバは皆無に近い。 安いVPS借りてMonoぶち込むのが一番の近道。 結局止まろうがバグろうが大して問題にならないシステムにしか使ってないって感じか。 普通rsyncが無いから(ホントはあるけど)なんてアホな理由だけでOKにはならんしな。 ハードウェアは必ずぶっ壊れる 止まるの前提でフェイルオーバー周りをささっと構築できる技術者の確保はLinux方が有利ってだけ Amazonで動かすのに使ってるが、Windowsはファイルの アップロード方法すら謎だった。 グローバルにさらすシステムを構築するのにWindowsだとファイアーウォールの 設定できる人間を確保するだけでも大変だろ 結局のところ、PHPだRubyだJavaだで育ったLinuxでの運用知識のある莫大な人数の人間が すんなりWebアプリ本体の開発だけを考えて動かせるのがMonoの利点だろう。 そういう人たちがWindowsServerの設定などを覚える時間は無駄。 止まる止まらないという話だと無理にWindowsを使う方が危険だろ。 閉じた社内システムならWindows鯖でもいいんだがな。 >>42 asp.net自体あんまり信頼されてないだろw 目くそ鼻くそwww ASP.NET MVC自体はすごくいい感じなんだが、いかんせんASP.NETの評判の悪さで損してるよな 名前が悪い >>44 windows web server... 24, 26 です。 多数の回答ありがとうございます。 mono を使う理由は .net と unix の良いとこどりをするため って感じですね。 最近、windows から unix に移行した私は windows はアプリ開発には優しいけど、 構築や運用には不親切(向いていない)と いうイメージを持つようになりました。 mono 使いの方、もうひとつ教えてください。 純正の .net にはあれがあるのに、 mono にはまだ移植されてないよ、困った! なんてことに頻繁になりませんか? The Internet向けのWebサーバならUNIX系だろうけど、社内に置くサーバなら断然 Windowsに軍配が上がるわなあ。 ADとグループポリシー無しでWindowsクライアントの管理とか考えられん。 PHPからASP.NET MVCへの移植を行おうとしているのですが、 ASP.NET MVC独自の認証機構の情報ばかりで、独自に認証 周りを実装するにはどうすればいいのでしょうか? 既存のデータベース・認証ルーチンを引き継ぎたいのですが。 閉じたLANの世界でしか使われないとか、エンタープライズに胡座をかいて数こそ力のPCに喰われたIBM、SGI、SUNを見ているかのようだ。 とりあえずPHP製の有名アプリ移植してみるわ なにがいい? >>59 本業は年に1個売れるか売れないかの医療機器屋だから販売管理とか言われてもわからん なんでどんなサーバーでも作れるように対応しないんだろな >>62 MS「それは当社の利益にどのように貢献するのでしょうか?」 MVC3素晴らしい! Razor、モデルバインディング、EntityFramework etc。。 これがmonoで走るなら世の中変わる。 Entity Framework(MySQLで)とモデルバインディングは完璧に動くんだろか?? Razor、モデルバインディングは問題なく動作する(アセンブリのコピーが必要) Entity Frameworkは『Invalid IL Code』って出て動作しない EntityFrameworkは重くてちょっと使い物にならない。 小さなうちは良いが、大きくなったときに移行する術もないし データベースはDapperくらい薄いラッパーじゃないと危険だと悟った データベースからモデル化するのは別として、コードファーストで書けばいいのか、エンティティ デザイナーで書けば良いのか、悩むなー レスポンスヘッダーを書き換えるにはどうやるんですか? PHPのheader関数みたいなことをやりたいのですが。 MapRouteで設定するルート名って意味あるの? 好きな名前つけていいものなのか? IISで動いているかXSPで動いているかを判別する方法はありますか? みんなPascal形式のURLってどう思ってる? 俺は激しくダサいと思うんだけど… >>73 Wikipediaで見慣れてるからそうでもない >>73 ふだんはURLなんて全く気にしないけど 自分で設計するとなると、なんかパスカル形式はキモく感じる なんで小文字じゃないんだろう エディットコンティニューを使うにはどうやるのですか? 反映されないまでも,せめていちいち止めずに編集くらいする方法はないでしょうか? ASP.net MVC、いいFrameworkなのにスレは過疎ってるな C#のスレは、基本的にプログラム板が多いから、 WebProg板じゃなくて、プログラム板でスレ立て直したほうがいいと思う。 JavaのWebアプリフレームワークのスレも、プログラム板に立ってる。 一人開発なもんで、いくらビューがサクサクと生成されても、HTMLのデザインに手間取るのは仕方が無いか htmlヘルパー的なの全部いらなくね? 痒いところに手が届かなくて、結局jQuery使うわ。特にajaxまわり。 ASP.NET -> RoR ときて、ASP.NET MVCにきたけど RoRっぽいASP.NETってところしかわからん。 まったく別物だな。 >>86 Ruby on Railsのことだろ Convention over Configurationなフレームワークの先駆け。 ASP.net MVCのほうがRailsより細かいところいじれるし、 スケーラビリティも高く、スピードも速いけどな DropDownListForの初期値ってどうやって指定すんの? 引数で渡すSelectListでちゃんと指定しても反映されない 解決した DropDownListForの最初の引数と同じ値が SelectListItemのValueにあればかってに選択されんだな。 それにしても人いなすぎだろ、MVCはやってないの? TFS2012の質問なのですが、ASP.NET MVCで作っているWebアプリを毎晩自動ビルドすることは できるようになったのですが、これをテストサーバーに自動発行するにはどうしたらいいのでしょうか? >>90 海外ではASP.net MVC流行ってるよ 情弱日本人はPHPばっかりだけどな 人がいないのはWebProg板だから プログラム板のC#スレに統合した方がいいと思う それか、Web FormsとMVCひとまとめにして「ASP.netスレ」にして プログラム版にたてる。 ただしASP.netスレにするとWebProg板だろ、などといわれて この過疎った板に隔離されてしまう 海外では流行ってんのか 何検索してもStack Overflow(と一部日本語サイト)しか 引っかからなくて難儀したわ Google先生に翻訳してもらった文章を原文と比較しながら 読むとか、もうね エンジニア向けに特化した翻訳サービスができれば結構流行りそうな気がするな ASP.NET MVCはかなりいいフレームワークだからもうちょい使われてもいい気がするけど、正式なプラットフォームがWindowsっていうのが最大のネックだよな 個人的にはmonoの3.0が正式リリースされたら何か作ってみるつもり (monoのサイトはMVC使ってるぽい) マイクロソフトって、そういうとこやらないんだよな。 実務でcode firstってやるんですか?実際はdatabase first? >>96 おそらく一番人気があるのがcode first ユーザーの要望で最後に追加されたもの。 tutorialもcode firstのが多い感じ 既にデータベースのデータがある状況なら、Database firstも便利でしょ code first , database first, model firstは 状況に応じて使い分ければいいとおもう 俺あphp一本で、php -> smarty -> Cakeで15年やってきた。 去年ASP.NET MVC初めて使った。感動した! これはいい。第一、C#使えるだけで反則じゃないか。 開発環境との統合性も素晴らしい。 EntityFrameworkでもLINKでも何でもいい。DB定義にビジュアルツールが使えるなんて夢みたい。 Cake phpの100倍いい。Ajaxとの相性もいいね。 まだ上手く使えないけどこいつ以外使う気がしない。 PHPしかやってなくてその言い草は・・・。 もっと冷静になったほうがいいと思うよ。 Javaは言語だし、フレームワークのASP.NET MVCとは比較するもんじゃないからね。 せめてStruts、Spring MVCとかでしょう。 ASP.NET MVCって何と比較するものなのかな? >>102 MVC系のフレームワークじゃないの? ROR、Smarty、CakePHP… あとは、 WebForm -> お手軽に開発したい人向け MVC -> 細かく開発したい人向け とか open2chにASP.NETのスレ立ちました。 ASP.NET part1 http://toro.open2ch.net/test/read.cgi/tech/1368724408/ プログラム技術@open2ch掲示板 http://toro.open2ch.net/tech/ 専用ブラウザも利用可能。板の登録はすぐ上のURL設定 職場でASP.NET MVC 3 を使っているチームに合流することになった(自分は .NETでwebアプリは初めて)ので、 以下の本を買ってきました。 Amazon.co.jp: ひと目でわかるASP.NET MVCアプリケーション開発入門 (MSDNプログラミングシリーズ): 増田 智明: 本 http://www.amazon.co.jp/dp/4822294382 本を読み始めてみると、職場のコードでは view に RAZOR や、ファイル名が cshtml なのに、 この本では、ファイル名が aspxとやってて、おかしいなと思って本の画面キャプチャをよく見ると、MVC 2 を使っているっぽい。 RAZOR や cshtml 形式は MVC 3 からなのでしょうか? とりあえずこれで読み進めてみますが、 MVC 3 か MVC 4 でいい本があったら教えてください。 (ASP.NET MVC の日本語の本は少ないですね) 以下の本はMVC3ですが、これを持っている人が多かったのですが、これが一番いいでしょうか? プログラミングMicrosoft ASP.NET MVC ASP.NET MVC 3対応版 (マイクロソフト公式解説書) http://www.amazon.co.jp/dp/4822294668/ >>106 本は断然後者の方がいいよ ただ、ASP.NET MVCの経験が浅いとちょっと難しい内容かもしれない EntityFramewokは触り程度しか書いてない Razorは基本的にはMVC3から >>107 ありがとうございます。後者の本を勉強してみます。 久しぶりに覗きにきたら 3レスもついてる 一応、人はいるんだな >>106 RazorのView EngineはMVC3からだよ MVC3からけっこう大きく変わってるから 学習するならMVC3かMVC4対応のものを使ったほうがいいとおもう でもMVC3以降の書籍はかなり少ない 「ひと目でわかるASP.NET MVCアプリケーション開発入門」 はキャプチャ画面ばかりで内容が薄いね 「プログラミングMicrosoft ASP.NET MVC ASP.NET MVC 3対応版」 これは作者がMSDNドキュメントのレベルを超えると言ってる。 細かいネタばかりで読む気にもならなかった。 MSDNレベルの知識が見についてる人以外は手を出さなくていいと思う 「改訂3版 パーフェクトC#」 これは読んでないけど、ASP.net MVCの章があってMVC4対応。 LINQ, EntityFrameworkも扱っている 目次のページ数とかはAmazonで見れる。MVC4は75ページ分。 他にASP.net WebFormsなどの章もある。 http://gihyo.jp/book/2013/978-4-7741-5680-4 >>106 補足。 書籍よりも下のサイトのTutorialが一番良かった。 絶対に目を通した方がいいよ http://www.asp.net/mvc/tutorials http://www.asp.net/mvc これ読める人なら、MVCの書籍はいらないと思った 英語のMSサイトの情報のほうが正確だし、わかりやすいし、最新バージョンに対応してる。 >>106 さらに追加。 こっちは英語アレルギーの人向け atmarkitの記事はわりと分かりやすいと思う。MVC3に対応 チュートリアル、リンクなどの技術情報 [日本語] ASP.NET デベロッパー センター > ホーム > 技術情報 > ASP.NET MVC http://msdn.microsoft.com/ja-jp/asp.net/aa336581 Visual Studio デベロッパー センター > ホーム > .NetFramework > スキルアップ > 解説動画 5 分で学べる .NET アプリケーションの基礎 http://msdn.microsoft.com/ja-jp/vstudio/ee847315.aspx 連載:ASP.NET MVC入門【バージョン3対応】 http://www.atmarkit.co.jp/fdotnet/aspnetmvc3/index/index.html ASP.NET on the Web. http://blogs.itmedia.co.jp/chack/ >>113 おお、こんなナイスな連載が始まっていたのか monoのASP.net MVCを ソーシャルゲームの本番環境で稼働させてるってのは驚きだわ >>110-113 とても有益な情報、どうもありがとうございます! 「プログラミングMicrosoft ASP.NET MVC ASP.NET MVC 3対応版」 は、手元に置いておこうと思いますが、 >>111-112 の英語ドキュメントも読もうと思います。 ちょうど、MVC4 に入れ替えよう、という話がチーム内で出ていたので (特に新機能を使うわけではないが、入れ替えてもソースコードコンパリビリティはあるだろうというのと、 とりあえず新しくしておくか、という感じで) >>113 自分もUnix育ちなので、開発環境としては Visual Studio はいいとおもうけど、 運用はLinux等がいいなと思い、monoは注目してました。 IISだと、何よりサーバ増やすとき金が掛かる。リモートメンテとかもめんどくさいし。 パーフェクトC#買ってみたけど、全く使えない... 仕方がなくネットで調べながらやってるけど、 英語がさっぱりな俺でも公式チュートリアルが一番いい ASP.NETもっと盛り上がって欲しいな〜VS含めて凄くいいと思うんだけどな〜 stackoverflowがそうだっけ。 Windowsサーバを用意しないといけないのがなー。 Azureをもっと売り込めばいいのに >>118 apache+mono_serverでいいじゃない。 自動で生成されるWebpages_Rolesテーブルに、 ロールを追加したり消したりするにはどうしたらよいのでしょうか? 手動で直接DBに入れるのは出来たのですが、コードを書いて追加したりは出来ないと言うことでしょうか? >>122 ユーザ管理はWebベースでブラウザから設定するツールがあるよ だいたいの管理はこれでできるとおもう ユーザの追加とかロールの変更とか。 Web Site Administration Tool http://msdn.microsoft.com/en-us/library/yy40ytx0%28v=vs.100%29.aspx ここにわかりやすい解説がある。動画もある http://www.asp.net/mvc/overview/security 動画 http://pluralsight.com/training/players/PSODPlayer?author=scott-allen& ;name=mvc3-building-security&mode=live&clip=0&course=aspdotnet-mvc3-intro >>122 手動でできるんなら、それをするコードを書けば出来ると思わないの? 普通にDBのあるテーブルに行追加するだけだろ //HomeController.cs///////////////////////////////////////// namespace AjaxTest.Controllers { public class HomeController : Controller { [HttpGet] public ActionResult Index() { return View(); } [ValidateAntiForgeryToken] public ActionResult IndexPost() { List<Product> model = new List<Product>(); for (int i = 0; i < 100; i++) { Product p = new Product(); p.Name = "製品" + i.ToString(); model.Add(p); } return View(model); } } } //Index.cshtml///////////////////////////////////////////////// @using (Ajax.BeginForm("IndexPost", new AjaxOptions { HttpMethod = "Post", UpdateTargetId = "data" })) { @Html.AntiForgeryToken() <input type="submit" value="button" /> } <div id="data"></div> @Scripts.Render("~/bundles/jquery") @Scripts.Render("~/bundles/jqueryval") //IndexPost.cshtml//////////////////////////////////////////// @model IEnumerable<AjaxTest.Models.Product> @{ var grid = new WebGrid(source: Model, ajaxUpdateContainerId: "grid", rowsPerPage: 10); } <div id="grid"> @grid.Pager(WebGridPagerModes.All) @grid.GetHtml(columns: grid.Columns(grid.Column("Name", "プロダクト名", format: @<text>@item.Name</text>))) </div> 分割投稿失礼します。 上記2つのコードにてコントローラにValidateAntiForgeryTokenアノテーションを付けると、 エラーになる原因がよくわかりません。どうしてバリデーションエラーになるのでしょうか? またアノテーションを外した後のwebGridのページャやソートをさせようとすると何故か複数回リクエストが発生してしまいます。 対処方法があればご教授をお願い致します。 連投すみません。 上でバリデーションエラーになると書きましたが、エラーになっているのかもよくわかりません。 最初にグリッドを表示した後、ページャやソートをしようとすると表示されません。 アノテーションを外せばページャやソートが出来るようになりますが、リクエストが複数回行われてしまいます。 さらにページャまたはソートを連打すると、次第にクエリ文字列が長くなっていき、urlの最大長を超えるとグリッドが消えます。 AntiForgeryTokenはpostじゃないと動作しないらしい @gridで出力してるページャがgetで動作してるんじゃないかな それ以外はわかんね >1 MVC5のTutorial出来ていた。 MVC5はVS2013 Previewにはいっているらしい MVC5のみのダウンロードはまだできないはず Getting Started with ASP.NET MVC 5 http://www.asp.net/mvc/tutorials/mvc-5/introduction/getting-started VS2010のスキャフォールディングのあまりの糞さにブチ切れた 勝手にDB作ろうとする上に接続文字列変更したらマイグレーションしろとかマジふざけんな このクソ馬鹿仕様考えた奴は禿て氏ね そうだな M$のテンプレートだの自動生成の類が巨神兵並のド腐れだってのを失念してた俺が悪い しかしこのCoCとやらは本当に標準的になれてるのか・・・・・? こんなtypoクリティカルなシロモノ良く使えるな >>133 使いこなせないからって逆切れするなよみっともない あんたの能力が低いだけだ ScaffoldingやってるのはVSではない。 ASP.net MVCとEntity Frameworkだ 基本的な役割すら理解してない テーブル自動作成が嫌なら先に作成しておけばいいだろ いまどきVS2010なんて使ってるのも遅れすぎだわ VS2013とASP.net MVC5を使え Entity Frameworkも6.0になってる >>136 知ったか恥ずかしいね 使いこなすも何もいじりようがねえだろあの機能 先に作成しておけばいい? 無知は罪だね 既存のDBへの接続文字列へ変更してもエラー吐くんだよ 提灯記事鵜呑みにする脳弱は黙ってろ >>137 えっ・・・、さすがにそれはひどい。 EF4はCode FirstもDatabase Firstもどちらも対応できるだろ・・・。 自分は仕事でDBから作っているよ。 言葉も汚いし、技術も薄っぺらすぎだろう。 >>138 メクラ乙 お前やっぱ実際に使ってないだろ >>139 俺は137とは別人だ 138も>137が無能だと気が付いたようだな >>137 あんたが英語のドキュメントも読めず、検索の仕方もわからない低能なだけ 俺はSQL Server ExpressでもMySQLでもEntity Framework使ってるわ 接続DBの変更は1つの単語を変えればいいわけではない 認証方法などDBごとのパラメータがある 英語で検索すればすぐ見つかる程度の話だ エラーにきれてこのスレの住人に汚い言葉を吐くなんてみっともない 最低限、英語のサイトには目を通せ http://msdn.microsoft.com/en-US/data/ef http://www.asp.net/mvc >>138 このMSDNでは4通り説明してるね http://msdn.microsoft.com/en-us/data/jj590134 Model First Database First Code First (Existing Database) Code First (New Database) 俺はCode First (Existing Database)」でやってるな Columnのデータ型は自動作成されるといらつくから データの長さまできっちり先に指定してTableつくっておく >>141 お前本当に読解力ねーな(失笑 一遍自分でやってみろよデータベースファーストでよ? そうすりゃすぐわかる >>144 ざっとggってみたが面白そうではある 試してみよう EFのCode Firstすら使えないバカにNHibernateは無理 マッピング設定が大量にある お前ひょっとしてEFはコードファーストでしか使えねえ糞だって言ってるのか? 既存のDBから簡単に持ってこれないんじゃそら普及しない訳だわ >>147 Entity Frameworkは一番普及してるORMだ もう答えなくていいなこのバカには 無知な上に態度も悪いし教えたサイトで学ぶ気もない EF嫌ならNHibernateでもつかってろ おまえには絶対につかえないと思うがな EFが一番普及してる(笑) どこの並行世界にお住まいですか ああそうそう言い忘れてた 実践もしねーで学ぶだけー()に何の価値があんだよ やってみもしねーで頭でっかち上から目線 馬鹿はどっちかね EFは世間のORMよりだいぶ分厚いイメージが有るw 荒らしは放置しようぜ。口悪いだけで頭すっからかんだよ、こいつ。 >>151 出た(笑)限定勝負() DBアクセス手段がORMしかない世界の住人ですかー? 少なくとも4年前まではADO.NET一強で他雑魚だよ ttp://www.atmarkit.co.jp/fdotnet/chushin/chushinsurvey_01/chushinsurvey_01_02.html 先に言っとくが、データが古いとケチつけんなら最新のソース出せよ? お前の妄想とか願望とか要らねえから ついでにありがたーい言葉も付けてやろう「予定は未定」 ADO.NETとORMをなぜ同列に扱うのか分からない。 お前面白いな。もうしばらく居てもいいぞ。 試してみろというと逃げる癖してよくもまあ・・・(笑) 何一つ具体的なこと言えない時点でお察しだな >>153 ADO.netはORMではないんだから 「Entity Frameworkは一番普及してるORMだ」は事実だろ いまどき生SQLでゴリゴリ書くのは時代遅れ過ぎるんだよ 大昔のADO.net時代のシェアなんてどうでもいい。 日本のITは世界から大きく遅れてるのに、IT後進国の2009年という 大昔の調査のを持ち出してくるあたりが無能の証 Entity Frameworkがなかった時代の調査なぞ論外 >>152 Model Firstとかは分厚いが、Code Firstならそうでもないんじゃない? Model Firstはだいぶ評判悪かったみたいだよ Model Firstが悪いんじゃねーよ。 その実装が糞だってだけだ。 やってればわかるだろ。 しかも、生SQLごりごりとかさ、EFの前までに何段階もあっただろ。 EFは、使った人間なら分かるが、ムダにでかくて遅い。 https://code.google.com/p/dapper-dot-net/ 生成するSQLも汚い。 少なくとも初期は使いにくかっただろ。 理想はいいのだが、実装が追いついていない感じ。 最新のバージョンをさらっと触っただけの人はしらんが、俺の認識はこーだ。 DBがそのアプリ、サイトだけで使うものなら ORMで好き勝手にやればいいけど、 他のアプリでも使うテーブルを参照するとかそういうときにトタンに問題が出る。 結局、自作の ADO.NETのラッパー使わざるを得んのは、みんな分かると思うがね。 EntityFramework より、Linq to SQL とかのほうが使われているんじゃないの? (定量的なソースはありませんが) 他にも >>158 の dapper とか dotconnect とか NHibernate とか、ADO.NET直とか、 Javaとちがって .NET界の ORM は、デファクトといったものが無く乱立しているような気がする。 ADO.NET データセット、LINQ to SQL、Entity Framework それらの特徴と今後の将来性 http://www.youtube.com/watch?v=uXf_VTPUp8Q >>159 古いシステムならLINQ to SQLもあるだろうけど、 新規開発はEFでしょう。MSもEF推してる。 LINQ to SQLはSQL Serverでしか動かないしそれだけでもう駄目だわ あとWindowsのほうが乱立してない MS信仰が強いからMSの技術で代替がない場合を除いて まずMSの技術を使おう、となる JavaはORMはHibernate以外にHibernateの亜種、 JPA、Cayenne、iBatisといろいろある Webフレームワークも乱立していて定番もなくカオス。 Windowsだとほぼ全員がASP.netを使う。 NHibernateもだいぶ人気落ちただろう。 NHibernateのいいところとってEFつくってるし マッピング設定がめんどうなNHibernateを選ぶ理由が見つからない >>158 micro ORMはリレーションに対応できないのばっかりじゃないか EFのような高機能なORMと比べてパフォーマンスが速い、 なんて主張はナンセンスだよ 開発生産性を高めるためにORM使っているというのに リレーション対応できないんではメリットの大半が失われてる あとシンプルなリレーションなら、ORMで生成されるSQLはほぼ完ぺきだよ パフォーマンスこだわるなら、正規化ゆるくして複雑なJoinを避けるよう にするのも定石だとおもう EF6ってだいぶんパフォーマンス改善されてる感じ? 4とかはパフォーマンス悪すぎた VSに統合されている(GUIが使える)のは大きなメリットだな >>154 おいおいおい、現場で必要なのはDBアクセス手段であって何の技術かなんてどうでもいいんだよ 生SQLやデータセットでは使い辛い、開発し辛い、メンテし辛い、テストし辛い それを解決する手段として模索されてきた一つがORMだろ つまり最初から置き換え狙いでデータセットと競合する それを同列に扱わないって方が意味わからん >>156 EF1はなかったことにしたいんですねとてもよくわかります そして反証は例によって出せない、と・・・(笑) >>163 いいえ、遅いことを高機能だからと目をつぶるのはナンセンスです。 開発生産性を高めるためだけにしか使えないとご自分でおっしゃっているの分かりますか? 遅いか速いかとか、そのスピードだけみてもなぁ 使えるかどうかは、必要十分な速度に達してるかどうかが問題なわけで 今のEFは使い物にならないぐらい遅いのか? >>164 自分では測ってないけど、速くなってると思う MSのVersion History見るとパフォーマンス改善したという 記述がいくつか見つかる http://msdn.microsoft.com/en-us/data/jj574253 >>165 俺の中ではCode FirstがサポートされたEF4.1以降がEntity Framework それ以前は使ってないし知らん >>158 これわざわざベンチマークとったのになんでバージョンも日付も入れないんだろうね バージョン上がった今となっては参考になるのかすらわからない >>161 YouTubeにこんなチャンネルできてたんだ。 エバンジェリストの解説もゆるゆるだなw この動画でも、LINQ to SQLはオワコン扱いされてるね >>166 DataSetとEFでは開発生産性が大違いなんだから EFを使わないという選択肢は可能な限り避けたい。 「高機能ORMを使わずにゴリゴリやる」とか「ストアドプロシージャを使う」 とかいう対策は大きな犠牲を伴う。開発生産性が大幅に低下する。 利用は極力ひかえるべきパフォーマンス対策 パフォーマンスを上げる方法は他にたくさんあるしまずそっちを試せばいい。 メモリを大量に積む SSDにする キャッシュを使う DBのレプリケーションを使う App Serverの台数を増やす これらは時間かけずに対応できる。 「Entity Frameworkを諦める」なんてのは最後の手段だわw >>167 十分に速いよ ありふれたハードで秒間1000クエリ以上こなせる SSD時代になってハードの性能が格段にあがってるから コードでちまちまパフォーマンス改善をやる必要性は低くなってる EF6出てるから使ってみればいい せっかくMSの開発ツール使えるのにEF使わないなんてもったいなさすぎるわ EF遅いって、ソシャゲみたいなよほどレスポンスを重要視する業界ならわかる。 それ以外ならたいていインデックス設計、さらにはキャッシュでまず何とかなるでしょ。 クエリの組み立てに式木を使う処理である以上、性能面で越えられない壁があるのは事実。 っと言っても、ユーザ数が知れたイントラ用途とかで気になるレベルではないので、 余程性能要件が厳しいものでもなければ使うで良いと思うけど。 それで困るケースではMicro ORMで。 っというか、Expressionsの処理をもっと速くしてください(´・ω・`) >>170 使えるなら、使うのに躊躇する理由は無い。 (俺は)使えないという事実を無視して、便利だから、高速化の手法はいろいろあるからといわれても困る。 もったいないって、何がもったいないのかさっぱり分からん。 なんか頭固いなぁ。貴方のの考えや、貴方が便利に使ってるのを否定してるわけでもないのに。 >>174 これが信者ってもんですよ ひたすら盲目で蒙昧 >>174 あんたは>>166 ? >163のレスを 「開発生産性を高めるためだけにしか使えない」などと曲解したのが悪い。 EFを否定したととられても仕方がない ORM否定派がいるうざい流れの中での発言ならなおさらだ リレーション追えないようなmicro-ORM出してきて こっちのが速い、とか本当に無意味、ナンセンス パフォーマンス比較するなら機能が同等のもの出せよと思う ASP.NET MVCスレでEntity Framework否定って ほんとうざすぎるわ MVCは基本的にEntity Framework推奨で設計されてるのに EF否定する奴がなんでこのスレ覗いてるんだか まあ、貴方がどう思おうが、何を言おうが、 昔使いにくかったことと、パフォーマンスがイマイチな事実は変わらないよ。 推奨はいいよ。 だが、使いにくいと言うのをやめろとか、必ず使えとか、頭おかしいのと違うか? >>178 EFは驚異的なペースでバージョンアップしてるんだから 「昔は使いにくかった」とかほとんど無意味 EFやORMを使わずにEF否定してる人と似たようなもの >>179 必ず使えなんて誰も言ってないだろ 頭おかしいのはあんた MVC5出てるのにMVC5の話題もない。 ケチつけてる人ばっかりだけど、 最新バージョンさわってもない人ばかりに見える 無料なんだし使ってみろよといったら信者扱いw >>180 つまり、バージョンアップ前に使わなかった俺の都合はご理解いただけたと解釈してよいでしょうか? お互いさ、事実は替えられないんだから、もっと有意義にやろうよ。 >>182 都合もバージョンも書いてないし理解もなにもない 好きなの使えばいいじゃないか あとここ匿名なのわかってる? 「またORM否定してきてるうざいのいるな」、くらいの気持ちでレスしてる 名前つけないと判別しようがないことくらい理解してほしい ケチつけられてるからって、気分悪くしてる人もいるけどさ、 貴方にケチつけてるわけじゃないんだし、 たかが2chごときで、そんなカリカリするのも馬鹿らしいよ。 そうそう、少し前にEF6は速くなったか?という話あったけど よく見たら、劇的に早くなる新機能がついてたぞ EF6以降はEFからストアドプロシージャを呼べるようになった。 これは速い 俺はめんどうなストアドプロシージャなんてもう書きたくないがねw >>185 この板自体がそんな感じだからな、 喧嘩腰で空気の悪いスレばっかり ある人が、単に不満を言うと、それを使ってる人が、さも自分が否定されたかのように思うのか、 激しい反応するのは、プログラム言語関連では良くあること。 直して欲しいよねとか、そんなことないよ、こうなってるよとか、フーンでほっとけばいいのに、 お前は間違ってる、お前はおかしいやつだ って言われるとこうなるわけだよ。 気持ちはわからんでもないが、有意義ではなかったよね? >>183 こなれてない最新Verにすぐ飛びつくのはただのヲタ 自分が人柱になんのは止めないから他人にも強要すんなってことよな と言うか信者は自分が狼少年だって自覚あるんかね? 新バージョン出るたんびに「前まではクソ! 最新使ってない奴はバカ!」だもんよ そのクソなもん押してきた過去は都合よくなかったことと来たもんだ もう普及させたくないとしか思えんわ 段々良くなってきているのは事実。 なので狼少年ではない。 そして、普及させたくないとは思ってないだろう。 >>190 ないわー 当時使いものにならない部分だんまり決め込んどいてそれはないわー >>186 それ意味ないじゃん パフォーマンスを稼ぐためにいちいちストアドプロシージャも書かないといけないのか? >>192 MVC押しが顕著になってきたのは3からだと記憶するが、紹介記事はほとんどEF4と抱き合わせだった そしてEF4は上にも書かれているような問題点が少なからずあったにも関わらず、 「現時点での問題点」として附記されてるの見た記憶がない そして実際導入してみて唖然とするパターン もっと上の方にVS2010でトラブってる人がいるようだが、 MVC3から押しが始まってるんだから当時VS2012なんぞあろうはずもない(2011/1/14正式リリース) まあこの人はごく最近やりはじめたようであるが、 MVC3当時の最新環境はVS2010なのだからそれが使いものにならないのであれば 押しが欺瞞だったと言われても仕方ないだろう ついでだから私も一つEFのダメだった点挙げておく ODP.NETは2012年初頭までEFに対応しておらず、 またCode Firstに対応したという記事も発見できなかった もっともLINQの時点(2008年)で対応するする詐欺働いていた訳だからEFだけの欺瞞じゃないが こういう重要な情報は毎回注意喚起すべきでないか とりあず、使いもになるかどうかは各自でちゃんと判断しましょうね その判断結果を、ちゃんと判断基準を示して批判するなら好きにしてください >>193 え?この改善の意味わからないの? ストアドもEFから呼べるなら使い勝手がよくなってる。 ストアドプロシージャ呼ぶときだけADO使うといったこと をしないで済む。 パフォーマンス要件が厳しくない大部分のコードは さくさくとEFの通常のデータアクセスを使い、 パフォーマンス要件が厳しい個所は限定的に ストアドプロシージャで超高速にする。 既に書いた通り、ハードの処理性能あがってるし ストアドプロシージャが必要な場面はかなり減っている。 >>194 EFは他社のDBにも使えるようになったってだけでもすごい改善だ LINQ to SQLなんてSQL Serverしか使えなかった。 ODPはOracleのデータベースコネクタ側でも対応が必要になるし Oracleのようなサードパーティのデータベース対応が SQL Serverより遅れるのなんて当たり前だろう。 記事が発見できないという批判はOracleに対してするべきだとおもうがね 同じOracleのMySQLでもEF対応はかなり遅れた。 MySQL Connector NetなどConnectorのリリースノートをちゃんと 見ていれば対応はわかる 書いてなくても自分で動かしてテストしてみるのが開発者の仕事 >>197 進歩する「だけ」で褒めていいのは学生までです 上の方見るとEFはCodeFirst前提らしいがそれで普及させられる訳? 「これからに期待」と言うなら話はわかるがそんな論調じゃないだろう 他人に使え言える状態じゃないよ>EF どーでもいいがおまいら何でビューとビジネスロジック&データソース分離する理念のMVCスレで延々とDB関係話やってんだよ EFスレ立ててそっちでやれ まあ、そうなんだが ASP.NET MVC のMって実質的にEFなんだから許容範囲じゃね 今かかえてる案件をASP.NET MVC + EFで開発しているが 新規案件でレガシーDB無いんでEFコードファーストを選択 特に初期段階でのこの組み合わせの開発効率は悪くない コードファーストってDB設計どうやってやってるんだ >>200 > Mって実質的にEF Cが分厚くなってませんか? >>201 Modelの定義から作ってるに決まっとるがな これ見れば一発 Code First to a New Database http://msdn.microsoft.com/en-us/data/jj193542 >>198 EFは海外で十分に普及してる 自分のまわりで使える人がいないからといって 普及していないと思い込まないようにな >>202 リポジトリパターンにしてしまえばそれほどでもない JavaのORMスレがあるように、.NETのORMスレがほしい(そんなにネタが持たないか) >>205 そういうことは一度JavaのORMスレを見てから言えw >>206 知っとるでw 自分ももともとJavaの人間だったし、 あのスレができた頃はかなり勉強になるスレでとてもおもしろかったのに、 残念なスレになってしまった >>205 Entity Frameworkのスレはあってもいいかもな 重要な技術なのに日本語情報も少なく書籍もなく 、英語弱者は置いて行かれている印象 もし立てるならWebProgではなくプログラム板のがいい あっちに立てればC#でデスクトップアプリ作ってる奴らも来る。 >>206 Javaの方は荒れてると言いたい? EF限定のスレにしておけば荒れないんじゃないか .NETのORMにしてしまうとNHibernateやDapper派などが論争を始めるとおもう IIS+SQLSeverだったらEF一択でもいいかもね TransactionScopeも安定してるし Linux+mono+MySQLな自分は(Fluent)NHibernate使用中 >>208 EFをとにかく叩きたい奴が荒らし始めると思うよ。 無視すればいいけどね。 >>203 普及してるってんならソース出してみ どうせ出せないだろうけどなお前の脳内世界での話だし EFで、DB名の異なるテーブルのjoinはどーやるんでしょうか。 >>213 …………それはひょっとしてギャグで貼っているのか? >>198 自分が使っても良いと思えるラインは人それぞれだから、誰かに取って価値があると思うのなら人に勧めてもいいでしょ。 あなたの基準を下回っていても、誰かの基準は上回るということもある。 (ほぼ)万人にとって無価値あるいは有害であるなら、人に勧めるなと言っても良いけど。 >>216 で? それは普及度を示している情報なのか? どこらへんが? まさかとは思うが「情報収集してみたけど使えんわコレ」って人はいないことになってんのかお前の脳内じゃ? >>217 TIOBEにおいても、各検索ボリュームをratingに反映してるんだが。 検索ボリュームと普及度に相関関係がないというなら、それを証明してくれ。 まあ、他人が使ってるからいいはずとか、そんなレベルだってことだ >>212 それぞれからモデル作って合体させた後シノニム使ってできる、らしい CodeFirstじゃできないんじゃないかやったことないから知らんけど 普及するもしないも、VSにビルトインされてんじゃないの? >>218 普及度と相関するって主張してるのはお前 だから相関するって証明をしなければならないのもお前 TIOBEがやってる?ならそこがどう証明したか説明してみ >>222 検索ボリュームが増えたのはユーザ数が増えたからというのが自然な考え方だと思うが。 だからこそTIOBEでも参考にしてるわけだし。 それが自然な考え方ではないというのであれば、その根拠をどうぞ。 2013年度TIOBE見てみたらPHPがまさかのランクアップ そうかーPHPってどんどん普及してってるんだなー(棒 そしてJava脅威の普及率 まさかブラウザ付属のJavaScriptより普及してるとは予想外だわー >>224 PHPのランクアップは最近のトレンドとは反した動き。 http://www.tiobe.com/content/paperinfo/tpci/PHP.html これが上り調子のままなのかは、あと1,2年様子を見ないとわからない。 >>223 お前の主観なぞどうでもいい TIOBE自身がプログラミング言語の普及率とランキングは明白に関連すると主張してるならそれを出せと言っている >>225 ttp://www.tiobe.com/index.php/paperinfo/tpci/JavaScript.html あれれー?AJaxやらJQueryやらで大注目のはずのJSも減少傾向っぽいぞー? おかしいなー? >>226 http://www.tiobe.com/content/paperinfo/tpci/index.html > The TIOBE Programming Community index is an indicator of the popularity of programming languages. > The index is updated once a month. The ratings are based on the number of skilled engineers world-wide, > courses and third party vendors. Popular search engines such as Google, Bing, Yahoo!, Wikipedia, Amazon, > YouTube and Baidu are used to calculate the ratings. Observe that the TIOBE index is not about the best > programming language or the language in which most lines of code have been written. もっと詳しい情報を知りたければここ。 http://www.tiobe.com/content/paperinfo/tpci/tpci_definition.htm 以上がTIOBEの主張。 EFならまだしも言語ランキングとか心底どうでもいいわ スレ違いも大概にしろ StackOverflowでもEntity Frameworkの質問は3万件近くもあった。 これ見ても英語圏ではEFはすごい普及してるのはすぐわかる Javaで一番人気のORM、Hibernateは2万9千件だからこの辺と同等 TIOBEとかgoogle trendsはあまりあてにならないとおもう 機械的にサーチエンジンの集計してるだけだからキーワードあってたら拾ってしまう >>231 質問が増えたことと普及度に相関関係があることを証明しろ というに違いない。 結構前からMSがEFを推奨してるんだから、人気があるのは明白だろ >>231 のstackoverflowでも数字がはっきりでてる。 NuGetのダウンロード数でもEFがぶっちぎり EF人気にケチつけてくる馬鹿いるようだけど、 そいつは接続すらできなかった無能でアホな>>133 だから以後スルーでいい EF disってる奴は、VS 2008使ってるんじゃね? 自分が駄目だと判断したものを、他人が良いとういのに我慢ができないんでしょう。 >>231 それ全部別人が質問してんだへーすごいねー >>234 MSが押してたはずのVistaとか8はなかったことにしたいんですねよくわかります それと試用をも普及に含めちゃう君に乾杯 なんだ、人気にケチつけられてると思って、気に入らないってムキになってる話か。 使ってる人が多いとか、人気があるとかどーでもいい。 >>235 2008だけが使えなかったといいたいのかな? そんなことなかったぞ。 >>238 人間図星を指されると発狂するもの それと人気どうこうは心底同意する つーかスレ違いだと何度言えば分かるのかね発狂してるアホどもは >>242 何がお前もかなんかどうでもいいからもう黙れ >>234 ん? なんだ俺が接続できなくてべそかいてるとでも思ってたのか? 節穴な奴だなおい(笑)俺は「スキャフォールディングが糞」と言ってるだけだぞ? >>135 の時点でデータコンテキスト/ビュー/コントローラ自作してきっちり動いたわ(笑) 大抵のチュートリアルでスキャフォールディング使ってるのが初見殺しの罠とは流石に思わなくてな ま、ここんとこM$の出してくるもんは開発系に限ってはいい感じばっかだから油断してた俺が悪いんだがね それから信じる信じないは勝手だが、俺は今日ここ初めてのカキコだ まあ信じないだろうけどな自分のお花畑が全てっぽいからお前 >>203 どうやってDB作ってるって聞いてるんじゃなくて、どうやって設計してるって聞いてるんだが モデルからDB作るんであれば、モデルを設計する段階でDBの実テーブル意識してるのか? ORMって結局モデルの(永続化)データストアとしてRDBを使ってるだけじゃないのかと言う気がするんだが それって本末転倒じゃないのか コードファーストとか特にその傾向が強い気がするんだが Entity Frameworkもそうだけど、更新系の処理がオブジェクト値を書き換えてSaveChanges()っていうのがなー。 いっそ式木によるSQLビルダーに徹してくれた方が適用範囲も広がるのに。 まあ、式木からUPDATEやDELETEを作り語ったら、拡張ライブラリを入れればいいんだけど。 >>247 やぱりおまえどうしようもなく馬鹿だな >>201 でEFについて質問してるんだから答えは的確 >モデルを設計する段階でDBの実テーブル意識してるのか? 当たり前だろアホww 頭の中でデータベースの論理モデルの設計もできてない段階で ORMのマッピング設定ができるわけがないだろww パフォーマンスと正規化原則のバランスとりながら どこまで正規化するか、JOINはどうするか、いろいろ考えて 最終的なテーブル設計をイメージしながら そのテーブルに対応するmodelをcode firstで書いていくんだろ スキーマ設計する前にModelやORMのコード書けると思ってる所がアホすぎる ORM使うならスキーマが前提だけど、コードファーストならそうでもないのでは >>250 テーブル設計・設定と、Object(model)のコーディングを同時にできるってだけだ 基本的にModelのコードがそのままDBのColumnになるんだから、 頭の中でテーブルの設計ができていないと書きようがないだろ ORMはDB設計を不要にしたり自動化するツールではない >>251 > ORMはDB設計を不要にしたり自動化するツールではない いやだからORMならスキーマが前提だって書いてるじゃん。 > 基本的にModelのコードがそのままDBのColumnになるんだから、 > 頭の中でテーブルの設計ができていないと書きようがないだろ 最悪(?)DBなしでも動くんだから、テーブル設計ありきという概念じゃないでしょ。 >>252 どういう意味?EF使うのにDBなしという意味は? >>253 コード・ファーストの特徴の一つはModelをPOCOで記述できること。 それ故、永続化レイヤーとの結合をシステム全体として緩やかなものにできる。 ビジネスロジック層も、大部分を永続化レイヤーから切り離すことができる。 ユニットテストも、データベースなしで実行できる部分が増える。 >>254 それEFでなくても出来るじゃん それこそDataSetの昔から ほとんどのケースで意味ないからしてないだけで CodeFirstのメリットなんて設計試作が簡単ってくらい DB設計は専門に任せる中規模以上の開発形態じゃほぼ意味を成さない >>255 > ほとんどのケースで意味ないからしてないだけで そんなことない。 他言語でも永続化部分をインジェクションするのは良くある手法。 > DB設計は専門に任せる中規模以上の開発形態じゃほぼ意味を成さない EFのコード・ファーストは、永続化レイヤーと切り離せるのがメリット(というかそうするのが主目的か?)なので、 それに意味をなさないと思うのならコード・ファーストは無意味だね。 >>255 > DB設計は専門に任せる中規模以上の開発形態じゃほぼ意味を成さない なんで?仮に先にDBスキーマありきだとしても、ModelをPOCOで書けるのはメリットあるだろ。 >>256 実際にEFあんまりさわってないからイメージできないんだが コードファーストが永続化レイヤー(ここではDBだわな)と切り離せるのがメリットなのか? コードファーストってコードによりDB(テーブル)作るんじゃないのか? 本来のORMではテーブル定義やクラス定義を変更しても、マッピングを変更することにより 相手にその変更の影響を受けなくする事が出来るだろうけど コードファーストでやってモデル定義やテーブル定義変更して、影響を抑えられるの? それが出来ないなら、永続化レイヤーとの切り離しとは何を意味してるの? >>259 > それが出来ないなら、永続化レイヤーとの切り離しとは何を意味してるの? Model層以上の永続化処理との切り離し。 >>260 もうちょい詳しく言ってくれんと分からんが 永続化処理までフレームワークに任せる事により、永続化されてる所を意識しないってことか? それって永続化レイヤーを切り離してるんじゃなくて、永続化レイヤーまで内包して 一体化してるんじゃないのか? >>261 悪いんだけど、まず「永続化非依存」でググっていくつか記事を読んでくれないか。 >>262 コードファーストで永続化非依存を実現する記事を紹介してくれ 日本語じゃないとちゃんと理解できないからなるべく日本語のやつを 永続化非依存の人に聞きたいんだが あるシステムを開発して、そのDBをコードファーストで作成したとする そのDBを別の新システムからも使うようにしたい そのために、今のテーブルにカラムを追加したい 元のシステムのコードは変更するべきか否か? コードファーストではDBとコードは(将来にわたって)一致すべきか? 変更しないなら、その時点でコードからのDB作成という概念が外れるわけだが 永続化レイヤーに依存しないなら、当然変更すべき理由はないわな 一般論じゃなくて私見でも良いので答えてくれ 階層がたくさんある時にいちいちMapRoute書くのクソ面倒なんですが何か簡単な方法ありませんか monoでMVC4動かない、.Net framework 4.5に一部対応したって書いてるけどASP.NET 4.5は非対応 っつーかMVC4〜5ってEntity framework含めて4.5依存多すぎて実質MVC3%2b.Net framework 4.0でしか使えないんじゃないのか?w >>264 そもそもコードファーストなんてのが頭おかしいって分かるでしょ? アプリケーション専用のデータ置き場程度に使うならいいけど、様々なアプリから アクセスされるであろうシステムのバックエンドに使うなんてとんでもない。 これは非常にスジの悪い技術だよ。 >>270 単なるデータストアとして使うぐらいなら良いんじゃないの、ってのは俺もそう思うんだが コードファーストが >永続化レイヤーとの結合をシステム全体として緩やかなものにできる >永続化レイヤーと切り離せるのがメリット と主張する人がいるんですが >>271 端的に言えば コードファーストなんてのはDDLをC#で置き換えただけで 本質的にモデルファーストと何も変わってない。 永続化非依存の話については データモデルをPOCOで扱うなんてのは別にモデルファーストでもできることで コードファーストとはまったく何の関係もない。そんな主張はバカ。 年明けからASP.NET MVCの爆発炎上している案件に突っ込まれそうなんですが、 今のうちに勉強しておいたほうがいいことはありますか? とりあえずVS2013 Express for Webはインストールしてみまみた。 あんたが元々何の仕事してたかによるが 気をつけることとしては、EFは「使わない」こと 上でやたら押してる阿呆がいるが耳を貸してはいけない EF6になっても仕様バグだらけだ そしてASP.NET MVCはEFなんぞ使わなくとも全機能使用できるし、 EFさえ排除してしまえば分かりにくいところはほとんどない Model関連で戸惑うかもしれないが、EF部分をLINQにでも読みかえれば概ねおk サンプル読み替えとかでわからないことがあったら聞いてくれ >>274 > EF部分をLINQにでも読みかえれば概ねおk 既に炎上してる位進んでいるプロジェクトで、EFを使わないとか言い出せるもんかな。 >>274 仕様バグって何のこと言ってるんだろう あんたが使い方わかってないだけじゃないの >>275 274はEFもLINQ使ってるのも知らないようだね >>276 もう「自分表示回りしか知らないんで」つってDB回りから逃げるしかなかろうな どうせ炎上してんのそこ(EF)だろうけど MVCで他にハマりどころなんてほぼないし 強いて言うならDisplayForとかをカスタマイズしようとして余計なコスト掛かってるくらい? >>279 フレームワークにハマりどころがなくたって炎上するプロジェクトなんていくらでもあるし むしろそっちのほうが多いだろw >>280 さてそうかな? 大抵のフレームワークにはバッドノウハウって奴があって、炎上案件は大体その地雷踏み抜いた奴だ 一昔前はともかく、今時は仕様ちゃぶ台返し食らったって炎上まで行かないよ お客さんもわかってくれてるからね昔と違って EFがダメなのは俺も言い出した口なのであれだが、 お前はあまりに粘着しすぎてキモイのと、 そもそも、あれで炎上とか、変。 >>282 誰だと思い込んでるか知らんがまず日本語が変だな君 >>247 仕様バグと言う糞トンチンカンな言葉を使っている時点で、 どういうレベルの場所にいるかだいたい察するよ。 言うなら設計ミスだろ。 安価ミスにも気づかないとは程度が知れるな ま、レベルの場所とかいう俺様用語使ってる時点で同類だは ASP.NET MVC の Controller クラスについて質問があります。 Controller クラスは、リクエストがあるたびに new されるのでしょうか? それともJava Servlet の Servlet クラスのように、1つしかインスタンスが作られず、マルチスレッド間で全てのインスタンスが共有されるのでしょうか? 前者であれば、Controller クラスにフィールド(プロパティ)を作成しても、同時に複数のリクエストがあっても問題ないですよね。 ASP.NET MVC 3縛りの環境で使えるASP.NET Identityみたいなライブラリありませんか? Oracle10gでEntityFrameworkを使用する術はありますか? >>292 接続クライアントに最新のODP.NET入れてVS2010以降ならいけるんじゃないかな 付属のクライアントだと無理 ODP.NETだけバージョンアップできるんですね。知りませんでした。ありがとうございました。 MVCでEntiryFramework使わないパターンって、Oracle接続してSQL発行する処理をモデルに作れば良いんですか? そゆ例がどこにもないけど、なんかダメなのかなー >>295 別に問題ないでー モデルの存在意義がそもそもそういうものだ ありがとうございます EntityFrameworkなかなかめんどそうなので、普通にSqL発行します >>297 micro ormの類いを使うといいんじゃないかな。 dapperとか。 >>298 恥ずかしながら初耳のものでググりました。 複数システムでテーブル共有する状況でも使えていいですねこれ >>300 monoと協力するとも言われているし、直接使うことはなくなるかもしれないけど、 恩恵は受けるんだろうね。 あと、ライセンスがAPLになるおかげでMS純正のコードをmonoがそのまま利用できるから monoは独自にパワーアップできるとも取れる。 >>299 まともにADO.NETを使うとか 俺俺フレームワークでラップするとかは今どきNGだと思うので、 やはり薄めのORMをかませるといいと思うよ。 EF使ってても複雑なクエリは結局SQL書くし 数年前の自分もdapperあたりで手を打っておけばよかったと・・・。 EF7は薄くする話らしいけど、どうなるやら。 .NETのOpen Source化で ASP.NETがLinux serverでも使えるようになるなんて嬉しいね 前からMonoはあったけど情報少なくて使い方がよくわからなかった。 >300-301 http://www.itmedia.co.jp/news/articles/1411/13/news052.html Microsoft純正でLinux/Mac用.net runtimeが出たなら Mono使う人はほとんどいなくなるんじゃないの >>302 dapperってリレーションは使えるの? >>303 > >>302 dapperってリレーションは使えるの? テーブル間のリレーションを解決させるという意味なら、 もちろん不可能。microじゃなくなっちゃうしw クエリリザルト→オブジェクト変換のフレームワークと捉えれば良いかなと。 ActiveRecordパターンとは違うよ。 StackExchange/dapper-dot-net · GitHub https://github.com/StackExchange/dapper-dot-net ん?どの辺がDataSetっぽいの? オブジェクト側はもっとシンプルなんだが・・。 Fluent NHibernateをおすすめしてみる マッピングがクソ面倒だがDevartのツール使えばすべて自動でやってくれる monoでも安定して動く 初心者の質問で恐縮ですがよろしくお願いします。 いま、DBのデータを画面に表示する勉強をしています。 ADO.NETで取得した結果を予め用意したクラスに代入して、それをコントローラからビューに渡しています。ビューでは「@モデル クラス」を記述し、DisplayForなどで画面に表示はできました。 が、複数テーブルのデータを表示する方法が分かりません。 コントローラで持ってる複数のSQL結果をビューに渡すにはどうすればいいのですか? >>308 SQLの習熟度はどんなもの?結合(join)って分かるかな・・? > コントローラで持ってる複数のSQL結果をビューに渡すにはどうすればいいのですか? これの意味は ・2テーブルを、それぞれ分けて2個の表に表示したい ・結合して2テーブルの情報を1個の表に表示したい どっちでしょうか。 >>309 アプリ開発経験はないのですが、SQLは分かります。 教えて頂きたいのは前者です。 複数のSQLを発行した場合の、ビューへの渡し方が分かりません。 >>310 なら話は早いですね。 まずは単純にBigViewModelな方法でいいんじゃないでしょうか。 とりあえず表示できるようにはなるかと。 http://stackoverflow.com/questions/4764011/multiple-models-in-a-view その後、想像するにControllerでSQL発行などやっているようであれば Model側に分離すると良いです。 (MVCらしくしたければ) 分離の仕方はいろいろあるので、趣味レベルならこだわりすぎないことですが。 http://blog.shibayan.jp/entry/20111231/1325304627 「ASP.NET MVC 5実践プログラミング」とか一冊あると捗るんじゃないかなー >>311 登録画面で複数のドロップダウンに複数のリソーステーブルの値を設定したかったので、解決です。 ありがとうございました。 MVCの分離も気をつけます。 また、本も買ってみようと思います。 Linux上で実行できるようになったと聞いて飛んできました Google App EngineのDocker対応で、ASP.NET MVCも使えるようになるのかな? ついでにMS純正IDEもオープンソースにして(Eclipseみたいに) LinuxやMac OS Xで動くようにすりゃいいのにな Windowsの糞フォントレンダラで描画されたソースコードあんまり見たくないんだよね… linqの item.where(i => i==2) のような表記は理解できますが、 mvcの foreach(var item in Model){ @Html.Displayfor(modelitem => item.ID) } が分かりません。 item=>item.IDじゃないのは何故ですか? >>315 @Html.Displayfor(() => item.ID) ・・・にしたらどうなる? >>315 ttp://forums.asp.net/t/1923928.aspx?in+Html+DisplayFor+modelItem+item+Genre+what+is+modelItem+ >>318 「初めの頃みんなつまづくとこだよ! modelitemは使ってないからきにすんな。foreachのとこでItemがあるから、Item.IDでつかえるんぜ!」 「んー、ちょっとまだ理解できてない。まぁおれまだC#の勉強終わってないし、終わった頃にはわかってるかもね」 MVCわかりません。 {[ID][名前][所属ID]} と {[所属ID][所属名]} テーブルがあったとして {[ID][名前][所属名]} を画面に表示したいときは class test { int ID; string name; string section; } みたいなクラスにSQLの結果をマッピングしなさいってことなんですか? >>321 ちがいますか(´・_・`) どこが間違っていますか? 強いて言うなら、あなたがASP.NET MVCなんてやろうとしていることが間違いです。 >>323 Mの役目は、DB→クラスのマッピングかと思ってますが、間違ってますか?(´・_・`) >>324 荒いけどあってますか^ ^ ADO.NET→クラスへのマッピングだけで疲れちゃいそう >>325 ORMを活用すればいいんじゃないかと。 勉強が目的ならそのままでも構わないけど。 >>325 >Mの役目は、DB→クラスのマッピング マッピングそのものはモデルの本来の役目じゃないよ 元データがDBにあればマッピングする事によって結果としてデータを用意できるってだけで あくまでもビューのためにデータを用意するのがモデルの役目 マッピングはそのための手段 DBからクラスを生成するのは、そのためのフレームワークがあるからそれ使うのが一般的 >>326 >>327 既存のDBという事と、ORM未経験ということもあり、EFは避けてました(._.) >>328 分かりやすいご説明ありがとうございます。まずEFを試した方が良さげですね(._.) micro ORMでもいいんじゃないかと。 どうせ既にSQL書いちゃってあるんでしょう? >>330 ありがとうございます。 マイクロORMも他もそうなのですがMVC関連 の情報が少ないですね。みなさん何処で知識を得てますか? 実践プログラミングは買いました。 dbに変更があるたび削除してる。 マイグレーションわかりにくす。 いい解説サイトか書籍教えてくだされ。 >>111 >>112 これ試してみよう 他にもあればよろしく なんで Html.BeginForm の中に Ajax.BeginFormは入れられんのですか なんで modelをstaticにするとほぼ同時のアクセス同士だと、それ共有しやがりますか staticにした俺が悪いんだけど ASP.NET MVC 3 以降で EF でなくて DataSet 使ってるケースって あるんだろうか・・・。 >>338 db周りが古いまんまのプロジェクトならありえるんじゃね? 新規で作るんならメリットないと思う。少なくとも自分だったら全力で回避したい PDFフォームからフォームデータをPOSTしく、 見よう見まねで以下のようなコードを書いてみたのですが、 引数はnullでした。 [AcceptVerbs(HttpVerbs.Post)] public ActionResult Index(HttpPostedFileBase fl) { return View(); } どのように書けば、PDFフォームのフォームデータ(FDFファイル?)が 取れるでしょうか? POSTするFORMのname属性が定まって無いケースで、 POSTの情報を受け取る事はできるでしょうか 例えば、以下のようなコードだと [HttpPost] public ActionResult Index(HttpPostedFileBase postedFile) { return View(); } html側では <input type="file" name="postedFile" /> としていないと、ダメですよね PHPであれば、 $data = file_get_contents("php://input" ); で、生データを取得することができますが、 ASP.NET MVCに、そういう事はできるのかなと思いまして POSTの中身はRequestに全部入ってるが inputタグだけ取り出すのは自前で書かにゃならんと記憶 fileだけでいいのならRequest.Filesで良い気がする 頂いたアドバイスを参考に、InputStreamを見て見たら、 欲しい情報が入っていました。 ありがとうございました。 >>345 さくらのVPSは費用対CPUパワーなどなどの指標で見れば優秀だよ PaaSのレイヤのサービスが皆無とか、データの多重具合がよく分からんし防御という点では貧弱そう、まあどこを重視するかによって長所は変わるでしょ 仕事で使いそうなんでASP .NET MVC5 実践プログラミング読んでるんだけど、 ここの人たちみんな超人に見えるよ。難しい・・・まずHTMLを勉強したほうがいいかな >>348 はい、htmlは前提知識です。 htmlを生成してブラウザに送りつける仕組みだから、出てくるモノが分かってないと何作ってるか分からない。 徐々に覚えられるけどね。 >>348 あれ分厚いからなー。 心折れるよね。 コードファーストらへんは使いこなす自信ないわ。 M$の陰謀でEFとセットで語られちゃってるのが不憫だわMVC まあControllerとViewの話だけだと1/5くらいになってしょぼく見られるのもあるんだろうけど あとRoute関係が素だと極めてデバッグしにくいのも難点 ちょっと階層分けしようと思うとすぐハマる VS2015まだ触ってないけどちったーマシになったかねえ まあそれはしょうがないんじゃね。 おおっぴらにdapper使ってとはいえん。 LINQ to SQLじゃダメなんですか(真顔 なんで打ち切りになったかねえ 更新系は確かにあかんかったけど >>349-350 レスサンクス。 ちょっと方針変えてHTMLの強化から始めてみます。 >>353 いやそこは型付きデータセットで つか、EFって自己追跡エンティティ廃止されたから、オブジェクト単体で変更追跡出来なくなっとる 変更追跡のためにデータセット使ってるプロジェクトあるんだがどうしたもんだろうなぁ dapperって変更追跡できる? >>353 LINQ to SQLはオワコンなのか? 時代はMVCかなと勉強を始めて2日目の者ですが、 下記のようなテーブルの「行-2」の行の全データをコントローラ側に POSTする場合、どのようにやるのがMVCでは一般的なのでしょうか? <table border=1> <tr><th></th><th>列-A</th><th>列-B</th></tr> <tr><td>行-1</td><td>A-1</td><td>B-1</td></tr> <tr><td>行-2</td><td>A-2</td><td>B-2</td></tr> </table> WebFormだとGridViewで出来るのですが、 MVCにはコントロールが無いので困惑しております。 よろしくお願いします。 基本的にはモデルバインドでやるが配列だとちょっと面倒 Html.xxForは使えないから自分でinput name属性にモデル内の該当変数名と添え字記述する 詳しくは「asp.net MVC 配列 POST」でggr モデルがキーワードなのですね。 勉強します。ありがとうございます。 スマホアプリ用のサーバーアプリってこれで作れますか? HTMLは使いません これよりもっと最適な方法があればご教授下さいませ >>361 iOSアプリと連携するやつ作ったことあるよ。ものにもよるだろうけど作れるよ。 SOAPやRESTで返すようになるのかね。 自前プロトコルでも実装できるだろうし物次第かな。 >>361 ほぼ素のHTTPを操作できるからこれでも作れるが他でも作れる JSONで通信する場合は若干楽だが他と比べて格別かと言うとそうでもない つまりC#が得意ならこれでいい PHPが得意なら他をあたれ >>365 >>366 この辺の話はあんまり情報がないので凄く参考になります ありがとう MVCを勉強中なのですが、 ある条件を満たしたらscriptを動かすという処理を ViewBagを利用したフラグで制御するのは、 アンチパターンになるでしょうか? <script type="text/javascript"> $(function(){ @if(ViewBag.flg==true){ parent.$.parentFunc(); }); } </script> scriptを別のファイルに記述出来ないなど、 あまり良い書き方とは思えないので。 >>368 俺ならjsの変数にコピーする アンチパターンかは知らん >>355 できない dapperは機能が少ないかわりに高速っていうORMだよ >>353 LINQ to SQL は DBに依存するから打ち切りになったとか そういう理由を見た気がする >>356 とっくの昔に終わってる。いまはEntity Frameworkでしょ >>370 LINQ to SQLは派閥問題で打切りだってばっちゃがゆってた DB依存って言ってもなぁ どうせMSはSQLServer用しか作らんのだし、同じ事はEFにも言えるだろうからなぁ むしろEFに完全に吸収されたってイメージなんだが >>372 MSは作らなくとも、割とコミュニティとか作ってるんだけど。 Oracle他のベンダも作ってるぞ。 イメージでモノを考えすぎ、笑われるぞ。 >>372 Entity Frameworkはオープンソースだから 他のDB用も開発されている 開発者にとってはDB変わっても同じコードで かけるのはEFの大きなメリット >>373 笑うところが解らんが MSがOracle用のプロパイダ作ると?(これは可能性はなくも無かっただろうけど) OracleがSQLServer用のプロパイダ作ると? >>374 オープンソースかどうかはわからんが LINQ to SQL でも同じ事言われてたはずだけど LINQ to SQL の時点でもボラクルプロバイダのアナウンスはあったはずだが 実際にリリースされたかは知らん 今の段階でEntityFrameworkはオラクルでも使えるのか? MVCでセルフホスティングって可能なのでしょうか? IIS使わなくて済むなら嬉しいと思い 検索しまくっているのですが、 なかなか情報が無くて >>378 Web API ならできるようだけど MVC はできないと思う >>379 どこがでたらめ? ORACLEが作るのはORACLE用プロパイダだろ MSはORACLE用のプロパイダは作らないし ORACLEはSQLServer用のプロパイダは作らない >>378 mono使えばLinux上でIIS無しで出来るみたいよ 手間はかかるだろうけど >>378 >>383 >>381 MVCもWeb APIもまだできない。 次のバージョンで対応予定と書いてあるでしょ 俺もLinux(OWIN)でMVC使うのを楽しみにしてる The next major version of Katana is part of the ASP.NET vNext project on GitHub, including support for ASP.NET MVC, Web API, and SignalR. http://katanaproject.codeplex.com/wikipage?title=roadmap& ;referringTitle=Home katana3.0から1年たったからそろそろでそうなのになあ まだ出来ないんですね。 情報が皆無だったんで、無理っぽいなーと 思ってましたが、やはりですか。 情報ありがとうございます。 >>384 OWINオワコンになったんやで みんな騙されたんやで Linuxの.net frameworkもまだリリースされてないんだよね? >>386 オワコンになったと考える根拠を述べよ。 ナデラになってからオープンソース路線だし asp.netがIIS専用フレームワークに後戻りするとも思えない 単純にリリースが遅れているだけでしょ >>385 ASP.net on Linuxは情報ほんと少ないよね めんどくさいからPHPでいいか、と挫折したくなる PHP7.0でかなり高速化したらしいし >>388 >>387 は >384 と同一人物だ 海外サイトも含めて情報収集はしてる まだLinuxでMVCは使えない IIS以外でMVCが使えない限りいまはASP.netは興味ない IISでならMVCつかったこともあるし Linux+Monoでasp.netならエラーだらけになるのも知っている セルフホスティング? Node.jsみたいなもののことだろ Webサーバをつかわずに自分でhttpの待ち受けする事じゃないかな IISExpressはセルフホスティングですか(小声 ISS無しで動くようにしてほしいのは確か windows serverの売り上げ落ちるだろうけど phpやrubyを超える人気になるかもね >>389 何年前の話しだよw .NET Coreも白んで偉そうに語るな、低脳 >>395 国際宇宙ステーションは無しでも動くようにして欲しいよな セルフホスティングとかちょっと前のDBのプロバイダのところとか、こういうところは おなじ静的型付け言語でエンタープライズ向けのJavaと比べて本当に遅れているよな。 C#のLINQはすばらしいし、webフレームワークとしても、ASP.NET MVC は SpringFramework なんかよりずっと使いやすいのに。 そりゃWindows以外のOSやSQL Server以外のDBが売れても直接はMSの儲けにはならんからな そう考えると、今の方向性は良いとは思うがどれだけ維持できるんだろうな 今のマイクロソフトはAzureを売ることが至上命題だから Linuxだろうがオープンソースだろうが何でもいいんだよ >>396 何年先からタイムリープして来たんだよ .NET Coreは知っているからこそ>389で 「Linux+Monoで」と注記している。 あなたの住む世界では すでに.NET Coreがリリースされてるわけ? ASP.NET 5がリリースされているわけ? 低能だからリリース日も知らないんだろう >>399 クラウドで儲けるつもりでしょ Cross PlatformにしないとJavaにやられるだけだし ユーザー本位の技術で戦うしかない なるほどAzureか あれの強みはOSメーカーがやってる所かとおもってたけど 本気でクロスプラットホームなのかねぇ >>401 どこの世界で調べものしてるんだよw Previewなんてとっくに出てるし、ソースの公開も始まっとるやんww さすが、本物の低脳は一味違う >>404 苦し紛れなレスはいらない リリース日も知らないのか、と書いてるんだから RTM前のものがあることくらい知ってるわ お前、正式版がリリースされていると誤解してたんだろ プレビューのクオリティで採用するのは個人レベルのお遊びだ 本番環境はプレビューでは動かせない .NET CoreだけでなくASP.NET 5も正式版が出ていない まだ人柱ビルド >>406 低能とは中身のないレスをつけるおまえのようなやつのこと マイクロソフト「弊社のASP.NETはどんな低脳でも使いこなせます。このスレをご覧ください。」 >>408-409 ASP.NETの話題かけないなら何も書くな 荒らしと同じ デスクトップアプリと同じような動作をWebに求める顧客にはWebFormが合ってる気がする。 ACCESSには、データベースからレポートを自動で作成できましたけど、 ASP.NETには、標準でレポーティングクラスってありましたっけ。 クリスタルレポートという名は知っているけど、ほとんど聞かない。 (レポートを出力する機能が不必要だということじゃないと思うけど、どうしてかな。) それとも、レポートクラスって、自分で実装した方がいいんでしょうか。 レポートクラスって、どのレベルのものを想定して言ってるんだ 単なるクラス1個でOKなほどレポート処理って単純なものじゃないんだが クリスタルレポートって今はついてないんじゃないか? 標準なら今ならマイクロソフトレポートってのがあるだろ 実業務なら多くはなんらかの帳票ツール買ってるんじゃね 俺はいちから自分で市販ツールと同じもの実装しようとは思わんわ >>417 マイクロソフトレポートですか。 ありがとうございます。調べてみたいと思います。 もし、これだけで目的に敵うのなら、自分で実装しなくてすみます。 もちろん、自分で作る場合は、汎用は考慮しません。 特定のエンティティーに応じたものを作ろうと思っていました。 ヴュースクリプトで使う型付きヘルパーメソッドActionLinkについて質問させてください。 引数は、一つ目(リンクテキスト)、二つ目(アクションメソッド)、三つ目(パラメーター)です。 この三つ目のパラメーターの指定では、匿名オブジェクトでプロパティーを設置して行います。 このプロパティー名は、ルートデフォルト設定の、/{contoller}/{action}/{param}で指定するパターンに書かれている名称(param)と同じである必要があるんでしょうか。 >>420 的確なお答えありがとうございます。 (やはりつながっていたわけか。) MVCフレームワークはいろいろ裏でつながっているので、 便利なのだろうが、察知力が必要だなと思いました。 今察知して、そうなのかなと思ったことは、 そのコントール/アクションへ制御を飛ばしてくれた「ルーティング情報」の、 /{contoller}/{action}/{param} URIパターンで使用されている名称が、 アクションメソッドから起動されたヴュースクリプト上のヘルパーメソッドに絡んでくるのかなということです。 (これは、正しいでしょうか?) 上の例(>>419 )では、デフォルトルーティング設定が使用されたので、 デフォルトルートのURIパターンで指定された名称が使われたのかなと思いました。 すみません、ありがとうございます。 つながっているというかだ 実際にレンダラーに渡されるURIはこう /{controller}/{action}?{param}=○○ モデルバインドで同名変数にクエリパラツッコむ関係上こうなるしかない訳 >>422 >つながっているというかだ すみません、この意味がつかめません。、 前後の文脈も大切にしたいので、お願いします。 つながっていると言うと密結合を意味しているように取れる MVCはURL階層ルーティングができるのが売りだが、それはクエリ方式にマッピングしているだけで 事実>>422 のようにアクセスしても全く同じ動作をする 密結合ならこんな途中入りはできない MVCはこんなように○○に見えるけど実際はXXに変換してるだけ、てのが多い この辺の考え方はモデルバインドで効いてくるから覚えとくといいぞ >>422 >>424 レスありがとうございます。 >>422 >実際にレンダラーに渡されるURIはこう >>424 >事実>>422 のようにアクセスしても全く同じ動作をする ちょっと見えてきました。 MVCは、URIルーティング対応でも、内部的にはクエリストリングでパラメーターを処理しているという理解をしたんですが、良いでしょうか。 >>419 で、ヘルパーメソッドActionLinkの第3引数に渡した匿名オブジェクト(プロパティを構成したもの)についてですが、 そのプロパティー名が、さきのクエリストリングのKey(?Key=parameter)に当たるのだと思ってすっきりとしました。 それだと、匿名オブジェクトに構成するプロパティー名は、クエリストリングのKeyに一致させる必要があるとわかります。 URI形式で、無骨に、/A/B/文字列 でアクセスするクライアントサイドの側からは、クエリストリングのKeyの存在は見えないため、混乱していました。 >>424 >こんなように○○に見えるけど実際はXXに変換してるだけ、てのが多い パラメーターのクエリストリングへの変換以外に、何があるのか気になります。 >>425 > 匿名オブジェクトに構成するプロパティー名は、クエリストリングのKeyに一致させる必要があるとわかります。 読み返していたら、やっぱり、わからなくなりました。 URIで指定されたパラメーターが内部的に、クエリストリングで処理されていることはわかりました。 しかし、ヘルパーメソッドActionLinkで作成されるのは、URI(/A/B/パラメーター)です。 ここにはクエリストリングのKeyは登場せずに、パラメーターだけがあります。 すると、あくまでURIを作成するActionLinkの第3引数に渡すパラメーター刻印用の匿名オブジェクトで、 そのプロパティ名とパラメーター名を一致させる必要性がわかりません。 ActionLinkは生成時にRouteを逆引きしているらしく、マッチングにクエリ文字列も使っているらしい ルーティングパターンが複雑化してくると意図しない物にマッチングすることがある 単純パターンのみなら不一致でも動くことが多いが、一旦ハマると原因特定が困難になる まあ一度地獄を見てみるのもいいぞ 何事も経験だ ○○に見えるけど〜の典型例はモデルバインド ControllerのAction引数に独自モデルクラスを指定できるが メンバをベタに書いても同じ動作をする public class HageModel{ public string hage{get;set;} public int hoge{get;set;} } public ActionResult Index(HageModel hg) これと public ActionResult Index(string hage,int hoge) は同じ >>427 すみませんレスが遅くなってしまいました。 ありがとうございます。 >ルーティングパターンが複雑化してくると意図しない物にマッチング >一旦ハマると原因特定が困難 ActionLinkメソッドはヘルパーすぎて、動作が見えなくなるところが怖いですね。 何をしているのか仕組みが見えていないと、初心者には反ってふさわしくないのかもしれないですね。 この例では、URIのルーティングテーブルの内容によって、予期しなかった(夢にも思わなかった)リンクが生成されることで、 バグに悩まされるという問題ですね。 >Action引数に独自モデルクラスを指定できるがメンバをベタに書いても同じ動作 まだ理解が追いついていなくて、アクションメソッド内で、Viewメソッドを用いることで、ヴュースクリプトを起動してそこに、モデルオブジェクトを渡せるくらいしか知りません。 アクションメソッド自体に、モデルを渡すとどうなるんだろう??? やってみると分かるが、ViewからクラスをActionにPOSTすることはできない メンバを一つ一つ指定してやる必要がある それらをモデルクラスのプロパティ名とマッチングして代入して引渡まではライブラリ側でやってくれる モデルクラスにないものを指定するとルーティングでアンマッチと見なされる 逆にモデルにあってクエリになくても数値型以外は省略可能なのでマッチする >>429 レスありがとうございます。すみません。 >ViewからクラスをActionにPOSTすることはできない >メンバを一つ一つ指定してやる必要がある 今は、紫の本で勉強中です。ちょっとわかりません。 ビュースクリプトにモデルクラス(Object型)を渡して、ビュースクリプトないで@foreachで回して、 構造を作成できるところまで知っていますが、 逆に、コントロール側にモデルを渡す段階にまで勉強が追いついてません。 しかし、考えてみれば、ポストバックによってクライアントからデータ投げられたデータを、 受ける必要があるわけで、その仕組みのことかなと予測してみました。その場合には、メンバを一つずつ指定する必要があるということなのかな。 勉強つづけます。 一つずつ抑えていますが、行間を読んでいって初めて理解するので、時間がかかります。 とくに、MVCはモデルやURIルーティングパターンを中心にして、クエリパラメーターをアクションメソッドの同名の引数に渡すなど、自動でやってくれるので、 理解が大変です。 これまでは、メソッドの引数定義の変数名なんてメソッド外部からは気にしたことありませんでしたが、MVCはそこまでC#を活用しています。 こういうことかな?こういうことだろうか?と行間を読むのは、でも楽しいかもしれません。 また何かあればよろしくお願いいたします。 ぶっちゃけた話 素のGET/POSTの仕組みを知ってからの方が数段理解が速いぞ ASP.NET2.0あたりとは設計思想が全く異なるから >>431 なるほど。素のポストバックなんて意識しませんでしたね。 ずっと、WEBフォーム使っていたので、すべてコントロールを参照するだけでいけましたから。 そういえば、一度、HTMLの参考書でも読んでみようかな。 しかし、HTML 2についての本が本屋でよく見られます。 MVCで作成されるHTMLって、バージョン2なのかな。 >>432 素のポストバックって、ポストバックはASP.NETの機能であって、言うなら素の POST htmlのバージョンで悩む以前に httpというプロトコルを勉強した方がいい ASP.NETっていうか、WEBフォームの機能だろ 普通MVCでポストバックとは言わない(使わない)だろ しかし、どう調べたら今時のhtmlがバージョン2とかいう事になるんだか 異世界の本屋か数の数え方の違う世界かね httpは2が来つつあるからごっちゃになったんじゃね でも本当、MVCだけ勉強しても上っ面しかわからないと思うよ それしか理解してなかったら割とすぐ行き詰まるんじゃないかな 大体もしASP.NET MVCがディスコンになったらどうするつもりだよ >>436 MVCせっかく勉強しているのに、それは勘弁。 今後も末永く、通用する技術じゃないんですか。 WEBフォームは、一通り勉強して、簡単なアプリなら作れるようになりました。 それなのに、MVCが主流になっちゃって。 >MVCだけ勉強しても上っ面しかわからない 自分は、逆で、html 5や、java script関連のクライアントサイド技術を直に扱った書籍を見かけると、まとまりのないように感じました。 材木が散乱している感じ。 まずは、MVCを理解してメインとして、必要に応じて、それらの「素」の技術を理解しようと考えました。 CSSについても、WEBフォームアプリを作りながら、デザインにも凝りたいと考えて、必要に応じて追加で勉強した感じです。 >>437 WebフォームがオワコンでMVCが主流ってわけじゃないぞ。 社内向けのアプリだとまだまだWebフォームの方が有利だろ。 >自分は、逆で、html 5や、java script関連のクライアントサイド技術を直に扱った書籍を見かけると、まとまりのないように感じました。 そんなんじゃなくてHTTP POST/GETの仕組み。 一度、c言語でフルスクラッチのCGIアプリでも組んで修行をしなおせwww >>437 Web開発は、html, css, js, C#, .NET Framework, Entity Framework, ASP.NETの知識など いろんな技術の寄せ集めだから、積み上げていくしかないな >>438 Cなんて回り道しなくても、C#やPHPのserver sideのプログラミング書籍に HTTPの基礎くらいは解説されてるでしょ >>439 >Cなんて回り道しなくても、C#やPHPのserver sideのプログラミング書籍に 手元にあるASP.NETの書籍見てみたら500ページ中の3ページで解説していたが その程度の説明じゃ分からんな。普通は軽く読み飛ばすでしょう。 >>437 にはライブラリに頼らずに受信データの自力パースからの難行苦行が必要だwww Web開発は、デザインも含めてかなりの広範囲の高度な知識が必要だが 評価が低くてドカタ扱いしかされてない気がするのは気のせい? >>441 日本ではWebに限らずにソフトウェア開発者の地位が低い 待遇よくしたければ欧米先進国で働けばいい。 俺も海外移住の準備中 >>440 回り道すぎるだろw 初級から中級なら、HTTPはPOST GETの仕組みや RESTfulの基礎がわかってればhttpはなんとかなると思う >>442 米国のソフト企業は朝出社したら、 何の前振りも無くオマエは今日からクビだから荷物をまとめて帰れって言うのがある。 実際、米国の取引先企業で担当者(日本人)が突然消えて驚いたことがある。 他のヤツには必要ないが >>437 には難行苦行の遠い道のりが必要。 >>437 にはそう言う香りがする。 ちょっと、「変な奴>>443 」が出てきたな。 (>>443 は、>>438 >>440 の草が見えないらしい。) >>445 おう、性格も○ンチ○も曲がってるぞ。 ちなみに>>443 =>>438 =>>440 ね 昔々Web2.0とか言ってた時代がありましてな それはともかく>>437 煽り抜きで末永く通用するのはHTTPレベルでのGET/POST HTTP2.0なんて言っちゃいるが、ここまで大規模に普及しちまったモンの基礎はもう変えられない MVCはC#マッパーみたいなもので、無理矢理WinFormに仕立て上げてたASP.NETとは根本的に異なる まあ移行用にViewState相当ライブラリとか、せめてGridくらいまともなもん付けとけとは思ったがな ViewStateは大不評だったから切り捨てたのも分からんではないが >>447 ViewStateがあるから、ポストバック時のイベント処理ができていた。 イベント処理自体も不評だったんだろうか。 イベント処理が不評なら、Webフォームが普及する事はなかっただろうよ WinFormからの移行をしやすくした 当時として優れたテクノロジーってことを忘れるなよ〜 今はWEBアプリが大規模になって合わなくなったと。 イベントポストバック自体は良かった ただその実現手段としてのViewStateは大変不評だったぞ ソースが見るに耐えんわすぐぶっ壊れるわで ViewStateの仕組みで、どのコントロールの内容に変更があったのかが、 自明なので(イベントハンドラーが実行されるので)大変助かった。 >>447 ViewStateって画期的な仕組みだと思うけど。 某3rdパーティ製のグリッドサーバコントロールで作られたアプリの ViewStateが500Kbyteも有ったのには眩暈がしたが。 Web FormsはEvent drivenだからWindowsの開発に慣れた人には 開発しやすいんだろうね いずれInternet回線がMobile含めて超高速化したら httpにとってかわるステートフルなアプリ開発が主流になると思う。 InternetをLAN回線のような感覚で使える時代の未来ね ステートレスは画面遷移とかが煩雑すぎる。 >>454 SPAとWebSocketで良いんじゃないの >>454 ステートフルにするために、 ViewStateに持続させる必要のある値を書き込んで、制御しているわ。 ViewState とにたようなことをやっていた Java の JSF も、超使いにくくて Sun(Oracle)純正なのに、いまや誰も使っていない。 >>454 > Web FormsはEvent drivenだからWindowsの開発に慣れた人には > 開発しやすいんだろうね これはだいぶ前から言われているけど、やっぱり Web は Web 脳で開発しないとだめだと思うよ。 せやな WebFormから入ったから、クライアントサイドとの隔絶とかかなりの間理解できなかったわ 基本鯖はPOSTで送りつけてきたものしか知らん、と分かるまで随分掛った >>458 GET, POST, PUT, DELETEを鯖は食されまするが? GETはともかくPUTDELETE許可してる鯖なんてあるのか? RESTでどうこうしようとか、実際にどうするかはともかく WEBサーバ層ではじかれたら困るんだが >>458 そんなもの、WebFormでも理解している必要があるやんけ それとも、本気で知らなくても、WebFormはハードルが低いということなのか? そんな状態だと、バグに悩まされそうだし、改良のしにくい質の悪いアプリになりそう。 >>462 Webフォームでも、コントロールの開発とかするなら知らないとダメな知識ではあるが コントロール利用するだけなら、変更イベントがどうやって発生するかは知らなくてもあまり問題はない 目指すところはその辺全てフレームワークの裏に隠す事だったんじゃないかな まあ結局その目標設定は無理目だったわけだが >>462 WindowsフォームでもWin32APIメッセージ処理の仕組みを 理解してないと残念なプログラムにはなる。 どんなものでも低レベルな動きを理解していないと何処かで破綻するよな。 クライアント側でチェックボックス付きドロップダウンリストを使えるようにする方法ある? bootstrap-multiselect 使えば出来るんだけど、ASP.NET 側で制御出来ないし。 まだ今日半日くらい悩んでた程度の素人なのだけど、よい方法あったら教えてください。 VS2012 + IIS です。 最大で約180万円の報奨金――米マイクロソフト、バグ懸賞金プログラムの対象に「ASP.NET 5 Beta8」「CoreCLR」を追加 http://www.atmarkit.co.jp/ait/articles/1510/26/news095.html 最初に無があった 無は有を生んだ これが全ての真理 >>465 僕全然門外漢なんですけどASP側で制御できないってどういうこと? フロント側のJSで出した結果だけをASPに送ればいいんじゃないの??そういうんじゃなくて? >>468 自分も経験なくて言葉とか知らないの。分かりづらかったらごめん。 <select> を使用するのだけど、runat="server" とか入れるとエラーになってしまう。 つまり C# (とか)の側から直接触れなくて悩んでた。 で、今日、似たようなコントロールの ListBox とかを入れた場合のブラウザのソースコードの表示とかやったり js ファイルのなか解析したりして擬似的に表示や設定値の取得とかが出来るようになった。やってみるもんだ。w 気に掛けてくれてありがとう。 Node.jsなんかだと フレームワーク無し〜大小様々なフレームワークまで色々チョイス出来るわけだが ASP.NET MVCだと選択肢が1つしかない特大のフレームワークを無理やり食わされる感が嫌だ MVCの時点でフレームワーク選んでるのではw 一応、WebFormもあるので。 つーか、MVCもWebFormもなしでASP.NETだけっていう選択肢とかあるの? >>472 WebPagesも忘れないであげてください。 SignalRみたいなドマイナー技術使うくらいなら 本流のSocket.IO使った方が余程いいよ aspx ファイルの中に別の aspx(html) ファイルを動的に入れ込むにはどうしたらいい? 実験1 <!-- #include file="<%="test.inc"%>" --> → インクルードしたつもりのファイルの中身が表示されない。 ブラウザでソースコードを表示すると、まんま <!-- #include file="test.inc" --> と表示されている。 実験2 Response.Write( [インクルードファイルの中身] ) を使ってみる → html のタグ等は正常にソースコードに表示されているが、asp.net のコードがそのまま残っている。 ※ <label><%=message%></label> みたいに 実験1の応用で、<%if( no==1 ) { %><!-- #include file="test.inc" --><% }%> とかやってしのいでみたのだけど、 どうせならインクルードファイルそのものの指定を asp.net のコードでやってみたい。 お知恵があったら拝借させていただけると嬉しい。 ユーザーコントロール使ってそっちで読ます手もある さもなきゃプレースホルダでcsの方で読むか >>477 ありがとう。 ユーザコントロールなんてものがあったのを忘れてた。(知ってたのはwinアプリの開発の方だったけど) 試してみる。 みんなページのデザインどうやってるの? WindowsForm, WebFormでずっとやってきた人間には HTMLやらCSSやらで重い通りのページデザインが 全くできないんだが。 WindowsFormならともかく、HTMLとCSSで思い通りできんとか、それWebFormもちゃんと使えてないから まあデザインはそれ専門の本職の人に任せればいいんじゃない .net MVCで Html.LabelForでなく、Html.Labelヘルパーメソッド使った場合って、コントローラーの引数にはバインドされなかったりします? TextBoxヘルパーメソッドの方はバインドされてるんですが... WebFormみたいにLabelはサーバに送られないとかあるんでしょうか >>481 Labelヘルパー(や、WEBフォームのLabelコントロール)が HTMLの何にレンダリングされるか考えれば答えは明白だと思うが 最終的にはspanタグですね。 Htmlのformではinputやselect等のタグのみサーバ側に送られるので labelは対象外ということですね。 Webフォームしかやってこなかったんだが MVC入門本読んでて覚えることが多すぎて吐き気がするわ これは使いこなすの無理っぽい .net MVC前に HTMLやhttpについて オブジェクト指向、デザパタ、リファクタリング、テスト駆動 あたりを学んでからのが覚えやすかった あとはLINQや主要インターフェースについても >>484 html/jsの知識があるならMVCのほうがずっとシンプルだぞ 結果が予想できるのは大きい >>486 それは思う WebFormはHTMLぽくなくて取っつきにくい >>486-487 Web Formsの吐き出すHTMLは予測不能だからね あとWeb FormじゃなくてWeb Formsだよ 諸先輩方にお聞きしたいのですが 1つのページにsubmitのボタンと戻るボタンがあるのですが クライアントサイドでの検証を有効にしてると,戻るボタンを押してもエラーメッセージが 表示されるのですが戻るボタンを押した場合は検証しないように設定は出来ないでしょうか。 戻るを普通のAタグにすれば解決 戻るときにPOSTが必要だってなら設計から見直し >>490 戻る時にPOSTが必要なんでボタンにしてるんで 無理っぽいですね・・・・ >>490 です。 なんとか自己解決しました。 クライアントサイドで,押されたボタンにより検証を無効にするには jQuery.Validate.jsでは formnovalidate を付けるようなので 下記のようにしてみました。 <input type= >>489 です。 途中で書き込んでしまいました。それもアンカミスでした。 なんとか自己解決しました。 クライアントサイドで,押されたボタンにより検証を無効にするには jQuery.Validate.jsでは formnovalidate を付けるようなので 下記のようにしてみました。 <input type="submit" value=決定"> <input type="submit" formnovalidate value="戻る"> formnovalidateが付いてる戻るボタンを押した場合は 検証を回避し無事に前の画面に戻る事が出来ました。 教えてください。 web のページでボタンを押した後に、 サーバ側で移動先のページを指定して画面遷移させたいと思います。 ここで Response.Redirect を使用しているのですが、これを try - catch で括ると 必ず ThreadAbortException (スレッドを中止しようとしました) で例外が発生します。 ネットを見てると catch しなけばいい的な記事も見かけ、実際に try で括らなければ普通に動いているように見えます。 Redirect でのページ遷移はいけないことなのでしょうか。 例外が発生する理由自体は、ページ遷移が発生するので元のページ用の処理が不要になり スレッドを止められてしまうからと言うことらしいですが、 この理屈ではサーバ側でページ遷移したら回避できないように思うのですが。 >>494 WebFormsのほうかな? 第2引数をTrueにして直後にExitまたはReturnで抜けるか Falseにしてメソッド実行後のエラー一切出ない状態にするかどっちかだった記憶。 (TrueとFalseは逆かも) メソッド内部の例外で気になるのは開発時だけだから正直無視してもいい。 http://stackoverflow.com/questions/6707465/when-should-i-use-response-redirecturl-true https://msdn.microsoft.com/ja-jp/library/a8wa7sdt (v=vs.100).aspx falseにしてCompleteRequest()するのが正しい作法らしい trueだとパフォーマンスに悪影響があるとは書いてあるんだが 実際1.0時代に作ったシステムでtrue扱いいっぱいあるけど、気になるほどじゃない >>496 それ、Redirectと挙動違ってくるから注意な >>497 それと言うのは、Redirectにfalse渡す事なのか、CompleteRequest呼び出す事なのか Redirect(,false)なら、それ以降の処理が行われるって違いがあるんだが trueにしたときの処理に似せるためにはCompleteRequest呼び出した方が近いらしいぞ まあ俺はその辺の動作に影響されるようなコードは書いてないつもり 実際Redirectをfalseで呼び出すように修正してるところはあるけど、CompleteRequestは呼んでない どんな違いがどう問題になるか詳しく検証してないが、今のところ問題はなさそう >>495-499 ありがとうございます。 今日確認しました。 確かに Redirect( [url], false ) と CompleteRequest で望む動作になりそうです。 ただし指摘のように Redirect + false だと後続の処理が実行され、 CompleteRequest を実行すると、そこでそのメソッドは終了するけど続けて OnEndRequest が呼ばれるワケですね。 加えて、ThreadAbortException は特殊な例外で無視しても差し支えない。 結果、もともとは自分で書いたコードでもなく大きく弄るのに不安があることから、 catch に流れる部分だけを例外が発生しないように修正することにしました。 ☆ 日本を、再興させましょう。☆ 総務省の、『憲法改正国民投票法』、でググってみてください。 日本国民の皆様方、2016年7月の『第24回 参議院選挙』で、日本人の悲願である 改憲の成就が決まります。皆様方、必ず投票に自ら足を運んでください。お願い致します。 マ イ ン ド コ ン ト ロ ー ル の手法 ・沢山の人が、偏った意見を一貫して支持する 偏った意見でも、集団の中でその意見が信じられていれば、自分の考え方は間違っているのか、等と思わせる手法 ・不利な質問をさせなくしたり、不利な質問には答えない、スルーする 誰にも質問や反論をさせないことにより、誰もが皆、疑いなど無いんだと信じ込ませる手法 偏った思想や考え方に染まっていたり、常識が通じない人間は、頭が悪いフリをしているカルト工作員の可能性が高い 靖 国 参 拝、皇 族、国 旗 国 歌、神 社 神 道を嫌う カ ル ト 10人に一人は カ ル ト か 外 国 人 「ガ ス ラ イ テ ィ ン グ」 で 検 索 を ! 教えて下さい。 WebForm でアプリを作っています。 で。ブラウザで開いて、ページのソースを表示すると JavaScript で theForm と言う変数を作成しています。 これは form["FormタグのID"] を代入しているようです。 自分で JavaScript でフォーム上のコントロールを操作するときに便利そうに思えたので利用してみようと考えました。 この theForm は開発者が再利用してもよい変数なのでしょうか。 ついにCoreがリリースされたってのに過疎ってんな >>508 ASP.NET Core 早速MVCも作ってみた 今後vs2015でasp.netやるなら何使えばいいのかしら? ASP.NET MVC アプリケーションを ASP.NET Core MVC にマイグレーションしようとして挫折した話 - しばやん雑記 http://blog.shibayan.jp/entry/20160629/1467209826 今のところサーバ側がマルチプラットフォームでもあまり意味がないよな キミが意味を感じなくとも、WindowsサーバーのCALが浮くと発注者が知ったら対応しなきゃいけないかもね >>507 .NET Coreがリリースされていた。 LinuxやMacでもASP.net MVC使えるようになるのだから 人気でるだろうね >>517 大きなメリットあるよ application serverのライセンスが無料になる。 レンタルサーバでも使えるようになるだろう >>518-519 Windows Serverのライセンスが高くて個人では手が出せなかったけど これからは個人でも法人でもLinux+ASP.net MVCが増えそう BtoCのスタートアップがASP.NET MVC使わない理由はライセンス費用にあったしな AWS使う場合でもMSの取り分を上乗せした金額で請求される 資金力がない零細にとって無駄なコストは払いたくないに決まっている BtoBの受託開発ならMSに支払う費用だけでなく自分たちの取り分もついでに乗せて請求できるが BtoCはそれが出来ない(ランニングコストが上がれば自分たちの取り分が減る) クラウドのライセンス料の差なんて、 .NETのエコシステムで得られる開発効率&パフォーマンスからしたら 誤差って人たちも結構いるんだが。 >>522 どこにいるんだ 具体的に社名おしえて 俺が知るかぎりではカカクコムくらいしかないな http://www.find-job.net/list/j102099.html ソースはこれな >kakaku.comはWEBサービスとしては珍しく、Windows Server / IIS / SQLServerと言ったMicrosoftの >アーキテクチャを採用し、大規模サービスを運営しています。なかなか他では味わえない >Microsoft系アーキテクチャでの大規模WEBサービスを運営する面白みがあります 使ってる本人たちですら「珍しい」と自覚するくらい ASP.NET系で大規模サービス運営してるところ無いんだよな >>525 業務システムでの採用が多い印象だもんね ASP.NETやJavaの採用例が多いのはイントラ系BtoB(受託開発)だけどこの業界はブラック率めちゃくちゃ高い 世の中にあるホワイトIT系(電話とらなくていいよ、定時は15時だよ、社員食堂無料だよ、年収高いよ)は 殆どがBtoCであることを考えると、MVC.NET MVCよりもRailsやPHP使えたほうがQOLあがりそうな気がする WindowsServerじゃなかったらASP.NET使う理由ないと思うんだよな スクウェア・エニックスがコマースでASP.NETを採用する理由 http://ascii.jp/elem/000/000/531/531767/ こんなのもあったけど、いまはJavaになってるっぽいし >>529 理由は既に上がってるから、それをまず否定しないと。 >>527 .NET Core出たのだからこれからは RailsやPHPでやっていた案件もasp.net MVCになるでしょ Javaの案件もasp.net MVCに置き換わっていく。 ASP.net MVC覚えれば、小さなサイトからエンタープライズまで開発できる。 パフォーマンスの悪いRubyやPHPを選ぶ理由がなにもない 現時点での国内webアプリケーションエンジニアの数は BtoB Java圧倒的多数 BtoC PHP多数、Ruby、Perl、Pythonと続く(リスクがとれる大手はGoを試験的に始めた) 人材確保、教育コストの観点から既存の言語、フレームワークを継続する決断をする会社のほうが多いだろう ただしOracleに支配されたJavaを毛嫌いする人は増えてきてるので MSがオープンソース方面に協力的な姿勢を見せ続ければワンチャンスある >>532 そういう思考だから日本のITは後れを取る。 新人はいってすぐ人は入れ替わるんだから 新しくて優れた技術は取り入れないといけない。 新しい技術をみんなで覚えればいい話 エンタープライズまでカバーできる.NETでやるほうが教育コストは低い。 案件ごとに言語やフレームワークを使い分けるのは学習コストの無駄 そうは言ってもだね 日本のIT教育レベルを考えたら ぐぐるだけで解決策が見つかる 過去の資産豊富なPHPが有利なんだよね .NET Coreの資料なんて殆ど存在しない MS公式のドキュメントはまるで役に立たないし Qiitaは書き手のレベルがバラバラ、断片的な情報しかなく こっちもあまり役に立ったことはない Railsだとかなり詳細なチュートリアルが無料で公開されてるし 教育コストを考えると採用したくなる仕組みがあるわけよ http://railstutorial.jp/ これくらいの物量の記事を用意しないとついてこないぞ >>536 Rubyなどの動的言語だとパフォーマンス高いサイトが作れないだろ けっきょく他の静的言語も必要になるんだよ さらにRubyはバージョンアップで破壊的な変更がある。 すぐに過去のライブラリが動かなくなる だから保守にもコストがかかる 保守まで含めてトータルで考えるとASP.netで一本でやるほうが安くつく PHPも言語そのものがクソだから新人にそんなものあえて覚えさせる必要ない avfantasy.com が asp.netだったな ASP.NET MVCのPaaSってある? AzureだとWindowsライセンス代上乗せだから避けたい オープンソースになった製品群で構成された 安価でオートスケール可能なPaaSがあれば検討したいな 今はGAE/Goで構成されたシステムで運営してる >>539 Azureだと、ってのはWeb Appsも含めて言ってる? Web AppsはASP.NETが動くPaaSだし比較的廉価だと思うけど。 >>541 そっか、無料枠でAsp.net公開出来るけど、有償部分はケタ違いにGoogleのサービスのほうが安いのか。 ASP.NET Coreも出るし、Googleのサービスに乗っかるといいね。 >>541 この程度で使えないくらい高いなんて、 そもそもの収益力に問題あり過ぎじゃ・・・ 何使ったって、最終的な結果は一緒でしょ >>546 Session状態サービスの形態に依存するから? 管理サーバやDBを利用しないと、Webサーバの冗長化に対応できないから? HLBでラウンドロビン方式の負荷分散を行う場合に、設定が面倒? とりあえず、このスレにはそもそも人がいないし、答えられる人もいないことが分かった ASP.NET MVCの速度とかについてのいい記事ないかな ASP.NETとの比較はあるんだけど、PHPとかとの比較がみたい DB周りとかも気になる あまり早くなさそうだったらバイナリ+FastCGIもありかなって思うんだけどどうだろ MVCはぶっちゃけフロントはほぼまんまHTMLだから速度測定にあまり意味がない DBアクセスも外投げで含まれないし monoとそうじゃないのあるけど、linux上だったらmonoしかなくない? ゴミエンジニアが作り出すアプリなんて、 どんな言語使ったってゴミはゴミだよ 気にせずどの言語でも使って勉強するしかない >>554 日本語で検索したでしょ 英語ならたくさんベンチマークの記事あるよ 結論は、C#はPHP, Pytho, Rubyなどのdynamic languageに 比べてパフォーマンスで圧勝 C#.netのパフォーマンスはJavaとだいたい同等と考えておけばいい ASP.netに限らず、静的言語は動的言語よりかなり速い パフォーマンスはJavaやC#使っておけば言語については問題ない C#使って遅いようならAP server, DB serverを増やすしかない >>561 そんな安易に答え教えんなって。 インタプリタ型とコンパイル型(?)の両方の環境を使って負荷かけてみないと、なかなか理解できるものじゃない。 ベンチマークの記事で分かった風になるのがお望みならそれで良いんだけど。 .NETで作ったら一発目のアクセスは死ぬほど遅いンゴって言う未来が見えてるw (最近は緩和策があるから実用では問題ないけど、開発環境でね) area毎に必要なリソース類を分けておきたいんだけどnugetしてとってきたやつって手動で移動させたらまずいよね >>564 >>565 主にcssとjs類です せっかくarea毎に分割したから、そのリソースが参照されるスコープが狭くなるようにしたいと思った感じなんですが 普通はそんなことしないのかな web素人なので右往左往してます >>566 area使えれば素人以上だな。 独学してるの? >>567 独学です もともとc++やc#(webでない)はやってたんですがwebもちょっとは出来るようになりたいなと思いまして >>569 areaに分けずに最初から別プロジェクトで作ればいいんじゃないか? css,jsの類を分けたところで、なんのメリットがあるの? >>570 なるほどたしかに! >>571 なんと言えばよいか、コンポーネント的に扱えるってメリットにならんかな? コントローラ、ビュー、モデルがareaにまとめられるんならarea単位である程度完結してたらほうが、どのモジュールがどこで使われているか分かりやすそうだなーと思ったんよ >>572 名前空間を分けたいというところかな。 areaではなく、js,cssの世界でやればいいのでは(AltJSやSASSが得意なんだろうか)。 areaの本来の存在理由を勉強してみて。 ここで良いか分かりませんが質問です asp.netでimageコントロールを使ってて、ImageUrlを動的に(プログラムから)セットしてます。 image.ImageUrl = "hoge.asph?p1=1&p2=2"; みたい感じにすると、ブラウザで展開されたとき <img src='hoge.asph?p1=1&p2=2' /> になっちゃうんですよ んで、hoge.asphの側で 〜QueryString("p2").・・・がエラーに 勝手にエンコードしてくれてるぽいんですが、余計なお節介 どうやって回避してますか? <a href='<%= Hage %>'> のように直接書け え、マヂですか。 自動でエンコードしてほしいと思うプログラマなんて居ないだろうに・・・ つまりLiteralでHTMLタグをPassThroughで出せと 入力フォームで<>入れたらいきなり例外吐くようなポンコツフレームワークに何を期待しとるんだ さっさとMVCに移行してどうぞ Razorでリンクを生成する時にnameof使うのってどう思われますか? テキストだとActionがどこで参照されているか分からなくて嫌なのですが、 Url.ActionやUrl.ActionLinkの引数が文字列である理由は何かあるのでしょうか? http://stackoverflow.com/questions/27444121/how-to-use-c-sharp-nameof-with-asp-net-mvc-url-action また、cssファイルのimageのpathはチルダやRazorが有効ではありませんが、 View側はRazorを推奨しているのに、jsやcss内では異なる書き方をしないといけないのは二重基準ではないのでしょうか? デザイナーさんに説明しづらく、そもそもRazorのUrl.Actionなどの意義が分かりません。 http://stackoverflow.com/questions/5730528/in-asp-net-mvc-what-is-the-correct-way-to-reference-images-inside-of-css ご意見頂けますと幸いです。 ぶっちゃけM$に言ってどうぞ cssの仕様が腐ってるのはその通りと思うがこっちでどうにかならんしな >>574 Imageコントロールとか使った事ないな ImageUrlって勝手にエンコードするようなそんな仕様だったっけ HtmlImage使ってもダメなのか? WebGrid使うと<table>形式で出力されるけれど それを<div>の display:table display:row display:table-cell などを使って出力して、見た目は同じ表にしたいのですが可能ですか? >>582 なるほど。 その場合はPagerも自作するのでしょうか? そうよ 一から作ると面倒だがググればサンプルがある csvからリストに取り込みたいのですが、mvcだとopenfiledialogって使えないんですか?代わりに何を使えばいいですか? >>586 そうです。 csv形式のファイルをインポートして、データベースに登録します。 openfiledialogは使えません 代わりにtype="file" のinputタグを使って下さい こんな回答で良いんじゃねもう IAuthenticationFilterのOnAuthenticationChallengeってイベントは何をするためにあるんでしょうか? apicontrollerでexceptionをthrowすると、なぜか2回throwされてしまうんですが、どのような原因が考えられますか? それだけじゃあなにもわからん リスローされてるだけやねえの vs再起動で治りました。 原因は不明ですが。。。 それにしても人いないですね 最近やり始めたんですが、人気はないんでしょうか? 2chじゃなくてMSのフォーラムかStackOverFlowあたりにいるだけじゃね? コントローラーで返したviewをpartialviewに変換することって出来ますか? 中身だけ入れ替えようと思ったけど、読み取り専用でした ASP.NET MVCってあんま楽しくないなコレ ほんと上っ面だけいじらせてもらえる感じ MVCフレームワークって皆こんな感じなのか? そもそも上っ面以外の面倒をみるのがフレームワークなわけだが >>597 もちろんASP.NET Coreを触った上での感想だよね? いや、まだCoreには触れてないがもっと深いところまでいじらせてもらえるのか? とりあえず無印MVCに触れた感想は、これプログラミングというよりWebアプリ工作キットだなという印象。 EFでSQL操作も勝手にやってくれるし、至れり尽くせり。 優れたフレームワークかもしれないけど、便宜を図りすぎると工作キット感が出るよねという話 >>601 EntityFrameworkは全くの別物だからwww ASP.NET MVCはOSSになってるので、forkして深いところで触りたいとこ触ってオレオレフレームワーク公開してくれよ 誰も止めないよ んふふ、まぁ俺は自作パソコンって言い方も許せないタイプだから普通の人とは感覚が違うのかなW 自組パソコンに言い方変えたらっていう。 おまえの個人的な感覚なんて知らんわ なんか具体的に、これをやりたいけど出来ないって例出してみろよ DataTable DataRowでもRazorにブチ込めるよ。xamlにもブチ込める >>601 modelはdynamicだからDataRowブチ込める。EF使わなくてもMVC使えるよ >>601 フレームワークってそういうものなんじゃねえの あと本とかのサンプル程度だとほんとに簡単でスゲーって思うけど 実際業務アプリとか作ると工作キットなんて言葉は出てこないとおもうわ >>601 >とりあえず無印MVCに触れた感想は、これプログラミングというよりWebアプリ工作キットだなという印象。 キットみたいに使い易いならいいんじゃないか?何か問題あるの? 一回素のPHPで一から作って痛い目見ればわかるんじゃね? ASP.NET MVCと相性の良いjsフレームワークってなんでしょうか? せっかくasp.net使ってるんだから、nodeとか使いたくないって思うわ どうせ.NET開発なんてどうしようもないバカが混ざることは確定してるようなもんだから不自由なくらいで丁度いい PHPの保守性の悪さにいらついたからこっちに移ろうかと考えてるんだけどどこも仝なんだな 保守性は言語より設計と作り方の影響が大きいわな ダメグラマーが作ればどんな言語でも、クソの山ができる Areaのやり方が分からないんだが、Areaの詳しい解説が有るお勧めの本を教えてくれ。 確か山本のやつには詳しくあった気がする、黄色い方 といっても名前空間の拡張みたいなもんだろ >>626 VisualStudioのGUIからAreaを追加したけど動かない、てことだったら、単にrouteが追加されてないだけかも。 Startup.csの Configureメソッドで、app.UseMvcが app.UseMvc(routes => { routes.MapRoute( name: "areaRoute", template: "{area:exists}/{controller}/{action}", defaults: new { action = "Index" }); routes.MapRoute( name: "default", template: "{controller=Home}/{action=Index}/{id?}"); }); こんな感じになる。 公式のMusicStoreサンプルを見た方が早いかも https://github.com/aspnet/MusicStore >>626 ごめん、>>628 は.NetCoreスレと間違えてた。 MVC5だと書き方変わりそうな気がする。 そもそもAreaって何のためなのか分からんのだがなんなん? 物理的な場所と結び付けるの? そうしたらそのAreaに合わせてローカライズできるの? >>630 ControllerやViewの役割をより明確に分けるため >>631 単なるビューかコントロールかのグループってこと? 何を基準に分けるの? >>632 Admin権限をもつユーザーだけアクセスできるAeraとか 誰でも簡単にネットで稼げる方法など 参考までに、 ⇒ 『半藤のブブイウイウレレ』 というサイトで見ることができます。 グーグル検索⇒『半藤のブブイウイウレレ』 7G6JXCY72A ☆ 日本の、改憲を行いましょう。現在、衆議員と参議院の 両院で、改憲議員が3分の2を超えております。 『憲法改正国民投票法』、でググってみてください。国会の発議は すでに可能です。平和は勝ち取るものです。お願い致します。☆☆ web開発すら初心者な質問で恐縮ですが、 Javascriptで算出した変数をcshtml内で利用するにはどうしたらいいんでしょうか。 <script src="javascript.js"> var vavava = 算出した値 </script> @{ if ( @vavava == "xxx){ 処理 } } 上記のような使い方や、ActionLinkの引数で利用するようなことです。 ご回答よろしくお願いいたします。 そもそもこういった処理は作法としてやらないものなのかもあまりわかっていません。 if文まではjsで書く ActionLinkならaタグ直接書く Actionは多分無理 何故ならHTML構築途中だからサーバーサイド つまりjsが稼動していない 開 2 ち ゃ ん ね る= 便 所 の 落 書 き ・ 痰 壷 の 更 に 劣 化 コ ピ ー の 3 流 掲 示 板 運 営 の 性 格 の 悪 い 引 き こ も り I T 土 方 メ ガ ネ ザ ル 早 く 死 な な い か な あるビューから別のコントローラーアクションのビューに遷移するとき、 時間がかかるのですが、これを早くするための工夫はありますか? また、ビューの表示前にローディングのぐるぐるでも表示しようと思ったのですが、 うまくいきません。 同一ビューでAjax通信をする処理であれば、jqueryで対処しているのですが、 別ビューの場合は、そもそも何も表示されていない時間が長すぎて、 そのあとでぐるぐるが表示されてもあまり意味がないなあと >>641 まずなにで時間がかかってるのか調査するところからじゃね? 描画なのか、コントローラー内の処理なのか。 仕組み的にコントローラーが別で時間が異なることはないので。 Indexで全一覧データを表示した後、詳細ページに遷移した後に ブラウザの戻るボタンを押したら、Index画面の一番上に戻ります。 これを元にスクロールしていた位置に戻るにはどうしたらよいでしょうか? Javascriptなどで制御するのでしょうか。 >>643 Indexの呼び出しがPOSTになってない? Getならブラウザの挙動で勝手に戻ると思うけど プログラミングを誰でも習得できる方法は、「前場アキドルのプログラミングマスター方法」というブログで見られるらしいよ。ネットで調べると見られるらしいです。 30C5C 速習 ASP.NET Coreのスキャフォールディングで以下のエラーが出て困っています。 選択したコードジェネレータを実行中にエラーが発生しました。Method not found 'Void' Microsoft.EntityFrameworkCore.Design.Internal.DbContextOperations..c (Micorsoft.EntityFrameworkCore.Design.Internal.IOperationRepoter, System.Reflection.Assembly,System.Reflection.Assembly)'.'です。 bookテーブルは作成できています。 その前までの章までのサンプルは動きました。 私たち日本人の、日本国憲法を改正しましょう。 総ム省の、『憲法改正國民投票法』、でググって みてください。拡散も含め、お願い致します。 日本国憲法はサンフランシスコ講和条約で決まったものだから国連に提出しないと無理 ASP.NET MVCで個人でWEBアプリ作って運営してる人いる? Linuxのレンタルサーバー借りてmonoっていう環境入れれば動くの? >>651 セキュリティ周りが何もしなくてもある程度、担保されているため。 ASPは結局、タグ編集になるから生産性には疑問がある。 業務アプリでユーザ認証を実装する場合、form認証はあまり使われませんか?asp.net identityのほうが一般的ですか? 個人的にidentityは論外だな EFといいMSのこの手のテクノロジーはゴミだよ read.cgi ver 07.4.6 2024/03/23 Walang Kapalit ★ | Donguri System Team 5ちゃんねる