• ベストアンサー
  • 困ってます

C#での開発環境について教えてください。

初めて質問します。 最近、まったくの未経験からプログラマとして働き始めました。 それにあたり、今回、開発に携わることになりましたが、 アプリケーションの環境?構成?が APサーバー、WEBサーバー、DB、クライアントというものを使用して 開発するということですが、まだ、よく意味が分かりません。 とりあえず、イメージとしては、 クライアントからWebサーバーを使用して、APサーバーを呼び出して、 APサーバーからSQL文(DBに登録されているSTPの実行命令みたいな)をDBに投げる。 DBからの結果を逆のルートでクライアントへ返す。 といった解釈です。 色々調べてみたのですが、WebサーバーとApサーバーを分けるメリットと、 違いがよく分かりません。 どなたか、初心者にもわかるように教えていただきたいと思っております。 ちなみに使用しているのは VisualStudio 2008とSQLServer2005です。 つたない説明ですが、よろしくお願いいたします。

共感・応援の気持ちを伝えよう!

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

  • ベストアンサー
  • 回答No.3

遅レスすいません >何で、Webサーバーを使用しないといけないのでしょうか? 前の方の回答と同じなんですが、使う場合のメリットと使わない場合のデメリットっていうのが大きいと思います。 ・クライアントのソフト開発をしなくてすむ ・ブラウザクライアントなのでプラットホーム(MacとかWinとか)を気にしなくて良くなる ・アプリサーバをネットに直にさらさなくてすむ(Webサーバはネットへの耐性ができている) ・開発のノウハウが巷にあふれている というところでしょうか。 別に、クライアントのプラットホームやサーバアプリケーションを作れば、Webサーバはたしかに要らないのですが、開発コストや期間を考えるとあるものを流用したほうが話は早いってことですね。 ただ、開発時はともかく保守運用は結構めんどくさいことになるケースが多いですね。 ・使い捨てソフトみたいなスタンスになりがちでまともなドキュメントを作らないことが多い ・ブラウザやサーバのバグであっても対応させられる ・初期開発陣はつぎの仕事で面倒見られない(っていうかそれを理由にしていて実は見たくない) ・開発時に新技術をやたら使いたがる(スキルアップのためクライアントを人柱に・・・)ので流行りすたりで運用中にライブラリやツールがこの世から消える すいません、最後は愚痴みたいになっちゃいました。

共感・感謝の気持ちを伝えよう!

質問者からのお礼

とにかく開発を楽にするためなんですね・・・ なるほど、分かりました。 丁寧な説明ありがとうございました。

その他の回答 (2)

  • 回答No.2
  • edp3142
  • ベストアンサー率60% (226/373)

>何で、Webサーバーを使用しないといけないのでしょうか? 昔、クライアント/サーバ型システムでは、クライアント側にも開発した実行モジュール(EXEファイル類)を置いていました(今でもそういうシステムは存在しています)。 クライアント側に実行モジュールを置くと、バージョンアップやバグ対応の際に、システムを利用する全端末にモジュールを配布するというコストが発生する為、その為の仕組みを作る必要があります。 一方、クライアントに元からある Web ブラウザを利用すれば、配布の事を考慮する必要がなくなります。Webサーバー側・Apサーバー側のシステムだけ置き換えればよい為です。 そこで、元々インターネット用途だったWebサーバーを利用して、システムを構築しようという発想が生まれました。

共感・感謝の気持ちを伝えよう!

質問者からのお礼

回答ありがとうございます。 要は保守のためとかそういうことなんですね。 確か、メタサーバというのも聞いたことがあります。 これはクライアント側におけるWebサーバーみたいなもの?ということになるんですかね? ありがとうございました。

  • 回答No.1

本来、Webサーバはクライアントによって要求されたホームページファイルをたれながすだけのものでしか有りません。 それに対してASPや.NET、CGI、PHPなどは、基本的なWebサーバの持つ機能以上の機能をアプリケーションを介して提供するものです。 セキュリティやサーバスペックが万全なら同じサーバ上で動作させることもコスト的には良いのですが、リスクは非常に高くなります。 Webサーバは外部から直接アクセスされるものですので、悪意を持った者を含む様々な進入にさらされることになります。そこにアプリが動かせるサーバまたはDBサーバを置いたとしたら、極論を言えば外部からアプリが動かせるサーバすなわち外部からサーバを破壊するアプリ(例えばハードディスクフォーマットなど)をも動作させる可能性やDB情報を直接抜き取られる可能性を秘めていることになります。 作り方しだいですが、前段に機能が限定された悪さが困難なサーバを置くことによって、外部からの攻撃に耐えることができます。 また、1台のサーバにWebもアプリも動かせているとアクセス量が増えれば処理もその分多くなります。Webの処理をするものと、アプリを動かすものとで分けることで負荷が分散され、処理を円滑に行うことができるようになります。 WindowsサーバはGUIを搭載しているためただでさえマシンへの負荷が多少高いという上に、メジャーOSゆえの外部からの攻撃もまた半端では有りませんので、設計構築に関しては慎重な対応が必要です。 まとめると ・外部から直接危険な行為がされないように大事なものは後ろに隠す ・処理による負荷を分散させる ・構築時の責任分担が明確になる ・ハードウェア障害時の被害を分散し対応を簡素にできる。 という点でしょうか。 わたくしの文章がつたないので理解できなかったらすいません。

