Bài 1: Tổng quan - Nền tảng lập trình C#


Các khái niệm cơ bản về lập trình, chương trình và ngôn ngữ lập trình trong quá trình xây dựng ứng dụng. Tạo bước khởi đầu vững chắc cho bạn để trở thành Developer .Net


Nội dung:

  • Lập trình (Programming)
  • Chương trình (Program)
  • Ngôn ngữ lập trình (Programming Language)
  • Xây dựng ứng dụng dạng Console

Lập trình (Programming)

  • Khái niệm
    • Thao tác của con người nhằm kiến tạo nên các chương trình máy tính thông qua các ngôn ngữ lập trình
    • Quá trình mã hoá thông tin tự nhiên thành ngôn ngữ máy tính
    • Trong các trường hợp xác định thì lập trình còn được gọi là "viết mã" cho chương trình máy tính

1. Lập trình tuyến tính (Linear Programming)

  • Chương trình được viết tuần tự với các câu lệnh thực hiện từ đầu đến cuối
  • Các lệnh được thực hiện tuần tự theo thứ tự xuất hiện trong chương trình
  • Thao tác đơn giản, dễ thực hiện nhưng khó sửa lỗi và khó mở rộng

Các bước giải thích họat động của lập trình tuyến tính:

  • Bắt đầu chưong trình (Start the program)
  • Đọc dữ liệu từ người dùng hoặc từ tập tin.
  • Xử lý dữ liệu (Process the data)
  • Hiển thị kết quả (Display the results)
  • Thoát (Exit) khỏi chương trình hoặc quay lui vòng lặp (loop back) tới bước 2

Lập trình tuyến tính

 

2. Lập trình cấu trúc (Structured Programming)

  • Chương trình được tách thành nhiều phần (module). Mỗi phần sẽ thực hiện một chức năng của chương trình
  • Phương pháp thiết kế (design) mã hóa (coding) và ki , mã hóa (coding) và kiểm thử (testing) nhằm tạo ra các chương trình đúng đắn, dễ đọc, và dễ dàng nâng cấp cũng như bảo trì
  • Có 3 cấu trúc để xây dựng chương trình:
    • Tuần tự (Sequence)
    • Chọn lựa (Selection)
    • Lặp (Iteration)

Tuần tự (Sequence): Luồng chương trình từ bước một tới bước kế tiếp theo trình tự chính xác

Lập trình cấu trúc tuần tự

Sự chọn lựa (Selection): là một cấu trúc chọn lựa rẽ nhánh có điều kiện (conditional). Tùy thuộc vào biểu thức Test Condition mà luồng chương trình sẽ quyết định rẽ sang nhánh Path 1 hay rẽ sang nhánh Path 2

Lập trình sự chọn lựa

Lặp (Iteration): các bước thực hiện chương trình sẽ được lặp liên tục cho đến khi việc kiểm tra điều kiện đạt được mong chờ nào đó.

Lập trình lập

Lập trình cấu trúc ưu điểm so với lập trình tuyến tính

  • Logic chương trình dễ hiểu
  • Các module khác nhau của chương trình có thể được viết bởi những người lập trình khác nhau.
  • Do sự phân rả các xử lý độc lập với nhau, tất cả những gì bên trong xử lý là hộp đen đối với bên ngoài (tính địa phương hóa - localization) nên dễ dàng kiểm tra phát hiện lỗi.
  • Thời gian lập trình được giảm bớt.

3. Lập trình hướng đối tượng (Object Oriented Programming)

