1. Trang chủ
  2. » Giáo án - Bài giảng

Slide bài giảng .NET ĐHSP Huế

73 547 11

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 73
Dung lượng 205,23 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Slide bài giảng ngôn ngữ lập trình .Net ASP.NET, hướng dẫn lập trình web cơ bản, giảng viên trường ĐHSP Huế, Gv. Nguyễn Lương Thục

Trang 1

Công nghệ NET

(Microsoft Net Technology)

(30 tiết)

Trang 2

Nội dung

Trang 3

Bài 1

Nhìn qua về công nghệ NET

Trang 4

Công nghệ NET là gì?

Microsoft NET là một họ đầy đủ sản phẩm được xây dựng theo tiêu chuẩn công nghiệp

và các chuẩn Internet Nó cung cấp cho từng vấn đề trong phát triển , quản lý , sử dụng các dịch vụ XML.

.NET là một tập hợp các công nghệ phần mềm của Microsoft cho phép kết nối thông tin , mọi người , các hệ thống, các thiết bị , …thông qua công nghệ Web

Trang 5

Công nghệ NET là gì? (tiếp)

Có 4 vấn đề trong công nghệ NET, gồm:

1 Khách thông minh (Smart Clients) – Điện thoại thông minh (Smart phones),

Thiết bị cầm tay (PDAs), Máy gia dụng thông minh (Smart Appliances)

2 Các dịch vụ web (Web Services – UDDI, SOAP)

3 Các Servers (NET Standard Server, NET Web Server, Windows Server…)

4 Các công cụ phát triển (Development Tools – Visual studio net, ASP net,

ADO net)

Trang 6

Công nghệ NET là gì? (tiếp)

• Microsoft NET kết nối các chuyên gia IT tạo ra một lượng lớn các kinh nghiệm cá nhân

về NET, sử dụng các tiêu chuẩn công nghiệp và công nghệ trong khuôn khổ NET Framework

Trang 8

.NET Framework là gì? (tiếp)

.Net framework bao gồm:

• Common Language Runtime (CLR)

• Visual Studio net

• Net Framework Classes (Class Libraries)

• ASP.net

• ADO.net

Hỗ trợ nhiều ngôn ngữ object-oriented, Markup, Scripting,…

Trang 9

.NET Framework là gì? (tiếp)

Thông số về Common Language

System.Web

Windows Application Services

DrawingControls

ASP.NET Application Services

Web FormsWeb Services

System.WinForms

Data and System Base Classes

Service ProcessSecurity

NetIO

ThreadingSQL

XMLADO.NET

Common Language Runtime

Trang 10

Common Language Runtime

• CLR cung cấp một môi trường run-time, trong đó quản lý việc thực hiện code và cung cấp các services.

• Cung cấp khả năng tương tác giữa ngôn ngữ lập trình và các xử lý ngoại lệ của ngôn ngữ.

• Cải thiện các chương trình trong việc việc trình diễn, khả năng mở rộng, và sử dụng những yếu tố sẵn có.

Trang 11

Visual Studio NET

Là một IDE (Integrated development environment) bao gồm một tập đầy đủ các công cụ phát triển

các các loại ứng dụng: desktop applications, ASP Web applications, XML web services, và mobile services.

• Các ngôn ngữ lập trình gồm C++, C#, VB.NET, F#

• Các phiên bản của Visual Studio NET phát triển tương ứng với các phiên bản của NET

Framework

Trang 12

• Net framework cung cấp một API cho tất cả các ngôn ngữ lập trình trong gói NET

• Tất cả các thư viện là Object -Oriented

• Thư viện được mở rộng như các API của java

• Tăng hiệu suất phát triển bằng cách giảm số lượng các API cần phải tìm hiểu

• Cho phép kế thừa các ngôn ngữ và gỡ rối

• Cho phép tạo ra các ứng dụng bảo mật

Các lớp trong Microsoft Net Framework

Trang 13

• Cung cấp các thư viện, dịch vụ cho phép tạo, phát triển và thực hiện các ứng dụng Web (Web Applications) và các dịch vụ Web (Web Services)

• Với việc hỗ trợ của Web Forms và các GUI, việc sử dụng ASP.net để thiết kế các ứng dụng web thuận lợi, dễ dàng hơn rất nhiều.

• ASP.NET thường sử dụng ADO.net để truy xuất cơ sở dữ liệu.

ASP.NET

Trang 14

• Là một tập các lớp cho phép làm việc với các cơ sở dữ liệu quan hệ trong khuôn khổ NET framework

• ADO.NET có các lớp cho phép kết nối và truy vấn với nhiều loại CSDL khác nhau như: Oracle, Sybase, Informix, DB2, Microsoft SQL Server, Ingres, PostgreSQL, MySQL, Yard- SQL, mSQL, và tất cả các loại ODBC tương thích khác

