1. Trang chủ
  2. » Công Nghệ Thông Tin

giáo trình .net framework 3.5

63 1,3K 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 63
Dung lượng 399 KB

Nội dung

Đối với phần Web Services, Web Forms và Window Forms, giáo viên giải thíchcho sinh viên các khái niệm Web Services, Web Forms, Window Forms, phân tích một số đặc điểm lập trình của từng

Trang 1

TÀI LIỆU HƯỚNG DẪN GIẢNG DẠY

DÀNH CHO GIẢNG VIÊN

Trang 2

Thông tin và mục tiêu khóa học

Bộ giáo trình này được biên soạn dựa trên những tài liệu mới nhất về NETframework 3.5 nhằm cung cấp cho sinh viên công nghệ thông tin những kiến thức cơbản nhất về NET framework Nội dung bao gồm kiến trúc NET framework, sự pháttriển của NET framework qua các phiên bản, kiến trúc phiên bản 3.5, các nội dung cơbản trong phiên bản 3.5 Đặc biệt, giáo trình đi sâu vào Language Integrated Query

(LINQ), Windows Presentation Foundation (WPF) là các công nghệ mới rất tiêu biểu

của Microsoft NET nhằm cung cấp cho sinh viên những kĩ năng cơ bản nhất để pháttriển các ứng dụng trên nền NET framework 3.5

Những mục tiêu chính mà giáo trình cố gắng đạt được:

1 Cung cấp cho sinh viên một cái nhìn tổng quan về kiến trúc NET framework,nắm được sự phát triển qua từng phiên bản của NET framework, so sánh cácphiên bản

2 Giúp sinh viên nắm được một số nội dung cơ bản trong NET framework 3.5,

sự khác biệt của nó so với các phiên bản trước

3 Hướng dẫn cho sinh viên các kỹ thuật lập trình cơ bản với 2 công nghệ quantrọng là LINQ và WPF

Vì được bố cục trong 45 tiết dạy nên giáo trình không thể đi sâu vào chi tiết từng nộidung trong NET framework mà chỉ dừng ở mức giới thiệu các khái niệm cơ bản nhất.Đối với phiên bản 3.5, giáo trình xoáy sâu vào 2 nội dung cơ bản là LINQ và WPF làcác công nghệ thường gặp nhất đối với người lập trình trên NET framework 3.5

Bộ giáo trình được biên soạn và tổng hợp bao gồm: slide bài giảng, bài exercise, bàithực hành lab và các Video tự học Ở đây, toàn bộ giáo trình đều được trình bày bằngtiếng Anh, nhằm mục đích nâng cao khả năng tiếp thu và phát triển các kỹ năng học

và nghiên cứu bằng tiếng Anh – các kỹ năng vô cùng quan trọng đối với người họccông nghệ thông tin

Giáo trình có thể dùng tham khảo cho các ngành Công nghệ thông tin, điện tử, viễnthông

Trang 3

Phương pháp giảng dạy

Khóa học này yêu cầu sinh viên phải được thực hành nhiều bằng các ví dụ, projectthực tế để có khả năng làm thật thay vì chỉ nghe lý thuyết suông Giáo viên nên tổchức các buổi học lý thuyết và buổi học làm lab đan xen nhau, lý thuyết mà sinh viênmới học có thể được thể hiện ngay bằng các bài thực hành Điều này giúp cho sinhviên nhớ và hiểu kỹ hơn những gì giáo viên truyền đạt, và cũng tăng sự hứng thútrong việc học

Một ví dụ về việc tổ chức các buổi học đã được áp dụng:

Tổ chức tuần 3 tiết học lý thuyết và 1 buổi thực hành:

 Lý thuyết

- Số lượng tiết: 3 ( có thể thay đổi)

- Thời gian giảng slide: từ 2 đến 2.5 tiết tùy vào chương và điều kiện

- Thời gian còn lại cho sinh viên nghe các Training Video và tiến hành thảoluận

 Thực hành

- Sinh viên thực hành các bài lab của giáo trình

- Giáo viên tìm một ví dụ, tốt nhất là một project thực tế để làm thông quacác bài lab, hướng dẫn từng bước để sinh viên hiểu được quá trình làmthực tế

Kết thúc khóa học, giáo viên nên yêu cầu sinh viên thực hiện những project tổng thểbằng việc đưa ra danh sách các mẫu project để sinh viên lựa chọn, hoặc sinh viên tựđăng ký Việc yêu cầu này có thể được thực hiện vào giữa học kỳ hoặc vào cuối kỳ

Để rèn luyện kỹ năng làm việc nhóm cho sinh viên, giáo viên có thể yêu cầu lớp phânchia thành các nhóm sinh viên để làm các project Tùy vào độ lớn của project mà quyđịnh số lượng thành viên của một nhóm, số lượng có thể giao động từ 2 đến 4 sinhviên Khi bắt đầu thực hiện và trong quá trình thực hiện project, giáo viên cần có mặt

để tham gia cùng sinh viên, hướng dẫn để sinh viên đi đúng hướng và hiểu vấn đềmột cách chính xác

Trang 4

Đề cương môn học

Giáo trình được biên soạn để giảng dạy trong 15 tuần, với thời lượng 3 tiếng mộttuần cho phần lý thuyết và một buổi thực hành Lab Trong thời gian học lý thuyết, việcđan xen cho sinh viên nghe các bài Trainning Video có thể tốn khá nhiều thời gian Do

đó giáo viên nên cân đối việc chia thời gian và chọn lọc các bài Video để cho sinhviên nghe và thảo luận trên lớp, còn những phần khác có thể giao cho sinh viên vềnhà tự nghe rồi trả lời câu hỏi của giáo viên để buổi sau lên lớp trao đổi

Đề cương:

.NET Overview

Thời gian: 1 buổi

Bài giảng : Chapter 1- NET Overview

Nội dung :

1.1 Introduction1.2 Overview of the Net flatform1.3 Overview of the Net FrameworkSummary

Bài tập : Exercise 1

Common Language Runtime

Thời gian: 1 buổi

Bài giảng : Chapter 2: Common Language runtime

Nội dung :

2.1 Introduction2.2 CLR Executables2.3 CLR in Net framework 3.5Summary

Bài tập : Exercise 2

Bài Lab : Lab 2

Trang 5

.NET framework 3.5

Thời gian: 1 buổi

