Series Fullstack .NET Starter

Chào mọi người, hôm nay mình sẽ viết bài đầu tiên của series: Fullstack .NET.

Series sẽ hướng đến những bạn mới bắt đầu tiếp cận với .NET, hoặc những bạn có nền tảng 1 phần của .NET, như Windows Form và muốn phát triển các kỹ năng khác dựa trên các kiến thức nền tảng của .NET

Target

  • Hiểu được kiến trúc triển khai phần mềm tổng quan, các model triển khai trong thực tế
  • Các kiến thức cần thiết để phát triển trong ngành phần mềm
  • Tổng quan các công nghệ sử dụng
  • Series này có nội dung khoảng 60% backend, 40% front-end
  • Kết thúc series, mọi người có thể tự tìm hiểu phát triển thêm kiến thức, tham gia các dự án hỗ trợ phát triển một số tính năng nhỏ
  • Thời gian cho người mới tiếp cận khoảng: 2-3 tháng

Lộ trình

  • Tìm hiểu tổng quan về ngành phần mềm, các kiến thức, kỹ năng nền tảng cần thiết:
    • Tiếng anh: đọc hiểu tài liệu, các bài viết trên Internet
    • Tư duy module hoá
    • Coding: Sẵn sàng làm framework, ngôn ngữ mới bất kỳ lúc nào
    • Tư duy dài hơi: học các nền tảng kỹ thuật, tư duy phân tích bài toán, thiết kế hệ thống, module hoá ,làm để tái sử dụng nhiều dự án (Senior)
    • Tư duy ngắn hạn: học ngôn ngữ lập trình, học công nghệ, làm để chạy được (Junior)
    • Nguồn tìm hiểu: google, chat gpt, Stackoverflow team: vndevteam
    • Nền tảng của kỹ sư phần mềm:
      • Coding
      • Debugging
      • Đọc hiểu tài liệu
      • Networking
      • Kiến trúc máy tính
      • Hệ điều hành
      • Cơ sở dữ liệu
      • Phân thích thiết kế hệ thống
      • Toán
      • Security
  • Backend/Frontend, tổng quan về công nghệ:
    • Backend: ASP.NET Core, Golang, python, nodejs, …
    • Frontend: App+Web nói chung:
      • Phát triển nhanh, framework đa dạng
      • .NET Winform, desktop, mobile, reactjs, reactnative, flutter, …
  • Giới thiệu .NET fullstack, why .NET? (30 phút)
  • Cài đặt visual studio, .NET, .git
    • Tự làm ở nhà
  • Lập trình Winform(C#) basic, coding các bài toán cơ bản:
    • Project được lưu vào gitlab
    • Tạo project, run thử project hello world
    • Biến, hàm (động, tĩnh)
    • Các kiểu dữ liệu có sẵn của C#: List, SortedList, Dictionary
    • Đọc ghi file
    • Mutli thread/task
    • Networking, Json
    • Project:
      • Quản lý sinh viên: Thêm, sửa, xóa tìm kiếm sinh viên
      • Thông tin sinh viên được lưu vào file dưới dạng thành từng hàng: MaSoSV|HoTen|Khoa|Lop|NamSinh|QueQuan
      • Có giao diện:
        • Hiển thị list sinh viên (tối đa 20 sinh viên 1 màn), có nút next, prev để xem tiếp, quay lại. Màn này chỉ hiển thị HoTen,MaSoSV,Khoa,Lop
        • Có ô search ở màn xem list: search theo HoTen,MaSoSV,Khoa,Lop
        • Click vào 1 hàng sẽ hiển thị chi tiết 1 SinhVien gồm tất cả cá thông tin
        • Có màn nhập để thêm sinh viên mới: check trùng MaSoSV, check các trường thông tin nhập vào hợp lệ
        • Có màn xóa SinhVien
  • Giới thiệu các model triển khai trong thực tế
    • Server only: ứng dụng web, chỉ cần 1 project trên server, trình duyệt gọi lên server sẽ trả về toàn bộ html,css,js
    • Chia riêng ra thành Backend và Frontend, Backend cung cấp API để frontend gọi đến
    • Có thể trong 1 dự án có nhiều Backend và nhiều Frontend tuỳ thiết kế
    • Có thể chỉ mỗi frontend nếu không cần quản lý dữ liệu đồng bộ
  • ASP.NET Core API
    • Chọn đề tài đồ án, hiểu yêu cầu đề bài
    • Kiến trúc MVC API
    • Tạo API demo
    • Cơ sở dữ liệu: Thiết kế
    • Entity Framework
    • Identity Framework
    • Dependence Injection
    • Login, Phân quyền API
    • Triển khai các API cho đồ án
  • Đồ án tốt nghiệp (chọn 1 trong các đề tài bên dưới):
    • Calendar online:
      • Đăng nhập, đăng ký tài khoản 
      • Tạo, sửa, xóa event 
      • Thêm, xóa user khỏi event 
      • Gửi mail cho user khi được add,sửa, xóa event, 
    • Nghe nhạc online
      • Đăng nhập, đăng ký tài khoản 
      • User quản lý các file mp3 
      • Có trường: public, private 
      • Nếu public thì người khác có thể nghe được 
      • Nếu bài nào được nghe nhiều thì sẽ được lên top (Mỗi lượt nghe thì được tăng điểm rating) 
    • Note App:
      • Đăng nhập, đăng ký tài khoản 
      • Quản lý Cuốn sách 
      • Quản lý Trang cho cuốn 
      • Chỉnh sửa, đồng bộ dữ liệu
  • Bonus:
    • Hybrid language: cshtml, razor, react
    • Hybrid framework: Blazor winform, …
    • Realtime Application
    • Cross platform
    • Cloud
    • AI

Tip
Chúng ta sẽ học được nhanh nhất khi chúng ta thực hành, gặp lỗi và sửa lỗi