Validate Data remotely : Remote Basics « Network Remote « VB.Net

Home
VB.Net
1.2D
2.Application
3.Class
4.Data Structure
5.Data Types
6.Database ADO.net
7.Development
8.Event
9.File Directory
10.Generics
11.GUI
12.Language Basics
13.LINQ
14.Network Remote
15.Security
16.Thread
17.Windows Presentation Foundation
18.Windows System
19.XML
20.XML LINQ
VB.Net Tutorial
VB.Net by API
VB.Net » Network Remote » Remote BasicsScreenshots 
Validate Data remotely

///////////////////////////////////general.vb
// Compile: vbc /target:library  general.vb
Imports System

Public Interface IEmployeeManager
    Function getEmployee(ByVal id As IntegerAs Employee
    Function validate(ByVal cust As EmployeeAs ValidationResult
End Interface


<Serializable()> _
Public Class ValidationResult

    Public Sub New(ByVal ok As Boolean, ByVal msg As String)
        Console.WriteLine("ValidationResult: Object created")
        Me.Ok = ok
        Me.ValidationMessage = msg
    End Sub 'New

    Public Ok As Boolean
    Public ValidationMessage As String

End Class

<Serializable()> _
Public Class Employee

    Public FirstName As String
    Public LastName As String
    Public DateOfBirth As DateTime


    Public Sub New()
        Console.WriteLine("Employee.constructor: Object created")
    End Sub 'New

    Public Function getAge() As Integer
        Dim tmp As TimeSpan = DateTime.Today.Subtract(DateOfBirth)
        Return tmp.Days \ 365 ' rough estimation
    End Function
End Class



///////////////////////////////////test.vb
// Compile: vbc /t:exe /r:general.dll test.vb
Imports System
Imports System.Runtime.Remoting
Imports System.Runtime.Remoting.Channels.Http
Imports System.Runtime.Remoting.Channels

Module Client

    Sub Main()
        Dim channel As New HttpChannel()
        ChannelServices.RegisterChannel(channel,false)

        Dim mgr As IEmployeeManager = CType(Activator.GetObject_
            GetType(IEmployeeManager)"http://localhost:1234/EmployeeManager.soap"), _
            IEmployeeManager)

        Dim cust As New Employee()
        cust.FirstName = "James"
        cust.LastName = "Band"
        cust.DateOfBirth = New DateTime(1999512)

        Dim res As ValidationResult = mgr.validate(cust)

        Console.WriteLine("Validation result for {0} {1}" & vbCrLf & _
            "-> {2}: {3}", cust.FirstName, cust.LastName, res.Ok.ToString(), _
            res.ValidationMessage)

    End Sub
End Module

///////////////////////////////////server.vb
// vbc /target:exe  /r:general.dll server.vb
Imports System
Imports System.Runtime.Remoting
Imports System.Runtime.Remoting.Channels.Http
Imports System.Runtime.Remoting.Channels

Class EmployeeManager
    Inherits MarshalByRefObject
    Implements IEmployeeManager

    Public Sub New()
        Console.WriteLine("EmployeeManager: Object created")
    End Sub


    Public Function getEmployee(ByVal id As IntegerAs Employee _
    Implements IEmployeeManager.getEmployee
        Dim tmp As New Employee()
        tmp.FirstName = "James"
        tmp.LastName = "Band"
        tmp.DateOfBirth = New DateTime(198974)

        Return tmp
    End Function


    Public Function validate(ByVal cust As EmployeeAs ValidationResult _
    Implements IEmployeeManager.validate

        Dim age As Integer = cust.getAge()
        Console.WriteLine("EmployeeManager.validate() for {0} aged {1}", _
            cust.FirstName, age)

        If cust.FirstName Is Nothing Or cust.FirstName.Length = Then
            Return New ValidationResult(False, "Firstname missing")
        End If

        If cust.LastName Is Nothing Or cust.LastName.Length = Then
            Return New ValidationResult(False, "Lastname missing")
        End If

        If age < Or age > 120 Then
            Return New ValidationResult(False, "Employee must be younger than 120 years")
        End If

        Return New ValidationResult(True, "Validation succeeded")
    End Function

End Class

Module ServerStartup

    Sub Main()
        Console.WriteLine("ServerStartup.Main(): Server started")

        Dim chnl As New HttpChannel(1234)
        ChannelServices.RegisterChannel(chnl,false)

        RemotingConfiguration.RegisterWellKnownServiceType_
            GetType(EmployeeManager), _
            "EmployeeManager.soap", _
            WellKnownObjectMode.Singleton)

        
        Console.ReadLine()

    End Sub
End Module



           
       
Related examples in the same category
1.Your first Remote client and server
2.Call remote object method to Get and set variable
www.java2java.com | Contact Us
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.