Thứ Tư, 27 tháng 10, 2010

Tính năng 01 : Đăng tin bài


Hôm nay tôi cùng với các bạn xây dựng tính năng đầu tiên của KaizenCMS, tính năng : Đăng tin bài mới. Triết lý của tôi rất đơn giản, không cần phải viết từ đầu, nếu thiên hạ đã có những giải pháp miễn phí, không vướng mắc về bản quyền, thì nên tận dụng, nhưng tận dụng cái gì phải hiểu cái đó, hiểu sâu sắc để tránh các rủi ro không cần thiết.

1. Thế nào là đăng tin/bài ?
- Bạn muốn thông báo cho các học sinh lớp 12A5 ngày cuối tuần sẽ đi dã ngoại tại Hoài Hương - Bình Định, lúc đó bạn cần soạn một thông báo, gửi lên mạng cho mọi người đọc, đó là đưa tin bài.

2. Đưa tin/bài trong KaizenCMS
Bước 1 : Soạn tin/bài trong word, bạn tự do định dạng, thừa sức sáng tạo cho nội dung, ...
Bước 2 : Lưu tin/bài dưới định dạng html
Bước 3 : Upload tin/bài này lên KaizenCMS
Bước 4 : Chọn tin bài, chọn xuất bản, bài viết sẽ hiển thị

3. Cơ sở dữ liệu
Trước tiên chúng ta cần phải thiết kế một CSDL liệu nhỏ cho các tính năng hiện có đến thời điểm này. Cơ sở dữ liệu này được thiết kế như sau :


Bảng Folders
- Id : Duy nhất, khóa
- FolderName : Tên thư mục
- CreateBy : Người tạo thư mục
- CreateDate : Ngày tạo thư mục


Bảng Files
Lưu trữ danh sách các file được upload lên hệ thống, thông tin của mỗi một file như thế sẽ bao gồm :
- Id : (Khóa), sẽ là duy nhất
- FileName : (Tên file), là tên của file ban đầu upload lên
- FilePath : Đường dẫn lưu file
- UploadDate : (Ngày upload), là ngày đưa lên hệ thống
- Uploader : Người upload lên hệ thống.
- FileSize : Kích thước file, tính theo MB
- FileType : Định dạng file (doc, docx, ...)




Trước mắt chúng ta cần hai bảng này, sau này bổ sung thiết kế sau.





4. Tham khảo
Địa chỉ này dùng để tham khảo về cách sử dụng jquery và xây dựng giao diện cho phần upload, tương đối ổn, tuy nhiên cần phải chỉnh sửa lại một chút trong phần UploadController, bạn có thể xem thêm mã nguồn của dự án để thấy cách chỉnh sửa trên thực tế.

Chủ Nhật, 24 tháng 10, 2010

Phần 1 : Một số kỹ thuật & bài viết tham khảo chuẩn bị cho KaizenCMS

Tài liệu tham khảo

1. Opening a Word Document in ASP.Net MVC Application
Bài viết này sơ bộ giới thiệu cách đọc nội dung và định dạng hiển thị cho các file word trong các ứng dụng ASP.NET MVC. Tuy nhiên, tôi cho rằng tiêu đề này không thực sự phù hợp lắm và cần phải chỉnh lại tiêu đề là : "Nhúng tài liệu html vào ứng dụng ASP.NET MVC", bởi nội dung của nó xoay quanh việc hướng dẫn chuyển các file word sang html, sau đó đọc, xử lý và hiển thị nội dung của các file này. Bạn đọc có thể tham khảo chi tiết nội dung và mã nguồn thông qua địa chỉ sau :
Link : http://www.c-sharpcorner.com/UploadFile/dhananjaycoder/worddocumentinaspnetmvc07222009071101AM/worddocumentinaspnetmvc.aspx

2. Galler Server Pro
GSP là một trong những dự án mã nguồn mở thú vị nhất trên nền tảng công nghệ của Microsoft.

Link : http://www.galleryserverpro.com/open-source-photo-and-video-web-gallery.aspx

1. Chọn lựa trình soạn thảo nội dung : FCKeditor.NET
FCKeditor.NET, là một trong những trình soạn thảo nội dung phổ biến nhất cho các dự án CMS, bản thân FCKeditor.NET là một dự án mã nguồn mở, nên nó rất được ưa chuộng.


2. Hiển thị mã HTML


HtmlHelper






3. Một số tham số cần cấu hình web.config cho các dự án CMS


<httpRuntime requestValidationMode="2.0" />



Giới thiệu dự án KaizenCMS

