LLAMADA POST A SERVICIO

Necesitas referenciar a la dll Newtonsoft.Json.dll http://www.newtonsoft.com/json para deserialización de la respuesta al servicio (en json)

'Llamada post a: http://api.test.es/v1/post_insert_value para insertar los valores value1, value2, value3
    'Respuesta esperada: {"data":{"has_result":"yes"}}


    Public Class ContainerInsertResult
        Public data As InsertResult
    End Class

    Public Class InsertResult
        Public has_result As String
    End Class

    Sub post()

        Try

            Dim request As WebRequest = WebRequest.Create("http://api.test.es/v1/post_insert_value")
            request.Method = "POST"

            Dim postData As String = _
                "&value1=test" & _
                "&value2=test2" & _
                "&value3=test3"


            Dim byteArray As Byte() = Encoding.UTF8.GetBytes(postData)
            request.ContentType = "application/x-www-form-urlencoded"

            Dim response As WebResponse
            Dim dataStream As Stream

            dataStream = request.GetRequestStream()
            dataStream.Write(byteArray, 0, byteArray.Length)
            dataStream.Close()

            response = request.GetResponse()
            dataStream = response.GetResponseStream()

            Dim reader As New StreamReader(dataStream)
            Dim responseFromServer As String = reader.ReadToEnd()

            Dim parsedResponse As ContainerInsertResult = JsonConvert.DeserializeObject(Of ContainerInsertResult)(responseFromServer)

            Dim respuesta As InsertResult = parsedResponse.data

            MsgBox(respuesta.has_result)

        Catch ex As WebException
            If (ex.Status = WebExceptionStatus.ProtocolError) Then
                Dim responsee As WebResponse = ex.Response

                Using (responsee)
                    Dim httpResponse As HttpWebResponse = CType(responsee, HttpWebResponse)
                    Dim statusCode As HttpStatusCode = httpResponse.StatusCode

                    Dim myStreamReader As StreamReader = New StreamReader(responsee.GetResponseStream())
                    Using (myStreamReader)
                        Dim ResponseText As String = myStreamReader.ReadToEnd

                        MessageBox.Show(ResponseText)

                    End Using

                End Using
            End If
        End Try


    End Sub

LLAMADA GET A SERVICIO

Necesitas referenciar a la dll Newtonsoft.Json.dll http://www.newtonsoft.com/json para deserialización de la respuesta al servicio (en json)

'Llamada get a: http://api.test.es/v1/get_program_has_result?programId=test&programName=prueba
    'Respuesta esperada: {"data":{"has_result":"yes"}}

    Public Class ValidateResult
        Public has_result As String
    End Class
    Public Class ContainerValidateResult
        Public data As ValidateResult
    End Class

    Sub getResult()

        Try

            Dim webClient As New System.Net.WebClient
            Dim jsonString As String = webClient.DownloadString("http://api.test.es/v1/get_program_has_result?programId=test&programName=prueba")
            Dim respuesta As ContainerValidateResult = JsonConvert.DeserializeObject(Of ContainerValidateResult)(jsonString)

            MsgBox(respuesta.data.has_result)

        Catch ex As WebException
            If (ex.Status = WebExceptionStatus.ProtocolError) Then
                Dim responsee As WebResponse = ex.Response

                Using (responsee)

                    Dim httpResponse As HttpWebResponse = CType(responsee, HttpWebResponse)
                    Dim statusCode As HttpStatusCode = httpResponse.StatusCode

                    Dim myStreamReader As StreamReader = New StreamReader(responsee.GetResponseStream())
                    Using (myStreamReader)
                        Dim ResponseText As String = ""
                        ResponseText = myStreamReader.ReadToEnd()
                        ResponseText = ResponseText
                        MessageBox.Show(ResponseText)
                    End Using

                End Using
            End If
        End Try


    End Sub

INVOCAR AL DISEÑADOR DESDE UN SEGUNDO HILO DE EJECUCIÓN

Public Delegate Sub changeIconStatusInvoker(index As Integer)

Private WithEvents changeIconStatusWorker As System.ComponentModel.BackgroundWorker

'Cambiamos el icono en el campo correspondiente de la fila de un datagridview (dgUsers), segun el valor del campo status

