Transcript

Module 3:Using Microsoft .NET-

Based Languages

Overview

Overview of the .NET-Based Languages

Comparison of the .NET-Based Languages

Creating a Component Using Visual Studio .NET

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

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

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

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

Runtime Compilation and Execution

Nativecode

C# code Visual Basic .NET code

Which language?

Visual Basic .NETcompiler

C#compiler

MSILJITcompiler

default.aspx

Runtime

HTML

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;

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");

Lesson: Comparison of the .NET-Based Languages

Visual Basic .NET

C#

Choosing a Language

Practice: Language Translation

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

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 + ","; }}

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

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

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

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

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; }}

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

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

Review

Overview of the .NET-Based Languages

Comparison of the .NET-Based Languages

Creating a Component Using Visual Studio .NET

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

top related