1). Trang chủ
2). Cán bộ giảng dạy
3). Cán bộ quản lý ngành
4). Cán bộ quản lý CBGD
5). Cán bộ tách/ghép nhóm, lớp học phần
Chương IV: TỔNG KẾT
I. Các nội dung đã thực hiện đƣợc 1). Cán bộ quản lý ngành
Lập kế hoạch giảng dạy.
Xem kế hoạch giảng dạy.
Xóa một học phần ra khỏi kế hoạch giảng dạy.
Thêm học phần vào kế hoạch giảng dạy
2). Cán bộ quản lý cán bộ giảng dạy
Phân công cán bộ giảng dạy.
Xóa phân công cán bộ giảng dạy.
3). Cán bộ giảng dạy
Xem, in ấn phân công giảng dạy.
Thống kê số giờ chuẩn giảng dạy.
4). Quản trị viên hệ thống
Thêm, xóa, cập nhật thông tin cán bộ.
Thêm, xóa, cập nhật thời gian biểu.
Cập nhật hệ số qui đổi giờ chuẩn.
5). Cán bộ tách/ghép nhóm, lớp học phần
Xem các kế hoạch giảng dạy từ các Bộ môn/Khoa.
Tách lớp học phần. Ghép lớp học phần. Hủy lớp học phần. Tách nhóm. Hủy nhóm. II. Hƣớng phát triển
Tiếp tục hoàn thành các chức năng chƣa hoàn thành.
Sử dụng kỹ thuật Ajax giúp hệ thống hoạt động nhanh chóng, hiệu quả hơn.
Tiếp tục phân tích và nghiên cứu các qui trình phân công giảng dạy của các Bộ
môn/Khoa kỹ hơn để xây dựng và hoàn chỉnh hệ thống sao cho thuận tiện hơn với ngƣời dùng, giúp cho hệ thống đƣợc đi vào hoạt động thực tế.
III. Hạn chế
Giao diện và hệ thống chức năng chƣa thật sự phù hợp với ngƣời dùng.
IV. Một số biểu mẩu
Biểu mẩu kế hoạch giảng dạy
Phần 3: PHỤ LỤC
Chương I: ASP.NET MVC
I. ASP.NET MVC là gì
ASP.NET MVC 2(Model-View-Controller) là công nghệ mới của Microsoft cho việc xây dựng ứng dụng web.
Mặc dù ASP.NET MVC là công nghệ mới nhƣng đã có một số trang web lớn xây dựng và thành công đƣợc xây dựng trên framework này chẳng hạn StackOverflow.com và CodePlex.com.
ASP.NET MVC hỗ trợ xây dựng các ứng dụng web đƣợc dễ dàng hơn trong việc duy trì và mở rộng theo thời gian.
II. Giới thiệu tổng quan.
Kiến trúc Model-View-Controller (MVC) tách một ứng dụng thành ba thành phần chính: model, view, controller.
MVC là một framework nhẹ nhàng, hiệu quả hơn (so với Web Form) đƣợc tích hợp sẳn các công cụ hiện có chẳng hạn nhƣ trang site.Master.
MVC đƣợc định nghĩa trong không gian tên System.Web.Mvc và hỗ trợ một phần của không gian tên System.Web.
MVC framework bao gồm các thành phần sau:
Hình 52: Mô hình hoạt động của MVC
Models: Tầng thực thi truy xuất và cập nhật dữ liệu cho toàn bộ ứng dụng.
Views: Tầng hiển thị giao diện ngƣời dùng, hiển thị các thông tin do tầng
controller truyền qua.
Controllers: Tầng điều khiển tƣơng tác của ngƣời dùng, làm việc trực tiếp với
model và cuối cùng truyền dữ liệu cho tầng view để hiển thị.
Trong ứng dụng web MVC tầng view chỉ phụ trách hiển thị thông tin, controller chịu trách nhiện quản lý dữ liệu vào ra và những tƣơng tác của ngƣời dùng.
Ví dụ: tầng controller nhận dữ liệu từ ngƣời dùng, sau đó truyền cho model, model thực hiện truy vấn và trả về kết quả cho controller, sau đó mới hiển thị lên giao diện ngƣời dùng hay tầng view.
Mô hình MVC có các tầng tách biệt nhau điều này rất thuận tiện cho việc phát triển song song ứng dụng. Ví dụ nhƣ: một ngƣời phát triển view, một ngƣời phát triển tâng controller, một ngƣời phát triển tâng model, sau đó tích hợp tích hợp các tầng lại với nhau
III. Các tính năng của MVC framework
MVC framework cung cấp các tính năng sau:
Chạy thử nghiệm ứng dụng nhanh chóng và linh hoạt. Bạn có thể sử dụng bất
kỳ chƣơng trình thử nghiệm nào tƣơng thích với .NET Framework..
Khả năng thêm các module: chúng ta có thể thiết kế một hoặc nhiều công cụ
của riêng mình và thực thi chúng trên ứng dụng ASP.NET MVC một cách dễ dàng.
Công cụ tham chiếu địa chỉ URL: ASP.NET MVC có cơ chế định tuyến các
địa chỉ URL do đó các đƣờng liên kết không cần phải thêm phần mở rộng của file đƣợc liên kết tới.
Hỗ trợ các ASP.NET page (.aspx files), user control (.ascx files), and master
page (.master files) để không phải tải lại toàn bộ trang web.
Hỗ trợ toàn bộ các công cụ hiện của có của ASP.NET. ASP.NET MVC cũng
cung cấp tính năng chứng thực Windows, Form, URL authorization, vai trò ngƣời dùng, phiên làm việc (session), profile,…
IV. Những thuận lợi của ASP.NET MVC
Nó làm dễ dàng hơn công việc quản lý code vào đúng tầng theo kiến trúc 3
tầng: model, view, controller.
Có một cơ chế định tuyến hiệu quả.
Hỗ trợ công cụ “test-driven”: chạy thử và kiểm tra lỗi của ứng dụng.
V. Yêu cầu cài đặt
Để xây dựng một ứng dụng web ASP.NET MVC cần phải cài đặt các công cụ sau:
Microsoft Visual Web Developer 2008 Service Pack 1 hoặc Microsoft Visual
Studio 2008 Service Pack 1: Cung cấp môi trƣờng tạo một ứng dụng mới và cũng bao gồm các tùy chọn cho việc cài đặt Microsoft SQL Server Express.
Microsoft .NET Framework 3.5 Service Pack 1: cung cấp Microsoft ASP.NET
framework.
Chương II: SƠ LƢỢC VỀ LINQ TO SQL
I. Giới thiệu chung
Khi nền tảng Microsoft.NET cùng với những ngôn ngữ hỗ trợ nó nhƣ C# và VB đã trƣởng thành, ngƣời ta bắt đầu nhận thấy rằng một trong những lĩnh vực rắc rối nhất mà các nhà phát triển vẫn phải đối mặt là truy xuất dữ liệu từ các nguồn khác nhau. Đặc biệt là việc truy xuất và xử lý database và XML thƣờng cồng kềnh và phức tạp trong những tình huống tốt nhất, và trở nên nguồn phát sinh các vấn đề trong các kịch bản xấu nhất.
II. Linq là gì?
Hình 53 Kiến trúc Visual C#
LINQ3 (Language Integrated Query) là một trong những tính năng cốt lõi của
.NET Framework, đƣợc hỗ trợ đầy đủ trong các ngôn ngữ C# và VB. LINQ hiện có một dải rộng các ứng dụng tiềm năng. Nói một cách đơn giản, nó cung cấp một mô hình mang tính khai báo cho việc nhận và xử lý dữ liệu cho phép ta sử dụng cùng một cú pháp với nhiều nguồn dữ liệu khác nhau. Nguyên lý thống nhất nằm dƣới mọi ứng dụng LINQ là nó nhấn mạnh đến lập trình khai báo so với lập trình chức năng – nói một cách khác, đoạn code của bạn chỉ phát biểu kết quả mà nó muốn thay vì một chuỗi các bƣớc để đạt đƣợc kết quả đó. Ở mức lý tƣởng, điều này sẽ thúc đẩy các lập trình viên tập trung vào business logic và cho LINQ nhiều tự do hơn để tự động hóa các tác vụ cấp thấp cũng nhƣ tối ƣu cách thực hiện chúng.
Hiện nay LINQ chỉ đƣợc tích hợp trong .net framework 3.0 trở về sau.
III.Tại sao cần sử dụng Linq
Quy luật cơ bản trong lập trình là dữ liệu phải nằm trong bộ nhớ chính. Do đó khi cần dữ liệu chúng ta phải dùng cách nào đó để đƣa dữ liệu vào bộ nhớ (đọc tập tin
text, truy vấn từ cơ sở dữ liệu,...). Trong môi trƣờng .NET, dữ liệu trong bộ nhớ thƣờng đƣợc thể hiện ở dạng các đối tƣợng và trƣớc LINQ, chúng ta không có cách nào để móc nối các đối tƣợng hay thực hiện bất kỳ thao tác truy vấn nào. LINQ chính là giải pháp cho vấn đề này.
Trƣớc đây, cách phổ biến nhất để ứng dụng lấy dữ liệu từ các hệ cơ sở dữ liệu
CSDL(4) là sử dụng SQL(5). SQL có cú pháp rất khác với những ngôn ngữ lập trình phổ
dụng nhƣ C# và VB.NET, do vậy bạn phải nhọc công "hàn gắn" hai thực thể khác biệt này với nhau trong mỗi dự án phần mềm. LINQ ra đời để giảm gánh nặng thao tác "hàn gắn" trên nhiều ngôn ngữ khác nhau.
Một vấn đề khác với SQL là nó chỉ dùng để truy vấn dữ liệu trong các CSDL dạng quan hệ. Nếu muốn truy cập dữ liệu XML hay dạng khác (nhƣ trang HTML, email...), bạn lại phải sử dụng cú pháp truy vấn khác (XPath/XQuery).
Lập trình trên CSDL không giống nhƣ trên các ngôn ngữ lập trình, hầu hết SQL thực thi các đoạn mã khi chƣơng trình thực thi do đó lỗi thƣờng khó phát hiện rõ vì vậy rất khó trong việc quản lý lỗi xảy ra.
Vấn đề cú pháp truy vấn : trƣớc khi có LINQ chúng ta chƣa có một cú pháp chung nào cho truy vấn dữ liệu từ những nguồn khác nhau. Với LINQ nó sẽ cung cấp cách duy nhất để truy cập dữ liệu từ bất kể nguồn dữ liệu nào với cú pháp giống nhau.
IV. Các thành phần chính trong Linq
LINQ to Objects: là một API đại diện cho một tập standard query operators
(SQOs) thực hiện truy vấn dữ liệu trên đối tƣợng và dĩ nhiên là khi chạy, nó nắm trên RAM của máy.
LINQ to ADO.NET: Làm việc với CSDL quan hệ. Nó gồm 2 phần:
LINQ to SQL dùng truy vấn dữ liệu trên CSDL quan hệ nhƣ MS SQL Server.
Nó cho phép chúng ta môn hình hóa một cơ sở dữ liệu dùng các lớp .NET. Sau đó có thể truy vấn cơ sở dữ liệu (CSDL) dùng LINQ, cũng nhƣ cập nhật/thêm/xóa dữ liệu từ đó. LINQ to SQL hỗ trợ đầy đủ transaction, view và các stored procedure (SP). Nó cũng cung cấp một cách dễ dàng để thêm khả năng kiểm tra tính hợp lệ của dữ liệu và các quy tắc vào trong mô hình dữ liệu của chúng ta.
LINQ to DataSet hỗ trợ truy vấn dữ liệu thông qua ADO.NET với 2 đối
tƣợng là DataSet và DataTable.
LINQ to XML: Cung cấp một số đặc tính để làm việc và truy vấn trên tài liệu
XML.
LINQ to Entities là giải pháp Object-Relational Mapping (ORM) của
Microsoft cho phép lập trình viên sử dụng Entities (chức năng mới trong ADO.NET 3.0) để định nghĩa ra kiến trúc và truy vấn trên đó.
V. Mô hình hóa CSDL dùng LINQ to SQL
Visual Studio đã tích hợp thêm một trình thiết kế LINQ to SQL nhƣ một công cụ dễ dàng cho việc mô hình hóa một cách trực quan các CSDL dùng LINQ to SQL
VI. Tìm hiểu lớp DataContext
1). Tạo ra một mô hình dữ liệu LINQ to SQL
Bạn có thể thêm một mô hình dữ liệu LINQ to SQL và một dự án ASP.NET, Class Library hay Windows bằng cách dùng tùy chọn “Add New Item” bên trong Visual Studio và chọn “LINQ to SQL”:
Đây là ví dụ sử dụng cơ sở dữ liệu Northwind
Hình 54: Tạo mô hình dữ liệu (Linq to SQL)
Việc chọn mục “LINQ to SQL” sẽ khởi chạy LINQ to SQL designer, và cho phép bạn mô hình hóa các lớp mà nó biểu diễn một CSDL quan hệ. Nó cũng sẽ tạo ra một lớp kiểu “DataContext”, trong đó có các thuộc tính để biểu diễn mỗi bảng mà chúng ta mô hình hóa trong CSDL, cũng nhƣ các phƣơng thức cho mỗi Stored Procedure mà chúng ta mô hình hóa. Lớp DataContext là thành phần trung tâm của mô hình, toàn bộ các thao tác truy vấn hoặc cập nhật dữ liệu đều đƣợc thực hiện thông qua lớp này.
Dƣới đây là ảnh chụp màn hình của một của sổ thiết kế LINQ to SQL, và cũng là cái mà bạn sẽ thấy ngay khi tạo ra một mô hình dữ liệu LINQ to SQL:
Hình 55: Cửa sổ thiết kế Linq to SQL
2). Các lớp thực thể
LINQ to SQL cho phép bạn mô hình hóa các lớp ánh xạ vào CSDL. Các lớp này thƣờng đƣợc là “Entity Class” (lớp thực thể) và các instance của nó thƣờng đƣợc gọi là “Entity” (thực thể). Các lớp entity ánh xạ vào các bảng bên trong một CSDL. Các thuộc tính của các lớp thông thƣờng ánh xạ vào các cột trong bảng. Mỗi instance của một lớp thực thể biểu diễn một dòng trong bảng.
Không giống nhƣ chức năng DataSet/TableAdapter có trong VS 2005, khi dùng LINQ to SQL designer, bạn không cần chỉ ra câu truy vấn SQL đƣợc dùng để tạo ra mô hình và lớp truy xuất dữ liệu.
Thay vào đó, bạn tập trung chủ yếu vào việc định nghĩa các lớp thực thể, cách chúng ánh xạ vào CSDL, và mối quan hệ giữa chúng. Trình LINQ to SQL cụ thể mà bạn dùng sẽ đảm bảo việc sinh ra các lệnh SQL thích hợp vào lúc chạy khi bạn tƣơng tác và làm việc với các thực thể dữ liệu. Bạn có thể dùng cú pháp truy vấn LINQ để chỉ ra cách bạn muốn truy vấn dữ liệu.
3). Tạo các lớp thực thể từ CSDL
Mở CSDL trong cửa sổ Server Explorer bên trong Visual Studio, chọn các table và view mà bạn muốn mô hình hóa, và kéo thả chúng lên trên của sổ LINQ to SQL designer.
Hình 56: Tạo các lớp thực thể CSDL
Hình 57: Trình thiết kế Linq to SQL khi mô hình hóa các bảng
4). Quan hệ giữa các thực thể
Khi bạn kéo thả các đối tƣợng từ Server Explorer lên trên cửa sổ LINQ to SQL designer, VS sẽ tự động xác định các mối quan hệ primary key/foreign key giữa các đối tƣợng, và tự động tạo các quan hệ mặc nhiên giữa các lớp thực thể khác nhau mà nó đã tạo. Ví dụ, khi bạn thêm cả hai bảng Products và Categories từ Northwind lên trên cửa sổ LINQ to SQL, bạn có thể thấy mội mối quan hệ một nhiều giữa chúng (đƣợc biểu diễn bằng một mũi tên trên của sổ soạn thảo):
Hình 58: Quan hệ giữa các thực thể
Mối quan hệ trên sẽ làm lớp thực thể Product có thêm một thuộc tính là Category, bạn có thể dùng để truy cập vào thực thể Category của một Product. Nó cũng làm lớp Category có thêm thuộc tính “Products”, đây là một tập hợp cho phép bạn lấy ra tất cả các Product có trong Category đó.
Hình 59: Thể hiện mối quan hệ giữa các thực thể
5). Ví dụ sử dụng Linq:
Đoạn lệnh dƣới đây dùng cú pháp LINQ để lấy về một tập IEnumerable các đối tƣợng Product. Các sản phẩm đƣợc lấy ra phải thuộc phân loại “Beverages”:
Hình 60: Sử dụng Linq – lấy danh sách sản phẩm
Đoạn lệnh dƣới đây cho thấy cách lấy một sản phẩm, cập nhật lại giá tiền và lƣu lại CSDL.
Hình 61: Sử dụng Linq – lấy và cập nhật thông tin một sản phẩm
Đoạn mã sau đây biểu diễn cách tạo một phân loại mới, và tạo hai sản phẩm mới và đƣa chúng vào trong phân loại đã tạo. Cả ba sau đó sẽ đƣợc đƣa vào cơ sở dữ liệu.
(Add đã được thay đổi bằng InsertOnSubmit trong phiên bản hiện tại)
Đoạn mã sau sẽ biểu diễn cách xóa tất cả các sản phẩm Toy khỏi CSDL:
Hình 63: : Sử dụng Linq – Xóa các sản phẩm theo tên sản phẩm
(RemoveAll đã được thay đổi bằng DeleteAllOnSubmit trong phiên bản hiện tại)
VII. LINQ hoạt động như thế nào?
Các bƣớc sử dụng LINQ:
Để sử dụng LINQ, bạn tạo một biểu thức LINQ.
Giá trị trả về từ một biểu thức LINQ là một đối tƣợng iterator hiện thực
IEnumerable<T>
Khi bạn lặp qua đối tƣợng iterator, LINQ mới thực sự thực hiện công việc.
Cơ chế này đƣợc gọi là Deferred Execution.
Vậy LINQ thực thi các biểu thức nhƣ thế nào? Câu trả lời phụ thuộc vào loại dữ liệu mà bạn truy vấn. Ví dụ nhƣ LINQ to SQL chuyển các biểu thức LINQ thành các lệnh cơ sở dữ liệu, trong khi với LINQ to Objects, mọi chuyện đơn giản hơn nhiều. Chẳng hạn nhƣ trong ví dụ trên, LINQ thực ra sử dụng một vòng lặp foreach để quét qua tập hợp, Mặc dù điều này nghe có vẻ không ấn tƣợng, lợi ích của LINQ nằm ở chỗ nó mang đến một cách linh động để định nghĩa các câu truy vấn có thể áp dụng đƣợc