• ベストアンサー

VB2008にてWEBのDLL作成

下記のような流れの処理を作成したいと思っています。 Webページ、()の部分は別言語で作成されています。 ・HPから入力された内容を取得(登録ボタン押下) ・DBへ登録 ・成功/失敗などの結果を返す(結果内容により画面遷移) VB2008にてプロジェクトを新規作成する際はどれを選べばよいかもわからず・・・ 見本などありましたら、ご教授お願いします。 環境 Windows2003 server IIS6.0 開発 VB2008 SQLServer2005

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

  • ベストアンサー
noname#259269
noname#259269
回答No.7

>PHPで作成されるHTMLには下記のような記述がされるので >それでこちらのDLLを動かすとのことです。 キーワードとしては、HttpModule, HttpHandler です。 http://support.microsoft.com/kb/307985/ ただ、この場合相応のスキルを要求されますよ。 ですので、DLL にこだわらずに ・ASP.NET の Web アプリケーションとして開発 ・Classic ASP で開発 のいずれかをおすすめします。 ところで、この実装、社内用のシステムであればまだしも、まさかインターネットシステムではないですよね。正統な認証の仕組みが無いと危険過ぎます。通常はサーバ間通信で処理するかと思います。 多分これ以上私にできるアドバイスはないので、頑張ってくださいませ。

kokoala
質問者

お礼

色々とアドバイスありがとうございました。 リンク先、おすすめの2つ検討して作成してみます。 実装はインターネットシステムです・・・ 環境まわりはあまり詳しくないのですが PHPのあるサーバやDBサーバなどの間のセキュリティ関係は色々と制約をかけていたり 認証の仕組みもあるようなので・・・ 本当に色々とありがとうございました。

その他の回答 (7)

  • todo36
  • ベストアンサー率58% (728/1234)
回答No.8

REST/JSON型Webサービスのサーバ側を作るということ? であれば、色々な方法で実装できます。 > VB2008にてプロジェクトを新規作成する際はどれを選べばよいかもわからず ASP.NET Webアプリ または ASP.NET Webサービス または WCF で実装可能と思います。 一番原始な方法は、 ASP.NET Webアプリ/ashxファイル 実装の流れは、 リクエストデータ→JSONデシリアライズ DBアクセス レスポンスにJSONデータを出力

kokoala
質問者

お礼

プロジェクトの選択、ASP.NET Webアプリ/ashxファイルだったんですね。 色々と新規作成をしてみましたが 最初から書かれている内容が全部違うのでどれなのかわからず・・・ > リクエストデータ→JSONデシリアライズ > DBアクセス > レスポンスにJSONデータを出力 この実装の流れのリクエストデータの受け方とレスポンスの出力の仕方 をできるのがこのプロジェクトで作成するということなんですね。

noname#259269
noname#259269
回答No.6

>ブラウザ側はPHPで作成されています。 .php ファイルはあくまでサーバ側で処理されます。.php ファイルに埋め込まれたロジックがサーバ側で実行され、その結果として HTML だけがブラウザに送られます。つまりクライアント(ブラウザ)で表示される動くのは HTML(+JavaScript) であって、PHP ではありません。 この部分のご認識が誤っている可能性があります。 >作成したいDLLはIISがあるサーバに置きます。 以下のいずれでしょうか? 1.PHP が動作する Web サーバと DLL が配置される Web サーバは別なのでしょうか? 2.サーバとしては同じだけれど、PHP で動作する Web アプリケーションと、IIS で DLL を利用する Web アプリケーションが独立しているのでしょうか? 3.(最初の方の回答で私が参考 URL を掲示しましたが)、PHP から DLL を直接呼び出す事ができる状況なのでしょうか?

kokoala
質問者

お礼

ご指摘の通り、そこの認識が間違っているようです。 PHPとDLLのサーバの関係は 1の通り、別サーバにあります。 PHPで作成されるHTMLには下記のような記述がされるので それでこちらのDLLを動かすとのことです。 <form method="POST" action="http://IISサーバのホスト/APIのURI">

noname#259269
noname#259269
回答No.5

>このような処理なのでDLLにてGET、POSTが必要なのです。 >(GET,POSTはJSON形式です) どうも意味がわかりませんねぇ。 通常 GET, POST を投げる側は普通ブラウザ(クライアントパソコン)で、それを受ける側はサーバになりますが、 この DLL はブラウザ上で動作すると言っていますか? どの処理がどこ(ブラウザ上 or サーバ上)で動作するかを整理された方がよいと思います。

kokoala
質問者

お礼