Bài giảng : Chapter 3: NET framework 3.5

Nội dung :

3.1 Previous Versions3.2 Net framework 3.5Summary

Microsoft Language Integrated Query

Thời gian: 4 buổi

Bài giảng : Chapter 4: Microsoft Language Integrated Query

Nội dung :

4.1 Introduction LINQ4.2 C# and VB.NET language enhancements4.3 LINQ building blocks

4.4 Querying objects in memory 4.5 Querying relational data4.6 Manipulating XML4.7 Extending LINQ4.8 A look to futureSummary

Bài tập : Exercise 4

Bài Lab : Lab 4

Video training

Windows Presentation Foundation

Thời gian: 4 buổi

Bài giảng: Chapter 5: Windows Presentation Foundation

Nội dung :

5.1 WPF Introduction5.2 XAML

5.3 Programming WPF Applications 5.4 Building Your First WPF Application

Trang 6

5.5 Exploring the Layout Controls5.6 Working with XAML Controls5.7 Working with Graphics, Media and Animations5.8 New in WPF 3.5

5.9 Future Directions of WPFSummaryBài tập : Exercise 5

Bài Lab : Lab 5

Video training

Windows Communication Foundation

Thời gian: 2 buổi

Bài giảng: Chapter 6: Windows Communication Foundation

Nội dung :

6.1 Introduction6.2 Programming Model6.3 New in NET framework 3.56.4 WCF Web Programming ModelSummary

Bài tập : Exercise 6

Bài Lab : Lab 6

Video training

ASP.NET AJAX

Thời gian: 2 buổi

Bài giảng: Chapter 7: ASP.NET AJAX

Nội dung :

7.1 Introducing ASP.NET AJAX7.2 Microsoft AJAX Library7.3 Working with Web Services7.4 ASP.NET AJAX Control Toolkit7.5 Building Web Application SummarySummary

Bài tập : Exercise 7

Bài Lab : Lab 7

Video training

Trang 7

C HƯƠNG 1

.NET overview

Chương này cung cấp cho sinh viên một cái nhìn tổng quan về kiến trúc NET flatform và Net framework Sau đó sẽ mô tả từng thành phần quan trọng trong kiến trúc Net framework nhằm giúp cho sinh viên có thể hình dung trong đầu các bộ phận cấu thành .Net framework để có thể dễ dàng hơn trong lập trình với công nghệ Microsoft Net.

- Overview of the Net flatform

 NET flatform architecture

 NET flatform main components

- Overview of the NET framework

 NET framework design goals

 Architecture

 Components

 Common language runtime

 Framework base classes

 Web Services, Web Forms, Windows Forms

 Language

Đây là chương mở đầu, giới thiệu một cách tổng quát về Net framework Với giáotrình Net framework 3.5, không thể tập trung vào chi tiết từng thành phần cấu trúccủa Net framework mà chỉ có thể cung cấp cho sinh viên những khái niệm cơ bảnnhất để có thể dễ dàng hình dung khi học các nội dung cơ bản trong phiên bản Netframework 3.5

Với mục đích gieo vào đầu sinh viên những hình dung cơ bản nhất về Netframework, giáo viên nên dẫn dắt sinh viên bắt đầu từ việc giới thiệu sự thành côngcủa công ty Microsoft với công nghệ Net để gợi trí tò mò, kích thích sinh viên tìm hiểucông nghệ Net Giáo viên giới thiệu tổng quan về Net flatform với các nhóm sảnphẩm chủ yếu, vai trò và chức năng của từng nhóm sản phẩm Giáo viên nên demotrực tiếp việc lập trình với Net flatform cho sinh viên thấy hứng thú hơn và các sinhviên chưa một lần tiếp xúc với công nghệ Net dễ dàng có được những ý niệm về lậptrình net

Sau khi giới thiệu Net flatform giáo viên tập trung vào Net framework là nội dung

Trang 8

quan trọng nhất

Đối với phần Common language runtime (CLR) cần nhấn mạnh đây là thành phần

quan trọng nhất trong Net framework Để sinh viên có thể dễ dàng hình dung hơn, cóthể trình bày về sự so sánh CLR với các thành phần tương ứng với nó trong các ngônngữ khác, ví dụ như Java Virtual Machine (JVM) trong Java

Đối với các thành phần khác, giáo viên nên chỉ rõ cho sinh viên xem trong VisualStudio nhằm giúp cho sinh viên dễ hiểu và hứng thú hơn

Phần Framework base classes, nên chỉ ra cho sinh viên thấy một số namespace cơbản như System, System.Collections, System.IO Có thể chỉ cho sinh viên thấy nộidung các namespace này trong Visual Studio

Phần Data and XML, có thể có nhiều sinh viên chưa được làm quen với các khái niệm

về XML, giáo viên có thể hướng dẫn qua khái niệm XML, các thành phần, các xử lýtrong XML từ đó hướng dẫn sinh viên các namespace xử lý XML Tương tự đối vớiphần Data Giáo viên giải thích cho sinh viên khái niệm ADO.Net, có thể lấy ví dụ cụthể để minh họa cho sinh viên

Đối với phần Web Services, Web Forms và Window Forms, giáo viên giải thíchcho sinh viên các khái niệm Web Services, Web Forms, Window Forms, phân tích một

số đặc điểm lập trình của từng loại và hướng dẫn sinh viên sử dụng các hỗ trợ của

.Net framework Giáo viên hướng dẫn sinh viên thấy rõ Framework base classes và Web Services, Web Forms, Windows Forms trong một số ví dụ đơn giản lập trình với

Web Services, Web Forms và Window Forms

Đối với các sinh viên tham gia khóa học, có thể có những sinh viên đã nắm đượccác khái niệm cơ bản về Net framework nhưng cũng có thể có những sinh viên chưa

hề có ý niệm gì về Net framework (có thể là những sinh viên chỉ quen lập trình vớiJava hay thậm chí là Pascal, C, C++ ) Giáo viên có thể thực hiện bài giảng bằngcách đặt câu hỏi cho những sinh viên đã biết trả lời, làm cho những sinh viên nàyhứng thú hơn Việc nghe những câu trả lời từ những bạn đã sử dụng Net có thểkhiến các sinh viên còn lại dễ dàng tiếp thu bài giảng hơn

Thực hành:

Bài tập về nhà:

Exercise 1

Trang 9

C HƯƠNG 2

