vs2010でWCFにチャレンジしていますが、vs2005でのASP.NETとは、全然違いなかなか理解することでができません。
iphoneから値を受け取って、WEB上のMYSQLに保存したいだけなのですが、
通常のasp.net webフォームでgetメッソドを使い下記のようにすることで、
webサービスのような処理ができることが分かったのですが、
このような処理の場合は、一般的にWEBサービスとは呼ばないのでしょうか?
また、このような処理で実装した場合、wcfサービスで構築した場合に比べ
どのようなデメリットがでるのでしょうか?
Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load
On Error GoTo Err_load
Dim id As String = Page.Request.QueryString.Get("id")
Dim name As String = Page.Request.QueryString.Get("name")
If Pubmodule.FunDBConnect_Express(con) = False Then Exit Sub
strSql = "INSERT into gps_location values(" & id & ",'" & name & "','" & Now() & "')"
'MySQLCommand作成
cmd = New MySqlCommand(strSql, con)
cmd.ExecuteNonQuery()
cmd.Dispose()
Ext_load:
Exit Sub
Err_load:
GoTo Ext_load
End Sub
「Webサービス」という言葉は、世間的には「Webを使って利用者に何らかの機能を提供する」という意味で、そういう位置づけではどんな処理も「Webサービス」と言えなくはないです。
ただ、ASP.NETの世界で「Webサービス」とは、Visual Studio 2002時代からMicrosoftが推進した「XML Web Service」を指しますが、こちらは、SOAPフォーマットに則ったXML通信規格です。
ご提示されているhttpGET通信は大昔から使われた手法で、以下の点で「Webサービス」に劣ります。
・送受信できるのが単純な文字列のみ。ユーザ定義型のオブジェクトは使用できないため、自力で文字列合成や分解を行う必要がある。
・暗号化や符号化の機能がなく、セキュリティ的にも甘い(クエリ内容が平文でURL履歴に残り、一目瞭然)。
なので、自己責任で使用する分には別に構わないのですが、POSTにするとか、Ajax通信にするとか、キーを暗号化するとかして、セキュリティを高められたほうがよいと思います。
お礼
よく分かる説明ありがとうございます。