あまり理解ができていなくすみません ブラウザ側はPHPで作成されています。 作成したいDLLはIISがあるサーバに置きます。 作成したい処理は ブラウザ側から入力内容を送ってくるので それを受け取って、DLLで処理をして、結果を返すというものなのですが DLLで受け取る時にGET,結果を返す時にPOSTするという認識なのですが これが間違っているのでしょうか?

noname#259269
noname#259269
回答No.4

>DLL自体の処理でどのようにGET,POSTを >記述してよいのかわからず困っています。 なぜ DLL の中で GET, POST する必要があるのでしょうか? DB コネクションをはって SQL を投げるだけではないのですか?

kokoala
質問者

お礼

やりたい処理はこのような感じです。 1.画面にて、名前、住所などを入力、登録ボタン押下(PHP) 2.データを受け取りDBへ登録、結果を返す(DLL) 3.結果によって画面遷移先変更(PHP) なので 結果で、成功/失敗(名前の文字数が多すぎるの原因)を返すということになっています。 そのほかに下記のような処理もありまして 1.キー(IDなど)を渡す(PHP) 2.キー(IDなど)を使用してDBを検索、検索結果の内容を返す(DLL) 3.返された内容の表示(PHP) このような処理なのでDLLにてGET、POSTが必要なのです。 (GET,POSTはJSON形式です)

noname#259269
noname#259269
回答No.3

>GET,POSTをどのように書いていいのか >わからず困っています。 DLL の呼出し方の話ですか? DLL 呼出し後の話ですか? 前者なら PHP が入力フォーム(HTML)をブラウザに返し、ブラウザから PHP の別ページに GET, POST するようにして、GET, POST 値を受け取った PHP 側から DLL を呼び出す時に値を渡すだけです。 後者なら PHP 側で DLL のリターンコードを元に redirect するだけです。 こんな回答で OK でしょうか?

kokoala
質問者

お礼

説明がわかりづらくてすみません。 DLL自体の処理でどのようにGET,POSTを 記述してよいのかわからず困っています。

noname#259269
noname#259269
回答No.2

この辺が参考になると思います。 1) .NET で COM コンポーネントを作成 http://point56.blogspot.com/2009/09/net-netcom.html 2) PHP からの COM の呼出し方 http://winofsql.jp/sh/html/vbc_build_com.htm

kokoala
質問者

お礼

ありがとうございます。 プロジェクトの作成についてこれで先に進めそうです。 2)は見ていたのですが GET,POSTをどのように書いていいのか わからず困っています。

noname#259269
noname#259269
回答No.1

別言語って JavaScript の事を言っていますか? それとも ASP.NET の Webサイトが C# 言語などで作成されていて、そこから VB.NET で作成した DLL を呼び出したいのでしょうか? 後者であれば、「クラスライブラリ」を選びます。

kokoala
質問者

お礼

説明が足らずすみません。 別言語はPHPです。 PHPで作成されたページに入力項目、登録ボタンがあり ボタンを押したらこちらのDLLを呼び出してDBへ登録させる という仕組みになっています。

