Luận văn Xây dựng hệ thống trợ giúp sắp xếp lịch sử dụng phòng

 

MỤC LỤC

 

PHẦN A: XÂY DỰNG CHƯƠNG TRÌNH

 

CHƯƠNG 1: GIỚI THIỆU ĐỀ TÀI 2

1. Tên đề tài 2

2. Phạm vi đề tài 2

3. Tính thực tiễn của đề tài 2

 

CHƯƠNG 2: TÌM HIỂU HIỆN TRẠNG VÀ YÊU CẦU THỰC TẾ 3

1. Mô tả khái quát 3

2. Khảo sát hệ thống 6

2.1 Sơ đồ tổ chức tổng thể của trường. 6

2.2 Các cấp đào tạo. 9

2.3 Khảo sát. 10

3. Mô hình bài toán 11

3.1. Giới thiệu bài toán 11

3.2. Phát biểu bài toán 11

3.3. Dữ liệu bài toán 12

 

CHƯƠNG 3: PHÂN TÍCH HỆ THỐNG 14

1. Hệ thống các yêu cầu 14

2. Mô hình hóa các yêu cầu 17

 

CHƯƠNG 4: THIẾT KẾ DỮ LIỆU 29

1. Chi tiết các bảng dữ liệu 29

2. Đánh giá dạng chuẩn 38

3. Ràng buộc toàn vẹn 39

 

CHƯƠNG 5: THIẾT KẾ GIAO DIỆN 49

 

 

PHẦN B: TÌM HIỂU CÔNG NGHỆ

 

CHƯƠNG 6: TÌM HIỂU MICROSOFT C#.NET 60

CHƯƠNG 7: TÌM HIỂU SQL SERVER 2000 71

 

Tổng kết 82

Tài liệu tham khảo 84

 

 

 

