Top Banner
Module 3: Using Microsoft .NET- Based Languages
21
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: 2310 b 03

Module 3:Using Microsoft .NET-

Based Languages

Page 2: 2310 b 03

Overview

Overview of the .NET-Based Languages

Comparison of the .NET-Based Languages

Creating a Component Using Visual Studio .NET

Page 3: 2310 b 03

Lesson: Overview of the .NET-Based Languages

Multiple Language Support

The Common Language Runtime

The Common Language Runtime Components

Runtime Compilation and Execution

What are Namespaces?

Using Namespaces

Page 4: 2310 b 03

Multiple Language Support

The .NET Framework is designed to support many languages

More than 20 languages currently supported

Microsoft provides Visual Basic .NET, C#, Visual J# .NET, and JScript .NET

Benefits of multiple-language support

Code modules are reusable API access is the same for all languages The right language is used for the right task Performance is roughly equal between all languages

Page 5: 2310 b 03

The Common Language Runtime

One runtime for all . NET-Based Languages

Manages threads and memory

Garbage collection

Enforces code security

Eliminates DLL versioning problems

Multiple versions of a DLL can run simultaneously

Applications can specify a version of a DLL to use

Page 6: 2310 b 03

The Common Language Runtime Components

.NET Framework Class Library Support.NET Framework Class Library Support

Thread SupportThread Support COM MarshalerCOM Marshaler

Type CheckerType Checker Exception ManagerException Manager

MSIL to NativeMSIL to NativeCompilersCompilers

CodeCodeManagerManager

GarbageGarbageCollectorCollector

Security EngineSecurity Engine Debug EngineDebug Engine

Class LoaderClass Loader

Page 7: 2310 b 03

Runtime Compilation and Execution

Nativecode

C# code Visual Basic .NET code

Which language?

Visual Basic .NETcompiler

C#compiler

MSILJITcompiler

default.aspx

Runtime

HTML

Page 8: 2310 b 03

What are Namespaces?

Group related classes

Logical, not physical, grouping

Namespaces are hierarchical

Decrease naming conflicts

Imports keyword in Visual Basic .NET code

Using keyword in C# code

Imports System.Data.SqlClientImports System.Data.SqlClient

using System.Data.SqlClient;using System.Data.SqlClient;

Page 9: 2310 b 03

Using Namespaces

Implicit object declaration

Explicit object declaration

Dim listBox1 As New System.Web.UI.WebControls.ListBox()listBox1.Items.Add("First Item")

Dim listBox1 As New System.Web.UI.WebControls.ListBox()listBox1.Items.Add("First Item")

Imports System.Web.UI.WebControls...Dim listBox1 As New ListBox()listBox1.Items.Add("First Item")

Imports System.Web.UI.WebControls...Dim listBox1 As New ListBox()listBox1.Items.Add("First Item")

using System.Web.UI.WebControls;...ListBox listBox1 = new ListBox();listBox1.Items.Add("First Item");

using System.Web.UI.WebControls;...ListBox listBox1 = new ListBox();listBox1.Items.Add("First Item");

System.Web.UI.WebControls.ListBox listBox1 = new System.Web.UI.WebControls.ListBox();

listBox1.Items.Add("First Item");

System.Web.UI.WebControls.ListBox listBox1 = new System.Web.UI.WebControls.ListBox();

listBox1.Items.Add("First Item");

Page 10: 2310 b 03

Lesson: Comparison of the .NET-Based Languages

Visual Basic .NET

C#

Choosing a Language

Practice: Language Translation

Page 11: 2310 b 03

Visual Basic .NET

Visual Basic .NET is the latest version of Visual Basic

True object-oriented language

Visual Basic Scripting Edition (and JScript) are still used for client-side script

Private Sub Button1_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles Button1.Click

Dim i As Integer = 0Dim x As Double = TextBox1.TextFor i = 0 To 4 x *= 2 Label1.Text = Label1.Text & x & ","Next

End Sub

Private Sub Button1_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles Button1.Click

Dim i As Integer = 0Dim x As Double = TextBox1.TextFor i = 0 To 4 x *= 2 Label1.Text = Label1.Text & x & ","Next

End Sub

Page 12: 2310 b 03

C#

C# is a new language

Similar to Java, Visual C++, and Pascal

private void Button1_Click(object sender, System.EventArgs e)

{ int i = 0; double x = Convert.ToDouble(TextBox1.Text); for (i=0; i<=4; i++) { x *= 2; Label1.Text = Label1.Text + x + ","; }}

private void Button1_Click(object sender, System.EventArgs e)

{ int i = 0; double x = Convert.ToDouble(TextBox1.Text); for (i=0; i<=4; i++) { x *= 2; Label1.Text = Label1.Text + x + ","; }}

Page 13: 2310 b 03

Choosing a Language

.NET Framework class library is the same regardless of language Performance

All languages are compiled to MSIL