1. MỞ ĐẦU
Kaizen được ghép từ hai từ tiếng Nhật: Kai - "Thay đổi” và Zen - "Tốt hơn", nghĩa là "Thay đổi để tốt hơn" hoặc "Cải tiến liên tục". Kaizen là một trong những từ khóa tôi rất yêu thích, bởi nó ngắn gọn, xúc tích và hàm chứa cả một triết lý về khoa học quản lý mà tôi đang cố áp dụng tại BIDC - Ngân hàng Đầu tư và Phát triển Campuchia, nhằm xây dựng một hệ thống CNTT đủ thông minh, đủ linh hoạt để phục vụ yêu cầu kinh doanh trong thời đại mới - Thời đại của kinh tế trí thức.
KaizenCMS là dự án mã nguồn mở, hướng tới việc xây dựng một Hệ quản trị nội dung toàn diện, dựa trên nền tảng công nghệ của Microsoft, bao gồm ASP.NET MVC, SQL Server 2008, ... Tên của dự án, KaizenCMS là một cách chơi chữ nhằm ghép nối hai cụm từ KaizenCMS nhằm nhắc nhở chúng ta phải liên tục nghiên cứu, cải tiến dự án để từng bước xây nên một giải pháp CMS xứng tầm cho người Việt.

2. NGỮ CẢNH ỨNG DỤNG CỦA KaizenCMS
Dự án KaizenCMS này trước tiên dựa trên những yêu cầu thực tế trong công tác nghiên cứu và ứng dụng CNTT nhằm đẩy mạnh quá trình Tin học hóa cho BIDC - Ngân hàng Đầu tư và Phát triển Campuchia. Do đó cách đơn giản để hiểu được KaizenCMS là gì, tại sao phải sử dụng nó, sử dụng nó có lợi ích gì, ... chúng ta nên xem xét KaizenCMS trong ngữ cảnh ứng dụng của một Ngân hàng.

2.1. Các yêu cầu từ BIDC
Tôi đang đảm nhiệm vai trò của một IT Manager, hay nói một cách khác tôi chính là một CIO của Ngân hàng (BIDC). BIDC là đơn vị mới thành lập, tuổi đời chưa quá một, nền tảng công nghệ bắt đầu từ con số 0, nhân sự tản mác tuyển dụng từ khắp nơi, không ổn định và chưa xây dựng được nền tảng các mối quan hệ và cơ sở truyền thông nội bộ.

Quản lý tri thức
Tôi muốn tập trung tri thức của BIDC lại, xây dựng nó thành một cơ sở dữ liệu tri thức, phục vụ nhu cầu nghiên cứu, đào tạo nội bộ, ...

3. KaizenCMS 1.0
Tại phiên bản đầu tiên, tôi dự định ban đầu KaizenCMS chỉ cần có các tính năng chính sau đây :
3.1. Nền tảng công nghệ
- Microsoft .NET Framework 4.0
- Microsoft Visual Studio 2010
- ASP.NET MVC 2.0
- Microsoft SQL Server 2008
- Design Patterns (GoF)
- Tier Architectures
- CSS
3.2. Thiết kế Cơ sở dữ liệu
- Membership & Roles
- Database module : Customers
- Database module : Contents
- Database module : Files

3.3. Module
- Web services
- Rss
- Email

4. Tính năng
4.1. Soạn thảo và đăng tin/bài mới
Trước tiên, tri thức số sẵn có thường được lưu trữ dưới dạng file, có thể là các file với định dạng thông dụng từ Microsoft Office, pdf, zip, video, html, ... Do đó mục tiêu đầu tiên là cần phải tổ chức : (1) Thu thập, (2) Xử lý, (3) Lưu trữ, (4) Trình bày các dạng file/tài liệu này một cách thống nhất, thân thiện với người dùng, ...

4.2. Chỉnh sửa, cập nhật tin/bài cũ


4.3. Xóa tin/bài

4.4. Xuất bản tin/bài

4.5. Phân loại tin/bài


4.6. Đăng ký nhận tin/bài qua email
Chiến lược của tôi là hội tụ công nghệ xung quanh mỗi cá nhân, triết lý này có thể diễn giải bình dân hơn : "Có gì mới báo tôi ngay". Tính năng Đăng ký nhận tin/bài qua email cũng là một trong những tính năng quan trọng nhằm phục vụ mục tiêu này.

4.7. Upload files : doc, docx, xls, xlsx, zip, rar, video, ...


4.8. Download files


4.9. Chỉnh sửa thông tin files

5. Quản lý mã nguồn
Sử dụng codeplex.com