doc84 trang | Chia sẻ: maiphuongdc | Lượt xem: 1568 | Lượt tải: 2download
Bạn đang xem trước 20 trang tài liệu Luận văn Xây dựng hệ thống trợ giúp sắp xếp lịch sử dụng phòng, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
đó, liên kết với bảng dữ liệu buổi học để biết tiết học thuộc buổi học nào trong ngày. Giáo viên: Tên Kiểu Ghi chú MaGV Chuỗi Mã giáo viên TenGV Chuỗi Tên giáo viên Mỗi giáo viên có một mã giáo viên riêng để phân biệt với các giáo viên khác, tên giáo viên dùng để mô tả cụ thể và làm rõ ý nghĩa cho bảng dữ liệu giáo viên. Phiếu đăng ký: Tên Kiểu Ghi chú MaDK Chuỗi Mã đăng ký NgayDK Ngày Ngày đăng ký TuNgay Ngày Ngày bắt đầu DenNgay Ngày Ngày kết thúc MaGV Chuỗi Khoá ngoại MaLop Chuỗi Khóa ngoại MaMH Chuỗi Khoá ngoại MaPhong Chuỗi Khoá ngoại Khoa Chuỗi Khóa ngoại TinhTrang Yes/No Tình trạng SucChua Số Sức chứa Mỗi phiếu đăng ký có một mã phiếu đăng ký riêng để phân biệt với các phiếu đăng ký khác, ngày đăng ký phiếu , phiếu đăng ký từ ngày nào đến ngày nào, tình trạng để biết phiếu đăng ký đó còn hiệu lực hay không, sức chứa là sức chứa mà người dùng muốn đăng ký, liên kết với bảng dữ liệu giáo viên để biết phiếu đăng ký cho giáo viên nào, liên kết với bảng dữ liệu lớp để biết phiếu đăng ký cho lớp nào, liên kết với bảng dữ liệu môn học để biết phiếu đăng ký cho môn học nào, liên kết với bảng dữ liệu phòng học để biết phiếu đăng ký sử dụng phòng nào . Quyền: Tên Kiểu Ghi chú MaQuyen Chuỗi Mã quyền TenQuyen Chuỗi Tên quyền DienGiai Chuỗi Diễn giải Mỗi quyền hạn sử dụng chương trình có một mã quyền riêng để phân biệt với các quyền khác, tên quyền hạn dùng để mô tả cụ thể và làm rõ ý nghĩa cho bảng dữ liệu quyền, phần diễn giải để chú thích thêm những thông tin phụ về quyền hạn đó. Phân quyền: Tên Kiểu Ghi chú UName Chuỗi Tên người dùng PWord Chuỗi Mật khẩu MaQuyen Chuỗi Khóa ngoại Mỗi người dùng khi đăng ký sử dụng chương trình sẽ có một tên dùng riêng để phân biệt với các tên dùng khác, mỗi người dùng có thể thay đổi mật khẩu cho riêng mình, liên kết với bảng dữ liệu quyền để biết người sử dụng được cấp quyền hạn nào trong chương trình . Tham số: Tên Kiểu Ghi chú Khoa Chuỗi Mã bộ dữ liệu SoTiet Số Số tiết học Bo Số Bộ dữ liệu TietD Số Khóa ngoại TietK Số Khóa ngoại DienGiai Chuỗi Diễn giải Bảng tham số dùng để lưu trữ về các bộ dữ liệu liên quan đến các tiết học.Mỗi tham số có một mã tham số (khóa) riêng để phân biệt với các tham số khác, số tiết của mỗi tham số (có thể là 2,3,4,5 tiết), mỗi tham số có số bộ đế biết bộ dữ liệu thứ mấy, mỗi tham số chỉ rõ từ tiết đầu thứ mấy đến tiết cuối thứ mấy thông qua liên kết với bảng dữ liệu tiết học, diễn giải dùng để mô tả cụ thể và làm rõ ý nghĩa cho bảng dữ liệu tham số. ĐÁNH GIÁ DẠNG CHUẨN Bảng phụ thuộc hàm: STT Mã số Mô tả 1 RB1 MaBuoiàTenBuoi 2 RB2 MaGVàTenGV 3 RB3 MaK_PBàTenK_PB,DienGiai 4 RB4 MaKVàTenKV 5 RB5 MaLPàTenLP,DienGiai 6 RB6 MaLopàTenLop,SoLuongSV,MaK_PB 7 RB7 MaMHàTenMH,TenTat 8 RB8 UNameàPWord,MaQuyen 9 RB9 MaQuyenàTenQuyen,DienGiai 10 RB10 MaTietàTenTiet,TGBatDau,TGKetThuc,MaBuoi 11 RB11 KhoaàSoTiet,Bo,TietD,TietK,DienGiai 12 RB12 MaPhongàTenPhong,SucChua,IsProjector,DienGiai, TinhTrang,HinhAnh,MaLP,MaKV,MaK_PB 13 RB13 MaDKàNgayDK,TuNgay,DenNgay,MaGV,MaLop, TinhTrang,MaMH,MaPhong,Khoa,SucChua Dạng chuẩn: Treân ñaây laø lieät keâ ñaày ñuû taát caû caùc thuoäc tính cuûa töøng quan heä trong löôïc ñoà quan heä vaø caùc phuï thuoäc haøm öùng vôùi löôïc ñoà. Khoâng toàn taïi caùc thuoäc tính laëp hoaëc thuoäc tính keùp, moãi thuoäc tính ñeàu laø nguyeân toá Þ Löôïc ñoà quan heä treân ñaït daïng chuaån 1. Löôïc ñoà quan heä ñaõ ñaït daïng chuaån 1 vaø caùc thuoäc tính khoâng khoùa phuï thuoäc ñaày ñuû vaøo khoùa Þ Löôïc ñoà quan heä treân ñaït daïng chuaån 2. Löôïc ñoà quan heä ñaõ ñaït daïng chuaån 2 vaø caùc thuoäc tính khoâng khoùa cuûa quan heä khoâng phuï thuoäc baéc caàu vaøo baát kyø khoùa naøo cuûa quan heä Löôïc ñoà quan heä treân ñaït daïng chuaån 3. Trong mỗi phụ thuộc hàm của từng quan hệ, mỗi khóa chính trong từng quan hệ là siêu khóa của quan hệ đó. Þ Löôïc ñoà quan heä treân ñaït daïng chuaån BC (Boyce_Cold). RÀNG BUỘC TOÀN VẸN Ràng buộc trên 1 LĐQH : PhieuDangKy( MaDK, NgayDK, TuNgay, DenNgay, TinhTrang, SucChua, MaGV, MaMH, MaPhong, MaLop, Khoa) Điều kiện : "qi Î T(PhieuDangKy) qi.TuNgay >= qi.NgayDK qi.DenNgay >= qi.TuNgay cuối " Bối cảnh : PhieuDangKy Bảng tầm ảnh hưởng : Thêm Xóa Sửa PhieuDangKy + - +/ NgayDK, TuNgay, DenNgay, MaGV, MaLop, MaPhong, MaMH Ràng buộc trên nhiều LĐQH : Đối với bảng TietHoc , BuoiHoc : TietHoc( MaTiet, TenTiet, TGBatDau, TGKetThuc, MaBuoi). BuoiHoc( MaBuoi, TenBuoi) Điều kiện : "qi Î T(TietHoc) qi.MaBuoi Í BuoiHoc [ MaBuoi ] cuối " Bối cảnh : TietHoc , BuoiHoc Bảng tầm ảnh hưởng : Thêm Xóa Sửa TietHoc - + +/ MaBuoi BuoiHoc + - +/ MaBuoi Đối với bảng Khoa_PhongBan , Lop : Khoa_PhongBan( MaK_PB, TenK_PB, DienGiai). Lop( MaLop, TenLop, SoLuongSV, MaK_PB) Điều kiện : "qi Î T(Lop) qi.MaK_PB Í Khoa_PhongBan [ MaK_PB ] cuối " Bối cảnh : Khoa_PhongBan , Lop Bảng tầm ảnh hưởng : Thêm Xóa Sửa Lop - + +/ MaK_PB Khoa_PhongBan + - +/ MaK_PB Đối với bảng Khoa_PhongBan , PhongHoc : Khoa_PhongBan( MaK_PB, TenK_PB, DienGiai). PhongHoc( MaPhong, TenPhong, SucChua, IsProjector, DienGiai, TinhTrang, HinhAnh, MaLP, MaKV, MaK_PB) Điều kiện : "qi Î T(PhongHoc) qi.MaK_PB Í Khoa_PhongBan [ MaK_PB ] cuối " Bối cảnh : Khoa_PhongBan , PhongHoc Bảng tầm ảnh hưởng : Thêm Xóa Sửa PhongHoc - + +/ MaK_PB Khoa_PhongBan + - +/ MaK_PB Đối với bảng KhuVuc , PhongHoc : KhuVuc( MaKV, TenKV). PhongHoc( MaPhong, TenPhong, SucChua, IsProjector, DienGiai, TinhTrang, HinhAnh, MaLP, MaKV, MaK_PB) Điều kiện : "qi Î T(PhongHoc) qi.MaKV Í KhuVuc [ MaKV ] cuối " Bối cảnh : KhuVuc , PhongHoc Bảng tầm ảnh hưởng : Thêm Xóa Sửa PhongHoc - + +/ MaKV KhuVuc + - +/ MaKV Đối với bảng LoaiPhong , PhongHoc : LoaiPhong( MaLP, TenLP, DienGiai). PhongHoc( MaPhong, TenPhong, SucChua, IsProjector, DienGiai, TinhTrang, HinhAnh, MaLP, MaKV, MaK_PB) Điều kiện : "qi Î T(PhongHoc) qi.MaLP Í LoaiPhong [ MaLP ] cuối " Bối cảnh : LoaiPhong , PhongHoc Bảng tầm ảnh hưởng : Thêm Xóa Sửa PhongHoc - + +/ MaLP LoaiPhong + - +/ MaLP Đối với bảng TietHoc , ThamSo : TietHoc( MaTiet, TenTiet, TGBatDau, TGKetThuc, MaBuoi). ThamSo( Khoa, SoTiet, Bo, TietD, TietK, DienGiai) Điều kiện : "qi Î T(ThamSo) qi.TietD Í TietHoc [ MaTiet ] qi.TietK Í TietHoc [ MaTiet ] cuối " Bối cảnh : TietHoc , ThamSo Bảng tầm ảnh hưởng : Thêm Xóa Sửa ThamSo - + +/ TietD, TietK TietHoc + - +/ MaTiet Đối với bảng Quyen , PhanQuyen : Quyen( MaQuyen, TenQuyen, DienGiai). PhanQuyen( UName, PWord, MaQuyen) Điều kiện : "qi Î T(PhanQuyen) qi.MaQuyen Í Quyen [ MaQuyen ] cuối " Bối cảnh : Quyen , PhanQuyen Bảng tầm ảnh hưởng : Thêm Xóa Sửa PhanQuyen - + +/ MaQuyen Quyen + - +/ MaQuyen Đối với bảng PhieuDangKy , GiaoVien : GiaoVien( MaGV, TenGV). PhieuDangKy( MaDK, NgayDK, TuNgay, DenNgay, TinhTrang, SucChua, MaGV, MaMH, MaPhong, MaLop, Khoa) Điều kiện : "qi Î T(PhieuDangKy) qi.MaGV Í GiaoVien [ MaGV ] cuối " Bối cảnh : GiaoVien , PhieuDangKy Bảng tầm ảnh hưởng : Thêm Xóa Sửa PhieuDangKy - + +/ MaGV GiaoVien + - +/ MaGV Đối với bảng PhieuDangKy , MonHoc : MonHoc( MaMH, TenMH, TenTat). PhieuDangKy( MaDK, NgayDK, TuNgay, DenNgay, TinhTrang, SucChua, MaGV, MaMH, MaPhong, MaLop, Khoa) Điều kiện : "qi Î T(PhieuDangKy) qi.MaMH Í MonHoc [ MaMH ] cuối " Bối cảnh : MonHoc , PhieuDangKy Bảng tầm ảnh hưởng : Thêm Xóa Sửa PhieuDangKy - + +/ MaMH MonHoc + - +/ MaMH Đối với bảng PhieuDangKy , Lop : Lop( MaLop, TenLop, SoLuongSV, MaK_PB). PhieuDangKy( MaDK, NgayDK, TuNgay, DenNgay, TinhTrang, SucChua, MaGV, MaMH, MaPhong, MaLop, Khoa) Điều kiện : "qi Î T(PhieuDangKy) qi.MaLop Í Lop [ MaLop ] cuối " Bối cảnh : Lop , PhieuDangKy Bảng tầm ảnh hưởng : Thêm Xóa Sửa PhieuDangKy - + +/ MaLop Lop + - +/ MaLop Đối với bảng PhieuDangKy , PhongHoc : PhongHoc( MaPhong, TenPhong, SucChua, IsProjector, DienGiai, TinhTrang, HinhAnh, MaLP, MaKV, MaK_PB) PhieuDangKy( MaDK, NgayDK, TuNgay, DenNgay, TinhTrang, SucChua, MaGV, MaMH, MaPhong, MaLop, Khoa) Điều kiện : "qi Î T(PhieuDangKy) qi.MaPhong Í PhongHoc [ MaPhong ] cuối " Bối cảnh : PhongHoc , PhieuDangKy Bảng tầm ảnh hưởng : Thêm Xóa Sửa PhieuDangKy - + +/ MaPhong PhongHoc + - +/ MaPhong Đối với bảng PhieuDangKy , ThamSo : ThamSo( Khoa, SoTiet, Bo, TietD, TietK, DienGiai) PhieuDangKy( MaDK, NgayDK, TuNgay, DenNgay, TinhTrang, SucChua, MaGV, MaMH, MaPhong, MaLop, Khoa) Điều kiện : "qi Î T(PhieuDangKy) qi.Khoa Í ThamSo [ Khoa ] cuối " Bối cảnh : ThamSo , PhieuDangKy Bảng tầm ảnh hưởng : Thêm Xóa Sửa PhieuDangKy - + +/ Khoa ThamSo + - +/ Khoa CHƯƠNG 5: THIẾT KẾ GIAO DIỆN Màn hình chính của chương trình: Khi khởi động chương trình, màn hình trên sẽ mở ra với giao diện đơn giản, dễ nhìn và trên thanh công cụ chỉ xuất hiện 2 thực đơn chính đó là thực đơn Hệ thống để người dùng đăng nhập vào hệ thống chương trình và thực đơn Trợ giúp sẽ chỉ dẫn người dùng sử dụng chương trình. Màn hình đăng nhập: Màn hình trên để người dùng đăng nhập tên, mật khẩu và chương trình sẽ kiểm tra, nếu đúng sẽ đăng nhập thành công, ngược lại không sử dụng được chương trình. Màn hình chính để lưu trữ thông tin phòng học: Màn hình trên để nhân viên phòng đào tạo dùng để lưu trữ thông tin về phòng học. Màn hình thêm ,sửa dữ liệu về phòng học: Màn hình dùng cho nhân viên phòng đào tạo thêm hoặc sửa thông tin chi tiết cho từng phòng học Màn hình tạo tài khoản mới: Màn hình dùng cho nhân viên quản trị mạng khi muốn thêm người dùng mới cho chương trình. Màn hình phiếu đăng ký: Màn hình dùng cho nhân viên phòng đào tạo khi muốn đăng ký phân bố sử dụng phòng . Màn hình đăng ký phòng: Tiếp theo sau màn hình phiếu đăng ký thì nhân viên phòng đào tạo sẽ tiếp tục chọn phòng và số tiết hợp lý để phân bố sử dụng phòng đó. Màn hình tra cứu phòng theo các khoa_phòng ban: Màn hình dùng cho tất cả người dùng để tra cứu thông tin phòng học. Màn hình tra cứu phòng theo các khu vực: Màn hình dùng cho tất cả người dùng để tra cứu thông tin phòng học. Màn hình tra cứu phòng theo từng phòng: Màn hình lưu dự phòng dữ liệu: Màn hình dùng để sao lưu dự phòng cơ sở dữ liệu . Màn hình lưu tập tin: Sau khi bấm vao nút (…) thì màn hình trên sẽ mở để người dùng chỉ rõ đường dẫn cho tập tin lưu dự phòng đó. Màn hình phục hồi dữ liệu: Màn hình dùng để phục hồi cơ sở dữ liệu từ tập tin lưu dự phòng . Màn hình mở tập tin: Sau khi bấm vao nút (…) thì màn hình trên sẽ mở để người dùng chỉ rõ đường dẫn của tập tin lưu dự phòng để mở ra. Màn hình mở tập tin: Màn hình dùng để xuất báo cáo danh sách phiếu đăng ký trong khoản thời gian mà người dùng chọn. Màn hình báo cáo danh sách phiếu đăng ký: Màn hình kết quả danh sách phiếu đăng ký của màn hình trên. Màn hình báo cáo lịch sử dụng phòng: Màn hình xuất báo cáo toàn bộ lịch sử dụng phòng . PHẦN B: TÌM HIỂU CÔNG NGHỆ CHƯƠNG 6: TÌM HIỂU MICROSOFT C#.NET 1. GIỚI THIỆU NHANH VỀ .NET Trong công nghiệp máy tính, có thể nói rằng Microsoft đã mang lại những bước đi quan trọng nhất .Chính hành động can đảm của Bill Gates và Steve Ballmer khi họ nói với ông lớn IBM rằng họ có một hệ điều hành cần bán đã đem lại thành công vang dội cho DOS. Họ cũng làm thế với hệ điều hành Windows phổ biến hầu như khắp toàn cầu khi “cầm nhầm” cái phong cách “nhìn và cảm nhận”(Look and Feel) của Apple Macintosh. Và bây giờ, có thể sẽ là một chuyển biến lớn khi Microsoft phát minh lạI một cách tổng thể phương thức mà chúng ta sẽ làm việc ,sẽ lập trình cho chiếc máy tính thân yêu. Nếu bạn đang là một nhà lập trình C++,hay bạn đang sống nhờ vào hệ điều hành Windows hay bộ thư viện MFC, không còn nghi ngờ chắc chắn bạn cũng sẽ bị đắm chìm trong thế giới .Net. Trên thực tế ngày nay, Internet đã trở thành phương tiện cho chúng ta làm việc ,thăm bạn bè ,sử dụng tài khoản ngân hàng ,chơi, tán ngẫu, rất thực tế và hiệu quả nhờ vào các phần mềm được viết để thực hiện các kết nốI IP( Internet Protocol) cho WWW (World Wide Web) .Các phần mềm được yêu cầu thực hiện hàng cuộc triệu cuộc giao dịch dữ liệu giữa các máy tính với nhau,và số lượng các cuộc giao dịch này ngày càng tăng theo sự tăng nhanh của khả năng và sự phức tạp của web. Việc sử dụng thư điện tử ,lướt trên các trang web ,trao đổi với các cơ sở dữ liệu và sử dụng các ứng dụng phân tán ngày càng trở nên phức tạp hơn ,vì thế trình độ và kỹ thuật lập trình để tạo và bảo dưỡng các phần mềm cũng ngày càng được yêu cầu cao hơn ,tinh vi hơn. Các nhà lập trình chúng ta hằng ngày phải đối diện với COM,COM+,DCOM,SP,SOAP,XML,XSL…cũng như phảI chiến đấu với hàng tá sách hướng dẫn ,các bộ công cụ SDK (Software Developer Kit) phức tạp. Microsoft,cũnh như đa số trong chúng ta, đã tạo nên ngày càng nhiều các công cụ chuyên dùng.Hệ điều hành hay các ứng dụng Windows đầy đủ tính năng hơn ,theo yêu cầu kỹ thuật, công nghệ, và do đó đã thêm vào không ít các SDK hay các tiêu chuẩn ở chỗ này ,chỗ nọ.Kết quả là hệ điều hành ,thư viện ,công cụtrở nên không còn khả chuyển ,quá nặng nề với biết bao các mỏ rộng (extensions),add-in(phần phụ thêm) .Thế là bộ khung .NET ra đời. .NET thực sự thay đổi điều kể trên .Đó không chỉ là một bước tiến ,một nâng cấp hay một sự hợp nhất các công việc.Mà đó chính là một điều vĩ đại ,một sự dũng cảm, một cuộc bức phá ngoạn mục.Nó định nghĩa lại tất cả mọi điều bạn đã biết về lập trình cho máy PC về tất cả mọi hình thù lẫn kích thước ,kể cả ngôn ngữ lập trình trong đó. 2. QUẢN LÝ BỘ NHỚ .NET Một đặc điểm đáng bàn cải của .NET là trình quản lý bộ nhớ thưc thi của nó hoạt động như một hệ thống thu gom rác (garbage-collected system viết tắt là GC system).Có ngườI thì thích thú, có người lại lo sợ hay chết lặng đi vì nó.Có thể các bạn đã là các nhà lập trình từ lâu lắm,nếu thế ,chắc bạn khó thể mà quên được những ác mộng trong những ngày của Lisp,lúc đợi chờ người dọn rác đến,mà ông ta chỉ đến vào thứ 3:cả núi giấy loại ở chung quanh bạn.Còn bạn là lập trình viên C++ thì hằn bạn sẽ thấy trình quản lý bộ nhớ nhảy loạn xạ và có khi dẫn đến treo máy khi bạn quên đi lời nguyền về sự quản lý việc định vị con trỏ và loại bỏ các vùng nhớ bạn đã cấp. Trình quản lý bộ nhớ của .NET đã tiếp cận việc định vị theo một cách khác.Một khối bộ nhớ được tự động ghi nhớ thông tin khi nó được yêu cầu cấp phát cho đối tượng và có những tham chiếu đến nó.Và chỉ khi tất cả các tham chiếu đến khối nhớ được xoá thì đối tượng hay vùng nhớ mới bị huỷ thật sự.Cách giảI quyết như thế đã thật sự giảm nhẹ gánh nặng quản lý bộ nhớ cho lập trình viên.Bạn không còn cần phải nhớ là đã xoá vùng nhớ đã cấp hay chưa :đơn giản là từ nay bạn chỉ cần biết là bạn không còn dùng nó nữa.Một lớp sẽ không còn phải chú ý theo dõi lượng tham chiếu đến nó nữa , nó đã biết được khi nào nào nó sẽ tự mình huỷ bỏ. Để giảm sự phân mảnh của vùng nhớ động (heap),trình GC cũng đã hướng mục tiêu vào việc củng cố các vùng bộ nhớ đang sử dụng hay các vùng nhớ chưa dùng đến .Điều này ngăn ngừa bộ nhớ bị mất vô lý và nâng cao hiệu quả của một bộ máy chủ.Heap được quản lý cũng chắc chắn rằng tất cả các truy xuất bộ nhớ không chuẩn ,như tràn bộ nhớ hay treo máy, sẽ không thể tác động đến dữ liệu các chương trình khác đang chạy trên cùng máy này.Và như thế nó làm cho hệ thống trở nên tin cậy và bảo mật. Bộ GC thường bị coi là chậm và không hiệu quả nhưng Microsoft quả quỵết rằng GC của .NET sẹ khác ,nó thật sự hoạt động theo thời gian thực .GC của NET sẽ hoạt động tức thời và không tác động đáng kể lên bộ vi xử lý (CPU).Tổng quát trên một máy Windows 2000,GC chỉ cần khoảng 1/1000 tổng thời gia xử lý của CPU. Cuối cùng, có cả một hệ thống dự phòng cho cái gọi là vùng nhớ hay mã lệnh không được quản lý(hay không an toàn) mà các lập trình viên dùng con trỏ để định vị vùng nhớ thường gặp phảI .Như thế bạn có thể dùng các cấu trúc cổ xưa của C++ ngay trong bộ khung của .NET. 3. C# -MỘT NGÔN NGỮ LẬP TRÌNH MỚI. Khởi đầu với tên gọi là Cool vào khoảng năm 2000, C# đã tạo ra vô số các cuộc tranh luận lớn trên nền .NET .Từ các huyền thoại, các đồn đại và các ước đoán,C# ngày nay đã thật sự trở thành một ngôn ngữ đơn giản ,hoàn toàn hướng đối tượng và rất tuyệt vời .Các đặc trưng này của C# cũng gần giống với tuyên bố của Java ?Dù có hay không thì rõ ràng các nhà thiết kế của C# đã rất muốn tạo ra một ngôn ngữ có thể làm vừa lòng giớI lập trình C++ .Dĩ nhiên ta cũng không thể loại trừ một vài thiếu xót nhỏ nào đó mà đối với một số người thì chúng trở nên bất cập và không tiện lợi. C# không hổ trợ đa thừa kế (multiple inhertance):Một lớp (class) của C# có thể được khai báo là nó có thể đựng một hay nhiều các interface(giao diện hay giao tiếp),nhưng tính đa kế thừa của các lớp (classes) cơ bản lại không được chấp nhận.Đối với một số lập trình viên,đặc biệt là những ai yêu thích ALT,thì tính chất này được xem là một bất cập. Hệ thống C# cũng không cho phép sự dụng bất kì các kiểu mẫu template nào cả.Dù vậy chúng ta sẽ bàn thêm về vấn đề này ở các chương sau. Đa số các cuộc thảo luận về C# hiện nay đều từ các phản ứng của những ai gạt bỏ C# như là một cố gắng hiển nhiên nhằm vào vịêc xoá bỏ Java.Tuy nhiên thật ra C# va Java có thể được xem như những con ngựa trên những đường đua khác nhau,chúng có thể cùng tồn tại và chung sống hoà bình .C# và toàn bộ hệ thống .NET sẽ là công cụ tốt hơn cho việc kết hợp các ứng dụng khách và các ứng dụng phía máy chủ ,còn Java có những khuyết điểm rõ ràng cho phần máy khách. Chúng ta có thể nói thêm về C# là một ngôn ngữ hoàn toàn hướng đối tượng (totally object-oriented0.C++ bắt nguồn từ C: trước hết là một sự phức hợp cho C,sau đó là một cố gắng thực sự của định hướng đối tượng .Để tốt hơn, C++ phải giữ lại một số đặc điểm của ngôn ngữ không-hướng- đối-tượng.Đó là những hàm độc lập và các biến toàn cục .C# thì khác ,nó tuyệt giao hoàn toàn với các đặc tính như thế .Mọi kiểu biến,kể cả kiểu giá trị đơn giản ,đều được xem xét như là một đối tượng .Mọi hàm đều phải thuộc một lớp(class) .Không còn được dùng các biến toàn cục.Tuy thế xin đừng lo lắng vì các lớp chứa các hàm tĩnh hay biến tĩnh có thể được xem và hành động như các hàm độc lập và các biến toàn cục . 4. TƯƠNG TÁC VỚI THẾ GIỚI COM Tuy .NET là mô hình mới thay thế cho thế giới COM đang có trong kiến trúc của Windows nhưng việc thay thế không diễn ra đến nỗi bạn mất hết khả năng sử dụng đốI tượng COM. Nền .NET cho phép bạn sử dụng và gọi các đối tượng Com ngay từ đối tượng .NET và tạo ra các lớp vỏ bọc cho phép đối tượng .NET có thể biến thành đối tượng COM. 5. WINDOWS FORMS,WEB CONTROLS VÀ GDI+ Nếu bạn đã từng viết chương trình Windows trước đây bạn hẳn đã quen với lớp thư viện đồ hoạ cực kỳ hấp dẫn.Trong .NET bạn có rất nhiều lựa chọn để lập trình giao diện đồ hoạ ,sử dụng lớp Windows Forms, thư viện GDI+ hơặc các điều khiển Web Control để tiếp cận với giao diện dành cho ứng dụng Web.Bạn không còn phảI mệt nhọc vớI các lớp MFC ,thay vào đó là những lớp thư viện .NET đơn giản dễ hiểu và hiệu quả hơn rất nhiều.Hàng loạt công cụ lập trình hiệu quả được thêm vào môi trường Visual Studio .NET mà bạn không hề tìm thấy trong những môi trường lập trình trước đây. Mọi thứ đã sẵn sằng, có lẽ đã đến lúc chúng ta đi sâu và tìm hiểu ngôn ngữ C# và đó cũng là mục đích của giáo trình này . 6. MICROSOFT .NET PLATFORM Ý tưởng đằng sau Microsoft .NET là thay đổi cách nhìn trong lĩnh vực điện toán ,từ một thế giới mà trong đó các thiết bị cá nhân và các website được nối đơn giản với nhau thông qua Internet sang một thế giới mà trong đó các thiết bị ,các dịch vụ và các máy tính làm việc với nhau để cung cấp những giải pháp phong phú cho người tiêu dùng. Một giải pháp (solution) của Microsoft .NET bao gồm 4 thành phần cốt lõi sau: .NET Building Block Services: hoặc truy cập bằng cách lập trình đến các dịch vụ nào đó ,chẳng hạn như file storage (lưu trữ tập tin) ,calendar(lịch) và Passport .Net (một dịch vụ xác nhận ID) Phần mềm thiết bị .NET ,chạy trên các thiết bị Internet mới. The .NET user experience ,bao gồm các đặc điểm như giao diện tự nhịên,các thẻ thông minh, kỹ thuật tự động liên kết tới các thông tin liên quan đến các từ hoặc các nhóm từ trong tài liệu được tạo bởi người dùng . Cơ sở hạ tầng .NET ,bao gồm .NET Framework ,Microsoft Visual Studio.NET, .NET Enterprise Servers ,và Microsoft Windows .NET. Cơ sở hạ tầng .NET là một phần của .NET mà hầu hết các lập trình viên đều phải nhắc đến khi đề cập đến .NET .Ở đây chúng ta sẽ qui ước là mỗi khi nói đến .NET (mà không có từ đi trước )là đang nói đến cơ sở hạ tầng .NET .Cơ sở hạ tầng .NET đề cập đến tất cả các kỹ thuật tạo nên một môi trường làm việc mới trong viêc tạo và thi hành các ứng dụng mạnh mẽ ,có thể phát triển và được phận phối. Thành phần .NET cho phép lập trình viên phát triển những ứng ụng này là .NET Framework. .NET Framework bao gồm Common Language Runtime (CLR) và các thư viện lớp .NET Framework ,đôi khi còn được gọi là thư viện lớp cơ sở,đôi khi còn được gọi là thư viện lớp cơ sở(Base Class Library (BCL)).Bạn có thể hiểu CLR như một máy ảo (Virtual Machine) mà các ứng dụng .NET hoạt động trong đó .Tất cả các ngôn ngữ .NET đều có các thư viện lớp .NET Framework .Nếu bạn đã từng lập trình vớI MFC (Microsoft Foundation Classes) hoặc OWL (Ojbect Windows Library) của Borland nghĩa là bạn đã quen với thư viện lớp.Các thư viện lớp .NET Framework bao gồm hổ trở về mọi thứ ,từ nhập xuất tập tin,cơ sở dữ liệu đến XML và SOAP.Thực ra các thư viện lớp .NET Framework quá lớm đến nỗi một cuốn sách cũng chỉ có thể nói sơ lược về tất cả các lớp mà nó hổ trợ. Bạn cần lưu ý là từ “máy ảo” ở trên không có ý nói đến kiến trúc máy ảo Java Virtual Machine. Nhiều thập kỷ trước ,trước khi Java ra đờI ,IBM lần đầu tiên đưa ra khái niệm “virtual machine”.Một máy ảo là một sự trừu tượng hoá hệ điều hành bậc cao ,trong đó hệ điều hành khác có thể hoạt động trong một môi trường hoàn toàn được đóng gói .Khi nói CLR là một loại máy ảo nghĩa là code thực thi trong CLR sẽ chạy trong một môi trường được đóng gói và được quản lý ,tách biệt với các tiến trình khác trên máy. 7. NET FRAMEWORK Phần này sẽ so sánh .NET và môi trường phát triển ứng dụng phân phối trước đây ,sau đó sẽ liệt kê những khả năng mà .NET cung cấp cho các lập trình viên để tạo ra các ứng dụng phân phối đầy sức mạnh một cách nhanh chóng. WINDOWS DNA và .NET Trong phần trước, chúng ta đã mô tả .NET là một môi trường để tạo các ứng dụng mạnh mẽ ,dễ phát triển và phân tán .Lý do là .NET là kết quả của một sự nổ lực trước đó để thoả mãn những mục tiêu lớn lao .Đó là nền được gọi là Windows DNA .Tuy nhiên .NET có nhiều hơn những gì mà Windows DNA cung cấp.Windows DNA là một nền các giải pháp mà chú trọng đến việc giải quyết các vấn đề thương mại thông qua việc dùng các sản phẩm phục vụ Microsoft.Ngoài những đặc điểm về kỹ thuật ,Windows DNA không có bất kỳ bộ phận xác thực nào. Đây là điểm khác biệt chính giữa Windows DNA và .NET .Microsoft .NET không chỉ là một tập các đặc điểm kỹ thuật mà còn bao gồm nhiều sản phẩm xác thực ,chẳng hạn như trình biên dịch,thư viện lớp, và thậm chí cả những ứng dụng người dùng cuối. 8. Common Language Runtime-CLR CLR là một phần cốt lỗi của .NET .Như tên gọi của nó ,CLR là một môi trường thực thi trong đó các ứng dụng được viết bởi các ngôn ngữ khác nhau có thể hoạt động cùng nhau,đôi khi còn được biết đến như là khả năng giao tiếp xuỵên ngôn ngữ (cross-language interoperability0).Vậy làm thế nào mà CLR cung cấp được môi trường như thế cho khả năng giao tiếp xuyên ngôn ngữ ?Đặc tả ngôn ngữ chung (Common Language Specification) là một tập các qui tắc mà một trình biên dịch ngôn ngữ phải tuân theo để tạo một ứng dụng .NET thi hành trong CLR. Khi muốn viết một trình biên dịch tương thích vớI .NET cần phải tuân theo những qui tắc này và ứng dụng được phát sinh từ trình biên dịch đó sẽ thi hành cùng với các ứng dụng .Net khác và có cùng giao tiếp giữa các thành phần. Một khái niệm quan trọng liên quan đến CLR là managed code.Managed code là code thi hành dưới sự bảo trợ của CLR và vì thế, được quản lý bởi CLR .Bạn có thể hiểu như sau :Trong các môi trường phát triển của Microsoft Windows hiện nay,chúng ta có nhiều tiến trình khác nhau cùng thi hành,qui luật duy nhất mà các ứng dụng đòi hỏi chúng phải hoạt động tốt trong môi trường Windows.Những ứng dụng này được tạo bằng cách dùng một trong nhiều trình biên dịch hoàn toàn khác nhau.Nói cách khác ,các ứng dụng phải tuân theo một tập duy nhất các qui luật chung để thi hành trong Windows. Môi trường Windows có một vài qui luật chung cho biết cách ứng dụng phải hoạt động về các mặt như giao tiếp với các ứng dụng khác ,cấp phát bộ nhớ,thậm chí nhờ hệ điều hành Windows để làm việc thay cho nó. Tuy nhiên, trong một môi trường code được quản lý, một số quy luật được đặt ra để đảm bảo rằng tất cả các ứng dụng hoạt động theo một cách giống nhau,bất chấp chúng được viết bằng ngôn ngữ gì.Cách hoạt động thống nhất của các ứng dụng .NET là bản chất của .NET ,thật may mắn là các quy luậ

Các file đính kèm theo tài liệu này:

  • docCHUONGTRINH.doc
  • rarChuong trinh.rar
  • rarDu lieu.rar
  • rarImage.rar
  • docLOICAMON.doc
  • docLOINOIDAU.doc
  • docMUCLUC.doc
  • docNXGV.doc
  • docNhiem_vu_lam_LVTN.doc
  • docTRANGBIA.doc