共感・感謝の気持ちを伝えよう!

質問者からのお礼

返答ありがとうございます。 webサーバーとAPサーバーを分けた方がセキュリティ的、パフォーマンス的にもいいという事が分かりました。 それでなんですが、何で、Webサーバーを使用しないといけないのでしょうか? Webサーバーを使用しなければ、セキュリティ的な部分は問題ないような気もしますが・・・ すいません。 本当にまだ、勉強をし始めたばかりなので、根本的な部分が分かっていないもので、すごい基本的な ことを聞いてしまっているかもしれませんが、もしよかったらご回答お願いいたします。

関連するQ&A

  • 一台のPCで複数OSを使用する開発環境を作りたい!

    どうもはじめまして! 仕事上毎回のごとくDBサーバ、APサーバ等複数のサーバを使用して開発を行っているのですが、やはり開発経験がまだまだ未熟なので深夜残業が続いて困っています。 そこでスキルアップのため家でも仕事をこなしていきたいと思っています。 質問:  クライアントPCはWindows、サーバはUnix系(毎回変わるのでとりあえず)を1台のPCで実現したいのですが一番よい方法は何でしょうか? やはりVMWareならぬものを使用するのが良いのでしょうか? 極端に言えばWindows側のWEBシステムにアクセスし、WEBシステム側がUnix系で構築されたDBサーバへアクセスできればいいなと思っております。 ご指導ご鞭撻の程よろしくお願いいたします。

  • CE向け開発環境

    お世話になります。 WindowsXPで、開発したWinCE5.0向けソースを Windows2003SERVERの開発環境で開こうとすると、 「ユーザのデータストアから情報を取得中にエラーが発生しました。  XMLドキュメントには最上位の要素を指定する必要があります。」 「データストアに存在しないデバイスプラットフォームを参照している 為、プロジェクトは開けませんでした」 というメッセージがでて開けません。 開発環境詳細は、下記のとおりです。 VisualStudio 2005 VB .NET framework SDK 2.0 framework SDK 1.0 DB:SQLServer2005 開発環境のインストールは、XPと同様に入れなおしたのですが、 できません。 何か情報を知っている方がいたら教えて下さい! よろしくお願いします!!

  • Javaの開発環境

    Javaの開発に携わっている方にお尋ねします。 今回の開発環境指定は (1)Java:現在の最新バージョン (2)OS:Windows98以降 (3)DB:MySQL/Oracle/Microsoft SQL Server ※FreeはMy-SQL。その他はトライアルを入手してください。 (1)と(2)は解決済ですが、(3)のDB開発環境のインストールが分かりません。 どなたかDBの環境設定のインストールについて教えて下さい。 また、DBの環境設定について詳しく載ってるHPがあればそれも教えて頂けると助かります。 よろしくお願いします。

  • PATH を返してくれるような SQL 文の書き方について

    DBサーバ+APサーバの構成です。 APサーバで動くプログラムより SQL 文を発行して、 SQLServer2005 のデータを取得できる環境にあります。 やりたいことは、BACKUP DATABASE 文を、APサーバのプログラム から発行し、DBサーバ上にバックアップデータを保存することです。 DBサーバのフォルダ構成が環境によってまちまちなので、 SQL文を投げて、DBサーバのフォルダを取得したいのですが、 SQLServer のシステムテーブルなどに格納されていたりは しないでしょうか。 表領域のフルパス名、SQLServer インストールフォルダなどを 取得できる方法があれば教えてください。 宜しくお願いします。

  • システム開発(運用)環境のメリット・デメリット

    いつも大変お世話になっております、御丁寧な回答ありがとうございます。 前質問と若干内容が重なるかと思います。 私は社内SEをしており、VisualBasic6.0、.NET+SQLServer、AccessVBAなどの開発を行ってきました。 社内で運用しているファイルメーカーで開発された基幹システムを入れ替え(新規開発)することになり、開発・クライアントの運用環境で迷っています。もちろん、コストは低くしたいと考えております。 以下安易仕様になりますが・・・ クライアント数は30~50 1.オーダーを出す(オーダー票出力) 2.別セクションでオーダーを受付ステータスにする 3.オーダーが実施されたらステータスを終了にする 4.本日のオーダー一覧、過去のオーダー履歴が確認できる と言ったところです。 イントラネットでのWeb開発が最適なのでは??と社内で説があります メリットとして調べたのですが  ・ 複数拠点でシステムを簡単に共有したい  ・ Webブラウザで簡易的に操作したい  ・ 初期コストを抑え、システムを導入したい  ・ クライアントに負荷をかけずに、システムを運用したい などが見つかりました。 上層部に上手く提案する為にお聞きしたいのですが・・・ 質問(1) 開発者のスキルは置いておいて、一般的な(多く使用されている)開発環境(言語+DB)をいくつか教えて下さい。 質問(2) クライアントサーバー型のシステムのメリットデメリットを教えて下さい。 質問(3) 他のWebシステムのメリットデメリットがあれば教えて下さい。 長文になり、申し訳ありませんが何とぞよろしくお願い致します。

  • 開発環境VisualStudio6.0 から VisualStudio.net に変更する際の問題点

    よろしくお願い致します。 ・対象システムは、事務処理系のC/Sシステム(クライアントPC約50台) OSはWindows2000Server、DBはSQLServer2000 です。 ・現在は基本設計が終了して詳細設計の段階ですが、一部は先行して製造に着手。 (1)プログラマ(VB6の開発経験5年程度)がスキルの習得に要する時間(ある  程度慣れるまでの想定期間) (2)画面の仕様にもよりますが、例えばVB6で1週間で見積もった画面作成作業  が立ち上がり時に要する期間(1週間とか1ヶ月など) (3).netの環境にある程度慣れたとして、VB6と比較したその後の開発効率 (4)基本設計や詳細設計の手直し・手戻りがどの程度発生するのか なお、同様に VisualStudio6.0 から C# に変更する場合についても教えて頂ければ助かります。

  • SQL2008と2005の互換性について

    現在会社でSQLServer2005 (Workgroup 5クライアント)を使用しているのですがもう一台サーバーが必要になりました。 そこでSQLServer2008(Workgroup 5クライアント)を購入しようと思うのですがこの2つのソフトに互換性はありますでしょうか? (1)サーバー(SQL2005)→クライアント(SQL2008) (2)サーバー(SQL2008)→クライアント(SQL2005) この2つのパターンが接続可能かどうか教えてください よろしくお願いします。

  • ASPを用いてSQLServerからのデータ取得ができません。

    ASPを使ってSQLServerからのデータ取得ができません。 クライアントのPCから、Webサーバ経由でDBサーバへアクセスすると、 『[Microsoft][ODBC SQL Server Driver]分散トランザクション エラー』 というエラーメッセージが表示されます。 WebサーバとDBサーバが同一PC上にある場合は、問題なく実行できます。 また、同じテーブルを使って、簡単なサンプルコードを実行した場合では、WebサーバとDBサーバが別々のPC上にあっても問題なく動きます。 原因はIIS、もしくはSQLServerの設定にあるのか、それともASPファイルのソース自体にあるのか、わかりません。 どなたかご存知の方、よろしくお願いします。 DBとの接続はADO接続で、環境は、 Webサーバ/WindowsXP Pro、IIS 5.0 DBサーバ/WindowsXP Pro、SQLServer2000 を使っています。

  • エディション確認方法

    自分のPCにインストールされているSQLServerのエディションを確認する方法を教えてください。 開発用クライアントと本番サーバーがあり、本番サーバに接続して開発しています。 「SQLServer management studio を立ち上げて、DBに接続し、サーバーのプロパティ画面で確認する」という方法を教えてもらったのですが、どうも、それは接続している本番サーバーにインストールされているSQLServerのエディションのようです。そうではなく、サーバーに接続している開発用クライアントにインストールされているSQLServerのエディションを確認する方法を教えてください。 よろしくお願いします。

  • VB開発環境の選定で悩んでいます

    VBアプリケーションの開発を考えているのですが、 知識が乏しいため、環境の選定で悩んでいます。 □開発したいアプリケーションの概要  WEBページで公開しているデータ量が膨大になったため、  DBで管理しようと考えています。  そこで、データの編集やHTMLへの出力をVBアプリケーションで実現したいと思います。  アプリケーション・DBは個人&ローカルでのみ使用するつもりです。  (当方はJavaとVBの基礎ぐらいは理解できている程度のスキルです。) ---------------------------------------------------------- ■悩んでいる点1:VisualBasicの準備  VisualStudio2005 Express Editionがタダで入手できるようですが、  開発環境として十分でしょうか?  タダの割りに、あまり知られていない(ような気がする)のですが、  デメリットがあるのでしょうか。 ■悩んでいる点2:DBを何にするか  VBと連携しやすそうなイメージのあるAccessを利用しようかと  考えていたのですが、肝心のAccessを所有していません。  まさかOpenOfficeのBaseで代用できる...ものでもないですよね。  Accessを購入してもいいのですが、他に適切なものはありますか?  (DB関係は特に知識が無いので、詳しく教えていただけると嬉しいです) どなたかご助言いただけると幸いです。よろしくお願いいたします!!