Presentation is loading. Please wait.

Presentation is loading. Please wait.

Carnegie Mellon University MSCF1 C#/.NET Basics 2 Some code is from “C# in a Nutshell” and “Programming C#”

Similar presentations


Presentation on theme: "Carnegie Mellon University MSCF1 C#/.NET Basics 2 Some code is from “C# in a Nutshell” and “Programming C#”"— Presentation transcript:

1 Carnegie Mellon University MSCF1 C#/.NET Basics 2 Some code is from “C# in a Nutshell” and “Programming C#”

2 Carnegie Mellon University MSCF2 This week Event Handling and delegates ASP.NET Web Forms ASP.NET Web Services

3 Carnegie Mellon University MSCF3 Event Handling Model Delegates listen for the events and call registered handlers Each component has a delegate for every event it can raise We register a method with the delegate and the delegate will call the method asynchronously

4 Carnegie Mellon University MSCF4 Delegates (1) A Button, for example, needs to notify some object when it is pushed We don’t want to hardwire (in the button) which object to call A delegate is a reference type used to encapsulate a method with particular parameter types

5 Carnegie Mellon University MSCF5 Delegate (2) using System; delegate String Foo(String x); // create a delegate class class Test { public static void Main() { Foo f = new Foo(ConvertToUpperCase); // create a delegate object String answer = f("abcd"); // call the method in the // object Console.WriteLine(answer); } public static String ConvertToUpperCase(String s) { return s.ToUpper(); }

6 Carnegie Mellon University MSCF6 Delegate (3) public class Form1 : System.Windows.Forms.Form { private System.Windows.Forms.Button multiplyButton; public void foo() { this.multiplyButton = new System.Windows.Forms.Button(); this.multiplyButton.Text = "Multiply"; this.multiplyButton.Click += new System.EventHandler(this.multiplyButton_Click); } private void multiplyButton_Click(object sender, System.EventArgs e) { textBox3.Clear(); string op1Str = op1.Text; string op2Str = op2.Text; : } Delegate reference Delegate Encapsulated method

7 Carnegie Mellon University MSCF7 Multicast Delegate using System; // From C# In A Nutshell delegate void MethodInvoker(); // define delegate class class Test { static void Main() { // create a Test object // and call its constructor new Test(); }

8 Carnegie Mellon University MSCF8 Test() { MethodInvoker m = null; m += new MethodInvoker(Foo); // overloaded += m += new MethodInvoker(Goo); // delegate holds m(); // pointers to two } // methods m MethodInvoker void Foo() void Goo()

9 Carnegie Mellon University MSCF9 void Foo() { Console.WriteLine("Foo"); } void Goo() { Console.WriteLine("Goo"); } Output: Foo Goo

10 Carnegie Mellon University MSCF10 ASP.NET Web Forms (1) Web Forms bring rapid appplication development to the web Similar technology is available on J2EE platforms (struts, Java Server Faces) Drag and drop development for the web tier – write event handlers as in Windows Forms User interacts with the sever via a standard browser

11 Carnegie Mellon University MSCF11 ASP.NET Web Forms (2) Web pages are dynamically generated Standard HTML is sent to the browser Notepad would work but Visual Studio makes life easy The user interface code is in an.aspx file The logic (C# code) is stored in a separate file (containing event handling code)

12 Carnegie Mellon University MSCF12 ASP.NET Web Forms (3) Postback events are handled on the server with an HTTP request. For example, the submit button is clicked. Non-postback events are not handled by the server immediately. For example, text is entered into a form or the mouse is moved. State is automatically added to an otherwise stateless protocol..NET maintains the user’s session.

13 Carnegie Mellon University MSCF13 Web Form Life Cycle Complicated series of activities similar to what is found in J2EE struts and JSF For this class let’s just say that a lot of pre- and post-processing goes on for each web request

14 Carnegie Mellon University MSCF14 Creating A Web Form(1) Prerequisites: IIS and Front Page Server Extensions (use Internet Service Manager and right click on the web site/All Tasks/Configure Server Extensions) Start/Microsoft Visual Studio.NET/ New Project/Visual C#/ASP.NET Web Application/BinomialTreeWebApp Generated code goes into c:\Inetpub\wwwroot\BinomialTreeWebApp

15 Carnegie Mellon University MSCF15 Creating A Web Form(2) Two files generated - The.aspx file holds the HTML - The aspx.cs file holds the C# To see the C# code right click the form and select view code Note that you can see the design view or the HTML view (tabs on bottom)

16 Carnegie Mellon University MSCF16 Web Services “The internet is evolving from a collection of isolated web sites and applications into a general communication bus for distributed applications.” Pradeep Tapadiya, author of “.NET Programming”

17 Carnegie Mellon University MSCF17 ASP.NET Web Services 0) Check if IIS is running by attempting to visit http://localhost http://localhost 1) If it's not running click Start/Settings/Control Panel/Add Remove Programs/ Add Remove Windows Components and enable IIS. 2) If.NET was installed after IIS reconfigure IIS by running aspnet_regiis.exe /i from a command prompt.

18 Carnegie Mellon University MSCF18 ASP.NET Web Services Suppose we want to provide a student name given a student ID.

19 Carnegie Mellon University MSCF19 ASP.NET Server Code // CoolService.asmx using System.Web.Services; using System.Collections; namespace Student { [WebService(Namespace="http://localhost/ACoolQueryService/")] public class QueryService : WebService { private static Hashtable nameValuePairs;

20 Carnegie Mellon University MSCF20 static QueryService() { nameValuePairs = new Hashtable(); nameValuePairs.Add("12345","Moe"); nameValuePairs.Add("01234","Curly Joe"); nameValuePairs.Add("54321","Larry"); } [WebMethod] public string GetName(string id) { return (string)nameValuePairs[id]; }

21 Carnegie Mellon University MSCF21 Create a virtual directory under IIS Start Settings Control Panel Administrative Tools Select Internet Information Services Expand and select the default web site Click Action/New/Virtual Directory Provide a name (ACoolQueryService in this case) and browse to the directory holding the.asmx file Select everything but write

22 Carnegie Mellon University MSCF22 Checking the service Visit the service with your browser http://localhost/ACoolQueryService/CoolService.asmx HTML is generated that allows you to test the service via standard HTTP

23 Carnegie Mellon University MSCF23 Testing With HTTP Get Request GET /ACoolQueryService/CoolService.asmx/GetName?id=string HTTP/1.1 Host: localhost HTTP/1.1 200 OK Content-Type: text/xml; charset=utf-8 Content-Length: length Response string

24 Carnegie Mellon University MSCF24 Testing with SOAP POST /ACoolQueryService/CoolService.asmx HTTP/1.1 Host: localhost Content-Type: text/xml; charset=utf-8 Content-Length: length of document SOAPAction: "http://localhost/ACoolQueryService/GetName" <soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema- instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">

25 Carnegie Mellon University MSCF25 string

26 Carnegie Mellon University MSCF26 SOAP Response HTTP/1.1 200 OK Content-Type: text/xml; charset=utf-8 Content-Length: length <soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">

27 Carnegie Mellon University MSCF27 <GetNameResponse xmlns= "http://localhost/ACoolQueryService/"> string


Download ppt "Carnegie Mellon University MSCF1 C#/.NET Basics 2 Some code is from “C# in a Nutshell” and “Programming C#”"

Similar presentations


Ads by Google