Chương trình sẽ được tách thành nhiều lớp, mỗi lớp gồm có dữ liệu (biến) và phương thức (hàm) xử lý dữ liệu. Do dữ liệu và hàm được đóng gói thành lớp nên LTHĐT sẽ có 3 đặc tính sau:

  • Tính đóng gói (Encapsulation): dữ liệu và phương thức được tổ chức trong một lớp, tính đóng gói cho phép bảo vệ dữ liệu, che dấu chi tiết cài đặt.
  • Tính thừa kế (Inheritance): Sử dụng lớp có trước (lớp cha) để xây dựng lớp mới (lớp ) con. Lớp con được thừa hưởng những thuộc tính, phương thức của lớp cha và có thể có thêm những thuộc tính, phương thức riêng.
  • Tính đa hình (Polymorphism): Một phương thức có thể thực hiện theo nhiều cách khác nhau trên các lớp khác nhau. Tính đa hình giúp cho việc lập trình trở nên đơn giản, dễ mở rộng

Ưu điểm lập trình hướng đối tượng

  • Loại bỏ được các đoạn chương trình trùng lắp
  • Chương trình được xây dựng theo quy trình, rút ngắn được thời gian
  • Xây dựng chương trình an toàn không bị thay đổi bởi các đoạn chương trình khác (thông tin đã được che dấu nhờ kỹ thuật đóng gói)
  • Dễ dàng mở rộng và nâng cấp thành các hệ thống lớn hơn

4. Lập trình hướng sự kiện (Event-Driven Programming)

  • Hướng theo các sự kiện đang xảy ra và giữ tương tác với người dùng
  • Lập trình hướng sự kiện cung cấp nền tảng cho lập trình trực quan
  • Chương trình hướng sự kiện làm việc theo dạng thụ động (passively) chờ cho một sự kiện xảy ra và kích hoạt (activate)

Lập trình hướng sự kiện

Các loại sự kiện

  • Các sự kiện hệ thống (System Events)
  • Các sự kiện điều khiển (Control Events)

5. Lập trình trực quan (Visual Programming)

  • Trực tiếp tạo ra các khung giao diện (interface), ứng dụng thông qua các thao tác trên màn hình dựa vào các đối tượng (object) như hộp hội thoại hoặc nút điều khiển (control button)
  • Ít khi phải tự viết các lệnh, tổ chức chương trình... một cách rắc rối mà chỉ cần khai báo việc gì cần làm khi một tình huống xuất hiện.
  • Có thể được thực hiện bằng cách sử dụng ngôn ngữ lập trình trực quan (Visual Programming Language) hoặc một môi trường lập trình trực quan (Visual Programming Environment)
  • Đặc điểm
    • Dễ dàng để nhớ dữ liệu dạng hình tượng như hình ảnh (Pictures), đồ họa (graphs)
    • Môi trường đồ họa (Graphical environment) cung cấp hiệu ứng trực quan tạo nên sự hấp dẫn đối với người dùng

Chương trình (Program)

  • Khái niệm chương trình
    • Tập hợp các chỉ thị được biểu thị nhờ ngôn ngữ lập trình để thực hiện các thao tác nào đó thông qua một chương trình
    • Chương trình (program) được viết cho máy tính nhằm giải quyết một vấn đế nào đó gọi là phần mềm máy tính
  • Phân loại theo phương thức hoạt động
    • Phần mềm hệ thống
    • Phần mêm ứng dụng
    • Phần mềm chuyển dịch
  • Phân loại theo khả năng áp dụng
    • Phần mềm đóng gói (Phần mềm không phụ thuộc)
    • Phần mềm viết theo đơn đặt hàng
  • Phân loại theo tính chất hệ thống
    • Phần mềm hệ thống mở
    • Phần mềm hệ thống đóng
  • Phân loại theo lĩnh vực áp dụng
    • Phần mềm quản lý
    • Phần mềm khoa học kỹ thuật
    • Phần mềm giáo dục
    • Phần mềm giải trí
    • Phần mềm truyền thông
    • Phần mềm thông tin địa lý

