.NET – Quá trình biên dịch: JIT (Just-In-Time) và NGEN (Native Image Generator)

compiler.NET đóng gói mã nguồn trong các file chương trình (assembly dưới dạng .exe, .dll) chứa mã lệnh Microsoft Intermediate Language (MSIL hay viết gọn là IL). Đây không phải là ngôn ngữ mà máy có thể hiểu. Vì thế khi chương trình của bạn được thực thi, một trình biên dịch JIT (Just-In-Time, còn gọi là Jitter, đây là một phần của CLR – Common Language Runtime) sẽ được gọi để biên dịch chương trình thành mã máy nhờ đó CPU có thể hiểu và thực hiện.

Tiếp tục đọc

.NET – Tạo instance và chuyển đổi kiểu dữ liệu bất kì

dot_net_splashTrong bài viết này, tôi sẽ giới thiệu cách giải quyết hai vấn đề bạn có thể gặp phải khi làm việc với .NET:
– Tạo instance của một kiểu dữ liệu bất kì với .
– Chuyển đổi một đối tượng sang một kiểu dữ liệu bất kì.

Tiếp tục đọc

.NET 4 – System.Tuple vs Anonymous Type

3d tuple.Net 4.0 cho ra mắt một nhóm class mới với cùng tên là Tuple. Mục đích của các class là tạo một đối tượng lưu trữ cho các dữ liệu phức tạp, và nhờ đó người dùng khỏi cần phải tạo thêm một class mới. Nhưng từ .Net 3, bạn đã có thể sử dụng anonymous type để làm điều này với cú pháp đơn giản hơn. Vậy thì System.Tuple phải chăng là dư thừa?

Tiếp tục đọc

.Net – Tìm hiểu về Application Domain (AppDomain)

Application Domain (viết tắt AppDomain, đây cũng là tên lớp tương ứng trong .Net) có mục đích tạo một môi trường cách ly nằm bên trong một process, tương tự như các process hoạt động trong cùng một hệ điều hành. Bạn có thể sử dụng AppDomain để nạp các assembly và thực thi các tác vụ một cách riêng biệt trong cùng process. Bài viết này sẽ cho bạn thấy cách thức sử dụng và các lợi ích mà AppDomain đem lại.

Tiếp tục đọc

.Net – Serialization và Deserialization trong C#

Serialization là một quá trình để chuyển đổi một cấu trúc dữ liệu hoặc đối tượng thành một định dạng có thể lưu trữ được (ví dụ như trong một file, bộ nhớ, hoặc vận chuyển thông qua mạng), sau đó nó có thể được phục hồi để trở lại trạng thái ban đầu trong một môi trường khác thông qua quá trình deserialization. Rất nhiều ngôn ngữ lập trình hiện nay hỗ trợ kĩ thuật này bao gồm C#, Java, Objective-C, Perl, Python, Ruby, PHP,… (Wikipedia).

Tiếp tục đọc

.Net – Tạo, sử dụng và quản lý Event trong C#

Event là một thứ mà hầu như bạn phải sử dụng tới trong bất kì ứng dụng nào sử dụng giao diện đồ họa người dùng (GUI). Các control của .Net cung cấp đầy đủ những event cần thiết để bạn có thể sử dụng một cách dễ dàng. Tuy nhiên có những trường hợp bạn cần tạo thêm event cho một lớp nào đó (chẳng hạn event để thông báo khi một collection bị thay đổi nội dung, truyền nội dung giữa hai Form,…). Những thắc mắc hay vấn đề liên quan đến event, bạn có thể sẽ tìm thấy trong bài viết này.

Tiếp tục đọc