• ADO.NET hỗ trợ việc truy xuất dữ liệu từ HTTP

ADO NET

Trang 15

• Có Common Language Runtime ( CLR )

• Hỗ trợ từ Microsoft thông qua Net Framework

• Net cung cấp các thư viện chung cho tất cả các ngôn ngữ, do đó không cần phải học quá nhiều API.

• Khả năng hỗ trợ cho các thiết bị thông minh như điện thoại di động, PDA và các thiết bị di động khác.

• Được thiết kế và định nghĩa theo các chuẩn Web cho phép giải quyết các bài toán với giải pháp tốt nhất.

• Cho phép dễ dàng thực hiện thiết kế các dạng ứng dụng

window-form , web-window-form

• Tăng cường tính bảo mật với các dịch vụ web và các giao thức

• Với ADO.NET việc quản trị cớ sở dữ liệu rất dễ dàng

Tại sao nên dùng công nghệ net?

Trang 16

Bài 2

Ngôn ngữ lập trình VB.NET và C#

Trang 17

Giới thiệu

• VB.NET và C# là 2 trong các ngôn ngữ lập trình được tích hợp trong bộ Microsoft Visual Studio

• Về cú pháp, VB.NET theo cú pháp của Basic, C# theo cú pháp của C

• Cả hai đều cho phép dễ dàng phát triển các ứng dụng (cả WinForm và WebForm) sử dụng công nghệ NET

Trang 18

Overloads Shared Sub

      Main(ByVal args() As String)

Dim name As String = "VB.NET"

public static void       Main(string[] args) {

string name = "C#";

        

if (args.Length == 1)        

name = args[0];

            Console.WriteLine("Hello, " + name + "!");        

}      }  }

Trang 19

Cách viết chú thích

' Single line only

REM Single line only 

