- ベストアンサー
VB2008にてWEBのDLL作成
下記のような流れの処理を作成したいと思っています。 Webページ、()の部分は別言語で作成されています。 ・HPから入力された内容を取得(登録ボタン押下) ・DBへ登録 ・成功/失敗などの結果を返す(結果内容により画面遷移) VB2008にてプロジェクトを新規作成する際はどれを選べばよいかもわからず・・・ 見本などありましたら、ご教授お願いします。 環境 Windows2003 server IIS6.0 開発 VB2008 SQLServer2005
- みんなの回答 (8)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
>PHPで作成されるHTMLには下記のような記述がされるので >それでこちらのDLLを動かすとのことです。 キーワードとしては、HttpModule, HttpHandler です。 http://support.microsoft.com/kb/307985/ ただ、この場合相応のスキルを要求されますよ。 ですので、DLL にこだわらずに ・ASP.NET の Web アプリケーションとして開発 ・Classic ASP で開発 のいずれかをおすすめします。 ところで、この実装、社内用のシステムであればまだしも、まさかインターネットシステムではないですよね。正統な認証の仕組みが無いと危険過ぎます。通常はサーバ間通信で処理するかと思います。 多分これ以上私にできるアドバイスはないので、頑張ってくださいませ。
その他の回答 (7)
- todo36
- ベストアンサー率58% (728/1234)
REST/JSON型Webサービスのサーバ側を作るということ? であれば、色々な方法で実装できます。 > VB2008にてプロジェクトを新規作成する際はどれを選べばよいかもわからず ASP.NET Webアプリ または ASP.NET Webサービス または WCF で実装可能と思います。 一番原始な方法は、 ASP.NET Webアプリ/ashxファイル 実装の流れは、 リクエストデータ→JSONデシリアライズ DBアクセス レスポンスにJSONデータを出力
お礼
プロジェクトの選択、ASP.NET Webアプリ/ashxファイルだったんですね。 色々と新規作成をしてみましたが 最初から書かれている内容が全部違うのでどれなのかわからず・・・ > リクエストデータ→JSONデシリアライズ > DBアクセス > レスポンスにJSONデータを出力 この実装の流れのリクエストデータの受け方とレスポンスの出力の仕方 をできるのがこのプロジェクトで作成するということなんですね。
>ブラウザ側はPHPで作成されています。 .php ファイルはあくまでサーバ側で処理されます。.php ファイルに埋め込まれたロジックがサーバ側で実行され、その結果として HTML だけがブラウザに送られます。つまりクライアント(ブラウザ)で表示される動くのは HTML(+JavaScript) であって、PHP ではありません。 この部分のご認識が誤っている可能性があります。 >作成したいDLLはIISがあるサーバに置きます。 以下のいずれでしょうか? 1.PHP が動作する Web サーバと DLL が配置される Web サーバは別なのでしょうか? 2.サーバとしては同じだけれど、PHP で動作する Web アプリケーションと、IIS で DLL を利用する Web アプリケーションが独立しているのでしょうか? 3.(最初の方の回答で私が参考 URL を掲示しましたが)、PHP から DLL を直接呼び出す事ができる状況なのでしょうか?
お礼
ご指摘の通り、そこの認識が間違っているようです。 PHPとDLLのサーバの関係は 1の通り、別サーバにあります。 PHPで作成されるHTMLには下記のような記述がされるので それでこちらのDLLを動かすとのことです。 <form method="POST" action="http://IISサーバのホスト/APIのURI">
>このような処理なのでDLLにてGET、POSTが必要なのです。 >(GET,POSTはJSON形式です) どうも意味がわかりませんねぇ。 通常 GET, POST を投げる側は普通ブラウザ(クライアントパソコン)で、それを受ける側はサーバになりますが、 この DLL はブラウザ上で動作すると言っていますか? どの処理がどこ(ブラウザ上 or サーバ上)で動作するかを整理された方がよいと思います。
お礼
あまり理解ができていなくすみません ブラウザ側はPHPで作成されています。 作成したいDLLはIISがあるサーバに置きます。 作成したい処理は ブラウザ側から入力内容を送ってくるので それを受け取って、DLLで処理をして、結果を返すというものなのですが DLLで受け取る時にGET,結果を返す時にPOSTするという認識なのですが これが間違っているのでしょうか?
>DLL自体の処理でどのようにGET,POSTを >記述してよいのかわからず困っています。 なぜ DLL の中で GET, POST する必要があるのでしょうか? DB コネクションをはって SQL を投げるだけではないのですか?
お礼
やりたい処理はこのような感じです。 1.画面にて、名前、住所などを入力、登録ボタン押下(PHP) 2.データを受け取りDBへ登録、結果を返す(DLL) 3.結果によって画面遷移先変更(PHP) なので 結果で、成功/失敗(名前の文字数が多すぎるの原因)を返すということになっています。 そのほかに下記のような処理もありまして 1.キー(IDなど)を渡す(PHP) 2.キー(IDなど)を使用してDBを検索、検索結果の内容を返す(DLL) 3.返された内容の表示(PHP) このような処理なのでDLLにてGET、POSTが必要なのです。 (GET,POSTはJSON形式です)
>GET,POSTをどのように書いていいのか >わからず困っています。 DLL の呼出し方の話ですか? DLL 呼出し後の話ですか? 前者なら PHP が入力フォーム(HTML)をブラウザに返し、ブラウザから PHP の別ページに GET, POST するようにして、GET, POST 値を受け取った PHP 側から DLL を呼び出す時に値を渡すだけです。 後者なら PHP 側で DLL のリターンコードを元に redirect するだけです。 こんな回答で OK でしょうか?
お礼
説明がわかりづらくてすみません。 DLL自体の処理でどのようにGET,POSTを 記述してよいのかわからず困っています。
この辺が参考になると思います。 1) .NET で COM コンポーネントを作成 http://point56.blogspot.com/2009/09/net-netcom.html 2) PHP からの COM の呼出し方 http://winofsql.jp/sh/html/vbc_build_com.htm
お礼
ありがとうございます。 プロジェクトの作成についてこれで先に進めそうです。 2)は見ていたのですが GET,POSTをどのように書いていいのか わからず困っています。
別言語って JavaScript の事を言っていますか? それとも ASP.NET の Webサイトが C# 言語などで作成されていて、そこから VB.NET で作成した DLL を呼び出したいのでしょうか? 後者であれば、「クラスライブラリ」を選びます。
お礼
説明が足らずすみません。 別言語はPHPです。 PHPで作成されたページに入力項目、登録ボタンがあり ボタンを押したらこちらのDLLを呼び出してDBへ登録させる という仕組みになっています。
お礼
色々とアドバイスありがとうございました。 リンク先、おすすめの2つ検討して作成してみます。 実装はインターネットシステムです・・・ 環境まわりはあまり詳しくないのですが PHPのあるサーバやDBサーバなどの間のセキュリティ関係は色々と制約をかけていたり 認証の仕組みもあるようなので・・・ 本当に色々とありがとうございました。