My point is that all that asp.net is - well it's just a big web service anyway.
I call web methods like this
Code:
<WebMethod()> _
<ScriptMethod(ResponseFormat:=ResponseFormat.Json, UseHttpGet:=False)> _
Public Function LookupService(ByVal fromwho As String) As String
Dim JsonMaker As JsonWriter = New JsonWriter
With JsonMaker
.StartObject()
Dim NeedColsBln As Boolean = True
Dim NeedHeadBln As Boolean = True
Dim SettingColsBln As Boolean = False
Try
Using dcn As New SqlConnection(System.Web.Configuration.WebConfigurationManager.ConnectionStrings("LocalSQLServerAWC").ToString)
Using cmd As New SqlCommand
cmd.CommandType = CommandType.StoredProcedure
cmd.CommandText = "dbo.awc_BatchInvoice_Lookup_PONumber"
cmd.Connection = dcn
cmd.CommandTimeout = 0
DetermineParameters(dcn, cmd)
SetParameters(cmd, True, fromwho, Nothing)
dcn.Open()
Using sdrReader As SqlDataReader = cmd.ExecuteReader
While sdrReader.Read
If sdrReader.GetName(0).StartsWith("acs-") Then
Else
For i As Integer = 0 To sdrReader.FieldCount - 1
.NewObject(sdrReader.GetName(i), sdrReader(i).ToString, True, True)
If i < sdrReader.FieldCount - 1 Then .Seperate()
Next
End If
End While
End Using
End Using
End Using
Catch ex As Exception
.ResetJson()
.StartObject()
.NewObject("%%dalerror%%", ex.Message.Replace("""", "'").Replace("\", "\\"))
End Try
.EndObject()
End With
Return JsonMaker.GetJson()
End Function
The JsonWriter class uses a StringBuilder so that the return data isn't thrashed around memory.
When I see a web method take too long I get rid of the JsonWriter class and talk to the StringBuilder locally to really speed it up.