1. Trang chủ
  2. » Luận Văn - Báo Cáo

đề 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

92 493 1

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 92
Dung lượng 2,11 MB

Nội dung

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 1

PHIẾ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 2

BẢ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 3

CMA ứ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 4

Danh 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 5

Danh 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 6

Mụ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 7

2.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 8

5.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 9

Lờ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 10

ABSTRACT 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 11

Chươ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 12

Trang 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 13

Bằ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 14

Hì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 15

Là "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 16

nhiề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 17

2.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 18

Thoạ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 19

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, 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 20

Trong 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 21

và ứ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 22

sang 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 23

Sau 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 24

Lý 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 25

Stage, 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 26

Có 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 27

dướ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 28

Nâ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 29

CHƯƠ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 30

Hì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 31

Ngoà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 32

Theme 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 33

Hì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 34

Chứ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 35

o 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 36

Hì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 37

thể đượ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 38

Persist 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 39

Odbclass 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 40

Job 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

Ngày đăng: 16/10/2014, 12:05

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w