3 Tỷ lệ các server sử dụng Apache so với các phần mềm khác Theo số liệu của Netcraft.comNhiệm vụ của Apache server là khi có bất cứ một browser trên máy khách client yêu cầumột trang web
Trang 1PHIẾU GIAO NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP
1 Nội dung đồ án :
Nghiên cứu công nghệ Sitefinity và xây dựng hệ thống thông tin chứng khoán
2 Các nhiệm vụ cụ thể :
a, Nghiên cứu công nghệ Sitefinity
b, Xây dựng hệ thống thông tin chứng khoán trên nền CMS_Sitefinity nhằm mục đíchcung cấp thông tin cho người truy cập.1`
3 Lời cam đoan của sinh viên :
Tôi – Đoàn Minh Tuấn - cam kết ĐATN là công trình nghiên cứu của bản thân tôi dưới sự hướng dẫn của Thạc sỹ Lê Tấn Hùng
Các kết quả nêu ra trong ĐATN là trung thực, không phải là sao chép toàn văn của bất
kỳ công trình nào khác
Hà Nội, ngày tháng năm
Tác giả ĐATN
Đoàn Minh Tuấn
4 Giáo viên hướng dẫn xác nhận về mức độ thành công của ĐATN và cho phép bảovệ
Hà Nội, ngày tháng năm
Giáo viên hướng dẫn
Thạc sỹ Lê Tấn Hùng
Trang 2BẢN TÓM TẮT NỘI DUNG ĐỒ ÁN TỐT NGHIỆP
Tên đề tài : Xây Nghiên cứu công nghệ quản trị nội dung SiteFinity Và xây dựng hệ thống thông tin sàn chứng khoán
Trang 3CMA ứng dụng quản lý nội dung
MMA ứng dụng quản lý nội dung thông tin
(matecontent)CDA và ứng dụng phân phối nội dung.
AJAX Asynchronous Javascript And XML
ORML Object-relational mapping layer
Trang 4Danh mục các bảng
Bảng 1 1 - So sánh giữa công nghệ web tĩnh và web động 13
Bảng 2 1 – Các sự kiện trong Nolics 37
Bảng 3 1 – Bảng CI_CompanyInfo Thông tin công ty 63
Bảng 3 2 - Bảng CI_ConpanyLang Thông tin công ty với các ngôn ngữ 64
Bảng 3 3 - Bảng CI_Leader Ban lãnh đạo 64
Bảng 3 4 - Bảng SYS_Langluage Thông tin ngôn ngữ 65
Bảng 3 5 - Bảng CI_AuthorityShareholder Thông tin quyền cổ đông 66
Bảng 3 6 - Bảng SYS_ListCommon_Lang Thông tin danh mục dung chung 66
Bảng 3 7 - Bảng CI_OwnershipStrure Thông tin cơ cấu cổ đông 67
Bảng 3 8 - Bảng CI_MajorHolder Thông tin các cổ đông lớn 67
Bảng 3 9 - Bảng CI_MajorHolder_Lang Thông tin cổ đông lớn_ngôn ngữ 68
Bảng 3 10 - Bảng CI_InsiderTransaction Thông tin giao dịch nội bộ 69
Bảng 3 11 - Bảng CI_InsiderTransaction_Lang Thông tin giao dịch nội bộ_ngôn ngữ 69
Bảng 3 12 - Bảng CI_PublishFinancial Thông tin danh sách báo cáo tài chính 70
Bảng 3 13 - Bảng CI_BalanceSheet Thông tin các mục của bản cân đối kế toán 71
Bảng 3 14 - CI_BalanceSheet_Lang Thông tin bảng cân đối phần có ngôn ngữ 71
Bảng 3 15 - CI_BalanceSheet_Conpany Thông tin bảng cân đối của công ty 72
Bảng 3 16 - Bảng CI_IncomeStatement Thông tin các mục của kết quả kinh doanh .72 Bảng 3 17 - Bảng CI_IncomeStatement_Lang Thông tin bảng mục kinh doanh phần có ngôn ngữ 73
Bảng 3 18 - Bảng CI_IncomeStatement_Company Thông tin về bảng kinh doanh của công ty 74
Bảng 3 19 - Lược đồ dữ liệu Công ty phát hành cổ phiếu 74
Bảng 3 20 - Lược đồ dữ liệu Báo cáo tài chính 75
Bảng 3 21 - Lược đồ dữ liệu Hệ thống 75
Bảng 3 22 - Lược đồ dữ liệu Giao dịch nội bộ 76
Bảng 3 23 - Lược đồ dữ liệu thông Tin các cổ đông lớn 76
Bảng 3 24 - Lược đồ dữ liệu Lãnh đạo, cơ cấu cổ đông, cáo bạch 77
Bảng 3 25 – Bảng STS_Market_Info 78
Bảng 3 26 – Bảng STS_StocksInfo 84
Bảng 3 27 – Bảng STS_Order 87
Bảng 3 28 – Bảng STS_Trading 88
Trang 5Danh sách các hình vẽ
Hình 1 1 - Quá trình xử lý đối với trang web tĩnh 11
Hình 1 2 - Quá trình xử lý đối với trang web động - Xử lý tại máy chủ và máy khách 12
Hình 1 3 Tỷ lệ các server sử dụng Apache so với các phần mềm khác 14
Hình 1 4 - Mô hình Request/Response của Client/Server 14
Hình 1 5 - So sánh web truyền thống và ajax web 16
Hình 2 1 – Cấu trúc trang trong Sitefinity 30
Hình 2 2 – Tempalate mẫu trong Sitefinity 31
Hình 2 3 – Cấu trúc thư mục trong Visual Studio 33
Hình 2 4 – Định nghĩa cấu trúc dữ liệu sử dụng Nolics.Net 35
Hình 2 5 – Nâng cấp CSDL 40
Hình 2 6 - Định nghĩa thuộc tính điều khiển PadpanelBar 42
Hình 2 7 - Sửa đổi điều khiển PadpanelBar 42
Hình 2 8 - Điều khiển nội dung (Generic Content) 45
Hình 2 9 - Điều khiển Modul 46
Hình 2 10 - Blog Module 46
Hình 2 11 - List Module 46
Hình 2 12 - Điều khiển Poll box 47
Hình 2 13 - Thành phần pluggable module 48
Hình 2 14 - Mối quan hệ giữa các module 49
Hình 3 1 - Biểu đồ giá 56
Hình 3 2 - Sơ đồ use case đối với người sử dụng 59
Hình 3 3 - Biểu đồ tuần tự của hoạt động lấy báo giá chứng khóan 89
Trang 6Mục lục
PHIẾU GIAO NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP 1
BẢN TÓM TẮT NỘI DUNG ĐỒ ÁN TỐT NGHIỆP 2
Danh sách từ viết tắt 3
Danh mục các bảng 4
Danh sách các hình vẽ 5
Mục lục 6
Lời giới thiệu 9
ABSTRACT OF THESIS 10
Chương I : TỔNG QUAN VỀ HỆ QUẢN TRỊ NỘI DUNG CMS 11
1 TỔNG QUAN VỀ CÔNG NGHỆ XÂY DỰNG WEBSITE 11
1.1.Kiến trúc website 11
1.2 Công nghệ xây dựng website: 14
2.Giới thiệu về hệ quản trị nội dung CMS 17
2.1 Một số khái niệm cơ bản 17
2.1.1 Hệ quản trị nội dung 17
2.1.2 Nội dung 17
2.1.3 Thành phần của nội dung 18
2.2 CMS.NET nhìn nhận và tiếp cận theo khía cạnh công nghệ học phần mềm 19
2.2.1 Xác định yêu cầu của hệ thống CMS 19
2.2.1.1 Các chức năng cơ bản của một hệ thống CMS 19
2.2.1.2 Bổ sung các yêu cầu hiện nay đối với hệ thống CMS chuyên nghiệp 19
1.2.3 Các thành phần của CMS 20
2.3.1 Ứng dụng quản lý nội dung CMA 21
2.3.2 ứng dụng quản lý nội dung thông tin MMA 23
2.4 Đặc trưng nổi bật của Hệ quản trị nội dung 25
2.4.1 Kiểm soát phiên bản (Version Control) 25
2.4.1.2 version control phức tạp 26
2.4.1.3 Tiến trình kiểm soát phiên bản lưu trữ dữ liệu 26
2.4.1.4 Theo dõi phiên bản (Version tracking) 27
2.4.1.5 Cơ chế hồi phục (Rollback) 27
CHƯƠNG II CÔNG NGHỆ CMS - SITEFINITY 29
2.1 Tổng quan về Telerik SiteFinity 29
2.2 Các thành phần cơ bản của Telerik SiteFinity 30
2.3 Mô hình lập trình 32
Trang 72.3.1 Lập trình với Visual Studio 32
2.3.2 Truy xuất cơ sở dữ liệu 34
2.3.3 Lập trình với Trang chủ và các mẫu (templates) 41
2.3.4 Lập trình với bộ duyệt site 41
2.3.5 Làm việc với các điều khiển 43
2.3.6 Làm việc với các mô-đun 44
2.3.6.1 Sử dụng module sẵn có : 44
2.3.6.1 Xây dựng module tích hợp vào Sitefinity: 47
2.3.7 Vấn đề bảo mật trong SiteFinity 51
2.4 Kết luận 53
CHƯƠNG III: KHẢO SÁT VÀ PHÂN TÍCH BÀI TOÁN 54
1 Giới thiệu về bài toán cần xây dựng 54
2 Xác định vấn đề 54
3 Phân tích yêu cầu bài toán 54
3.1.Tin chứng khoán : 54
3.2.Tin công ty : 55
3.3.Tin công ty niêm yết: 55
3.3.1 Công ty : 55
3.3.1.1 Tổng quan công ty : 55
3.3.1.2 Hồ sơ doanh nghiệp : 56
3.3.1.3 Thống kê cơ bản : 56
3.3.1.4 Cáo bạch báo cáo tài chính : 58
3.3.2 Quyền sở hữu : 58
3.3.2.1 Cổ đông chính : 58
3.3.2.2 Giao dịch nội bộ : 58
3.3.3 Công bố thông tin : 58
3.3.4 Biểu đồ kỹ thuật : 58
3.3.5 Báo cáo tài chính : 59
3.3.6 Truy vấn giá : 59
4 Đặc tả của một số use case chính đối với người sử dụng : 59
4.1 Usecase xem thông tin báo giá chứng khoán 59
4.2 Usecase xem kết quả khớp lệnh 59
4.3 Usecase xem tìm kiếm thông tin các công ty niêm yết 60
5 Thiết kế cơ sở dữ liệu : 60
5.1 Các bảng CSDL về thông tin công ty: 60
5.2 Quan hệ các bảng CSDL : 74
5.2.1.Công ty phát hành cổ phiếu : 74
Trang 85.2.2 Báo cáo tài chính : 74
5.2.3 Hệ thống : 75
5.2.4 Giao dịch nội bộ : 75
5.2.5 Thông tin các cổ đông lớn : 76
5.2.6 Lãnh đạo, cơ cấu cổ đông, cáo bạch : 76
5.3 Các bảng CSDL về thông tin giao dịch 77
5.3.1 STS_Market_info : 77
5.3.2 STS_StocksInfo : 78
5.3.3 STS_Order : 84
5.3.4 STS_Trading : 87
3.6 Các biểu đồ tuần tự 88
3.7 Kết luận : 89
CHƯƠNG IV TRIỂN KHAI ỨNG DỤNG VÀ TỔNG KẾT ĐÁNH GIÁ 90
1 Triển khai ứng dụng 90
2 Tổng kết đánh giá 91
Tài liệu tham khảo 92
Trang 9Lời giới thiệu
Những năm gần đây, lượng khổng lồ website (trang thông tin điện tử) của các
tổ chức, công ty và cá nhân ra đời dẫn đến hiệu quả là quá tải thông tin Người sửdụng phải xử lý khối lượng rất lớn thông tin không cần thiết, với hàng loạt các thao táctrùng lặp trước khi tìm thấy thông tin hữu ích Theo thống kê, khối lượng thông tintrên Internet đang tăng gấp đôi mỗi năm, và người dùng Internet sử dụng trung bình60% thời gian để tìm kiếm thông tin, 20% thời gian tìm hiểu thông tin có cần thiếtkhông chỉ 10% thời gian xử lý thông tin
Bên cạnh đó, mỗi website cung cấp những dịch vụ và ứng dụng khác nhau gâyphiền toái và mệt mỏi cho người dùng khi họ phải nhớ quá nhiều tên và mật khẩu để
có thể truy xuất thông tin hoặc sử dụng dịch vụ của các hệ thống khác nhau Khôngđáp ứng được nhu cầu tích hợp ứng dụng và tích hợp hệ thống là hạn chế lớn nhất củacác website
Những bất cập trên cùng hàng loạt yêu cầu cấp thiết khác nảy sinh từ thực tếphát triển của mạng Internet cũng như từ cộng đồng người sử dụng đã khai sinh mộtkhái niệm mới, đồng thời cũng là một xu hướng công nghệ mới: CMS (thường đượcgọi là Hệ quản trị nội dung)
Công nghệ CMS phát triển sau thời kỳ web khoảng 7-8 năm như một tất yếuxuất phát từ nhu cầu thực tế CMS đang là chủ đề nóng nhất trong các ứng dụngCNTT của thế giới và Việt Nam hiện nay Nói riêng Việt Nam, một số ứng dụng CMSđược áp dụng rất nhiều và mang lại nhiều giá trị kinh tế cho các doanh nghiệp
Đồ án này đề cập đến các ưu điểm của công nghệ CMS so với website truyềnthống, tình hình phát triển chung của công nghệ CMS trên thế giới và ở Việt Nam nóiriêng, kiến trúc CMS và CMS Framework đặc biệt đi sâu về một loại CMS –SiteFinity và xây dựng thử nghiệm ứng dụng “Hệ thống thông tin sàn chứng khoán”dựa trên công nghệ SiteFinity
Em xin chân thành cảm ơn ThS Lê Tấn Hùng đã dìu dắt em hoàn thành đề tàinày! Em cũng xin cảm ơn công ty Psoft đã tạo điều kiện và giúp đỡ em thực hiện đồ
án tốt nghiệp!
Trong đồ án tốt nghiệp này, em xin trình bày các phần và chi tiết :
Bố cục đồ án bao gồm :
Chương 1 : Giới thiệu WebSite và hệ quản trị nội dung CMS
Chương 2 : Đặc điểm và hoạt động của CMS SiteFinity
Chương 3: Phân tích hệ thống WeSite thông tin chứng khoán-Thiết kế và xây dựng website trên nền CMS Sitefinity
Chương 4: Tổng kết đánh giá và hướng phát triển
Trang 10ABSTRACT OF THESISRecently, Information technology and the Internet develop very quickly Companies and Organizations need to provide and advertise them over the Internet So we need a method and tool which is easier to use and develop even for general users CMS is suchtool Software companies can use CMS to quickly develop Web application User can use it easily Nowadays, there are many CMS on the market But SiteFinity have manyadvantage feature which reduce time to develop and improve performance.
The thesis represents and structures as flowing:
Chapter 1: Overview about CMS
Chapter 2: SiteFinity Technology and related technology
Chapter 3: Research and analyze stock information problem
Chapter 4: Result and future work
Trang 11Chương I : TỔNG QUAN VỀ HỆ QUẢN TRỊ NỘI DUNG CMS
1 TỔNG QUAN VỀ CÔNG NGHỆ XÂY DỰNG WEBSITE
1.1.Kiến trúc website
Cùng với sự phát triển mạnh mẽ của mạng Internet, đã có những cuộc cách mạng vềcông nghệ lập trình Trước đây, chúng ta xây dựng trang web sử dụng ngôn ngữ địnhdạng “Formatting language” gọi là ngôn ngữ HTML Ngày nay, bên cạnh ngôn ngữHTML còn có hàng loạt các công nghệ mới như ngôn ngữ kịch bản “Scriptinglanguage”, công nghệ ASP, PHP, JSP, XML và những công nghệ khác để thỏa mãncác nhu cầu mới của người dùng Internet
Để xem một trang web, ta mở một trình duyệt, đánh địa chỉ của trang và trang web yêucầu sẽ hiện ra Nhưng trước khi người sử dụng có thể yêu cầu trang web đó, ngườithiết kế phải tạo nên trang web này và đưa nó lên mạng Việc xây dựng các trang webdựa trên 2 công nghệ chính, đó là công nghệ web tĩnh và công nghệ web động
Website tĩnh
Hình 1 1 - Quá trình xử lý đối với trang web tĩnh
Máy chủ: là máy chạy một phần mềm máy chủ web (web server) Đây là phần mềmthực hiện nhiệm vụ quản lý các trang web và chuyển nó đến trình duyệt (qua Internethoặc qua mạng nội bộ)
Máy khách: là máy mà người sử dụng đang chạy một trình duyệt
Trang 12Trang tĩnh HTML có rất nhiều hạn chế Có nhiều việc mà người ta không thể thựchiện được đối với một trang web tĩnh, chẳng hạn:
Người ta không thể tạo được một trang web hiển thị tên của người đang xem nó.Người ta không thể tạo được một trang web phản ánh một tình trạng mới nhất như thờigian hiện thời hoặc thời tiết được cập nhật
Người ta không thể tạo được một trang web thể hiện nội dung mà người sử dụng yêucầu ở trang trước đó
Website động
Một trang web có nội dung động là một trang web chứa cả HTML và các lệnh để tạolập HTML Khi người sử dụng yêu cầu một trang web động, phản hồi mà người sửdụng nhận được vẫn là một HTML Tuy nhiên trước đó, một phần HTML (hoặc tất cảnội dung của HTML) đã được tạo ra bởi hệ thống máy chủ theo các lệnh tạo lậpHTML
Hình 1 2 - Quá trình xử lý đối với trang web động - Xử lý tại máy chủ và máy
khách
Xử lý phía máy chủ: Máy chủ sẽ phân tích thông tin mà trình duyệt gửi đến và sẽ truy cập
cơ sở dữ liệu để tìm ra thông tin Máy chủ sẽ sử dụng thông tin này để tạo nên một HTMLthể hiện một trang web HTML được máy chủ tạo nên sẽ được gửi về trình duyệt Sau đótrình duyệt dịch HTML và hiển thị trang web theo như cách xử lý đối với trang web tĩnh
Xử lý phía máy khách: Đoạn mã dành cho máy khách không được thực hiện bới máy chủ
mà nó được gửi đến trình duyệt (cùng với HTML như một phần của đáp ứng), đoạn mãnày được xử lý bởi trình duyệt hiển thị kết quả trang HTML trên màn hình của người sửdụng
Trang 13Bằng cách sử dụng mã phía máy khách, có thể làm cho trang web sống động hơn, có thểđáp ứng lại các động tác bấm phím và di chuột của người sử dụng Điều này có nghĩa làtrang web được hiển thị một các hấp dẫn hơn so với trang web được gửi đi từ máy chủ.
- Nội dung phải được thay đổi trực
tiếp ở mã nguồn bởi lập trình viên
- Khó hơn
- Khả năng xảy ra lỗi cao hơn
- Tốc độ thấp do phải dịch các đoạn mã kịch bản
- Giá thành xây dựng cao
- Phụ thuộc khá nhiều vào công nghệ xây dựng web
- Tiện lợi và nhanh chóng cập nhật, thay đổi nội dung trang web
ra một server theo chuẩn HTTP thực sự mạnh nhưng hoàn toàn miễn phí Ngay từ khi mới
ra đời, Apache đã chứng minh được là một phần mềm hoàn hảo với tốc độ nhanh nhất,thân thiện với người dùng, độ bảo mật cao và hỗ trợ hầu hết các hệ điều hành hiện nay.Apache có thể làm việc trên Window NT/9x/xp, Netware 5.x trở lên, OS/2 và hầu hết cácphiên bản Unix/Linux
Trang 14Hình 1 3 Tỷ lệ các server sử dụng Apache so với các phần mềm khác
( Theo số liệu của Netcraft.com)Nhiệm vụ của Apache server là khi có bất cứ một browser trên máy khách (client) yêu cầumột trang web nằm trên server thông qua kết nối TCP/IP, Apache server sẽ đáp ứng nhucầu đó bằng cách trả về nội dung của trang web đó Nội dung này sẽ được browser tại máykhách hiển thị và đưa ra màn hình
Hình 1 4 - Mô hình Request/Response của Client/Server
1.2 Công nghệ xây dựng website:
Các công nghệ xây dựng Web 1.0
a Ngôn ngữ đánh dấu siêu văn bản HTML
Trang 15Là "Ngôn ngữ Siêu văn bản" được thiết kế ra để tạo nên các trang web, nghĩa là các mẩuthông tin được trình bày trên World Wide Web HTML giờ đây đã trở thành một chuẩnInternet do tổ chức World Wide Web Consortium (W3C) duy trì.
HTML nói chung tồn tại như là các tập tin văn bản chứa trên các máy tính nối vào mạngInternet Các file này có chứa thẻ đánh dấu, nghĩa là, các chỉ thị cho chương trình về cáchhiển thị hay xử lý văn bản ở dạng văn bản thuần túy Các file này thường được truyền đitrên mạng internet thông qua giao thức mạng HTTP, và sau đó thì phần HTML của chúng
sẽ được hiển thị thông qua một trình duyệt web, một loại phần mềm trực quan đảm nhiệmcông việc đọc văn bản của trang cho người sử dụng), phần mềm đọc email , hay một thiết
bị không dây như một chiếc điện thoại di động
b Ngôn ngữ kịch bản PHP
Là một ngôn ngữ lập trình kịch bản hay một loại mã lệnh chủ yếu được dùng để phát triểncác ứng dụng viết cho máy chủ, mã nguồn mở, dùng cho mục đích tổng quát Nó rất thíchhợp với web và có thể dễ dàng nhúng vào trang HTML Do được tối ưu hóa cho các ứngdụng web, tốc độ nhanh, nhỏ gọn, cú pháp giống C và Java, dễ học và thời gian xây dựngsản phẩm tương đối ngắn hơn so với các ngôn ngữ khác nên PHP đã nhanh chóng trởthành một ngôn ngữ lập trình web phổ biến nhất thế giới
W eb 2.0
Ajax:
AJAX (Asynchronous JavaScript and XML): JavaScript và XML không đồng bộ, là bộcông cụ cho phép tăng tốc độ ứng dụng web bằng cách cắt nhỏ dữ liệu và chỉ hiển thịnhững gì cần thiết, thay vì tải đi tải lại toàn bộ trang web
Ajax là một kỹ thuật phát triển web có tính tương tác cao bằng cách kết hợp các ngôn ngữ:HTML (hoặc XHTML) với CSS trong việc hiển thị thông tin
Mô hình DOM (Document Object Model), được thực hiện thông qua JavaScript, nhằmhiển thị thông tin động và tương tác với những thông tin được hiển thị
Đối tượng XMLHttpRequest để trao đổi dữ liệu một cách không đồng bộ với máy chủweb (Mặc dù, việc trao đổi này có thể được thực hiện với nhiều định dạng như HTML,văn bản thường, JSON và thậm chí EBML, nhưng XML là ngôn ngữ thường được sửdụng)
XML thường là định dạng cho dữ liệu truyền, bao gồm HTML định dạng trước, văn bảnthuần (plain text), JSON và ngay cả EBML
So sánh với các ứng dụng web truyền thống
Điểm khác biệt cơ bản nhất của công nghệ này là việc xử lý thông tin được thực hiện trênmáy Client thay vì Server như cách truyền thống
Trên máy client, JavaScript sẽ xử lý các đáp ứng của máy chủ Kết quả là trang web đượchiển thị nhanh hơn vì lượng dữ liệu trao đổi giữa máy chủ và trình duyệt web giảm đi rất
Trang 16nhiều Thời gian xử lý của máy chủ web được giảm theo vì phần lớn thời gian xử lý đượcthực hiện trên máy khách
Những nhược điểm của AJAX
Giao diện người dùng Chẳng hạn, phím "Back" (trở lại trang trước) được đánh giá caotrong giao diện website chuẩn Đáng tiếc, chức năng này không hoạt động ăn khớp vớiJavascript và mọi người không thể tìm lại nội dung trước đó khi bấm phím Back Bởi vậy,chỉ một sơ xuất nhỏ là dữ liệu trên trang đã bị thay đổi và khó có thể khôi phục lại được.Bên cạnh đó, mọi người không thể lưu lại địa chỉ web vào thư mục Favorite (Bookmark)
để xem lại về sau Do áp dụng lớp trung gian để giao dịch, các ứng dụng AJAX không cómột địa chỉ cố định cho từng nội dung Khiếm khuyết này làm cho AJAX dễ "mất điểm"trong mắt người dùng
Các ứng dụng AJAX phổ biến
Google Suggest
Google Maps
Gmail, Google Groups
Flickr (hiện thuộc Yahoo)
Hình 1 5 - So sánh web truyền thống và ajax web
JavaScript
JavaScript, theo phiên bản hiện hành, là một ngôn ngữ lập trình kịch bản dựa trên đốitượng được phát triển từ các ý niệm nguyên mẫu Ngôn ngữ này được dùng rộng rãi chocác trang web, nhưng cũng được dùng để tạo khả năng viết script sử dụng các đối tượngnằm sẵn trong các ứng dụng
Trang 172.Giới thiệu về hệ quản trị nội dung CMS
2.1 Một số khái niệm cơ bản
Sự bùng nổ của kỉ nguyên Internet đã dẫn tới một nhu cầu rất lớn, đó là nhu cầu tìm kiếm ,khai thác và trao đổi thông tin trên mạng internet Các website suất hiện ngày càng nhiều,
do đó cũng gia tăng một nhu cầu mới: nhu cầu quản lý, khai thác và trao đổi thông tin trênmạng Internet Những giải pháp quản trị nôi dung Internet được phát triển và ngày càngđược chuẩn hóa, giúp cho các tổ chức, doanh nghiệp… thuận tiện hơn trong việc xuất bảncũng như khai thác thông tin
Trong môi trường liên kết và tương tác cao như môi trường internet, việc nhận thức vàphát triển một ứng dụng theo tiêu chẩn chung của quốc tế, có khả năng tương tác cao vớicác hệ thống khác là một yếu tố hết sức quan trọng và cần thiết
2.1.1 Hệ quản trị nội dung
Một CMS là một hệ thống quản lý các thành phần nội dung của một website Như vậy,khi nhắc đến CMS, người ta phải nhắc đến các yếu tố cấu thành nội dung nằm trong phạm
vi mà hệ CMS đề cập tới cũng như các đặc điểm trong các chu trình quản lý nội dung đóĐịnh nghĩa trên đây có vẻ đủ đơn giản, nhưng nếu ta đặt câu hỏi: “ CMS là gì?” đối vớihai hay nhiều hơn các chuyên gia Web thì ta cũng có thể nhận được hai hay nhiều câu hỏikhác nhau Chính xác hơn ta sẽ nhận được nhiều hơn một dạng diễn tả định nghĩa trên của
ta Vấn để là ở sự không rõ nghĩa( hoặc sự hiểu và mô tả khác nhau) của từ nội dung, haychính xác hơn là các thành phần nào của nội dung được CMS quản lý??
Một vấn đề nữa là trong định nghĩa này, không có chỗ nào định nghĩa chức năng nền tảnglàm nên một CMS Hầu hết các CMS được gọi tên theo các đặc tính thêm vào chúng.Trong khi đó, cách chính xác để nói một CMS có tối ưu hay không là kiểm tra xem cácnhân chức năng đó hoạt động tốt như thế nào Như vậy, nếu thiếu sự định nghĩa về cácchức năng nền tảng của một CMS thì sẽ không có cơ sở để đánh giá giữa các CMS vớinhau
Trang 18Thoạt nhìn ta có thể nói cách giải thích chức cả hai phạm trù trên là cách giải thích đúnghơn về từ nội dung Tuy nhiên một câu hỏi được đặt ra là liệu chúng ta có cần hoặc có thểquản lý ứng dụng theo cùng một cách như đối với thông tin hay không?
Nhiều người sẽ nói rằng là không, vì họ cho rằng các nhà phát triển phần mền nên pháttriển hai hệ thống phần mền khác nhau Một để quản lý thông tin( nghĩa là CMS), và một
để quản lý các ứng dụng Bởi vì thông tin là cái được hiển thị( what) còn ứng dụng quyếtđịnh thông tin được hiển thị như thế nào(how)?
Hơn nữa những người tham gia vào việc tạo ra và bảo trì hai dạng nôi dung khác nhau nàycũng thường khác nhau như công việc của họ vậy Những người làm về thông tin thường
có khuynh hướng sáng tạo hơn những người phát triển ứng dụng thì có kĩ năng, kĩ thuậthơn Nhưng không đối lập với khái niệm người phát triển ứng dụng sáng tạo Khác biệtquan trọng nhất có vẻ như là các workflow của thông tin và ứng dụng thay đổi một cáchđáng chú ý ( từ workflow sẽ được giải thích kỹ hơn ở phần sau, còn ở đây ta cứ tạm sửdụng nó) Các phương pháp tiếp cận khác nhau, mục đích, người sử dụng và cả cácworkflow cũng khác nhau, đáng để ta xây dựng hai hệ thống khác nhau Áp đặt thông tin
và các ứng dụng vào cùng một thể chung sẽ sinh ra phức tạp không cần thiết cho cả nhàphát triển hệ thống và người sử dụng hệ thống đó
Việc phát triển một CMS hoạt động bất kể loại nội dung gì( thông tin hay ứng dụng) yêucầu khả năng bảo trì và theo dõi luồng của hai workflow khác nhau tại cùng một thờiđiểm Sự thực là các workflow của thông tin và ứng dụng có nhiều điểm tương đồng: cùngđược tạo ra, thay đổi, phê chuẩn, kiểm thử và triển khai Nhưng đó là tất cả những gì tươngđồng Luôn cần có các tập kỹ năng rất khác nhau trong vai trò của việc tạo ra thông tin sovới việc tạo ra các ứng dụng, và các khác biệt chỉ được mở rộng khi ta tiếp tục đến giaiđoạn triển khai
Các workflow của thông tin và ứng dụng cũng không như nhau Cần phải có thêm các giaiđoạn và các công dụng trong workflow của một ứng dụng ví dụ giai đoạn phân tích, thiết
kế phải chi tiết hơn, và có quá trình biên dịch, kiển thử hệ thống và kiểm thử khi pháthành
2.1.3 Thành phần của nội dung
Như chúng ta thấy, ngay cả một website đơn lẻ cũng có thể được tạo ra từ nhiều dạng nộidung khác nhau như Text, Image, Audio, Video, …và làm việc với từng loại nội dung đơn
lẻ dễ dàng hơn rất nhiều so với làm việc với tất cả chúng một lúc Lý do chủ yếu là nó chophép sự riêng biệt hóa, nghĩa là ta có thể dùng các công cụ thiết kế từng loại nội dung mộtcách riêng biệt, cũng có nghĩa là một người có thể thiết kế nội dung theo cách tốt nhất màanh ta có thể làm Ví dụ một chuyên gia vẽ các ảnh minh họa thì không phải lo lắng vềviệc viết phần câu chuyện
Các CMS phải phụ thuộc rất nhiều vào khái niệm tổng thể các phần nhỏ của nội dung.Thuật ngữ mà CMS dùng để biểu diễn các phần nhỏ này là “thành phần nội dung” Ta cóthể hiểu thành phần nội dung là một dạng thể hiện của một trong các mảnh nhỏ hình thànhnên một câu chuyện hoặc một bài báo trong website
Trang 19Mức độ của thành phần nội dung được xác định bởi CMS đang được sử dụng, và có thểnhỏ như một headline, byline, dateline…hoặc có thể đủ lớn để thành một câu chuyện Cácthành phần nội dung thường được chứa trong một kho lưu trữ dưới cùng một định dạng Ví
dụ một thành phần nội dung có kiểu Image có thể được lưu dưới dạng file GIF với bề rộngwidth và chiều cao hight định trước Các thành phần nội dung cũng có thể đứng một mìnhtheo nghĩa tự chúng cũng có ý nghĩa riêng
Mức độ của thành phần nội dung được xác định bởi CMS đang được sử dụng và có thểnhỏ như một headline,byline và dateline…hoặc có thể đủ lớn để thành một câu chuyện.Các thành phần nội dung thường được chứa trong một kho lưu trữ dưới cùng một địnhdạng Ví dụ một thành phần nội dung của kiểu image có thể được lưu dưới dạng file GIFvới bề rộng width và chiều cao hight định trước Các thành phần nội dung cũng có thểđứng một mình theo nghĩa tự chúng cũng có ý nghĩa riêng
Còn một loại liên quan đến các thành phần nội dung nữa là tài liệu (document) Tài liệuthường được coi là một file, nên ta sẽ coi tài liệu là một nhóm các thành phần nội dung.Các hệ thống quản lý tài liệu cung cấp cùng một chức năng giống như CMS ngoại trừ ởcấp độ tài liệu ( hay trong thế giới web nó là cấp độ website).Chúng thiếu khả năng làmviệc với các chi tiết chứa trong một trang và thay vào đó chúng xử lý cả trang Vì thếchúng thiếu sức mạnh và sự linh hoạt của các CMS Các hệ thống quản lý tài liệu đôi khivẫn bị nhầm lẫn là các CMS, được phát triển và đem bán như các CMS Ta có thể đồng ývới nhau rằng một hệ quản trị tài liệu là một CMS với các thành phần nội dung được thiếtlập ở mức độ lớn nhất
Như vậy nói một cách chính xác,CMS là hệ thống quản lý việc khởi tạo nội dung,quá trình
xử lý nội dung đó cho đến khi nó được xuất bản,phân phối tới người dùng cuối
CMS = Khởi tạo nội dung Quản lý quá trình xử lý nội dung đó Phân phối nội dung tới người dùng đầu cuối
2.2 CMS.NET nhìn nhận và tiếp cận theo khía cạnh công nghệ học phần mềm
2.2.1 Xác định yêu cầu của hệ thống CMS
2.2.1.1 Các chức năng cơ bản của một hệ thống CMS
Cung cấp công cụ phục vụ quá trình soạn thảo,biên tập, chỉnh lý nội dung Có hệ thốngquản lý lưu trữ nội dung Kểm soát phiên bản tài liệu,giám sát sự thay đổi,cho phép tìm lạinội dung tài liệu trứơc và sau khi thay đổi ,biên tập Cung cấp hệ thống quản lý quy trình
xử lý nội dung thông tin Có khả năng kết xuất thông tin đề ra tự động từ hệ thống quản lýlưu trữ nội dung dùng chung Cung cấp khả năng cá nhân hoá thông tin cho người dungCung cấp cho người dùng những công cụ tìm kiếm tra cứu theo thuộc tính, tìm kiếm toànvăn giúp nhanh chóng tìm kiếm và định vị được nội dung thông tin
2.2.1.2 Bổ sung các yêu cầu hiện nay đối với hệ thống CMS chuyên nghiệp
Trang 20Trong môi trường điện toán phức tạp như hiện nay,thông tin không còn là thực thể đơn lẻnữa ,nó là một phần trong một hệ thống thông tin lớn hơn, luôn cần có sự kết hợp, trao đổi,liên thông dữ liệu với nhau.
Yêu cầu trong quá trình khởi tạo nội dung:
Độc lập nội dung và các lớp giao diện thể hiện
Cho phép nhiều người sử dụng, lầm việc trên một tài liệu
Mỗi nội dung chỉ có một nguồn duy nhất
Cung cấp khả năng quản lý các thuộc tính khác liên quan đến nội dung thông tin( như tác giả, tiêu đề, từ khoá…)
Người sử dụng không cần có kỹ năng đặc biệt về lập trình và công nghệ có thể sửdụng các công cụ biên tập và xử lý nội dung
Yêu cầu trong quá trình xử lý nội dung:
Kiểm soát phiên bản tài liệu, quản lý lưu trữ
Quản lý quy trình biên tập và phê duyệt nội dung thông tin
Đảm bảo tính bảo mật
Có khả năng tích hợp với các hệ thống thông tin khác bên ngoài
Cung cấp các dữ liệu báo cáo tình hình hoạt động đa dạng
Xuất bản thông tin
Đồng nhất về khả năng trình bày với những loại dữ liệu giống nhau
Cung cấp các mẫu, khuôn dạng (template) giúp xuất bản nội dung một cách nhanhchóng và thuận lợi
Có khả năng xuất bản ra nhiều định dạng khác nhau như web, in ấn, thiết bị cầmtay…
Có khả năng cá nhân hoá thông tin
Về mặt công nghệ
Hệ thống phải tiện dụng và thân thiện với người dùng
Công nghệ giúp hệ thống có khả năng tương thích và dễ dàng tích hợp, mở rộng
Hệ thống phải tuân theo các chuẩn dữ liệu xuất bản thông tin trực tuyến
1.2.3 Các thành phần của CMS
Để thực hiện được những yêu cầu trên, một CMS phải có những thành phần nền tảng
chung và các module bổ sung Một CMS điển hình bao gồm ít nhất ba thành phần : ứng dụng quản lý nội dung CMA, ứng dụng quản lý nội dung thông tin (matecontent) MMA,
Trang 21và ứng dụng phân phối nội dung CDA Một số CMS có nhiều hơn ba thành phần này,
nhưng tất cả đều chứa ba thành phần này ở dạng nào đó
CMA quản lý các thành phần nội dung của một CMS, MMA quản lý các thông tin và cácthành phần nội dung và cuối cùng CDA sẽ cung cấp cách hiển thị các thành phần nội dungtới người sử dụng
2.3.1 Ứng dụng quản lý nội dung CMA
Nói một cách đơn giản, ứng dụng quản lý nội dung CMA quản lý vòng đời đầy đủ của cácthành phần nội dung, từ khi bắt đầu đến khi xóa bỏ chúng CMA sẽ tạo các thành phần nộidung trong kho lưu trữ, bảo trì chúng trong thời gian chúng tồn tại, và loại bỏ các thànhphần nội dung này khỏi kho lưu trữ khi chúng không cần thiết nữa Kho lưu trữ ở đây cóthể là một CSDL, một tập các file hoặc kết hợp cả 2 loại đó Tiến trình quản lý là tuần tự
và được thực hiện bởi một workflow CMA được coi là phần quản trị của một CMS
CMA cho phép người viết nội dung xây dựng và phát triển các thành phần nội dung màkhông cần phải biết HTML (HyperText Markup Language) hoặc phải hiểu về kiến trúcweb nền tảng Nó cho phép duy trì nội dung ngày qua ngày mà không cần phải lúc nàocũng nhờ đến Webmaster
Tất cả các CMA đều được thiết kế đa người dùng, và mỗi người dùng có một hoặc một vàivai trò sử dụng (role) đối với vòng đời của thành phần nội dung Nhiều CMA có cơ chế anninh dựa vào việc thiết lập các vai trò này (role-based security), nghĩa là người sử dụng chỉđược phép thực hiện các thao tác được cho phép khi anh ta được add vào hệ thống Mộtwebsite nhỏ với một vài người làm việc trên đó có thể chỉ có một vài các role, mỗi role córất nhiều các tác vụ và chức năng khác nhau mà nó có thể thực hiện Với một website lớnhơn mới nhiều bạn bè, thành viên và những người truy cập thì sẽ có một vài role khácnhau với các chức năng rất bị hạn chế Các role của người sử dụng thường được thiết lậpkhi CMS được cài đặt Thường thì nó sẽ đưa ra một danh sách các tác vụ và các chức năng
để trên đó ta sẽ chọn những tác vụ và chức năng riêng biệt mà role đó có quyền thực hiện.Một vài hệ thống tiên tiến cho phép ta thêm mới hoặc thay đổi các role sau khi hệ thống đãđược kích hoạt một thời gian Điều này cho phép ta có một hệ thống động hơn, nền tảng làcác role và mở ra những thay đổi tổ chức của một website
Mục đích của CMA là xử lý các thành phần nội dung trong suốt vòng đời của chúng nhanhnhất và hiệu quả nhất có thể Ở cuối mỗi giai đoạn của vòng đời, các thành phần nội dung
sẽ ở trạng thái hoàn thiện hơn và ổn định hơn
Phê chuẩn(Approval)
Trước khi bất kỳ một giai đoạn nào trong “đời” của một thành phần nội dung được hoàntất và giai đoạn tiếp theo bắt đầu thì một ai đó có thẩm quyền phải phê chuẩn hay chấpnhận những thay đổi đối với thành phần nội dung đó
Tiến trình phê chuẩn khác nhau rất nhiều giữa các Website, ngay cả khi các Website nàycùng dùng một phiên bản CMS như nhau Đối với hệ thống lớn thì cần nhiều tổ chức, cánhân, và role khác nhau để thực hiện phê chuẩn nội dung trước khi nó sẵn sàng chuyển
Trang 22sang giai đoạn tiếp theo Còn đối với hệ thống nhỏ,có khi chỉ cần một người thực hiệncông việc này trong suốt vòng đời của các thành phần nội dung.
Thiết kê (Design)
Đây là giai đoạn các thành phần nội dung sẽ được đưa lên Website, được xác định và mô
tả Trong một số hệ thống CMS, các thành phần nội dung trong giai đoạn này chỉ đượcnhập tựa đề, chú thích và mô tả, rồi sau này tác giả mới hoàn tất nốt việc biên tập nộidung
Giai đoạn này thường không phải là phần được xây dựng sẵn trong CMS mà được hỗ trợbới các công cụ của third party Trong nhiều trường hợp ta thường không cần phải mua cáccông cụ đắt tiền, mà chỉ cần một chương trình vẽ và soạn thảo đơn giản là đủ
Soạn thảo( Authoring)
Soạn thảo là quá trình thu được các thành phần nội dung cho một Website Nó không chỉbao hàm việc viết một thành phần nội dung chọn lựa từ một mớ hỗn tạp, mà còn thu đượcnội dung từ các nguồn khác và nạp chúng vào hệ thống
Một CMS có thể thu nhận một vài thành phần nội dung của nó qua các nguồn nội dung,sau đó trực tiếp làm cho chúng có trên Website mà không cần sự can thiệp của con người Một số site thì muốn nội dung này được lưu trữ trong các kho chứa trong một khoảng thờigian nhất định Những site khác lại chúng ra khỏi hệ thống khi các thành phần nội dungmới được thu nhận
Tuy nhiên một website mà tất cả các nội dung đều được thu nhận theo cách này chắc chắn
sẽ làm hại đến website của ta vì hầu hết người sử dụng đều truy cập vào một website dotính độc nhất có một không hai của nó Việc có nội dung giống hệt như của người khácthật nhàm chán, và người sử dụng sẽ truy cập đến nguồn của nội dung đó và rời bỏ websitecủa ta
Trong hầu hết các trường hợp, tốt hơn hết là load các nội dung có liên quan về website vàđưa chúng vào kho chứa của ta, sau đó để cho các tác giả của ta cải tiến nó trước khi đưa
ra công chúng Đa số các tác giả có thể làm tăng giá trị của nội dung ban đầu bằng cáchthêm vào ý kiến của độc giả và những phân tích đánh giá sâu hơn…
Đa số các hệ thống soạn thảo của CMS đều là hệ thống tựa văn bản (text based) Các dạng
đa phương tiện khác như ảnh,video, audio thường được tạo ra bởi các công cụ chuyên biệtcho chúng ở bên ngoài CMS Những dạng này thường được import vào CMS như cácthành phần nội dung hoàn chỉnh mà không thể được thay đổi bởi bản thân CMS
chỉnh sửa(Editing)
Sau khi một thành phần nôij dung được tạo ra,nó thường phải đi qua nhiều vòng chỉnh sửa
và viêt lại cho đến khi tất cả những người có thẩm quyền cho rằng đó là chính xác Hoànchỉnh và sẵn sàng sang giai đoạn tiếp theo
sắp xếp(layout)
Trang 23Sau khi các thành phần nội dung được hoàn tất,chúng sẽ được sắp xếp lên website để quansát, một CDA tốt không có vai trò thực sự trong việc sắp xếp các thành phần nội dung, nóchỉ đưa ra các đề nghị cho thứ tự sắp xếp và vị trí các thành phần nội dung.
kiểm thử(testing)
Bây giờ các thành phần nội dung của ta đã sẵn sàng cho việc quan sát,nên ta cần testchúng,việc kiểm thử này rõ ràng là cần thiết để đảm bảo không có sự cố nào.Khi xem quatrình duyệt.việc kiểm thử bao gồm:kiểm tra image có khớp với tên không,các hyperlink cóchính xác đến nội dung liên quan không…ngoài ra còn phải đảm bảo hiển thị tốt ở cáctrình duyệt khác nhau,đặc biệt là scrpt phía client
Dàn dựng(staging)
Sau khi kiểm thử nội dung sẽ được dàn dựng trên server để chờ cho việc hiển thị.Mục đích
là để truyền dữ liệu càng nhanh càng tốt tránh khỏi bị phá nhiễu bởi các use kích hoạt nộidung của hệ thống
vì một số người muốn truy xuất nội dung archive lớn một cách đáng ngạc nhiên và một lưutrữ sẽ đem lại lợi ích to lớn trong tương lai
Xoá bỏ(removal)
Nếu một thành phần nội dung lỗi thời quá, quá hạn và không thể update thườn xuyên thìthành phần nội dung có thể được xóa mặc dù mục này là tình cờ, nhưng tốt nhất ta nên lưutrữ nó và có phép truy xuất lại qua phép tìm kiếm dữ liệu.có hai cách xoá là xoá và huỷ Huỷ ở đây có nghĩa là xóa hết các nội dung trước đó và không thể khôi phục được lại NếuNếu xóa đơn thuần thì có thể khôi phục được lại
2.3.2 ứng dụng quản lý nội dung thông tin MMA
Trong hệ thống CMS lý tưởng ,nội dung và thành phần nội dung được phân phối tách biệt,
do đó tạo thành hai cơ chế quản lý tách biệt là CMA và MMA Mỗi cơ chế đặc trưng chohai thành phần khác nhau: nội dung và phân phối nội dung
Trang 24Lý do chủ yếu của sự phân tách nội dung và nội dung là hai công việc khác nhau và nhữngcon người tham gia chúng cũng khác nhau Chúng ta đã bàn tới việc liệu có xử lý chungthông tin và ứng dụng trong CMS Như vật việc tách biệt sẽ giúp hệ thống đỡ phức tạp.Nhân viên toà soạn là những người sử dụng CMA,và workflow của CMA như đã nói ởtrên sẽ trực tiếp liên quan đến những vòng đời các thành phần nội dung,không có một sựliên hệ nào dù là nhỏ nhất
Trong khi đó MMA được những con người sáng tạo-những nhân viên thiết kế sử dụng cómột vòng đời liên hệ chuyên biệt với thiết lập thông tin liên quan đến website sẽ như thếnào và cảm nhận như thế nào Thực tế tiến trình MMA chẳng quan tâm chút nào đến việcnội dung thực sự được phân phối mà quan điểm WSYIWYG được đặc biệt chú trọng.Metaciontent life cycle
MMA là ứng dụng quản lý vòng đời đầy đủ của nội dung thông tin,ta có thể định nghĩa nộidung thông tin là các thông tin về nội dung Nghe qua có vẻ MMA rất giống CMA nhưngMMA có mục tiêu khác hoàn toàn: đó là việc sinh ra các nội dung thông tin thay vì cácthành phần nội dung Cũng giống CMA, ở cuối mỗi giai đoạn vòng đời các nội dung thôngtin ở trạng thái ổn định hơn
Phê chuẩn
Trước khi một giai đoạn hoàn tất và giai đoạn tiếp theo bắt đầu một ai đó có thẩm quyềnphê chuẩn nội dung, việc phê chuẩn có thay đổi quan trọng ở MMA thường do một uỷ banthực hiện chứ không phải một cá nhân.Vì nó quyết định wesite sẽ như thế nào và đượchoạt động như thế nào còn những thay đổi ở bảng hay cột bảng có thể do cá nhân đảmnhận
Phân tích(analysis)
Trước khi tạo ra sự thay đổi ,một vài nghiệp vụ phân tích cần được tiến hành Công việcphân tích thường tiến hành ngoài CMS vì có nhiều công cụ tốt của công ty thứ ba thườngxuyên thực hiện sự phân tích website
Thiết kế
Quá trình mô tả các nội dung thông tin trên wedsite thường là ở mức độ chi tiết cao vì thiết
kế này phải do một uỷ ban phê chuẩn Đây là giai đoạn cũng được thực hiện ngoài CMStạo cơ hội phát triển cho các công cụ của công ty thứ ba trên thi trường
Trang 25Stage, Deployment, Maintenance, Removal
Các giai đoạn này tương tự như đối với CMA quản lý các thành phần nội dung
Các dạng nội dung thông tin
Khuôn mẫu (Template):
Thường ở dạng HTML, cho phép ta trong một website dưới dạng các module Các thànhphần nội dung khác nhau thì tương ứng các template chuyên biệt giúp cho việc hiển thịtrang web
Kịch bản (Script):
Hiện nay có rất nhiều ngôn ngữ kịch bản, và một CMS luôn hỗ trợ ít nhất một ngôn ngữnếu không muốn nói là nhiều Kịch bản chia làm hay kiểu: phía client và phía server: phíaclient đựơc chạy trên trình duyệt còn phía server được chạy trên server
Chương trình (Program):
Chương trình khác kịch bản ở chỗ nó được biên dịch trước khi chạy trên server, khiến cho
nó chạy nhanh hơn Nó cũng nhiều chức năng hơn kịch bản vì nó có thể được xây dựng tất
cả các chức năng được hỗ trợ bởi hệ điều hành mà nó chạy trên đó Tuy nhiên nhược điểmcủa chương trình là nó chỉ chạy phía server nên nếu không cẩn thận nó sẽ gây ra thời gianđáp ứng chậm vì lỗi kết nối
Như vậy một CMS được tạo dựng bởi ít nhất ba thành phần: Quản trị nội dung, quản trịnội dung thông tin và phân phối nội dung Mục đích của ba thành phần này là quản lývòng đời đầy đủ của các thành phần nội dung và nội dung thông tin theo các workflowtrong kho chứa và với đích là hiển thị nội dung động,thân thiện với người dùng lênwebsite
2.4 Đặc trưng nổi bật của Hệ quản trị nội dung
2.4.1 Kiểm soát phiên bản (Version Control)
Theo dõi được các phiên bản nội dung của ta là một đặc tính quan trọng, thâm chí là khảnăng cần thiết trong bất kỳ một hệ CMS thực sự tốt nào Chức năng giúp người sử dụnglưu trữ và khôi phục các phiên bản của các trang thông tin Kiểm soát phiên bản bao gồmtheo dõi phiên bản (version tracking) và cơ chế hồi phục (rollback), và nó là framework đểtrên đó ứng dụng quản lý nội dung CMA và ứng dụng quản lý nội dung thông tin MMAhoạt động Không có chức năng kiểm soát phiên bản, CMS sẽ rất khó khăn để đảm bảotính nhất quán, toàn vẹn của nó
Trang 26Có nhiều cách để CMS cài đặt chức năng kiểm soát phiên bản Có thể CMS sẽ tích hợpcác package kiểm soát phiên bản cung cấp bởi công ty thứ ba, tuy nhiên hầu hết các CMSđều có chức năng kiểm soát phiên bản được xây dựng trực tiếp.Quản lý phiên thường phảiđược tích hợp chặt chẽ với hệ thống workflow của CMS, và đôi khi ta không thực sự nhận
ra sự có mặt của version control
Có nhiều phương pháp tiếp cận version control: phương án tiếp cận đơn giản và phương ántiếp cận phức tạp Phương án tiếp cận đơn giản có trong hầu hết các CMS kể cả các CMStheo cách tiếp cận phức tạp
2.4.1.1 Version control đơn giản
Version control đơn giản hoạt động với giả thiết là chỉ có một người có thể truy cập đượcvào một thành phần nội dung tại một thời điểm bất kỳ Dạng này dựa vào việc duy trì các
cơ chế khoá đối với nội dung Một cách đơn giản quá trình kiểm soát phiên bản chỉ là mộtngười check out nội dung từ kho chứa, tạo ra những thay đổi, rồi lại trả chúng về khochứa Người khác nếu muốn truy xuất nội dung đó thì là lượt riêng của anh ta
Kiểm soát phiên bản theo cách này đơn giản dễ hiểu và ta sẽ thấy chỉ như vậy là đủ choviệc cài đặt một hệ thống workflow
2.4.1.2 version control phức tạp
Giả thiết cho dạng này là bất kỳ ai cũng có thể truy cập nội dung ở một thời điểm bất kỳmiễn là tồn tại chỉ một bản sao chính của một thành phần nội dung Hoạt động check outnội dung chỉ là trên một bản sao, và khi nội dung được check in trở lại, mọi thay đổi đãgộp vào bản copy chính
Như vậy nhiều người có thể truy cập được vào nội dung tại cùng một thờì điểm, thay đổinhững nội dung cần thiết, sau đó lại check in trở lại
2.4.1.3 Tiến trình kiểm soát phiên bản lưu trữ dữ liệu
Mọi nội dung văn bản khi được đưa vào kho chứa sẽ được lưu trữ ở dạng những phần nhỏdelta Mọi thay đổi được tạo ra giữa thời điểm nội dung được lôi ra khỏi kho chứa với cácđộng tác kiểm tra và thời điểm nội dung được đưa trở lại kho chứa (cũng có kiểm tra).Cách lưu trữ như vậy rất hiệu quả khi xét đến vấn đề không gian lưu trữ vì không cần phảilưu trữ nhiều bản sao của cùng một nội dung ngay cả khi có nhiều phiên bản của nội dungđó
Do không phải lưu trữ một bản sao nội dung đầy đủ nên phần mềm kiểm soát phiên bảnphải có khả năng xây dựng nên nội dung từ những phần thông tin nhỏ Như vậy một cáchlogic, ta có thể lấy ra phiên bản bất kỳ nào ta muốn Tất cả những gì mà phần mềm kiểmsoát phiên bản cần làm là sắp xếp các thông tin theo đúng trình tự để có được phiên bảnyêu cầu
Nội dung nhị phân khi được đưa vào kho chứa của các hệ CMS cũng đôi khi sử dụng cơchế delta, nhưng do sự phức tạp của file nhị phân, nội dung nhị phân thường được lưu trữ
Trang 27dưới dạng file hoàn chỉnh Như vậy tiến trình check out chỉ đơn giản là tìm được file nhịphân (hoàn chỉnh) tương ứng với version cần thiết mà không cần một phép xử lý delta nào.2.4.1.4 Theo dõi phiên bản (Version tracking)
Version tracking là bước xa hơn của version control Có thể coi nó là quá trình công chứngcác phiên bản của nội dung được đưa vào hoặc lấy ra khỏi kho chứa Mục đích chính củaversion tracking là theo dõi mọi thông tin liên quan đến những thay đổi của nội dung trongsuốt vòng đời của nó Tiến trình này bao gồm việc “ghi chép” lại khi nào có sự thay đổi, aithay đổi, thay đổi gì và có thể cả lý do tại sao lại có những thay đổi đó nữa Versiontracking cung cấp một cơ chế bảo vệ nghiêm ngặt, mà ta có thể tưởng tượng như sau: khimột user đăng nhập vào hệ thống thì ID của anh ta sẽ tự động được ghi lại Như vậy vớibất kỳ thay đổi nào với nội dung, hay sự tổn hại nào đến các thành phần nội dung đượcphát hiện nguồn gốc, như vậy hệ thống của ta có thể thay đổi password của người đó hoặcxoá account của người đó đi
2.4.1.5 Cơ chế hồi phục (Rollback)
Cơ chế rollback cho phép ta thay đổi version hiện tại trở về với version trước đó Cơ chếnày thường được thực hiện trên các thành phần nội dung hoặc những nội dung thông tin,còn đối với mức độ website, cơ chế này sẽ đưa website trở lại nội dung trước khi nó đượcupdate
Tiến trình rollback này thường rất an toàn vì nó lấy toàn bộ nội dung hiện tại thay thế bởiphiên bản ổn định trước đó Khi rollback một website thường trang website sẽ tạm thời bịshutdown nên không có cơ hội cho nguời dùng gây tổn hại bất thường khi rollback nộidung
Version control có rất nhiều vai trò đối với một hệ CMS như cho phép hợp theo nhóm,tăng cường công tác quản lý website, làm tăng tốc độ phát triển nội dung…
Cho phép sự cộng tác nhóm:
Đây là vai trò quan trọng chủ yếu của quản lý phiên bản trong CMS là cung cấp nền tảngtốt hơn cho công tác làm việc theo nhóm Với vô số các thành phần nội dung và các nộidung thông tin tạo nên một website, có thể thấy rằng không ai đủ khả năng để xây dựng cảmột website mà công việc này yêu cầu kỹ năng của nhiều con người
Nâng cao quản lý website: Một điều đã không được đề cập đến trong quá trình nói về quản
lý phiên bản và theo dõi phiên bản, đó là sự xếp hạng các báo cáo mà quản lý phiên bảncung cấp
Tăng tốc việc phát triển nội dung:
Bạn không thể bắt các tác giả và biên tập viên làm nhanh hơn khả năng mà họ có, nhưng
có thể làm giảm bớt thời gian mà nội dung ở trong tình trạng không tích cực, như là chờđợi biên tập,chỉnh sửa, phê chuẩn, kiểm thử hoặc triển khai Công việc đó được thực hiện
do sinh tự động một sự kiện cho hệ thống, thông báo cho CMS thời khắc mà nội dungđược đưa trở lại kho chứa.Sự kiện này có thể khởi phát việc tạo ra một thư điện tử
Trang 28Nâng cao sự giao tiếp:
Theo dõi phiên bản cho phép bạn tự động quá trình giao tiếp giữa tất cả các bộ phận liênđới với một phần nội dung Sự tự động tạo và định tuyến như thư điện tử khi tổng hợpthành phần nội dung, hoặc nội dung thông tin kết hợp với tham gia tất cả các liên lạc đượcyêu cầu vào trong hệ thống theo dõi phiên bản khiến chuyển giao trôi chảy giữa các trạngthái trong vòng đời của nội dung
Nâng cao hiệu quả của quy trình làm việc:
Mỗi giai đoạn của quy trình làm việc có thời điểm bắt đầu và kết thúc khác nhau vì chứcnăng khoá được cung cấp bởi hệ thống kiểm soát phiên bản Vì chỉ có một người đang làmviệc với nội dung trong mỗi thời điểm cụ thể, không có sự chồng chéo trong quá trình pháttriển và do đó không có sự hồi phục để cho mọi bộ phận của một phần nội dung được đồng
bộ hoá
Kho chứa được bảo vệ:
Sử dụng quá trình kiểm tra vào/ra do có quản lý phiên bản, bạn có thể chắc chắn rằng nộidung được chia sẻ không bị ghi đè một cách vô tình trong môi trường làm việc nhóm làmột yêu cầu của phát triển website
Cấu trúc hoá hệ thống:
Môi trường phát triển nội dung được cấu trúc hoá và ổn định đối với tất cả các giai đoạntrong quy trình làm việc quản lý nội dung Có mẫu kiểm tra nội dung ra khỏi kho chứa cốđịnh, thực hiện thay đổi, kiểm tra nội dung vào rồi đưa nó trở lại kho chứa
Giảm thiểu các khuyết điểm:
Đó là kết quả của một môi trường đựơc cấu trúc tốt do có sự hoạt động của hệ thống quản
lý phiên bản dùng cho cập nhật nội dung, các lỗi vô ý do ghi đè lên nội dung, ghép nộidung, thiếu liên lạc giữa các bộ phận bảo trì nội dung sẽ được giảm thiểu,nếu như khôngnói là hoàn toàn bị loại trừ
Trang 29CHƯƠNG II CÔNG NGHỆ CMS - SITEFINITY
2.1 Tổng quan về Telerik SiteFinity
Telerik Sitefinity là một hệ quản trị nội dung dựa trên nền ASP.NET cho phép chúng taxây dựng những Web site động và có thể chỉnh sửa theo ý muốn Bằng việc sử dụngnhững mẫu (template) định trước, các điều khiển web Telerik RadControl cho ASP.NET,
và các module đã được dựng sẵn để thực hiện những chức năng cơ bản như FAQs, News.Hơn thế nữa, Sitefinity cung cấp đầy đủ cho chúng ta công cụ để có thể xây dựng mộtWeb site hấp dẫn, mạnh mẽ một cách nhanh chóng và dễ dàng Đối với những người dùngbình thường, Sitefiny kết hợp môi trường “What you see is what you get” (giao diện soạnthạo trực quan) với một tiến trình luồng làm việc có nhiệm vụ theo dõi trang trong toàn bộtiến trình từ việc tạo ra, sửa đổi đến xét duyệt để đưa lên Web site
Mặc dù rất nhiều web site có thể được xây dựng ngay trong giao diện người dùng củaSitefinity, nhưng Sitefinity còn bao gồm một kiến trúc module mở cung cấp cho ngườiphát triển một tập giao diện lập trình ứng dụng đầy đủ (API) Những API này có thể thựchiện những nhiệm vụ thông thường như quản lý an ninh, thay đổi dòng làm việc, và tươngtác trực tiếp với máy CMS (CMS engine) Bằng cách sử dụng API của Sitefinity trong môitrường Visual Studio, chúng ta có thể thiết kế những chức năng mà Sitefinity không cungcấp, tạo module của riêng mình và tích hợp bất cứ thành phần nào của ASP.NET màchúng ta thích vào trong Web site
Chúng ta có thể làm 3 việc với Sitefinity, đó là chỉnh sửa giao diện của web site, mở rộngphần chức năng của Web site trong trường hợp chức năng cần có chưa được thiết kế mặcđịnh trong Sitefinity, và cuối cùng, chúng ta có thể sử dụng các hàm API của Sitefinity đểxây dựng một chức năng mới ở phần đỉnh của Sitefinity
Chỉnh sửa giao diện của Web site
Một trang web cần phải xác định cấu trúc và hình thức
Cấu trúc được xác định qua Master Page và Template
Hình thức được xác định qua Theme và Skin Theme bao gồm file CSS, fileskin và các file hình ảnh tương ứng
Ví dụ: Xem hình vẽ dưới đây
Trang 30Hình 2 1 – Cấu trúc trang trong Sitefinity
Mở rộng Sitefinity để đáp ứng yêu cầu của Web site
Khi muốn thêm một chức năng nào đó mà Sitefinity chưa cung cấp, ta có 3 cách:
Thứ nhất, chúng ta có thể kết hợp một vài control có sẵn thành một control ( ví dụ
có thể kết hợp control Label với control RadRotator)
Thứ 2, tạo ra một Intra module
Thứ 3, tạo một Pluggable module
Việc tạo một Intra module dễ dàng hơn rất nhiều việc tạo một Pluggable module nhưng
nó giới hạn chúng ta chỉ có thể sử dụng nó trong một cài đặt nhất định của Sitefinity
Lập trình với Sitefinity
Khi tạo ra một chức năng mới chúng ta có thể sử dụng các hàm API mạnh mẽ và linh hoạtcủa Sitefinity Điều đó có nghĩa là chúng ta có thể xây dựng chức năng ở trên đỉnh củaSitefinity mà không cần thiết phải tạo ta một cái gì đó hoàn toàn khác biệt
2.2 Các thành phần cơ bản của Telerik SiteFinity
Telerik SiteFinity chứa hai thành phần cơ bản là trang (page) và các điều khiển (controls)
Có bốn thành phần cấu thành một trang trong SiteFinity là trang chủ (master page), mẫu(template), nền (theme) và hình thể (skin) Đối với điều khiển chúng ta có thể sử dụng cácđiều khiển có sẵn hoặc xây dựng mới các điều khiển Chúng ta sẽ tìm hiểu kỹ hơn về điềukhiển trong phần mô hình lập trình
Trang 31Ngoài ra, Sitefinity cung cấp cho bạn một cơ sở hạ tầng mạnh mẽ để xây dựng những hệthống quản lý an ninh, dòng làm việc…Không chỉ có thế, bạn còn có thể sử dụng cơ sở hạtầng này vào trong module của mình Quản lý bảo mật dựa trên cơ chế phân quền và phânvai trò người dùng Quản trị dựa trên cơ chế phân công trách nhiệm (role-based) Các mô-đun có thể gắn vào SiteFinity một cách động Hiện tại phiên bản 3.1 cung cấp sẵn các mô-đun sau: Generic content, News, Blogs, Lists, Polls, Forums Sau đây chúng ta sẽ xem xétmột số khái niệm cơ bản trong SiteFinity.
Các trang chủ (Master Pages)
Là một thành phần của ASP.NET 2.0 cho phép bạn xác định cách trình bày chung cho nộidung chữ và đồ họa của trang web Ví dụ, bạn có thể dùng master pages để xác định chuẩncho headers và footers của tất cả các trang trong một web site Nội dung của master pageđược lưu trong một file riêng và có thể được kế thừa bởi những trang web khác Người sửdụng không thể thay đổi master page thông qua Sitefinity Nếu cần thay đổi master pages,
ta phải dùng Visual Studio
Các mẫu (template)
Trong Sitefinity xác định cấu trúc và tổ chức của các place-holder trên một trang web.Người sử dụng có thể chọn các control để đặt vào trong các vùng chứa nội dung trong bất
cứ trang nào Vì vậy 2 trang sử dụng cùng một template có thể trông rất khác nhau
Một master page có thể được sử dụng bởi nhiều template Một template có thể được sửdụng bởi nhiều trang web
Trang 32Theme và skin là 2 công cụ bổ sung giúp bạn có thể chỉnh sửa hình thức của page vàcontrol.
Nền (Themes)
Là một tập các thuộc tính cài đặt xác định hình thức của page và control trên web site.Bằng cách sử dụng theme ta có thể thay đổi giao diện của page mà không ảnh hưởng đếnchức năng của chúng Theme gồm có:
Cascading style sheet files (.css)
Skin flies (.skin)
2.3 Mô hình lập trình
Vì SiteFinity là một giải pháp trên nền Net nên chúng ta có thể sử dụng Visual Studio
2005 để lập trình, thao tác Với công cụ lập trình mạnh như Visual Studio và một bộ thưviện, bộ khung phong phú SiteFinity cho phép chúng ta tạo ra các ứng dụng web một cáchnhanh chóng và tính năng phong phú
2.3.1 Lập trình với Visual Studio
Chúng ta có thể mở bất cứ trang web nào của Sitefinity bằng Visual Studio 2005 bằngcách chọn File Open Web Site rồi chỉnh đến đường dẫn tới trang web của bạn vàbấm open Vì Sitefinity lưu các page trong CSDL nên khả năng chỉnh sửa các page bằng
VS bị hạn chế Bạn chỉ có thể sửa template, theme hay các page không được quản lý bởi
VS Sau đây sẽ trình bày cách thao tác với Visual Studio
Khi bạn tạo một project với Sitefinity, một .NET web project sẽ được tạo bao gồmSitefinity engine và web site mà bạn quản lý với Sitefinity Nó gồm có các thư mục nhưhình vẽ dưới đây:
Trang 33Hình 2 3 – Cấu trúc thư mục trong Visual Studio
Trong đó:
Thư mục App_Browsers chứa các file với các cài đặt về form adapter có đuôi browser.Thư mục App_Data chứa các file CSDL và file module tìm kiếm
Thư mục App_Master chứa các file master page có đuôi master
Thư mục App_Themes chứa các thư mục theme với các file css, skin, file hình ảnh,…Thư mục bin chứa các file assembly dạng dll và xml
Thư mục File chứa các file ngoài được nạp vào project
Thư mục Images chứa các file hình ảnh ngoài
Thư mục RadContrl chứa các thành phần của RadControl như script, skin
Thư mục Sitefinity chứa các cài đặt cms
Thư mục App_Data:
Chứa 2 thư mục - một dùng chứa thông tin CSDL và thông tin của module tìm kiếm.CSDL là nơi Sitefinitty lưu các page và control được sử dụng bởi trang web nó quản lý.Mặc định nó là CSDL SQL Server 2005 và được đặt tên là Sitefinity.mdf CSDL có thểđược quản lý bởi Server Explorer Ngoài ra, có một file text sitefinity.log ghi lại các thôngtin lỗi của chương trình Một thư mục khác trong App_Data là Search Nó lưu dữ liệu vềmỗi danh mục tìm kiếm được đăng ký bởi admin thành một thư mục con
Trang 34Chứa các theme có thể được sử dụng trong các page Mỗi theme trong thư mục tương ứngvới một lựa chọn khi bạn tạo một page mới Bạn cũng có thể chỉnh sửa hay thêm thememới bằng Visual Studio 2005.
Thư mục bin:
Chứa tất cả các file Assembly cần để tham chiếu bởi các file trong web site Nếu có nhữngfile Assembly ở các ngôn ngữ không phải tiếng Anh thì chúng cũng được lưu trong thưmục bin
Thư mục Sitefinity:
Thư mục Sitefinity có thể chia thành 2 phần chính: Thư mục Admin và các thư mục cònlại Thư mục Admin chứa tất cả những thông tin cần thiết để cài đặt phần admin trongSitefinity Phần còn lại của thư mục dùng để thiết lập các cài đặt để hiển thị phần publictrong web site
Thư mục Admin:
Chứa các web page tạo thành giao diện người quản trị Nó gồm có các thư mục con sau:
o App_LocalResources chứa những tài nguyên được sử dụng bởi trang web tronggiao diện người quản trị
o CmsAdmin chứa các page quản lý người dùng, vai trò, và phân quyền
o ControlTemplates chứa các templates cho control được sử dụng bởi trang web tronggiao diện người quản trị
o Scrips được sử dụng trong chế độ debug Khi không ở trong chế độ đó, file dllchứa các tài nguyên và không thể chỉnh sửa được
o Theme chứa những file hình ảnh và skin sử dụng bởi trang web trong giao diệnngười quản trị
Khi thao tác với các dự án SiteFinity để phát triển các dịch vụ web chúng ta thao tác vớicác tệp và các thư mục đã giới thiệu ở trên Tùy thuộc vào trường hợp cụ thể, ứng dụng cụthể mà chúng ta phát triển có các phương pháp, cách tiếp cận, thao tác khác nhau Với bất
kỳ ứng dụng nào, CSDL đều đóng vai trò rất quan trọng Phần sau chúng ta sẽ trình bàycách thao tác với CSDL và vai trò của nó trong ứng dụng SiteFinity
2.3.2 Truy xuất cơ sở dữ liệu
Sitefinity sử dụng một phên bản nhúng của Nolics.net2005 engine cho tất cả các kết nối dữliệu Nolics.net cung cấp một lớp ánh xạ quan hệ - đối tượng cho phép bạn làm việc trựctiếp với đối tượng ngay trong code, trong khi đó chương trình tự động tạo ra những câulệnh SQL cần thiết để cập nhật CSDL
Mặc định Sitefinity sử dụng CSDL SQL Server để lưu giữ nhiều loại thông tin, tuy nhiênchúng ta có thể cấu hình để triển khai CSDL trên các hệ quản trị cơ sở dữ liệu khác; cơ sở
dữ liệu lưu trữ gồm có:
Trang 35o Page trong web site.
o Page tạm thời
o Người dùng, vai trò và phân quyền
o Dữ liệu chứa trong pluggable module
o Thông tin dòng làm việc
Kết nối dữ liệu trong Sitefinity sử dụng Nolics.net 2005:
Nolics.net 2005 sẽ tự động tạo ra mã nguồn và các lớp để thực hiện chức năng tương tácvới CSDL, tạo các thể hiện của đối tượng dữ liệu và các phép toán dữ liệu như thêm, cậpnhật… Nolics.net 2005 là một ngôn ngữ đặc trưng được tích hợp vào trong Visual Studio
2005 và cung cấp chức năng định nghĩa và duy trì đối tượng trong kho dữ liệu Hai thànhphần chính của Nolics.net là định nghĩa một đối tượng đã tồn tại và các hành động của nó.Tất cả định nghĩa logic cấu trúc dữ liệu và hành động của đối tượng trong một moduleđược chứa trong những lớp định nghĩa dữ liệu File dbclass (ví dụ Job.dbclass) chứa địnhnghĩa đối tượng, file Designer.cs (ví dụ Job.Designer.cs) chứa phần code được tạo ra bởiNolics dựa trên file dbclass, và partial class đi kèm (Job.cs) chứa các hành động Các đốitượng của CSDL, ví dụ table, stored procedure… , được tạo ra bởi Nolics.net từ file địnhnghĩa cấu trúc dữ liệu dbclass nên ta không cần phải tạo hay sửa đổi các đối tượng nàymột cách trực tiếp
Cách tạo mới một lớp CSDL:
Bước đầu tiên là định nghĩa một cấu trúc dữ liệu sử dụng Nolics.net
1 Bấm chuột phải vào thư mục sẽ chứa lớp định nghĩa dữ liệu (.dbclass)
2 Chọn Add New Item
3 Từ trong danh sách hiện ra, chọn Nolics.net Database Class
Trang 36Hình 2 4 – Định nghĩa cấu trúc dữ liệu sử dụng Nolics.Net
4 Điền tên của lớp mới rồi bấm add
5 Một file định nghĩa dbclass sẽ được tạo ra
Chú ý: không thay đổi nội dung của file Designer.cs Điều đó sẽ được chương trình làmmột cách tự động
Bước tiếp theo là định nghĩa một đối tượng lưu trữ:
Định nghĩa sự tồn tại của một đối tượng dữ liệu được xác định trong các lớp sử dụng ngônngữ Nolics.net là sự kết hợp giữa định nghĩa các thuộc tính của một đối tượng và địnhnghĩa các cột trong CSDL Ví dụ sau đây là định nghĩa của đối tượng Job trong file mẫuJob.dbclass:
Trang 37thể được xác định giống quan hệ khóa chính – khóa ngoài giữa các bảng trong CSDL Ví
dụ, trong module mẫu Jobs, đối tượng Job Type quan hệ với đối tượng Job qua một liênkết Điều này được ứng dụng trong việc tạo bảng trong CSDL và sinh code trongfile Designer.cs
Chú ý: không được thay đổi các đối tượng của CSDL CSDL sẽ được tự động cập nhật khi
ta thay đổi các đối tượng dữ liệu
Định nghĩa các truy vấn
Để bổ sung cho việc xác định cấu trúc dữ liệu, các truy vấn có thể được định nghĩa choviệc kết nối dữ liệu Sau đây là một ví dụ về sử dụng truy vấn tĩnh để tìm ra các activejobs:
/// <summary>
/// Get a collection of all active jobs sort by date
posted
/// </summary>
query GetActiveJobs for Job [ProcedureName =
"sf_Job_GetActiveJobs",OrderBy="DatePosted DESC"]
Có một chú ý quan trọng là một truy vấn trả lại một tập các đối tượng, trong ví dụ này làmột tập các đối tượng Job
Định nghĩa các hành động cho đối tượng
Hành động được định nghĩa cho đối tượng bằng cách cài đặt các phương thức dựa trên cácgiao diện chuẩn xử lý sự kiện liên quan đến sự tồn tại của đối tượng Bảng sau đây liệt kêcác sự kiện chuẩn và các giao diện tương ứng với chúng
Create IOdbEventCreate Gọi khi thêm vào một đối tượng.Delete IOdbEventDelete Gọi khi xóa một đối tượng
Verify IOdbEventVerify Gọi trước khi save một đối tượng
Trang 38Persist IOdbEventPersist Gọi khi load hoặc save một
đối tượng
Bảng 2 1 – Các sự kiện trong Nolics
Để cài đặt một hay nhiều những hành động này, một partial class được tạo ra dựa trên mộthay nhiều giao diện tương ứng Ví dụ sau đây từ file Job.cs chứa một cài đặt của giao diệnCreate được gọi khi đối tượng được tạo ra Đây cũng là một cách để đặt giá trị mặc địnhcho các thuộc tính và các hoạt động khác
partial class Job: IOdbEventCreate
Tất cả các giao diện là tùy chọn, vì vậy hãy cài đặt chúng khi bạn cần một chức năng nào
đó trong một sự kiện, ví dụ như tạo một đối tượng
Cài đặt Business Logic liên quan
Để bổ sung cho việc định nghĩa các hành động, partial class có thể chứa bất kỳ businesslogic ( phương thức, thuộc tính…) được yêu cầu bởi kiến trúc của ứng dụng Ví dụ khi bạncần một vài xác nhận phức tạp khi lưu dữ liệu trong một đối tượng, bạn có thể tạo ra mộtvài phương thức private trong partial class và sau đó gọi chúng bằng sự kiện xác nhận
Sử dụng đối tượng dữ liệu trong code
Khi các đối tượng dữ liệu được định nghĩa, các thể hiện có thể được tạo ra cũng như cácđối tượng khác Ví dụ sau đây chỉ ra cách tạo một thể hiện của lớp Job:
Job job = new Job();
Khi một thể hiện được tạo ra, nó có thể được sử dụng trong liên kết với các lớp và phươngthức để thực hiện các hàm dữ liệu chuẩn như chọn, thêm, sửa, và xóa
Chú ý: các hàm dữ liệu được quản lý một cách trong suốt bởi Nolics.net Bạn chỉ có thểtác động lên các đối tượng thông qua các lớp và phương thức
Sử dụng OdbClass để thực hiện các hàm dữ liệu
Trang 39Odbclass là một lớp tĩnh của Nolics.net 2005 được sử dụng để thực hiện các hàm cơ bảnnhư gắn các đối tượng với các giao dịch và nạp dữ liệu Ví dụ sau đây biểu diễn cách tạomột thể hiện một đối tượng Job sử dụng Odbclass Tất cả các phương thức của Nolics.net
sử dụng một giao dịch
/// <summary>
/// Creates new job
/// </summary>
/// <param name="transaction">A reference to a
transaction to be used for the operation.</param>
/// <returns>Reference of the newly created job
//Create (insert) the new job object
Job job = new Job();
OdbClass.Create(job, transaction);
return job;
}
Giao dịch trong Nolics.net 2005
Nolics.net 2005 yêu cầu mỗi đối tượng phải được liên kết với một giao dịch mức đốitượng trước khi nó có thể được thêm, sửa, hay xóa Vì vậy, sau khi tạo một thể hiện chomột lớp, đối tượng phải được liên kết với một giao dịch sử dụng phương thức tĩnhOdbClass.Create()
Transaction transaction = new Transaction();
Trang 40Job job = new Job();
OdbClass.Create(job, transaction);
Trước khi đối tượng được liên kết với một giao dịch thì nó phải có một khóa chính Khóachính này có thể được tạo ra một cách tự động khi định nghĩa đối tượng hoặc được ngườidùng gắn vào thể hiện của đối tượng trước khi liên kết nó với một giao dịch
Một dữ liệu đã có có thể được nạp vào một thể hiện của một đối tượng và tham gia vàomột giao dịch
Job job = new Job();
job.ID = id;
OdbClass.LoadByPrimaryKey(job);
//Add the job to a Nolics.net transaction (required)
transaction.Join(job);
Nâng cấp CSDL trong quá trình phát triển
Các đối tượng CSDL trong một module được tạo ra một cách tự động trong CSDL khimodule được nạp bởi Sitefinity Tuy nhiên, sẽ có thể có ích nếu ta tự gọi một CSDL rồinâng cấp nó để tạo ra các đối tượng trong quá trình phát triển Các bước như sau (xemhình vẽ dưới đây):
1 Bấm chuột phải vào module trong Solution Explorer
2 Chọn Upgrade Database(s)
3 Chọn file config sử dụng để nâng cấp
4 Chọn Check để bỏ qua các bược nâng cấp hoặc chọn Upgrade để thực hiện toàn bộquá trình nâng cấp