1. Giới thiệu .Net Framework
.NET Framework là một cơ sở hạ tầng cho phép xây dựng, triển khai và chạy ứng dụng khác nhau và các dịch vụ sử dụng công nghệ .NET. Lập trình viên có thể sử dụng .NET Framework để giảm thiểu tối đa thời gian phát triển và triển khai phần mềm.
.Net Framework cung cấp tính năng giảm thiểu xung đột khi người sử dụng triển khi các hệ thống trên nhiều phiên bản khác nhau của bộ .Net Framework trên cùng một máy tính.
Lịch sử phát triển bộ .Net Framework
Microsoft phát triển bộ .Net Framework với Verson 1.0 bắt đầu từ năm 2002, các phiên bản sau đó lần lượt ra đời, các phiên bản sau đó sẽ được cập nhật các tính năng mới và được gắn liền với bộ công cụ phát triển Visual Studio phiên bản mới. Dưới đây mô tả các tính năng cơ bản của các bộ .Net Framework.
.Net Framework 1.0 : Phiên bản đầu tiên được phát hành cùng bộ Visual Studio 2002, bộ .Net framework này bao gồm có CLR, class library và hỗ trợ các nền tảng phát triển như Windows Application, và các ứng dụng web thông qua nền tảng công nghệ Asp.net. Bộ .Net Framework chạy trên các nền tảng hệ điều hành Windows 98, NT 4.0, 2000 và XP, Việc hỗ trợ chính thức từ Microsoft cho phiên bản này kết thúc vào 10/7/2007, tuy nhiên thời gian hỗ trợ mở rộng được kéo dài đến 14/7/2009.
.Net Framework 1.1 : Phiên bản nâng cấp đầu tiên được phát hành 2003 cùng với bộ Visual Studio 2003, nó kết hợp với Windows Server 2003, bao gồm các tính năng như sau :
- Hỗ trợ các component nhằm để phát triển các ứng dụng Mobile (Mobile Asp.Net).
- Tích hợp ODBC và cơ sở dữ liệu Oracle
- Hỗ trợ giao thức IP 6và cơ chế kiểm soát truy cập theo mã (CAS – Code Access Security)
- Một số các thay đổi trong Assembly
- Bổ sung .NET Compact Framework
.Net Framework 2.0 : Được cập nhật cùng với bộ Visual Studio 2005 và Sql Server 2005 phiên bản này bao gồm các đặc điểm mới như sau :
- Hỗ trợ đầy đủ nền tảng 64 bit
- Hỗ trợ cấu trúc dữ liệu Generic
- Hỗ trợ một số các control mới nhằm phục vụ thiết kế và phát triển ứng dụng Web
- Cung cấp .Net Micro Framework cho phép các lập trình với các thiết bị đồ họa.
.Net Framework 3.0 : Được nâng cấp từ phiên bản 2.0 được cài đặt nâng cấp cùng bộ Visual Studio 2005. Phiên bản này bổ sung một số các nền tảng công nghệ mới như :
- Windows Presentation Foundation (WPF): Đây là một công nghệ mới, và là một nỗ lực của Microsoft nhằm thay đổi phương pháp hay cách tiếp cận việc lập trình một ứng dụng sử dụng giao diện đồ họa trên Windows với sự hỗ trợ của ngôn ngữ XAML.
- Windows Communication Foundation (WCF): Một nền tảng mới cho phép xây dựng các ứng dụng hướng dịch vụ (service-oriented).
- Windows Workflow Foundation (WF): Một kiến trúc hỗ trợ xây dựng các ứng dụng workflow (luồng công việc) một cách dễ dàng hơn. WF cho phép định nghĩa, thực thi và quản lý các workflow từ cả cách nhìn theo hướng kĩ thuật và hướng thương mại.
- Windows CardSpace: Một kiến trúc để quản lý định danh (identity management) cho các ứng dụng được phân phối.
.Net Framework 3.5: Phiên bản được cập nhật cùng với bộ Visual Studio 2008, các thay đổi đáng kể trong phiên bản này bao gồm :
- Các tính năng mới cho ngôn ngữ lập trình C# 3.0 và Visual Basic .Net 9.0
- Hỗ trợ Expression Tree và Lambda
- Các phương thức mở rộng (Extension methods)
- Các kiểu ẩn danh (Anonymous types)
- LINQ
- Phân trang (paging) cho ADO.NET
- API cho nhập xuất mạng không đồng bộ (asynchronous network I/O)
- Peer Name Resolution Protocol resolver
- Cải thiện WCF và WF
- Tích hợp ASP.NET AJAX
- Namespace mới System.CodeDom
- Microsoft ADO.NET Entity Framework 1.0
.Net Framework 4.0: Phiên bản chính thức được công bố và phát hành cùng với bộ Visual Studio 2010. Các tính năng mới được Microsoft bổ sung bao gồm :
- Dynamic Language Runtime
- Code Contracts
- Managed Extensibility Framework
- Hỗ trợ các tập tin ánh xạ bộ nhớ (memory-mapped files)
- Mô hình lập trình mới cho các ứng dụng đa luồng (multithreaded) và bất đồng bộ (asynchronous)
- Cải thiện hiệu năng, các mô hình workflow.
.Net Framework 4.5: Được chính thức ra mắt tháng 12/2012 cùng với bộ Visual Studio 2012 với các tính năng mới như sau :
- Hỗ trợ C# 5.0, Visual Basic 11, F# 3.0 và Visual C++ 11.
- Phát triển các ứng dụng trên nền tảng Windows 8.0 như Windows Phone, Windows Store
- Phát triển các ứng dụng Web trên nền tảng công nghệ Asp.Net MVC
- Cải tiến lập trình bất đồng bộ (asynchronous) thông qua từ khóa async
and await.
- Hỗ trợ phát triển ứng dụng trên nền tảng điện toán đám mây Windows Azure
.Net Framework 4.5.1: Được phát hành cùng với bộ Visual Studio 2013, cùng với các tính năng tân tiến nhằm tăng hiệu suất phát triển và hiệu suất ứng dụng, nó bổ sung các gói phát triển thông qua NuGet. Các tính năng mới như sau :
- Tăng hiệu quả của màn hình soạn thảo code
- Xây dựng ứng dụng trên nền tảng Windows Store 8.1 và Windows phone 8.1
- Xây dựng các ứng dụng trên Share Point 2013 và tích hợp Office 365
Nâng cao hiệu suất Debug và tối ưu hóa ứng dụng
- Hỗ trợ ngôn ngữ Typescript
.Net Framwork 4.5.2 : Được phát hành cùng với bộ Visual Studio 2015, cùng với các tính năng mới như sau :
- Hỗ trợ phát triển ứng dụng Asp.Net 5
- Phát triển ứng dụng Windows 10
- ADO.Net hỗ trợ tiêu chuẩn mã hóa thông tin kết hợp với bộ Sql Server 2016
- Cải tiến tiến trình nạp Assembly
- Thư viện Base class thay đổi
- Bổ sung một số tính năng mới cho WPF, WCF và WF
2. Các thành phần cơ bản .Net Framework
Bộ .Net Framework được tạo từ rất nhiều các thành phần khác nhau. Các thành phần cơ bản được mô tả bởi hình vẽ sau :
Hình số 1 : Các thành phần cơ bản .Net Framework
CLR (Common Language Runtime): Là bộ xương sống của .Net Framework nó thực thi các chức năng như sau :
- Quản lý bộ nhớ
- Quản lý thực thi code
- Giám sát lỗi
- Kiểm định an toàn code
- Thu gom rác
Net Framework Class Libarary (FCL) : Đóng gói các lớp hướng đối tượng, cho phép người sử dụng tái sử dụng trong quá trình phát triển ứng dụng. Nó cung cấp một hệ thống thư viện rất lớn về các class.
Common Language Specification (CLS : Chứa các đặc tả ngôn ngữ nhằm đảm bảo tính hợp tác giữa các ngôn ngữ khác nhau trong bộ Visual Studio .Net; CLS đề ra một số chuẩn
mực mà tất cả các trình biên dịch nhắm vào bộ .Net Framework phải chấp nhận hộ trợ.
Common Type System : Đặc tả các kiểu dữ liệu thông dụng (class, structure,interface…), các kiểu dữ liệu này được khai báo, sử dụng và được quản lý trong môi trường thực thi bởi ngôn ngữ trung gian (Intermediate Language – IL).
Base Framework Class : Các class này cung cấp các chức năng cơ bản như Input/output, thao tác với string, quản lý bảo mật, giao tiếp với môi trường mạng …
ASP.Net : Cung cấp môi trường phát triển ứng dụng web thông qua các nền tảng công nghệ như ASP.Net MVC, ASP.Net Web Form.
ADO.Net: Cung cấp các class thao tác với cơ sở dữ liệu.
WPF : Phát triển ứng dụng dựa trên XML và hỗ trợ làm việc với các thư viện đồ họa Vector. WPF cho phép làm việc với các card đồ họa 3D và DirectX 3D.
WCF : Phát triển ứng dụng trên nền tảng hướng dịch vụ cho phép tạo ra các dịch vụ, các dịch vụ này có thể truy vấn thông tin thông qua nhiều các giao thức khác nhau.
Entity Framework : Là nền tảng cho phép xây dựng các lớp giao tiếp và làm việc với các hệ thống dữ liệu thông qua các mô hình lập trình tiên tiến như Code First…
Parallel Linq : Tập hợp các class hỗ trợ lập trình song song bằng cách sử dụng Linq.
2.1 Common Intermediate Language
Là một ngôn ngữ trung gian được tạo ra sau quá trình biên dịch từ các loại ngôn ngữ khác trong .Net như C#, C++, VB.Net, có nghĩa là khi lập trình viên viết thực hiện dịch các mã chương trình bằng các ngôn ngữ như C#, VB.net đoạn mã code sẽ được dịch ra ngôn ngữ trung gian MSIL hay còn gọi là IL. Hình dưới đây mô tả quá trình thực hiện :
Hình số 2 : Ngôn ngữ trung gian MSIL
2.2 Common Language Runtime
Là thành phần cơ bản của bộ .Net Framework. Nó quản lý quá trình khi thực thi mã ứng dụng (.exe) Như quản lý bộ nhớ, quản lý phân luồng, quản lý truy cập …Bản chất là nó cung cấp môi trường cho chương trình chạy, Hình sau đây sẽ mô tả quá trình thực hiện của CLR.
Hình số 3 : Mô tả quá trình thực hiện CLR
3. Các đặc trưng cơ bản của ngôn ngữ C#
- Ngôn ngữ lập trình hướng đối tượng : Ngôn ngữ lập trình C# là ngôn ngữ lập trình thuần hướng đối tượng với các đặc tính như thừa kế, đa hình, đóng gói và trừu tượng.
- An toàn kiểu: Biến chưa được khởi tạo không thể dùng trong C#. Hỗ trợ kiểm tra tràn dữ liệu trong C#.
- Bộ thu gom rác tự động: C# hỗ trợ tự động quản lý bộ nhớ.
- Tuân theo chuẩn ECMA (Standardization by European Computer Manufacturers Association).
- Hỗ trợ Generic: Tương tự như Template trong C++, ngoài ra C# hỗ trợ duyệt các phần từ thông qua Interator (sử dụng foreach)
- Partial Classes : Hỗ trợ khai báo class ở nhiều file khác nhau.
- Anonymous Methods : Cho phép lập trình viên sử dụng khối lệnh nhỏ trực tiếp thông qua khai báo delegate.
- Nullable Type : Cho phép sử dụng biến chưa giá trị không được định nghĩa trước.
- Lập trình song song : .Net Framework và C# hỗ trợ lập trình song song.
4. Các loại ứng dụng khác nhau của C#
C# là ngôn ngữ lập trình hướng đối tượng cho phép người sử dụng xây dựng các ứng dụng theo kiến trúc Ecosoftware System. Ví dụ :
- Xây dựng ứng dụng trên nền tảng web, web service
- Game
- Ứng dụng Windows Store
- Mobile
- Các ứng dụng Enterprice
- Các ứng dụng Destop
- Add On/Add in
- Điện toán đám mây…
5. Tạo ứng dụng C# qua bộ Visual Studio 2015
Bước 1 : Tạo Project và lựa chọn kiểu ứng dụng cần phát triển
Hình số 4 : Tạo Project ứng dụng
Cửa sổ bên trái : Mô tả template ứng dụng cần tạo như :
- Ứng dụng windows Application : Console application, Windows Phone, Windows Store …
- Ứng dụng Web : ASP.net MVC, ASP.Net Webform, Web API…
- Ứng dụng Office SharePoint : Cho phép tạo các ứng dụng trên nền tảng cổng thông tin SharePoint
- …
Ở đây chúng ta chỉ quan tâm tới ứng dụng Console Application do chúng ta mới học C#.
Sau khi nhập các thông tin cần thiết như tên project, chọn thư mục lưu trữ .., giao diện hiển thị bộ Visual Studio 2015 như sau :
Hình số 5 : Màn hình soạn thảo Bộ Visual Studio 2015
Thực hiện Nhấn F5 để thực hiện biên dịch chương trình ở chế độ hộ trợ Debug và Ctr + F5 để thực hiện chạy chương trình ở chế độ không hộ trợ Debug.
Khi chạy chương trình cửa sổ output sẽ mô tả tiến trình chạy chương trình :
Hình số 6 : Cửa số Output khi chạy chương trình
Ngoài ra nếu chương trình lỗi, lập trình viên cần quan tâm tới cửa sổ Error để thực hiện kiểm soát lỗi chương trình.
Hình số 7 : Cửa số Error khi chạy chương trình
Nếu chạy thành công màn hình sẽ xuất hiện như sau :
Hình số 8 : Kết quả chạy chương trình