Trang chủ

lập trình winform c# bài 1.

lập trình winform c# bài 1

lập trình winform c# bài 1

 

Tổng Quan

 

Trước hết bạn phải nắm được khái niệm lập trình visual. Vậy lập trình visual là gì?

Lập trình visual một công cụ hỗ trợ lập trình mà trong đó, người lập trình viên không phải đánh vào toàn bộ các code mà thay vào đó, họ sử dụng 1 công cụ hỗ trợ lập trình visual để tự động tạo ra 1 số các đoạn code bằng việc kéo các đối tượng được tạo sẵn và thả vào ứng dụng trên môi trường của một công cụ hỗ trợ lập trình.

 

Chương 1

Microsoft .NET Framework

.NET gồm có hai phần: FrameworkIntegrated Development Environment (IDE). Framework cung cấp tất cả những gì cần thiết căn bản. Chữ Framework có nghĩa là cái Khung hay khung cảnh trong đó ta dùng những hạ tầng cơ sở theo một qui ước nhất định để công việc trôi chảy. Còn IDE cung cấp một môi trường giúp ta triển khai dễ dàng, nhanh chóng hơn. Nếu không có IDE ta cũng có thể dùng Notepad và line commands để triển khai nhưng nó chậm hơn. Do đó, nếu có chỗ nào IDE genareted code có vẽ quá rắc rối, bạn nên trở về Framework để xem mình thật sự tối thiểu cần những thứ gì. Vì nói cho cùng, Framework là quan trọng nhất, còn IDE bất quá chỉ là một công cụ gắn lên phía trên Framework thôi. Trong .NET, C#VB.NET đều dùng cùng một IDE.

Những thuận lợi .Net:

Thứ nhất, ta thấy Framework của .NET gói Operating System (OS) lại, khiến lập trình viên không phải quan tâm đến những việc liên hệ đến OS như file handling và memory allocation. Nó cho ta mọi tầng lớp triển khai phần mềm từ việc trình bày (presentation) cho đến các bộ phận (components) và dữ kiện (data).

Thứ hai, .NET đã được thiết kế từ con số không để giúp ta có thể lập trình cho Internet dễ dàng như cho desktop.

Dưới đây là các bộ phận chính của .Net Framework:

lap-trinh-winform-c#-bai-1-1

 

 

Tầng dưới cùng

Trong hình trên, ở tầng dưới chót là Common Language Runtime (CLR) . Ðây là trung tâm điểm của .NET Famework, nó là hầm máy để chạy các năng tính của .NET. Nó gồm có một hệ thống chung cho data types (các loại dữ kiện) để giúp việc thừa kế từ các ngôn ngữ lập trình khác nhau có thể thực hiện đuợc.

 

Việc thiết kế Common Language Runtime nhắm vào các mục tiêu chính sau đây:

  • Việc triển khai đơn giản và nhanh hơn: developers sẽ dành thì giờ quyết định ráp những software components nào lại với nhau nhiều hơn là lập trình thật sự.
  • Các công tác thiết yếu (“plumbing”) như memory management, process communication .v.v. được lo liệu tự động.
  • Các công cụ hổ trợ rất đầy đủ (no more API): .NET Framework Base classes rất phong phú cho file, network, serialisation, mã hóa, XML, database, v.v..
  • Cài đặt đơn giản và an toàn (no more DLL “hell”): chỉ cần xcopy files, giống như thời vàng son của DOS. Lý do là .NET application chạy trên .NET framework, một khi ta đã cài .NET framework vào máy rồi thì có đầy đủ mọi .DLL cần thiết. Có lẽ trong tương lai Microsoft cài .NET framework chung với Windows.
  • Dùng cho từ WindowsCE đến Desktop, đến Web (scalability).

 

CLR được trình bày chi tiết hơn như dưới đây:

lap-trinh-winform-c#-bai-1-2

 

