質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

プログラミング言語

プログラミング言語はパソコン上で実行することができるソースコードを記述する為に扱う言語の総称です。

Q&A

解決済

4回答

4635閲覧

C#、.NET、Webアプリのお作法

GGG_TOP

総合スコア19

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

プログラミング言語

プログラミング言語はパソコン上で実行することができるソースコードを記述する為に扱う言語の総称です。

0グッド

1クリップ

投稿2015/07/07 05:48

お世話になります。
Web系、.NET系の経験はないのですがC#のWebアプリの改修担当になりました。
ドキュメントが無いわ、動きが読めないわでテンテコ舞しています。

さて、改修の方はなんとかなりつつあるのですが気になる点がいくつかありまして
諸兄のお話を伺いたく思っております。

IISから起動されるDLLアプリ(という呼び方が正しいかわかりませんが)を組む際の
お作法というかお約束というかスタンダードに関する事なのですが

1.main()のような全体のというか、関数、メソッドの流れを制御しているのはドコ?
Application_BeginRequestが何度も呼ばれるのは分かりましたが次にドコへ行くかが
ドコを見ればいいのか全く分かりません。
(もちろん、デバッガにて把握しましたが出来れば枝葉のような末端で処理するより
呼出し方などを変更したい箇所もありますし)

そこで質問その1です。
処理の流れなどの格納、登録はどこで行っているのでしょうか。

2.DBでユーザ情報を管理しているのですがログイン時、count(*)でユーザの存在チェックをし
その後、適宜、必要項目を読み込み、編集をしています。

そこで質問その2です。
最初に必要項目をガツっと全部読み込んで静的変数にでも保存すればいいのにと思うのですが
こういった方法がスタンダードなのでしょうか。
そうであればメリットなどもお教えいただけるとありがたいです。

以上、とりとめもない質問になりましたが、お知恵をお聞かせいただけましたら幸いです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答4

0

  1. フレームワークがなにか、処理の流れがイベントのことを指しているのか、URLルーティングを指しているのかわからないのでとりあえず参考情報を。

ASP.NET ルーティング
ASP.NET のイベント発生順序

  1. count(*)での存在チェックが必要かどうかは前後の処理にもよるのでなんとも言えません。

ログイン情報を静的変数に入れるのはNGです。静的変数はユーザにかかわらずアプリケーション全体で共有されます。

投稿2015/07/07 10:16

編集2015/07/07 10:17
sho_cs

総合スコア3541

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

【検索ワード】
asp.net 入門
10行 ASP.NET
連載 プログラミングASP.NET
などで、まずは雰囲気を掴んでください。

>Web系、.NET系の経験はないのですがC#のWebアプリの改修担当になりました。
多分いままでは、Windows Form 系をやっていたのだとおもいますが、
ASP.NET では、勝手が大きく異なります。
ASP.NETの特徴
http://techinfoofmicrosofttech.osscons.jp/index.php?ASP.NET%E3%81%AE%E7%8A%B6%E6%85%8B%E7%AE%A1%E7%90%86%E6%96%B9%E5%BC%8F
⇒このサイトの解説は、判り易い方だとおもいます。
Webシステムの状態管理方式 ⇒理解の肝です。
Webアプリケーションの状態管理方式⇒理解の肝です。

WinForm と異なり、IIS の知識、ASP.NETの理解、Webは安全では無いという大前提他、
様々な知識が要求されます。

WinForm系とWeb系の大きな違いを、認識してください。
誤解を恐れずに書けば、原則として
WinForm系は、情報、状態を保持して、実行している。
Web系はサーバー側は、情報を送ったらおしまい。
でも、情報を送ったらおしまいでは、都合がわるいので、
ある程度の状態の保存が可能になっている。
Webサービスは、1対1ではなく、1対多が前程だから、
WinFormのような手法では、資源が不足する。
⇒オブジェクトのシリアライズが、必須のようになった。のは、なぜか?
'
ASP.NET インフラストラクチャの概要
https://msdn.microsoft.com/ja-jp/library/bb398900(v=vs.100).aspx
⇒他にも公開ドキュメントがあります、MSDNのドキュメントは、時間をかけて読込してください。
や、
WINGSプロジェクトの、
独習ASP.NET (独習シリーズ): 山田 祥寛: 本
TECHNICAL MASTER はじめてのASP.NET 4 プログラミング Visual C#編
TECHNICAL MASTER はじめてのASP.NET 4 プログラミング Visual Basic編
ASP.NET MVC5実践プログラミング: 山田 祥寛: 本
検索ワード用としては、
ASP.NET逆引き大全600の極意 ASP.NET 2.0/3.5/4対応
(項目数が多く、個別の内容が薄いので、辞書、アンチョコとしてつかう本)


ASP.NET は、IDEを起動してみればわかるように、
多くの種類がありますが、大雑把には、3種類+アルファ
ASP.NET WEB サイト     :ある意味互換性保持用、簡単だが、大きくなると面倒
ASP.NET WEB プロジェクト  :MVC登場前、JOBでMVC採用迄の、御仕事で作成するサイト
ASP.NET WEB MVC プロジェクト:御仕事で作成するサイトの基本

Ajax / jQuery
2つのAJAX:「jQuery AJAX API」と「ASP.NET AJAX」
http://codezine.jp/article/detail/6898

投稿2015/07/07 09:50

編集2015/07/07 10:00
daive

総合スコア2028

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

1.各ページの呼び出しはIISが要求されたURLに応じてやっています。
各ページの動作についてはaspxファイルなどで作っていることと思います。

2.ページ移動の際にサーバ内のデータを持ちまわることはできません。(IISの仕様)
このため、ページ間で持ち回りたいデータは一度クライアントに渡してから受け取るのですが、
クライアントを経由するためDB接続より遅いインターネット回線を介すことになります。
このため、通常各ページで必要なデータは都度DBにアクセスして取得することになります。

投稿2015/07/07 09:25

kutsulog

総合スコア985

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

GGG_TOP

2015/07/09 01:24

回答ありがとうございました。 皆様のコメント一つ一つが勉強になりましたが、ベストアンサーは一つだけとの事で 選ばせていただきました。 本当はみなさんに付けたいところではありましたが、迷っているうちに時間が過ぎ、 遅いチェックとなりましたことをお許しください。 ありがとうございました。
guest

0

いわゆる web系のお作法というものはありますが
ソースを読んだり、デバッガで動きを見ても理由が分からないので
理解できないのではないかと想像します
なんでも制御出来る一般のプログラムと違い、
動作の仕組みが決められていて変えられないことが多いです
変数でログイン状態の保持なども出来ません
1冊本をお読みになるのが近道かと思います

投稿2015/07/07 08:34

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問