Đố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 1TÀ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 3Phươ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 65.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 7C 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 8quan 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 9C 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 10trong phần Common Type System:
Value types
Reference types
Boxing and unboxing
Classes, properties, indexers
Trang 11C 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 13C 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 15nhắ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 17Kế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 19Giá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 20C 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 21Trong 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 22cô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 23Trì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 27C 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 31là 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ứ