Common language runtime

Chương này trình bày thành phần trọng tâm, được ví như trái tim của Net framework

là Common language runtime (CLR) Sinh viên sẽ có được một hình dung cụ thể về cách tổ chức, thực thi code trong Net Không chỉ đơn thuần biết đến những dòng code trên những ngôn ngữ như C#, VB, VC++ nữa mà sinh viên sẽ nhìn thấy những gì diễn

ra sau khi bấm nút run để dịch và chạy thử chương trình.

Kế hoạch giảng

Trong chương trước sinh viên đã được tìm hiểu một cách tổng quan nhất về Netframework Đến chương này, sinh viên sẽ được tìm hiểu thành phần quan trọng nhất,

được ví như trái tim của Net framework là Common language runtime (CLR).

Nội dung chính cần truyền tải đến sinh viên:

- Khái niệm CLR, vai trò và chức năng của nó Nhấn mạnh tầm quan trọng của CLRtrong Net framework

- Sự thực thi của CLR:

 Các đoạn mã viết bằng C#, VC++ hay VB sẽ được các trình biên dịch dịch radạng có thể thực thi được trong windows là exe hay dll tuân theo định dạngPE

 Trình bày cấu trúc định dạng file PE nhấn mạnh 2 thành phần là metadata

và IL (code)

 Các khái niệm cơ bản về metadata và IL

 Sau khi tìm hiểu về metadata và IL, đưa ra cho sinh viên những khái niệm

cơ bản về Common Type System và Common Language Specification.

 Sơ đồ quá trình thực thi của CLR

 Mô tả các thành phần chính trong sơ đồ thực thi:

 Class Loader

 JIT Compiler

- CLR trong phiên bản Net framework 3.5

Đây là phần tương đối khó hiểu nên khi giảng bài, giáo viên nên kết hợp với demo ví

dụ trên Visual Studio Có thể lấy ví dụ trực tiếp trên một ngôn ngữ và yêu cầu sinhviên tự tìm hiểu trên các ngôn ngữ khác (Có thể làm bài tập về nhà)

Giáo viên nên giảng rõ cho sinh viên về phần common type system vì đây cũng là một

phần tương đối quan trọng đối với sinh viên khi lập trình Các nội dung cần nhắc đến

Trang 10

trong phần Common Type System:

 Value types

 Reference types

 Boxing and unboxing

 Classes, properties, indexers

Trang 11

C HƯƠNG 3

.Net framework 3.5

Chương này trình bày các đặc điểm cơ bản của các phiên bản Net framework trước đây (từ 1.0 đến 3.0), sau đó đưa ra sự so sánh các phiên bản này với nhau và với phiên bản 3.5 Cuối chương sẽ mô tả tổng quát các thành phần trong phiên bản .Net framework 3.5.

Kế hoạch giảng

Bài giảng sẽ lần lượt đi qua các phiên bản của Net framework từ 1.0 cho đến 3.5.Giáo viên nên tách bài giảng thành 2 phần Phần đầu là các phiên bản trước của Netframework (từ 1.0 đến 3.0) và phần sau là phiên bản 3.5

 Các phiên bản trước của Net framework:

Giáo viên mô tả ngắn gọn từng phiên bản Chú ý so sánh các cải tiến của phiên bảnsau so với phiên bản trước

Đối với phiên bản 3.0: Nhấn mạnh đến các nội dung:

- Windows Presentation Foundation (WPF)

- Windows Communication Foundation (WCF)

- Windows Workflow Foundation (WF)

Đặc biệt chú trọng vào các nội dung:

- LINQ

- ASP.NET AJAX

Trong nội dung LINQ nên mô tả lại một số thao tác thông thường khi làm việc vớiCSDL, XML rồi nói đến những ưu điểm của LINQ để sinh viên có thể thấy rõ nhữngthuận tiện khi sử dụng công nghệ mới này

Đối với phần ASP.NET AJAX có thể có những sinh viên chưa được làm quen với webhoặc có những sinh viên đã làm việc với môi trường web nhưng lại chưa được tiếpxúc với công nghệ AJAX, giáo viên nên giới thiệu sơ qua về môi trường web cũngnhư công nghệ AJAX, những điểm hay của công nghệ này Sau đó giới thiệuASP.NET AJAX mà Net framework 3.5 hỗ trợ Đặc biệt nhấn mạnh đến những điểmhay của công nghệ này để sinh viên có thể nắm được là tại sao nên sử dụngASP.NET AJAX mà không phải là một công nghệ khác

Trang 12

Đối với các điểm mới khác có thể ra thành bài tập về nhà để sinh viên tự học hỏi, tìmtòi.

Thực hành:

Bài tập về nhà:

Trang 13

C HƯƠNG 4

Language INtegrated Query

Chương này trình bày một công nghệ mới trong .Net framework 3.5 Language INtegrated Query (LINQ) LINQ cho phép tạo ra các phép toán truy vấn giống như các câu lệnh SQL trong các lớp của các ngôn ngữ NET như VB hay C# LINQ hỗ trợ truy vấn trong các in-memory collections như arrays, list, XML, DataSet và cơ sở dữ liệu quan hệ Tuy nhiên LINQ có thể mở rộng truy vấn từ rất nhiều nguồn dữ liệu khác nhau Chương này sẽ giới thiệu cho sinh viên một cái nhìn tổng quát về LINQ, tại sao nên sử dụng LINQ, hướng dẫn sinh viên sử dụng LINQ truy vấn với Object, Database

và XML Sau khi hướng dẫn lý thuyết cơ bản sẽ đặt ra cho sinh viên một số vấn đề nâng cao để giúp sinh viên hiểu sâu hơn về nội dung đã học

Kế hoạch giảng

Đây là chương chính trong giáo trình với nội dung khá dài, giáo viên nên tách thành 4phần Mỗi phần sẽ giảng trong thời gian 3 tiết

Phần 1 Giới thiệu LINQ (part 1 đến part 3 trong giáo trình)

Các nội dung chính cần truyền tải đến sinh viên:

- Giới thiệu về LINQ

 LINQ là gì?

 Tổng quan về LINQ: Nhấn mạnh đến 2 khía cạnh bao gồm:

 LINQ như một tập công cụ (toolset) để truy vấn đến các nguồn cơ sở dữliệu LINQ cung cấp LINQ to Object, LINQ to SQL và LINQ to XML

 LINQ như sự mở rộng ngôn ngữ: Cần nhấn mạnh, LINQ không phải là mộtngôn ngữ mới mà được hiểu như là sự mở rộng của các ngôn ngữ đã có

