Thứ Hai, 25 tháng 2, 2013

CMS - Hệ Thống Quản Trị Nội Dung


CMS - Hệ Thống Quản Trị Nội Dung

Chúng ta đã từng nghe đến các CMS hoặc đã xài qua các CMS, hiện nay các CMS được sử dụng rất nhiều và rộng khắp trên thế giới. Vì vậy việc chọn CMS cho việc quản lý nội dung cho website trên môi trường internet rất nhanh chóng và dễ dàng triển khai.

CMS là gì?

CMS là chữ viết tắt của Content Management System dùng cho việc quản lý, chỉnh sửa, cập nhật nội dung, hình ảnh, lưu trữ dữ liệu… trên nền internet. Các CMS được thiết kế dùng cho những việc sau:
- Cho phép người dùng đóng góp và chia sẻ dữ liệu, lưu trữ dữ liệu trên internet.
- Kiểm soát truy cập dữ liệu, dựa trên vai trò người dùng (xác định thông tin người dùng hay nhóm người sử dụng có thể xem, chỉnh sửa, xuất bản …).
- Giúp dễ dàng lưu trữ và phục hồi dữ liệu.
- Giúp dễ dàng chia sẽ thông tin, hình ảnh … giữa những người sử dụng.
- Bao gồm các công cụ giúp cho việc tìm kiếm, quản lý phiên bản (version) và phát hành thông tin, định dạng thông tin một cách nhanh chóng và dễ dàng.

CMS có những dạng nào?

Hệ Thống Quản Lý Nội Dung Cấp Doanh Nghiệp (ECM)

Một ECM (Enterprise Content Management systems) là hệ thống quản lý nội dung dành cho cấp doanh nghiệp, tổ chức lớn … Sử dụng để quản lý nội dung, tài liệu, chi tiết và hồ sơ liên quan đến các quá trình tổ chức của một doanh nghiệp. Mục đích và kết quả là quản lý nội dung thông tin trong cấu trúc của tổ chức, với sự đa dạng của tất cả các định dạng và vị trí. Hệ thống quản lý nội dung liên quan đến các tổ chức thương mại.

Hệ Thống Quản Lý Nội Dung Web (WCM)

Một WCM (Web Content Management systems) là một hệ thống CMS được thiết kế để đơn giản hóa việc xuất bản nội dung đến các trang web và các thiết bị di động ... Đặc biệt cho phép người dùng soạn thảo nội dung và gửi nội dung mà không đòi hỏi kiến thức kỹ thuật về HTML hoặc tải lên các tập tin. Một số nội dung dựa trên hệ thống quản lý web tồn tại cả trong các mã nguồn mở và các lĩnh vực thương mại.

Nhóm Hệ Thống Quản Lý Nội Dung Web (GMS)

GMS (web Group content Management Systems) rất giống với WCM, với sự khác biệt chính là việc thực hiện một số yêu cầu cụ thể. Những yêu cầu này nhằm mục đích để đáp ứng nhu cầu của các nhóm, tổ chức nhỏ thường gặp khó khăn trong việc quản lý hình ảnh trực tuyến của họ giao tiếp với các thành viên của họ và các sự kiện, kế hoạch, lịch trình và phân công nhiệm vụ cho các dự án nội bộ. Thông thường những công việc này được phân phối bởi công cụ khác nhau và GMS hợp nhất chúng lại thành một.

Component Hệ Thống Quản Lý Nội Dung (Component Content Management System)

Trong một hệ thống quản lý nội dung, nội dung được lưu trữ và quản lý ở các tài liệu phụ (hoặc thành phần) để sử dụng lại.

Một số CMS hiện nay đang được ưa chuộng

Lợi ích sử dụng css


