Ứng dụng web - Quản lý nhân sự

MỤC LỤC Lời mở đầu 1 Chương I: GIỚI THIỆU VỀ CÔNG TY THỰC TẬP 3 I.Giới thiệu công ty Vinapay 4 1. Giới thiệu chung 4 1.1. Tầm nhìn của Vinapay 4 1.2. Sứ mệnh của Vinapay 4 1.3. Cam kết của Vinapay 5 1.4. Chiến lược 5 2. Cơ cấu tổ chức công ty 6 2.1. Sơ đồ tổ chức 6 2.2. Đội ngũ quản lý 6 2.2.1. Ông Nguyễn Trọng Khang 6 2.2.2. Ông Hoàng Kim Chương 7 2.2.3. Ông Đỗ Việt Hà 7 2.2.4. Bà Nguyễn Hương Giang 8 CHƯƠNG II.TỔNG QUAN VỀ ỨNG DỤNG WEB - QUẢN LÝ NHÂN SỰ 9 1. Mục đích xây dựng chương trình 10 2. Tổng quan về chương trình 10 3.Ứng dụng Web 11 3.1. Khái niệm 11 3.2. Lịch sử phát triển và ưu điểm của ứng dụng web 12 3.3. Các kĩ thuật trong Web application 13 4. Các công nghệ sử dụng để triển khai và phát triển ứng dụng 15 4.1. Internet Information Server (IIS) 16 4.1.1 Khái niêm 16 4.1.2. IIS có thể làm được gì? 17 4.1.3. IIS hoạt động như thế nào? 17 4.2. SQL Server 2005 18 4.2.1. Khái niệm 18 4.2.2. Phân loại SQL Server 19 4.2.3. Các phiên bản của SQL Server 20 4.2.4. Các thành phần quan trọng trong SQL Server 2005 20 4.3. ASP.NET 26 4.3.1. Khái niệm vềASP.NET 26 4.3.2. Môi trường phát triển ứng dụng ASP.NET 26 4.3.3. Các tính năng lập trình trong ASP.NET 27 4.4. MÔ HÌNH MODEL-VIEW-CONTROLLER (MVC). 32 4.4.1.Khái niệm mô hình MVC 32 4.4.2 Các thành phần trong mô hình 32 4.4.3. Các dạng của mô hình MVC 33 CHƯƠNG III.PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG 36 1. Giới thiệu 37 2. Phân tích hệ thống theo sơ đồ Chức năng 37 2.1. Quản lý người dùng 38 2.1.1. Hiển thị danh sách người dùng 38 2.1.2. Thêm, Sửa, Xoá người dùng 38 2.2. Quản lý thư mục 38 2.2.1. Hiển thị danh sách thư mục 39 2.2.2. Thêm, Sửa, Xoá thư mục 39 2.3. Quản lý Phân quyền 39 2.3.1. Hiện thị danh sách Phân Quyền 40 2.3.2. Thêm sửa xoá Phần Quyền với Người Dùng 40 2.4. Quản lý Nhân viên 40 2.4.1. Hiển thị danh sách nhân viên 41 2.4.2. Thêm, sửa, xoá nhân viên 41 3. Phân tích hệ thống theo sơ đồ luồng dữ liệu 42 3.1. Sơ đồ luồng dữ liệu mức ngữ cảnh 42 3.2. Sơ đồ luồng dữ liệu mức đỉnh 43 3.3.Sơ đồ luồng dữ liệu mức dưới đỉnh 44 3.3.1. Chức năng quản lý người dùng 44 3.3.2. Chức năng quản lý thư mục 44 3.3.3. Chức năng phân quyền 45 3.3.4. Chức năng quản lý Nhân viên 45 3.4. Sơ đồ luồng dữ liệu tổng quát 46 3.4.1. Quản lý tài khoản của nhân viên trong công ty 46 3.4.2. Quản lý nhân viên trong công ty 47 4. Các bảng cơ sở dữ liệu dùng trong chương trình 48 4.1. Bảng Tài khoản 48 4.2.Bảng Thư mục_Tài khoản 48 4.3. Bảng Nhân viên 49 4.4. Bảng Thư mục 50 CHƯƠNG VI. PHÁT TRIỂN ỨNG DỤNG. 51 1. Xây dựng kế hoạch phát triển ứng dụng 52 1.1. Tiêu chí phát triển 52 1.2. Kế hoạch phát triển 52 2. Cài đặt cơ sở dữ liệu và dữ liệu khởi tạo: 52 2.1.Tạo cơ sở dữ liệu 52 2.2. Tạo các bảng biểu 52 2.2.1. Bảng Thumuc_Taikhoan 52 2.2.2. Bảng Taikhoan 53 2.2.3. Bảng NhanVien 53 2.2.4. Bảng Thumuc 53 3. Cấu trúc chương trình áp dụng mô hình MVC 54 3.1. Cấu trúc thư mục của chương trình 54 3.2. Các thành phần trong cấu trúc 54 3.2.1. Thư mục common 54 3.2.2. Thư mục Controller 54 3.2.3. Thư mục Controller 55 3.2.3. Thư mục Images 55 3.2.4. Thư mục Interface 55 3.2.4. Các thành phần khác 56 4. Xây dựng các chức năng trong hệ thống 57 4.1. Quản lý người dùng 57 4.1.1. Chức năng đăng nhập 57 4.1.2. Hiển thị danh sách người dùng 58 4.1.3.Thay đổi Mật khẩu 59 4.1.4. Tạo người dùng mới 61 4.1.5. Xóa tài khoản 62 4.2. Quản lý nhân viên 64 4.2.1. Hiển thị danh sách nhân viên 64 4.2.2. Xóa nhân viên 64 4.2.3. Cập nhật thông tin nhân viên 65 4.2.4. Thêm mới nhân viên 68 4.3.Quản lý phân quyền 70 4.3.1. Hiển thị danh sách phân quyền 70 4.3.2. Cập nhật phân quyền người dùng 71 KẾT LUẬN 73 TÀI LIỆU THAM KHẢO 74 PHỤ LỤC 75 thắc mắc gì về bài viết bạn liên hệ ***********

