Introduction to VB.Net Internet Tools

advertisement
Introduction to VB.Net Internet
Tools
Downloading Internet Resources
• Download the HTML from a web page and
display it in a text box.
– System.URI
• A class for expressing a Uniform Resource Identifier.
– System.Net.WebRequest
• Makes a request to a Uniform Resource Identifier.
– WebResponse
• Provides a response from a Uniform Resource Identifier.
• Demo: MyBrowser/GetWebPage
Imports System.IO
Imports System.Net
Imports System.Text
Private Sub BtnGo_Click(ByVal sender As System.Object, ByVal e
As System.EventArgs) Handles BtnGo.Click
Dim URI As New Uri(txtURL.Text)
Dim request As WebRequest = WebRequest.Create(URI)
Dim response As WebResponse = request.GetResponse
Dim stream As Stream = response.GetResponseStream
Dim readStream As New StreamReader(stream)
Dim webData As String = readStream.ReadToEnd
stream.Close()
readStream.Close()
txtData.Text = webData
End sub
Change Downloaded Page
• For example, use string’s Replace method to
change page content.
– webData = webData.Replace("Chao", "You")
Using the WebClient Class
• This class wraps the Request and Response
classes.
• Methods:
– DownloadData: Returns a byte array from an
Internet address.
– DownloadFile: Save a downloaded file.
– OpenRead: Returns a stream from an Internet
address.
UTFEncoding Class
• This class encodes Unicode characters using
UCS Transformation Format, 8-bit form
(UTF-8). This encoding supports all
Unicode character
• Method: GetString
– Decodes the specified byte array into a string.
WebClient/Download
Dim wc As New WebClient()
Dim utf8 As New UTF8Encoding()
Dim webData As String
webData = utf8.GetString(wc.DownloadData(txtURL.Text))
txtData.Text = webData
WebClient/DownloadFile
Dim wc As New WebClient()
wc.DownloadFile(txtURL.Text, "c:\testDownLoad.txt")
WebClient/OpenRead
Dim wc As New WebClient()
Dim stream As Stream
stream = wc.OpenRead(txtURL.Text)
Dim readStream As New StreamReader(stream)
Dim webData As String = readStream.ReadToEnd
txtData.Text = webData
Hosting Internet Explorer in
Windows Forms
• Internet Explorer COM control
– Right click Tool Box Windows Form tab and
select Customize ToolBox
– Select COM Component tab, and Scroll down
to select Microsoft Web Browser.
Internet Explorer COM control
• Events
– DownLoadComplete
– DownLoadBegin
• Methods:
– Navigate
• Dim HomeURL As String = "http://dchaolaptop"
•
Private Sub MyBrowser_Load(ByVal sender As System.Object, ByVal
e As System.EventArgs) Handles MyBase.Load
•
•
–
–
–
–
IE.Navigate(HomeURL)
End Sub
Goback, GoForward
Stop
Refresh2
GoHome, GoSearch
Introduction to Web Form
Web Form vs HTML Form
• HTML Form: A web page that contains one
or more HTML form controls such as
textbox, checkbox, dropdown list, and
button inside an HTML <form> tag.
• Web Form: A web page that contains:
– ASP.NET server controls, and/or HTML form
controls inside a <form runat=“server”> tag.
– ASP.NET code that produces dynamic content
to be displayed within the web form.
ASP.NET Server Controls, ASP:
• Intrinsic Controls: These controls correspond to
their HTML counterparts.
– Ex. Textbox, listbox, button, etc.
• Data-Centric Controls: Controls used for binding
and displaying data from a data source, such as the
DataGrid control.
• Rich Controls: Such as Calendar, AdRotator.
• Validation Controls: Such as
RequiredFieldValidator.
• Namespace:System.Web.UI.Webcontrols
Web Server
• Default directory
– C:\InetPub\wwwroot
– Computer lab: Zip drive
• dchao
• Default home page
– Default.aspx, default.asp, default.htm
Web Project
• File/New/ ASP.Net Application
• Website folder
• Web form:
– Webform.aspx
• Design view and HTML view
– WebForm.Aspx.VB
• CodeBehind
Web Data Form
• Web Data Form Wizard:
– Project/Add Web Form/Data Form Wizard
• Web Form with Server Explorer or Data
Tools.
– Data binding
• OleDbDataAdapter1.Fill(Ds21)
• DataGrid1.DataBind()
Use Data Reader to Create a
DropDown List
• Demo: WebForm/WebForm2
– Update rating for selected customer
Introduction to ASP.Net
ASP.NET
• ASP.NET is a server-side technology for
creating dynamic web pages.
• ASP.NET allows you to use a selection of
full programming languages. The default
language is VB .NET.
• ASP.NET files have a .aspx extension.
ASP.NET in the .NET
Framework
• 1. The client requests a web page.
• 2. The web server locates the page.
• 3. If the page is an ASP.NET page, it is sent
to the Common Language Runtime for
compilation and execution.
• 4. The HTML produced by the CLR is
returned to the browser.
Benefits of Server-Side
Technology
• Browser compatibility: Every browser reads
HTML.
• Protection of source code.
• Controls are server-side objects with properties,
methods and events.
• Separating code from content.
– Embedded code
– CodeBehind
• Data entered into form fields is preserved in View
State.
Elements of an ASP.Net Page
•
•
•
•
•
Directives
Code blocks
ASP.NET controls
HTML tags and text.
Server-side include directives
Directives
• A directive controls how an ASP.Net page is
compiled.
– Page directives: Specify default language, enable
tracing and debugging for a page.
– <%@ Page Language=“VB” %>, <%@ Page Language=“C#” %>
– <%@ Page Trace=“True” %>
–
–
–
–
Imports name spaces
To process Access database, we need to import:
<%@ Import Namespace=“System.Data” %>
<%@ Import Namespace=“System.Data.Oledb” %>
Inserting ASP.NET Code into Web Pages
• Place ASP.NET code between <script> and </script> with
a RUNAT attribute.
– <script language=“VB” runat=“server”>
• Your script
– </script>
• Inline Code Block: ASP code is placed between <% and
%>.
– <p>The time is now <%=Now.TimeOfDay()%></p>
–
<p>The time is now <% response.write(Now.TimeOfDay())%></p>
• “=“ is shorthand for response.write
• Server-side comments:
– <%-• Comments
– --%>
• CodeBehind
Demo: TineNow.aspx
<p>The time is now <%=Now.TimeOfDay()%></p>
<p>The time is now <%
response.write(Now.TimeOfDay())%></p>
<%
dim iHour
iHour=Now.Hour()
if iHour < 12 then
response.write("good morning")
else
response.write ("<h1>good
afternoon</h1><br>")
end if
%>
ASP.NET Object Model
Client
Request Object
Server
Object
Response Object
Server
Application
Object
Session
Object
ASP.NET Request Object
• When a page is requested, much
information is passed along with the
request, such as the URL, queryString, and
data from a form. The request object allows
you to get the information passed along
with the request.
• It is created from the
System.Web.HttpRequest class.
FORM Tag
• Form attribute:
– Action: Specify the URL of a program on a server or an
email address to which a form’s data will be submitted.
– Method:
• Get: the form’s data is appended to the URL specified by the
Action attribute as a QueryString.
• Post: A prefered method for database processing. Form’s data
is sent separately from the URL.
– Name: Form’s name
QueryString
• A QueryString is a set of name=value pairs
appended to a target URL.
• It can be used to pass information from one
webpage to another.
• Example:
• <A
Href=“http://my.com/Target.htm?CustID=C1&Cname=Ch
ao”>
Request Object Collections
• QueryString
– http://my.com/Target.htm?CustID=C1&CustName=Chao
– cid = Request.queryString(“CustID”)
– cName=Request.queryString(“CustName”)
• Form
– A form with two text boxes:CustID, CustName
– cid = Request.Form(“CustID”)
– cName=Request.Form(“CustName”)
• Cookies
ASP.NET Response Object
• This object allows you to send information
back to client.
• It is created from the
System.Web.HttpResponse class.
• Properties:
– Cookies (a collection)
• Methods:
– Response.Write
– Response.Redirect (“URL”)
• Demo: testReqForm.htm, testReqForm.aspx
Postback
• Postback is the process by which the browser
posts information back to the server telling the
server to handle the event, the server does so and
sends the resulting HTML back to the browser.
• Page.ISPostBack property.
– IF Not Page.ISPostBack Then
• This is the first time the page is loaded.
• AutoPostBack property
– Button – true
– DropDown list, textbox, radiobutton, checkbox: False
FrontPage/VS.Net Demo
• wwwRoot/Webform
– Webform1: Copy from VS.Net toFrontPage
• Handles
• OnClick
– Webform5:
• AutoPostBack
• Page.IsPostBack
• Use a Button’s onClick event instead of Listbox’s
selectedIndexChanged event.
• Copy to FrontPage.
VB/WebForm/FrontPage
• Demo:
– VB: MyBrowser/GetWebPage
– WebForm: RichControl
– FrontPage:ASPNet/GetPageChange.aspx
Bind the DataReader to a Server Control
• DataGrid:
–
–
–
–
dim objDataReader as oledbDataReader
objDataReader=objComm.executeReader()
dgCustomer.datasource=objDataReader
dgCustomer.DataBind()
• The Datagrid is defined as:
– <asp:datagrid id="dgCustomer" runat="server" /><br />
Demo: CommandReadCust.ASPX
Web Service
• XML Web Service
• Web services are classes that are stored on
the web which can instantiate and use in
both Windows and Web applications.
Creating a Web Service Using a Text
Editor
• WebService directive:
– <%@ WebService Class="CustomerInfo" %>
• Import namespaces:
– imports System.Web.Services
– imports System
• Define the web service class.
• Add WebMethod attribute to the function
declaration.
• Note: Web service file extension is ASMX
A Web Service Example
ASPET/TestWebService.ASMX
<%@ WebService Class="CustomerInfo" %>
imports System.Web.Services
imports System
imports System.Data
imports System.Data.Oledb
Public Class CustomerInfo
<webMethod()> public Function GetCname(ByVal CID as String) as String
dim strConn as string ="Provider=Microsoft.Jet.OLEDB.4.0;Data Source =
c:\sales2k.mdb"
dim objConn as new OledbConnection(strConn)
dim strSQL as string = "select * from customer where CID = '" & CID & "';"
dim objComm as new OledbCommand(strSQL,objConn)
dim Results as string
objConn.open()
dim objDataReader as oledbDataReader
objDataReader=objComm.executeReader()
objDataReader.read()
return objDataReader("Cname")
end function
Creating a Web Service Using VS
• New Project/ASP.Net Web Service
Web Service Description Language
(WSDL)
• A WSDL file is an XML document
containing a complete description of the
web service. It shows a web service’s
name, methods, and parameter types.
• Help page: After entering web service’s
URL, a help page is displayed. You can
click the Service Description link to see the
WSDL file.
HTTP
• HTTP Request:
– Request line: Method – Get, Post
– Header
– Body
• HTTP Response:
– Respons line: HTTP version and status code
– Header
– Body
Invoking a Web Service with HTTP
• Http – Get:
– http://dchaolaptop/aspnet/testwebservice.asmx/GetRating?cid=1
• Http – Post:
– Use the Action attribute to call the function.
• Http-SOAP: Use Http’s Post method to send an XML
document in Https’ body section.
• Demo: Help page
Simple Object Access Protocol
SOAP
• SOAP Request and Response message:
– Envelop: An envelop element surrounds the
message. It is the root element of a SOAP
XML document.
– Body:
• Request: Contains the method call name and
parameter names and values.
• Response: Contains the results returned by the
method.
Consuming Web Services from a
Windows Application
• Add a web reference to the web service.
• Declare a web service class variable.
– Dim myWebService As New dchaolaptop.CustomerInfo()
• Demo: UseWebService
Universal Description, Discovery,
and Integration (UDDI)
• A directory service for web services.
– http://uddi.org
Consuming Web Services from a Web
Application
•
Creating a web service proxy class:
–
•
A local representation of the web service.
Steps to creating a proxy class:
–
–
–
Use the Wsdl.exe tool to generate the source
code file for the proxy class.
Compile the source code file into a DLL file.
Copy the DLL file to the application’s Bin
folder.
Use the Wsdl.Exe Tool to Generate
the Source Code File
• Issue the wsdl.exe command at the Visual Studio
command prompt:
Start/Programs/microsoft VS .Net/VS .Net Tools/ VS
.Net Command prompt
The following command example create a
CustomerInfo.vb file for the testwebservice.asmx web
service.
wsdl.exe /l:vb http://dchaolaptop/aspnet/testwebservice.asmx?wsdl
Compile the Source Code File
Into a DLL File
•
The command below create a
CustomerInfo.dll
Vbc /t:library /r:system.dll,system.web.services.dll,system.xml.dll
CustomerInfo.vb
<script runat="server">
sub CallService(s as object, e as eventArgs)
dim myProxy as new CustomerInfo
lblCname.text=myProxy.GetCname(txtCID.text)
lblRating.text=myProxy.GetRating(txtCID.text)
end sub
</script>
<html>
</head>
<body>
<form runat="server">
Enter CID: <asp:textbox id="txtCID" runat="server" />
<asp:label id="lblCname" runat="server"/>
<asp:label id="lblRating" runat="server"/>
<asp:button text="GetService" onClick="CallService"
runat="server" />
</form>
</body>
</html>
Demo: testProxy.aspx
Download