Ngôn ngữ lập trình (Programming Language)

  • Khái niệm
    • Là một bộ ký tự và tập hợp các quy tắc ngữ pháp nhằm chỉ thị máy tính thực thi các tác vụ cụ thể
    • Thuật ngữ ngôn ngữ lập trình thường được dùng để ám chỉ đến các ngôn ngữ cấp cao, ví dụ như BASIC, C, C++, Pascal, …
    • Các ngôn ngữ lập trình có tính dễ hiểu, gần gũi với ngôn ngữ con người hơn so với ngôn ngữ máy tính (machine languages).
    • Có thể sử dụng bất kỳ ngôn ngữ lập trình nào. Tuy nhiên khi thực thi đều phải chuyển thành ngôn ngữ máy để máy tính có thể hiểu.
    • Chuyển đổi qua ngôn ngữ máy có thể sử dụng:
      • Chương trình biên dịch (compile the program) hay còn gọi là trình biên dịch
      • Chương trình thông dịch (interpret the program) hay còn gọi là trình thông dịch.
  • Ngôn ngữ trung gian của Microsoft (Microsoft Intermediate Language – MSIL)
    • Là một đơn vị xử lý trung tâm tập hợp các lệnh độc lập có thể được chuyển đổi một cách hiệu quả tới mã máy.
    • Bao gồm các lệnh nạp (loading), lưu trữ (storing), khởi tạo (initializing) và gọi các phương thức trên các đối tượng Ngoài ra nó còn bao g . Ngoài ra, nó còn bao gồm các lệnh tính toán số học và logic, điều khiểu luồng chương trình (control flow), điều khiển truy xuất bộ nhớ, kiểm soát exception, và các hành động khác.
    • Khi một mã lệnh đơn lẻ được người lập trình viết xong, nó sẽ được biên dịch bởi trình biên dịch. Sau khi được biên dịch mã lệnh được chuyển đổi thành tập tin dạng EXE/DLL. Kết quả này được hiểu là “đơn vị chương trình được quản lý - Managed Module”. Trên thực tế Managed Module được hiểu như là Assembly, nó bao gồm ngôn ngữ trung gian (Intermediate Language (IL) ) và thông tin về dữ liệu (siêu dữ liệu - Metadata).
    • Metadata được trình biên dịch sinh ra, nó mô tả các kiểu trong mã lệnh, và định nghĩa mỗi kiểu, chữ ký của mỗi thành viên kiểu, các thành viên được tham chiếu bởi mã lệnh, và dữ liệu khác được sử dụng bởi bộ runtime tại thời điểm thực thi
    • Trước khi MSIL có thể được thực thi, nó phải được chuyển đổi lần nữa bởi trình biên dịch Just In Time (JIT) tới mã máy (native code). Trình biên dịch JIT được cung cấp bởi bộ vận hành ngôn ngữ chung (Common Language Runtime) cho mỗi kiến trúc CPU được hỗ trợ.
    • Trình biên dịch JIT chỉ chạy khi có yêu cầu. Khi một phương thức được gọi, p JIT phân tích IL và sinh ra mã máy tối ưu cho từng loại máy. JIT có thể nhận biết mã nguồn đã được biên dịch chưa, để có thể chạy ngay ứng dụng y p hay phải biên dịch lại

Ngôn ngữ trung gian Microsoft

Tiến trình thực thi mã nguồn

  • Các đặc điểm của ngôn ngữ lập trình
    • Mỗi ngôn ngữ lập trình có thể được xem như là một tập hợp của các chi tiết kỹ thuật chú trọng đến cú pháp, từ vựng và ý nghĩa của ngôn ngữ.
    • Những chi tiết kĩ thuật này thường bao gồm:
      • Dữ liệu và cấu trúc dữ liệu
      • Câu lệnh và dòng điều khiển
      • Các tên và các tham số
      • Các cơ chế tham khảo và tái sử dụng

Ứng dụng dạng Console (Console Application)

  • Khái niệm
    • Ứng dụng dạng Console Application thi hành tại màn hình dấu nhắc lệnh DOS (hay Command Windows) và sự tương tác của nó với người dùng giới hạn trong nhập xuất dạng văn bản
    • Ứng dụng được xây dựng một cách dễ dàng, không quan tâm tới giao diện phải được thiết kế như thế nào

Chia sẽ bài viết :