Khi chạy .NET application, nó sẽ được compiled bằng một JIT (Just-In-Time) compiler rất hiệu năng ra machine code để chạy. Điểm nầy giúp .NET application chạy nhanh hơn Java interpreted code trong Java Virtual Machine. Just-In-Time cũng có nghĩa là chỉ phần code nào cần xử lý trong lúc ấy mới được compiled. IL code chạy trong CLR đuợc nói là managed code.

.NET code có thể chạy chung với ActiveX, nhưng code trong ActiveX được gọi là unmanaged code, tức là CLR không chịu trách nhiệm.

Ngoài việc allocation và management of memory, CLR còn giữ các refrerence đến objects và đỗ rác (handle garbage collection), tức là thâu lại các mảnh vụn memory khi chúng không cần dùng nữa. Trước đây, mỗi khi một DLL đuợc loaded vào memory, system sẽ ghi nhận có bao nhiêu task dùng nó để khi task cuối cùng chấm dứt thì system unload DLL và trả lại phần memory nó dùng trước đây để system dùng cho chuyện khác. Chớ nếu allocate memory để dùng mà không nhớ dispose nó thì sẽ bị memory leak (rỉ ), lần lần ta dùng hết memory, bị bắt buộc phải reboot OS. Nhưng bây giờ .NET dùng một process độc lập để làm việc garbage collection. Cái phản ứng phụ của việc nầy là khi ta đã Dispose một Object rồi, ta vẫn không biết chắc chắn chừng nào nó mới thật sự biến mất. Vì garbage collector là một low priority process làm việc trong background, chỉ khi nào system memory gần cạn nó mới nâng cao priority lên. Dĩ nhiên, nếu muốn, ta có thể đòi hỏi system Dispose một Object ngay lập tức.


Tầng giữa

Common Language Runtime (CLR) là trung tâm điểm của .NET Famework, nó là hầm máy để chạy các năng tính của .NET. Trong .NET, mọi ngôn ngữ lập trình đều được compiled ra Microsoft Intermediate Language (IL) giống giống như byte code của Java. Nhờ bắt buộc mọi ngôn ngữ đều phải dùng cùng các loại data types (gọi là Common Type System) nên Common Language Runtime có thể kiểm soát mọi interface, gọi giữa các components và cho phép các ngôn ngữ có thể hợp tác nhau một cách thông suốt. Tức là trong .NET, VB.NET program có thể inherit C# program và ngược lại một cách hoàn toàn tự nhiên. Điều nầy chẳng những giúp các VC++ hay Java programmers bắt đầu dùng C# một cách dễ dàng mà còn làm cùng một dự án với VB.NET programmers nữa.

 

ADO.NET là một loại cache database nho nhỏ (gọi là disconnected database) để thay thế ADO. Thay vì application connects vĩnh viễn với database mẹ qua ADO, application trong .NET làm việc với portable database chỉ chứa một hai tables, là copy từ database mẹ. Khi nào cần, portable database nầy (ADO.NET) sẽ được reconciled với database mẹ để update các thay đổi. Hai tables trong ADO.NET có thể được related nhau trong Master/Details relationship. Vì ADO.NET có chứa original data lẫn data mới nhất nên Rollback trong ADO.NET rất dễ dàng và nhẹ ký.

XML được yểm trợ tối đa. Nằm phía sau ADO.NET là XML. XML có thể là Table of records trong ADO.NET hay Tree of nodes trong DOM (Document Object Model).

IO được hổ trợ bằng toàn bộ Stream kể cả Memory StreamStreamReader/StreamWriter. Thêm vào là DataFormatting cho Serialisation để chứa Object xuống binary file hay text file.

TCP/IPhttp là hai protocols thông dụng nhất trong .NET, nhưng chúng làm việc phía sau sân khấu giúp ta gọi một remote procedure (nằm trên computer khác) dễ dàng như một local procedure. Kỹ thuật ấy gọi là Remoting.

Security hổ trợ Cryptography, PermissionsPolicy.

Diagnostics cho ta DebugTrace.

Threading rất tiện và đơn giản để implement Lightweight Process. Vấn đề Timing trong .NET program rất linh động, hiệu quả và chính xác.