Nó được tích hợp vào trong các ngôn ngữ như C# hay VB

 Các ưu điểm của LINQ: Cần nhấn mạnh việc nó xóa tan khoảng cách giữaObject, cơ sở dữ liệu quan hệ hay XML

 Tại sao chúng ta nên sử dụng LINQ?

- Các mở rộng trên các ngôn ngữ C# và VB: Trong phần này giáo viên nên luôn đưa

ra sự so sánh giữa hai ngôn ngữ C# và VB để sinh viên có thể nhìn thấy rõ việc

mở rộng với LINQ trên hai ngôn ngữ thông dụng này có gì giống và khác nhau.Giáo viên cần làm thế nào cho sinh viên nắm được cần biết những gì khi học LINQvới một ngôn ngữ nào đó Khi ấy sinh viên có thể dễ dàng học với bất kể ngônngữ nào Ở đây các nội dung chính cần nắm được khi học cách sử dụng LINQ vớimột ngôn ngữ là:

 Implicitly typed local variables

 Object initializers

 Lambda expressions

Trang 14

 LINQ DLLs and namespaces

Trong phần này giáo viên cần hướng dẫn cho sinh viên các phép toán truy vấn thôngdụng, ý nghĩa của nó Nếu sinh viên đã học qua SQL thì phần này có thể lướt nhanhhơn, trong trường hợp sinh viên chưa nắm rõ SQL thì giáo viên cần hướng dẫn kỹ đểsinh viên có thể làm việc được với các phép toán này Với nguyên liệu là các phéptoán truy vấn, giáo viên hướng dẫn sinh viên cách thức xây dựng một expression Trong phần LINQ dlls và các namespaces, giáo viên hướng dẫn cho sinh viên khimuốn tạo một ứng dụng có sử dụng LINQ trong Visual Studio thì cần ánh xạ đến cácdll hay namespace nào

Trong phần giới thiệu này, để sinh viên hình thành ý niệm về LINQ, giáo viên nêndemo cho sinh viên một số ví dụ nhỏ về sử dụng LINQ (có thể demo trên 3 ví dụ mởđầu về LINQ to object, LINQ to SQL và LINQ to XML) trên Visual Studio hoặc bằngvideo

Phần 2 LINQ to Object (part 4 trong giáo trình)

Bắt đầu từ phần 2, nội dung giảng sẽ mang tính thực hành nhiều hơn Những sinhviên đã sử dụng qua các ngôn ngữ Net để phát triển ứng dụng có thể nắm bắt nộidung bài giảng dễ hơn các sinh viên khác Trong quá trình giảng bài giáo viên có thểđưa ra vấn đề, hỏi những sinh viên đã biết Net các giải pháp đã được thực thi trước

đó, chỉ ra các hạn chế của nó để từ đó đưa ra giải pháp mới với LINQ Ví dụ, có thểđặt câu hỏi: với các công nghệ trước đây, có thể truy vấn đến các object được không?Nếu có thì làm thế nào?

Các nội dung chính cần truyền tải đến sinh viên:

- Có thể dùng LINQ để truy vấn những gì? Cần nhấn mạnh cho sinh viên là takhông thể dùng LINQ để truy vấn được mọi thứ ( Điều kiện để một object có thểđược truy vấn bởi LINQ là: Nó thuộc kiểu collections và implementsIEnumerable<T> interface.)

- Một số collection có thể được truy vấn nhờ LINQ:

Trang 15

nhắc lại việc tạo các ứng dụng web và windows để sinh viên có thể hiểu thêmđược phần này Đồng thời giáo viên nên demo cho sinh viên trên Visual Studiohoặc bằng video.

- Một số phép toán dùng cho truy vấn:

 Sử dụng LINQ với nongeneric collections

 Grouping by multiple criteria

 Dynamic queries

Với thời lượng của tiết học có hạn nên giáo viên có thể chỉ cần đặt ra vấn đề, gợi ýhướng giải quyết và cho sinh viên tự tìm hiểu Nếu còn thời gian nên cho sinh viênthảo luận

Đây là phần mang tính thực hành nhiều nên xen kẽ bài giảng giáo viên nên cho sinhviên xem nhiều demo để tăng tính trực quan

Phần 3 LINQ to SQL (part 5 trong giáo trình)

Các nội dung chính cần truyền tải đến sinh viên:

- Tại sao nên sử dụng LINQ to SQL thay vì ADO.net: Giáo viên cần nhấn mạnh cáclợi thế của LINQ so với ADO.net ( như là giảm bớt xử lý cho hệ thống, không cầnphải viết lại plumbing code ) để sinh viên thấy được tại sao nên sử dụng LINQ toSQL Giáo viên nên lấy một ví dụ cụ thể, phân tích cách dùng ADO.net để thấy yếuđiểm của nó để sinh viên cảm thấy hứng thú đối với công nghệ mới sắp học Cóthể có một số sinh viên đã nắm được ADO.net, giáo viên của thể hỏi ý kiến của họ

để tăng tính tương tác cho bài giảng

- Jump into LINQ to SQL: Đây là phần hướng dẫn cách sử dụng LINQ to SQL quamột ví dụ cụ thể Giáo viên hướng dẫn sinh viên từ lần lượt qua các vấn đề:

 Đặt vấn đề: Giáo viên nêu bài toán – Cần liệt kê danh sách các quyển sách(Book) có giá <$30 và group chúng bằng tiêu đề (subject)

 Tạo Cơ sở dữ liệu: Ở đây chỉ có một bảng duy nhất là Book

 Tạo lập ánh xạ cơ sở dữ liệu – object (Setting up the object mapping)

 Tạo lập DataContext (chú ý đến phần chuỗi kết nối, có thể có một số sinh viênchưa làm quen với cơ sở dữ liệu, giáo viên có thể hướng dẫn kĩ hơn)

- Đọc dữ liệu từ Cơ sở dữ liệu với LINQ to SQL

Phần này giáo viên có thể demo cho sinh viên qua Visual Studio hay video để sinhviên thấy rõ hơn

Trang 16