''' <summary>XML comments</summary>

// Single line/* Multiple line */

/// <summary>XML comments on single line</summary>/** <summary>XML comments on multiple lines</summary> */

Trang 20

decimalDateTime (not a built-in C# type)structs

enumerations

objectsstringarraysdelegates

Trang 21

Khởi tạo biến (Initializing)

Dim correct As Boolean = True

Dim b As Byte = &H2A 'hex or &O52 for octal

Dim person As Object = Nothing

Dim name As String = "Dwight"

Dim grade As Char = "B"c

Dim today As Date = #12/31/2010 12:15:00 PM#

Dim amount As Decimal = 35.99@

Dim gpa As Single = 2.9!

Dim pi As Double = 3.14159265

Dim lTotal As Long = 123456L

Dim sTotal As Short = 123S

Dim usTotal As UShort = 123US

Dim uiTotal As UInteger = 123UI

Dim ulTotal As ULong = 123UL

bool correct = true;

byte b = 0x2A; // hexobject person = null;

string name = "Dwight";

short sTotal = 123;

ushort usTotal = 123;

uint uiTotal = 123; // or 123Uulong ulTotal = 123; // or 123UL

Trang 22

Kiểu NULL (Nullable Types)

Dim x? As Integer = Nothing

Kiểu không định danh (Anonymous Types)

Dim stu = New With {.Name = "Sue", Gpa = 3.4}

Dim stu2 = New With {Key Name = "Bob", Gpa = 2.9}

Biến không xác định kiểu

Dim s = "Hello!"

Dim nums = New Integer() {1, 2, 3}

Dim hero = New SuperHero With {.Name = "Batman"}

Lấy thông tin về kiểu (Type Information)

Dim x As Integer

Console.WriteLine(x.GetType()) ' System.Int32

Console.WriteLine(GetType(Integer)) ' System.Int32

Console.WriteLine(TypeName(x)) ' Integer

Dim c as New Circle

isShape = TypeOf c Is Shape ' True if c is a Shape

isSame = o1 Is o2 // True if o1 and o2

reference same object

int? x = null;

var stu = new {Name = "Sue", Gpa = 3.5};

var stu2 = new {Name = "Bob", Gpa = 2.9};

var s = "Hello!";

var nums = new int[] { 1, 2, 3 };

var hero = new SuperHero() { Name = "Batman" };

int x;

Console.WriteLine(x.GetType()); // System.Int32Console.WriteLine(typeof(int)); // System.Int32Console.WriteLine(x.GetType().Name); // Int32

Circle c = new Circle();

isShape = c is Shape;

isSame = Object.ReferenceEquals(o1, o2)

Trang 23

Chuyển đổi kiểu (Type Conversion / Casting)

Dim d As Single = 3.5

Dim i As Integer = CType(d, Integer) ‘set to 4

i = CInt(d) ' same result as CType

i = Int(d) ' set to 3 (Int function truncates the decimal)

Dim s As New Shape

Dim c As Circle = TryCast(s, Circle) ' Returns Nothing

if type cast fails

c = DirectCast(s, Circle) ' Throws InvalidCastException

if type cast fails

float d = 3.5f;

i = Convert.ToInt32(d); // Set to 4 (rounds) int i = (int)d; // set to 3 (truncates decimal)

Shape s = new Shape();

Circle c = s as Circle; // Returns null

if type cast fails

c = (Circle) s; // Throws InvalidCastException

if type cast fails

Trang 24

Const MAX_STUDENTS As Integer = 25

ReadOnly MIN_DIAMETER As Single = 4.93

const int MAX_STUDENTS = 25;

readonly float MIN_DIAMETER = 4.93f;

Trang 25

Kiểu liệt kê (Enumerations)

enum Action {Start, Stop, Rewind, Forward};

enum Status {Flunk = 50, Pass = 70, Excel = 90};

Action a = Action.Stop;

if (a != Action.Start) Console.WriteLine(a + " is " + (int) a); // "Stop is 1"

Console.WriteLine((int) Status.Pass); // 70Console.WriteLine(Status.Pass); // Pass

Trang 26

Toán tử bit (Bitwise)

And Or Xor Not << >>

Toán tử logic (Logical)

AndAlso OrElse And Or Xor Not

Note: AndAlso and OrElse perform short-circuit logical evaluations

Nối chuổi (String Concatenation)

&

== < > <= >= !=

+ - * /

% (mod)/ (integer division if both operands are ints)Math.Pow(x, y)

Trang 27

Toán tử điều kiện

Gán nếu đối số là khác null:

x = If(y, 5) ' if y is not Nothing then x = y, else x = 5

Gán 1 trong 2 đối số:

greeting = If(age < 20, "What's up?", "Hello")

Lệnh If:

If age < 20 Then greeting = "What's up?“

If age < 20 Then greeting = "What's up?" Else greeting = "Hello"

x = y ?? 5; // if y != null then x = y, else x = 5

greeting = age < 20 ? "What's up?" : "Hello";

if (age < 20) greeting = "What's up?"; else greeting = "Hello";

if (x != 100 && y < 5) {

x *= 5;

y *= 2;

}

Trang 28

Select Case color

Case "pink", "red"

Trang 30

Vòng lặp kiểm tra sau:

Vòng lặp duyệt các phần tử của Array hoặc collection

Dim names As String() = {"Fred", "Sue", "Barney"}

For Each s As String In   names

string[] names = {"Fred", "Sue", "Barney"};

foreach (string s in names)

Console.WriteLine(s);

 

Trang 32

Mảng (Array)

Mảng với khởi tạo giá trị phần tử:

Dim nums() As Integer = {1, 2, 3} 

For i As Integer = 0 To nums.Length - 1

names(5) = "Bobby"  ' Sai

Điều chỉnh lại kích thước mảng:

ReDim Preserve names(6)

Mảng nhiều chiều:

Dim twoD(rows-1, cols-1) As Single

twoD(2, 0) = 4.5

Dim jagged()() As Integer = { _

New Integer(4) {}, New Integer(1) {}, New Integer(2) {} }

Trang 33

Hàm (Functions)

Tham trị (pass by value) và tham biến (reference):

Sub TestFunc(ByVal x As Integer, ByRef y As Intege,

Truy xuất số đối số biến đổi:

Function Sum(ByVal ParamArray nums As Integer()) As Integer

Dim total As Integer = Sum(4, 3, 2, 1) ' returns 10

void TestFunc(int x, ref int y, out int z) {

Trang 34

Tham số có giá trị mặc định:

Sub SayHello(ByVal name As String,

Optional ByVal prefix As String = "")

Console.WriteLine("Greetings, " & prefix & " " & name)

Trang 35

Phép nối chuổi (sử dụng & hoặc +)

Dim school As String = "Harding" & vbTab

school = school & "University"

 

school &= "University"

\r // carriage-return \n // line-feed \t // tab \\ // backslash \" // quote

Chỉ sử dung (+)

string school = "Harding\t";

school = school + "University"; 

school += "University";

Trang 36

Ký tư:

Dim letter As Char = school.Chars(0) ' letter is H

letter = "Z"c ' letter is Z

letter = Convert.ToChar(65) ' letter is A

letter = Chr(65) ' same thing

Dim word() As Char = school.ToCharArray()

Không cần ký tự quy ước:

Dim filename As String = "c:\temp\x.dat"

So sánh chuổi:

Dim mascot As String = "Bisons"

If (mascot = "Bisons") Then ' true

If (mascot.Equals("Bisons")) Then ' true

If (mascot.ToUpper().Equals("BISONS")) Then ' true

If (mascot.CompareTo("Bisons") = 0) Then ' true

Đối sánh mẫu (matching) với Like – (Regex đầy đủ hơn)

If ("John 3:16" Like "Jo[Hh]? #:*") Then 'true

char letter = school[0]; // letter is H letter = 'Z'; // letter is Z letter = Convert.ToChar(65); // letter is A letter = (char)65; // same thing char[] word = school.ToCharArray();

string filename = @"c:\temp\x.dat";

Hoặc viết:

string filename = "c:\\temp\\x.dat";

string mascot = "Bisons";

if (mascot == "Bisons") // true

Trang 37

Dim names As String = "Michael,Dwight,Jim,Pam"

Dim parts() As String = names.Split(",".ToCharArray())

Chuyển Date thành String:

Dim dt As New DateTime(1973, 10, 12)

Dim s As String = dt.ToString("MMM dd, yyyy") ' Oct 12, 1973

Chuyển Integer thành String:

Dim x As Integer = 2

Dim y As String = x.ToString() ' y is "2"

Chuyển String thành Integer:

Dim x As Integer = Convert.ToInt32("-5") ' x is -5

Thực hiện với chuổi:

Dim buffer As New System.Text.StringBuilder("two ")

buffer.Insert(0, "one ");

buffer.Replace("two", "TWO");

Console.WriteLine(buffer);

Trang 38

Biểu thức Regex (Regular Expressions)

Dim s As String = "My number is 305-1881, not 305-1818."

Dim r As New Regex("(\d+-\d+)")

Dim m As Match = r.Match(s) ' Matches 305-1881 and 305-1818

string s = "My number is 305-1881, not 305-1818.";

Regex r = new Regex("(\\d+-\\d+)");

for (Match m = r.Match(s); m.Success; m = m.NextMatch()) Console.WriteLine("Found number: " + m.Groups[1] + " at position " + m.Groups[1].Index);

Trang 39

Lấy các nhiều thành phần so khớp:

Dim r As New Regex("(\d\d):(\d\d) (am|pm)")

Dim m As Match = r.Match("We left at 03:15 pm.")

If m.Success Then

Console.WriteLine("Hour: " & m.Groups(1).ToString) '03

Console.WriteLine("Min: " & m.Groups(2).ToString) '15

Console.WriteLine("Ending:" & m.Groups(3).ToString) 'pm

End If

Thay thế:

Dim r As New Regex("h\w+?d", RegexOptions.IgnoreCase)

Dim s As String = r.Replace("I heard this was HARD!", "easy") ' I easy this was easy!

Thay thế các mẫu được so khớp:

Dim s As String = Regex.Replace("123 < 456", "(\d+) (\d+)", "$2 > $1") ' 456 > 123

Cắt chuổi trên cơ sở mẫu:

Dim names As String = "Michael, Dwight, Jim, Pam"

Dim r As New Regex(",\s*")

Dim parts() As String = r.Split(names) ' One name in each slot

Regex r = new Regex("@(\d\d):(\d\d) (am|pm)");

Match m = r.Match("We left at 03:15 pm.");

if (m.Success) { Console.WriteLine("Hour: " + m.Groups[1]);

string names = "Michael, Dwight, Jim, Pam";

Regex r = new Regex(@",\s*");

string[] parts = r.Split(names);

Trang 40

Xử lý ngoại lệ (Exception Handling)

Catch ex As Exception When y = 0

' Đối số và When là tùy chọn

catch (Exception ex) {

// Đối số là tùy chọn,, không có "When"

Trang 41

Không gian tên (Namespaces)

Có thể định nghĩa không gian tên:

} } }

using Harding.Compsci.Graphics;

Trang 42

Lớp và các giao tiếp (Classes & Interfaces)

Các dạng truy xuất khác nhau:

abstract sealed static

abstract sealed static virtual

Không có, nếu cần, sử dụng kiểu static class

Trang 43

Các lớp bộ phận:

Partial Class Team

Protected name As String

Public Overridable Sub DisplayName()

protected string name;

public virtual void DislpayName() {

}

Trang 44

Định nghĩa một giao tiếp:

Implements IAlarmClock, ITimer

Public Sub Ring() Implements IAlarmClock.Ring

class WristWatch : IAlarmClock, ITimer {

public void Ring() { Console.WriteLine("Wake up!");

}

public DateTime TriggerDateTime { get; set; }

}

Ngày đăng: 22/07/2017, 14:34

TỪ KHÓA LIÊN QUAN