関連するQ&A

  • VB2008にてWEBアプリケーションのAPI作成

    VB2008にてWEBアプリケーションのAPI作成 環境 VB2008 SQLServer2005 ネットや本など色々見たのですがどうしていいのか分からず困っています。 WEB画面要求を受けて結果を返す処理を作成しようとしているのですが 参考になるような情報はないでしょうか? WEB画面の方の処理はPHPにて作成されています。 PHPにて直接DBへアクセスしないでこのAPIにてDB関連の処理を行いたいのです。 WEBからはJSON形式にて登録内容などが送られてきます。 アドバイスよろしくお願いします。

  • VB6でSQLServerへADO接続するとOPENがすごく遅いんです。

    お世話になってます。 今、VB6.0で作成したシステム(ADOでACCESS2000に接続)をSQLServerに移行しています。 しかしDBの初回OPEN時に5秒くらいかかってしまいます。 原因を探しているのですが、どうしても見つかりません。 誰かご存知の方がいらっしゃいましたら、ご教示お願いします。 開発環境は以下の通りです。 OS:WindowsXP SP2 開発言語:VB6.0 SP5 データベース:SQLServer2005 ADO:ADO2.5

  • web.config に接続設定を追加するとエラー

    お世話になっております。 作業マシン:WINDOWS Server2008 (仮想) 開発ツール:VWD2010(VB) 使用DB:SQLServer2008R2 IIS:作業マシンのIISルート配下 にて、Webアプリを開発しております。 知識としてははここ2週間始めたばかりで、 今現在入門書を参考に仕組みを理解しようとしている所です。 言語よりも環境、インフラの内容で躓く事が多く、 皆様をはじめ、過去の質問にはお世話になる日々です。 タイトルが文字数少なく、内容を簡潔に書ききれていませんが 問題は、 「web.config に接続設定を追加すると、開発環境でエラー。  削除すると公開環境でエラー。」 と言うものです。以下詳細です。 メンバーシップフレームワークを使用し、ログイン画面を作成しております。 プロジェクトの内容は、 [画面] ツールボックスのログイン>Loginで設置しただけのログイン画面login.aspxと ログイン画面から遷移する menu.aspx のみです。 [DB] SQLServerには(Web サイト管理ツールから追加した) ユーザーレコードを持つaspnet_Usersテーブルと、自身で追加したTable1テーブル を含む、デフォルト名のDB、"ASPNETDB.MDF"があります。 [動作] ログインに成功すればmenu.aspx に遷移し、 Table1から参照した表を見るだけの試し用プロジェクトです。 [異常内容] デバッグ環境とデプロイ先(IIS)とで接続設定の要求が異なり、 両方が共通のソースで動かないと言うものです。 プロジェクトは、ログインコントロールの設置で "LocalSqlServer"という接続を持つようになります。 このLocalSqlServerは、Web.configに自動生成はされませんが デバッグ時には問題なく実行されます。 (おそらくどこかに接続=接続文字列情報を持っているのだと思います。) しかし、IISrootにデプロイしますと、フレームワークのconfig, " Framework64\v4.0.30319\config\machine.config" が "LocalSqlServerを見つけられなかったか接続文字列が空です"というエラーを吐きます。 プロジェクトでWeb.Configに接続設定を追加しますと (web.config に <add connectionString = [接続文字列] > を、追加 ) デプロイ時にIISに自動で接続情報が作成されるようになり 運用環境での動作は問題ありませんが、 そのソースを開発環境でデバッグ実行しますと、 "LocalSqlServerはすでに追加されています"というエラーが出て停止します。 まとめますと  "LocalSqlServer"の接続設定がないとIISで動かせない。   しかし接続設定を加えると開発環境でデバッグが動かない。 と言う状況です。「どちらでも動くソース」ができません。 デバッグ時に動く ASP.NET 開発サーバー だけで、 常にLocalSqlServerが有効である状態なのだと思いますが、 このままですとサイトを発行(デプロイ)するたびに Web.configに"LocalSqlServer"の追加操作をしなければならず、 メンバーにそんな説明はとても出来ません。。 この状況を自力で解決出来そうになく、どうかお知恵をおかしください。 よろしくお願いします。 ※ ひとつあたりを付けているのは、この開発環境では 複数のプロジェクトで、同じDB (デフォルトで出来る"ASPNETDB.MDF")を 使っている事です。 他のプロジェクトで"LocalSqlServer"(接続文字列も同じ)を使っているので 他プロジェクトでもデフォルト名のDBを使う場合Web.configに接続設定が不要になり むしろ追加するとエラーになる…などと言うことはあり得ますでしょうか?  (試せればよいのですが、確信なく既存プロジェクトをいじる訳にはいかず、   自宅では異常が再現せず、試せずにいます)

  • VB DLLプロジェクトについて

    いつもお世話になってます。 VB6.0で開発を行っております。VBのDLLを作成しております。 そこで、お聞きしたいのが、DLLプロジェクトのプロパティの中に、コンポーネントという項があるのですが、 その中のバージョンの互換性について教えていただきたいと思っております。 まず、根本的にこれは設定をするとどういうことになるのでしょうか?バージョンの互換性という意味がよくわからないので、教えていただきたいと思います。 それと、「互換なし」、「プロジェクト互換」、「バイナリ互換」はどう使い分けるものなのでしょうか? ヘルプを見てもよくわかなかったので、教えていただきたいと思っております。 何卒よろしくお願い申し上げます。

  • ■VS2005によるモバイルWebフォームの作成について

    ■VS2005によるモバイルWebフォームの作成について [開発環境] Visual Studio2005 [開発言語] ASP.NET / VB2005 / .netFw3.5 [概要]  モバイルWebフォームで携帯サイト作成中 [質問内容] ・いつもお世話になります。m(__)m  現在モバイルサイトを作成中なのですが、  何点か解らない事があり、困っています。  ご存じの方いらっしゃいましたら、ご教授  願えませんでしょうか。 (1)モバイルWebフォーム上にセットした、「Link」コントロールを  押下した時、遷移先のページへ動的な値を渡したい。  (DBから取得中の情報)  単純に次のページに値を渡す方法も解りませんm(_ _)m  クリックイベントのようなものがあるのでしょうか? (2)モバイルWebフォーム上では、HTMLタグの「<hr>水平線」が使用  出来ないが、水平線のようなものをセットし、区切りを作りたい。  良い方法はありませんでしょうか? (3)携帯端末(Docomo,AU,SoftBank)で、下記の内容を実装して問題は無いでしょうか?  1.Session変数を使用して、遷移時に値を渡す。  2.Server.Transferでの画面遷移  3.Response.Redirectでの画面遷移 (4)コントロールの頭に文字を入れたい。  例:  検索文字列:[TextBox]  ↑↑↑↑↑↑  (モバイルWebフォームでは1行に1個のコントロール?) 以上4点ですが、どうぞ宜しくお願いします。

  • ログイン画面作成

    ASP.NETの初心者ですが、ログイン画面の作成取り掛かっています。 しかし、プログラミングの部分まったく進みません。。 機能としては、 初回起動のときデータベースとの接続を行う。 接続成功の場合はログイン画面を表示する。 失敗の場合はエラーメッセージを表示する。 ログインボタン押下 ユーザID入力あり チェック:半角や桁数チェック(false) エラーメッセージ パスワード入力あり チェック:半角や桁数チェック(false) エラーメッセージ DBに登録されているユーザIDとパスワードと一致するとき セッション変数に ユーザIDの値を設定する。 次の画面(メニュー)に遷移する。 一致しなかった場合 ログイン画面に最遷移 環境は.NET2003 DB: Access 言語VB 大体でいいですが、どういうふうにやるのか教えていただけませんか よろしくお願いします。

  • VB6で作成したDLLのコンポーネント登録について

    VB6(SP6)+ActiveReports2.0jでSQLserver2005からデータを読み込んで印刷するDLLを作成しました。 このDLLをASP(VBS)を使ってWeb画面から呼び出しています。 その際、DLLはコンポーネントサービスに登録して使用しているのですが、一度コンポーネントサービスから削除して、VBのセットアップ(ディストリビューションウィザード)でセットアップしてもDLLは正常に呼び出されます。 最初のコンポーネントサービスへの登録は必要なのでしょうか? ※あまり深く理解せずシステムを引き継いだものですから、別の環境にインストールする際、上司からの問合せで返答に困っています。 Web上でいろいろ検索はしてみたのですが、仕組みが古い?せいか見つけることができませんでした。 よろしくお願いいたします。 こういう場での質問はあまり経験がありませんので、質問内容で不備等ありましたらご指摘ください。

  • SQLServer の DB を、VB2005 で作成したアプリから作りたい

    こんにちは。 APサーバにVB2005 DBサーバに SQLServer 2005 という環境で動作する自作アプリケーションがあります。 このアプリを新規の環境にセットアップする際には、 1. DBサーバにSQLServer をインストール 2. SQLServer Management Studio で、データベース作成 3. 同じくテーブル作成。 4. APサーバにアプリケーションをインストール 5. 動作確認 という流れになりますが、セットアップの為に 技術者が必要になってしまいます。 そこでエンドユーザが簡単にセットアップできるように 2.と3. を、セットアップ用プログラムから 自動で走らせたく思っています。 APサーバ上で動くプログラムで、 DBサーバ上のSQLServer内に「hogehoge」というデータベースを 作成するにはどのように記述すれば良いのでしょうか。 宜しくお願い致します。

  • VB6でバイナリ互換でDLL作成するには?

    VB6.0にてActiveX DLLで開発をしたいのですが、 プロジェクトのプロパティ.コンポーネントにてバイナリ互換を選択すると バージョン互換コンポーネントを設定できません。というエラーメッセージが出て、 DLLを作成できません。 プロジェクトはフォーム1画面、標準モジュール複数、クラスモジュールで構成されています。 DLL作成手順のアドバイスをお願いします。 もう1点、 ある程度、開発できたら単体テストを行います。 その際は現場で用意されているテスト起動画面を使用するように言われたのですが、 この方法だと自分の担当画面に修正を加えるたびに下記1~3の作業を行う 必要があると思うのですが、もっとスマートな方法はないのでしょうか? 1.修正したプロジェクトを保存してdllを作成する。 2.作成したdllを所定の場所(現場で指示された場所)に格納 3.テスト起動画面からそのdllを指定して単体テスト

  • VB6からVB.NET作成DLL呼び出し時のエラー

    よろしくお願いします! http://www.sev.or.jp/ijupiter/world/dc_interrop/dotnet_com_interrop.html#d2 サイトを見てDLLを登録し、VB6でEXEを作成して動かした所成功しました。しかし、他端末で動かした所「ActiveXコンポーネントはオブジェクトを作成できません。」というエラーが出てしまい動作しません。 1.vb6のEXEはディストリビューションウィザードで作成したものを動かしました。 2.エラー端末には.NetFrameworkは入っています。 3.VisualStudioが入っている他端末では動きました。 VisualStudioが入っていないと動かないのでしょうか?何か解決法があれば教えていただきたいと思います。よろしくお願いします。

専門家に質問してみよう