- Refining our queries: Hướng dẫn sinh viên biến đổi các câu truy vấn bằng cách sửdụng thêm một số tiến trình xử lý bên phía server Các nội dung có thể giới thiệugồm có:

 Loading details immediately

Đây là phần đặt vấn đề sâu hơn với LINQ to SQL để sinh viên suy nghĩ và tìm tòi Dothời gian trên lớp có hạn, giáo viên có thể đặt ra vấn đề cho sinh viên suy nghĩ vàthảo luận vào buổi sau Vì đây là phần đòi hỏi sinh viên phải được thực hành thực tếrồi mới có thể nắm được rõ ràng nên giáo viên nên sử dụng làm câu hỏi về nhà

- Updating data:

 Updating values and committing them to the database

 Adding and removing items from a table

Tương tự như phần đọc dữ liệu từ cơ sở dữ liệu, phần này cũng hướng dẫn một thaotác xử lý với Cơ sở dữ liệu nên giáo viên có thể tiến hành demo bằng visual studiohay video để tăng tính hiệu quả của bài giảng

- Mapping objects to relational data:

Phần này hướng dẫn sinh viên một số cách để ánh xạ object và dữ liệu quan hệ Giáoviên có thể đưa ra cho sinh viên một số lựa chọn:

 Attributes declared inline with your classes

 External XML files

 The command-line SqlMetal tool

 The graphical LINQ to SQL Designer tool

Các lựa chọn này cũng có thể đưa ra làm bài tập về nhà cho sinh viên tìm hiểu Nếucòn nhiều thời gian, giáo viên nên hướng dẫn sinh viên một cách cụ thể ít nhất mộtlựa chọn

- Advanced database capabilities:

Phần này sẽ hướng dẫn sinh viên một số kĩ năng nâng cao với LINQ to SQL và Cơ

sở dữ liệu

Các nội dung cần truyền đạt bao gồm:

 SQL pass-through: Returning objects from SQL queries

 Dynamic SQL pass-through

 Dynamic SQL pass-through with parameters

 Working with stored procedures

 Using a stored procedure to return results

 Returning a scalar value

- Một số nội dung mở rộng khác:

Trang 17

Kết thúc bài giảng, giáo viên nên gợi ý cho sinh viên một số hướng mở rộng, cách sửdụng nâng cao với LINQ to SQL để sinh viên có thể tự tìm tòi nghiên cứu, tăng thêm

sự hứng thú đối với việc học và với các công nghệ mới

Một số hướng có thể gợi ý như:

- Handling concurrency exceptions

- Resolving conflicts using transactions

- Working with User-defined functions

-

Phần 4

LINQ to XML (part 6 trong giáo trình)

Extending LINQ (part 7 trong giáo trình)

A look to future (part 8 trong giáo trình)

Các nội dung chính cần truyền tải đến sinh viên:

LINQ to XML

- Why do we need another XML programming API?

Trong phần này, giáo viên giới thiệu về XML, các API lập trình hiện có với XML

Một số sinh viên có thể chưa được tiếp xúc nhiều với XML Giáo viên nên giải thíchcặn kẽ cách tổ chức của một file định dạng XML Định dạng XML có thể đem lạinhững lợi ích gì? Tại sao XML lại được sử dụng rộng rãi? Tất cả những giải thích này

sẽ giúp sinh viên hiểu rõ hơn tầm quan trọng của LINQ to XML

Có thể lựa chọn một ví dụ cụ thể để giúp sinh viên hiểu tại sao nên sử dụng LINQ toXML Ví dụ, có thể lựa chọn so sánh cách xử lý XML với DOM và LINQ to XML

- LINQ to XML class hierarchy

Giới thiệu với sinh viên các lớp chính được định nghĩa trong LINQ to XML API Giáoviên có thể nhấn mạnh vào một số lớp chính:

- Working with XML using LINQ

Sau khi hướng dẫn sinh viên tìm hiểu một số lớp trong LINQ to XML API, giáo viênhướng dẫn sinh viên sử dụng XML to LINQ trong một số các thao tác cơ bản:

Trang 18

 Saving XML

Đây là một số thao tác cơ bản thường gặp khi xây dựng các ứng dụng xử lý với XML

Để bài giảng thêm sinh động, giáo viên có thể lồng ghép các thao tác này trong một ví

dụ cụ thể, có thể demo bằng visual studio hoặc video

- Query XML with LINQ to XML

Như đã nhắc đến ở trên, LINQ dùng để truy vấn các nguồn dữ liệu và LINQ to XMLchính là để thực hiện mục đích truy vấn đến các dữ liệu ở định dạng XML Trong phầnnày, cần truyền đạt đến sinh viên 2 nội dung chính là:

 LINQ to XML axis methods: Giới thiệu cho sinh viên một số phương thức cungcấp cho chúng ta khả năng tìm kiếm elements, attributes, và nodes mà chúng

ta muốn làm việc trong XML Các phương thức cơ bản gồm có:

 Projecting with Select

 Filtering with Where

 Ordering and grouping

 Querying LINQ to XML objects with XPath: Giới thiệu với sinh viên cách sửdụng XPath để truy vấn các đối tượng XML XPath là một khái niệm mà có thểrất nhiều sinh viên chưa được tiếp xúc Giáo viên nên giới thiệu qua khái niệmXPath là gì, dùng để làm gì và có lợi ích gì Từ đó giáo viên lấy ví dụ hướngdẫn cách sử dụng XPath để truy vấn các đối tượng XML cho sinh viên XPath

là một vấn đề khá hay, giáo viên có thể sử dụng như bài tập về nhà để sinhviên tìm hiểu, nghiên cứu

Extending LINQ

Sau khi tìm hiểu hết các nội dung cơ bản của LINQ, phần này sẽ đưa ra một số vấn

đề mở rộng Giáo viên có thể đặt ra một số vấn đề:

- Suggested use cases for LINQ’s extensibility

Một số trường hợp sử dụng mở rộng của LINQ Ở đây có thể kể một số trường hợp:

Querying a custom data source

Querying web services

Allowing the developers who use your product to take advantage of LINQ

Trang 19

Giáo viên có thể phân tích tính khả thi và gợi ý ý tưởng thực hiện cho sinh viên đểsinh viên có thể tự tìm tòi, nghiên cứu Có thể lấy một ví dụ cụ thể để trình bày chosinh viên: Example - Querying a web service: LINQ to Amazon.

- Creating custom query operators

A look to future

