Post on 14-Jul-2015
.Net training In gandhinagar
http://shreedhoon.com/training/aspNetTraining.php.
112/17/14
http://shreedhoon.com/training/aspNetTraining.php 2
C#/.NET
Basics 2
Some code is from “C# in a Nutshell” and “Programming C#”
12/17/14
.net training in gandhinagar
http://shreedhoon.com/training/aspNetTraining.php 3
This week
• Event Handling and delegates
• ASP.NET Web Forms
• ASP.NET Web Services
12/17/14
http://shreedhoon.com/training/aspNetTraining.php 4
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
12/17/14
http://shreedhoon.com/training/aspNetTraining.php 5
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
12/17/14
http://shreedhoon.com/training/aspNetTraining.php 6
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(); }}12/17/14
http://shreedhoon.com/training/aspNetTraining.php 7
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
Encapsulatedmethod
12/17/14
http://shreedhoon.com/training/aspNetTraining.php 8
Multicast Delegate
using System; // From C# In A Nutshelldelegate void MethodInvoker(); // define delegate class class Test { static void Main() { // create a Test object // and call its constructor new Test(); }
12/17/14
http://shreedhoon.com/training/aspNetTraining.php 9
Test() {
MethodInvoker m = null; m += new MethodInvoker(Foo); // overloaded += m += new MethodInvoker(Goo); // delegate holds m(); // pointers to two } // methods
m
MethodInvokervoid Foo()
void Goo()
12/17/14
http://shreedhoon.com/training/aspNetTraining.php 10
void Foo() { Console.WriteLine("Foo"); } void Goo() { Console.WriteLine("Goo"); }}
Output:FooGoo
12/17/14
http://shreedhoon.com/training/aspNetTraining.php 11
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 browser12/17/14
http://shreedhoon.com/training/aspNetTraining.php 12
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)
• Every .aspx file has this “code-behind” file12/17/14
http://shreedhoon.com/training/aspNetTraining.php 13
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.
12/17/14
http://shreedhoon.com/training/aspNetTraining.php 14
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
12/17/14
http://shreedhoon.com/training/aspNetTraining.php 15
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
12/17/14
http://shreedhoon.com/training/aspNetTraining.php 16
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)
12/17/14
http://shreedhoon.com/training/aspNetTraining.php 17
Web Form Step-by-step(1)
(1) Start with a simple C# program – Divider.csusing System;
public class Divider {
public int divide(int a, int b) { return a / b; } public static void Main(String[] args) {
Divider s = new Divider(); Console.WriteLine(s.divide(10,5)); }}
12/17/14
http://shreedhoon.com/training/aspNetTraining.php 18
Web Form Step-by-step(2)
(2) Compile to a .dll csc –t:library Divider.cs
(3) Run .NET New Project choose C# select .NET Web Application enter location: http://localhost/ADivider
12/17/14
http://shreedhoon.com/training/aspNetTraining.php 19
Web Form Step-by-step(3)
(4) Paint the screen in design mode
(5) Right click to get to backing code
(6) Add a reference to the .dll with Project/Add Reference
(7) Use the class
12/17/14
http://shreedhoon.com/training/aspNetTraining.php 20
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”
12/17/14
http://shreedhoon.com/training/aspNetTraining.php 21
ASP.NET Web Services(1)
0) Check if IIS is running by attempting to visit 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.
12/17/14
http://shreedhoon.com/training/aspNetTraining.php 22
ASP.NET Web Services(2)
(1) Start with a simple C# program – Divider.csusing System;
public class Divider {
public int divide(int a, int b) { return a / b; } public static void Main(String[] args) {
Divider s = new Divider(); Console.WriteLine(s.divide(10,5)); }}
12/17/14
http://shreedhoon.com/training/aspNetTraining.php 23
ASP.NET Web Services(3)
(2) Compile to a .dll
csc –t:library Divider.cs
(3) Run .NET
New Project
choose C#
select ASP .NET Web Service
enter location: http://localhost/ADividerWS
12/17/14
http://shreedhoon.com/training/aspNetTraining.php 24
ASP.NET Web Services(4)
(4) Add a reference to the .dll with Project/Add Reference
(5) Edit the web service sample so that it provides the correct signature and calls
the divide method(6) Get the WSDL document from a browser(7) Run wsdl, compile the result, and write a
client12/17/14
.net training in gandhinagar
12/17/14 http://shreedhoon.com/training/aspNetTraining.php 25
For more visit
12/17/14 http://shreedhoon.com/training/aspNetTraining.php 26
• Website :
• www.shreedhoon.com• Blogs:• http://dotnettrainingingandhinagar.blogspot.in/• http://dotnettrainingingandhinagar.tumblr.com/
• http://shreedhoontraining.weebly.com/
• http://shreedhoontraining.weebly.com/about.html