Private Sub changeIconStatusWorkerWorker_DoWork(sender As Object, e As System.ComponentModel.DoWorkEventArgs) Handles changeIconStatusWorker.DoWork
       
     Dim d As New changeIconStatusInvoker(AddressOf Me.changeIcon)
     For i As Integer = 0 To dgUsers.RowCount - 1

           Me.Invoke(d, New Object() {i}) 
            
     Next

 End Sub

 Function changeIcon(index As Integer) As Boolean
     
     If dgUsers("statusID", index).Value = "1" Then
        dgUsers("status", index).Value = My.Resources.chat_on
     Else
        dgUsers("status", index).Value = My.Resources.chat_off
     End If
           
     Return True


 End Function

DESCARGAR IMAGEN

Function DownloadImage(_URL As String) As Image

        Dim _tmpImage As Image = Nothing

        Try

            Dim _HttpWebRequest As System.Net.HttpWebRequest = CType(System.Net.HttpWebRequest.Create(_URL), System.Net.HttpWebRequest)
            _HttpWebRequest.AllowWriteStreamBuffering = True

            _HttpWebRequest.UserAgent = "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1)"
            _HttpWebRequest.Referer = "http://www.google.com/"

            _HttpWebRequest.Timeout = 20000


            Dim _WebResponse As System.Net.WebResponse = _HttpWebRequest.GetResponse()
            Dim _WebStream As System.IO.Stream = _WebResponse.GetResponseStream()


            _tmpImage = Image.FromStream(_WebStream)

            _WebResponse.Close()
            _WebStream.Close()

        Catch ex As Exception
            MsgBox(ex.Message)
        End Try

        Return _tmpImage
    End Function


CREAR ENTRADA EN EL REGISTRO

