Tải bản đầy đủ (.doc) (63 trang)

giáo trình .net framework 3.5

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (518.99 KB, 63 trang )

.Net framework 3.5 Trường Đại Học Bách Khoa Hà Nội
TÀI LIỆU HƯỚNG DẪN GIẢNG DẠY
DÀNH CHO GIẢNG VIÊN

.Net Framework 3.5 Page 1
.Net framework 3.5 Trường Đại Học Bách Khoa Hà Nội
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ề .NET
framework 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át
triể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át
triể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ác
phiê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ệ quan
trọ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ội
dung 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ài
thự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ằng


tiế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ọc
cô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ễn
thông.
.Net Framework 3.5 Page 2
.Net framework 3.5 Trường Đại Học Bách Khoa Hà Nội
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ụ, project
thự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ên
mớ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 sinh
viê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ảo
luậ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 qua
các bài lab, hướng dẫn từng bước để sinh viên hiểu được quá trình làm
thự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ân
chia 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 sinh
viê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.
.Net Framework 3.5 Page 3
.Net framework 3.5 Trường Đại Học Bách Khoa Hà Nội
Đề 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ột
tuầ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 sinh
viê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 Introduction
1.2 Overview of the .Net flatform
1.3 Overview of the .Net Framework
Summary
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 Introduction
2.2 CLR Executables
2.3 CLR in .Net framework 3.5
Summary
Bài tập : Exercise 2
Bài Lab : Lab 2
.Net Framework 3.5 Page 4
.Net framework 3.5 Trường Đại Học Bách Khoa Hà Nội
.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 Versions
3.2 .Net framework 3.5
Summary
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 LINQ
4.2 C# and VB.NET language enhancements
4.3 LINQ building blocks
4.4 Querying objects in memory
4.5 Querying relational data
4.6 Manipulating XML
4.7 Extending LINQ
4.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 Introduction
5.2 XAML
5.3 Programming WPF Applications
5.4 Building Your First WPF Application
.Net Framework 3.5 Page 5
.Net framework 3.5 Trường Đại Học Bách Khoa Hà Nội
5.5 Exploring the Layout Controls
5.6 Working with XAML Controls
5.7 Working with Graphics, Media and Animations
5.8 New in WPF 3.5
5.9 Future Directions of WPFSummary
Bà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 Introduction
6.2 Programming Model
6.3 New in .NET framework 3.5
6.4 WCF Web Programming Model
Summary
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 AJAX
7.2 Microsoft AJAX Library
7.3 Working with Web Services
7.4 ASP.NET AJAX Control Toolkit
7.5 Building Web Application Summary
Summary
Bài tập : Exercise 7
Bài Lab : Lab 7
Video training

.Net Framework 3.5 Page 6
.Net framework 3.5 Trường Đại Học Bách Khoa Hà Nội
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.
Kế hoạch giảng
Các nội dung cần truyền tải cho sinh viên:
- Introduction
 Introduction
 Product groups
- 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áo
trì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úc
của .Net framework mà chỉ có thể cung cấp cho sinh viên những khái niệm cơ bản
nhấ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 .Net
framework 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ề .Net
framework, 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ông
củ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ểu
công nghệ .Net. Giáo viên giới thiệu tổng quan về .Net flatform với các nhóm sản
phẩ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 demo
trự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 sinh
viê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ập
trì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
.Net Framework 3.5 Page 7
.Net framework 3.5 Trường Đại Học Bách Khoa Hà Nội
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ôn

ngữ 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 Visual
Studio 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ội
dung 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ới
phầ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ích
cho 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 được
cá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ới
Java hay thậm chí là Pascal, C, C++ ). Giáo viên có thể thực hiện bài giảng bằng
cá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ày
hứ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.
.Net Framework 3.5 Page 8
.Net framework 3.5 Trường Đại Học Bách Khoa Hà Nội
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ề .Net
framework. Đế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 CLR
trong .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 ra
dạng có thể thực thi được trong windows là exe hay dll tuân theo định dạng
PE.
 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 sinh

viê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
.Net Framework 3.5 Page 9
.Net framework 3.5 Trường Đại Học Bách Khoa Hà Nội
trong phần Common Type System:
 Value types
 Reference types
 Boxing and unboxing
 Classes, properties, indexers
 Interfaces
 Delegates
Thực hành:
Lab 2.
Giáo viên hướng dẫn sinh viên sử dụng Visual Studio, Microsoft Window SDK để làm
bài tập thực hành tìm hiểu quá trình thực thi trong .Net framework.
Bài tập về nhà:
Exercise 2.
.Net Framework 3.5 Page 10
.Net framework 3.5 Trường Đại Học Bách Khoa Hà Nội
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 .Net

framework (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ản
sau 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)
- Windows CardSpace
Đối với các nội dung này, giáo viên cần chỉ ra những ưu điểm của công nghệ mới so
với các công nghệ hiện có. Cần tạo ra được sự thu hút ban đầu đối với sinh viên.
 Phiên bản 3.5:
Giáo viên cho sinh viên xem hình vẽ mô tả các bước cải tiến của phiên bản 3.5 so với
các phiên bản trước. Có thể đặt câu hỏi cho sinh viên xem đâu là các điểm nổi bật
nhất.
Đặ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ới
CSDL, XML rồi nói đến những ưu điểm của LINQ để sinh viên có thể thấy rõ những
thuậ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 web
hoặ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ếp
xú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ũng
như công nghệ AJAX, những điểm hay của công nghệ này. Sau đó giới thiệu
ASP.NET AJAX mà .Net framework 3.5 hỗ trợ. Đặc biệt nhấn mạnh đến những điểm
hay của công nghệ này để sinh viên có thể nắm được là tại sao nên sử dụng
ASP.NET AJAX mà không phải là một công nghệ khác.
.Net Framework 3.5 Page 11
.Net framework 3.5 Trường Đại Học Bách Khoa Hà Nội

Đố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ìm
tòi.
Thực hành:
Bài tập về nhà:
.Net Framework 3.5 Page 12
.Net framework 3.5 Trường Đại Học Bách Khoa Hà Nội
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 4
phầ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ột

ngô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ữa
Object, 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 LINQ
vớ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ôn
ngữ 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ới
một ngôn ngữ là:
 Implicitly typed local variables
 Object initializers
 Lambda expressions
.Net Framework 3.5 Page 13
.Net framework 3.5 Trường Đại Học Bách Khoa Hà Nội
 Extension methods
 Anonymous types
- LINQ building blocks: Các nội dung chính cần truyền tải cho sinh viên trong phần
này bao gồm:
 Standard query operator
 Query expression
 Expression tree
 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ông
dụng, ý nghĩa của nó. Nếu sinh viên đã học qua SQL thì phần này có thể lướt nhanh
hơ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ép
toá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 khi
muốn tạo một ứng dụng có sử dụng LINQ trong Visual Studio thì cần ánh xạ đến các
dll 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ên
demo 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ằng
video.
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 sinh
viê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ội
dung 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à ta
khô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à implements
IEnumerable<T> interface.)
- Một số collection có thể được truy vấn nhờ LINQ:
 Array
 Generic lists
 Generic dictionaries
 String
- Sử dụng LINQ với ASP.NET và Windows Forms: Nhấn mạnh đến phần data
bindings cho các ứng dụng Web và các ứng dụng windows. Có thể có những sinh
viên chưa quen với việc tạo ứng dụng web và windows với .NET, giáo viên có thể
.Net Framework 3.5 Page 14
.Net framework 3.5 Trường Đại Học Bách Khoa Hà Nội

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 Studio
hoặc bằng video.
- Một số phép toán dùng cho truy vấn:
 Where
 Select, select many
 Distinct
 aggregate operators
 Sorting
 Nested queries
 Grouping
 Join
- Một số mở rộng:
 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ên
thả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 sinh
viê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ác
lợ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ần
phải viết lại plumbing code ) để sinh viên thấy được tại sao nên sử dụng LINQ to
SQL. 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 qua
mộ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ên
chư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 để sinh
viên thấy rõ hơn.
.Net Framework 3.5 Page 15
.Net framework 3.5 Trường Đại Học Bách Khoa Hà Nội
- 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ệu
gồm có:
 Filtering
 Sorting and grouping
 Aggregation
 Joining
- When is my data loaded and why does it matter?
 Lazy loading
 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. Do
thờ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 thao
tá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 studio
hay 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áo
viê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ếu
cò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ột
lự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:
.Net Framework 3.5 Page 16
.Net framework 3.5 Trường Đại Học Bách Khoa Hà Nội
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ích
cặn kẽ cách tổ chức của một file định dạng XML. Định dạng XML có thể đem lại
nhữ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 to
XML. 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áo
viên có thể nhấn mạnh vào một số lớp chính:
 Xobject
 Xnode
 Xcontainer
 Xelement
 Xattribute
- 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ên
hướng dẫn sinh viên sử dụng XML to LINQ trong một số các thao tác cơ bản:
 Loading XML

 Parsing XML
 Creating XML
 Creating XML documents
 Adding content to XML
 Updating XML content
 Working with attributes
.Net Framework 3.5 Page 17
.Net framework 3.5 Trường Đại Học Bách Khoa Hà Nội
 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 XML
chính là để thực hiện mục đích truy vấn đến các dữ liệu ở định dạng XML. Trong phần
nà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 cung
cấ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ó:
 Element
 Attribute
 Elements
 Descendants
 ElementsAfterSelf,
 NodesAfterSelf
 ElementsBeforeSelf
 NodesBeforeSelf
 Standard query operators: Giới thiệu cho sinh viên một số toán tử truy vấn cơ
bản để thực hiện việc truy vấn. Một số toán tử quan trọng cần đề cập đến bao
gồm:

 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ệm