Đây là phần trình bày một số hướng phát triển trong tương lai của LINQ nhằm trìnhbày cho sinh viên tiềm năng phát triển của LINQ đồng thời có thể giúp gợi ý hướngnghiên cứu tiếp theo cho những sinh viên có niềm đam mê

Một số vấn đề có thể trình bày trong phần này gồm có:

- LINQ to XSD, the typed LINQ to XML

- PLINQ: LINQ meets parallel computing

- LINQ to Entities, a LINQ interface for the ADO.NET Entity Framework

Thực hành:

Lab 4

Bài tập về nhà:

Exercise 4

Trang 20

C HƯƠNG 5

Windows Presentation Foundation

Chương này trình bày một công nghệ mới đã xuất hiện từ Net framework 3.0 nhưng vẫn chiếm một vị trí quan trọng trong Net framework 3.5 Windows Presentation Foundation (WPF) đưa ra một hướng tiếp cận thiết kế, xây dựng giao diện tương tác người dùng mới sử dụng XAML Đây là một công nghệ rất mạnh, có khả năng tương tác tốt với media, animation và đồ hoạ 2D/3D Chương này sẽ lần lượt giới thiệu cho sinh viên tổng quan về WPF, XAML, giới thiệu cách lập trình với WPF, các control, layout, đồ họa, animation, 2D/3D

Kế hoạch giảng

Đây là chương chính trong giáo trình với nội dung khá dài, giáo viên nên tách thành 4phần Mỗi phần sẽ giảng trong thời gian 3 tiết

Phần 1

WPF Introduction (part 1 trong giáo trình)

XAML (part 2 trong giáo trình)

WPF Introduction:

Đây là phần đầu tiên, mang tính chất giới thiệu sơ qua với sinh viên về WPF Trongphần này mục tiêu đặt ra cho giáo viên là phải giúp sinh viên nắm được WPF là cáigì? Dùng WPF để làm gì? Tại sao nên sử dụng WPF chứ không phải là một côngnghệ khác? Đặc trưng của ứng dụng WPF khác với các ứng dụng trước đó là gì?

Các nội dung chính cần truyền tải đến sinh viên:

- Presentation Layer Architecture: From Yesterday to Tomorrow

Phần này trình bày về lịch sử kiến trúc tầng trình diễn của các ứng dụng từ trước đếnnay và các xu hướng tiếp theo Điểm mấu chốt giáo viên cần trình bày với sinh viênlà: Với kiến trúc Client – Server phổ biến hiện nay, WPF là một giải pháp mới, hấpdẫn, nên được xem xét trong việc xây dựng giao diện tương tác người dùng trênClient

- Windows Presentation Foundation (WPF)

 WPF Features and Machinery

 WPF – Architecture

 Tools of the Trade

Trong phần này giáo viên giới thiệu cho sinh viên kiến trúc WPF, các đặc điểm của nó.Cần nhấn mạnh đến các nội dung quan trọng sẽ được học trong các phần tiếp theo:XAML, control, layout, databinding, media

Trang 21

Trong phần tools, giáo viên giới thiệu với sinh viên các công cụ cần thiết để có thể xâydựng ứng dụng WPF.

Để tăng thêm tính hấp dẫn của công nghệ mới đối với sinh viên, giáo viên có thể chosinh viên xem một số ứng dụng làm theo công nghệ WPF đã có Ví dụ:

http://www.microsoft.com/max/

XAML:

Trước khi học kĩ hơn về WPF, sinh viên nên học một nội dung về XAML Giáo viên cóthể giới thiệu với sinh viên lập trình ứng dụng với WPF sẽ gắn chặt với XAML như thếnào để sinh viên có thể hiểu tại sao cần phải nắm được XAML

Các nội dung cần truyền tải đến sinh viên:

- What is XAML?

- Why do we need XAML?

- Working with XAML:

 XAML Code Generation

Giáo viên cần hướng dẫn sinh viên hiểu khái niệm XAML và cách thực hiện một sốthao tác cơ bản với XAML Trong phần hướng dẫn cách làm việc với XAML giáo viênnên demo trên Visual Studio hoặc bằng video

Kết thúc phần này, mục tiêu đặt ra là sinh viên có thể cảm thấy không lạ lẫm vớiXAML Khi chuyển đến các phần lập trình với WPF sinh viên sẽ không bị bỡ ngỡ và

có thể nhanh chóng tiếp thu bài giảng

Phần 2

Programming WPF Applications (part 3 trong giáo trình)

Building Your First WPF Application (part 4 trong giáo trình)

Sau khi học phần giới thiệu và XAML, phần này sẽ hướng dẫn sinh viên những bước

cơ bản đầu tiên lập trình với WPF

Các nội dung cần truyền tải đến sinh viên:

- What Are WPF Applications?

Phần này giới thiệu cho sinh viên về các ứng dụng WPF Một điểm cần nhấn mạnh ởđây là thay vì các windows forms, ứng dụng WPF là một tập các trang XAML Trong

Trang 22

công nghệ WPF, các trang XAML được thay thế cho các windows form Ta có thể vừa

sử dụng các control kéo thả vừa có thể chỉnh sửa mã XAML

 XAML applications can run in one of two ways

Trình bày các cách chạy ứng dụng XAML Có 2 cách là:

 XAML browser applications

 Installed applications

- Windows Presentation Foundation Architecture

 Giới thiệu 3 thành phần trong kiến trúc của WPF là:

 Presentation Core

 Presentation Framework

 Milcore

 The major classes that WPF uses: Giáo viên giới thiệu với sinh viên một số lớp

cơ bản mà WPF sử dụng Có thể chỉ ra một số lớp như sau:

- How to Program WPF Applications

Phần này hướng dẫn cho sinh viên cách lập trình với điều khiển ứng dụng

 Using the Application Object

Application Object là đối tượng quan trọng, quản lý ứng dụng của bạn như một tậphợp các trang XAML

 Accessing Properties: Giáo viên hướng dẫn sinh viên cách truy cập vào cácthành phần thuộc tính của ứng dụng qua Application Object

 Handling Events: Giáo viên hướng dẫn sinh viên cách “bắt” các sự kiện liênquan đến ứng dụng Ví dụ:

 Using the Window Object

 Using the NavigationWindow Object

 Using the Page Object

Trang 23

Trình bày cho sinh viên cách sử dụng một số đối tượng khác trong WindowManagement.

