[major=SE | course_id=PRN212 | syllabus_id=13891 | semester=5 | combo=SE_COM3.3 | title=Basis Cross-Platform Application Programming With .NET]
Course ID: PRN212
Title EN: Basis Cross-Platform Application Programming With .NET
Title VI: Lập trình ứng dụng đa nền tảng cơ bản với .NET
Credits: 3.0
Prerequisites: PRO192, DBI202
Description: Upon completion of this course students should:
1. Understand the followings:
• C# language for developing .NET applications;
• Fundamental concepts of .NET Platform
• Basic knowledge of Windows Presentation Foundation in .NET
2. Be able to:
• Develop Cross-platform Desktop applications and support for user experience ( UI & UX )
3. Be able to work in a team and present group's results
Student tasks: - Students must attend at least 80% of contact sessions in order to be accepted to the final examination.
- Student is responsible to do all assigned exercises given by instructor in class or at home and submit on time
- Use laptop in class only for learning purpose
- Promptly access to the https://flm.fpt.edu.vn/ for up-to-date course information
Tools: - Internet
- Visual Studio.NET 2022 or later
- MS SQL Server 2019 or later
- Platform : .NET 8.0 or later
- GitHub Copilot: Automated suggestions when writing code in C#, XAML, SQL, ...
- AI-enhanced Debuggers (JetBrains Rider AI or Visual Studio IntelliCode)
- GitHub Workflow
Course type: traditional
Decision: 1402/QĐ-ĐHFPT dated 12/12/2025
Approved date: 2025-12-12
CLO1: Describe about .NET Core Platform, and more new features of C# language .
[1] category=Assignment; type=on-going; weight=15.0; duration=12 slots; question_type=CLO2, CLO3, CLO4, CLO5; grading_guide=Studied subjects in syllabus; completion_criteria=; clos=>0
[2] category=Group Project; type=on-going; weight=20.0; duration=20 slots; question_type=CLO2, CLO3, CLO4, CLO5, CLO6; grading_guide=Studied subjects in syllabus; completion_criteria=; clos=>0
[3] category=Progress test; type=on-going; weight=10.0; duration=30'; question_type=CLO1, CLO2, CLO3, CLO4, CLO5; grading_guide=Studied subjects in syllabus; completion_criteria=; clos=>0
[4] category=Final exam; type=Final exam; weight=55.0; duration=145'; question_type=All CLOs; grading_guide=All subjects in syllabus; completion_criteria=; clos=
[5] category=Practical Exam; type=Final exam; weight=25.0; duration=85'; question_type=CLO1, CLO2, CLO3, CLO4, CLO5; grading_guide=All subjects in syllabus; completion_criteria=; clos=>0
[6] category=Theoretical exam; type=Final exam; weight=30.0; duration=60'; question_type=CLO1, CLO2, CLO3, CLO4, CLO5; grading_guide=All subjects in syllabus; completion_criteria=; clos=4
[1] desc=C# 12 in a Nutshell; author=Joseph Albahari; publisher=O’Reilly Media, Inc.; edition=; isbn=9781098147440; main=; online=; note=
[2] desc=https://learn.microsoft.com/en-us/ef/core/; author=Microsoft; publisher=Microsoft; edition=; isbn=; main=True; online=True; note=
[3] desc=C# 12 and .NET 8 – Modern
Cross-Platform Development
Fundamentals; author=Mark J. Price; publisher=Packt Publishing Ltd.; edition=8th Edition; isbn=9781837635870; main=; online=; note=
[4] desc=https://learn.microsoft.com/en-us/dotnet/core/introduction; author=Microsoft; publisher=Microsoft; edition=; isbn=; main=True; online=True; note=
[5] desc=https://learn.microsoft.com/en-us/dotnet/csharp/whats-new/csharp-12; author=Microsoft; publisher=Microsoft; edition=; isbn=; main=True; online=True; note=
Session 1: Course Introduction
Working Environment
Project Introduction
Topic: Offline; Teaching type: CLO1; LO: IT
ITU: Course Introduction Slide
Project List
Materials: PRN212
Download: - Choose Group (3-5 Students)
- Choose Topic
- Collect requirements about Topic