CSS là gì?
CSS là viết tắt của từ Cascading Style Sheet. CSS là ngôn ngữ định dạng cho các tài liệu được viết bằng HTML, XHTML, ...
CSS dùng để làm gì?
CSS dùng để định dạng các đối tượng trên website như: văn bản, hình ảnh, table, ... Bạn chỉ cần tạo ra một mẫu định dạng cho đối tượng rồi áp dụng chúng cho các đối tượng cùng loại mà không hề phải định dạng lại.
  1. Tăng tốc độ website.Thời gian load một website sẽ nhanh hơn. Dung lượng của một trang web sẽ nhẹ hơn 50% so với cách làm cổ điển.
    Theo cơ sở của DOM thì:
    - Table: web browser phải load cả <table>…</table> thì mới có thể dựng thành DOM tree và hiển thị ra màn hình.
    - Div: chỉ cần load <div>..</div> là đã có thể dựng được DOM tree và hiển thị.
    Như vậy, quá trình hiển thị 1 trang table-less sẽ nhanh hơn 1 trang table. Hơn nữa, cùng 1 cấu trúc nhưng DOM tree của table sẽ lớn và phức tạp hơn của div rất nhiều, điều này cũng ảnh hưởng đến bộ nhớ và tốc độ xử lý của browser.
    Chưa kể, cùng 1 trang nhưng nếu dùng table thì code HTML sẽ lớn hơn dùng div. Code CSS có dùng div có thể sẽ lớn hơn, nhưng CSS được load 1 lần, sau đó được cache trên client.
  2. Thời gian phát triển website nhanh hơnThông qua một thao tác về thiết kế: thay đổi CSS, thì hàng ngàn trang web sẽ được thay đổi theo.
  3. Dễ kiểm soát thông qua vị trí các thành phần trên web. iệc đánh ID trên từng thẻ DIV, sẽ dễ dàng hơn
  4. Các trang web tách biệt phần thiết kế và nội dung.
  5. Thể hiện 1 phông cách chuyên nghiệp

LINQ là gì


LINQ là gì

LINQ là gì
1. LINQ là gì ?
Để giảm gánh nặng thao tác trên nhiều ngôn ngữ khác nhau và cải thiện năng suất lập trình, Microsoft đã phát triển giải pháp tích hợp dữ liệu cho .NET Framework có tên gọi là LINQ (Language Integrated Query), đây là thư viện mở rộng cho các ngôn ngữ lập trình C# và Visual Basic.NET (có thể mở rộng cho các ngôn ngữ khác) cung cấp khả năng truy vấn trực tiếp dữ liệu Object, CSDL và XML.
LINQ là một tập hợp các thành phần mở rộng cho phép viết các câu truy vấn dữ liệu ngay trong một ngôn ngữ lập trình, như C# hoặc VB.NET.
LINQ là từ viết tắt của “Language-Integrated Query”
2. Tôi cần có gì để lập trình LINQ ?
LINQ có từ bản .NET 3.5, vậy nên tối thiểu chương trình của bạn phải chạy trên nền tảng này.
Visual Studio 2008, hoặc các phiên bản Express của nó là các bộ công cụ phát triển tiêu biểu cho ứng dụng dùng LINQ.
Tải về Visual Studio 2008 tại đây.
Tải về Visual Studio Express tại đây.
3. LINQ và ADO.NET khác nhau chỗ nào ?
Nôm na, LINQ là tập mở rộng cho phép viết các câu truy vấn ngay trong các ngôn ngữ lập trình. Nó cho phép bạn làm việc với các kiểu tập hợp dữ liệu, như XML, collection, array,… và cả CSDL.
ADO.NET là công nghệ cho phép các ứng dụng có thể kết nối và làm việc với các loại CSDL khác nhau (truy vấn, cập nhật, thêm, xóa, gọi thủ tục…).
Bản thân LINQ không phải là một công nghệ được tạo ra để thay thế ADO.NET, bạn có thể làm việc với LINQ mà không dính gì đến CSDL. Tuy nhiên, LINQ to SQL, là một phần mở rộng của LINQ, cho phép bạn có thể làm việc được với CSDL SQL Server, trong trường hợp này thì khi viết bạn có thể bỏ qua các câu lệnh ADO.NET mà chỉ quan tâm tới cú pháp mà LINQ cung cấp.
Nhớ rằng dù bạn không hề dùng đến ADO.NET khi viết chương trình sử dụng LINQ to SQL, nhưng đằng sau nó, ADO.NET vẫn được dùng để thực hiện kết nối, gửi các câu lệnh, các lời gọi thủ tục…
4. LINQ có hỗ trợ Unicode không ?
Có, LINQ là một thành phần của .NET, và như vậy, LINQ hỗ trợ Unicode một cách hoàn toàn tự nhiên, bạn có thể làm các thao tác chèn, sửa dữ liệu với tiếng Việt mà không cần cấu hình thêm. Tất nhiên, khi thiết kế CSDL, bạn vẫn phải chọn kiểu dữ liệu (NVARCHAR) và collation phù hợp để LINQ có thể làm việc một cách đúng đắn.
5. Tôi không thể tìm thấy một số phương thức (Add, RemoveAll…) như các ví dụ trong loạt bài “LINQ to SQL”
Kể từ bản RTM, các phương thức dùng cho thêm và xóa entity đã được đổi tên, cụ thể như sau:
  • Add đổi thành InsertOnSubmit
  • AddAll đổi thành InsertAllOnSubmit
  • Remove đổi thành DeleteOnSubmit
  • RemoveAll đổi thành DeleteAllOnSubmit