- Building Your First WPF Application

Phần này giáo viên demo cho sinh viên cách tạo một ứng dụng WPF với VisualStudio Giáo viên cần giới thiệu cho sinh viên khi nhìn thấy trực quan từng bước khitạo một ứng dụng WPF Sinh viên cần nắm được các file được tạo ra khi tạo một ứngdụng WPF

Phần 3

Exploring the Layout Controls (part 5 trong giáo trình)

Working with XAML Controls (part 6 trong giáo trình)

Các nội dung cần truyền đạt cho sinh viên:

Exploring the Layout Controls

Bản chất của WPF là tạo giao diện tương tác người dùng nên layout tool là một phầnrất quan trọng

Một số kiểu layout cơ bản:

Working with XAML Controls

Một phần rất quan trọng nữa trong phần thiết kế giao diện là các control Ở đây là cácXAML control Giáo viên cần hướng dẫn cho sinh viên cách sử dụng một số control

cơ bản thường gặp như là:

Chẳng hạn với ComboBox Control:

 Giáo viên hướng dẫn sinh viên cách thêm dữ liệu vào trong control Ở đây cóthể sử dụng mã XAML Giáo viên chỉ cho sinh viên cách xem mã XAML củacontrol để thêm các tùy biến của mình vào

 Giáo viên hướng dẫn sinh viên cách “bắt” một số sự kiện tiêu biểu củacomboBox, ví dụ:

Trang 24

 DropDownOpened Event

 DropDownClosed Event

 Handling Selection Changes

 Handling Mouse Moves

Có thể có một số sinh viên chưa nắm được khái niệm “bắt” sự kiện, giáo viên nên giớithiệu qua và chỉ ra trên ngay trên ví dụ cách thực thi của việc “bắt” sự kiện

- Performing Data Binding with XAML Controls

Giáo viên trình bày cho sinh viên khái niệm data binding Đây là một vấn đề khá quantrọng trong lập trình ứng dụng Khi ứng dụng của chúng ta làm việc với các nguồn dữliệu thì cần phải binding nó với các control để tương tác với người sử dụng Một sốnội dung cần truyền đạt đến sinh viên:

 XML Binding

Binding từ dữ liệu XML Một đặc tính rất mạnh của binding dữ liệu trong WPF là khảnăng binding một hay nhiều control đến nguồn dữ liệu XML

 Object Data Source Binding

Binding dữ liệu từ cơ sở dữ liệu Đây là công việc truyền thống mà rất nhiều lập trìnhviên phát triển ứng dụng phải thực hiện

Trong phần này giáo viên nên hướng dẫn cụ thể cho sinh viên qua Visual Studio hayqua video

Phần 4

Working with Graphics, Media and Animations (part 7 trong giáo trình)

New in WPF 3.5 (part 8 trong giáo trình)

Future Directions of WPF (part 9 trong giáo trình)

Các nội dung cần truyền đạt cho sinh viên:

Working with Graphics, Media and Animations

- Introducing the Graphics APIs

WPF cung cấp một thư viện các hàm API hỗ trợ các xử lý đồ họa Giáo viên hướngdẫn cho sinh viên cách sử dụng một số hàm API cơ bản:

Trang 25

Đây là phần hướng dẫn cách làm việc với animation Các nội dung cần truyền tải đếncho sinh viên bao gồm:

 Understanding the Animation Types

 Using Keyframe-Based Animation

 Animations Using Storyboards and TimeLine Classes

 Working with Animation and Timelines with Interactive Designer

 Assigning Animations to Events in Interactive Designer

Animation là một phần tương đối lạ đối với nhiều sinh viên Giáo viên cần giải thích rõcho sinh viên các loại animation, khái niệm keyframe và timeline Có thể gợi ý chosinh viên liên tưởng đến cách làm Flash để dễ hình dung hơn Trong phiên bản VisualStudio 2008, giáo viên hướng dẫn sinh viên cách làm việc với animation trongInteractive Designer, cách gán các animation cho các sự kiện

Giáo viên có thể sử dụng một sản phẩm đã chuẩn bị trước từ nhà để demo cho sinhviên thấy tính hấp dẫn của đặc tính hỗ trợ animation mạnh mẽ của WPF

New in WPF 3.5 (part 8 trong giáo trình)

Phần này sẽ trình bày các điểm mới của WPF trong Net framework 3.5 So sánhWPF trong phiên bản Net framework 3.5 với WPF trong phiên bản Net framework3.0

Một số nét mới có thể giới thiệu với sinh viên gồm có:

- Advantages and Disadvantage WPF

Phân tích một số ưu điểm và khuyết điểm của WPF để từ đó dễ dàng hơn trong việcđánh giá các xu thế tương lai của công nghệ này

- WPF and Windows Vista

Window Vista là hệ điều hành window mới nhất của Microsoft Việc đánh giá WPF vàWindow Vista là một nội dung cần thiết

- WPF and XAML

Trang 26

- WPF and Silverlight

Silverlight là một công nghệ Là một plug-in của trình duyệt, Silverlight mang sức mạnh

âm thanh và video cải tiến đến với các ứng dụng Web Nó cũng được coi là lời phúcđáp của Microsoft với công nghệ Flash đang rất phổ biến của đối thủ Adobe WPF vàSilverlight liên hệ mật thiết với nhau Phần giới thiệu Silverlight và WPF sẽ giúp sinhviên tiếp cận với một công nghệ mới, đầy tiềm năng

Thực hành:

Lab 5

Bài tập về nhà:

Exercise 5

Trang 27

C HƯƠNG 6

Windows Communication Foundation

Chương này trình bày công nghệ Windows Communication Foundation (WCF) là một bộ công cụ hỗ trợ thực hiện ứng dụng theo kiến trúc hướng dịch vụ (SOA) WCF được xuất hiện từ phiên bản 3.0 và cũng giống như WPF nó vẫn là một thành phần quan trọng trong phiên bản Net framework 3.5 Nội dung của chương này bao gồm giới thiệu về WCF, cách sử dụng WCF, trình bày một số điểm mới của WCF trong phiên bản Net framework 3.5

Kế hoạch giảng

Đây là chương có nội dung khá dài, giáo viên nên tách thành 2 phần Mỗi phần sẽgiảng trong thời gian 3 tiết

Phần 1

Introduction (part 1 trong giáo trình)