Session 2: Chapter 01: Introduction to .NET Platform & Visual Studio.NET
Topic: Offline; Teaching type: CLO1; LO: TU
ITU: https://learn.microsoft.com/en-us/dotnet/core/introduction
Download: - Read the slide, related reference documents
- Do exercises
- Self practice

Session 3: Chapter 01: Introduction to .NET Platform & Visual Studio.NET (cont.)
Topic: Offline; Teaching type: CLO1; LO: TU
ITU: https://learn.microsoft.com/en-us/dotnet/core/whats-new/dotnet-8/overview
Download: - Read the slide, related reference documents
- Do exercises
- Self practice

Session 4: Chapter 01: Introduction to .NET Platform & Visual Studio.NET (cont.)
Topic: Offline; Teaching type: CLO1; LO: TU
ITU: https://learn.microsoft.com/en-us/dotnet/core/whats-new/dotnet-8/overview
Download: - Read the slide, related reference documents
- Do exercises
- Self practice
CLO2: Demonstrate about OOP , Generic, Delegate & Event , LINQ and Design Pattern in C#
Session 1: Chapter 01: Introduction to .NET Platform & Visual Studio.NET (cont.)
Topic: Offline; Teaching type: CLO1; LO: TU
ITU: https://learn.microsoft.com/en-us/dotnet/core/whats-new/dotnet-8/overview
Download: - Read the slide, related reference documents
- Do exercises
- Self practice

Session 2: Chapter 01: Introduction to .NET Platform & Visual Studio.NET (cont.)
Topic: Offline; Teaching type: CLO1; LO: TU
ITU: https://learn.microsoft.com/en-us/dotnet/core/whats-new/dotnet-8/overview
Download: - Read the slide, related reference documents
- Do exercises
- Self practice

