Tài liệu Đề 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: PHIẾU GIAO NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP
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
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 đích cung cấp thông tin cho người truy cập.1`
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
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ảo vệ
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
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
Nội dung đồ án
Phần 1 :
Giới thiệu tổng quan hệ thống quản trị nội du...
92 trang |
Chia sẻ: hunglv | Lượt xem: 1378 | Lượt tải: 0
Bạn đang xem trước 20 trang mẫu tài liệu Đề 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, để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
PHIẾU GIAO NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP
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
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 đích cung cấp thông tin cho người truy cập.1`
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
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ảo vệ
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
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
Nội dung đồ án
Phần 1 :
Giới thiệu tổng quan hệ thống quản trị nội dung.
Lựa chọn công nghệ sử dụng
Phần 2 :
Tìm hiểu công nghệ Sitefinity: Kiến trúc, thành phần và mô hình, phương pháp lập trình ứng dụng web với SiteFinity.
Phần 3 : Phân tích hệ thống : yêu cầu, chức năng của hệ thống thông tin chứng khoán
Thiết kế hệ thống thông tin chứng khoán
Phần 4 : Tổng kết đánh giá và hướng phát triển
Danh sách từ viết tắt
Từ viết tắt
Tên đầy đủ
TTCK
Thị trường chứng khoán
CNTT
Công Nghệ Thông Ttin
CSDL
Cơ sở dữ liệu
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.
CMS
Content Management System
AJAX
Asynchronous Javascript And XML
DSL
Domain Specific Langluage
ORML
Object-relational mapping layer
Danh mục các bảng
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
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
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
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
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
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ác trù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 tin trên Internet đang tăng gấp đôi mỗi năm, và người dùng Internet sử dụng trung bình 60% 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ết khô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ây phiề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ủa cá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ột khái niệm mới, đồng thời cũng là một xu hướng công nghệ mới: CMS (thường được gọ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ếu xuất phát từ nhu cầu thực tế. CMS đang là chủ đề nóng nhất trong các ứng dụng CNTT 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ền thố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ói riê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ài nà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
ABSTRACT OF THESIS
Recently, 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 such tool. 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 many advantage 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.
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ữ định dạ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 “Scripting language”, công nghệ ASP, PHP, JSP, XML và những công nghệ khác để thỏa mãn cá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êu cầu sẽ hiện ra. Nhưng trước khi người sử dụng có thể yêu cầu trang web đó, người thiế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 web dự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ềm thực hiện nhiệm vụ quản lý các trang web và chuyển nó đến trình duyệt (qua Internet hoặ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 tĩnh HTML có rất nhiều hạn chế. Có nhiều việc mà người ta không thể thực hiệ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ời gian 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êu cầ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ạo lậ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ập HTML.
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 HTML thể 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.
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ủ.
Web tĩnh
Web động
- Ít khi phát sinh lỗi trong quá trình chạy
- Tốc độ cao hơn
- Giá thành xây dựng thấp
- Phụ thuộc rất ít vào công nghệ
xây dựng.
- 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.
- Dễ dàng mở rộng khả năng phục vụ của
hệ thông khi có nhiều người sử dụng động
thời
Bảng 1. 1 - So sánh giữa công nghệ web tĩnh và web động
Apache HTTP server
Apache server là một HTTP server phổ biến nhất trên thế giới hiện nay, được viết bởi The Apache Foundation, một nhóm kỹ sư từ khắp nơi trên thế giới. Mục tiêu của Apache là tạo 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ác phiên bản Unix/Linux.
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ầu một trang web nằm trên server thông qua kết nối TCP/IP, Apache server sẽ đáp ứng nhu cầ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áy khá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
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ẩu thông tin được trình bày trên World Wide Web. HTML giờ đây đã trở thành một chuẩn Internet 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ạng Internet. 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ách hiể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 đi trê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ệm cô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ển cá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ích hợ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 ứng dụ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ựng sả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ằm hiể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ản thuầ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ên má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 được hiể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 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ý được thự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á cao trong giao diện website chuẩn. Đáng tiếc, chức năng này không hoạt động ăn khớp với Javascript 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 đối tượ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 cho cá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ượng nằm sẵn trong các ứng dụng.
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ên mạ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ản cũ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ới cá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ới hai 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ỏi khá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, hay chí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ảng là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ác nhâ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ác chứ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ới nhau.
2.1.2. Nội dung
Hầu hết các chuyên gia đều đồng ý rằng nội dung là “quặng” tìm thấy trong các web site. Chúng ta nên dùng từ quặng ở đây, và nó chia thành hai phạm trù:
Thông tin(information)- ví dụ như các ảnh(image) và các đoạn văn bản(text) – mà ta thấy trên các website khi ta truy cập chúng.
Các ứng dụng(application) hay phần mền chạy trên các web server để hiển thị thông tin trên các Website
Bây giờ lại xuất hiện một số vấn đề không rõ ràng mới. Một số chuyên gia nói rằng miền CMS chỉ chứa thông tin, trong khi một số khác thì nói nó chứa cả thông tin lẫn ứng dụng. vậy quan điểm nào là chính xác?
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 đúng hơ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át triể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ày cũ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ật hơ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ệt quan 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ác workflow 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êu cầ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 so vớ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át hà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ội dung 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ó cho phé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ột cá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ành nên một câu chuyện hoặc một bài báo trong website.
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á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 đị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ộ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.
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 định dạ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 GIF vớ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ệu thườ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àm việ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 khi vẫ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ết lậ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ống quả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ại nộ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 dung Cung 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àn vă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
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 nhanh chó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ầm tay…
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, 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ác thà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 dung tớ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ác thà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ội dung 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ành phầ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úc web 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ào cũ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ài vai 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ế an ninh 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ột website 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ớn hơ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ác nhau 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ập khi 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 nhanh nhấ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àn tấ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ấp nhậ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ày cù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 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ện cô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ỉ được nhậ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ội dung.
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ác cô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 được nộ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ời gian 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 dung mớ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 do tí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ác thậ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ỏ website củ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ách thê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ệt cho chúng ở bên ngoài CMS. Những dạng này thường được import vào CMS như các thà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àn chỉnh và sẵn sàng sang giai đoạn tiếp theo.
sắp xếp(layout)
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 để quan sá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 test chú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 qua trì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ác trì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ội dung của hệ thống
Triển khai(deployment)
Đây là giai đoạn đưa nội dung ra công chúng ,thủ tục triển khai khá phức tạp phụ thuộc vào server ta có cho phép tự truy cập 24/7 hay không.
Bảo trì(maintenace)
Đây là giai đoạn bổ xung thông tin hoặc thông tin mới xuất hiện,hoăc cũng có thể là gai đoạn sửa lỗi phát sinh trong vòng đời của các thành phần nội dung.
Lưu trữ(archival)
Một khi nội dung quá thời hạn hoặc đã đến đỉnh điểm của sự hữu ích thì nó cần được lưu trữ. Lưu trữ không có nghĩa là use không thể truy nhậpcác thành phần nội dung này mà là nội dung này có thể truy xuất thông qua phép tìm kiếm kho lưư trữ, công việc rất cần thiết 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ưu trữ 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ưu trữ 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ếu Nế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 cho hai thành phần khác nhau: nội dung và phân phối nội dung.
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ững con 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ý chung thô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ệc nộ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ội dung thông tin là các thông tin về nội dung. Nghe qua có vẻ MMA rất giống CMA nhưng MMA 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ác thà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ông tin ở 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ền phê chuẩn nội dung, việc phê chuẩn có thay đổi quan trọng ở MMA thường do một uỷ ban thự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à được hoạ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 đảm nhậ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ệc phâ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ường xuyê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 CMS tạ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
Khởi tạo
Việc tạo ra các nội dung thông tin luôn dựa vào việc phân tích và thiết kế trước đó.
Xây dựng(buil)
Một khi các miếng nội dung thông tin đã được tạo thành và hoàn tất chúng cần được giáp nối với nhau,trong trường hợp .Net,hầu hết nội dung thông tin đều ở dạng file ASP.NET hoặcC# và cần được biên dịch. Đây là giai đoạn khác nhau chủ yếu giữa CMA và MMA vì giai đoạn này thường cần công cụ của các công ty thứ 3 (nằm ngoài CMS)
Kiểm thử(test)
Sau khi các nội dung thông tin được tạo ra và xây dựng, chúng cần được qua quá trình kiểm thử.
Không như với các thành phần nội dung, việc kiểm thử ở đây đặc biệt nghiêm ngặt và không thể lơ là với bất cứ giá nào.
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ành phầ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ía client đựơ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ểm củ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 workflow trong 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ên website.
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ụng lư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ồm theo 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 MMA hoạ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ảo tính nhất quán, toàn vẹn của nó.
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ợp cá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 án tiế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 CMS theo 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 được và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ột ngườ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ề kho chứ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à đủ cho việ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 out nộ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 đổi nhữ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ải lư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ản phả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ách logic, 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ểm soá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ản yê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ữ 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ứng cá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ủa version tracking là theo dõi mọi thông tin liên quan đến những thay đổi của nội dung trong suố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, ai thay đổi, thay đổi gì và có thể cả lý do tại sao lại có những thay đổi đó nữa. Version tracking cung cấp một cơ chế bảo vệ nghiêm ngặt, mà ta có thể tưởng tượng như sau: khi mộ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ới bấ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 được phá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ặc xoá 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ó được update.
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ởi phiê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ội dung.
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ảng tố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ội dung 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ản cung 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ử.
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ợp thà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 được yê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ạng thá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ức nă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àm việ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át triể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ội dung đượ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ạn trong 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ội dung, 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ông nói là hoàn toàn bị loại trừ.
CHƯƠNG II. CÔNG NGHỆ CMS - SITEFINITY
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 ta xây dựng những Web site động và có thể chỉnh sửa theo ý muốn. Bằng việc sử dụng nhữ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ột Web 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ùng bình thường, Sitefiny kết hợp môi trường “What you see is what you get” (giao diện soạn thạ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ủa Sitefinity, nhưng Sitefinity còn bao gồm một kiến trúc module mở cung cấp cho người phá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ực hiệ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ương tá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ôi trường Visual Studio, chúng ta có thể thiết kế những chức năng mà Sitefinity không cung cấ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ộng phầ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, file skin và các file hình ảnh tương ứng.
Ví dụ: Xem hình vẽ dưới đây
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ạt củ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ủa Sitefinity 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.
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ều khiển trong phần mô hình lập trình.
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ân vai 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ét mộ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ội dung chữ và đồ họa của trang web. Ví dụ, bạn có thể dùng master pages để xác định chuẩn cho 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.
Hình 2. 2 – Tempalate mẫu trong Sitefinity
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 đến chức năng của chúng. Theme gồm có:
Cascading style sheet files (.css)
Skin flies (.skin)
Graphics files
Hình thể (Skins)
Xác định hình ảnh đồ họa của những control riêng lẻ ( ví dụ như nút bấm và nhãn) mà không ảnh hưởng đến chức năng của chúng.
History:
Telerik Sitefinity theo dõi và lưu trữ toàn bộ quá trình sửa đổi nội dung. Khi một user thay đổi một nội dung nào đó, những thay đổi đó được lưu lại thành một phiên bản mới của nội dung ban đầu. Nội dung ban đầu được lưu lại trong CSDL và có thể phục hồi một cách dễ dàng. Bạn có thể xem bất cứ phiên bản nào của trang và phục hồi trở lại bất cứ phiên bản nào trước đó (tất cả các phiên bản sau phiên bản được phục hồi sẽ bị xóa).
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ách nhanh chóng và tính năng phong phú.
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ằng cá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ồm Sitefinity 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:
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ông tin 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.
Thư mục App_Master:
Chứa master page có thể được sử dụng bởi các page trong web site. Mỗi Master page trong thư mục có thể liên quan đến một hoặc nhiều sự lựa chọn template để tạo một page. Bạn có thể tạo hay chỉnh sửa một master page theo ý muốn bằng Visual Studio.
Thư mục App_Themes:
Chứa các theme có thể được sử dụng trong các page. Mỗi theme trong thư mục tương ứng vớ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 theme mớ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ững file 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òn lạ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 trong Sitefinity. 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 public trong 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:
App_LocalResources chứa những tài nguyên được sử dụng bởi trang web trong giao diện người quản trị.
CmsAdmin chứa các page quản lý người dùng, vai trò, và phân quyền.
ControlTemplates chứa các templates cho control được sử dụng bởi trang web trong giao diện người quản trị.
Scrips được sử dụng trong chế độ debug. Khi không ở trong chế độ đó, file .dll chứa các tài nguyên và không thể chỉnh sửa được.
Theme chứa những file hình ảnh và skin sử dụng bởi trang web trong giao diện ngườ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ới cá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ày cách thao tác với CSDL và vai trò của nó trong ứng dụng SiteFinity.
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ực tiếp với đối tượng ngay trong code, trong khi đó chương trình tự động tạo ra những câu lệ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ên chú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ó:
Page trong web site.
Page tạm thời.
Người dùng, vai trò và phân quyền.
Dữ liệu chứa trong pluggable module.
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ác vớ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ập nhậ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ành phầ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 định nghĩa đối tượng, file .Designer.cs (ví dụ Job.Designer.cs) chứa phần code được tạo ra bởi Nolics dựa trên file .dbclass, và partial class đi kèm (Job.cs) chứa các hành động. Các đối tượng của CSDL, ví dụ table, stored procedure… , được tạo ra bởi Nolics.net từ file định nghĩ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ày mộ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
Bấm chuột phải vào thư mục sẽ chứa lớp định nghĩa dữ liệu (.dbclass)
Chọn Add New Item
Từ trong danh sách hiện ra, chọn Nolics.net Database Class
Hình 2. 4 – Định nghĩa cấu trúc dữ liệu sử dụng Nolics.Net
Điền tên của lớp mới rồi bấm add.
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àm mộ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ôn ngữ 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à định nghĩa các cột trong CSDL. Ví dụ sau đây là định nghĩa của đối tượng Job trong file mẫu Job.dbclass:
//////Definition of the Job object data.///dbclass Job [TableName="sf_Jobs_Job"]{ primary key guid ID[AutoGenGUID=True]; string JobName[Length=100]; string Description; bool Active; modified date DatePosted;}
Cấu trúc dữ liệu tương tự như định nghĩa một cấu trúc bảng mà ở đó mỗi thành phần dữ liệu được gắn với một cái tên và kiểu dữ liệu. Hơn nữa, mối quan hệ giữa các đối tượng có 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ên kết. Điều này được ứng dụng trong việc tạo bảng trong CSDL và sinh code trong file .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 cho việ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 active jobs:
/// /// Get a collection of all active jobs sort by date posted./// query GetActiveJobs for Job [ProcedureName = "sf_Job_GetActiveJobs",OrderBy="DatePosted DESC"]{ string Title ?like Title;}
Đây là một truy vấn tĩnh, truy vấn mà giá trị và kiểu của tham số không bị thay đổi khi thực hiện. Truy vấn động cho phép điều ngược lại. Điều này được ứng dụng để tạo các store procedure trong CSDL và code trong file .Designer.cs
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ác giao 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.
Event
Interface
Description
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 (Validation)
IOdbEventVerify
Gọi trước khi save một đối tượng.
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ột hay 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ện Create được gọi khi đối tượng được tạo ra. Đây cũng là một cách để đặt giá trị mặc định cho các thuộc tính và các hoạt động khác.
partial class Job: IOdbEventCreate{ public void CreateObject(OdbDataProvider provider) { //Logic while creating the object }}
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ỳ business logic ( 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ạn cầ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ột và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ương thứ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
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ản như 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ạo mộ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.
/// /// Creates new job./// /// A reference to a transaction to be used for the operation./// Reference of the newly created job object./// /// Note that the actual creation occurs when the transaction assoicated/// with the job is committed./// public override Job CreateJob(Transaction transaction){ //There must be a transaction to complete the operation. if (transaction == null) { throw new ArgumentNullException("Transaction is null for creating a 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 đối tượ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 cho mộ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ĩnh OdbClass.Create()
Transaction transaction = new Transaction();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óa chí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ười dù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ào mộ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 khi module được nạp bởi Sitefinity. Tuy nhiên, sẽ có thể có ích nếu ta tự gọi một CSDL rồi nâ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 (xem hình vẽ dưới đây):
Bấm chuột phải vào module trong Solution Explorer
Chọn Upgrade Database(s)
Chọn file .config sử dụng để nâng cấp
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.
Hình 2. 5 – Nâng cấp CSDL
Tạo một file cấu hình để nâng cấp CSDL
Để nâng cấp một CSDL cần phải có một file app.config nằm trong data access project. Để tạo một file app.config và cài đặt xâu liên kết Nolics.net, ta làm như sau:
Bấm chuột phải lên file Data Access Class Library project trong Solution Explorer và chọn Add New Item.
Chọn Application Configuration File và bấm Add
Từ Tools menu chọn Edit Connections
Chọn file app.config từ danh sách các file cấu hình trong solution
Xác định xâu liên kết sử dụng Connection Editor
Sau khi hoàn tất CSDL, cấu hình cấu hình được lưu trữ trong thư mục App_Data của dự án SiteFinity.
Lập trình với Trang chủ và các mẫu (templates).
Trang chủ và mẫu là hai thành phần cơ bản, nó giống như là các trang trong ASP.net 2005. Việc lập trình và phát triển hoàn toàn giống với lập trình và phát triển trang trong ASP.net. Chúng là nơi lưu dữ thể hiện các điều khiển, các thành phần khác của trang web. Trong SiteFinity chúng ta có thể tạo ra chúng bằng cách kích chuột phải vào SiteFinity Project à Create A Master Page / Template. Ngoài ra chúng ta có thể tùy biến các trang chủ đã có bằng cách kế thừa và phát triển thêm các tính năng cho chúng.
Lập trình với bộ duyệt site
Bộ duyệt site cho phép người dùng, người quản trị nhánh chóng định vị các site một cách dễ dàng và đơn giản. Navigation controls trong sitefinity 3.1 là có:
Dynamic Hyper Link
Site Menu
Site Panelbar
Site Tabstrip
Site Treeview
Breadcrumb
Hyper Link
Language Selector
Navigation controls là một seri của người điều khiển gồm 4 loại :
RadPanelBar
RadTabStrip
RadMenu
RadTreeview
Nếu bạn muốn thực hành một vài thứ mà không thể thấy, bạn cần truy cập vào code, chỗ: /Sitefinity/UserControls. Code này được viết trên môi trường C# và VB nhưng hộp công cụ chỉ chứa C# controls. Nếu bạn rành về VB, bạn có manually edit the web.config để thay thế C# controls.
Ngầm định, RadPanelBar resets trạng thái của nó khi người sử dụng quản lý một trang khác. Việc này thường không thích hợp cho một số trường hợp, như người sử dụng muốn mẩu tin đã được mở ra. RadPanelBar là một thuộc tính đã gọi PersistStateInCookie. Nếu bạn để thuộc tính True thì RadPanelBar sẽ nhớ tình trạng sau khi nó điều khiển.
Hình 2. 6 - Định nghĩa thuộc tính điều khiển PadpanelBar
Tính chất này không đưa ra SitePanelbar. Nhưng nó chính là thuộc RadPanelbar. Để thay đổi đặc tính này, chỉnh sửa SitePanelBar, ở trong mục Misc, tìm PanelBar, click vào edit để chỉnh sửa properties of original RadPanelBar. Ở đây, bạn có thể tìm thấy đặc tính PersistStateInCookie
Hình 2. 7 - Sửa đổi điều khiển PadpanelBar
Setting the Group Page Display: sắp đặt, trình bày những trang trong site. Sitefinity có 2 loại trang, trang nhóm và loại thường . Group pages không có nội dung gì, và chỉ đáp ứng cho một mục đích- đó là để một địa chỉ mới trang con đầu tiên của nó. SitePanelbar có thể chạy hai cách khi bạn có nhóm trang trong hệ thống của bạn. Cách này hay cách khác, để địa chỉ mới trang con đầu tiên, hay chỉ phát triển trang con trong nhóm trang. Behavior là được điều khiển bởi thuộc tính HideUrlForGroupPages, nó là false do ngầm định. Khi đặt true, thì bạn nhấp chuột sẽ đưa bạn tới trang con.( cả đoạn trên có nghĩa là: trong site có 2 loại trang, một loại trang chứa tiêu đề hay chính là đường link đến các trang khác, gọi là “trang nhóm-group”. loại thứ 2 là loại trang không chứa đường link nào cả, gọi là trang con. Các thuộc tính trên có được là nhờ vào HideUrIForGroupPages trong behavior. False là do ngầm định, true là khi bạn nhấp chuột, nó sẽ đưa bạn tới trang con).
Một hữu ích chủ yếu của navigation control là có thể chỉ ra trang hiện thời đang chọn. Một cách thông thường để sử dụng SiteMapPath control. Tuy nhiên, ở thứ tự cao của tìm kiếm mục trên menu thì cái styte cũng nên đổi. siteTabstrip và sitetmenu điều khiển cung cấp hàm của lớp CSS cho việc chọn lựa mục.
Làm việc với các điều khiển
SiteFinity là sản phẩm của Telerik. Nó được tích hợp sẵn với bộ thư viện điều khiển RadControls. Với các điều khiển chính sau, chúng ta có thể sử dụng chúng để phát triển SiteFinity:
RadAjax: là bộ khung cho phép code ít hơn nó cho phép các ứng dụng của ASP.NET
RadCalendar: nói về lịch. Nó gồm 2 loại tương ứng cho client và sever. Nó có nhiều tính năng hiển thị những ngày tháng kề sát, hiển thị nhiều tháng và ngữ cảnh menu.
RadChart: là bộ phận biểu đồ hướng đến doanh nghiệp,cái chính là phát triển sản phẩm và dễ dàng sử dụng. Nó có thể tạo ra các kiểu biểu đồ thông thường. Nó cho phép bạn hiển thị dữ liệu trông rất thân thiện.
RadComboBox: danh sách các điều khiển các danh sách từ trên bổ xuống. Nó nằm trong AJAX dựa trên tải những cái gì mà máy cần cho sự thực thi cao hơn. Sản phẩm gồm một số tính năng cao cấp như nhiều chỉ mục tự động hoàn thành, nhiều cột lưới và hearder, các chữ quảng cáo.
RadDock: một bộ phận linh hoạt dùng cho trang cá nhân. Nó miêu tả vùng chứa nội dung. Cái mà có thể dịch chuyển, cắt ngắn, đưa lại kích thước yêu cầu. Những layout tuỳ chỉnh trang có thể được lưu trong 1 file hoặc cơ sở dữ liệu và nạp lại.
RadEditor: đây là trình soạn thảo thấy gì được nấy. Nó có thể thay thế một textbox với một từ trực giác trong trình soạn thảo. Nó cho phép những người sử dụng không biết công nghệ quản lí bề ngoài nội dung HTML.
RadGrid: Nó thiết kế làm cho deskop giống như người sử dụng đã có kinh nghiệm với một bước chân nhỏ nhất. Thêm vào đó bên trong AJAX hỗ trợ hầu hết sự thực thi thời gian thực.
RadInput: một bộ phận tuỳ chỉnh cao điều khiển dữ liệu vào trong ứng dụng ASP.NET. Nó bao gồm hai điều khiển đó là Masked TextBox and Date Input. Nó làm cho những tính năng dòng đầu tiên có thể được lựa chọn. Nó hỗ trợ bàn phím copy&paste.
RadMenu: nó có hầu hết các điều khiển điều hướng cao cấp cho ASP.NET. Nó cho phép bạn xây dựng nhanh. Nó siêu hiệu quả trong công nghệ rending.(rending biến hình vẽ phác thành hình không gian ba chiều).
RadPanelBar: là một bộ phận linh hoạt cho phép xây dựng menu có thể gập lại được. Nó phát triển nhằm sự điều hướng bên trái/ phải được dễ dàng. Nó không thể có được nhờ thiết kế menu thông thường.
RadRotator: một bộ phận vạn năng cho sự luân phiên nội dung DHTML. Những thanh cuộn tin tức, sự rọi sáng vào tiêu điểm sản phẩm, dự báo thời tiết, giấy chứng thực đang chạy tăng cấp và quảng cáo banner.
RadSplitter: đây là điều khiển cho phép bạn xây dựng deskop giống như giao diện ứng dụng có các thanh trượt giống như trong visual studio.NET. mỗi layout có thể gồm không giới hạn các bộ lồng nhau với sự tách ra. Trạng thái tự động tiếp tục trên sever nó có thể được lưu hoặc tải xuyên suốt sự mở rộng API.
RadSpell: Cho phép người phát triển thêm kiểm tra chính tả nhiều thứ tiếng. Sản phẩm gồm các tuỳ chỉnh hoàn thành có thể đính kèm bất kì server/client cho phép chỉnh sửa phần tử. Nó có thể sử dụng các công cụ, từ điển của MS word.
RadTabStrip: một bộ phận mềm dẻo dùng để xây dựng giao diện tab trong ứng dụng ASP.NET.
RadToolBar: là bộ phận mềm dẻo thực thi công cụ và button strips. Nó cần cho các ứng dụng Web. Khi nó kết hợp với telerik RadDock nó bắt chước tính linh hoạt những công cụ của deskop.
RadTreeView: cho phép hiển thị theo dạng cây. Nó kết hợp những ảnh hưởng rendering nó hỗ trợ sự thực thi cao hơn.Nó hỗ trợ kéo thả.
RadUpload: Một bộ phận chuyên dụng để upload file
RadWindow: một bộ phận có thể thay thế trình duyệt chuẩn cuộc hội thoại. alert/prompt/confirm. Người phát triển có thể xây dựng các phương thức hội thoại và cửa sổ, riêng lẻ hoặc từng nhóm. Nó bắt chước Windows TaskBar.
Ngoài ra chúng ta có thể phát triển các điều khiển cho riêng các dự án của mình. Sau đó tích hợp vào ứng dụng SiteFinity một cách tùy biến.
Làm việc với các mô-đun
2.3.6.1. Sử dụng module sẵn có :
Sitefinity cung cấp sẵn những module và bạn có thể kết hợp chúng một cách dễ dàng ở trong website và mở rộng khả năng của chúng bằng cách sử dụng môi trường visual studio. Những module đó bao gồm:
Generic Content
News
Polls
Lists
Blogs
Forums
Phát triển một module được cung cấp sẵn trong Sitefinity thì sẽ hữu ích và đỡ tốn thời gian hơn là xây dựng lại một module từ đầu. Những chức năng của module thì thiên về mở rộng nhưng nó cũng cần có những yêu cầu chính xác. Phần này sẽ cung cấp những hướng dẫn về những mở rộng mẫu cho những module của sitefinity. Lấy ví dụ, nhập vào nội dung là chức năng chính của Generic Content module. Tiếp tục, thêm một tùy chọn như là lựa chọn xem nội dung nào có thể được nhìn thấy với ai và khi nào nó được nhìn thấy. Điều này sẽ có ích khi mà ta cài đặt sự khác nhau của nội dung trang web cho user đã đăng ký và chưa đăng ký. Ở trong sitefinity 3.1, bạn có thể tạo một user control mà bao trùm GenericContent control đã có, và bổ sung những gì của bạn vào. The User Control nên bổ sung giao diện IcontentContainer và thuộc tính Content nên có thuộc tính WebEditor thích hợp.
Generic Content modules được thiết kế để quản lý những đoạn code HTML ở khắp nơi trong trang web. Có thể sử dụng modules này bằng 2 cách:
Kéo 1 Generic Content control từ Sitefinity Toolbox vào 1 page và sửa content một cách trực tiếp ở trên trang đó.
Hình 2. 8 - Điều khiển nội dung (Generic Content)
Với News Module, chúng ta có thể đưa những tin tức mới vào website. Bạn sử dụng News module để đưa tin tức vào website và đặt một Newlist control vào 1 trang để hiển thị những nội dung.
Hình 2. 9 - Điều khiển Modul
Sitefinity cung cấp module blog giúp chúng ta quản lý blog ở trong website.Nó bao gồm một dãy các đặc trưng như tag cloud, RSS feeds, và có hỗ trợ cả comments.
Hình 2. 10 - Blog Module
Với list chúng ta có thể tạo và đưa ra những danh sách ở trong website. List module được sử dụng khi chúng ta đưa ra một danh sách thông tin của một chủ đề nào đó.
Hình 2. 11 - List Module
Với list chúng ta có thể tạo và đưa ra một cuộc điều tra online ở trong website. Sử dụng Poll module để vẽ một biểu đồ cuộc điều tra và thêm vào bất cứ trang nào ta muốn thông qua Poll box control.
Hình 2. 12 - Điều khiển Poll box
Khi tạo một forum với người cung cấp khác với người cung cấp mặc định ở trong Sitefinity, thì người cung cấp mới nên thừa kế lớp ForumProvider.cs.
2.3.6.1. Xây dựng module tích hợp vào Sitefinity:
CMS có thể được mở rộng bằng cách add thêm những module tự viết sử dụng ngôn ngữ .net hoặc VB, C#. Khi phát triển Sitefinity, có 2 cách chủ yếu Intra-Site Modules (có thể cài đặt trên tất cả những phiên bản Sitefinity). Pluggable Modules (chỉ có thể cài đặt trên sitefinity mà có hỗ trợ version của module architecture v.v. hoặc là một số các software 32bit, 64bit.
Xét ví dụ xây dựng một pluggable module trong sitefinity :
Gồm có những phần như sau:
Hình 2. 13 - Thành phần pluggable module
Những phần cần đặc biệt chú trọng:
Folder Student
Psoft.Student.Data
Psoft.Student
Xây dựng bám sát trên mối quan hệ chặt chẽ giữa module con tương ứng như ở biểu đồ dưới:
Hình 2. 14 - Mối quan hệ giữa các module
Psoft.Student.Data
Là một project khai báo bước đầu cơ sở dữ liệu. Các thuộc tính đối tượng cần quản lý ở đây là Student. Trong ví dụ này đối tượng Student gồm có các thuộc tính sau:
ID
Age
EntryDate
Name
Trong project này còn có một file là DefautProvider.cs Đây là nơi khai báo các query, các hàm làm việc với student. Bao gồm những hàm sau:
public override IList GetStudentAll()
public override IStudent GetStudentOne(int Id)
public override IStudent CreateStudent()
public override void SaveStudent(IStudent student)
public override void DeleteStudent(int Id)
public override void Initialize(string name, System.Collections.Specialized.NameValueCollection config)
Tiếp đến đó là một file Student.cs khai báo ở đây chỉ là cách thức làm việc với lớp Student.
Psoft.Student
Trung tâm của module nằm ở Project này.
File Istudent.cs Khai báo phương thức làm việc với đối tượng student
File StudentProvider.cs dưới sự quản lý của file StudentManager.cs nó là cầu nối liên kết giữa Psoft.Student và Psoft.Student.Data
Trong ví dụ này. Có tất cả 3 file ascx trong folder student. Tương ứng là 3 giao diện. Thì tại studentprovider cũng cần phải khai báo sử dụng tới 3 file trên. (trong region Fields và Initialization)
Khai báo lại những hàm đã có trong DefautProvider (trong region Methods)
Trong region Properties là cách thức lấy và trả dữ liệu về đối với từng Template.
File StudentManager.cs là file có quyền điều khiển StudentProvider.cs
Ở đây có tất cả 4 regions: Fields,Constructor,Methods,Properties. Đối với từng regions sẽ chịu trách nhiệm quản lý các regions ở file StudentProvider.
-Trong region Methods: Khai báo các chức năng của chương trình và trả về provider của từng chức năng đó.
-Trong region Constructor khai báo đối với StudentManager
-Trong region Properties: ??? copy and paste
File StudentModule: Khai báo thừa kế cấu trúc của WebModule, và trả về giá trị của student.(copy and paste)
Folder Webcontrol: bao gồm 3 folder con: Admin, Container, Template
Folder Template. Bao gồm 3 file tương ứng với 3 file trong folder giao diện Student. Thông thường 3 file này có thể lấy từ các ví dụ, copy and paste
Folder Container: Xây dựng các nút, các sự kiện trên giao diện, gọi đến các control sử lý các nút và sự kiện đó.Bao gồm 3 file :
-ComandPanelContainer.cs:trong ví dụ này ko xây dựng ComandPanel.
-StudentEditContainer.cs Xây dựng các nút, sự kiện. Bên cạnh đó gọi đến các control sử lí các nút trong giao diện EditStudent
-SutdentListContainer.cs chức năng tương tự như StudentEditContainer.
Folder Admin: Gồm có 2 file:
-CommandPanel.cs: trong ví dụ ko xây dựng chức năng tại file này
-ControlPanel.cs: có tất cả 5 regions
Fields: khai báo một kiểu hiển thị, biến trỏ selectStudent, và các Template, Container làm việc đến.
Constructor: khai báo xây dựng controlpanel
Methods: định nghĩa cách bliddata, tạo các khung nhìn view khác nhau.
Properties:các chế độ hiển thị, template edit student, hiển thị danh sách student dưới dạng list view
Events: xây dựng các chức năng các nút, sau khi ấn nút thì các form giao diện được gọi thế nào, trỏ đến đối tượng nào.
Chú ý: Ở đây kiến trúc của hệ thống module Psoft.Students là cấu trúc 3 lớp: gồm có lớp: giao diện, chức năng, cơ sở dữ liệu. Mọi thiết kế dựa trên mối quan hệ chặt chẽ giữa 3 lớp này với nhau.
Vấn đề bảo mật trong SiteFinity
Người sử dụng và vai trò của nhà cung cấp là luôn hỗ trợ công cụ cho nhau. Bạn có thể dễ dàng thông qua đó quản lý được thông tin người sử dụng cho trang web của mình.
Người sử dụng cho phép gán vai trò và cho phép chúng thực hiện những nhiệm vụ khác nhau, như là người quản trị. Người sử dụng có thẻ có nhiều hơn một vai trò.
Người sử dụng sitefinity được gán một hay nhiều nhiệm vụ. người quản trị thiết lập sự cho phép cho một trang web đã định sẵn bởi một nhóm vai trò chính thức của ngừơi sử dụng. Vai trò này trên cơ bản đã được thiết lập của những mối quan hệ nội dung trang web, như là trình soạn thảo, người phê chuẩn, hay nhà xuất bản. Những vai trò khác có thể cùng thuộc vai trò đó, như là những mối quan hệ chung.
Vài những cái chung không cho phép gán trên sự cho phép cơ bản của người sử dụng. Một người sử dụng được chỉ định sẵn vai trò của mình. Chỉ có người quản trị mới có thể quản lý vai trò.
Vai trò của người quản trị là tự động tạo ra với mỗi project Sitefinity mới, và theo mặc định, một người quản trị đựơc gán vai trò với sự cho phép chung. Vai trò này không thể xóa, cũng không thể cho người sử dụng sau nó.
Vai trò Everyone là một vai trò mới trong Sitefinity 3.1. Nó đã được đảm bảo thuộc về ngừời sử dụng. điều này là không thể thay đổi được. Vai trò này có ý nghĩa quan trọng bởi nó thiết lập sự khác nhau giữa tên đăng nhập ngừời dùng với không vai trò đặc biệt riêng nào và người sử dụng chưa đăng kí tên. Để tìm hiểu thêm là tại sao vai trò này lại quan trọng cho người sử dụng chung thì vào Public Users.
Adding Public Users
Hiện nay rất dễ dàng để đưa ra một login controls để thực hiện những chức năng tạo lập những users mới(CreateUser control), logging in (Login, LoginStatus),và rất nhiều nữa. Nó có thể truy cập vào hộp công cụ khi ở trong trang đang chỉnh sửa ở bộ phận CMS của Sitefnity.
Permissions
Có 2 loại của permissions, ta có thể giả dụ về public users: trang và forum permissions
Page Permissions
Một đoạn tìm(được bảo vệ) là sự thiết lập giữa những trang avaiable cho cho phép, ủy quyền những ngừơi sử dụng. Ở cái thứ tự đựơc tạo ra này như là một đọan trong website. Có những trang nên có những thuộc tính Anonymous access để thiết lập đến cái không thể . Cho phép Public users view đến các trang, một vai trò mới có thể đựơc tạo ra với giả dụ cho phép “view” tới các trang.
Vai trò mới “Everyone” có thể sử dụng cho trang permissions. Tất cả những đăng ký của người sử dụng có thể cho phép view một trang, và tất cả những cái không được phép truy cập tới nó. Sau đó vai trò “Everyone” nên granted view permissions. Những cái này có thể đựoc làm bởi người quản trị.
Forum Permissions:
Sự ngăn cách, tách rời những hành động cho phép không rõ tác giả và không xác thực của ngừời sử dụng, kì hạn Public users là có điều kiện. Điều này có thể sử dụng khi đồng ý cho phép cho Forums module, even nếu Deny anonymous authors thiết lập “yes”, người sử dụng có thể vẫn tạo threads và posts. Không giống nó, không rõ một người sử dụng nào, có thể không từ lúc đó, bởi mặc định, nó thuộc về những nhóm “anonymous authors”.
CMS Access:
Nếu một public user cố gắng truy cập vào cms administration, xem 403 exception. Khi có một role, với CMS Access cho phép thiết lập đến deny và một role với CMS Access cho phép thiết lập đến allow, nếu một ngừơi sử dụng thuộc về cả hai vai trò, deny sẽ được ứng dụng. Trong từng hoàn cảnh, 403 exception sẽ thrown lại lần nữa.
Điều đó sẽ không chỉ xảy ra trong một trường hợp của vai trò set to unrestricted.
Permissions là quyền lợi đựơc định nghĩa là dạng hoạt động của người sử dụng trang cho phép thực hiện. Permissions là đựơc thiêt lập bởi vai trò, ví dụ là tất cả những nội dung được soan thảo sẽ giống như là trang permissions. Nếu người sử dụng sitefinity không có một permissions. Họ có thể chỉ điều hứơng thông suốt cả website, có nhiều dạng của permissions.
Administrative Permissions:
Quyền lợi để quản lý người sử dụng và vai trò và cho phép trợ cấp tới chúng. Chỉ những ngừơi sử dụng có vai trò quản trị cho phép quản trị. Người có vai trò quản trị tự động tạo lập với mỗi Sitefinity project mới và đựơc mặc định là có một người quản trị trong vai trò là global permissions. Cái vai trò này không thể xóa, cũng như không thể dành cho người dùng sau nó.
Global Permissions:
Quyền lợi để truy cập công cụ đặc biệt ảnh hưởng đến nội dung của website. Global permissions thiết lập bởi role.
Một cái global permission mới là “CMSAccess” là phiên bản 3.1 của sitefinity. Nó làm cho người sử dụng có thể là với tư cách hội viên riêng lẻ, cung cấp cho cả hai public và administration của người sử dụng. Nếu permission không được thiết lập ở trạng thái đúng cho một vai trò đặc biệt. Người sử dụng nào thuộc về vai trò này không truy cập hết đến các administration section của Sifinity. Tuy nhiên, người sử dụng có thể đã được định sẵn quyền lợi truy cập đặc biệt tới pre-specified pages. (ví dụ quyền lợi view)
Modules Permissions:
Cho phép quản trị site điều khiển sự quản lý của controls thứ ba hỗ trợ chức năng.
Page Permissions:
Permissions đã được định sẵn đến một trang quản lý điều khiển của trang nội dung và trang điều khiển thông tin.
Live Pages Permissions:
Permissions mà ứng dụng cho người sử dụng có một vai trò public user. Những permissions được thiết lập nếu có một trang mà đựợc truy cập bởi thành viên của một vai trò public user hay là nếu một trang được khóa chặt thì nó sẽ bao gồm navigation controls, ví dụ RadTreeView và RadMenu controls.
Permission được lưu trữ trong cơ sở dữ liệu, bảng tên là sf_SecPermission. Theo một cách khác, từ phía lưu trữ dữ liệu trong XML file và sử dụng Sitefinity Security module để lưu trữ permission. Chỉ có một nhu cầu là các items với những sự cho phép có một ID của type Guid. Những tùy chọn khác là viết dữ liệu Sitefinity lưu trữ dữ liệu permission trong kho dữ liệu XML của database và vẫn sử dụng nó trong cả API của sitefinity và giao diện.
Kết luận
Với SiteFinity chúng ta có thể phát triển các website, các ứng dụng web một cách dễ dàng và đơn giản, giúp giảm thời gian chi phí. Ngoài ra với thiết kế mở chúng ta có thể chỉnh sửa, mở rộng cho nhiều mục đích khác nhau. Chương sau sẽ trình bày nhu cầu, ý tưởng và phân tích thiết kế một ứng dụng trên SiteFinity trong thực tế nhằm minh chứng cho sức mạnh của SiteFinity.
CHƯƠNG III: KHẢO SÁT VÀ PHÂN TÍCH BÀI TOÁN
Nội dung sẽ trình bày của chương này bao gồm:
Giới thiệu về bài toán
Khảo sát và phân tích bài toán
Thiết kế ứng dụng web của công ty chứng khoán
1 Giới thiệu về bài toán cần xây dựng
Với sự phát triễn ngày càng nhanh của kinh tế thị trường, thị trường chứng khoán đã có những bước tiến mạnh mẽ trong những năm trở lại đây. Vì vậy xây dựng hệ thống website để cập nhật, xử lý thông tin, mua bán trao đổi chứng khoán đang là một vấn đề cần thiết hiện nay.
Vì vậy bài toán được đặt ra đó là:
Xây dựng hệ thống Website quản trị nội dung, cung cấp các dịch vụ thông tin về báo giá chứng khoán, các dịch vụ nhận lệnh đặt và dịch vụ thông báo kết quả khớp lệnh cho các công ty chứng khoán thành viên.
2. Xác định vấn đề
Vấn đề cần đặt ra đối với một hệ thống Website TTCK là gì ?
Một hệ thống Website được xem là tốt thì điều đầu tiên cần phải nghĩ đến đó là kiến trúc của hệ thống. Một hệ thống được xem là hoạt động ổn định, có khả năng mở rộng phát triễn, thay đổi theo nhu cầu của thị trường, khách hàng thì cần phải có một kiến trúc hệ thống tốt, rõ ràng. Hệ thống Website TTCK cũng không phải là ngoại lệ.
Để người sử dụng có thể đặt lệnh trực tiếp thông qua hệ thống thì đòi hỏi hệ thống phải có độ xác thực và bảo mật cao.
Về cơ sở dữ liệu, đây không phải là một bài toán về cơ sở dữ liệu lớn. Nhưng đòi hỏi độ bảo mật cao.
3. Phân tích yêu cầu bài toán
3.1.Tin chứng khoán :
Cung cấp các tin tức liên quan đến tình hình kinh tế thị trường trong nước cũng như những thông tin quốc tế ảnh hưởng đến nền kinh tế toàn cầu nói chung và nước ta nói riêng. Nhằm giúp nhà đầu tư có cái nhìn tổng thể về tình hình phát triển của thị trường.
3.2.Tin công ty :
Thông tin liên quan đến chỉ một công ty mà nhà đầu tư lựa chọn quan tâm. Phần này có 3 mục để lựa chọn quan tâm :
Những tin mới nhất
Những tin host
Những tin nhiều người xem nhất
3.3.Tin công ty niêm yết:
3.3.1. Công ty :
3.3.1.1. Tổng quan công ty :
Cung cấp thông tin về giá cổ phiếu trong ngày như : giá mở cửa, giá đóng cửa, dư mua, khối lượng khớp, giá cao nhất ,…Những số liệu này được tự động cập nhật.
Các chỉ số của công ty :
Giá thấp nhất
Giá cao nhất trong 5 tuần
Thị giá vốn
Số cổ phần đang lưu hành
Tỷ lệ cổ tức trên mệnh giá
Ngày chốt quyền
Ngày trả cổ tức
EPS : Earning per Share (Chỉ số thu nhập trên một đơn vị cổ phiếu) =(Lợi nhuận dòng – Tổng cổ tức ưu đãi) / Tổng cổ phiếu thường
ROA : Return On Equity (Lợi nhuận trên vốn) = Lợi nhuận dòng / Vốn sở hữu (Vốn cổ phần của cổ đông)
Đòn bẩy TC :
P/E : Price to Earning Ratio (Chỉ số thị giá chia cho thu nhập của mỗi cổ phần) = PM/EPS (PM – Market Price)
Beta :Đo độ bất ổn tương đối của một loại cổ phần
Khối lượng trung bình 10 ngày
Biểu đồ :
Hình 3. 1 - Biểu đồ giá
3.3.1.2. Hồ sơ doanh nghiệp :
Hồ sơ doanh nghiệp gồm có :
Tên công ty và địa chỉ : tên pháp định, tên quốc tế, viết tắt, trụ sở chính,
website, điện thoại, fax
Chi tiết doanh nghiệp : thành viên của TTGD, lĩnh vự kinh doanh, ngành nghề kinh doanh, số chi nhánh, số nhân viên
Ban lãnh đạo : tên , chức vụ
Lịch sử hình thành
Lĩnh vực kinh doanh
Vị thế công ty
Chiến lược phát triển và đầu tư
3.3.1.3. Thống kê cơ bản :
Đưa thông tin liên quan đến khái quát của công ty
chỉ tiêu tài chính (chỉ số định giá)
P/E (4 quý trước)
P/S (4 quý trước)
P/B
EPS (4 Quý trước)
Chỉ số cơ bản
Quy mô
Tổng cộng tài sản
Vốn chủ sở hữu
Doanh thu thuần
Thị giá vốn
Tăng trưởng
Tăng trưởng EPS (3 năm trước)
Tăng trưởng tài sản
Tăng trưởng doanh thu
Khả năng tài chính
Đòn bảy tài chính
TSCĐ / Vốn CSH
Khả năng sinh lời
ROA
ROE
Tỷ lệ lãi gộp
Tỷ suất lãi từ hoạt động kinh doanh
Tỷ suất lợi nhuận sau thuế
EBITDA
EBIT
Hiệu quả kinh doanh
Vòng quay hàng tồn kho
Vòng quay tổng tài sản
Thông tin quyền cổ đông
Ngày chốt quyền
Tỷ lệ
Kiểu
Báo cáo tài chính tóm tắt (Bảng Cân đối Kế toán)
Tài sản ngắn hạn
Tài sản dài hạn
Nợ phải trả
Vốn chủ sở hữu
Tổng cộng nguồn vốn
Báo cáo Kết quả Hoạt động kinh doanh
Doanh thu thuần
Giá vốn hàng bán
Lợi nhuận gộp
Lợi nhuận thuần từ hoạt động kinh doanh
Tổng lợi nhuận kế toán trước thuế
Lợi nhuận sau thuế thu nhập doanh nghiệp
3.3.1.4. Cáo bạch báo cáo tài chính :
Đầy đủ thông tin về các bản cáo bạch của công ty .Mỗi bản cáo bạch phải có thời gian đăng bản cáo bạch, tình trạng bản cáo bạch,…
3.3.2. Quyền sở hữu :
3.3.2.1. Cổ đông chính :
Thông tin về cơ cấu cổ đông như phần trăm sở hữu nhà nước, sở hữu nhà đầu tư nước ngoài và tỷ lệ các sở hữu khác. Ngoài ra còn phải có thông tin cụ thể về các cổ đông lớn (Họ tên, số cổ phần, chức vụ,..). Bởi đó là những người có tầm ảnh hưởng đến tình hình biến động giá cổ phiếu của công ty. Mỗi thông tin về họ có thể ảnh hưởng đến thị trường của cổ phiếu đó. Ví dụ một vị chủ tịch sở hữu 20% cổ phần của công ty bỗng dưng tuyên bố bán ra 4% thì điều gì sẽ xảy ra? Chắc chắn nếu không có một thông tin khác quá quan trọng ảnh hưởng đến sự tăng giá thì cổ phiếu đó sẽ giảm giá không phải là nhỏ.
3.3.2.2. Giao dịch nội bộ :
Thường thì những vụ giao dịch nội bộ sẽ không ảnh hưởng nhiều đến giá cả cổ phiếu đó, Trừ khi lượng giao dịch quá lớn và với mức giá chênh nhiều so với giá cổ phiếu đang giao dịch trên sàn. Do vậy cũng cần có thông tin về tên người giao dịch, chức vụ, số cổ phần giao dịch và giá của nó.
3.3.3. Công bố thông tin :
Phần thông tin được công bố này sẽ nằm trong mục tin tức. Gồm có tin thị trường và sự kiện doanh nghiệp
3.3.4. Biểu đồ kỹ thuật :
Đây là phần không thể thiếu của một trang web chứng khoán. Các biểu đồ để nhà đầu tư phân tích về tình hình giá, biên độ giao động. lượng giao dịch trong lịch sử,…
Biểu đồ gồm có: Biểu đồ cơ bản, biểu đồ kỹ thuật, biểu đồ nâng cao
3.3.5. Báo cáo tài chính :
Gồm bảng cân đối kế toán và báo cáo kết quả kinh doanh:
Bảng cân đối kế toán : Tên các mục tài chính, số tiền, thời gian
Báo cáo kết quả kinh doanh : Tên các mục kinh doanh, số tiền, thời gian
3.3.6. Truy vấn giá :
Giúp nhà đầu tư tìm nhanh giá và các thông tin liên quan đến giao dịch của cổ phiếu đó. Có thể tìm kiếm theo mã CK, theo thời gian. Thông tin hiển thị sẽ là ngày giao dịch, phần trăm thay đổi tăng giảm, giá mở cửa, giá cao nhất, …
4. Đặc tả của một số use case chính đối với người sử dụng :
Hình 3. 2 - Sơ đồ use case đối với người sử dụng
4.1. Usecase xem thông tin báo giá chứng khoán
Mô tả:
usecase thực hiện khi nhà đầu tư muốn xem bảng báo giá chứng khoán hiện tại
Dòng sự kiện chính:
Nhà đầu tư yêu cầu xem báo giá chứng khoán
Hệ thống truy vấn thông tin báo giá chứng khoán từ TTGDCK.
Hệ thống hiển thị kết quả bảng báo giá và kết thúc usecase.
4.2. Usecase xem kết quả khớp lệnh
Mô tả:
usecase thực hiện khi nhà đầu tư muốn xem danh sách các lệnh giao dịch đang chờ khớp.
Dòng sự kiện chính:
Công ty chứng khoán gửi mã cổ phiếu cần xem kết quả khớp lệnh.
Hệ thống gửi trả danh sách các lệnh đang khớp của loại chứng khoán trong ngày giao dịch hiện tại.
4.3. Usecase xem tìm kiếm thông tin các công ty niêm yết
Mô tả: usecase thực hiện khi nhà đầu tư tìm kiếm trong danh mục các công ty đang niêm yết chứng khoán.
Dòng sự kiện chính:
Nhà đầu tư được yêu cầu nhập vào điều kiện tìm kiếm các công ty niêm yết. Điều kiện tìm kiếm theo mã chứng khoán, và theo tên công ty.
Hệ thống lấy thông tin về các công ty chứng khoán từ TTGDCK.
Hệ thống hiện thị thông tin về công ty niêm yết cho nhà đầu tư.
Đặc tả một số use case chính ở phần quản trị hệ thống:
5. Thiết kế cơ sở dữ liệu :
5.1. Các bảng CSDL về thông tin công ty:
Bảng CI_CompanyInfo
Tên thực thể
Thông tin công ty
Mô tả
Thông tin của công ty phát hành cổ phiếu
Cấu trúc
TT
Tên trường
Khóa
Giải thích
01
ID
PK
Khóa chính tự tăng
02
StockCode
FK
Mã chứng khoán
03
VietnameseName
Tên pháp định
04
InternationalName
Tên quốc tế
05
Abbreviation
Viết tắt
06
Telephone
Điện thoại
07
Fax
Fax
08
Website
website
09
BranchNumber
Số chi nhánh
10
EmployeeNumber
Số nhân viên
11
MarketCap
Thị giá vốn : giá trị công ty được xác định bởi giá thị trường đối với các cổ phiếu thường đã phát hành.
12
ShareOutstanding
Số cổ phần đang lưu hành
13
EPS
Earning per Share : Chỉ số
thu nhập trên một đơn vị cổ phiếu.
Công thức :
= (Lợi nhuận ròng - Tổng cổ
tức ưu đãi)/Tổng cổ phiếu thường
14
ROE
Return On Equity : Lợi nhuận trên vốn
= Lợi nhuận dòng trên / vốn sở hữu
(vốn cổ phần của cổ đông)
15
PE
P/E (Price to Earning Ratio) Chỉ số thị
giá chia cho thu nhập của mỗi cổ
phần = PM/EPS (PM là Market Price)
16
ROA
Return on Assets : Lợi nhuận trên tài
sản
= Lợi nhuận dòng sau thuế / Tổng
giá trị tài sản
17
PS
P/S: Thị giá/doanh thu trên một cổ
phiếu
18
PB
Price-to-Book ratio: P/B = Giá cổ
phiếu/ (Tổng giá
trị tài sản – tài sản vô hình và nợ)
* Giá trị cổ phiếu tính từng ngày
19
20
Leverage
Chỉ số đòn bẩy : Sử dụng nguồn tài
trợ từ các
khoản vay thay cho vốn cổ phần
21
Beta
Đo độ bất ổn tương đối của một
loại cổ phần
22
DividendYield
Tỷ lệ cổ tức / mệnh giá
23
Ex_DividendDate
Ngày chốt quyền
24
DividendPayableDate
Ngày trả cổ tức
25
FixedAssetDivideEquity
Tài sản cố định trên vốn chủ sở hữu
26
GrossProfitMargin
Tỉ lệ lãi gộp
27
OperatinMargin
Tỉ suất lãi từ hoạt động kinh doanh
28
NetMargin
Tỉ suất lợi nhuận sau thuế
29
EBITDA
EBITDA = doanh thu - các khoản chi
phí (trừ tiền trả lãi, thuế, khấu hao)
30
EBIT
thu nhập của doanh nghiệp trước khi
tính các khoản tiền lãi và thuế thu
nhập
EBIT = Thu nhập - Chi phí hoạt động
31
InventoryTurnover
Vòng quay hàng tồn kho
32
TotalAssetTurnover
Vòng quay tổng tài sản
33
IndustryCode
Mã ngành nghề kinh doanh
Lấy Trong bảng : sys_ListCommon_Lang với type là IND
: Ngành nghề kinh doanh
LanguageCode là VI
34
TypeFloor
Loại sàn giao dịch :
Lấy trong bảng : sys_ListCommon_
Lang với type là TFL : Loại sàn giao dịch
LanguageCode là Vi
35
Sector
Lĩnh vực kinh doanh:
Lấy trong bảng : sys_ListCommon_Lang với type là SEC : Lĩnh vực kinh doanh
LanguageCode là Vi
36
IsActivated
Còn hoạt động hay không :
1 : hoạt động
0 : Không hoạt động
Bảng 3. 1 – Bảng CI_CompanyInfo Thông tin công ty
Bảng CI_CompanyLang
Tên thực thể
Thông tin công ty với các ngôn ngữ
Mô tả
Lưu thông tin của công ty với các ngôn ngữ khác nhau
Cấu trúc
TT
Tên trường
Khóa
Giải thích
01
ID
PK
Khóa chính tự tăng
02
LanguageCode
FK
Mã ngôn ngữ
03
CompanyID
FK
Khóa công ty
04
History
Lịch sử hình thành (nội dung)
05
MainBusiness
Lĩnh vực kinh doanh (nội dung)
06
MarketPosition
Vị thế công ty (nội dung)
07
[Plan]
Chiến lược phát triển công ty(nội dung)
08
Headquarter
Trụ sở chính
Bảng 3. 2 - Bảng CI_ConpanyLang Thông tin công ty với các ngôn ngữ
Bảng CI_Leader
Tên thực thể
Ban lãnh đạo
Mô tả
Quản lý ban lãnh đạo của công ty niêm yết
Cấu trúc
TT
Tên trường
Khóa
Giải thích
01
ID
PK
Khóa chính tự tăng
02
LanguageCode
FK
Mã ngôn ngữ
03
CompanyID
FK
Khóa công ty
04
Name
Tên lãnh đạo
05
[Position]
Chức vụ lãnh đạo
Bảng 3. 3 - Bảng CI_Leader Ban lãnh đạo
Bảng SYS_Language
Tên thực thể
Thông tin ngôn ngữ
Mô tả
Thông tin các ngôn ngữ
Cấu trúc
TT
Tên trường
Khóa
Giải thích
01
Code
PK
Mã ngôn ngữ
02
Name
Tên ngôn ngữ
03
Description
Mô tả
04
PathFile
Đường dẫn file config
05
IsActivated
Có hoạt đông hay không
Bảng 3. 4 - Bảng SYS_Langluage Thông tin ngôn ngữ
Bảng CI_AuthorityShareholder
Tên thực thể
Thông tin quyền cổ đông
Mô tả
Thông tin về việc trả cổ tức, họp cổ đông, Bán ưu đãi,...
Cấu trúc
TT
Các file đính kèm theo tài liệu này:
- BanIn.doc