none
C# MVCでの学習方法について RRS feed

  • 質問

  • 開発環境 = VS2015 Pro
    開発言語 = C#
    開発モデル = MVC

    いつもお世話になっております。

    下記の理由により、
    C#、MVC(出来れば新しいバージョン)を学ぶ上で
    お勧めの本やサイトをご教示、または皆様の学習方法をご教示頂けないでしょうか?

    ーーーーーーーーーー記ーーーーーーーーーー

    現在、C#もMVCモデルも触れた事がなかったので勉強をしており、
    「ASP.NET MVC5」なる本を購入して一通り読み
    ログイン画面(外部認証なしでUser、Passのみの単純画面)、マスタ画面、一覧画面等のウェブアプリ作成を目指しております。

    本のサンプル通りにやれば、LocalDBやEntityFrameWork、スキャフォールディング機能等で
    簡単な画面からDB更新等は出来るようになりました。

    しかし、
    ログイン画面⇒ユーザ存在確認⇒OKであれば一覧画面表示
    と言う事を考えたときに、自分が経験したVBであれば
     1.ログインボタン押下イベントでSQLよりDBに問い合わせ
     2.結果を元にIF文にて判断
    となるのですが、ネットでのサンプルを見ると、SQL文もなければIF文もありません。

    SQLは記載できるようですが、C#及びMVCモデルではSQLは基本的に記載はしないのでしょうか?
    やり方として、
     1.モデルにクラス毎(テーブル毎)にDBプロパティ群を記載
     2.関連するテーブルは1.のクラス内にコレクション?で紐付け
     3.コントローラをDbContextで関連付け後、スキャフォールディング機能にて自動生成
    みたいな形で進めるのですか?

    ユーザー認証やログイン画面を調べるとよく「IdentityConfig」ファイルや「UserManager」、「RoleManager」等が出てくるのですが
    クラスを継承している・・・とか、コメントやプログラムを見て何をやっているのかは何となく読めますが
    いざ自分で書こうと思っても、どうやって各クラスを呼べばよいのか?どこに処理を書くのが適正なのか?も理解出来ておりません。
    そもそも、いつも何かしらのクラスを継承していますが、.NetFrameWorkが用意しているクラスをがっつり知る事が前提なのでしょうか?

    C#経験も無ければ、オブジェクト指向もしてこなかったので、C#自体の学習もネット実施中ですが、
    クライアントアプリ用やWebフォーム用だとMVC5と記載方法が異なっている気がして、
    焦ってばかりであまり身についておりません。

    漠然とした質問で申し訳ございませんが、
    今後、仕事でC# MVCの開発を実施する予定ですので
    何卒宜しくお願い申し上げます。

    2016年9月30日 8:21

回答

  • ASP.NET MVCの概要を掴みたいということでしたら、まずは、VirtualAcademyで次の動画をご覧になってみてはいかがでしょうか。(MVCの基礎的なところから説明されているので、個人的にはおすすめです。)

    ASP.NET MVCの概要
    https://mva.microsoft.com/ja/training-courses/aspnet-mvc--8322
    (英語音声ですが、日本語の字幕が出せます)


    ご参考になれば幸いです。


    • 編集済み Alfred360 2016年9月30日 12:41 リンクを追加しました
    • 回答としてマーク kong0214 2016年10月11日 1:25
    2016年9月30日 12:39

すべての返信

  • > 漠然とした質問で

    ご自分でも認識されているようにそのとおりで、少なくとも自分は何を答えてよいか分からないです。

    質問者さんが一番知りたいことは、

    > SQLは記載できるようですが、C#及びMVCモデルではSQLは基本的に記載はしないのでしょうか?

    と想像していますが、それに対しても、「適材適所でしょう」という答ぐらいしかできません。

    SQL 文から書くのが適切な場面では SQL から書くでしょうし、ユーザー認証など組み込みの機能が利用できて SQL から書く必要がなければ書かないということになりますよね?

    もっと絞って質問していただければと思います。

    2016年9月30日 9:10
  • いつもお世話になっております。

    ご回答頂きまして有難うございます。
    SQLが必要な時は、記載する・・・で理解致しました。
    そうですよね、質問してすいません。

    合う、合わないがあるのは承知しておりますが、
    近くに大きな本屋が無い為に、事前確認がなかなか出来ません。

    その為、C#、MVCの学習を実施する際に、
    もしご存知であれば基礎を固める上でお勧めの本(なるべく新しいバージョン)やサイトをご教示下さい。


    以上、何卒宜しくお願い申し上げます。

    2016年9月30日 9:41
  • ASP.NETで開発するということは確定なのですか?
    オブジェクト指向を勉強中とのことなので、おそらくVB6.0で作成されてきたのだと想像しますが
    そうであればPHP等の言語の方が合っているかと思います。MVCモデルのフレームワークも
    複数ありますし、選択肢にそれらを追加検討してもよいかと
    2016年9月30日 10:01
  • 本の紹介は難しいです。というより自分には無理です。すみませんが、自分は紹介できません。

    サイトは、本と違って、ご自分の目で見て合う合わないはすぐ分かると思いますが・・・

    2016年9月30日 10:58
  • ASP.NET MVCの概要を掴みたいということでしたら、まずは、VirtualAcademyで次の動画をご覧になってみてはいかがでしょうか。(MVCの基礎的なところから説明されているので、個人的にはおすすめです。)

    ASP.NET MVCの概要
    https://mva.microsoft.com/ja/training-courses/aspnet-mvc--8322
    (英語音声ですが、日本語の字幕が出せます)


    ご参考になれば幸いです。


    • 編集済み Alfred360 2016年9月30日 12:41 リンクを追加しました
    • 回答としてマーク kong0214 2016年10月11日 1:25
    2016年9月30日 12:39

  • いつもお世話になっております。

    ご回答頂きまして有難うございます。
    コーベルさんの考え方もあるかと存じますが、
    ASP.NETでの開発は確定です。
    MVCでの開発理由は今後、複数人で開発を行う際にそれに向いているから・・・
    何故言語がC#かと言うと、MVCでのネットや本での情報の9割以上がC#だからです。

    チームとしては、よりよい開発手法や言語があり、
    それがチームとして共有できればよい、
    考えでPHPでもそれが説明出来れば問題ありません。
    ※共有とは言語の優位性の説明や開発手順書等の作成です。

    チームにお時間を頂き、この数週間勉強して来ましたので
    やりきりたいと、考えます。


    以上です。

    2016年10月11日 1:12

  • いつもお世話になっております。

    リンク情報有難うございます。
    字幕のスピードがかなり速かったですが拝見させて頂きました。

    有益な情報有難うございます。


    以上です。

    2016年10月11日 1:24
  • いつもお世話になっております。

    そうですよね、有難うございます。

    以上です。

    2016年10月11日 1:26
  • > ログイン画面⇒ユーザ存在確認⇒OKであれば一覧画面表示
    > と言う事を考えたときに、自分が経験したVBであれば

    このあたりだと、ASP.NET MVCにはすでに用意された機能があります。
    まぁ、独自に作りこむことも可能ですが、用意された機能であればセキュリティ面等も考慮されたものに
    なっていますので、そちらを使うほうがよいかと。

    で、標準のテンプレートにこのあたりが組み込まれてひととおり動くようになっていますから、
    その動きを理解していくのが早道かなぁ。。。
    読まれた本にはこのあたりの解説ありませんでした?


    あおい情報システム株式会社 小野修司(どっとねっとふぁん)

    2016年10月13日 5:29