6. SQL và LINQ khác nhau thế nào?
SQL chỉ được dùng để truy vấn dữ liệu trong các CSDL dạng quan hệ, nếu muốn truy cập các dạng dữ liệu khác như HTML, XML v.v… thì đây là điều không thể đối với SQL và có thể đối với LINQ. Do đó có thể nói đây là 1 ưu điểm khác của LINQ mà SQL không có.
Ưa điểm của LINQ
Trước hết: tôi xin nói về quy luật cơ bản trong lập trình là dữ liệu phải nằm trong bộ nhớ chính. Do đó khi cần dữ liệu chúng ta phải dùng cách nào đó để đưa dữ liệu vào bộ nhớ (đọc text file, truy vấn từ database …). Trong môi trường .NET, dữ liệu trong bộ nhớ thường được thể hiện ở dạng các đối tượng và trước LINQ, chúng ta không có cách nào để móc nối các đối tượng hay thực hiện bất kỳ thao tác truy vấn nào. LINQ chính là giải pháp cho vấn đề này.
Thứ 2: Trước đây, cách phổ biến nhất để ứng dụng lấy dữ liệu từ các hệ cơ sở dữ liệu (CSDL) là sử dụng SQL (Structure Query Language – ngôn ngữ truy vấn cấu trúc). SQL có cú pháp rất khác với những ngôn ngữ lập trình phổ dụng như C# và VB.NET, do vậy bạn phải nhọc công “hàn gắn” hai thực thể khác biệt này với nhau trong mỗi dự án phần mềm. LINQ ra đời để giảm gánh nặng thao tác “hàn gắn” trên nhiều ngôn ngữ khác nhau.
Thứ 3: Một vấn đề khác với SQL là nó chỉ dùng để truy vấn dữ liệu trong các CSDL dạng quan hệ. Nếu muốn truy cập dữ liệu XML hay dạng khác (như trang HTML, email…), bạn lại phải sử dụng cú pháp truy vấn khác (XPath/XQuery). Cách giải quyết vấn đề tốt nhất hiện nay là LINQ

Thứ 4: Về vấn đề “Error” chúng ta không lập trình tương tác với CSDL tại cấp độ native language. Vì thế lỗi thường khó phát hiện rõ. Khó khăn trong việc quản lý lỗi xảy ra.
Thứ 5: Về vấn đề cú pháp truy vấn thì trước khi có LINQ chúng ta chưa có 1 cú pháp chung nào cho truy vấn dữ liệu từ những nguồn khác nhau. Với LINQ nó sẽ cung cấp cách duy nhất để truy cập dữ liệu từ bất kể nguồn dữ liệu nào với cú pháp giống nhau. Ngoài ra cách viết dễ dàng cho việc đọc và phân tích. Trường hợp này sẽ được thể hiện rõ ràng khi chúng ta cần lọc những dữ liệu với nhiều điều kiện phân cấp khác nhau thì LINQ sẽ thể hiện rõ tính ưu việt của mình. LINQ cũng cung cấp những bộ lọc, sắp xếp thứ tự, nhóm dữ liệu với khối lượng code tối thiểu nhưng vẫn bảo đảm tính rõ ràng.
7. Truy vấn LINQ
LINQ hỗ trợ loại dữ liệu IEnumerable <T>. Những đối tượng hỗ trợ IEnumerable <T> và IQueryable(T) được gọi là queryable.
3 phần của biểu thức LINQ
1. Có được các dữ liệu nguồn.
2. Tạo các truy vấn.
3. Thực hiện các truy vấn.
Ví dụ trong mã nguồn sau đây cho thấy ba phần của một truy vấn hoạt động như thế nào.
class IntroToLINQ

  {

    static void Main()

    {

      // The Three Parts of a LINQ Query:

      // 1. Data source.

      int[] numbers = new int[7] { 0, 1, 2, 3, 4, 5, 6 };

      // 2. Query creation.

      // numQuery is an IEnumerable

      var numQuery = from num in numbers

              where (num % 2) == 0

              select num;

      // 3. Query execution.

      foreach (int num in numQuery)

      {

        Console.Write("{0,1} ", num);

      }

    }

  }