Programming Model (part 2 trong giáo trình)

Introduction

Các nội dung cần truyền đạt cho sinh viên:

Đây là phần giới thiệu, giúp sinh viên có được cái nhìn tổng quan về WCF Giáo viêncần trình bày cho sinh viên các nội dung: WCF là gì? Tại sao nên sử dụng WCF? Lợiích của việc sử dụng công nghệ này?

 WCF Messaging and Endpoints

 Address, Binding, Contract

Trang 28

 WCF Architecture: Giáo viên trình bày cho sinh viên kiến trúc của WCF Có thểcho sinh viên quan sát rồi trả lời các thành phần chính trong kiến trúc Cuốicùng giáo viên đưa ra kết luận các thành phần chính trong kiến trúc WCF:

Phần này trình bày mô hình lập trình với WCF

- From Objects to Services: OO or SO

Giáo viên xuất phát từ mô hình lập trình hướng đối tượng (Object – Oriented) chođến lập trình hướng dịch vụ (Service – Oriented) để trình bày cho sinh viên thấy đặcđiểm của từng mô hình lập trình, xu thế hiện nay

Các mô hình lập trình có thể kể ra gồm có:

 Object-Oriented: với đặc trưng là Polymorphism, Encapsulation, Subclassing

 Component-Based: với đặc trưng là Interface-based, Dynamic Loading,Runtime Metadata

 Service-Oriented: với đặc trưng là Message-based, Schema+Contract, Bindingvia Policy

- WCF Programming

Phần này hướng dẫn cách lập trình với WCF Giáo viên nhấn mạnh các bước lậptrình ứng dụng với WCF:

 Create a WCF Service

 Adapt and Configure the Service Contract

 Run the Service

 Create a WCF Client

 Configure the WCF Client

 Use the WCF Client

Với mỗi bước, giáo viên nên có những hướng dẫn bằng hình ảnh cụ thể hoặc demoqua Visual Studio hay video

Phần 2

New in NET framework 3.5 (part 3 trong giáo trình)

HTTP programming Model (part 4 trong giáo trình)

New in NET framework 3.5

Phần này trình bày các điểm mới của WCF trong phiên bản Net framework 3.5 Một

số đặc điểm mới có thể kể ra như:

- WCF and WF Integration-Workflow Services

- WCF Web Programming Model

- WCF Syndication

Trang 29

- WCF and Partial Trust

- WCF and ASP.NET AJAX Integration

- Web Services Interoperability

Giáo viên nên mô tả sơ qua từng đặc điểm mới trong Net framework 3.5 Chú ý nhấnmạnh một số điểm mới sẽ được trình bày kỹ hơn trong phần sau như: HttpProgramming Model và JSON service

WCF Web Programming Model

Đây là một điểm mới trong Net framework 3.5, cho phép xây dựng các Web-styleservices với WCF

Giáo viên chia các nội dung cần truyền đạt cho sinh viên thành 2 phần:

- Overview: Đưa ra một cái nhìn tổng quan về WCF Web Programming Model Cáckiến thức chính bao gồm:

 Introduction

 URI Processing with UriTemplate and UriTemplateTable: Giáo viên giải thíchcho sinh viên khái niệm URI, UriTemplate và UriTemplateTable

 Service Operation Parameters and URLs

 WebGet and WebInvoke: Web Programming Model cho phép lập trình viênđiều khiển các mệnh lệnh bound đến URI và các phương thức HTTP liên quanđến URI này thông qua WebGet and WebInvoke

 Formats and the Web Programming Model: một đặc điểm mới của WebProgramming Model là có khả năng làm việc với rất nhiều kiểu dữ liệu khácnhau Ở tầng binding, WebHttpBinding có thể đọc và ghi dữ liệu với các kiểu

dữ liệu như XML, JSON, Opaque binary streams JSON là một kiểu dữ liệumới, có thể hầu hết sinh viên đều chưa được tiếp xúc, giáo viên có thể giớithiệu qua cho sinh viên để thấy được một vấn đề mới, hấp dẫn, kích thích sựtìm tòi của sinh viên

HTTP Programming Model

HTTP Web Programming Model cho phép các lập trình viên phát triển WindowsCommunication Foundation (WCF) Web services qua các HTTP request cơ bản màkhông cần đến SOAP

Trong phần này giáo viên giới thiệu cho sinh viên tổng quan về HTTP WebProgramming Model sau đó trình bày một số lớp cơ bản được cung cấp trong môhình này:

Trang 30

- Utility Classes and Extensibility Points:

Thực hành:

Lab 6

Bài tập về nhà:

Exercise 6

Trang 31

là kiến trúc của nó và một số kĩ thuật lập trình cơ bản với ASP.NET AJAX.

Kế hoạch giảng

Đây là chương có nội dung khá dài, giáo viên nên tách thành 2 phần Mỗi phần sẽgiảng trong thời gian 3 tiết

Phần 1

Introducing ASP.NET AJAX (part 1 trong giáo trình)

Microsoft AJAX Library (part 2 trong giáo trình)

Introducing ASP.NET AJAX

Phần này giới thiệu cho sinh viên tổng quan về ASP.NET AJAX Vì trong khoảng thờigian có hạn của chương trình dạy, không thể giảng cho sinh viên từ phần ASP.NETnên trước khi vào nội dung chính giáo viên có thể nên giới thiệu qua về ASP.NET đểsinh viên có thể hiểu được nội dung chương này

Các nội dung chính cần truyền đạt cho sinh viên:

- What is Ajax?

Giới thiệu cho sinh viên khái niệm AJAX Ajax là một kỹ thuật phát triển web có tínhtương tác cao bằng cách kết hợp các ngôn ngữ: HTML (hoặc XHTML) với CSS trong

việc hiển thị thông tin; Mô hình DOM (Document Object Model), được thực hiện thông

qua JavaScript, nhằm hiển thị thông tin động và tương tác với những thông tin đượchiển thị, Đối tượng XMLHttpRequest để trao đổi dữ liệu một cách không đồng bộ vớimáy chủ web (Mặc dù, việc trao đổi này có thể được thực hiện với nhiều định dạngnhư HTML, văn bản thường, JSON và thậm chí EBML, nhưng XML là ngôn ngữthường được sử dụng); XML thường là định dạng cho dữ liệu truyền, mặc dầu bất cứ

Ngày đăng: 04/07/2014, 11:40

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w