Session 3: Chapter 02: C# Programming
Topic: Offline; Teaching type: CLO1; LO: TU
ITU: Chapter 3. Controlling Flow, Converting Types, and Handling Exceptions
Chapter 4. Writing, Debugging, and Testing Functions (C# 12 and .NET 8 – Modern Cross-Platform Development Fundamentals)
Download: - Read the slide, related reference documents
- Do exercises
- Self practice

Session 4: Chapter 02: C# Programming (cont.)
Topic: Offline; Teaching type: CLO1; LO: TU
ITU: Chapter 3. Controlling Flow, Converting Types, and Handling Exceptions
Chapter 4. Writing, Debugging, and Testing Functions (C# 12 and .NET 8 – Modern Cross-Platform Development Fundamentals)
Download: - Read the slide, related reference documents
- Do exercises
- Self practice
CLO3: Demonstrate about Windows Presentation Foundation
Session 1: Chapter 02: C# Programming (cont.)
Topic: Offline; Teaching type: CLO1; LO: TU
ITU: Chapter 3. Controlling Flow, Converting Types, and Handling Exceptions
Chapter 4. Writing, Debugging, and Testing Functions (C# 12 and .NET 8 – Modern Cross-Platform Development Fundamentals)
Download: - Read the slide, related reference documents
- Do exercises
- Self practice

Session 2: Chapter 03: Object-Oriented Programming with C#
Topic: Offline; Teaching type: CLO2; LO: TU
ITU: Chapter 5. Building Your Own Types with Object-Oriented Programming (C# 12 and .NET 8 – Modern Cross-Platform Development Fundamentals)
Download: - Read the slide, related reference documents
- Do exercises
- Self practice

Session 3: Chapter 03: Object-Oriented Programming with C# (cont.)
Topic: Offline; Teaching type: CLO2; LO: TU
ITU: Chapter 5. Building Your Own Types with Object-Oriented Programming (C# 12 and .NET 8 – Modern Cross-Platform Development Fundamentals)
Download: - Read the slide, related reference documents
- Do exercises
- Self practice

Session 4: Chapter 03: Object-Oriented Programming with C# (cont.)
Topic: Offline; Teaching type: CLO2; LO: TU
ITU: Chapter 5. Building Your Own Types with Object-Oriented Programming (C# 12 and .NET 8 – Modern Cross-Platform Development Fundamentals)
Download: - Read the slide, related reference documents
- Do exercises
- Self practice
CLO4: Demonstrate about accessing to the database by Entity Framework ( ORM )
Session 1: Chapter 04: Collections & Generic
Topic: Offline; Teaching type: CLO2; LO: TU
ITU: https://learn.microsoft.com/vi-vn/dotnet/standard/generics/collections
Download: - Read the slide, related reference documents
- Do exercises
- Self practice

Session 2: Chapter 04: Collections & Generic (cont.)
Topic: Offline; Teaching type: CLO2; LO: TU
ITU: https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/builtin-types/collections
Download: - Read the slide, related reference documents
- Do exercises
- Self practice

Session 3: Chapter 04: Collections & Generic (cont.)
Topic: Offline; Teaching type: CLO2; LO: TU
ITU: https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/builtin-types/collections
Download: - Read the slide, related reference documents
- Do exercises
- Self practice

Session 4: Chapter 05: Design Pattern in .NET
Topic: Offline; Teaching type: CLO2; LO: TU
ITU: https://refactoring.guru/design-patterns/csharp
https://sourcemaking.com/design_patterns/
Download: - Read the slide, related reference documents
- Do exercises
- Self practice
CLO5: Explain about Concurrency programming, Stream I/O
Session 1: Chapter 05: Design Pattern in .NET (cont.)
Topic: Offline; Teaching type: CLO2; LO: TU
ITU: https://refactoring.guru/design-patterns/csharp
https://sourcemaking.com/design_patterns/
Download: - Read the slide, related reference documents
- Do exercises
- Self practice

Session 2: Chapter 05: Design Pattern in .NET (cont.)
Topic: Offline; Teaching type: CLO2; LO: TU
ITU: https://refactoring.guru/design-patterns/csharp
https://sourcemaking.com/design_patterns/
Download: - Read the slide, related reference documents
- Do exercises
- Self practice

Session 3: Chapter 06: Delegate , Event & LINQ
Topic: Offline; Teaching type: CLO2; LO: TU
ITU: https://learn.microsoft.com/en-us/dotnet/csharp/programming-guide/delegates/
https://learn.microsoft.com/vi-vn/dotnet/csharp/programming-guide/events/
https://learn.microsoft.com/en-us/dotnet/csharp/linq/
Download: - Read the slide, related reference documents
- Do exercises
- Self practice

Session 4: Chapter 06: Delegate , Event & LINQ (cont.)
Topic: Offline; Teaching type: CLO2; LO: TU
ITU: https://learn.microsoft.com/en-us/dotnet/csharp/programming-guide/delegates/
https://learn.microsoft.com/vi-vn/dotnet/csharp/programming-guide/events/
https://learn.microsoft.com/en-us/dotnet/csharp/linq/
Download: - Read the slide, related reference documents
- Do exercises
- Self practice
CLO6: Apply Generative AI tools to support software development tasks in .NET
Session 1: Chapter 06: Delegate , Event & LINQ (cont.)
Topic: Offline; Teaching type: CLO2; LO: TU
ITU: https://learn.microsoft.com/en-us/dotnet/csharp/programming-guide/delegates/
https://learn.microsoft.com/vi-vn/dotnet/csharp/programming-guide/events/
https://learn.microsoft.com/en-us/dotnet/csharp/linq/
Download: - Read the slide, related reference documents
- Do exercises
- Self practice

Session 2: Chapter 06: Delegate , Event & LINQ (cont.)
Topic: Offline; Teaching type: CLO2; LO: TU
ITU: https://learn.microsoft.com/en-us/dotnet/csharp/programming-guide/delegates/
https://learn.microsoft.com/vi-vn/dotnet/csharp/programming-guide/events/
https://learn.microsoft.com/en-us/dotnet/csharp/linq/
Download: - Read the slide, related reference documents
- Do exercises
- Self practice

Session 3: Chapter 06: Delegate , Event & LINQ (cont.)
Topic: Offline; Teaching type: CLO2; LO: TU
ITU: https://learn.microsoft.com/en-us/dotnet/csharp/programming-guide/delegates/
https://learn.microsoft.com/vi-vn/dotnet/csharp/programming-guide/events/
https://learn.microsoft.com/en-us/dotnet/csharp/linq/
Chapter 11. Querying and Manipulating Data Using LINQ (C# 12 and .NET 8 – Modern Cross-Platform Development Fundamentals)
Download: - Read the slide, related reference documents
- Do exercises
- Self practice

Session 4: GENAI: Applying Generative AI & Workflow CI/CD in .NET
Topic: Offline; Teaching type: CLO6; LO: TU
ITU: Slide
Download: - Read the slide
Session 1: GENAI: Applying Generative AI & Workflow CI/CD in .NET (cont.)
Topic: Offline; Teaching type: CLO6; LO: TU
ITU: Slide
Download: - Read the slide

Session 2: GENAI: Applying Generative AI & Workflow CI/CD in .NET (cont.)
Topic: Offline; Teaching type: CLO6; LO: TU
ITU: Slide
Download: - Read the slide

Session 3: Progress Test 1
Topic: Offline; Teaching type: CLO2; LO: TU
ITU: Exam
Download: - Do Quiz

Session 4: Project Review 01
Topic: Offline; Teaching type: CLO2, CLO6; LO: TU
ITU: Project List
Download: - Gather Requirements
- Use GenAI to help write UseCases and preliminary UI
- Create diagrams using PlantUML
- Upload diagrams + documentation to GitHub
Session 1: Chapter 07: Building WPF Application
Topic: Offline; Teaching type: CLO3; LO: TU
ITU: https://learn.microsoft.com/en-us/dotnet/desktop/wpf/?view=netdesktop-8.0
Download: - Read the slide, related reference documents
- Do exercises
- Self practice

Session 2: Chapter 07: Building WPF Application (cont.)
Topic: Offline; Teaching type: CLO3; LO: TU
ITU: https://learn.microsoft.com/en-us/dotnet/desktop/wpf/windows/?view=netdesktop-8.0
Download: - Read the slide, related reference documents
- Do exercises
- Self practice

Session 3: Chapter 07: Building WPF Application (cont.)
Topic: Offline; Teaching type: CLO3; LO: TU
ITU: https://learn.microsoft.com/en-us/dotnet/desktop/wpf/windows/?view=netdesktop-8.1
Download: - Read the slide, related reference documents
- Do exercises
- Self practice

Session 4: Chapter 07: Building WPF Application (cont.)
Topic: Offline; Teaching type: CLO3; LO: TU
ITU: https://learn.microsoft.com/en-us/dotnet/desktop/wpf/controls/styles-templates-overview?view=netdesktop-8.0
Download: - Read the slide, related reference documents
- Do exercises
- Self practice
Session 1: Chapter 07: Building WPF Application (cont.)
Topic: Offline; Teaching type: CLO3; LO: TU
ITU: https://learn.microsoft.com/en-us/dotnet/desktop/wpf/controls/styles-templates-overview?view=netdesktop-8.1
Download: - Read the slide, related reference documents
- Do exercises
- Self practice

Session 2: Chapter 07: Building WPF Application (cont.)
Topic: Offline; Teaching type: CLO3; LO: TU
ITU: https://learn.microsoft.com/en-us/dotnet/desktop/wpf/controls/styles-templates-overview?view=netdesktop-8.2
Download: - Read the slide, related reference documents
- Do exercises
- Self practice

Session 3: Chapter 07: Building WPF Application (cont.)
Topic: Offline; Teaching type: CLO3; LO: TU
ITU: https://learn.microsoft.com/en-us/dotnet/desktop/wpf/data/?view=netdesktop-8.0
Download: - Read the slide, related reference documents
- Do exercises
- Self practice

Session 4: Chapter 07: Building WPF Application (cont.)
Topic: Offline; Teaching type: CLO3; LO: TU
ITU: https://learn.microsoft.com/en-us/dotnet/desktop/wpf/data/?view=netdesktop-8.1
Download: - Read the slide, related reference documents
- Do exercises
- Self practice
Session 1: Chapter 07: Building WPF Application (cont.)
Topic: Offline; Teaching type: CLO3; LO: TU
ITU: https://learn.microsoft.com/en-us/dotnet/desktop/wpf/data/?view=netdesktop-8.2
Download: - Read the slide, related reference documents
- Do exercises
- Self practice

Session 2: Lab 1
Topic: Offline; Teaching type: CLO1, CLO2, CLO3; LO: TU
ITU: Lab 01
Download: - Do exercises
- Self practice

Session 3: Assignment 1
Topic: Offline; Teaching type: CLO1, CLO2, CLO3; LO: TU
ITU: Assignment 01
Download: - Discuss assignment problems

Session 4: Project Review 02
Topic: Offline; Teaching type: CLO1, CLO2, CL3, CLO6; LO: TU
ITU: Project List
Download: https://flm.fpt.edu.vn/gui/role/student/- WPF Project Setup- Layout and Logic Setup- Testing (Unit Test / UI Test)- Reporting and Reflecting on GenAI Usage
Session 1: Chapter 08: Working with Databases Using Entity Framework Core
Topic: Offline; Teaching type: CLO4; LO: TU
ITU: Chapter 10. Working with Data Using Entity Framework Core (C# 12 and .NET 8 – Modern Cross-Platform Development Fundamentals)
Download: - Read the slide, related reference documents
- Do exercises
- Self practice

Session 2: Chapter 08: Working with Databases Using Entity Framework Core (cont.)
Topic: Offline; Teaching type: CLO4; LO: TU
ITU: Chapter 10. Working with Data Using Entity Framework Core (C# 12 and .NET 8 – Modern Cross-Platform Development Fundamentals)
Download: - Read the slide, related reference documents
- Do exercises
- Self practice

Session 3: Chapter 08: Working with Databases Using Entity Framework Core (cont.)
Topic: Offline; Teaching type: CLO4; LO: TU
ITU: Chapter 10. Working with Data Using Entity Framework Core (C# 12 and .NET 8 – Modern Cross-Platform Development Fundamentals)
Download: - Read the slide, related reference documents
- Do exercises
- Self practice

Session 4: Chapter 08: Working with Databases Using Entity Framework Core (cont.)
Topic: Offline; Teaching type: CLO4; LO: TU
ITU: Chapter 10. Working with Data Using Entity Framework Core (C# 12 and .NET 8 – Modern Cross-Platform Development Fundamentals)
Download: - Read the slide, related reference documents
- Do exercises
- Self practice
Session 1: Chapter 08: Working with Databases Using Entity Framework Core (cont.)
Topic: Offline; Teaching type: CLO4; LO: TU
ITU: https://learn.microsoft.com/en-us/ef/core/
Download: - Read the slide, related reference documents
- Do exercises
- Self practice

Session 2: Chapter 08: Working with Databases Using Entity Framework Core (cont.)
Topic: Offline; Teaching type: CLO4; LO: TU
ITU: https://learn.microsoft.com/en-us/ef/core/
Download: - Read the slide, related reference documents
- Do exercises
- Self practice

Session 3: Chapter 08: Working with Databases Using Entity Framework Core (cont.)
Topic: Offline; Teaching type: CLO4; LO: TU
ITU: https://learn.microsoft.com/en-us/ef/core/
Download: - Read the slide, related reference documents
- Do exercises
- Self practice

Session 4: Chapter 08: Working with Databases Using Entity Framework Core (cont.)
Topic: Offline; Teaching type: CLO4; LO: TU
ITU: https://learn.microsoft.com/en-us/ef/core/
Download: - Read the slide, related reference documents
- Do exercises
- Self practice
Session 1: Chapter 08: Working with Databases Using Entity Framework Core (cont.)
Topic: Offline; Teaching type: CLO4; LO: TU
ITU: https://learn.microsoft.com/en-us/ef/core/
Download: - Read the slide, related reference documents
- Do exercises
- Self practice

Session 2: Chapter 09: Working with Files and System.IO
Topic: Offline; Teaching type: CLO5; LO: TU
ITU: Chapter 9. Working with Files, Streams, and Serialization (C# 12 and .NET 8 – Modern Cross-Platform Development Fundamentals)
Download: - Read the slide, related reference documents
- Do exercises
- Self practice

Session 3: Chapter 09: Working with Files and System.IO (cont.)
Topic: Offline; Teaching type: CLO5; LO: TU
ITU: Chapter 9. Working with Files, Streams, and Serialization (C# 12 and .NET 8 – Modern Cross-Platform Development Fundamentals)
Download: - Read the slide, related reference documents
- Do exercises
- Self practice

Session 4: Chapter 09: Working with Files and System.IO (cont.)
Topic: Offline; Teaching type: CLO5; LO: TU
ITU: Chapter 9. Working with Files, Streams, and Serialization (C# 12 and .NET 8 – Modern Cross-Platform Development Fundamentals)
Download: - Read the slide, related reference documents
- Do exercises
- Self practice
Session 1: Project Review 03
Topic: Offline; Teaching type: CLO1, CLO2, CLO3, CLO4, CLO5, CLO6; LO: TU
ITU: Project List
Download: - Application Demo
- Performance Reporting
- Reflection on GenAI Usage and Teamwork

Session 2: Chapter 10: Working with XML and JSON Serializing
Topic: Offline; Teaching type: CLO5; LO: TU
ITU: https://www.json.org/json-en.html
https://learn.microsoft.com/vi-vn/dotnet/standard/serialization/system-text-json/overview
Download: - Read the slide, related reference documents
- Do exercises
- Self practice

Session 3: Lab 2
Topic: Offline; Teaching type: CLO3, CLO4, CLO5, CLO6; LO: TU
ITU: Lab 02
Download: - Do exercises
- Self practice

Session 4: Assignment 2
Topic: Offline; Teaching type: CLO3, CLO4, CLO5, CLO6; LO: TU
ITU: Assignment 02
Download: - Discuss assignment problems
Session 1: Progress Test 2
Topic: Offline; Teaching type: CLO3, CLO4, CLO5; LO: TU
ITU: Exam
Download: - Do Quiz

Session 2: Chapter 11: Introduction to Concurrency Programming
Topic: Offline; Teaching type: CLO5; LO: TU
ITU: https://learn.microsoft.com/en-us/dotnet/standard/threading/threads-and-threading
Download: - Read the slide, related reference documents
- Do exercises
- Self practice

Session 3: Chapter 11: Introduction to Concurrency Programming (cont.)
Topic: Offline; Teaching type: CLO5; LO: TU
ITU: https://learn.microsoft.com/en-us/dotnet/standard/threading/threads-and-threading
Download: - Read the slide, related reference documents
- Do exercises
- Self practice

Session 4: Chapter 11: Introduction to Concurrency Programming (cont.)
Topic: Offline; Teaching type: CLO5; LO: TU
ITU: https://learn.microsoft.com/en-us/dotnet/standard/threading/the-managed-thread-pool
Download: - Read the slide, related reference documents
- Do exercises
- Self practice
Session 1: Project Evaluation
Topic: Offline; Teaching type: CLO1, CLO2, CLO3, CLO4, CLO5, CLO6; LO: U
ITU: 
Download: Group Presentation

Session 2: Project Evaluation
Topic: Offline; Teaching type: CLO1, CLO2, CLO3, CLO4, CLO5, CLO6; LO: U
ITU: 
Download: Group Presentation

Session 3: Project Evaluation
Topic: Offline; Teaching type: CLO1, CLO2, CLO3, CLO4, CLO5, CLO6; LO: U
ITU: 
Download: Group Presentation

Session 4: Project Evaluation
Topic: Offline; Teaching type: CLO1, CLO2, CLO3, CLO4, CLO5, CLO6; LO: U
ITU: 
Download: Group Presentation
Session 1: Project Evaluation
Topic: Offline; Teaching type: CLO1, CLO2, CLO3, CLO4, CLO5, CLO6; LO: U
ITU: 
Download: Group Presentation

Session 2: Project Evaluation
Topic: Offline; Teaching type: CLO1, CLO2, CLO3, CLO4, CLO5, CLO6; LO: U
ITU: 
Download: Group Presentation