Only performance difference is how each language compiler compiles to MSIL

The runtime compiles all MSIL the same, regardless of its origin Development experience

C# is similar to Java, C, Visual C++, and Pascal Visual Basic .NET is similar to Visual Basic

Browser compatibility

ASP.NET code is server-side code, so browser compatibility is not an issue

Page 14: 2310 b 03

Practice: Language Translation

Students are:

Given code in C#, and will then translate it into Visual Basic .NET

Given code in Visual Basic .NET, and will then translate it into C#

Time: 5 minutes

Page 15: 2310 b 03

Lesson: Creating a Component Using Visual Studio .NET

What are Classes and Components?

Creating a Class

Using Components in an ASP.NET Web Form

Demonstration: Creating a Class in Visual Studio .NET

Page 16: 2310 b 03

What are Classes and Components?

Classes are groups of code with no user interface

Components are compiled classes

Components are compiled as DLL files

Components are used for sharing code between applications

componentcomponent

Webapplication

Webapplication

Windows applicationWindows

applicationWeb

applicationWeb

application

Page 17: 2310 b 03

Create a Class Library project in Visual Studio .NET

Visual Studio .NET creates a default namespace

Create methods of the class

Creating a Class

Public Class Shipping Function ShippingCost _ (ByVal sngPrice As Single) As Single '… Return (sngShipping) End FunctionEnd Class

Public Class Shipping Function ShippingCost _ (ByVal sngPrice As Single) As Single '… Return (sngShipping) End FunctionEnd Class

public class Shipping{ public Single ShippingCost (Single sngPrice) { //… return sngShipping; }}

public class Shipping{ public Single ShippingCost (Single sngPrice) { //… return sngShipping; }}

Page 18: 2310 b 03

Using Components in an ASP.NET Web Form

Add a reference to the DLL

Instantiate the class object:

Use the object: sngShipping = x.ShippingCost(sngPrice);

sngShipping = x.ShippingCost(sngPrice);

Dim x As New CompanyA.ShippingDim x As New CompanyA.Shipping

Namespace CompanyA Class Shipping Function ShippingCost (…)

End ClassEnd Namespace

component.dll

sngShipping = _ x.ShippingCost(sngPrice)

sngShipping = _ x.ShippingCost(sngPrice)

CompanyA.Shipping x = new CompanyA.Shipping();

CompanyA.Shipping x = new CompanyA.Shipping();

namespace CompanyA{ class Shipping { public void ShippingCost (…) { } }}

component.dll

Page 19: 2310 b 03

Demonstration: Creating a Class in Visual Studio .NET

Create a new Class Library project

Create a “Hello World” method

Call it from an ASP.NET page

Page 20: 2310 b 03

Review

Overview of the .NET-Based Languages

Comparison of the .NET-Based Languages

Creating a Component Using Visual Studio .NET

Page 21: 2310 b 03

Lab 3: Building a Microsoft Visual Studio .NET Component

MedicalMedical.aspxMedicalMedical.aspx

BenefitsHome PageDefault.aspx

BenefitsHome PageDefault.aspx

Life InsuranceLife.aspxLife InsuranceLife.aspx

RetirementRetirement.aspxRetirementRetirement.aspx

DentalDental.aspxDentalDental.aspx

Dentists

DoctorsDoctors.aspx DoctorsDoctors.aspx

Doctors

Logon PageLogin.aspxLogon PageLogin.aspx

RegistrationRegister.aspxRegistrationRegister.aspx

CohoWinery

ProspectusProspectus.aspxProspectusProspectus.aspx

XML Web ServicedentalService1.asmx

XML Web ServicedentalService1.asmx

Page HeaderHeader.ascxPage HeaderHeader.ascx

ASPState

tempdb

Lab Web Application

User Controlnamedate.ascxUser Controlnamedate.ascx

Menu ComponentClass1.vb

Menu ComponentClass1.vb

XML Files

Web.config

MedicalMedical.aspxMedicalMedical.aspx

BenefitsHome PageDefault.aspx

BenefitsHome PageDefault.aspx

Life InsuranceLife.aspxLife InsuranceLife.aspx

RetirementRetirement.aspxRetirementRetirement.aspx

DentalDental.aspxDentalDental.aspx

Dentists

DoctorsDoctors.aspx DoctorsDoctors.aspx

Doctors

Logon PageLogin.aspxLogon PageLogin.aspx

RegistrationRegister.aspxRegistrationRegister.aspx

ProspectusProspectus.aspxProspectusProspectus.aspx

XML Web ServicedentalService1.asmx

XML Web ServicedentalService1.asmx

Page HeaderHeader.ascxPage HeaderHeader.ascx

ASPState

tempdb

Lab Web Application

User Controlnamedate.ascxUser Controlnamedate.ascx

Menu ComponentClass1.vb or Class1.cs

Menu ComponentClass1.vb or Class1.cs

XML Files

Web.config