Minh họa sau đây cho thấy các hoạt động truy vấn. Trong LINQ việc thực hiện các truy vấn được thực hiện khi bạn truy cập dữ liệu.

Các nguồn dữ liệu.
Trong ví dụ trước vì dữ liệu là một mảng, nó hoàn toàn hỗ trợ đặc điểm chung giao diện IEnumerable <T>. Điều này có nghĩa thực tế nó có thể được truy vấn với LINQ. Một truy vấn được thực hiện trong một câu lệnh foreach và foreach yêu cầu hỗ trợ IEnumerable hay IEnumerable(T). Loại có hỗ trợ IEnumerable(T) hoặc IQueryable(T) được gọi là queryable.
Với LINQ to SQL, trước tiên bạn tạo một đối tượng quan hệ được ánh xạ vào lúc thiết kế bằng cách sử dụng trình thiết kế đối tượng quan hệ (O/R Designer) hoặc tự viết code. Viết các câu truy vấn dựa trên đối tượng và thi hành để LINQ to SQL xử lý việc giao tiếp với cơ sở dữ liệu. Trong ví dụ sau, Customer đại diện cho một bảng trong cơ sở dữ liệu, và Table<Customer> hỗ trợ các đặc tính chung IQueryable<T>.
// Create a data source from a SQL Server database.
// using System.Data.Linq;
DataContext db = new DataContext(@"c:\northwind\northwnd.mdf");
Truy vấn.
Truy vấn trong ví dụ trước trả về tất cả các số từ mảng số nguyên. Các biểu thức truy vấn chứa ba mệnh đề: from, where, select. (Nếu bạn đang quen với SQL sắp đặt của các mệnh đề là sai vị trí trong SQL). Mệnh đề from dùng để xác định nguồn dữ liệu, mệnh đề where dùng để lọc dữ liệu, mệnh đề select dùng để chọn ra những phần tử được trả về. Lúc này một điểm quan trọng là trong LINQ, các biến truy vấn chỉ chứa đựng thông tin truy vấn, là yêu cầu kết quả trả về khi câu truy vấn được thực hiện chứ nó không thực hiện việc truy vấn dữ liệu.
Thực thi truy vấn:
Cũng giống như trạng thái trước đây, biến truy vấn tự nó chỉ chứa các lệnh truy vấn. Việc truy vấn dữ liệu chỉ được thực hiện khi bạn truy cập đến dữ liệu trả về từ câu truy vấn:
foreach (int num in numQuery)
{
    Console.Write("{0,1} ", num);
}
Câu lệnh foreach là nơi các kết quả truy vấn được trả về. Bởi các biến truy vấn tự nó không bao giờ chứa kết quả truy vấn, bạn có thể sử dụng lại nó để bổ sung hoặc thực thi lấy dữ liệu tại một nơi khác.
8. Tách rời DataContext và các lớp thực thể vào các namespaces khác nhau
O / R Designer cung cấp cho các thuộc tính Context Namespace và Entity Namespace trên DataContext. Những thuộc tính này xác định tên của lớp DataContext và lớp các thực thể đã được tạo ra. Theo mặc định, các thuộc tính là rỗng, lớp DataContext và các lớp thực thể được đưa vào cùng một namesapce. Để đưa các lớp vào các namespace khác nhau, chúng ta có thể nhập giá trị vào trong thuộc tính Context Namespace và / hoặc Entity Namespace.

Các điểm mạnh giữa SQL Server và MySQL


MS SQL và MySQL đều có những điểm đặc thù của chúng. Nếu cần so sánh, nên so sánh theo tính năng, hiệu suất, bảo mật và khả năng phục hồi....

