ASP.NET MVC案件への導入

74 views
Skip to first unread message

nishi.74322014

unread,
Jan 20, 2019, 11:24:05 PM1/20/19
to OpenTouryoProject
Q&A履歴を纏めました。

(1)ドキュメント
  「OpenTouryoDocuments-master」としてご提供頂いているドキュメント
  (主にword形式のガイド類)について、流用してプロジェクト用のドキュメントを作成したいのですが、
  本ドキュメントは、クリエイティブ・コモンズ CC BY 2.1 JPライセンスの下で利用可能である。
  という記載があります。ライセンスを確認したところ、作成元の許諾があれば可能そうでしたので、許可を頂きたく。

  → 自由にご利用頂いて問題ありません。

(2)ASP.NET MVCの内容で記載されたOpen棟梁のword形式のドキュメント類
  ご提供をお願いできませんでしょうか?
  ※「OpenTouryoDocuments-master」としてご提供頂いているドキュメント(主にword形式のガイド類)を頂戴しておりますが、
  ドキュメント類を確認しましたところ、P層がASP.NET WebFormsを前提とした記述になっているようです。
  ASP.NET MVCの内容とは乖離が大きく、またASP.NET MVCへの習熟度も低いため、そのままの流用が難しいため

  → すいません、MVC版の資料はありません。B/D層に関しては、WebFormsと同じです。
    MVC部分については、フレームワーク機能もごく僅かなので、プレーンなMVCの利用方法と大きく変わりません。
    MVC版で利用可能な機能については、以下の「P層」シートをご確認下さい。

(3)画面遷移フレームワークの仕様について。
  → WebForms版と異なり、MVC版は、画面遷移制御機能が準備されていないので、
    通常のMVCルーティング(RouteConfig)の範囲で実装するか、追加の実装が必要になります。

(4)セッション管理機能について。
  → こちらも、WebForms版と異なり、MVC版は、機能が準備されていません。
    唯一ユーザー情報をSessionにロードする仕掛けはあります
    (MyBaseMVController.GetUserInfoでロードして、this.UserInfoと使用する)。
    これ以上の機能が必要であれば、追加の実装が必要になります。
    ・MyBaseMVController
    ・Crud1Controller.cs

(5)二重押下防止機能を使いたい。
  Open棟梁が提供するcommon.jsを<script src=で取り込みました。
  二重押下防止機能は動きましたが、該当機能と関係のないところで、
  変数baseUrlのオブジェクトが未定義です、といったエラーがでます。
  変数baseUrlは、Open棟梁同梱のJavaScriptの中には見つかりませんでした。
  対策方法(削除?)をご教示頂きたく、よろしくお願い致します。

  → baseUrlは_Layout.cshtmlに実装されていますのでご確認ください。

(6)引継ぎ情報、ユーザ情報親クラス、ユーザ情報クラスについて。
  0_User_Guide(Index).docの9ページ目にある表2-3「クラス名(正式名称)」について、
  「引継ぎ情報、ユーザ情報親クラス、ユーザ情報クラス」の記載について、以下をご教示頂きたいです。
  ・具体的にどのクラスでしょうか?
   BaseViewModelクラスかな、とも思ったのですが、POCOクラスのようだったので・・・
  ・どのような情報を引き継ぐのでしょうか?
   (BaseViewModelクラスはセッションのUserInfoからUserNameだけ
   ピンポイントでGetしているようすが、よくわからなかったので・・・

  → Controllerからは、this.UserInfoで使用可能です。
    UserInfoクラスとしては下記です。

     以下、MyBaseMVControllerでUserInfoをロードしています。

(7)エラーメッセージをModelStateで画面に戻せないか?
  ViewModel=Modelという方針に倒して
  (ライブラリで詰め替えるか、またはControllerにて自分で詰め替える)、
  エラーメッセージをModelStateで画面に戻せないかと考えております。
  全てのエラーメッセージをModelStateで扱う方針にした場合、
  Open棟梁またはASP.NET MVCのお作法的に沿ったものなのかご教示頂きたく。

  → ModelStateはASP.NET MVCのお作法になります。
    ASP.NET MVCの利用方法 - マイクロソフト系技術情報 Wiki > 検証機能 > Controller側 > ModelStateDictionary
    
    「Open棟梁またはASP.NET MVCのお作法的に沿ったもの」という認識でよいかと思います。

(8)実行したSQLをログに出したいと考えております。
  → サンプルを実行したり、チュートリアルを遂行すれば確認できます。
    詳しくは、以下チュートリアルのURLを参照下さい。
    Tutorial_MVC_CSharp.ja

(9)メッセージ管理機能はありますでしょうか?

  → 参考URLの機能を使用できると思います。
    機能一覧 - フレームワーク - Open 棟梁 Wiki > フレームワーク アドイン
    ・共有情報取得機能
    ・メッセージ取得機能

(10)一時的ファイルの削除
  アプリケーションから一時的にファイルをローカルに保存し、
  処理完了後にファイルを削除するといった実装方法を検討しています。
  セキュリティポリシーの設定次第ではAPサーバー上のファイル削除ができない
  こともあるそうなのですが、C#においてもIISで同様の問題が発生する可能性はあるのでしょうか?

  → 恐らくASP.NETから一時ファイルを作成し、HTTPレスポンスに書き込んだあとに削除しようとしている
    のだと思いますが、これは、アプリケーション単体の話ではなくて、PC設定の話なのであり得ると思います。
    具体的には、実行アカウトにファイル作成の権限はあっても削除の権限が付与されていないなど。
    処理方式に問題がなければ、ファイルを作成せず、メモリストリーム上で処理してHTTPレスポンスに書き込む方法などもご検討下さい。

(11)例外発生時の動作
  例外発生時、ベースクラス2でセッションにメッセージを詰めて、
  システムエラー画面に遷移していますが、
  セッションタイムアウト時はどのような処理方式になっていますか?
  同様にシステムエラー画面に遷移させたい場合を想定しています。

  → Sessionタイムアウト検出エラーが検出された場合は、既に新しいSessionが開始されている状態ですので問題はありません。
    また、サーバーサイドエラー発生から、エラー画面が表示される間にSessionタイムアウトが発生することもないので問題は無いと思います。

(12)VisualStudioのExpress版の利用
  VisualStudioのProfessional版で開発していましたが、無償のExpress版ではだめでしょうか?
  Visual Studio Professional 2017 (version 15.0) x64, Japanese, EXE

  → 多分、行けると思います。
    チュートリアルも、Visual Studio 2015 ですが、Express Editionを使用しています。

Reply all
Reply to author
Forward
0 new messages