Tầng trên cùng

.NET application được chia ra làm hai loại: cho Internet gọi là ASP.NET, gồm có Web FormsWeb Services và cho desktop gọi là Windows Forms.

  • Windows Forms giống như Forms của VB6. Nó hổ trợ Unicode hoàn toàn, rất tiện cho chữ Việt và thật sự Object Oriented.
  • Web Forms có những Server Controls làm việc giống như các Controls trong Windows Forms, nhất là có thể dùng codes để xử lý Events y hệt như của Windows Forms.
    Điểm khác biệt chánh giữa ASP (Active Server Pages) và ASP.NET là trong ASP.NET, phần đại diện visual components và code nằm riêng nhau, không lộn xộn như trong ASP. Ngoài ra ASP.NET code hoàn toàn Object Oriented.
  • Web Services giống như những Functions mà ta có thể gọi dùng từ các URL trên Internet, thí dụ như Credit Card authorisation.

 

 

 

 

XEM THÊM CÁC VÍ DỤ.

 

1. Bài toán giai thừa

 

lap-trinh-winform-can-ban-4

 

private void button1_Click(object sender, EventArgs e)
{
int n = int.Parse(textBox1.Text);

int gt = 1;

for (int i = 1; i <= n; i++)
{
gt = gt * i;
}
textBox2.Text = gt.ToString();
}

2. Giải phương trình bậc 1.

 

lap-trinh-winform-can-ban-2

 

private void button1_Click(object sender, EventArgs e)
{
double a = double.Parse(textBox1.Text);
double b = double.Parse(textBox2.Text);

if (a == 0)
{
if (b == 0)
{
textBox3.Text = “VSN”;
}
else
{
textBox3.Text = “VN”;
}
}
else
{
double x = -b / a;
textBox3.Text = x.ToString();
}
}

 

3. Bài toán chiết khấu

 

lap-trinh-winform-can-ban-3

 

 

double pttk = 0;
private void button1_Click(object sender, EventArgs e)
{
double sotien, sotienchietkhau, tienphaitra;

sotien = double.Parse(textBox1.Text);

sotienchietkhau = sotien * pttk;

tienphaitra = sotien – sotienchietkhau;

// hiện thị

textBox3.Text = sotienchietkhau.ToString();
textBox4.Text = tienphaitra.ToString();
}

private void button2_Click(object sender, EventArgs e)
{
Application.Exit();
//this.Close();
}

private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
if (comboBox1.Text == “A”)
pttk = 0.1;
else if (comboBox1.Text == “B”)
pttk = 0.08;
else if (comboBox1.Text == “C”)
pttk = 0.05;

textBox2.Text = pttk.ToString();
}

 

4. Bài toán lãi suất gộp – lãi mẹ đẻ lãi con.

 

lap-trinh-winform-can-ban-1

 

private void button1_Click(object sender, EventArgs e)
{
double sotiengui, laisuat;
int nam;
sotiengui = double.Parse(textBox1.Text);
laisuat = double.Parse(textBox2.Text) / 100;

nam = int.Parse(numericUpDown1.Value.ToString());

listBox1.Items.Add(“năm số tiền trong tài khoản “);
for (int i = 1; i <= nam; i++)
{

listBox1.Items.Add(i + “. $” + sotiengui * Math.Pow((1 + laisuat), i));
}
}
}

 

 

Xem thêm:

Gửi bình luận

Xem thêm

Giảm cân

Mua bán inox, inox 304, inox 201
Xem thêm

Kiến thức y học

Xem thêm

Thông tin giáo dục

Link hữu ích
shop bán váy đầm công chúa đẹp tại TP.HCM
shop bán Thời trang trẻ em cao cấp giao hàng toàn cầu
mua mùn cưa
váy đầm trẻ em | váy đầm công chúa | Sở giáo dục Lâm Đồng 
 |  Thu mua phe lieu
shop bán đầm bé gái đẹp tại TP.HCM

Tuyển chuyên viên thiết kế và may đầm công chúa giỏi :