XPath là gì, dùng để làm gì và có lợi ích gì. Từ đó giáo viên lấy ví dụ hướng
dẫ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à để sinh
viê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
.Net Framework 3.5 Page 18
.Net framework 3.5 Trường Đại Học Bách Khoa Hà Nội
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 cho
sinh 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ình
bà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ướng
nghiê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.
.Net Framework 3.5 Page 19
.Net framework 3.5 Trường Đại Học Bách Khoa Hà Nội
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 4
phầ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. Trong
phầ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ái

gì? Dùng WPF để làm gì? Tại sao nên sử dụng WPF chứ không phải là một công
nghệ 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 đến
nay 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ên
là: 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ấp
dẫ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ên
Client.
- 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
.Net Framework 3.5 Page 20
.Net framework 3.5 Trường Đại Học Bách Khoa Hà Nội
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ây
dự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ể cho
sinh viên xem một số ứng dụng làm theo công nghệ WPF đã có. Ví dụ:
/>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 vs. Code
 Attributes and Events
 Nesting elements
 XAML Namespaces
 Type Converters
 Property-Element Syntax
 Markup Extensions
 The Content Property
 Nesting rules
 Naming Elements
 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ên
nê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ới
XAML. 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
.Net Framework 3.5 Page 21
.Net framework 3.5 Trường Đại Học Bách Khoa Hà Nội
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:
 System.Threading.DispatcherObject
 System.Windows.DependencyObject
 System.Windows.Media.Visual
 System.Windows.UIElement
 System.Windows.FrameworkElement
- 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ập
hợ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ác
thà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ên
quan đến ứng dụng. Ví dụ:
 Activated Event
 Deactivated Event
 SessionEnding Event
 Supporting Application-Level Navigation Events:
o

Navigating
o
NavigationProgress
o
Navigated
o
LoadCompleted
Giáo viên nên hướng dẫn sinh viên bằng cách demo trên Visual Studio hoặc qua
video.
 Window Management
 Using the Window Object
 Using the NavigationWindow Object
 Using the Page Object
.Net Framework 3.5 Page 22
.Net framework 3.5 Trường Đại Học Bách Khoa Hà Nội
Trình bày cho sinh viên cách sử dụng một số đối tượng khác trong Window
Management.
- 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 Visual
Studio. 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 khi
tạ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 ứng
dụ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ần
rất quan trọng.
Một số kiểu layout cơ bản:

- A StackPanel
- A DockPanel
- A Grid
- A Canvas
- A WrapPanel
Giáo viên hướng dẫn sinh viên thấy được đặc điểm của từng loại, gợi ý các trường
hợp sử dụng từng loại panel. Cách truyền đạt tốt nhất là giáo viên demo trực tiếp trên
Visual Studio hoặc video.
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ác
XAML 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à:
- Button Control
- CheckBox Control
- ComboBox Control
Giáo viên nên hướng dẫn thật cẩn thận một vài control. Từ cách thiết kế các thuộc
tính giao diện đến “bắt” các sự kiện. Có thể hướng dẫn trên Visual Studio.
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ủa
control để 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ủa
comboBox, ví dụ:
.Net Framework 3.5 Page 23
.Net framework 3.5 Trường Đại Học Bách Khoa Hà Nội
 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ới

thiệ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á quan
trọ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ình
viê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 hay
qua 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ướng
dẫn cho sinh viên cách sử dụng một số hàm API cơ bản:
 Brushes
 Shapes
 Transformations
 Imaging
 Animations
- Using Multimedia
Nhấn mạnh core của Multimedia trong WPF nằm trong lớp MediaElement . Giáo viên

hướng dẫn sinh viên cách sử dụng lớp MediaElement qua một ví dụ cụ thể.
- Working with Animation
.Net Framework 3.5 Page 24
.Net framework 3.5 Trường Đại Học Bách Khoa Hà Nội
Đâ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 đến
cho 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 ý cho
sinh viên liên tưởng đến cách làm Flash để dễ hình dung hơn. Trong phiên bản Visual
Studio 2008, giáo viên hướng dẫn sinh viên cách làm việc với animation trong
Interactive 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 sinh
viê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ánh
WPF trong phiên bản .Net framework 3.5 với WPF trong phiên bản .Net framework
3.0.
Một số nét mới có thể giới thiệu với sinh viên gồm có:
 Applications
 Graphics
 3-D Graphics
 Data Binding
 Controls
 Documents
 Annotations

Trong phần này giáo viên có thể yêu cầu sinh viên về nhà tìm hiểu thêm các đặc điểm
mới của WPF 3.5. Có thể yêu cầu sinh viên kiểm chứng bằng lập trình thực tế, cũng
có thể hình thành các nhóm thực nghiệm, kiểm tra các đặc điểm mới của WPF 3.5.
Future Directions of WPF
Phần cuối cùng sẽ trình bày một số hướng phát triển tương lai của WPF. Các nội
dung cần trình bày cho 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
.Net Framework 3.5 Page 25

Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×