Sunday, April 7, 2013

Web Services Platform Elements,Why Web Services?

Web Services have three basic platform elements: SOAP, WSDL and UDDI.

SOAP?

SOAP is an XML-based protocol to let applications exchange information over HTTP. Or more simple: SOAP is a protocol for accessing a Web Service.

• SOAP stands for Simple Object Access Protocol
• SOAP is a communication protocol
• SOAP is a format for sending messages
 • SOAP is designed to communicate via Internet
 • SOAP is platform independent
 • SOAP is language independent
• SOAP is based on XML
• SOAP is simple and extensible
• SOAP allows you to get around firewalls
 • SOAP is a W3C standard

WSDL?

WSDL is an XML-based language for locating and describing Web services.
• WSDL stands for Web Services Description Language
• WSDL is based on XML
• WSDL is used to describe Web services
• WSDL is used to locate Web services
• WSDL is a W3C standard

UDDI?

 UDDI is a directory service where companies can register and search for Web services.

• UDDI stands for Universal Description, Discovery and Integration
 • UDDI is a directory for storing information about web services
• UDDI is a directory of web service interfaces described by WSDL
 • UDDI communicates via SOAP
 • UDDI is built into the Microsoft .NET platform

Introduction to Web Services

Web Services can convert your applications into Web-applications.
Web Services are published, found, and used through the Web. 

What You Should Already Know

Before you continue, you should have a basic understanding of the following:
• HTML
 • XML

What are Web Services?
• Web services are application components
• Web services communicate using open protocols
• Web services are self-contained and self-describing
• Web services can be discovered using UDDI
• Web services can be used by other applications
 • XML is the basis for Web services

How Does it Work? 
The basic Web services platform is XML + HTTP. XML provides a language which can be used between different platforms and programming languages and still express complex messages and functions. The HTTP protocol is the most used Internet protocol. Web services platform elements:
• SOAP (Simple Object Access Protocol)
• UDDI (Universal Description, Discovery and Integration)
 • WSDL (Web Services Description Language)

Wednesday, March 21, 2012

State Management


1- Querystrings: 
Using Query string variables, you can pass data between webforms. below is an example
       
     Ex: Suppose you want to pass the TextBox1.Text variable from WebForm1 to WebForm2 on button click event.
                   
                   protected void Button1_Click(object sender, EventArgs e)
                   {
                        Response.Redirect("WebForm2.aspx?id=" + TextBox1.Text);
                   }
               
                 To Read the value of "id" in WebForm2, you should use the below code
                 string queryStringID = Request.QueryString["id"];
           
                 Now queryStringID will hold the data from the querystring.




2- Cookies: 
AS you might already know, cookies are small text files stored in the client machine. Cookies can only store up to approximately 4 kbs.  Once the cookie is stored into the client machine, each request from the client to your application, the web browser will look for the cookie and send     it via the Request Object.

       
   Ex: To store a value of TextBox1.Text inside the cookie use the below code
           
                            protected void Button1_Click(object sender, EventArgs e)
                            {
                               HttpCookie cookie = new HttpCookie("UserName");
                               cookie.Value = TextBox1.Text;
                               cookie.Expires = DateTime.Now.AddDays(1);
                               Response.Cookies.Add(cookie);
                               Response.Redirect("WebForm2.aspx");
                             }
                      Now in webform2 page_load event, you should write the below code to get the value
                 
                          if(Request.Cookies["UserName"] != null)
                             Response.Write(Request.Cookies["UserName"].Value);


    3- Session Variables: By default, session variables are stored in the webserver's memory. Session variables are unique per each user.
               
  Ex: To store a value inside a session variable use the below code
           
                                            protected void Button1_Click(object sender, EventArgs e)
                                            {
                                                Session["UserName"] = TextBox1.Text;
                                                Response.Redirect("WebForm2.aspx");
                                            }

                                        To retrieve the value from WebForm2 use the below code
   
                                            Response.Write(Session["UserName"]);

    4- Cross Page Posting (ASP.NET 2.0): 
Cross page posting was introduced in ASP.NET 2.0. I already have a blog post about it.

  Ex: The same example is taken from my previous blog post  Set the Button1 PostBackUrl property to WebForm2.aspx Now in WebForm2.aspx, Write the below code to get the value of 
textbox1

   TextBox txtFirstPage = (TextBox)(PreviousPage.FindControl("TextBox1"));
  Response.Write(String.Format("You wrote {0} in Page1",txtFirstPage.Text));



    5- Submit Form: You can submit the form in Webform1.aspx to webform2.aspx. In that case, you can retrieve all the WebForm1's form element from                                                        webform2. What we will do in the below example is to add another form ( not a server side one) which will have two HTML controls; the first is an  submit control the second is a hidden field which will have the value of TextBox1 web server control to be posted to webform2
       
  Ex: now the HTML code of webform1 will look like below

                                    <form id="Form1" method="post" runat="server">
                                    <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
                                    </form>
                                    <form name="SubmittedForm" action="WebForm2.aspx" method="post">
                                    <input id="Submit1" type="submit" value="submit" onclick="CopyTextToHiddenField()" />
                                    <input name="Hidden1" type="hidden" />
                                    </form>
       
  Of course you realized the we handled the onclick event of the submit button which will call a javascript function to copy the value of TextBox1 into    the hidden field (Hidden1) in order to post it to webform2. Also you so in the second form tag the action attribute in which we specified to which  page the second form (SubmittedForm) will be posted.
           
  Add the below javascript code inside the <head> tag of WebForm1
           
                            <script language="javascript">
                            function CopyTextToHiddenField()
                            {
                                var textbox1Value = document.getElementById("<%=TextBox1.ClientID%>").value;
                                document.forms[1].document.getElementById("Hidden1").value = textbox1Value;
                            }
                            </script>

Now you retrieve the value of "Hidden1" hidden field in webform 2 using the below code