Hãy thử tưởng tượng với một khối lượng công việc khá lớn như quản lý khách hàng, quản lý các bảng báo giá giúp khách hàng có cái nhìn tổng quát về các sản phẩm, quản lý các ñơn ñặt hàng,
Trang 1H U
H
MỤC LỤC
PROCESSING SYSTEM) 4
I GIỚI THIỆU 4
II YÊU CẦU HỆ THỐNG IPS 5
1 A.M (Account Manager) 6
2 Khách hàng (M.A.: Mapping Account) 6
3 Bảng báo giá 6
4 Hợp ñồng 7
5 Đặt hàng 7
6 Xuất tạm 7
7 Xuất bán 7
8 Triển khai và hỗ trợ 7
III CÁC PHÂN HỆ CỦA HỆ THỐNG 8
1 AMM – Account Manager Management 8
2 MAM - Mapping Account Management 8
3 Quoted Management 9
4 Contract/P.O Management 9
5 Order Management 10
6 Sales Invoice/Temporary Sales Management 11
7 Implementation Management 11
8 Support Management 11
CHƯƠNG II: CƠ SỞ LÝ THUYẾT 12
I GIỚI THIỆU SƠ LƯỢC VỀ WEB 12
II GIỚI THIỆU VỀ CÔNG NGHỆ NET 13
1 Giới thiệu về bộ khung NET (.NET Framework) 13
2 Môi trường thực thi ngôn ngữ chung (Common Language Runtime) 14
3 Đặc tả kiểu dữ liệu thông dung (Common Type Specification_CTS) 15
4 Đặc tả ngôn ngữ thông dung (Common Language Specification – CLS) 15
5 Thư viện lớp cơ sở NET (.NET base class library) 15
6 Giới thiệu Visual C#.NET 16
7 Giới thiệu ADO.NET 16
8 XML và ADO.NET 18
9 Giới thiệu về ASP.NET 19
III GIỚI THIỆU VỀ SQL SERVER 24
1 Các thành phần cơ bản của SQL Server 24
Trang 2H U
H
4 Cấu trúc logic của một cơ sở dữ liệu SQL Server 27
5 Các dịch vụ của SQL Server 27
IV BÀN THÊM VỀ AJAX 28
CHƯƠNG III: PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG 30
I MÔ HÌNH USE-CASE 30
1 Mô hình Use-case tổng quát 30
2 Mô hình Use-case ñăng nhập 31
3 Mô hình Use case cho các tác vụ của Admin 31
II MÔ TẢ CÁC USE-CASE 32
1 Use-case quản lý khách hàng 32
2 Use-case quản lý bảng báo giá 33
3 Use-case quản lý hợp ñồng 34
4 Use-case quản lý ñơn ñặt hàng 35
5 Use-case ñăng ký nhân viên 35
6 Use-case ñăng nhập 36
7 Use-case nghiệp vụ của nhà quản trị 36
III MÔ HÌNH CÁC LỚP CÀI ĐẶT 37
IV THIẾT KẾ DỮ LIỆU 40
1 Mô hình quan hệ 40
2 Mô tả chi tiết các bảng dữ liệu 41
CHƯƠNG IV: HIỆN THỰC VÀ KẾT QUẢ 49
I YÊU CẦU HỆ THỐNG 49
II HIỆN THỰC VÀ KẾT QUẢ 49
1 Giao diện trang chủ 49
2 Trang chấp nhận Khách hàng: 51
3 Thêm nhân viên mới và hệ thống: 52
4 Trang post thông tin và sự kiện: 53
5 Trang xem thông tin và ñổi mật khẩu 54
6 Khách hàng 55
7 Bảng báo giá 58
8 Hợp ñồng 60
9 Đơn ñặt hàng: 62
10 Trang ñăng nhập vào hệ thống của Admin: 63
11 Tạo mới và hiệu chỉnh loại khách hàng 64
12 Tạo mới và hiệu chỉnh Lĩnh vực 65
Trang 3H U
H
CHƯƠNG V: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 66
I ĐÁNH GIÁ 66
1 Các kết quả cơ bản ñạt ñược 66
2 Các kết quả chưa ñạt ñược 66
II HƯỚNG PHÁT TRIỂN 67
III KẾT LUẬN 67
1 Các biểu mẫu tham khảo 68
2 Tài liệu tham khảo 72
3 Trang Web tham khảo 72
Trang 4H U
H
THÔNG TIN IPS (INFORMATION PROCESSING SYSTEM)
I GIỚI THIỆU
Ngày nay, công nghệ thông tin ñã và ñang ñạt ñược nhiều thành tựu quan trọng và ñược ứng dụng rất nhiều trong các lĩnh vực của cuộc sống ñặc biệt là ñối với các ngành khoa học và quản lý, giúp cho các công việc phức tạp trở nên dễ dàng hơn với những người thực hiện
FIS12 là một công ty chuyên về lĩnh vực công nghệ thông tin, cung cấp các giải pháp phần mềm và phần cứng Bên cạnh ñó công ty còn là nhà cung cấp các sản phẩm liên quan ñến lĩnh vực công nghệ thông tin Hãy thử tưởng tượng với một khối lượng công việc khá lớn như quản lý khách hàng, quản lý các bảng báo giá giúp khách hàng có cái nhìn tổng quát về các sản phẩm, quản
lý các ñơn ñặt hàng, các hợp ñồng…, với cách làm thủ công như trước ñây sẽ mất rất nhiều thời gian trong việc lưu trữ dữ liệu của các công việc quản lý trên
và sai sót chắc chắn xảy ra và việc sửa chữa sai sót cũng sẽ mất nhiều thời gian không kém
Việc xây dựng một hệ thống xử lý thông tin (Information processing system) sẽ giúp cho việc quản lý bán hàng trở nên thuận tiện hơn, giảm thiểu những sai sót không ñáng có, giúp người quản lý cảm thấy thoải mái hơn trong công việc Việc sửa chữa cập nhật thông tin cũng sẽ dễ dàng hơn
Trang 5H U
H
II YÊU CẦU HỆ THỐNG IPS
IPS (Information Processing System) là hệ thống xử lý thông tin của công ty FIS-12 từ giai ñoạn bán hàng ñến giai ñoạn triển khai và hỗ trợ khách hàng Là trang thông tin ñể các thành viên trong công ty FIS-12 sẽ ñưa thông tin và sự kiện lên Hệ thống phân cấp quyền hạn của công ty FIS-12 bao gồm: Giám ñốc là người có quyền hành cao nhất, Giám ñốc sẽ quản lý tất cả các BU (Business Unit – Khối kinh doanh), BO (Back Office) và bộ phận kỹ thuật Mỗi
BU bao gồm trưởng BU và các AM (Account Manager – Người quản lý khách hàng) Bản thân trưởng BU cũng là một AM
Điểm khác biệt nổi bật của hệ thống IPS này chính là hệ thống không quản lý sản phẩm (mã hàng, quy cách, số lượng tồn…) Việc quản lý sản phẩm
sẽ do hệ thống khác của công ty quản lý Các sản phẩm khi AM cung cấp ñể lập bảng báo giá hay ñơn ñặt hàng sẽ ñược sao chép từ nơi khác sang Hơn nữa, ngoài việc phân quyền rõ ràng giữa người dùng và nhà quản trị, trong hệ thống người dùng, IPS còn phân rõ quyền của từng người (VD: Giám ñốc khi truy cập vào sẽ có thể thao tác ñược những gì của hệ thống IPS, và AM sẽ có quyền gì…)
Giám ñốc
Trang 61 A.M (Account Manager)
AM là nhân viên bán hàng của công ty AM sẽ chịu trách nhiệm giao tiếp với khách hàng thông qua các bảng chào giá Ngoài ra, AM còn lập ra các hợp ñồng, các ñơn ñặt hàng và các phiếu xuất tạm xuất bán Trưởng BU cũng
là một AM
2 Khách hàng (M.A.: Mapping Account)
Có thể nói, khách hàng là ñối tác quan trọng không thể thiếu của hệ thống FIS-12 Tuy nhiên ñể trở thành khách hàng của công ty, trước tiên AM phải cung cấp thông tin chính xác của khách hàng cho giám ñốc duyệt qua Nếu giám ñốc ñồng ý thì khách hàng ñó sẽ trở thành khách hàng thật sự của công ty Lúc ñó khách hàng sẽ giao tiếp với công ty thông qua AM Sau khi trở thành khách hàng chính thức của công ty thì thông tin cá nhân của khách hàng sẽ không thể thay ñổi Nếu có thay ñổi, AM phải thông qua Giám ñốc hiệu chỉnh lại thông tin này
3 Bảng báo giá
Là bản thông tin về giá cả cũng như các thông tin chi tiết về sản phẩm
mà AM cung cấp cho khách hàng tham khảo Bảng báo giá ñược lập cho riêng
Đặt hàng
Xuất tạm Xuất bán
Triển Khai
Hỗ Trợ
% Doanh
Số HT
Trang 7Sau khi khách hàng ñã ñồng ý với bảng chào giá mà AM ñưa ra thì AM
sẽ tiến hành lập hợp ñồng với khách hàng ñó Nội dung hợp ñồng sẽ quy ñịnh
rõ nghĩa vụ và quyền lợi giữa 2 bên Hệ thống IPS sẽ lưu lại các thông tin chung về hợp ñồng, còn các thông tin chi tiết sẽ ñược ñính kèm theo bản hợp ñồng này
5 Đặt hàng
Nếu hàng trong kho không ñủ ñể cung cấp, AM sẽ tiến hành ñặt hàng Đơn dặt hàng này không nhất thiết phải ñặt cho hợp ñồng nào Việc cập nhật lại xem hàng ñã ñặt về ñến kho hay chưa sẽ do nhân viên thuộc B.O quản lý
6 Xuất tạm
Sau khi lập hợp ñồng, nếu sản phẩm không ñủ số lượng ñể cung cấp cho khách hàng thì AM sẽ tiến hàng ñặt hàng Trong trường hợp nếu khách hàng cần sử dụng gấp thì AM sẽ lập phiếu xuất tạm ñể xuất các mặt hàng có quy cách tương tự cho khách hàng sử dụng trước Các mặt hàng này sẽ ñược trả về kho trước khi chính thức xuất bán
7 Xuất bán
Trước khi xuất bán, phải bảo ñảm rằng các mặt hàng xuất tạm cho hợp ñồng phải ñược trả về kho Phiếu xuất bán là phiếu thực hiện việc xuất tất cả các mặt hàng ñã nêu trong hợp ñồng cho khách hàng Kết thúc việc xuất bán, doanh thu sẽ ñược tính vào tổng % doanh số của AM
8 Triển khai và hỗ trợ
Đây là giai ñoạn cuối cùng trong quá trình kinh doanh Sau khi xuất bán chính thức các sản phẩm cho khách hàng, công ty sẽ bắt ñầu triển khai thực hiện việc cài ñặt các thiết bị cho khách hàng, ñồng thời hỗ trợ kỹ thuật cho
Trang 8H U
H
III CÁC PHÂN HỆ CỦA HỆ THỐNG
1 AMM – Account Manager Management
Quản lý danh sách AM gồm có các thông tin sau:
Các chức năng liên quan: Create, Input, Output, Modify và REPORT (FIS12, BUxx,…)
2 MAM - Mapping Account Management
Thông tin cần quản lý:
• Người liên hệ; chức danh; email, handphone
Trang 9• Đánh giá hiệu quả bảng chào giá
• Output Excel file, Jpeg (Phase 2)
4 Contract/P.O Management
•
Trang 10• Người ñại diện ñứng ký Hợp ñồng: Bên A, bên B
• Giá trị hợp ñồng: chưa VAT và có VAT ; (cho cả tiền VND và Tiền USD, nêú có là USD thì quy ñổi thêm VND và ngược lại)
• Điều kiện thanh toán: 30% sau khi ký Hợp ñồng; 70% sau khi giao hàng và nghiệm,
• Hình thức thanh toán: Tiền mặt hoặc Chuyển khoản
• Thời hạn hoàn tất hợp ñồng
• Điều kiện phạt về giao chậm và chậm thanh toán
• Các ñiều kiện ñặt biệt khác
• Nội dung hợp ñồng (hay danh mục thiết bị); file ñính kèm
Trang 11H U
H
6 Sales Invoice/Temporary Sales Management
Trang 12H U
H
CHƯƠNG II: CƠ SỞ LÝ THUYẾT
I GIỚI THIỆU SƠ LƯỢC VỀ WEB
World Wide Web là khái niệm mà người dùng Internet hiện nay quan tâm nhiều nhất (viết tắt là WWW hay gọi ngắn gọn là “Web”) Web là một công cụ, hay ñúng hơn là dịch vụ của internet Web chứa thông tin bao gồm văn bản, hình ảnh, âm thanh và thậm chí video ñược kết hợp với nhau Web cho phép chúng ta có thể vươn tới mọi ngóc ngách trên “Net”, là những ñiểm chứa cơ sở dữ liệu, gọi là Web site Nhờ có Web, nên cho dù không phải là một chuyên gia, chúng ta vẫn có thể sử dụng Internet
World Wide Web xuất hiện bởi nhu cầu của các viện và trường ñại học
và mặc dầu các cơ sở khoa học này vẫn ñóng vai trò chủ ñạo nhưng Web ñã biến thành nơi chứa thông tin ña truyền thông, giải trí và liên lạc Tốc ñộ phát triển của Web nhanh hơn bất kỳ phương tiện nào có từ trước tới nay
World Wide Web ñược xem như một xa lộ thông tin tốt nhất Với những công nghệ tiên tiến ñang ñược phát triển, chúng ta sẽ có ñược âm thanh, hình ảnh chất lượng cao từ Web Web có sức hấp dẫn lớn bởi vài lý do, trước hết nó cho phép hiển thị thông tin mà chúng ta truy tìm theo chế ñộ ñồ họa, hơn hẳn những dòng văn bản buồn tẻ trước ñây Tuy nhiên ñiều ñáng nói nhất khi ñề cập về Web là khả năng bao trùm rộng lớn của nó, trên Web thông tin của chúng ta có thể ñến với tất cả mọi người và ngược lại
Thông qua môi trường Internet, Web chính là một phương tiện cực kỳ hữu hiệu cho việc tìm kiếm thông tin, hiển thị thông tin, kết nối mọi người lại với nhau Mặt khác, Web chính là bộ bách khoa toàn thư khổng lồ Cứ mỗi ngày trôi qua thì có hàng trăm trang Web lại ra ñời, ñiều ñó cho thấy nhu cầu
về thông tin của người dùng ngày một tăng Tương lai của Web ñầy hứa hẹn, cũng như internet, những công nghệ tiên tiến dựa trên Web ngày một phát triển, tạo thêm sự tiện lợi cho những người duyệt Web chẳng hạn với các công
Trang 13II GIỚI THIỆU VỀ CÔNG NGHỆ NET
1 Giới thiệu về bộ khung NET (.NET Framework)
Microsoft NET cung cấp cho chúng ta tất cả các công cụ và công nghệ giúp cho chúng ta phát triến các ứng dung web phân tán cũng như các ứng dụng truyền thống Nói ñến nền NET (.NET Platform) thì phải nói ñến:
• Các sản phẩm NET như Visual Studio.NET cùng các ngôn ngữ lập trình thông dụng như Visual C#.NET, Visual Basic.NET, Visual C++, …
• Các dịch vụ NET (.NET Services)
• Bộ khung NET (.NET Framework)
Trang 14• Quản lý và thực thi các ứng dụng và các Web Service
• Cung cấp các tính năng về bảo mật cũng như việc quản lý bộ nhớ
• Bao gồm thư viện các lớp (Framework class library)
• Bao gồm bốn ngôn ngữ lập trình chính: Visual C#.NET, Visual Basic.NET, Managed C++ and Jscript.NET
• Bao gồm môi trường thực thi ngôn ngữ chung viết tắt là CLR (Common Language Runtime)
2 Môi trường thực thi ngôn ngữ chung (Common Language
Runtime)
• Quản lý sự thực thi mã chương trình vào thời gian chạy cho tất cả các ứng dụng viết từ nhiều ngôn ngữ khác nhau ñược hỗ trợ bởi NET Framework Quá trình biên dịch bao gồm hai giai ñoạn:
− Chương trình ñược biên dịch thành ngôn ngữ trung gian viết tắt MSIL( Microsoft Intermediate Language)
− Sau ñó mã MSIL sẽ ñược biên dịch thành mã máy và thực thi
• Cung cấp một tập hợp các dịch vụ cho tất cả các ngôn ngữ tuân theo ñặc tả của CLR như xử lý ngoại lệ (Exception), bảo mật, gỡ rối vv
• Đơn giản hóa việc phát triển và quản lý ứng dụng, cung cấp một môi trường thực thi mạnh mẽ, hiệu quả và bảo mật, hỗ trợ nhiều ngôn ngữ
Trang 15CTS là một ñặc tả hình thức có nhiệm vụ mô tả một kiểu dữ liệu nào
ñó (lớp, cấu trúc, giao diện, kiểu dữ liệu bẩm sinh, vv…) và các kiểu dữ liệu này phải ñược ñịnh nghĩa thế nào mà CLR có thể chấp nhận làm việc ñược Ngoài ra CTS cũng ñịnh nghĩa một số cấu trúc cú pháp (chẳng hạn nạp chồng toán tử) mà một số ngôn ngữ ñược NET hỗ trợ có thể chấp nhận hỗ trợ hoặc không
4 Đặc tả ngôn ngữ thông dung (Common Language
Specification – CLS)
CLS là một tập hợp những qui tắc hướng dẫn mô tả một cách chi tiết những tính năng tối thiểu và trọn vẹn mà một trình biên dịch NET phải chấp nhận hỗ trợ ñể có thể tạo những ñoạn mã hoạt ñộng theo ñúng những qui tắc do CLR ñặt ra và ñồng thời có thể ñược sử dụng một cách ñồng nhất giữa những ngôn ngữ ñược hỗ trợ bởi NET
5 Thư viện lớp cơ sở NET (.NET base class library)
Thư viện lớp cơ sở NET là một tập hợp rất nhiều các lớp hỗ trợ cho công việc lập trình của lập trình viên ñược ñơn giản hơn, cho phép các lập trình viên làm ñược nhiều việc hơn mà trước ñây chỉ có thể thực hiện ñược thông qua Windows API
Thư viện lớp cơ sở bao gồm:
• Các kiểu dữ liệu bẩm sinh chẳng hạn int, float, char, vv…
• Hỗ trợ việc lập trình giao diện GUI (Graphic User Interface)
• Hỗ trợ lập trình web với công nghệ ASP.NET
Trang 16• NET Attributes và Reflection
6 Giới thiệu Visual C#.NET
Visual C# NET là một công cụ phát triển ứng dụng của Microsoft sử dụng ngôn ngữ C# Nó bao gồm một môi trường phát triển tương tác và các giao diện thiết kế trực quan cho quá trình xây dựng các ứng dụng windows và các ứng dụng web, một trình biên dịch và một trình gỡ lỗi (debugger) Visual C# NET là một phần trong bộ sản phẩm Visual Studio NET, bao gồm các ngôn ngữ khác như Visual Basic NET, Visual C++ NET và ngôn ngữ kịch bản Jscript Tất cả những ngôn ngữ này ñều cung cấp một cơ chế truy xuất dến
bộ khung làm việc NET (.NET Framework) bao gồm môi trường thực thi chung (common execution engine) và thư viện các lớp
7 Giới thiệu ADO.NET
ADO.NET là một công nghệ truy cập cơ sở dữ liệu mới nhất viết tắt của ActiveX Data Objects for NET Framework, có thể truy cập nhiều nguồn dữ liệu khác nhau chẳng hạn Access, SQL Server, Oracle, v.v
ADO.NET là một tập các lớp dùng cho việc kết nối tới các nguồn dữ liệu khác nhau ñể truy xuất, thao tác và cập nhật dữ liệu, những lớp này là một phần của bộ khung NET Một trong những mục ñích của các lớp ADO.NET là cung cấp một kiến trúc cho việc xây dựng những ứng dụng mạnh mẽ và uyển chuyển Ngoài ra ADO.NET còn cung cấp một tập hợp khá phong phú các thành phần dữ liệu (data component) cho phép tạo những ứng dụng truy xuất
Trang 17ADO.NET trông giống ADO nhưng ñiểm khác biệt chính là ADO.NET
là một kiến trúc dữ liệu không kết nối Trong kiến trúc dữ liệu không kết nối,
dữ liệu ñược truy xuất từ cơ sở dữ liệu và ñược cache vào bộ nhớ trên máy của bạn Bạn thao tác dữ liệu trên máy của bạn và kết nối vào cơ sở dữ liệu khi cập nhật dữ liệu hoặc truy xuất dữ liệu mới Điểm thuận lợi lớn nhất trong kiến trúc này là giúp bạn tránh ñược những vấn ñề liên quan ñến các ñối tượng kết nối ñến cơ sở dữ liệu Các kết nối ñến cơ sở dữ liệu là nguồn tài nguyên nhạy cảm
và thật khó có thể duy trì hàng trăm ngàn kết nối song song cùng một lúc
ADO.NET kết nối ñến cơ sở dữ liệu dể truy xuất dữ liệu và kết nối lần nữa ñể cập nhật dữ liệu ñã ñược thay ñổi Hầu hết các ứng dụng sử dụng phần lớn thời gian ñể ñọc và trình bày dữ liệu ADO.NET cung cấp một tập con của
dữ liệu không kết nối cho mục ñích ñọc và trình bày dữ liệu của bạn
Một vài ñặc tính nổi bật của ADO.NET:
• Khả năng thao tác giữa các thành phần (interoperability): Ngôn ngữ ñược sử dụng ñể chuyển dữ liệu giữa các nguồn dữ liệu và dữ liệu sao chép trong bộ nhớ là tài liệu XML chuẩn, cho phép khả năng thao tác dữ liệu giữa các hệ thống khác nhau XML giữ một vai trò chủ yếu trong ADO.NET Mô hình ADO.NET sử dụng XML ñể trữ
dữ liệu trên cache và chuyển giao dữ liệu giữa các ứng dụng
• Khả năng duy trì (maintainability): ADO.NET duy trì dữ liệu ñược cache trong bộ nhớ cục bộ và làm cho các ứng dụng có thể mở rộng một cách logic giữa các tầng (tier) khác nhau trong ứng dụng n tầng (n-tier application)
Trang 18XML là một chuẩn dựa trên văn bản và hơn thế nữa là một chuẩn
mở vì vậy có thể ñược sử dụng cho nhiều mục ñích khác nhau Dưới ñây
là danh sách các chức năng mà bạn có thể thao tác với XML ñược hỗ trợ trong ADO.NET:
• Đọc dữ liệu từ tài liệu XML
• Đổ dữ liệu từ tài liệu XML vào trong DataSet
• Tạo lược ñồ XML (XML Schema) cho dữ liệu ở bên trong DataSet và sau ñó sử dụng lược ñồ này ñể ghi dữ liệu như XML
• Sử dụng lược ñồ XML ñể có thể thao tác với tài liệu XML như một DataSet bằng lập trình
Trang 19• Thiếu sự hỗ trợ ñối với các kiểu dữ liệu mạnh, vốn ñược hỗ trợ
trong các ngôn ngữ khác như Visual Basic và C++
• Thiếu sự hỗ trợ ñối với môi trường biên dịch, tất yếu dẫn ñến những vấn ñề về mặt thể hiện và mặt linh ñộng của trang web, vốn là những yêu cầu tất yếu và cần thiết ñối với những trang
web hiện ñại
ASP không cung cấp một cấu trúc vốn có dành cho việc phát triển Web Đối với các trang web tĩnh, chúng ta thường thấy các tập tin nguồn tương ñối nhỏ chủ yếu là các tập tin HTML thuần túy, nhưng ñối với những trang Web ñộng như ASP thì bên cạnh những tập tin HTML thuần túy, chúng ta phải xây dựng thêm các mã kịch bản cho trang Web
ñể xử lý thông tin, ñiều này lại dẫn ñến một vấn ñề khác Việc trộn lẫn giữa mã HTML dành cho việc thiết kế trang web và các mã kịch bản sẽ gây nên nhiều phiền toái cho cả những người chuyên viên thiết kế giao diên cho web và những lập trình viên viết mã kịch bản Việc phát triển
và bảo trì cho trang Web sau này cũng gặp rất nhiều khó khăn Hơn nữa việc pha trộn giữa mã thiết kế và mã kịch bản sẽ khiến cho mã nguồn trở nên phình to hơn, việc sử dụng lại các ñoạn mã ñã viết cũng gặp không
ít khó khăn Đây chắc chắn không phải là một giải pháp toàn diện
Trang 20Đây mới chỉ là một vài khó khăn mà chúng ta thường gặp phải khi xây dựng một ứng dụng web bằng ASP Cùng với sự thay ñổi tự nhiên một cách nhanh chóng của Internet cũng ñòi hỏi sự thay ñổi nhanh
ở các ứng dụng Web Các ngôn ngữ lập trình Web mạnh cùng với môi trường phát triển nhanh tương ứng, mã có thể ñược sử dụng lại… chính
là những ñòi hỏi, yêu cầu từ những nhà phát triển Web và hầu như thiếu
sự hỗ trợ trong ASP Cùng với sự lớn mạnh của những ứng dụng thương mại, các ứng dụng chia sẽ dữ liệu trong mạng ngang hàng ñang là những thách thức lớn ñối với các nhà phát triển Web
b Giới thiệu ASP.NET và các tính năng vượt trội
Từ những vấn ñề ñã ñược nêu ở trên, có thể nói rằng ASP.NET ra ñời nhằm giải quyết những khó khăn tồn ñọng ở ASP và còn hơn thế nữa ASP.NET cung cấp một loạt những tính năng mới:
• Làm cho mã nguồn trong sáng và rõ ràng hơn có nghĩa là có
sự tách biệt rõ ràng giữa mã HTML thiết kế giao diện Web,
mã lập trình hay còn ñược gọi là codebehind
• Tăng cường tính bảo mật, ñộ tin cậy cho Web
• Cung cấp sự hỗ trợ tốt hơn cho các trình duyệt và các thiết bị khác nhau
• Hỗ trợ nhiều ngôn ngữ lập trình Web khác nhau: ASP bị giới hạn bởi hai ngôn ngữ VBScript và JavaScript Bộ khung làm
Trang 21• Xử lý mã lập trình ở phía server: Một trong những khó khăn lớn nhất của các trang ASP chính là các trang này chỉ ñơn giản ñịnh nghĩa một chức năng duy nhất bắt ñầu từ ñầu trang
và kết thúc ở cuối trang Nội dung trang ñược trình bày theo thứ tự của trang, ñó có thể là mã HTML thuần hoặc là mã HTML ñược phát sinh từ mã ASP Không có cách nào có thể ñịnh vị ñược các control HTML ngoại trừ thể hiện chúng như là một phần của nội dung trang ASP.NET có thể giải quyết vấn ñề này bằng cách giới thiệu một mô hình khai báo dựa trên server dành cho các controls Khái niệm này xem ra
có vẻ xa lạ ñối với các lập trình viên ASP bởi vì các control ñược khai báo trên server, ñược lập trình trên server nhưng
sự kiện thì ñược ñiều khiển từ phía client
• Cung cấp các trình ñiều khiển có thể lập trình ñược
• Cung cấp các sự kiện có thể ñiều khiển ñược bằng cách lập
trinh
• Hỗ trợ các thành phần dựa trên XML
• Việc trình bày trang web trở nên tốt hơn nhờ kết hợp với các
ñoạn mã ñã ñược biên dịch
• Dễ dàng cấu hình và thể hiện các trang web
Trang 22chạy trên phía server
ASP.NET chứa ñựng một số lượng lớn tập các trình ñiều khiển
HTML Hầu hết các thẻ HTML trên trang web ñều có thể ñược ñịnh nghĩa như các ñối tượng ñiều khiển của ASP.NET, là các ñối tượng mà
có thể ñiều khiển ñược bằng các ñoạn mã lập trình kịch bản, bên cạnh ñó ASP.NET cũng chứa ñựng một tập các trình ñiều khiển nhận dữ liệu vào
có thể lập trình ñược chẳng hạn như các hộp danh sách và các trình ñiều khiển kiểm tra tính hợp lệ của dữ liệu nhập vào Đặc biệt ASP.NET còn cung cấp một trình ñiều khiển mới ñó là ô lưới dữ liệu giúp cho việc sắp xếp, phân trang, trình bày dữ liệu một cách thuận tiện nhất
Nhờ kết hợp với các ñoạn mã ñã biên dịch mà quá trình thực thi ñược tăng lên ñáng kể Trong lần yêu cầu ñầu tiên của trình duyệt web
ñối với trang ASP.NET trên máy chủ, máy chủ sẽ biên dịch mã ASP.NET và giữ một bản sao chép trong bộ nhớ
Việc cấu hình ASP.NET ñược thực hiện trên tập tin dữ liệu phẳng một cách dễ dàng, và có thể thay ñổi tập tin cấu hình trong khi ứng dụng ñang chạy mà không cần phải khởi ñộng lại máy chủ
ASP.NET không hoàn toàn tương thích với các phiên bản trước của ASP cho nên hầu hết các ñoạn mã ASP cần một số thay ñổi mới có
thể chạy dưới nền ASP.NET
Một trong những tính năng khá hay của ASP.NET chính là Web Form giúp cho các nhà phát triển web có thể tạo ra giao diện người sử dụng có khả năng lập trình ñược cho ứng dụng web của mình Một trang web form trình bày thông tin ñến người dùng trên bất cứ trình duyệt web nào hoặc bất kỳ thiết bị di ñộng nào Các trang web form ñều dựa trên công nghệ ASP.NET của Microsoft mà trong ñó các ñoạn mã sẽ ñược
Trang 23H U
H
thực thi một cách ñộng trên máy chủ và trả về trang web theo yêu cầu
của người dùng Các web form ñược chia thành hai thành phần chính:
• Thành phần hiển thị trực quan (visual): Các thành phần hiển thị
ñược xem như bề mặt của trang web, chứa ñựng các văn bản tĩnh,
mã HTML, các trình ñiều khiển phía máy chủ ASP.NET hay nói cách khác thành phần hiển thị hoạt ñộng như một khung chứa văn bản tĩnh và các trình ñiều khiển mà bạn muốn hiển thị thông tin
về cho người dùng
• Thành phần luận lý: Đây chính là các ñoạn mã mà bạn tạo ra
nhằm tương tác với trang Web Form, thành phần nằm tách biệt trong một tập tin ñối với thành phần hiển thị, thành phần này có thể ñược viết bằng các ngôn ngữ lập trình khác nhau như Visual Basic, Visual C#, Visual C++…
Dưới ñây là cấu trúc của các file Web Form
Trang 24H U
H
III GIỚI THIỆU VỀ SQL SERVER
Microsoft SQL Server 2000 là một hệ quản trị cơ sở dữ liệu quan hệ (Relational Database Management System (RDBMS)), cung cấp cách tổ chức
dữ liệu bằng cách lưu chúng vào các bảng dữ liệu Một RDBMS bao gồm các
cơ sở dữ liệu (databases), database engine và các ứng dụng dùng ñể quản lý dữ liệu và các bộ phận khác nhau trong RDBMS Dữ liệu quan hệ có thể ñược nhóm vào các bảng và các quan hệ có thể ñược ñịnh nghĩa giữa các bảng với nhau, sử dụng Transact-SQL ñể trao ñổi dữ liệu giữa máy Client và máy chủ SQL
SQL Server ñược tối ưu ñể có thể chạy trên môi trường cơ sở dữ liệu rất lớn lên ñến Tera-Byte và có thể phục vụ cho hàng ngàn người dùng cùng lúc SQL Server 2000 có thể kết hợp rất tốt với các server khác như Microsoft Internet Information Services (IIS), Proxy server, E-commerce server…
1 Các thành phần cơ bản của SQL Server
SQL Server ñược cấu tạo bởi nhiều thành phần như Relational Database Engine, Analaysis Service, English Query… Các thành phần này khi phối hợp với nhau sẽ tạo thành một giải pháp hoàn chỉnh giúp cho việc lưu trữ và phân tích dữ liêu một cách dễ dàng
• Relational Database Engine - Lõi của SQL Server: Đây là một engine có khả năng chứa dữ liệu ở các quy mô khác nhau dưới dạng bảng (table) và hỗ trợ tất cả các kiểu kết nối dữ liệu (data connection) thông dụng của Microsoft như ADO (ActiveX Data Object), OLE DB, ODBC (Open Database Connectivity) Ngoài
ra nó còn có khả năng tự ñiều chỉnh ví dụ như sử dụng thêm tài nguyên của máy khi cần và trả lại tài nguyên cho máy khi người
dùng log off
• Replication-Cơ chế tạo bản sao
Trang 25H U
H
• Data Transformation Service-Dịch vụ chuyển dịch dữ liệu: dùng
ñể di chuyển dữ liệu giữa các server khác nhau
• Analysis Service: Dịch vụ phân tích dữ liệu
• English Query: Đây là một dịch vụ giúp cho việc truy vấn bằng
tiếng anh
• Meta Data Service: Dịch vụ này giúp cho việc chứa ñựng và thao
tác với Meta Data dễ dàng hơn Meta Data là những thông tin mô
tả về cấu trúc của dữ liệu trong cơ sở dữ liệu
2 Cấu trúc của SQL Server
Đặc ñiểm của SQL Server là Multiple-Instance (nhiều thể hiện) cho
nên khi nói ñến một server nào ñó thi ta thường nói ñến một Instance (thể
hiện) của SQL Server 2000, thông thường ñó là Default Instance Một Instance của SQL Server 2000 thường có 4 cơ sở dữ liệu hệ thống (system database) và một hoặc nhiều cơ sở dữ liệu do người dùng ñịnh nghĩa (user database):
• Master: Chứa các thông tin cấp hệ thống (system-level
information) bao gồm thông tin về các cơ sỡ dữ liệu khác trong
hệ thống như vị trí của các tập tin dữ liệu, các tài khoản ñăng nhập (login account), các thiết lập cấu hình hệ thống của SQL
Server (system configuration settings)
• Tempdb: Chứa tất cả những table hay những stored procedured
ñược tạm thời tạo ra trong quá trình làm việc bởi user nào ñó hay
do bản thân SQL Server Engine Các table hay các stored procedure này sẽ tự ñộng biến mất khi ta khởi ñộng lại SQL
Server hay ta ngắt kết nối
Trang 26H U
H
• Model: Cơ sở dữ liệu này ñóng vai trò như một cơ sở dữ liệu mẫu
cho các cơ sở dữ liệu khác Nghĩa là khi một cơ sở dữ liệu do người dùng ñịnh nghĩa ñược tạo ra thì SQL Server sẽ sao chép toàn bộ các system objects (tables, stored procedures,…) từ cơ sở
dữ liệu mẫu sang cơ sở dữ liệu mới vừa tạo
• Msdb: Cơ sở dữ liệu này ñược SQL Server Agent sử dụng ñể
hoạch ñịnh các báo ñộng và các công việc cần làm (schedule
alerts and jobs)
3 Cấu trúc vật lý của một cơ sở dữ liệu SQL Server
Mỗi một cơ sở dữ liệu trong SQL Server ñều chứa ít nhất một tập tin
dữ liệu chính (primary) và có thể có thêm một hoặc nhiều tập tin dữ liệu phụ (secondary) và một tập tin transaction log
• Tập tin dữ liệu chính (primary data file) (thường có phần mở rộng mdf): ñây là tập tin chứa dữ liệu và các bảng hệ thống (system tables)
• Tập tin dữ liệu phụ (secondary data file) (thường có phần mở rộng ndf): thường chỉ ñược sử dụng khi cơ sở dữ liệu ñược phân chia ñể có thể ñược lưu trữ trên nhiều ñĩa khác nhau
• Tập tin Transaction log (Transaction log file) (thường có phần
mở rộng *.ldf): ñây là tập tin ghi lại tất cả những gì thay ñổi diễn
ra trong cơ sở dữ liệu và chứa ñầy ñù thông tin ñể có thể roll back hay roll forward khi cần
Trang 27H U
H
4 Cấu trúc logic của một cơ sở dữ liệu SQL Server
Hầu như mọi thứ trong SQL Server ñược tổ chức thành các object ví
dụ như tables, views, stored procedures, triggiers… Những system ojbect thường bắt ñầu bằng chữ sp hay sys Một số system object thường dùng:
• sp_help [‘object’]: Cung cấp thông tin về database object (table, view, stored procedure, trigger,…) hay về data type
• sp_helpdb [‘database’]: Cung cấp thông tin về một database nào
Transact-• Dịch vụ SQL Server Agent: hỗ trợ lập chương trình, thực thi tác
vụ, cảnh báo, thông báo và kế hoạch bảo trì cơ sở dữ liệu
Trang 28• Dịch vụ Microsoft Search: hỗ trợ tìm kiếm và lập chỉ mục văn bản ñầy ñủ Lập chỉ mục văn bản ñầy ñủ cho phép thực hiện các tìm kiếm phức tạp hơn ñược thực hiện trên dữ liệu chuỗi ký tự
IV BÀN THÊM VỀ AJAX
AJAX (Asynchoronus Javascript And XML – tạm dịch là truy cập dữ liệu theo kiểu bất ñồng bộ bằng Javascript và XML), ñược Jesse James Garrett của công ty Adapative ñịnh nghĩa và tóm gọn lại từ cụm từ “Asynchronus Javascript+CSS+DOM+XMLHttpRequest”, lần ñầu tiên xuất hiện vào tháng 2 năm 2005 Tuy mới mẻ nhưng kết quả mà AJAX mang lại cho các nhà lập trình Web cũng như người dùng Web thật ñáng kinh ngạc
Điều kinh ngạc mà AJAX ñem lại chính là tốc ñộ tuy cập Web mà trọng
ñiểm tập trung ở ñối tượng XMLHttpRequest Đây là ñối tượng ñược Microsoft
tích hợp vào trình duyệt Web IE5.1 dưới dạng một ActiveX
Có thể nói AJAX không phải là một công nghệ mà là tập hợp nhiều công nghệ khác ñể tạo ra ñiều kỳ diệu này Với mô hình Web bình thường, sau khi gửi yêu cầu lên máy chủ, máy khách phải chờ cho máy chủ phản hồi lại thì mới có thể tiếp tục gửi yêu cầu Hơn nữa cũng với mô hình ấy, khi máy khách nhận phản hồi từ máy chủ thì cũng ñồng nghĩa với việc tải lại trang web, ñiều này làm tốn khá nhiều thời gian duyệt Web Và AJAX ñã cải thiện ñược ñiều
ñó ngay chính chữ A ñầu tiên (Asynchronus) trong cái tên của mình Với AJAX, các yêu cầu từ máy khách sẽ lần lượt gửi ñến máy chủ mà không cần chờ phản hồi, ñồng thời trang web sẽ chỉ hiển thị lại một phần những gì ñã thay
Trang 29Mô hình ứng dụng Web thông thường
Mô hình ứng dụng Web có sử dụng AJAX
Trang 30Quan ly hop dong
Quan ly don dat hang Quan ly xuat ban
Quan ly xuat tam
Giam doc
Trang 31Nha quan tri
3 Mô hình Use case cho các tác vụ của Admin
cap nhat cac tham soThem loai khach hangThem linh vuc khach hang
Nha quan tri
Them tinh trang bang du bao
Trang 32Dang ky khach hang moi
Dang ky khach hang moi
Thong tin khach hang
Thong tin khach hang
Them moi
Lay danh sach khach hang moi
Lay danh sach khach hang moi
Lay danh sach khach hang
Chap nhan
Khong chap nhan
Chap nhan
Khong chap nhan
Huy khach hang tam
Huy khach hang tam
Luu thong tin khach hang moi
Luu thong tin bang du bao lien quan den khach hang
Tao bang du bao moi
Tao bang du bao moi
Thong tin bang du bao moi
Thong tin bang du bao moi
Luu bang du bao moi
Trang 33Tao bang bao gia
Thong tin bang bao gia moi
Thong tin bang bao gia moi
Luu thong tin bang bao gia
Luu chi tiet san pham cua bang bao gia moi
Huy bang bao gia
Huy bang bao gia
Danh sach bang bao gia can huy
Danh sach bang bao gia can huy
Huy bang bao gia
Cap nhat bang bao gia
Cap nhat bang bao gia
Thong tin bang bao gia moi
Thong tin bang bao gia moi
Cap nhat bang bao gia
Cap nhat chi tiet san pham bao gia
Trang 34Thong tin Hop dong moi Tao Hop dong moi
Tao Hop dong moi
Them Hop dong moi Thong tin Hop dong moi
Huy hop dong
Hop dong can huy
Huy Hieu chinh hop dong
Hop dong can hieu chinh
cap nhat thong tin moi
Trang 35Tao Don dat hang moi
Thong tin don dat hang moi
Thong tin don dat hang moi
Them Don dat hang moi Them thong tin chi tiet ve san pham dat hang
Hieu chinh don dat hang
Don dat hang can hieu chinh
Cap nhat thong tin don dat hang Cap nhat thong tin cac san pham co lien quan Huy don dat hang
Don dat hang can huy
Huy don dat hang Huy cac san pham co lien quan
5 Use-case ñăng ký nhân viên
Thong tin ve nhan vien
Kiem tra du lieu
Them nhan vien moi
Trang 36Kiem tra du lieu
Lay thong tin dang nhap() Thong tin dang nhap Thong bao thong tin dang nhap
7 Use-case nghiệp vụ của nhà quản trị
: Nha quan tri : GD_CapNhatThongTin :
DK_CapNhatTho
: LoaiKhachHang
: TinhTrang
: LinhVuc
Them loai khach hang
Thong tin ve loai khach hang
Them moi Cap nhat loai khach hang
Thong tin loai khach hang moi
Cap nhat
Them tinh trang
Thong tin ve tinh trang
Them tinh trang moi Cap nhat tinh trang
Thong tin tinh trang moi
Cap nhat
Them linh vuc moi
Cap nhat linh vuc
Thong tin ve linh vuc
Them linh vuc moi
Thong tin ve linh vuc moi
Cap nhat linh vuc
Trang 37NhanVien tenSuDung : string
connection : Connection ThietLapGiaTri() ThemMoi() CapNhat() Huy() LayDanhSachBU() LayDanhSachBUTheoFIS() TaoAMMoi()
Trang 38H U
H
TinhTrang maTinhTrang : int tenTinhTrang : string connection : Connection
ThietLapGiaTri() ThemMoi() CapNhat() Huy() LayDanhSachTinhTrang()
LinhVuc maLinhVuc : string tenLinhVuc : string connection : Connection
ThietLapGiaTri() ThemMoi() CapNhat() Huy() LayDanhSachLinhVuc()
LoaiKhachHang maLoaiKhachHang : string tenLoaiKhachHang : string connection : Connection
ThietLapGiaTri() ThemMoi() CapNhat() Huy() LayDanhSachLoaiKhachHang() LayThongTinhLoaiKhachHang()
BangDuBao maBangDuBao : int thoiGianDuBao : string sanPham : string nganSach : int thoiHanCuoi : int doiThuCanhTranh : string yeuCauHoTro : string ghiChu : string tinhTrang : TinhTrang khachHang : KhachHang connection : Connection
ThietLapGiaTri() LayDanhSachBangDuBao() LayThongTinBangDuBao()
connection : Connection
ThietLapGiaTri() ThemMoi() CapNhat() Huy() LayDanhSachKhacHang() LayThongTinhKhachHang()
AM
bu : BU
ThietLapGiaTri() ThemMoi() CapNhat() Huy() LayDanhSachAM() LayDanhSachAMTheoBU()
HopDong maHopDong : string ngayKy : int thoiHanHoanTat : int thoiGianGiaoHang : string diaDiemGiaoHang : string danhGiaHopDongURL : string giaTriHopDong : float giaTriHopDongVAT : float dieuKienThanhToan : string hinhThucThanhToan : string dieuKienBaoHanh : string giaoHangCham : string chamThanhToan : string cacDieuKienKhac : string noiDungHopDongURL : string benA : string
benB : string
am : AM khachHang : KhachHang connection : Connection
ThietLapGiaTri() ThemMoi() CapNhat() Huy() LayThongTinHopDong()
DonDatHang maDonDatHang : string tinhTrangHang : string nhaCungCap : string thoiHanGiaoHang : int hinhThucThanhToan : string hopDongNoi : string cacYeuCauKhac : string trongNuoc : bool ngayDatHang : int nguoiDeNghi : AM connection : Connection hopDongNoi : HopDong
ThietLapGiaTri() ThemMoi() CapNhat() Huy() LayDanhSachDonDatHang() LayThongTinDonDatHang() TaoSanPhamDatHangMoi()
Trang 39H U
H
NhanVien tenSuDung : string matKhau : string ten : string
ho : string ngaySinh : int email : string bangCap : string soTruong : string ngayVaoFPT : string quaTrinhCongTac : string vaiTro : string ThietLapGiaTri() LayThongTinNhanVien() LayDanhSachNhanVien()
KhachHang maKhachHang : string tenKhachHang : string tenVietTat : string diaChi : string maSoThue : string nguoiLienHe : string chucDanh : string email : string soDienThoai : string soFax : string dienThoaiDiDong : string quanHeVoiAM : string loaiKhachHang : LoaiKhachHang linhVuc : LinhVuc
connection : Connection ThietLapGiaTri() ThemMoi() CapNhat() Huy() LayDanhSachKhacHang() LayThongTinhKhachHang()
LoaiKhachHang maLoaiKhachHang : string tenLoaiKhachHang : string connection : Connection ThietLapGiaTri() ThemMoi() CapNhat() Huy() LayDanhSachLoaiKhachHang() LayThongTinhLoaiKhachHang()
TinhTrang maTinhTrang : int tenTinhTrang : string connection : Connection ThietLapGiaTri() ThemMoi() CapNhat() Huy() LayDanhSachTinhTrang() BangDuBao
LinhVuc maLinhVuc : string tenLinhVuc : string connection : Connection ThietLapGiaTri() ThemMoi() CapNhat() Huy() LayDanhSachLinhVuc()
SanPhamDatHang maSanPham : string moTaSanPham : string donGia : float vat : int soLuong : int giaMua : float giaBan : float hopDongNgoai : string ghiChu : string donDatHang : DonDatHang connection : Connection ThietLapGiaTri() ThemMoi() CapNhat() Huy() LayDanhSachSanPhamDatHang()
DonDatHang maDonDatHang : string tinhTrangHang : string nhaCungCap : string thoiHanGiaoHang : int hinhThucThanhToan : string hopDongNoi : string cacYeuCauKhac : string trongNuoc : bool ngayDatHang : int nguoiDeNghi : AM connection : Connection hopDongNoi : HopDong ThietLapGiaTri() ThemMoi() CapNhat() Huy() LayDanhSachDonDatHang() LayThongTinDonDatHang() TaoSanPhamDatHangMoi()
connection : Connection ThietLapGiaTri() ThemMoi() CapNhat() Huy() LayDanhSachBU() LayDanhSachBUTheoFIS() TaoAMMoi()
Connection connection : SqlConnection command : SqlCommand transaction : SqlTransaction SetParameter()
ExecuteNonQuery() GetDataReader() GetDataTable() Close() Dispose() BeginTransaction() CommitTransaction() RollBackTransaction()
Trang 40MaBangDuBao ThoiGianDuBao SanPham NganSach ThoiHanCuoi DoiThuCanhTranh YeuCauHoTro GhiChu
SANPHAMDATHANG
MaSanPham MoTaSanPham DonGia
VAT SoLuong GiaBan GiaMua HopDongNgoai
NhanVien
TenSuDung MatKhau Ten Ho NgaySinh DiaChi DienThoai DiDong BangCap SoTruong NgayVaoFPT QuaTrinhCongTac Email
VaiTro TrucThuoc
FIS
FISID GiamDoc
BU
BUID TruongBU