Công nghệ .NET
(Microsoft .Net Technology)
(30 tiết)
Nội dung
•
•
•
•
•
•
•
Bài 1: Nhìn qua về công nghệ .NET
Bài 2: Ngôn ngữ lập trình C# và VB.NET
Bài 3: Lập trình WinForms với .NET
Bài 4: Lập trình WebForms với ASP.NET
Bài 5: Lập trình Database với ADO.NET
Bài 6: Dịch vụ web (Webservices)
Bài tập
Bài 1
Nhìn qua về công nghệ .NET
Công nghệ .NET là gì?
•
Theo Microsoft:
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.
•
Định nghĩa hình thức:
.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 .
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)
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
.NET Framework là gì?
•
.Net Framework là một phần không thể thiếu của Windows. Nó hỗ trợ việc build và run
các ứng dụng, các dịch vụ web XML được phát triển trong môi trường .NET
•
.Net Framework làm việc kiểu như J2EE của java.
.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,…
.NET Framework là gì? (tiếp)
Thông số về Common Language
System.Web
Web Services
System.WinForms
Web Forms
Controls
ASP.NET Application Services
Drawing
Windows Application Services
Data and System Base Classes
ADO.NET
XML
SQL
Threading
IO
Net
Security
Service Process
Common Language Runtime
Security Engine
Thread Support
Exception Handler
IL to Native Compiler
Type System
Garbage Collector
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ó.
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
Các lớp trong Microsoft .Net Framework
•
•
•
•
•
•
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
ASP.NET
•
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.
ADO .NET
•
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, YardSQL, 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
Tại sao nên dùng công nghệ .net?
•
•
•
Có Common Language Runtime ( CLR )
•
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.
•
•
•
•
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.
Đượ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 windowform , web-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
Bài 2
Ngôn ngữ lập trình VB.NET và C#
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
Cơ bản về VB.NET và C#
Cấu trúc chương trình
Imports System
Namespace Hello
Class HelloWorld
Overloads Shared Sub Main(ByVal args() As String)
Dim name As String = "VB.NET"
If args.Length = 1 Then name = args(0)
Console.WriteLine("Hello, " & name & "!")
End Sub
End Class
End Namespace
using System;
namespace Hello {
public class HelloWorld {
public static void Main(string[] args) {
string name = "C#";
if (args.Length == 1)
name = args[0];
Console.WriteLine("Hello, " + name + "!");
}
}
}
Cách viết chú thích
' Single line only
// Single line
/* Multiple
REM Single line only
line */
/// <summary>XML comments on single line</summary>
''' <summary>XML comments</summary>
/** <summary>XML comments on multiple lines</summary> */
Các kiểu dữ liệu
Các kiểu giá trị (Value Types)
Boolean
bool
Byte, SByte
byte, sbyte
Char
char
Short, UShort, Integer, UInteger, Long, ULong
short, ushort, int, uint, long, ulong
Single, Double
float, double
Decimal
decimal
Date (alias of System.DateTime)
DateTime (not a built-in C# type)
structures
structs
enumerations
enumerations
Casckieeru tham chiếu (Reference Types)
objects
objects
String
string
arrays
arrays
delegates
delegates
Khởi tạo biến (Initializing)
Dim correct As Boolean = True
bool correct = true;
Dim b As Byte = &H2A 'hex or &O52 for octal
byte b = 0x2A; // hex
Dim person As Object = Nothing
object person = null;
Dim name As String = "Dwight"
string name = "Dwight";
Dim grade As Char = "B"c
char grade = 'B';
Dim today As Date = #12/31/2010 12:15:00 PM#
DateTime today = DateTime.Parse("12/31/2010 12:15:00 PM");
Dim amount As Decimal = 35.99@
decimal amount = 35.99m;
Dim gpa As Single = 2.9!
float gpa = 2.9f;
Dim pi As Double = 3.14159265
double pi = 3.14159265; // or 3.14159265D
Dim lTotal As Long = 123456L
long lTotal = 123456L;
Dim sTotal As Short = 123S
short sTotal = 123;
Dim usTotal As UShort = 123US
ushort usTotal = 123;
Dim uiTotal As UInteger = 123UI
uint uiTotal = 123; // or 123U
Dim ulTotal As ULong = 123UL
ulong ulTotal = 123; // or 123UL
Kiểu NULL (Nullable Types)
Dim x? As Integer = Nothing
int? x = null;
Kiểu không định danh (Anonymous Types)
Dim stu = New With {.Name = "Sue", .Gpa = 3.4}
var stu = new {Name = "Sue", Gpa = 3.5};
Dim stu2 = New With {Key .Name = "Bob", .Gpa = 2.9}
var stu2 = new {Name = "Bob", Gpa = 2.9};
Biến không xác định kiểu
Dim s = "Hello!"
var s = "Hello!";
Dim nums = New Integer() {1, 2, 3}
var nums = new int[] { 1, 2, 3 };
Dim hero = New SuperHero With {.Name = "Batman"}
var hero = new SuperHero() { Name = "Batman" };
Lấy thông tin về kiểu (Type Information)
Dim x As Integer
int x;
Console.WriteLine(x.GetType())
' System.Int32
Console.WriteLine(x.GetType());
// System.Int32
Console.WriteLine(GetType(Integer)) ' System.Int32
Console.WriteLine(typeof(int));
// System.Int32
Console.WriteLine(TypeName(x))
Console.WriteLine(x.GetType().Name); // Int32
' Integer
Dim c as New Circle
Circle c = new Circle();
isShape = TypeOf c Is Shape ' True if c is a Shape
isShape = c is Shape;
isSame = o1 Is o2 // True if o1 and o2
isSame = Object.ReferenceEquals(o1, o2)
reference same object
Chuyển đổi kiểu (Type Conversion / Casting)
Dim d As Single = 3.5
float d = 3.5f;
Dim i As Integer = CType(d, Integer) ‘set to 4
i = Convert.ToInt32(d);
i = CInt(d) ' same result as CType
int i = (int)d;
// Set to 4 (rounds)
// set to 3 (truncates decimal)
i = Int(d) ' set to 3 (Int function truncates the decimal)
Dim s As New Shape
Shape s = new Shape();
Dim c As Circle = TryCast(s, Circle) ' Returns Nothing
Circle c = s as Circle; // Returns null
if type cast fails
if type cast fails
c = DirectCast(s, Circle) ' Throws InvalidCastException
if type cast fails
c = (Circle) s;
// Throws InvalidCastException
if type cast fails
Hằng
Const MAX_STUDENTS As Integer = 25
const int MAX_STUDENTS = 25;
ReadOnly MIN_DIAMETER As Single = 4.93
readonly float MIN_DIAMETER = 4.93f;
Kiểu liệt kê (Enumerations)
enum Action {Start, Stop, Rewind, Forward};
Enum Action
Start
[Stop] ' Stop is a reserved word
Rewind
Forward
End Enum
enum Status {Flunk = 50, Pass = 70, Excel = 90};
Enum Status
Flunk = 50
Pass = 70
Excel = 90
End Enum
Dim a As Action = Action.Stop
Action a = Action.Stop;
If a <> Action.Start Then _
if (a != Action.Start)
Console.WriteLine(a.ToString & " is " & a)
Console.WriteLine(Status.Pass)
' "Stop is 1"
Console.WriteLine((int) Status.Pass); // 70
' 70
Console.WriteLine(Status.Pass.ToString())
Console.WriteLine(a + " is " + (int) a); // "Stop is 1"
' Pass
Console.WriteLine(Status.Pass);
// Pass