doc81 trang | Chia sẻ: lvcdongnoi | Lượt xem: 5278 | Lượt tải: 1download
Bạn đang xem trước 20 trang tài liệu Ứng dụng web - Quản lý nhân sự, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
Công ty sử dụng một nền tảng công nghệ đạt tiêu chuẩn hiện đại và tính bảo mật cao đã triển khai thành công ở Nam Phi, Phillippin và Columbia a trong những năm qua. Khi đến Việt Nam, đội ngũ kĩ sư hàng đầu của công ty đã điều chỉnh và sáng tạo cho phù hợp với số lượng người dùng điện thoại di động ngày một cao tại Việt Nam. Điều quan trọng nhất trong công ty là vấn đề bảo mật. Như khẩu hiệu “Vinapay -Sức mạnh niềm tin” , và nhìn xa và rộng hơn, cái công ty kinh doanh là niềm tin và sự tín nhiệm. 2. Cơ cấu tổ chức công ty: 2.1. Sơ đồ tổ chức: 2.2. Đội ngũ quản lý: 2.2.1. Ông Nguyễn Trọng Khang -Là sáng lập viên và là Chủ tịch Hội đồng quản trị của Vinapay. Bắt đầu sự nghiệp với vị trí là Giám đốc phát triển kinh doanh tại văn phòng đại diện Renong (Malaysia) tại Hà Nội (1992-1997), ông Khang tích lũy được kinh nghiệm phát triển dự án, quản lý dự án và kinh doanh thương mại. Năm 1999, ông bắt đầu khởi nghiệp kinh doanh với công ty MK Technology Group và phát triển nó trở thành một trong những công ty hàng đầu về lĩnh vực công nghệ và dịch vụ thẻ. Ông Khang có bằng cao học tại Henley Management College (Anh quốc), và bằng MBA tại đại học Boise State (Mỹ). Ông được vinh danh với nhiêu giải thưởng trong kinh doanh và nhiều đóng góp trong lĩnh vực công nghiệp trẻ và Công nghệ thông tin Việt Nam. 2.2.2. Ông Hoàng Kim Chương -Là Phó tổng Giám đốc Quan hệ đối tác. Ông bắt đầu sự nghiệp với vị trí là kĩ sư dầu khí tại Petechim vào năm 1986 ở Vũng Tàu. Ông gia nhập công ty Café Trung Nguyên từ năm 2003-2005, với vị trí Giám đốc Tiếp thị và Bán hàng cho bộ phận Kinh doanh quốc tế. Ông có bằng MBA tại đại học Boise State (Mỹ) và bằng Thạc sỹ khoa học tại Đại học dầu khí Quốc gia Mátxcơva, Liên bang Nga. Ông sử dụng thành thạo tiếng Việt, Anh, Nga. 2.2.3. Ông Đỗ Việt Hà -Khởi đầu sự nghiệp với vị trí là chuyên gia thiết kế đồ họa video với công ty công nghệ Miranda Technology tại Quebec, Canada, năm 1998 nơi ông nhận bằng thạc sĩ về kĩ sư điện tử máy tính. Ông trở về Việt Nam năm 2004 và trở thành Giám đốc cho nhiều dự án của tổ chức Lux Development, một chương trình được chính phủ Lucxemburg tài trợ vốn. Ông Hà gia nhập Vinapay năm 2007 với vị trí là Phó tổng Giám đốc Vận hành hệ thống. 2.2.4. Bà Nguyễn Hương Giang: -Với vai trò là Giám đốc Bán hàng và tiếp thị, bà Giang phụ trách chiến lược tiếp thị cho Vinapay cũng như phát triển đội ngũ kinh doanh cho công ty. Bà có bằng cử nhân tại học viện Quan hệ quốc tế tại Việt Nam. CHƯƠNG II.TỔNG QUAN VỀ ỨNG DỤNG WEB - QUẢN LÝ NHÂN SỰ 1. Mục đích xây dựng chương trình: -Việc tin học hoá Tổ chức quản lý nhân sự mang lại nhiều lợi ích hơn so với quản lý thủ công. Quản lý thông tin về cán bộ, công nhân viên là một bài toán quan trọng và có nhiều ứng dụng trong việc quản lý nguồn nhân lực, chính sách cán bộ …nhằm đưa ra các quyết định trong lĩnh vực xây dựng đội ngũ lao động đủ khả năng và trình độ đáp ứng các nhu cầu trong giai đoạn mới. Với những ưu điểm vượt trội: 1.Bộ máy quản lý nhân sự gọn nhẹ, chỉ cần số ít nhân viên với hệ thống máy vi tính . 2.Tổ chức quản lý, lưu trữ trên hệ thống máy vi tính làm tăng tính an toàn, bảo mật cao hơn. 3.Phù hợp với các ứng dụng triển khai trên diện rộng. 4.Chi phí ban đầu ít nhất vì chỉ phải triển khai trên máy chủ. 5.Dễ dàng phát triển ứng dụng, tất cả các ứng dụng chỉ phải triển khai trên máy chủ, do vậy dễ bảo trì, phát triển hệ thống. 6.Không phụ thuộc vào phạm vi ứng dụng. Việc mở rộng ít tốn kém nhất. 7.Đào tạo sử dụng chương trình ít tốn kém nhất. 8.Dễ dàng tích hợp với các ứng dụng khác trên môt Website. 2. Tổng quan về chương trình: Bao gồm các chức năng chính: -Cập nhập hồ sơ nhân viên : Khi tuyển mới nhân viên thì cập nhập sơ yếu lí lịch và lí lịch công chức viên chức. -Cập nhập các biến động trong quá trình công tác: Khi một cán bộ được tăng lương, lên chức, thay đổi công việc, đi nước ngoài, đi học, chuyển đơn vị công tác trong phạm vi tổ chức của cơ quan thì thông tin của các sự kiện này được lưu trong hồ sơ. -Quản lý các vấn đề liên quan đến nhân viên: +Quá trình lương. +Quá trình công tác. +Quá trình học tập. +Quá trình khen thưởng, kỉ luật. +Quan hệ gia đình. +Ngoại ngữ -Phân tích và báo cáo tình hình nhân sự: Đưu ra các thống kê để phân tích các hiện tượng cần điều chỉnh. Ví dụ: Có nhiều cán bộ cao tuổi dẫn đến cần chuẩn bị lực lượng kế tục. Số lượng nhân viên tăng giảm theo từng tháng nhiều hay ít để điều chỉnh, phân công công việc một cách hợp lý. -Tìm kiếm, tra cứu thông tin về nhân sự theo một chỉ tiêu nào đó để phục vụ cho một số trường hợp, VD như liệt kê các cán bộ theo một chuyên ngành nào đó có trình độ như thế nào… -Quản trị hệ thống: Chương trình được xây dựng trên cơ sở các đối tượng sử dụng được phân quyền truy cập vào từng phần hết sức chặt chẽ. -Người quản trị hệ thống có quyền cao nhất, có quyền cấp (thu) quyền sử dụng chương trình cho những người khác. 3.Ứng dụng Web: 3.1. Khái niệm: -Trong kỹ thuật phần mềm, một Ứng dụng web hay webapp là một trình ứng dụng mà có thể tiếp cận qua web thông qua mạng như Internet hay intranet. -Ứng dụng web phổ biến nhờ vào sự có mặt vào bất cứ nơi đâu của một chương trình. Khả năng cập nhật và bảo trì ứng dụng Web mà không phải phân phối và cài đặt phần mềm trên hàng ngàn máy tính là lý do chính cho sự phổ biến của nó. Ứng dụng web được dùng để hiện thực Webmail, bán hàng trực tuyến, đấu giá trực tuyến, wiki, diễn đàn thảo luận, Weblog, và nhiều chức năng khác. 3.2. Lịch sử phát triển và ưu điểm của ứng dụng web: -Trong dạng tính toán chủ-khách trước đây, mỗi ứng dụng có chương trình khách riêng của nó sẽ phục vụ như giao diện người dùng và phải được cài đặt riêng rẽ trên mỗi máy tính cá nhân của người dùng. Sự nâng cấp phần máy chủ của ứng dụng sẽ cần nâng cấp tất cả máy khách đã được cài trên mỗi máy trạm người dùng, thêm vào đó là chi phí hỗ trợ và giảm năng suất. -Ngược lại, ứng dụng web linh hoạt tạo ra một loạt các tài liệu Web ở định dạng chuẩn được hỗ trợ bởi những trình duyệt phổ biến như HTML/XHTML. Ngôn ngữ kịch bản phía người dùng ở dạng ngôn ngữ chuẩn như JavaScript thường được thêm vào để có thêm những yếu tố động trong giao diện người dùng. Nói chung, mỗi trang Web đơn lẻ được gửi tới người dùng như một tài liệu ổn định, nhưng thứ tự các trang có thể cung cấp cảm giác trực quan, khi những gì người dùng nhập vào sẽ được trả về thông qua thành phần mẫu Web được nhúng vào trong đánh dấu trang. Trong quá trình giao dịch đó, trình duyệt Web sẽ thông dịch và hiển thị trang, và hoạt động như một người dùng chung cho bất kỳ ứng dụng Web nào. 3.3. Các kĩ thuật trong Web application: -Giao diện web đặt ra rất ít giới hạn khả năng người dùng. Thông qua Java, JavaScript, DHTML, Flash và những công nghệ khác, những phương pháp chỉ ứng dụng mới có như vẽ trên màn hình, chơi nhạc, và dùng được bàn phím và chuột tất cả đều có thể thực hiện được. Những kỹ thuật thông thường như kéo thả cũng được hỗ trợ bởi những công nghệ trên. Những nhà phát triển web thường dùng ngôn ngữ kịch bản phía người dùng để thêm hiệu quả các tính năng, đặc biệt là tạo ra một cảm giác giao tiếp trực quan mà không cần phải tải trang lại (điều mà nhiều người dùng cảm thấy ngắt quãng). Vừa rồi, những công nghệ đã được phát triển để phối hợp ngôn ngữ kịch bản phía người dùng với công nghệ phía máy chủ như PHP. Ajax, một kỹ thuật phát triển web sử dụng kết hợp nhiều công nghệ khác nhau, là một ví dụ về công nghệ hiện đang tạo ra ngày càng nhiều trải nghiệm tương tác hơn. -Một cách tiếp cận khác (ít phổ biến hơn) là dùng Adobe Flash hoặc Java applet để cung cấp một vài hoặc tất cả các giao diện người dùng. Từ khi phần lớn trình duyệt web hỗ trợ những công nghệ này (thường thông qua plug-in), những ứng dụng dựa trên Flash hay Java có thể được hiện thực và triển khai dễ dàng như nhau. Bởi vì chúng cho phép lập trình viên quản lý chặt hơn giao diện, chúng vượt qua nhiều vấn đề về cấu hình trình duyệt, mặc dù sự không tương thích giữa hiện thực bằng Java hay Flash trên máy khách có thể tạo ra sự phức tạp khác nhau. Vì sự tương tự về kiến trúc với chương trình chủ-khách của chúng, gần với chương trình "dày", đã có sự tranh luận về việc hệ thống đó có được gọi là "ứng dụng Web" hay không; một thuật ngữ khác được đề nghị là "Ứng dụng Internet phong phú". -Dù có nhiều biến thể, một ứng dụng Web thông thường được cấu trúc như một ứng dụng ba lớp. Ở dạng phổ biến nhất, một trình duyệt Web là lớp thứ nhất, một bộ máy sử dụng một vài công nghệ nội dung Web động (như ASP, ASP.NET, CGI, ColdFusion, JSP/Java, PHP, Python, hoặc Ruby On Rails) là lớp giữa, và một cơ sở dữ liệu là lớp thứ ba. Trình duyệt sẽ gửi yêu cầu đến lớp giữa, lớp giữa sẽ phục vụ bằng cách tạo ra truy vấn và cập nhật cơ sở dữ liệu và tạo ra giao diện người dùng. 4. Các công nghệ sử dụng để triển khai và phát triển ứng dụng: 4.1. Internet Information Server (IIS) 4.1.1 Khái niêm: -Microsoft Internet Information Services (các dịch vụ cung cấp thông tin Internet) là các dịch vụ dành cho máy chủ chạy trên nền Hệ điều hành Window nhằm cung cấp và phân tán các thông tin lên mạng, nó bao gồm nhiều dịch vụ khác nhau như Web Server, FTP Server,... Nó có thể được sử dụng để xuất bản nội dung của các trang Web lên Internet/Intranet bằng việc sử dụng “Phương thức chuyển giao siêu văn bản“ - Hypertext Transport Protocol (HTTP). -Như vậy, sau khi bạn thiết kế xong các trang Web của mình, nếu bạn muốn đưa chúng lên mạng để mọi người có thể truy cập và xem chúng thì bạn phải nhờ đến một Web Server, ở đây là IIS. Nếu không thì trang Web của bạn chỉ có thể được xem trên chính máy của bạn hoặc thông qua việc chia sẻ tệp (file sharing) như các tệp bất kỳ trong mạng nội bộ mà thôi. 4.1.2. IIS có thể làm được gì? -Nhiệm vụ của IIS là tiếp nhận yêu cầu của máy trạm và đáp ứng lại yêu cầu đó bằng cách gửi về máy trạm những thông tin mà máy trạm yêu cầu. Bạn có thể sử dụng IIS để: - Xuất bản một Website của bạn trên Internet - Tạo các giao dịch thương mại điện tử trên Internet (hiện các catalog và nhận được các đơn đặt hàng từ nguời tiêu dùng) - Chia sẻ file dữ liệu thông qua giao thức FTP. - Cho phép người ở xa có thể truy xuất database của bạn (gọi là Database remote access). Và rất nhiều khả năng khác ... 4.1.3. IIS hoạt động như thế nào? -IIS sử dụng các giao thức mạng phổ biến là HTTP (Hyper Text Transfer Protocol) và FPT (File Transfer Protocol) và một số giao thức khác như SMTP, POP3,... để tiếp nhận yêu cầu và truyền tải thông tin trên mạng với các định dạng khác nhau. -Một trong những dịch vụ phổ biến nhất của IIS mà chúng ta quan tâm trong giáo trình này là dịch vụ WWW (World Wide Web), nói tắt là dịch vụ Web. Dịch vụ Web sử dụng giao thức HTTP để tiếp nhận yêu cầu (Requests) của trình duyệt Web (Web browser) dưới dạng một địa chỉ URL (Uniform Resource Locator) của một trang Web và IIS phản hồi lại các yêu cầu bằng cách gửi về cho Web browser nội dung của trang Web tương ứng. 4.2. SQL Server 2005 : 4.2.1. Khái niệm: -SQL Server là một hệ thống quản lý cơ sở dữ liệu (Relational Database Management System (RDBMS) ) sử dụng Transact-SQL để trao đổi dữ liệu giữa Client computer và SQL Server computer. Một RDBMS bao gồm 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. -SQL Server 2005 được tối ưu để có thể chạy trên môi trường cơ sở dữ liệu rất lớn (Very Large Database Environment) lên đến Tera-Byte và có thể phục vụ cùng lúc cho hàng ngàn user. SQL Server 2005 có thể kết hợp "ăn ý" với các server khác như Microsoft Internet Information Server (IIS), E-Commerce Server, Proxy Server.... 4.2.2. Phân loại SQL Server: SQL Server có 7 editions: Enterprise : Chứa đầy đủ các đặc trưng của SQL Server và có thể chạy tốt trên hệ thống lên đến 32 CPUs và 64 GB RAM. Thêm vào đó nó có các dịch vụ giúp cho việc phân tích dữ liệu rất hiệu quả (Analysis Services) Standard : Rất thích hợp cho các công ty vừa và nhỏ vì giá thành rẻ hơn nhiều so với Enterprise Edition, nhưng lại bị giới hạn một số chức năng cao cấp (advanced features) khác, edition này có thể chạy tốt trên hệ thống lên đến 4 CPU và 2 GB RAM. Personal: được tối ưu hóa để chạy trên PC nên có thể cài đặt trên hầu hết các phiên bản windows kể cả Windows 98. Developer : Có đầy đủ các tính năng của Enterprise Edition nhưng được chế tạo đặc biệt như giới hạn số lượng người kết nối vào Server cùng một lúc.... Ðây là edition mà các bạn muốn học SQL Server cần có. Chúng ta sẽ dùng edition này trong suốt khóa học. Edition này có thể cài trên Windows 2000 Professional hay Win NT Workstation. Desktop Engine (MSDE): Ðây chỉ là một engine chạy trên desktop và không có user interface (giao diện). Thích hợp cho việc triển khai ứng dụng ở máy client. Kích thước database bị giới hạn khoảng 2 GB. Win CE : Dùng cho các ứng dụng chạy trên Windows CE Trial: Có các tính năng của Enterprise Edition, download free, nhưng giới hạn thời gian sử dụng. 4.2.3. Các phiên bản của SQL Server: -SQL Server của Microsoft được thị trường chấp nhận rộng rãi kể từ version 6.5. Sau đó Microsoft đã cải tiến và hầu như viết lại một engine mới cho SQL Server 7.0. Cho nên có thể nói từ version 6.5 lên version 7.0 là một  bước nhảy vọt. Có một số đặc tính của SQL Server 7.0 không tương thích với version 6.5. Trong khi đó từ Version 7.0 lên version 8.0 (SQL Server 2000) thì những cải tiến chủ yếu là mở rộng các tính năng về web và làm cho SQL Server 2000 đáng tin cậy hơn. -Một điểm đặc biệt đáng lưu ý ở version 2000 là Multiple-Instance. Nói cho dễ hiểu là bạn có thể install version 2000 chung với các version trước mà không cần phải uninstall chúng. Nghĩa là bạn có thể chạy song song version 6.5 hoặc 7.0 với version 2000 trên cùng một máy (điều này không thể xảy ra với các version trước đây). Khi đó version cũ trên máy bạn là Default Instance còn version 2000 mới vừa install sẽ là Named Instance. 4.2.4. Các thành phần quan trọng trong SQL Server 2005: -SQL Server 2000 được cấu tạo bởi nhiều thành phần như Relational Database Engine, Analysis Service và English Query.... Các thành phần này khi phối hợp với nhau 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. a). Relational Database Engine - Cái lõi của SQL Server: -Ðây là một engine có khả năng chứa data ở các quy mô khác nhau dưới dạng table và support tất cả các kiểu kết nối (data connection) thông dụng của Microsoft như ActiveX Data Objects (ADO), OLE DB, and Open Database Connectivity (ODBC). Ngoài ra nó còn có khả năng tự điều chỉnh (tune up) ví dụ như sử dụng thêm các tài nguyên (resource) của máy khi cần và trả lại tài nguyên cho hệ điều hành khi một user log off. b). Replication - Cơ chế tạo bản sao (Replica). -Giả sử bạn có một database dùng để chứa dữ liệu được các ứng dụng thường xuyên cập nhật. Một ngày đẹp trời bạn muốn có một cái database giống y hệt như thế trên một server khác để chạy báo cáo (report database) (cách làm này thường dùng để tránh ảnh hưởng đến performance của server chính). Vấn đề là report server của bạn cũng cần phải được cập nhật thường xuyên để đảm bảo tính chính xác của các báo cáo. Bạn không thể dùng cơ chế back up and restore trong trường hợp này. Thế thì bạn phải làm sao? Lúc đó cơ chế replication của SQL Server sẽ được sử dụng để bảo đảm cho dữ liệu ở 2 database được đồng bộ (synchronized). c). Data Transformation Service (DTS) - Một dịch vụ chuyển dịch data vô cùng hiệu quả. Nếu bạn làm việc trong một công ty lớn trong đó data được chứa trong nhiều nơi khác nhau và ở các dạng khác nhau cụ thể như chứa trong Oracle, DB2 (của IBM), SQL Server, Microsoft Access.... Bạn chắc chắn sẽ có nhu cầu di chuyển data giữa các server này (migrate hay transfer) và không chỉ di chuyển bạn còn muốn định dạng (format) nó trước khi lưu vào database khác, khi đó bạn sẽ thấy DTS giúp bạn giải quyết công việc trên dễ dàng như thế nào. DTS sẽ được bàn kỹ trong bài 8. d). Analysis Service - Một dịch vụ phân tích dữ liệu rất hay của Microsoft. Dữ liệu (Data) chứa trong database sẽ chẳng có ý nghĩa gì nhiều nếu như bạn không thể lấy được những thông tin (Information) bổ ích từ đó. Do đó Microsoft cung cấp cho bạn một công cụ rất mạnh giúp cho việc phân tích dữ liệu trở nên dễ dàng và hiệu quả bằng cách dùng khái niệm hình khối nhiều chiều (multi-dimension cubes) và kỹ thuật "đào mỏ dữ liệu" (data mining) sẽ được chúng tôi giới thiệu trong bài 13. e). English Query -Ðây là một dịch vụ giúp cho việc query data bằng tiếng Anh "trơn" (plain English). f). Meta Data Service: -Dịch vụ này giúp cho việc chứa đựng và "xào nấu" Meta data dễ dàng hơn. Thế thì Meta Data là cái gì vậy? Meta data là những thông tin mô tả về cấu trúc của data trong database như data thuộc loại nào String hay Integer..., một cột nào đó có phải là Primary key hay không....Bởi vì những thông tin này cũng được chứa trong database nên cũng là một dạng data nhưng để phân biệt với data "chính thống" người ta gọi nó là Meta Data. Phần này chắc là bạn phải xem thêm trong một thành phần khác của SQL Server sắp giới thiệu sau đây là SQL Server Books Online vì không có bài nào trong loạt bài này nói rõ về dịch vụ này cả. g). SQL Server Books Online: - Quyển Kinh Thánh không thể thiếu: Cho dù bạn có đọc các sách khác nhau dạy về SQL server thì bạn cũng sẽ thấy books online này rất hữu dụng và không thể thiếu được( cho nên Microsoft mới hào phóng đính kèm theo SQL Server). h. SQL Server Tools: - Ðây là một bộ đồ nghề của người quản trị cơ sở dữ liệu (DBA ) Ái chà nếu kể chi tiết ra thì hơi nhiều đấy cho nên bạn cần đọc thêm trong books online. Ở đây người viết chỉ kể ra một vài công cụ thông dụng mà thôi. Ðầu tiên phải kể đến Enterprise Manager. Ðây là một công cụ cho ta thấy toàn cảnh hệ thống cơ sở dữ liệu một cách rất trực quan. Nó rất hữu ích đặc biệt cho người mới học và không thông thạo lắm về SQL. Kế đến là Query Analyzer. Ðối với một DBA giỏi thì hầu như chỉ cần công cụ này là có thể quản lý cả một hệ thống database mà không cần đến những thứ khác. Ðây là một môi trường làm việc khá tốt vì ta có thể đánh bất kỳ câu lệnh SQL nào và chạy ngay lập tức đặc biệt là nó giúp cho ta debug mấy cái stored procedure dễ dàng. Công cụ thứ ba cần phải kể đến là SQL Profiler. Nó có khả năng "chụp" (capture) tất cả các sự kiện hay hoạt động diễn ra trên một SQL server và lưu lại dưới dạng text file rất hữu dụng trong việc kiểm soát hoạt động của SQL Server. Ngoài một số công cụ trực quan như trên chúng ta cũng thường hay dùng osql và bcp (bulk copy)  trong command prompt. Tóm lại trong bài này chúng ta đã dạo qua một vòng để tìm hiểu về SQL Server. 4.3. ASP.NET 4.3.1. Khái niệm vềASP.NET: -Là phiên bản kế tiếp của Active Server Page (ASP); nó là một nền phát triển ứng dụng Web hợp nhất, cung cấp nhiều dịch vụ cần thiết cho lập trình viên xây dựng các lớp ứng dụng chuyên nghiệp. Cú pháp ASP.NET tượng thích với cú pháp ASP, ngoài ra ASP.NET còn cung cấp một mô hình lập trình mới, nền tảng an toàn (secure), linh hoạt (scalable),và ổn định (stable). Sẽ cảm thấy dễ chịu khi nâng cấp ứng dụng ASP hiện có, bằng cách đưa vào các hàm ASP.NET cho chúng (lời của MS). 4.3.2. Môi trường phát triển ứng dụng ASP.NET: -ASP.NET là biên dịch, dựa trên môi trường .NET và có thể xây dựng bằng bất cứ ngôn ngữ nào tương thích .NET, bao gồm Visual Basic .NET, C#, and JScript .NET. Ngoài ra, toàn bộ thư viện .NET Framework có thể sử dụng với ứng dụng ASP.NET, lập trình viên tận dụng dễ dàng những lợi ích của các kỹ thuật được cung cấp, bao gồm quản lý môi trường thực thi ngôn ngữ cung (common language runtime), kiểu an toàn (type safety), kế thừa (inheritance), .v.v. 4.3.3. Các tính năng lập trình trong ASP.NET: a). ASP.NET được thiết kế làm việc với các trình soạn thảo WYSIWYG HTML đi kèm và các công cụ lập trình khác được đưa vào trong Microsoft-Visual.NET. Tất cả các công cụ này không phài chỉ dùng để phát triển ứng dụng Web được dễ dàng, tuy nhiên có thể sử dụng một vài chức năng thông thường cho ứng dụng Web, bao gồm một GUI cho phép lập trình viên có thể dễ dàng đặt các server control vào trang web (web page), và một trình debug rất mạnh mẽ. b). Khi tạo một ứng dụng Web lập trình viên có thể chọn Web Forms hoặc Web Services, ngoài ra cũng có thể kết hợp hai loại này với nhau theo bất kỳ cách nào. Cà hai loại này có một nền cơ bản, cho phép sử dụng authentication schemes, cache frequently used data, hoặc chỉnh sửa cấu hình ứng dụng (customize application’s configuration). Tuy nhiên mỗi loại có một vài khả năng riêng: Web Forms cho phép xây dựng các form có nội dung phong phú (powerful forms) trên trang Web (Web Page). Khi xây dựng các form có thể sử dụng các server control để tạo các thành phần UI thông dụng và lập trình cho chúng một vài chức năng thông dụng, những control này cho phép xây dựng nhanh chóng các form chỉ dùng một lần (out of reusable built-in), hoặc các custom component, làm đơn giản mã của trang web (simplifying the code of a page). c). Một XML Web Service cung cấp điều kiện (mean) để truy cập các hàm ở server từ xa. Khi sử dụng Web Service, trong kinh doanh người ta có thể đưa ra các giao diện lập trình được cùng với dữ liệu, hoặc kết quả kinh doanh, những cái này có thể được nhận, hiệu chỉnh bởi các ứng dụng client và server. Web Server cho phép trao đổi dữ liệu theo hai kịch bản (scenarios) client-server và server-client, sử dụng chuẩn HTTP và thông diệp XML (XML messaging) để di chuyển dữ liệu qua tường lữa (firewall). XML Web Service có thể được viết bằng mọi ngôn ngữ lập trình, sử dụng mọi mô hình thành phần (component model), và có thể chạy trên bất kỳ hệ điều hành nào có thể truy cập XML Web Services. d). Mô hình (model) Web Forms và Web Services đều có tất cả các đặt tính của ASP.NET, đó là sức mạnh của .NET Framework và .NET Framework Common Lanuage Runtime. Các tính chất và cách sử dụng có thể được phát thảo như sau: - Với người đã có kỹ năng lập trình ASP thì mô hình lập trình mới ASP.NET sẽ rất gần gũi. Tuy là như vậy nhưng ASP.NET đã có những thay đổi rất đặc biệt so với ASP, ASP.NET đã có cấu trúc hơn và hướng đối tượng. Thật đáng tiết, điều này có nghĩa là tất cả các trang ASP đã tồn tại đều phải được chỉnh sửa một vài nơi để có thể chạy dưới ASP.NET. Ngoài ra, Visual Basic và Visual Basic.NET đã có một sự khác biệt rất lớn, điều này có nghĩa là các trang được viết bằng Visual Basic Scripting Edition sẽ không thể chuyển trực tiếp sang ASP.NET, cần thiết phải có một số thay đổi nhất định để có thể chuyển sang ASP.NET. Để có thêm thông tin về vấn đề này hãy xem mục Migrating from ASP to ASP.NET trong MSDN. - Truy cập database là kỹ thuật thường được sử dụng để hiển thị dữ liệu trên trang Web của khách (visitor). Với ASP.NET, việc quản lý (manage) database sẽ khá dễ dàng thông qua code. Để có nhiều thông tin hơn về vấn đề này xin xem mục Accessing Data with ASP.NET. - ASP.NET cung cấp một mô hình đơn giản để lập trình viên Web có thể làm việc như trên một ứng dụng thông thường. Lập trình viên có thể viết mã ngay trong file văn bản global.asax, hoặc là trong một class được biên dịch, được triễn khai như là một assembly, và có thể đưa vào các sự kiện mức ứng dụng. Ngoài ra người lập trình còn có thể mở rộng mô hình để thích hợp cho nhu cầu của từng ứng dụng. Để có nhiều thông tin hơn hãy xem mục ASP.NET Application trong MSDN. - ASP.NET tạo ra những chương trình dễ sử dụng và những session-state facility gần gủi với lập trình viên ASP và sẳn sàng tương thích với tất cả các giao diện lập trình .NET Framework khác (other .NET Framework APIs). Để có nhiều thông tin hơn xin xem mục ASP.NET State Management trong MSDN. - Đối với những lập trình viên cao cấp, người muốn sử dụng những giao diện lập trình mạnh như giao diện ISAPI (có trong ASP), ASP.NET giới thiệu hai giao diện: IhttpHandler và IhttpModule. Cài đặt giao diện IHttpHandler cho phép chương trình tương tác với các yêu cầu mức thấp (low-level request) và những dịch vụ hồi báo (response services) của IIS Web Services và cung cấp một vài chức năng giống với phần mở rộng ISAPI, nhưng với một mô hình lập trình rất đơn giản. Cài đặt giao diện IhttpModule cho phép lập trình viên đưa vào những customize event riêng trong mỗi yêu cầu (request) sinh ra trong ứng dụng. Để có nhiều thông tin hơn về vấn đề này hãy xem mục HTTP Runtime Support. - ASP.NET có được những chất lượng thực thi được tìm thấy trong .NET Framework và thực thi ngôn ngữ chung (common language runtime). Ngoài ra ASP.NET đã được thiết kế cho mục đích nâng cao khả năng thực thi vượt qua ASP và tất cả các nền ứng dụng Web khác (Lời của MS). - Tất cả mã của ASP.NET đều được biên dịch, việc này cho phép kết hợp dễ (early binding), kiễu mạnh (strong type), trình biên dịch tức thời (JIT) tương thích native code. Ngoài ra ASP.NET còn cung cấp catch mở rộng cho lập trình viên có thể tối ưu hóa ứng dụng trong một vài trường hợp. - Tạo được các câu lệnh debug (custom debug statements) cho trang web, nó rất hữu ích trong khi giãi quyết sự cố (troubleshooting). - Nền .NET Framework và ASP.NET cung cấp sơ đồ (schemes) chứng nhận(authentication) và cấp phép (authorization) cho ứng dụng Web, có thể dễ dàng xóa, thêm, hiệu chỉnh sơ đồ. - Cấu hình ứng dụng ASP.NET được lưu trữ trong các tập tin XML chuẩn, hiệu chỉnh dễ dàng , và có thể mở rộng để phù hợp cho nhu cầu của từng ứng dụng Web. 4.4. MÔ HÌNH MODEL-VIEW-CONTROLLER (MVC). 4.4.1.Khái niệm mô hình MVC: -MVC là viết tắt của Model-View-Controller. Phương pháp thiết kế MVC là phương pháp chia nhỏ một ứng dụng thành nhiều lớp hoặc chia nhỏ phần giao diện người dùng (User Interface) của một ứng dụng thành 3 phần chính là Model, View và Controller. 4.4.2 Các thành phần trong mô hình: a). Model (tạm dịch là phần “Mô hình”) là một đối tượng hoặc tập hợp các đối tượng biểu diển cho phần dữ liệu của chương trình, ví dụ: các dữ liệu được lưu trong cơ sở dữ liệu hay từ các hệ thống ứng dụng khác (như mail…). b.) View (tạm dịch là phần “Hiển thị”): Là phần giao diện với người dùng, bao gồm việc hiện dữ liệu ra màn hình, cung cấp các menu, nút bấm, hộp đối thoại, chọn lựu…, để người dùng có thể thêm, xóa, sửa, tìm kiếm và làm các thao tác khác đối với dữ liệu trong hệ thống. c). Controller (tạm dịch là phần “Điều khiển”): Là phần điều khiển toàn bộ logic về hoạt động của giao diện, tương tác với thao tác của người dùng (từ chuột, bàn phím và các thiết bị ngoại vi khác) và cập nhật, thao tác trên dữ liệu theo đầu vào nhận được và điều khiển việc chọn phần “Hiển thị” thích hợp để truyền dữ liệu tới người dùng. 4.4.3. Các dạng của mô hình MVC: -Với phương pháp thiết kế này, các chức năng hiển thị, chức năng logic điều khiển và chức năng truy cập dữ liệu của chương trình được chia thành các phần riêng biệt. Java là một ngôn ngữ lập trình hướng đối tượng thuần túy nên việc áp dụng MVC vào các phần mếm viết bằng Java rất dễ dàng và thuận tiện. Có hai hình mẫu chính của phương pháp thiết kế MVC trong Java là MVC model 1 và MVC model 2. a). Trong MVC model 1, các trang JSP đóng vai trò “Hiển thị” (View) và “Điều khiển” (Controller). Có thể có nhiều trang JSP khác nhau đóng các vai trò khác nhau. -Thao tác của người dùng trên trình duyệt web được gửi tới một trang JSP. Trang JSP này sẽ khởi tạo một hoặc nhiều Java Bean (nếu cần thiết), truyền các lệnh cần thi hành tới Java Bean (không phải Enterprise Java Bean). -Sau khi Java Bean thực hiện xong việc truy xuất hoặc cập nhập dữ liệu, trang JSP ban đầu có thể hiển thị dữ liệu lấy từ Bean (JSP ban đầu đóng luôn vai trò View), hoặc chọn một trang JSP khác để hiện dữ liệu từ Bean (JSP ban đầu đóng luôn vai trò Controller). Trong một thiết kế tốt, để đảm bảo việc tách rời phần trình bày và logic của chương trình, trang JSP nhận yêu cầu chỉ đóng vai trò “Điều khiển” (Contronller). -MVC model 1 có một nhược điểm là phần logic điều khiển được viết trong trang JSP, như vậy phần chương trình Java phức tạp dùng để điều khiển sẽ bị lẫn vào trong mã HTML dùng để trình bày. Độ phức tạp của chương trình càng cao, thì trang JSP càng khó phát triển và bảo trì. Hơn nữa, trong các dự án phức tạp, phần hiển thị do người thiết kế web giỏi về HTML và đồ họa thực hiện, còn phần điều khiển được người chuyên về lập trình thực hiện. Dùng JSP làm phần điều khiển sẽ khó phân ranh giới trách nhiệm giữa nhóm thiết kế đồ họa và nhóm lập trình. Để khắc phục nhược điểm này, MVC model 2 ra đời. Trong MVC model 2, một hoặc nhiều servlet (thường là một) đóng vai trò điều khiển, các Java Bean đóng vai trò mô hình và các trang JSP đóng vai trò hiển thị. b). Trong model 2, các logic phức tạp của chương trình được viết hoàn toàn trong các servlet (chương trình Java). Phần hiển thị chỉ gồm các trang JSP với một vài mã đơn giản để lấy dữ liệu có sẵn, không có logic phức tạp, vì thế hoàn toàn có thể giao cho người thiết kế web. Các yêu cầu của người dùng được gửi từ trình duyệt web tới servlet. Servlet sẽ khởi tạo Java Bean (nếu cần thiết), ra lệnh thu nhập, cập nhập thông tin. Khi Java Bean hoàn thành công việc, servlet sẽ chọn trang JSP thích hợp để hiện thông tin trong Java Bean cho người dùng. Đây là cách sử dụng MVC rất hiệu quả trong Java. Tất nhiên, sử dụng MVC model 2 một cách hoàn toàn cứng nhắc, phần “Điều khiển” chỉ dùng servlet, phần “Hiển thị” chỉ dùng JSP sẽ dãn đến một vài trường hợp kém hiệu quả, nhất là khi các yêu cầu từ trình duyệt web chỉ đòi hỏi việc hiển thị thông tin. Trong trường hợp này, gửi thẳng yêu cầu hiển thị từ trình duyệt web tới trang JSP sẽ hiệu quả hơn. Trong cách áp dụng MVC này, các yêu cầu có liên quan đến logic chương trình hoặc truy cập dữ liệu sẽ gửi tới servlet controller, còn các yêu cầu chỉ liên quan tới hiển thị sẽ được gửi tới JSP controller. CHƯƠNG III.PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG 1. Giới thiệu : -Phân tích và thiết kế hệ thống nhằm hiểu rõ chu kỳ phát triển hệ thống, nghiên cứu sơ bộ, mô hình hóa yêu cầu, dữ liệu và quá trình, mô hình hóa đối tượng, thiết kế nhập xuất và giao diện người sử dụng, thiết kế dữ liệu, kiến trúc ứng dụng, thực hiện, cài đặt, vận hành và hỗ trợ hệ thống. 2. Phân tích hệ thống theo sơ đồ Chức năng: 2.1. Quản lý người dùng: -Là chức năng quản lý người dùng hay đăng nhập vào hệ thống, với mỗi user này đều có username (tên người dùng) và password (mật mã) riêng. Quản lý người dùng(user) gồm 2 chức năng chính: là hiển thị danh sách người dùng và Thêm, Sửa xóa người dùng . 2.1.1. Hiển thị danh sách người dùng: -Là chức năng hiển thị toàn bộ người dùng trong hệ thống để theo dõi và quản lý người dùng một cách dễ dàng và thuận tiện. 2.1.2. Thêm, Sửa, Xoá người dùng: -Được gọi chung là chức năng cập nhật người dùng, chức năng này có nhiệm vụ thay đổi thông tin người dùng, đưa thêm hay loại bỏ người dùng trong hệ thống. 2.2. Quản lý thư mục: -Là chức năng quản lý thư mục của hệ thống, mỗi thư mục là một chức năng riêng, có một đường liên kết tới chức năng của thư mục đó. Quản lý thư mục gồm 2 chức năng chính: Hiển thị danh sách thư mục và Thêm, Sửa, Xoá thư mục. 2.2.1. Hiển thị danh sách thư mục: -Cũng như chức năng hiển thị danh sách người dùng, chức năng này có nhiệm vụ hiển thị danh sách thư mục để quản lý một cách dễ dàng và thuận tiện hơn. 2.2.2. Thêm, Sửa, Xoá thư mục: -Chức năng này có nhiệm vụ cập nhật thông tin của thư mục, thêm mới hay loại bỏ thư mục trong một hệ thống. Chức năng này chỉ có người dùng quản trị mới được sử dụng. Vì thay đổi nội dung của thư mục làm thay đổi cấu trúc toàn bộ của chương trình. 2.3. Quản lý Phân quyền: -Là chức năng phân quyền người dùng, chức năng này phụ thuộc vào 2 đối tượng “Người dùng” và “Thư mục”. Mỗi người dùng sẽ sử dụng một số các thư mục, các thư mục khác không có quyền sử dụng sẽ không được hiên ra trên giao diện người dùng. Phân quyền gồm 2 chức năng chính: Hiện thị danh sách Phân Quyền và Thêm sửa xoá Phần Quyền với Người Dùng. 2.3.1. Hiện thị danh sách Phân Quyền: -Là chức năng hiển thị danh sách người dùng và các quyền truy cập tới thư mục trong hệ thống. Chức năng này làm cho việc quản lý phân quyền tới từng thư mục cho một người dùng một cách dễ dàng và thuận tiện hơn. 2.3.2. Thêm sửa xoá Phần Quyền với Người Dùng: -Là chức năng cập nhât quyền hạn của người dùng, từ chức năng này có thể phân phát quyền hạn quản lý các chức năng khác nhau cho từng người dùng. Chức năng này chỉ có người dùng quản trị mới có quyền được sử dụng. 2.4. Quản lý Nhân viên: -Là chức năng chính trong hệ thống, quản lý nhân sự trong doanh nghiệp vinapay. Gồm 2 chức năng chính: Hiển thị danh sách nhân viên và Thêm, sửa, xoá nhân viên. 2.4.1. Hiển thị danh sách nhân viên: -Là chức năng hiển thị danh sách người dùng, trong chức năng này người dùng sẽ quản lý được nhân sự trong công ty. Từ chức năng này có thể thống kê, quản lý và báo cáo tình trạng nhân sự trong công ty. 2.4.2. Thêm, sửa, xoá nhân viên: -Là chức năng cập nhật nhân viên trong công ty, từ đây có thể thay đổi hồ sơ nhân viên, thêm mới hay loại bỏ nhân viên trong hệ thống quản lý. Với chức năng này chỉ có người dùng quản lý hồ sơ mới được sử dụng. 3. Phân tích hệ thống theo sơ đồ luồng dữ liệu: 3.1. Sơ đồ luồng dữ liệu mức ngữ cảnh: 3.2. Sơ đồ luồng dữ liệu mức đỉnh : 3.3.Sơ đồ luồng dữ liệu mức dưới đỉnh: 3.3.1. Chức năng quản lý người dùng: 3.3.2. Chức năng quản lý thư mục: 3.3.3. Chức năng phân quyền: 3.3.4. Chức năng quản lý Nhân viên: 3.4. Sơ đồ luồng dữ liệu tổng quát: 3.4.1. Quản lý tài khoản của nhân viên trong công ty: 3.4.2. Quản lý nhân viên trong công ty: 4. Các bảng cơ sở dữ liệu dùng trong chương trình: 4.1. Bảng Tài khoản : -Gồm các trường: Tên Tài Khoản, Mật Khẩu, Quản trị. 4.2.Bảng Thư mục_Tài khoản : -Gồm các trường: Mã thư mục, Tên tài khoản. 4.3. Bảng Nhân viên : -Gồm các trường:Mã Nhân Viên, Tên, Họ, Ngày Sinh, Địa chỉ, Số CMTND, Ngày Kí Hợp Đồng, Nơi Kí Hợp Đồng, Chuyên môn, Phòng, Ngày Bắt Đầu, Ngày Kết Thúc, Loại Hợp Đồng, Mức Lương. 4.4. Bảng Thư mục: -Gồm các trường: Mã thư mục, Tên Thư Mục, Đường Kết Nối CHƯƠNG VI. PHÁT TRIỂN ỨNG DỤNG. 1. Xây dựng kế hoạch phát triển ứng dụng 1.1. Tiêu chí phát triển: -Để phát triển ứng dụng một cách hiệu quả và có chất lượng cần phải đưa ra các bước xây dựng chương trình, các tiêu chí cho áp dung công nghệ và thiết kế. Có nghĩa là chương trình xây dựng phải đảm bảo đi theo mô hình phân tích và thiết kế. Để làm được điều đó thì chương trình xây dựng phải: - Xây dựng hệ thống chức năng của ứng dụng phải đảm bảo đúng như các chức năng được phân tích và thiết kế. - Xây dựng cấu trúc của chương trình phải tương thích với mô hình MVC. - Các bảng biểu chương trình phải đúng với thiết kế. 1.2. Kế hoạch phát triển: -Ngoài các tiêu chí xây dưng chương trình, khi phát triển ứng dụng cần phải thực hiện các bước sau một cách tuân thủ chặt chẽ. Bước 1: Cài đặt cơ sở dữ liệu và các dữ liệu khởi tạo chương trình. Bước 2: Xây dựng cấu trúc chương trình. Bước 3: Phát triển các chức năng theo thiết kế. 2. Cài đặt cơ sở dữ liệu và dữ liệu khởi tạo: 2.1.Tạo cơ sở dữ liệu: -Tạo cơ sở dữ liệu trong SQL Server 2005 với tên là HRM (Human Resour). 2.2. Tạo các bảng biểu: 2.2.1. Bảng Thumuc_Taikhoan: [Mã Thư Mục] nchar(10) Checked [Tên Tài Khoản] nchar(10) Checked 2.2.2. Bảng Taikhoan: [Tên Tài Khoản] nchar(20) Checked [Mật Khẩu] nchar(20) Checked [Quản Trị] int Checked 2.2.3. Bảng NhanVien: [Mã Nhân Viên] nchar(15) Checked Tên nchar(15) Checked Họ nchar(30) Checked [Ngày Sinh] datetime Checked [Địa chỉ] nchar(50) Checked [Số CMTND] nchar(15) Checked [Ngày Kí Hợp Đồng] datetime Checked [Nơi Kí Hợp Đồng] nchar(30) Checked [Chuyên Môn] nchar(30) Checked Phòng nchar(30) Checked [Ngày Bắt Đầu] datetime Checked [Ngày Kết Thúc] datetime Checked [Loại Hợp Đồng] nchar(50) Checked [Mức Lương] int Checked 2.2.4. Bảng Thumuc: [Mã Thư Mục] nchar(10) Checked [Tên Thư Mục] nchar(30) Checked [Đường Kết Nối] nchar(100) Checked 3. Cấu trúc chương trình áp dụng mô hình MVC: 3.1. Cấu trúc thư mục của chương trình: -Cấu trúc thư mục chương trình được hiển thị theo hình cây với mỗi thư mục con tương ứng giữ một nhiệm vụ chính trong chình. 3.2. Các thành phần trong cấu trúc: 3.2.1. Thư mục common: -Chứa các hàm các thủ tục dùng chung như: các hàm xâu, các hàm về toán học, ... 3.2.2. Thư mục Controller: -Chứa các đối tương Controller trong mô hình MVC, sử dụng lấy data và truyền vào View. 3.2.3. Thư mục Controller: -Là thư mục trong cấu trúc mo hình MVC, chứa các đối tương mô tả các đối tượng trong hệ thống chương trình. 3.2.3. Thư mục Images: -Là thư mục chứa các logo, ảnh của chương trình. 3.2.4. Thư mục Interface: -Thư mục nằm trong cấu trúc mô hình MVC, là chức năng View của cấu trúc. Tất cả giao tiếp giữa người dùng và chương trình được xây dựng trong chức năng này. 3.2.4. Các thành phần khác: a. Trang default.aspx: là trang mặc định của chương trinh, Chương trình khi chạy sẽ chạy vào trang này đầu tiên. b. Tệp web.config: là tệp cấu hình của chương trình. Sử dụng để cấu hình kết nối với cơ sở dữ liệu. 4. Xây dựng các chức năng trong hệ thống: 4.1. Quản lý người dùng: 4.1.1. Chức năng đăng nhập a. Mục đích: Sử dụng để đăng nhập hệ thống. b. Giao diện chương trình: c. Đoạn mã chính trong chương trình: protected void btnLogin_Click(object sender, EventArgs e) { string strUsername = this.txtUsername.Text; string strPassword = this.txtPassword.Text; AccountDetails objAccountDetails = new AccountDetails(strUsername, strPassword); int intCount = objAccountDB.CheckAccount(objAccountDetails); Session["sesUsername"] = strUsername; Session["sesPassword"] = strPassword; if (intCount == -1) { Response.Write(objAccountDB.ErrorDetail); Response.Write(""); return; } if (intCount != 0) { Response.Redirect(GetApplicationPath() + "/Interface/home.aspx?page=interface/wellcome.aspx"); } Response.Write("don't access right!"); } } 4.1.2. Hiển thị danh sách người dùng: a. Mục đích: hiển thị danh sách người dùng, từ đây có thể link đến chức năng quản lý thư mục. b. Giao diện: c. Đoạn mã chính: public partial class Interface_AccessWebsite_AccountList : System.Web.UI.Page { private AccountDB objAccountDB = new AccountDB(); private AccountDetails[] arrAccountDetails; protected void Page_Load(object sender, EventArgs e) { arrAccountDetails = objAccountDB.GetAllAccounts(); this.grdAccounts.DataSource = arrAccountDetails; grdAccounts.DataBind(); } } 4.1.3.Thay đổi Mật khẩu: a. Mục đích: Là một trong những chức năng cập nhật người dùng, chức năng sử dụng để thay đổi mật khẩu của người dùng. Chức năng này chỉ thay đổi mật khẩu cho chính người dùng đang sử dụng b. Giao diện: c. Đoạn mã chính: protected void btnChange_Click(object sender, EventArgs e) { // Check suitable between Password and ConfirmPassword if (this.txtConfirmPassword.Text != this.txtPassword.Text) { this.lblMessage.Text = "Password anh confirm is suitable!"; return; } // Change Password objAccountDetails.Username = (string)Session["sesUsername"]; objAccountDetails.Password = this.txtPassword.Text; int intError = objAccountDB.ChangePassword(objAccountDetails); // check blank pass //if (objAccountDB.ChangePassword(objAccountDetails) == 1 ) //{ // check error if (intError == 0) { this.lblMessage.Text = "Don't use blank password"; return; } else { this.lblMessage.Text = "Password chage successfully!"; return; } } } 4.1.4. Tạo người dùng mới: a. Mục đích: Dùng để tạo mới người dùng, chức năng chỉ có người quản trị mới được sử dụng. b. Giao diện: c.Đoạn mã chính: protected void Accept_Click(object sender, EventArgs e) { string _username = this.txtUsername.Text; string _password = this.txtPassword.Text; if (objCommon.CheckEmpty(this.txtUsername.Text) == 1) { Response.Write("Don't use blank Username !"); return; } if (objCommon.CheckEmpty(this.txtPassword.Text) == 1) { Response.Write ("Don't use blank password !"); return; } if (this.txtPassword.Text != this.txtConf.Text) { Response.Write("Password anh confirm is suitable!"); return; } string _administrator; if (CheckBox1.Checked) _administrator = "1"; else _administrator = "0"; AccountDetails accdetail = new AccountDetails(_username, _password, _administrator); int _count = accdb.CheckAccount(_username); if (_count == 0) { Response.Write("Account is not readly!"); int _flag = accdb.InsertAccount(accdetail); if (_flag == 1) { Response.Write("Insert Account is success!"); } else { Response.Write("Insert Account is not success!"); } } else { Response.Write("Account is readly!"); } } } 4.1.5. Xóa tài khoản: a. Mục đích: Sử dụng để xóa tài khỏan người dùng trong hệ thông, chức năng này chỉ có người dùng quản trị mới được dùng. b. Giao diện: d. Đoạn mã chính: protected void Page_Load(object sender, EventArgs e) { DialogResult reply; reply = MessageBox.Show("Are you sure ?", "Yes or No Demo", MessageBoxButtons.YesNo, MessageBoxIcon.Question); if (reply == DialogResult.Yes) { int intError = objAccountDB.DeleteAccount(Request.QueryString["username"]); if (intError == 1) { Response.Redirect("~/interface/accesswebsite/AccountList.aspx"); return; } Response.Write(objAccountDB.ErrorDetail); return; } else Response.Redirect("~/interface/accesswebsite/AccountList.aspx"); } 4.2. Quản lý nhân viên: 4.2.1. Hiển thị danh sách nhân viên: a. Mục đích: Chức năng này dùng để theo dõi danh sách nhân viên trong công ty, để có thể theo dõi, thống kê và báo cáo một cách dễ dàng và thuận tiện. b. Giao diện: c. Đoạn mã chính: protected void Page_Load(object sender, EventArgs e) { //Response.Write(objEmployeeDB.ConnectionString); //Response.Write(""); arrEmployeeDetails = objEmployeeDB.GetEmployees(); if (objEmployeeDB.Error == 1) { lblMessage.Text = "Error: " + objEmployeeDB.ErrorDetail; return; } this.grdEmployees.DataSource = arrEmployeeDetails; grdEmployees.DataBind(); } 4.2.2. Xóa nhân viên: a. Mục đích: Sử dụng để xóa nhân viên ra khỏi hệ thống quản lý nhân sự. Chức năng này chỉ có người quản lý nhân sự mới có quyền truy cập. b. Giao diện: c. Đoạn mã chính: protected void Page_Load(object sender, EventArgs e) { int intError = objEmployeeDB.DeleteEmployee(Request.QueryString["EmployeeID"]); if (intError == 1) { Response.Redirect("~/interface/employees/emplist.aspx"); return; } Response.Write(objEmployeeDB.ErrorDetail); } } 4.2.3. Cập nhật thông tin nhân viên: a. Mục đích: là chức năng chỉnh sửa thông tin của nhân viên. b. Giao diện: c. Đoạn mã chính: protected void bntUpdate_Click(object sender, EventArgs e) { Common objCommon = new Common(); EmployeeDetails objEmployeeDetail = new EmployeeDetails(); EmployeeDB objEmployeeDB = new EmployeeDB(); objEmployeeDetail.EmployeeID = this.txtEmployeeID.Text; objEmployeeDetail.FirstName = this.txtFirstName.Text; objEmployeeDetail.LastName = this.txtLastName.Text; objEmployeeDetail.DateOfBirth = objCommon.ConvertIntToDate( this.lstDayOfDateOfBirth.Text, this.lstMonthOfDateOfBirth.Text, this.lstYearOfDateOfBirth.Text); objEmployeeDetail.PernamentAddress = this.txtPernamentAddress.Text; objEmployeeDetail.IDCardNumber = this.txtIDCardNumber.Text; objEmployeeDetail.IssuedDate = objCommon.ConvertIntToDate( this.lstDayOfIssuedDate.Text, this.lstMonthOfIssuedDate.Text, this.lstYearOfIssuedDate.Text); objEmployeeDetail.IssuedPlace = this.txtIssuedPlace.Text; objEmployeeDetail.Title = this.txtTitle.Text; objEmployeeDetail.Department = this.txtDepartment.Text; objEmployeeDetail.StartDate = objCommon.ConvertIntToDate( this.lstDayOfStartDate.Text, this.lstMonthOfStartDate.Text, this.lstYearOfStartDate.Text); objEmployeeDetail.ProbEnd = objCommon.ConvertIntToDate( this.lstDayOfProbEnd.Text, this.lstMonthOfProbEnd.Text, this.lstYearOfProbEnd.Text); objEmployeeDetail.EndDate = objCommon.ConvertIntToDate( this.lstDayOfEndDate.Text, this.lstMonthOfEndDate.Text, this.lstYearOfEndDate.Text); objEmployeeDetail.ContractStatus = this.txtContractStatus.Text; objEmployeeDetail.GrossSalaryStatus = objCommon.ConvertStrToNum(this.txtGrossSalaryStatus.Text); objEmployeeDB.UpdateEmployee(objEmployeeDetail); if (objEmployeeDB.Error == 1) { Response.Write(objEmployeeDB.ErrorDetail); } else { Response.Redirect("EmpList.aspx"); } } 4.2.4. Thêm mới nhân viên: a. Mục đích: Sử dụng để làm thêm mới một nhân viên, khi nhân viên đó được kí hợp đồng thử việc, hay hợp đồng chính thức. b. Giao diện: c. Đoạn mã chính: protected void bntAddNew_Click(object sender, EventArgs e) { Common objCommon = new Common(); EmployeeDetails objEmployeeDetail = new EmployeeDetails(); EmployeeDB objEmployeeDB = new EmployeeDB(); objEmployeeDetail.EmployeeID = this.txtEmployeeID.Text; objEmployeeDetail.FirstName = this.txtFirstname.Text; objEmployeeDetail.LastName = this.txtLastname.Text; objEmployeeDetail.DateOfBirth = objCommon.ConvertIntToDate( this.lstDayOfDateOfBirth.Text, this.lstMonthOfDateOfBirth.Text, this.lstYearOfDateOfBirth.Text); objEmployeeDetail.PernamentAddress = this.txtPernamentAddress.Text; objEmployeeDetail.IDCardNumber = this.txtIDCardNumber.Text; objEmployeeDetail.IssuedDate = objCommon.ConvertIntToDate( this.lstDayOfIssuedDate.Text, this.lstMonthOfIssuedDate.Text, this.lstYearOfIssuedDate.Text); objEmployeeDetail.IssuedPlace = this.txtIssuedPlace.Text; objEmployeeDetail.Title = this.txtTitle.Text; objEmployeeDetail.Department = this.txtDepartment.Text; objEmployeeDetail.StartDate = objCommon.ConvertIntToDate( this.lstDayOfStartDate.Text, this.lstMonthOfStartDate.Text, this.lstYearOfStartDate.Text); objEmployeeDetail.ProbEnd = objCommon.ConvertIntToDate( this.lstDayOfProbEnd.Text, this.lstMonthOfProbEnd.Text, this.lstYearOfProbEnd.Text); objEmployeeDetail.EndDate = objCommon.ConvertIntToDate( this.lstDayOfEndDate.Text, this.lstMonthOfEndDate.Text, this.lstYearOfEndDate.Text); objEmployeeDetail.ContractStatus = this.txtContractStatus.Text; objEmployeeDetail.GrossSalaryStatus = objCommon.ConvertStrToNum(this.txtGrossSalaryStatus.Text);// .ToInt32(this.txtContractStatus.Text); // objEmployeeDetail.PernamentAddress = this.txtPernamentAddress.Text; int intError = objEmployeeDB.InsertEmployee(objEmployeeDetail); if (intError == -1) { Response.Write(objEmployeeDB.ErrorDetail); return; } else { Response.Write("successly!"); Response.Redirect("EmpList.aspx"); } // Response.Redirect("EmpAddview.aspx"); } 4.3.Quản lý phân quyền: 4.3.1. Hiển thị danh sách phân quyền: a. Mục đích: Sử dụng để quản lý việc phân quyền hệ thống cho các user. b. Giao diện: c. Đoạn mã: public partial class Interface_AccessWebsite_DeleteAccMenu : System.Web.UI.Page { private MenuDB objMenuDB = new MenuDB(); protected void Page_Load(object sender, EventArgs e) { int intError = objMenuDB.DeleteMenuAccount(Request.QueryString["Username"], Request.QueryString["IDMenu"]); if (intError == 1) { Response.Redirect("~/interface/accesswebsite/EditAccMenu.aspx"); return; } Response.Write("Error"); return; } } 4.3.2. Cập nhật phân quyền người dùng: a. Mục đích: Sử dụng để thêm mới, xóa quyền sử dụng của người dùng. b. Giao diện: c.Đoạn mã: public partial class Interface_AccessWebsite_DeleteAccMenu : System.Web.UI.Page { private MenuDB objMenuDB = new MenuDB(); protected void Page_Load(object sender, EventArgs e) { int intError = objMenuDB.DeleteMenuAccount(Request.QueryString["Username"], Request.QueryString["IDMenu"]); if (intError == 1) { Response.Redirect("~/interface/accesswebsite/EditAccMenu.aspx"); return; } Response.Write("Error"); return; } } KẾT LUẬN Vơí nền kinh tế thị trường ngày càng phát triển như nước ta hiện nay, việc xuất hiện nhiều tập đoàn, công ty được thành lập và phát triển với tốc độ nhanh chóng, chính vì vậy, việc quản lý nhân sự là một phần không thể thiếu. Trong thời gian thực tập ở công ty cổ phần công nghệ thanh toán Việt Nam-Vinapay, em đã tham gia xây dựng chương trình quản lý nhân sự của công ty. Qua đó, em đã bước đầu được làm quen và tiếp thu một số kiến thức cơ bản về SQL Server, Asp.net, C#... Với chương trình “Quản Lý Nhân Sự Công Ty Vianapay”, em mong muốn đưa ra được cái nhìn tổng thể về việc quản lý nhân sự trong công ty một cách đơn giản và hiệu quả nhất. Về cơ bản, chương trình đã đáp ứng được những chức năng đơn giản như: nhập, sửa chữa, xóa, thêm mới, quản lí, bảo mật thông tin của nhân viên trong công ty. Do còn hạn chế về kiến thức cũng như kinh nghiệm thực tế nên khi xây dựng chương trình còn nhiều mặt hạn chế như: thiếu phần tính hệ số lương, hay quản lý thông tin nhân viên còn nhiều thiếu xót…Em rất mong được sự hướng dẫn khắc phục và chỉ bảo của thầy cô. Một lần nữa, em xin chân thành cảm ơn công ty Vianapay và thầy Đặng Minh Ất đã giúp đỡ em trong quá trình thực tập và hoàn thành đề tài. TÀI LIỆU THAM KHẢO *E-BOOKS : 1. Kỹ thuật lập trình C#. 2. Tìm hiểu C# và ứng dụng. Đồng tác giả: Phạm Văn Việt-Trương Lập Vĩ_Bộ môn Công nghệ phần mềm-Khoa Công nghệ thông tin- Trường Đại học Khoa Học Tự Nhiên. 3. Introduction to ASP.Net. 4. SQL Instant Reference. Tác giả: Martin Gruber. 5. Complete IIS Training Coure. Tác giả: Torn Dell và Marine Leroux. *Website: 1. www.javavietnam.org 2. www.wikipedia.org 3. www.diendanaptech.com PHỤ LỤC 1.CÁC KÍ HIỆU TRONG PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG: Tác nhân ngoài: Chức năng : Luồng dữ liệu : Kho dữ liệu : 2.Một số hàm sử dụng trong bảng cơ sơ dữ liệu: Nchar: hàm cố định chiều dài chuỗi kí tự. Datetime: hàm thời gian (ngày, tháng). Int (hàm số nguyên). 3.Từ viết tắt trong bài: * HTML: Hyper Text Markup Language. * XML: Extension Markup Language. * HTTP: Hyper Text Transfer Protocol. * FTP: File Transfer Protocol. * DBA: Database Administrator. * POP3: Post Office Protocol. * SMTP: Simple Mail Transfer Protocol. MỤC LỤC

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

  • docỨng dụng web - quản lý nhân sự.DOC