'HKEY_LOCAL_MACHINE
Function createRegistryKey_LocalMachine(KeyName As String, valueName As String, value As String) As Boolean

        Try
            Dim ExistKey As String = Microsoft.Win32.Registry.GetValue("HKEY_LOCAL_MACHINE\" & KeyName, valueName, "Not Exist")

            If ExistKey = "Not Exist" Then
                Dim key As Microsoft.Win32.RegistryKey
                key = Microsoft.Win32.Registry.LocalMachine.CreateSubKey("Software\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION")
                key.SetValue(valueName, value, Microsoft.Win32.RegistryValueKind.DWord)
                key.Close()

                Return True
            Else
                Return False
            End If

        Catch ex As Exception
            Return False
        End Try


    End Function


createRegistryKey_LocalMachine("Software\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION", "miAplicacion.exe", "8888")
createRegistryKey_LocalMachine("SOFTWARE\Wow6432Node\Microsoft\Internet Explorer\MAIN\FeatureControl\FEATURE_BROWSER_EMULATION", "miAplicacion.exe", "8888")

EXTRAER CONTENIDO (TEXTO) DE UN ARCHIVO PDF (con iTextSharp.dll)

Dim oReader As New iTextSharp.text.pdf.PdfReader(PdfFileName)
Dim its As New iTextSharp.text.pdf.parser.SimpleTextExtractionStrategy

DocumentText = iTextSharp.text.pdf.parser.PdfTextExtractor.GetTextFromPage(oReader, 1, its)


oReader.Close()

'http://sourceforge.net/projects/itextsharp/

MOSTRAR TECLADO VIRTUAL (tabtip.exe)

Private TabTipProcess As Process
Private Sub closeTabTip()
   If tdbConfig.enableVirtualKeyboard Then
      If Me.TabTipProcess IsNot Nothing AndAlso Me.TabTipProcess.HasExited Then
          TabTipProcess.Close()
      End If
    End If
End Sub

Private Sub openTabTip()
  If tdbConfig.enableVirtualKeyboard Then
     Dim progFiles As String = "C:\Program Files\Common Files\Microsoft Shared\ink"
     Dim onScreenKeyboardPath As String = System.IO.Path.Combine(progFiles, "TabTip.exe")
     Me.TabTipProcess = Process.Start(onScreenKeyboardPath)     
  End If

End Sub

DETECTAR ROTACIÓN PANTALLA

Inherits System.Windows.Forms.Form

Private Sub form_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load

        AddHandler Microsoft.Win32.SystemEvents.DisplaySettingsChanged,
      AddressOf DetectScreenRotation

End Sub

Public Sub DetectScreenRotation(ByVal sender As System.Object,
      ByVal e As System.EventArgs)
        Dim theScreenBounds As Rectangle
        theScreenBounds = Screen.GetBounds(Screen.PrimaryScreen.Bounds)

        If (theScreenBounds.Height > theScreenBounds.Width) Then
           'acción para pantalla en horizontal
         Else
           'acción para pantalla en vertical
        End If
    End Sub
  

End Class

EXPORTAR DATASET A EXCEL CON CarlosAg.dll

http://www.carlosag.net/tools/excelxmlwriter/

Imports CarlosAg.ExcelXmlWriter


 Public Sub returnDatasetSQL(queryString As String, cadenaCONN As String, ByRef ds As DataSet)
        Try

            Dim myConnection As SqlConnection
            Dim myCommand As SqlCommand
            Dim da As SqlDataAdapter


            myConnection = New SqlConnection(cadenaCONN)

            myConnection.Open()
            myCommand = New SqlCommand(queryString, myConnection)

            da = New SqlDataAdapter(myCommand)

            ds = New DataSet()
            da.Fill(ds)

            myConnection.Close()

        Catch ex As Exception
            writeInLogFile(ex.Message, "error")
        End Try
  End Sub



Private Sub loadEXCEL(sessionID As String, CONN As String)

       Dim query As String = "Select distinct(headerMISDATOS),nMISDATOS from MISDATOS where SessionID='" & sessionID & "' order by nMISDATOS "
        
        Dim DS As New DataSet
        returnDatasetSQL(query, CONN, DS)

        For i = 0 To DS.Tables(0).Rows.Count - 1
            ReDim Preserve headerDATOS(i)
            headerDATOS(i) = DS.Tables(0).Rows(i).Item("headerMISDATOS")
        Next

        query = "Select * from MISDATOS where SessionID='" & sessionID & "' order by nMISDATOS"
        returnDatasetSQL(query, CONN, DS)

        Try


            If DS.Tables.Count > 0 Then
                If DS.Tables(0).Rows.Count > 0 Then

                    Dim book As New Workbook()

                    book.Properties.Author = "Yo Mismo"
                    book.Properties.Title = "Mi Excel"
                    book.Properties.Created = DateTime.Now

                    Dim style As WorksheetStyle = book.Styles.Add("HeaderStyle")
                    style.Font.Bold = True

                    Dim style2 As WorksheetStyle = book.Styles.Add("DefaultStyle")
                    style2.Font.Bold = False

                    Dim style3 As WorksheetStyle = book.Styles.Add("FooterStyle")
                    style3.Font.Italic = True

                    Dim styleGREEN As WorksheetStyle = book.Styles.Add("GreenStyle")
                    styleGREEN.Font.Color = "#000000"
                    styleGREEN.Interior.Color = "#31B404"
                    styleGREEN.Interior.Pattern = StyleInteriorPattern.Solid

                    Dim styleYELLOW As WorksheetStyle = book.Styles.Add("YellowStyle")
                    styleYELLOW.Font.Color = "#000000"
                    styleYELLOW.Interior.Color = "#FFBF00"
                    styleYELLOW.Interior.Pattern = StyleInteriorPattern.Solid

                    Dim styleRED As WorksheetStyle = book.Styles.Add("RedStyle")
                    styleRED.Font.Color = "#FFFFFF"
                    styleRED.Interior.Color = "#FE2E2E"
                    styleRED.Interior.Pattern = StyleInteriorPattern.Solid

                    createWorksheet(book, DS, "MIS DATOS EN LIBRO 1")
                    createWorksheet(book, DS, "MIS DATOS EN LIBRO 2")
                   

                    book.Save(System.AppDomain.CurrentDomain.BaseDirectory & "DATA_SAVED/" & sessionID & ".xls")

                    
                End If
            End If

        Catch ex As Exception
            writeInLogFile(ex.Message, "error")
        End Try
   End Sub


Sub createWorksheet(book As Workbook, ds As DataSet, NameLIBRO As String)

        Dim sheet As Worksheet = book.Worksheets.Add(NameLIBRO)


        Dim rowHeader As WorksheetRow = sheet.Table.Rows.Add()
        rowHeader.Cells.Add(New WorksheetCell("A continuación la tabla de MIS DATOS", "HeaderStyle"))
        rowHeader = sheet.Table.Rows.Add()


        Dim _i As Integer

        For _i = 0 To headerDATOS.Length - 1
                  rowHeader.Cells.Add(New WorksheetCell(headerDATOS(_i), "HeaderStyle"))
        Next

        rowHeader = Nothing




        Dim row As New WorksheetRow

        For i = 0 To ds.Tables(0).Rows.Count - 1

                
        If CDbl(ds.Tables(0).Rows(i).Item("valor")) < 70 Then
                backcolor = "RedStyle"
        Else
                If CDbl(ds.Tables(0).Rows(i).Item("valor")) >= 70 Then
                    If CDbl(ds.Tables(0).Rows(i).Item("valor")) >= 100 Then
                        backcolor = "GreenStyle"
                    Else
                        backcolor = "YellowStyle"
                    End If
                End If
        End If

        row.Cells.Add(ds.Tables(0).Rows(i).Item("valor"), DataType.Number, backcolor)

           
        Next


    End Sub

TRABAJANDO CON BLOBS DE AZURE


'No olvides referenciar Microsoft.WindowsAzure.StorageClient


Imports Microsoft.WindowsAzure
Imports Microsoft.WindowsAzure.StorageClient


Private Function enviarBLOB() As Boolean

        Dim Path As String = "C:\Temp\prova.pdf"
        Dim FS As FileStream = File.OpenRead(Path)

        Dim StorageAccount As CloudStorageAccount
        Dim BlobClient As CloudBlobClient
        Dim BlobContainer As CloudBlobContainer

        Dim sendOK As Boolean = False

        Try
            StorageAccount = CloudStorageAccount.Parse("DefaultEndpointsProtocol=https;AccountName=" & AccountName & ";AccountKey=" & AccountKey)

            BlobClient = StorageAccount.CreateCloudBlobClient
            BlobClient.Timeout = New System.TimeSpan(1, 0, 0)
            BlobClient.ParallelOperationThreadCount = 2
            BlobContainer = BlobClient.GetContainerReference(ContainerName)

            Dim myGUID As System.Guid = System.Guid.NewGuid()
            Dim sGUID As String = myGUID.ToString()

            Dim Blob As CloudBlob = BlobContainer.GetBlobReference(sGUID)

            Blob.UploadFromStream(FS)

            Blob.Metadata("no") = "12134"
            Blob.Metadata("Nombre") = "Pepe"
            Blob.Metadata("timestamp") = Now
            Blob.SetMetadata()

            Blob.Properties.ContentType = "application/pdf"
            Blob.Properties.ContentEncoding = "base64"
            Blob.SetProperties()

            sendOK = True

        Catch ex As Exception
            MessageBox.Show(ex.Message)
        End Try

        Return sendOK
End Function


Private Function urlBLOB_paraDescarga(ContainerName As String, Filename As String, AccountName As String, AccountKey As String, accessMinutesExpiry As Integer) As String

        Dim StorageAccount As CloudStorageAccount
        Dim BlobClient As CloudBlobClient
        Dim BlobContainer As CloudBlobContainer
        Dim Options As New BlobRequestOptions

        StorageAccount = CloudStorageAccount.Parse("DefaultEndpointsProtocol=https;AccountName=" & AccountName & ";AccountKey=" & AccountKey)
        BlobClient = StorageAccount.CreateCloudBlobClient
        BlobClient.Timeout = New System.TimeSpan(1, 0, 0)
        BlobClient.ParallelOperationThreadCount = 2
        BlobContainer = BlobClient.GetContainerReference(ContainerName)
        Dim Blob As CloudBlob = BlobContainer.GetBlobReference(Filename)


        Dim SHaccesPolicy As New SharedAccessPolicy()
        SHaccesPolicy.SharedAccessExpiryTime = DateTime.UtcNow.AddMinutes(accessMinutesExpiry)
        SHaccesPolicy.Permissions = SharedAccessPermissions.Read


        Dim signature As String = Blob.GetSharedAccessSignature(SHaccesPolicy)

        Return Blob.Uri.AbsoluteUri + signature

    End Function

Incluír WebKit en el proyecto

WEBKIT:

1. Descargar el componente http://webkitdotnet.sourceforge.net/downloads.php

2. Copia todos los ficheros de WebKit.NET-0.4-bin-cairo\bin excepto el .exe dentro del "..\bin\debug\" del proyecto

3. Agregar la referencia a “WebkitBrowser.dll”

4. Agregar la anterior dll en el cuadro de Herramientas ... "Elegir Elementos/ Componentes de .Net Framework / Examinar..."

5. Arrastra el componente al diseño del furmulario

Private Sub form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
WebKitBrowser1.Navigate("http://www.google.es")
End Sub