こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

.NET、ASP等を使用したwebアプリケーション開発

当方、webアプリ構築の経験はあるが、ASP、.netでの構築は
全く経験が無いものです。
<経験ある環境>
webサーバー:tomcat
Model部:java
Controller部:java
View部:jsp/html
(MVCの実装として記述しました。)

Excel操作等(セル読み取り等)がサーバー側で絡む事と
DBがsqlserverであるという事から、親和性の観点から
ASP等での開発が有効であろうという判断で
わざわざ未経験環境での実施を考えています。
(この件については、javaでもいいんじゃないの?等色々
あると思いますが、前提という事でご容赦下さい。)

そこで、質問です。
1)現在、下記の--部分は何を用いて実装するのが一般的ですか?またはお勧めですか?
webサーバー:IIS
Model部:--
Controller部:--
View部:ASP/html
全て、ASPでというのも可能だと思いますが、
ASP=jspと同等と考えると、ちょっと抵抗があります。
もしくは、MVC自体の考えを持ち込む事がそもそも違うのかもしれませんが。
回答としては、vb.net?、vc.net?、C#?、それ以外等というもので、
メリット、デメリット等を頂けると幸いです。

2)上記回答に沿ったものを構築する時に、この本が参考になる等、
お勧めの参考書があれば、そのタイトル、出版社等を教えて下さい。
(内容としては、「~によるwebアプリ開発」みたいなもので、
個々のASP、.net等についての詳細記述ではなく、
全体として捉えたものがいいです。)

以上、よろしくお願いします。

投稿日時 - 2008-10-23 12:53:59

QNo.4423320

すぐに回答ほしいです

質問者が選んだベストアンサー

下記、追加回答です。

>aspとasp.NETの相違等も何も知識が無いまま質問してしまいました。

細かい話するとキリがありませんが、念のため。
ASPは、基本VBScriptかJScriptを使って、作ったHTMLに埋め込んで書いていくタイプのものです。
一方、ASP.NETは、サーバーコントロールと呼ばれる画面部品を
XML書式でaspxというファイルに貼り付けて画面Viewを作成します。
貼り付けたサーバーコントロールに対し、何かのイベント(例:ボタンを押した時・・・等)の処理は、一般的にCodeBehindと呼ばれる別ファイル(aspx.vb, aspx.cs拡張子がついたファイル)に、VB.NETかC#の構文で記述して処理します と言えば、ご理解頂けますか?

>MVC Frameworkも考えたいと思います。(それほどたいした規模ではありませんし。)

MVC Frameworkは、私個人的には悪くないFrameworkだと思っていますが、まだ日本語の技術情報が少なく、殆ど海外の情報を頼らなければならないという現状はあります。ただJavaでWebアプリケーションを作っていた人にとっては、MVC Frameworkは若干入りやすいのかなと思いますけどね。

>jsp的なviewを司るファイル内に記述する言語は、「asp」であり、aspx内に記述していく処理内容の言語は、「C#」?という理解でよろしいでしょうか?

上記でも触れましたが、ASP.NETの部分だけ特化して誤解がないように言うと、

・Viewは、aspxというファイルにHTMLとXMLの書式で画面を定義する。
 これは、JavaでいうJSPに相当する。

・定義したView(aspx)に対し、サーバー側の処理を記述するには、
 CodeBehindという別ファイル
 (aspx.vb, aspx.csという拡張子のファイル)にC#かVB.NETを
 使って処理を記述する。
 例えばボタンを押したとか、ページ表示時の処理などを
 CodeBehindで記述する。これが、JavaでいうServletに相当する。

>それとも、2つともこれを即ち言語としてもasp.NETという事なのでしょうか?

aspxも、CodeBehindで書いた処理も総称して「ASP.NET」と言います。
仮にCodeBehind内の処理をC#で記述したとしても、「ASP.NET」です。
ただ、皆さんこういう掲示板やコミュニティで質問される方の多くは
「ASP.NETでC#で書いてます」「ASP.NETでVB.NETで書いてます」
「ASP.NETでJ#で書いてます」(2008では無くなってしまいましたが)
という言い方をされますけどね。

>参考書については、asp.NETでwebアプリを構築する初歩的なもの