Tôi thấy MySql phiên bản 4.x không thể so với MSSQL vì phiên bản này thiếu khá nhiều tính năng quan trọng để được xếp loại là một CSDL hạng nặng (ví dụ như thiếu ứng dụng View, StoreProc, Triggers...). Để công bằng nên thử so sánh MySql 5.x và MSSQL 2005.

1. Tính năng:
Tôi cho rằng MySql hơn MSSQL ở tính năng cung cấp nhiều loại storage engine. Tuy nhiên tính về mặt integration chặt chẽ cho trọn bộ hệ thống và công cụ phát triển software thì MSSQL integrate tốt hơn MySql, đặc biệt ở mảng .NET. MSSQL còn hỗ trợ XML trực tiếp trong DB, trong khi đó thì MySQL chưa làm được chuyện này. Các chức năng cần thiết như View, StoreProcedure, Trigger thì cả hai tương đương nhau.

2. Hiệu suất:
Tính về mặt hiệu suất, có rất nhiều thử nghiệm và tường trình cho rằng MSSQL perform kém hơn MySQL nhiều mặt. MSSQL đòi hỏi tài nguyên rất lớn (CPU mạnh, nhiều RAM...), nếu không nó rất ì ạch. MySQL không đòi hỏi nhiều như MSSQL. MySQL có thể chạy trên các UNIX highend system và perform tốt hơn MSSQL trên Windows highend server trong nhiều trường hợp.

3. Bảo mật:
MSSQL qua mặt MySQL về tính bảo mật ở column level. MySQL chỉ có thể set access đến row level là hết. Hệ thống xác thực người dùng của MSSQL cũng qua mặt MySQL. Tuy vậy, trên bình diện "để hở cổng" thì MSSQL dễ bị exploit hơn MySQL bởi MSSQL tích hợp quá chặt vào hệ điều hành. Lỗi của hệ điều hành hoặc một bộ phận nào đó dẫn đến việc nhân nhượng MSSQL nhanh chóng hơn MySQL.

4. Khả năng nhân bản (replication):
Cả hai đều có khả năng replicate hoặc cung cấp phương tiện để làm việc này. Tuy nhiên, MySQL nhanh hơn và ít sự cố hơn MSSQL vì tất cả các SQL statements dùng để thay đổi, cập nhật dữ liệu được lưu giữ trong binary log. MSSQL cung cấp nhiều phương pháp replicate cao cấp hơn, chi tiết hơn bởi thế nó phức tạp hơn và chậm hơn.

5. Khả năng phục hồi (recovery):
Nếu MySQL chạy thuần túy với MyISAM storage engine thì khả năng phục hồi (sau khi bị crash) không cách gì so sánh với MSSQL. Tuy nhiên nếu MySQL chạy với Innodb engine thì khả năng phục hồi không thua kém gì MSSQL. Ngoài ra, khả năng phục hồi còn được xét ở biên độ liên quan đến khả năng nhân bản (replication) ở trên. Bởi vì MSSQL cung cấp nhiều phương thức nhân bản nên việc phục hồi dữ liệu trên MSSQL dễ dàng hơn.

6. Phí tổn:
MySQL bản community không hề tốn tiền để mua nhưng bạn phải tự xắn tay áo lên. Tuy nhiên cài đặt, sử dụng và tối ưu MySQL không khó vì tài liệu của nó rất đầy đủ, thông tin về MySQL tràn ngập trên web. So với MSSQL, bạn phải trả gần một ngàn rưỡi đô cho 1 license MSSQL standard và khi cần support, bạn phải trả thêm tiền support (tùy case). MS vẫn cung cấp bản MSSQL không thu phí dành cho mục đích development. Tài liệu về MSSQL cũng rất nhiều trên mạng. Bản MySQL enterprise thì phải trả tiền (khoảng 400 đô) nhưng bạn được support đầy đủ.

nguồn từ http://www.hvaonline.net

Màu đường viền , và màu nền cho thẻ


Đặt đoạn css vào the style, ta đặt tên class thẻ< input >: TextBox, <textarea>: select

<style type="text/css">   
  
.TextBox, .select, {
        border: solid 1px #8AAFE1;
        color: #0E4380;
       
        background:-moz-linear-gradient(center top , #FFFFFF, #BBD3F2) repeat scroll 0 0 #FFFFFF;
       width:400px;
}
</style>