一番いいのは、書籍ではなく、マイクロソフトがやっている
「MSDN WebCast」(http://www.microsoft.com/japan/msdn/events/online/study/webdev/)で配信されている無料ビデオを見てもらった方が、初心者の方は意外に覚えますよ!しかも安上がりですし。

で、さらに実際に自分で実践してみたい!と思えば、同じくマイクロソフトがやっている「MSDN バーチャルラボ」(http://msdn.microsoft.com/ja-jp/cc978406.aspx)でマニュアル付き&無料でオンライントレーニングすることができますので、初心者の方は、本を見るより覚えるかと思います。
実際、私もASP.NETの本なんて今まで一冊も買ったことがなく、
また本でASP.NET勉強したことは一度もありません。

(全部、WebサイトやSE・PGさんが書いているBlogを読んで覚えました。
実践が一番早く覚えますよ)

それぐらい今は時代が変わってきたんだと思いますよ。

ある程度、「MSDNバーチャルラボ」や「MSDN WebCast」で慣れてきた時に
その時の状況やASP.NETの習得度合いによって、どんな本が必要なのか、もしくはやっぱ本いらないや!とか、今度は.NETアプリケーション構成やアーキテクチャの考え方が知りたいとか、自ずと必要とするものがわかってくると思うので、ASP.NETは、無理にお金をかけて勉強するようなテクノロジーではないと私は思います。

女性はこういったテクノロジーダメな方が多いのですが、
女性の私ですらASP.NETを書籍一切なしで覚えたぐらいですからどうか自信を持って、情報収集しながらASP.NETを学んで頂きたいなと思います。

またわからないことがあれば、ご相談下さい。

投稿日時 - 2008-10-24 14:48:53

お礼

CodeBehindがvb.net or C#で記述するなど、すごく明確になってきました。2度にわたるご回答で私の中で道筋がほぼ出来上がりました。切り口が見出せた事に大変感謝しております。ありがとうございました。

投稿日時 - 2008-10-25 00:30:18

このQ&Aは役に立ちましたか?

4人が「このQ&Aが役に立った」と投票しています

回答(2)

ちなみに、ASP(Active Server Pages)で開発されるのですか?
それともASP.NETで開発されるのですか?
文面からだとどちらでも読み取れましたが、
ASP(Active Server Pages)とASP.NETはまるっきり仕組みも
考え方も実装方法も大きく異なりますので、
ここがハッキリしないとお答えしずらいです。
いったいどちらを使って採用補足してください。
(恐らく、ASP.NETなんだとは思いますが)

それから、ASP.NETの場合、MVCモデルを採用する場合は、
ご利用になる.NET Framworkのバージョンや開発される
Visual Studio のバージョンによっても提供されている(というか使うものが)若干変わってきます。

最新のバージョンのものでやりたければ、ASP.NET MVC Framework(http://www.chica2.dev-asp.net/ScottGu/result.aspx?target=%0a++++++++ASP.NET+MVC+%e3%83%95%e3%83%ac%e3%83%bc%e3%83%a0%e3%83%af%e3%83%bc%e3%82%af+(%e3%83%91%e3%83%bc%e3%83%88+1)%0a++++++)がマイクロソフト(CodePlex)から提供されてますので、
それを使うとか、ちょっと古いバージョンの.NET Frameworkや
Visual Studioを使うのであれば、Enterprise Library(http://www.codeplex.com/entlib/Release/ProjectReleases.aspx?ReleaseId=13498), UIPAB(User Interface Process Component)を使ってMVCモデルの実装を行ったりします。

大規模Webアプリケーションなら、Enterprise Libraryを使うべきですが
小規模Webアプリケーションなら、MVCモデルに拘らなくても
良いような気がしますけどね。

また、ASPなのか、ASP.NETなのかわかりませんが、もし、ASPだったら、asp≒jsp でしょうね。ただし、jspはコントローラーとなるServletがあるのに対し、ASPにはありません。
一方、ASP.NETであれば、aspxというファイルがベースになりますが、一般的にaspxは、CodeBehindと呼ばれる別のソースファイルにコードを記述しますので、そういう意味では、このCodeBehindがServletに近いものがあると感覚的に捕らえて頂ければ・・・
(しかしまったく同じといっているのではなく、あくまで感覚的な話です)

また、ASP.NETでControllerをきちんと定義していきたいのであれば、やはり、ASP.NET MVC Frameworkを別途ダウンロード&入手してそこでControllerを実装するのが良いと思います。
この辺りは、ITコミュニティ系のWebサイトやBlogで日々情報がUPされていますので、いろいろと読んでいくと感覚が少しわかるかと思います。

>vb.net?、vc.net?、C#?、

難しいですね。まず、VC++.NETでは、ASP.NET Webサービスは作れますが、Webアプリケーションを作ることができません。
この時点でVC++.NETは今回の要件から外れますね。
そして、VB.NETは、WebアプリケーションもWebサービスもWindowsアプリケーション、WPF、Silverlightアプリケーションも作ることができますが、統合開発環境(Visual Studio)がVB.NETに対し、開発しやすいようにしているので、生産性がUPしますし、IT業界的にVB.NETの技術者を呼んだ方が単価が安上がりといったメリットはあります。
しかし、便利ゆえに、統合開発環境のレスポンス・パフォーマンスがC#よりも悪く(裏でビルドみたいなことしているので)、イラっ!としたり、また.NET上で重要な「匿名メソッド」や「yield return」などC#で使える機能がVB.NETだと使えないため、C#よりもコード量が膨大になる傾向はあります。(C#よりかは保守性が下がるとでもいいますか)
後は、最近だとSilverlight向けの開発テンプレートがC#の方が先に出されて、VBの方が後からリリースされたなんてこともあったので、リリースがC#よりも後になりがちというデメリットはあります。

最後にC#は、.NET自身がC#で作られていることもあり、.NET Frameworkを使う意味ではC#が最適と言えます。WebアプリケーションもWebサービスも、
WindowsアプリケーションもWPFもSilverlightでも何でもいけます。
C#のデメリットとしては、統合開発環境(Visual Studio)がVB.NET程、親切ではない(VBだとビルドしなくてもわかったエラーがC#だとビルドしないとわからないことがあります)という点と、VB.NETでできる「引数の省略」機能がC#にはありませんので、生産性という意味ではVB.NETに落ちる面はあります。しかし、Javaをやっていた方は、C#と構文が似ているため、C#の方がいいという方はいっぱいいらっしゃいますけどね。

>この本が参考になる等

アプリケーション構成や.NET系でアプリケーションアーキテクチャを構築するような書籍を求められていますか?
それとも、単純にASP.NET入門、Active Server Pages入門ではないけど
アプリケーションデザイン手法的な書籍を求められているのでしょうか?

技術評論社から出ている「.NET Expert」シリーズの書籍などは如何でしょうか?.NET開発経験がなくても、すんなり読むことができ、いろんなケースに備えたアプリケーション開発手法が掲載されてますので、宜しければご覧下さい。(過去に#01, #02, #03と出してますが、#01がお勧めです)

アーキテクチャ的、アプリケーション構成的な話であれば、
「Microsoft.NETによるエンタープライズソリューションパターン (Patterns & practices)」がお勧めです。
ちょっと難しい言葉も多いですが、図をみながらイメージしていくと
宜しいかと思います。
http://www.amazon.co.jp/s/ref=nb_ss_b?__mk_ja_JP=%83J%83%5E%83J%83i&url=search-alias%3Dstripbooks&field-keywords=Microsoft.NET%82%C9%82%E6%82%E9%83G%83%93%83%5E%81%5B%83v%83%89%83C%83Y%83%5C%83%8A%83%85%81%5B%83V%83%87%83%93%83p%83%5E%81%5B%83%93+%28Patterns+%26+practices%29&x=20&y=22

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

投稿日時 - 2008-10-23 13:56:46

補足

非常にご丁寧な回答ありがとうございます。aspとasp.NETの相違等も何も知識が無いまま質問してしまいました。この回答のキーワードを元に様々なサイトを参考にしました。asp.NET1本で実装しようと考えております。基本はこれで、更に厳密にMVCに拘るならば、MVC Frameworkも考えたいと思います。(それほどたいした規模ではありませんし。)
asp.NETに対する更なる変な質問ですが、人に説明する時に、jsp的なviewを司るファイル内に記述する言語は、「asp」であり、aspx内に記述していく処理内容の言語は、「C#」?という理解でよろしいでしょうか?それとも、2つともこれを即ち言語としてもasp.NETという事なのでしょうか?
また、参考書については、asp.NETでwebアプリを構築する初歩的なもので構いません。例えば、IIS、sqlserverを使用したwebアプリケーション開発を事例として、説明が進んでいく様なものだとベストです。IISの設定等についても簡単に触れられていると更にいいです。
以上、よろしければ再度、ご回答願えればと思います。

投稿日時 - 2008-10-24 12:56:40

あなたにオススメの質問