Hiển thị các bài đăng có nhãn Lập Trình. Hiển thị tất cả bài đăng
Hiển thị các bài đăng có nhãn Lập Trình. Hiển thị tất cả bài đăng

Chủ Nhật, 28 tháng 11, 2010

Tại sao bạn nên tìm hiểu về HTML và CSS?

Blogger nên biết những gì cơ bản  của HTML và CSS để có thể giúp Blog của mình trở nên tốt hơn về mặt cấu trúc, tiết kiệm chi phí phát sinh. Trên mạng thường có rất nhiều hướng dẫn về HTML, CSS và các đoạn mã miễn phí được chia sẻ.


Tại sao bạn nên tìm hiểu về HTML và CSS?
Tại sao bạn nên tìm hiểu về HTML và CSS?

1. Thay đổi những gì bạn muốn:

{VnTim™} Nếu bạn biết về HTML và CSS, bạn có thể thay đổi bất cứ thứ gì trên Blog mà bạn thích. Có rất nhiều cách để thay đổi Blog bạn như phông chữ, thông tin hình ảnh, thanh điều hướng,… Điều này giúp Blog bạn trở nên đặc biệt riêng bạn, một phong cách riêng không đụng hàng.

2. Tiết kiệm thời gian và tiền bạc:

Nếu bạn biết HTML và CSS, bạn có thể tiết kiệm thời gian và tiền bạc để tự code cho Blog của mình. Nếu bạn không biết thì sẽ phải thông qua một lập trình viên, điều đó sẽ làm mất rất nhiều thời gian và tiền bạc của bạn.

3. Chỉnh sửa theme:

Theme là một phần vô cùng quan trọng của Blog giúp định hình phong cách cũng như hình ảnh của bạn với độc giả. Bạn có thể chỉnh sửa theme được chia sẻ miễn phí theo ý mình để nó được tốt hơn về cách hiển thị hay SEO, điều đó rất có lợi (như mình vậy :D).

4. Chỉnh sửa Plug-ins:

Nếu tìm hiểu tốt, bạn có thể đủ khả năng để tuỳ chỉnh Plugin nào đó theo ý bạn, để phục vụ tốt hơn cho Blog chẳng hạn. Tuy nhiên hầu như các Plugin đều khá tốt và ít bị lỗi. Dù sao cũng là một điều hay nếu bạn biết :)

5. Nâng Blog bạn lên một tầm cao mới:

Nếu bạn biết HTML và CSS, có thể bạn sẽ không cần phải thuê một người thiết kế chuyên nghiệp mà có thể tự thay đổi để nâng tầm Blog của bạn, ngoài ra bạn còn sẽ học rất nhiều kiến thức có ích trong quá trình code, rất tuyệt vời.

Thứ Hai, 22 tháng 11, 2010

Cách học PHP cho người mới bắt đầu học lập trình

{VnTim™} PHP là một ngôn ngữ dễ học, dễ hiểu và dễ tiếp cận, nên cho dù nếu bạn chưa có kiến thức gì về PHP. Thì cũng đừng lo lắng, các phương pháp sau sẽ giúp bạn nắm vững những điểm trọng tâm trong quá trình theo học lớp căn bản và nâng cao.Học PHP như thế nào khi bạn chưa biết gì về lập trình ?

Bắt đầu từ sự đơn giản nhất.
Có nhiều người cứ nghĩ học PHP thì HTML, javascript là quá dễ, cho nên đọc sách hoặc học qua loa thì cũng nắm bài như ai. Nhưng không, biết là một chuyện. Còn vận dụng sự hiểu biết ấy vào bài tập thì còn rất lúng túng và thiếu sự nhất quán.
Bạn lúng túng tức là phần nào bạn vẫn chưa nắm hết. Vậy ngay từ bài nhập môn, hãy tiếp cận một cách nhịp nhàng. Với sự hưỡng dẫn của giảng viên, bạn sẽ nhanh chóng bắt kịp với sự đa dạng của một ngôn ngữ lập trình như thế nào. Và hẳn khi bước sang PHP bạn sẽ không còn cảm giác sợ, hay choáng ngộp trước một rừng thứ phải học của PHP.

Đừng bỏ qua bất kỳ chi tiết nào.
Thực tế, người học lập trình thường đi vào phần trọng tâm mà bỏ qua những chi tiết nhỏ trong lập trình. Theo quan niệm thì có thể bạn thấy ít khi dùng, ít khi đụng thì cần gì phải nhớ, cần gì phải tìm hiểu ??. Hoặc là chúng dễ quá, dễ tới mức đôi khi bạn không cần phải chú tâm vào nó thì cũng làm rất tốt các bài tập.
Quả thực, ở thời gian đầu. Khi tiếp cận những bài căn bản có thể bạn sẽ ít sử dụng. Nhưng ở một tầm cao hơn bạn sẽ thấy sự đa dạng và mức độ phức tạp của các bài học sau được nâng lên rõ nét. Nếu bạn chưa hề nắm vững kiến thức thì thường sẽ không nắm hết bài. Hay nếu có thì chỉ là qua loa hoặc "đại khái" nó là như thế....Còn vận dụng sâu hơn thì....chịu.

Tìm ra liên kết các bài học lại với nhau.
Yếu điểm chí mạng trong lập trình đó là sự rập khuôn theo khuôn mẫu, nghĩa là cái gì thì cũng được học, cũng được biết. Nhưng để vận dụng ráp nối các chi tiết thì có vẻ như khó khăn quá.
Lỗi này không hoàn toàn trách học viên, mà chỉ trách sự kết hợp bài giảng và phân bố bài học của giảng viên không phù hợp, khiến cho kiến thức cũ, mỡi đảo lộn một cách thiếu khoa học. Từ đó làm cho học viên cảm thấy phần nào khó khăn hơn trong việc dùng kiến thức cũ để đi tiếp kiến thức mới.

Tập trung và tự đặt những câu hỏi trong khi giảng viên thảo luận
Hãy tự hỏi và trả lời những câu hỏi what ?, Why ?, When ? về một vấn đề gì mới khi bạn được học. Chỉ khi chúng ta hiểu được 3 câu hỏi này thì chúng ta mới thực sự nắm rõ bài học của ngày hôm đó. Khi đưa ra câu hỏi nếu tự bản thân không thể trả lời. Hãy phát biểu hỏi giảng viên để có được câu trả lời sớm. Cần chú ý không phớt lờ những gì không hiểu. Vì rất dễ dẫn tới việc hổng kiến thức sau này.

Nhìn nhận và phân tích câu hỏi trước khi bắt tay làm.
Trong quá trình học, nếu các bạn được giảng viên cho bài tập làm, thì đừng vội làm liền. Hãy lấy giấy bút và phân tích thật kỹ các yếu tố. Dựa vào những giả thuyết của đề bài chúng ta sẽ gắn kết với kiến thức đang học. Từ đó vẽ ra các bước cơ bản khi thực hiện câu hỏi đó.
Áp dụng cách này, có thể bạn sẽ làm chậm hơn người khác, có thể bạn sẽ gặp nhiều khó khăn khi phân tích. Nhưng đừng lo lắng, vì chính những khó khăn ấy sẽ cho bạn kinh nghiệm phân tích vấn đề trong lập trình một cách hiệu quả.

Đi học đầy đủ và lắng nghe khi được giảng.
Việc đi học vào các ngày nghỉ hoặc các giờ sau khi đi làm là rất khó khăn. Vì sau một ngày làm việc, ai cũng muốn có 1 chút thời gian nghỉ ngơi, để giải trí. Đó cũng là lý do những người đã đi làm thường học không được siêng như những người chưa có việc làm. Nhưng nếu bạn muốn thành tài thì trước hết phải trải nghiệm gian khổ, ít nhất là hy sinh 1 ít thời gian để học thật tốt môn mà bạn muốn xem là "nghề" sau này.
Đi học được, nhưng nhiều khi lại bị cuốn một hai câu chuyện với bạn bè trong lớp, nên có những lúc bạn bỏ qua các chi tiết mà giảng viên muốn truyền tải cho các bạn. Nếu đã hy sinh thời gian đi học thì bạn đừng nên tiếc đôi ba câu chuyện với bạn bè xung quanh. Hãy thật tập trung lắng nghe nhất có thể để bạn hiểu rõ bài học một cách sâu và hiệu quả.
Với 6 điều chú ý nhỏ này, sẽ giúp bạn có được sự tiếp cận dễ nhất đối với môn học PHP mà không hề cảm thấy lo lắng hay thiếu tự tin về khả năng của mình. Ngoài ra nó còn giúp các bạn nắm được chắc các vấn đề cần thiết đủ để học chuyển tiếp lên khóa nâng cao một cách dễ dàng.

Thứ Hai, 25 tháng 10, 2010

AJAX là gì làm quen với Ajax

VnTim™<> AJAX là gì?
AJAX, viết tắt của cụm từ "Asynchronous JavaScript And XML", là sự kết hợp của các công nghệ: CSS , DOM, XMLHttpRequest, JavaScript.

Với mô hình web truyền thống, client gửi một HTTP request lên server, server tiếp nhận request, tiến hành các tác vụ xử lý nào đó như insert, update, delete, retrive ... rồi sau đó trả lại một trang HTML hoàn toàn mới. Vấn đề của mô hình này là ở chỗ trong thời gian server tính toán, xử lý, tất cả những việc mà người dùng có thể làm là chờ và chờ. Trong trường hợp đường truyền mạng chậm thì tốt nhất là nên bỏ ra ngoài làm một tách cafe để khỏi sốt ruột.

Với AJAX, ta có thể submit một request lên server (ví dụ các thông tin trong một form chẳng hạn), server nhận request và đáp trả gần như ngay tức khắc cho client mà không cần phải nạp lại trang. Có thể xem việc submit dữ liệu từ client lên server như là một tác vụ “chạy nền” bên dưới mà người dùng không nhận thấy. Điều này làm cho các ứng dụng web ngày càng gần với các ứng dụng desktop hơn về độ thân thiện cũng như tốc độ và sự tiện dụng.

AJAX là gì làm quen với AjaxHình 1: Mô hình ứng dụng web truyền thống (bên trái) so với mô hình ứng dụng AJAX (bên phải)
AJAX đã làm điều đó như thế nào?
AJAX sử dụng AJAX engine – một dịch vụ web được viết bằng java script, nằm ở giữa client và server, thường được giấu trong một frame ẩn. Thay vì phải nạp lại cả trang, vào thời điểm khởi động session, trình duyệt nạp AJAX engine. Engine này có nhiệm vụ đảm trách việc trả lại kết xuất cho người dùng thấy và đóng vai trò thông tin liên lạc với server. AJAX engine cho phép người dùng tương tác với ứng dụng bất đồng bộ – độc lập trong việc liên lạc với server. Do đó, người dùng không bao giờ phải chờ đợi server xử lý một tác vụ nào đó.

Mọi tác động của người dùng thông thường đều sinh ra một HTTP request nắm giữ form của một lời gọi JavaScript đến AJAX engine. Bất cứ một đáp trả nào đến người dùng đều không đòi hỏi một sự kế nối nào ngược lại với server – ví dụ như việc validation dữ liệu, hiệu chỉnh dữ liệu bên trong bộ nhớ... Nếu như engine cần một cái gì đó ở server để có thể đáp trả cho client – nếu như trong trường nó submit dữ liệu để xử lý, nạp các mã giao diện khác hay là tải về dữ liệu mới – engine tạo các yêu cầu này bất đồng bộ, thông thường sử dụng XML mà không cần thông qua một sự tương tác của người dùng với ứng dụng.

AJAX là gì làm quen với Ajax alt="" src="http://my.opera.com/dangngocgiao/homes/acticles/what_is_ajax/ajax-fig2.png" />
Hình 2: Tương tác đồng bộ (trên) so với tương tác bất đồng bộ (dưới)
Vai trò của các công nghệ khác nhau trong AJAX
JavaScript: JavaScript trong một trang được gọi khi một sự kiện nào đó phát sinh trong trang

DOM: DOM cung cấp API cho phép truy xuất và thao tác động trên các tài liệu có cấu trúc thể hiện cấu trúc của XML và HTML

CSS: CSS cho phép tách bạch việc thể hiện presentation và nội dung, có thể thay thay đổi động bằng cách dùng JavaScript

XMLHttpRequest: XMLRequest là thành phần quan trọng nhất trong AJAX, nó cho phép gửi dữ liệu bất đồng bộ lên server. Một điểm cần lưu ý là với IE, đối tượng XMLRequest được hiện thực như là một phần của ActiveXObject. Điều này là quan trọng khi ta muốn xây dựng các các ứng dụng web cross platform, với mỗi trình duyệt cụ thể thì cách thức ta khởi tạo đối tượng này cũng khác nhau. Tại sao W3C chưa approve XMLHttpRequest nhỉ? Nhưng dù sao cũng đáng mừng thì với IE 7, ta có thể khởi tạo đối tượng XMLRequest giống như với việc khởi tạo đối tượng này trong FireFox, Safari …

Ứng dụng AJAX trên Internet
Google map (http://maps.google.com), Gmail (http://gmail.com) … là các ví dụ hoành tráng nhất về việc sử dụng AJAX cho các ứng dụng web
Đặc tính của XMLHttpRequest
+ Tài liệu trả về phải là text/xml
+ Trang web hiện hành vẫn tiếp tục phát sinh các sự hiện trong khi đối tượng XMLHttpRequest chạy nền bên dưới
+ Chỉ có phép một số lượng giới hạn request được gửi lên
+ Cho phép ta chỉ định một hàm xử lý ứng với trạng thái thay đổi, hàm xử lý được kích hoạt khi request ở các trạng thái: khởi tạo, bắt đầu, đang trả về, hoàn tất

Các hàm, thuộc tính thông dụng của XMLHttpRequest
onreadystatechange: hàm nắm giữ xử lý sự kiện, được kích hoạt mỗi khi trang thái thay đổi, ta phải tự hiện thực các hàm xử lý sự kiện cho mình
readyState: trạng thái hiện hành của request, có giá trị là 0 - chưa được khởi tạo, 1 - đang nạp, 2 - đã nạp xong, 3 – đang trong tiến trình đáp trả, 4 – hoàn tất
status: Trạng thái của HTTP trả lại từ server – 200 = OK
responseText: Dữ liệu trả về từ server dưới dạng chuỗi
responseXML: Dữ liệu trả về từ server dưới dạng tài liệu XML
statusText: Trạng thái text trả về từ server

Xây dựng một demo nho nhỏ với AJAX
Để kết thúc bài viết này, ta sẽ xây dựng ứng dụng demo “Tìm kiếm thông tin sách”. Giả sử ta có một cơ sở dữ liệu chứa thông tin về sách, với đơn giản chỉ có 2 trường là NAME và AUTHOR. Ứng dụng của chúng ta đơn giản chỉ với một màn hình cho phép người dùng nhập tiêu chí tìm kiếm theo tên sách và tên tác giả. Khi người dùng nhập truy vấn, ứng dụng trả về ngay kết quả khớp với truy vấn đã nhập vào mà không cần phải vẽ lại trang mới. Để đơn giản, dễ hiểu và có thể chạy ứng dụng này một cách dễ dàng cho những người mới, ta hard-code cơ sở dữ liệu ngay trong code Java.
AJAX là gì làm quen với Ajax
Hình 3: Ứng dụng demo
Đáng lẽ phải viết vài dòng giải thích source code chương trình ở đây cho phải đạo nhưng vì … buồn ngủ rồi nên để khi nào rảnh bổ sung sau. Với lại source được viết đơn giản đến mức tối đa và rõ ràng, nên chắc cũng chẳng khó hiểu, hehehe. Có thể download file war hoặc source code về tham khảo theo các link dưới.
File war: http://my.opera.com/dangngocgiao/homes/acticles/what_is_ajax/BookSearchDemo.war
File source: http://my.opera.com/dangngocgiao/homes/acticles/what_is_ajax/BookSearchDemo_SRC.zip

Tài liệu tham khảo
Manning Ajax In Action – Dave Crane, Eric Pascarello and Darren James
Foundations of AJAX – Ryan Asleson and Nathaniel T. Schutta

Tác giả: Đặng Ngọc Giao
Mobile: 0988848223
Email: giaodn@gmail.com, giao_dn@yahoo.com

AJAX là gì và tổng quan về Ajax

VnTim™<> Hiện nay kỷ thuật Ajax được ứng dụng rất nhiều trên các trang web nhằm tăng tính thân thiện và tiện lợi hơn cho trang web. Khái niệm này đang dần quen thuộc với những người lập trình web. Nếu bạn quan tâm tới kỷ thuật này và đang có ý định học thì nên đọc bài viết này để xem bạn có quyết định sáng suốt không nhé .
AJAX là thuật ngữ viết tắt của Asynchronous Javascript and XML ( JS và XML không đồng bộ). AJAX có thể đọc là "trao quyền cho javascript" và thông qua js để cung cấp một công nghệ phía client-script để gọi ngầm một lệnh background để phía server thực hiện và nhận thông tin trả về, update thông tin của trang nhanh mà không cần phải load lại cả trang, rất mất thời gian load lại những cái không cần update.

Ví dụ: Để kiểm tra nickname đã tồn tại trong cơ sở dữ liệu hay chưa thì khi thành viên vừa nhập xong nick name, thông tin trên form lập tức javascript nắm thông tin rồi thực hiện gọi một hàm bằng PHP bên phía server để kiểm tra thông tin sau đó trả kết quả html về cho javascript xuất ra cho người dùng biết tính hợp lệ của nickname, lúc đó ngươid ùng có thể thay đổi ngay chớ không cần đợi submit rồi kiểm tra và nhập lại như dùng PHP truyền thống.

AJAX là gì và tổng quan về Ajax

Sơ đồ miêu tả hoạt động của Ajax

Cũng như bất kỳ công nghệ khác, AJAX có thể bị sử dụng quá nhiều trong một website, vì họ chỉ thấy những ưu điểm mà AJAX mang lại chớ không quan tâm đến những khuyết điểm của AJAX, để tranh tình trang trên, có thể liệt kê một số đặc điểm của AJAX như sau:

- Ưu điểm:

    * Nó giúp việc thiết kế web đa dạng hơn và tăng tính tương tác của website với người dùng
    * Nó sử dụng các công nghệ đã có sẵn nên dễ học và sử dụng
    * Nhờ tính phổ biến của nó, đã khuyến khích việc phát triển các khuôn mẫu mà sẽ giúp lập trình viên tránh khỏi các vết xe đổ trước.
    * Được hỗ trợ trong các trình duyệt phổ biến hiện nay

- Hạn chế

    * Bạn không thể bookmark nó vào favourite trên trinh duyệt hay gởi link đến cho bạn bè, vì tất cả quá trình nó thực hiện ngầm và không hiển thị trên address
    * Không thể hiện thị nội dung trên các trang tìm kiếm vì các trang tìm kiếm hiện nay vẫn chưa hỗ trợ tìm vì rất khó tìm và gần như không thể tìm đc.
    * Không thể sử dụng nút back vì back cũng là chính nó
    * Với một số trình duyệt, do nhu cầu bảo mật, sẽ tắt chức năng thực hiện javascript nên ajax không thể chạy, hay trong một vài host, không hỗ trợ vào sâu cấu hình server nên hay bị lỗi "Access denied"

Nhưng với những điểm hạn chế nói trên thì AJAX vẫn đang được các lập trình viên sử dụng rộng rãi và đang nghiên cứu để cải thiện nó, ví dụ như vừa update thông tin trên web, vừa thay đổi trên thanh address để có thể sử đung một số chức năng liên quan tới địa chỉ tuyệt đối này.
Nếu bạn muốn tìm hiểu chi tiết hơn thì có thể xem trên Bách khoa toàn thư mở Wikipedia tại đây
Sau đây là một số địa chỉ tham khảo về ajax:

Ajax Jquery và JavaScript

VnTim™<>Đôi lúc khi mới đi đến ranh giới của lập trình web 2.0 bạn đang ngờ ngợ giữa các chức năng của nó, cũng như bạn biết rằng web 2.0 thì nên áp dụng ajax, tìm hiểu trên mạng hoặc trong tài liệu thì bạn hiểu sơ sơ nó là cách gửi dữ liệu không đồng bộ ….
Nhưng để đi vào vấn đề khi đến với ajax bạn thực sự bối rối quá nhiều, không biết cơ chế hoạt động, không nắm rõ nó, và một phần do vồn tiếng anh yếu mà không dám đụng chạm đến những cuốn sách JS tiếng anh…

Một thời gian nào đó, có bạn đã pm để hỏi tôi “Anh ơi ! sao anh không soạn tut dạy Ajax, em toàn thấy dạy Jquery không hà”. Khi đọc được vấn đề này, tôi thực sự bỡ ngỡ, người ta có thể hỏi mình dạy Ajax trong khi người ta biết Jquery. Có buồn cười không khi hỏi “Anh ơi em biết sơ về Jquery nhưng em mù JS anh có thể soạn tut JS cho em không ?”, khi đó nó lại là vấn đề khác.
Để trả lời cho câu hỏi này, bài viết hôm nay sẽ minh họa rõ ràng về mối ràng buộc và quan hệ giữa Ajax, Jquery và JavaScript.
ĐỊNH NGHĨA
Javascript : là một ngôn ngữ xử lý sự kiện thông thường cho website, thông thường được dùng để sử lý các sự kiện. Ngôn ngữ cũng theo cấu trúc chính của C, có thể nói JS chỉ khác PHP ở ngôn ngữ, còn hướng lập trình thì hầu như là giống nhau.
JQuery : Gần như là một mã nguồn mở sử dụng JS, Jquery tổng hợp các vấn đề cần phải làm trong JS thành một thư viện, và sau đó nó cho phép phát biểu theo cách gọi riêng của nó.
Ajax : Có thể nói, Ajax chỉ là một phần nhỏ trong JSm khi thực hiện theo JS thuần Ajax được thể hiện tương quan theo JS thuần, khi thể hiện theo Jquery, cách sử dụng khác nhau nhưng mối tương quan của nó với JS vẫn không đổi, bởi vì bản thân nó vẫn chỉ chạy trên JS.
PHÂN BIỆT
- Với cách để có thể phân biệt 3 dạng này, ta sẽ đi đơn giản từ dưới lên trên.
Ajax : Ajax chỉ là một hàm nhỏ nếu bạn sử dụng Jquery và là một sự kết hợp nhiều thành phần nếu bạn sử dụng JS thuần.
Ajax với Jquery

$(document).ready(function(){
   $.ajax({
      //Tại đây ta có thể cho các giá trị vào function Ajax, lúc này Ajax là một function.
      url: 'leech_link.php',
      type: 'POST',
      dataType: 'html',
      data: 'name='+varlue1+'&tuoi='+value2,
      beforeSend(function(){
           $('#wait').html('<img src='load.gif' title='' />);
      }),
      success(function(html){
           $('#show').html(html);
       })
   });
});

- Chỉ với vài dòng như thế chúng ta đã hoàn thành một ajax khá đơn giản, nhưng bản chất bên trong của nó khi tuơng tác với JS thì như thế nào ? hay nói chính xác hơn, Ajax hoạt động trên JS thế nào, chúng ta cùng tham khảo code sau :
Ajax với JS thuần

// Ajax function
function XMLHttpClient() {
     var xmlhttp;
     try {
         // Mozilla / Safari / IE7
         xmlhttp = new XMLHttpRequest();
     } catch (e) {
          // IE
          var XMLHTTP_IDS = new Array('MSXML2.XMLHTTP.5.0',
                                    'MSXML2.XMLHTTP.4.0',
                                    'MSXML2.XMLHTTP.3.0',
                                    'MSXML2.XMLHTTP',
                                    'Microsoft.XMLHTTP' );
         var success = false;
         for (var i=0;i < XMLHTTP_IDS.length && !success; i++) {
         try {
                  xmlhttp = new ActiveXObject(XMLHTTP_IDS[i]);
                     success = true;
               } catch (e) {}
         }
         if (!success) {
             throw new Error('Unable to create XMLHttpRequest.');
         }
    }
    return xmlhttp;
}

 function SetName(name)
 {
     var req =XMLHttpClient() ;
     req.open('GET', 'setname.php?name=' + name, false);

     req.send(null);
  var newName =req.responseText;
     alert(newName);
 }

- Như vậy chúng ta đã hiểu rõ hơn phần nào Ajax, chúng ta cùng đi qua vấn đề tiếp theo là Jquery
Jquery: Như đã giải thích ở trên, bản thân Jquery cũng chỉ là một thư viện tổng họp hoạt động trên nền tảng JS, để chứng minh điều này, chúng ta đi vào một ví dụ nho nhỏ, tôi muốn lấy giá trị của một ID nào đó và cho hiển thị thông báo ra màn hình.
Sử dụng JS thuần

//Nếu bạn muốn lấy giá trị của nó, bạn phải sử dụng chuỗi hàm sau :
     var myContent = document.getElementById('content');
     alert(myContent.value);


và sử dụng Jquery

alert($('#content').val());

Chỉ đơn giản là vậy mà thôi. Như vậy cái bạn cần hiểu, từ một phuơng thức nào đó, Jquery có thể thực thi các lệnh JS thông qua cách viết của riêng nó, nhưng thực sự nền tảng nó vẫn chỉ là JS.
JavaScript : Như vậy tới đây, bài viết là khá tạm ổn cho các phần giải thích, về JS tôi không có nhiều ý kiến để phân biệt nó, bởi vì nó là nền tảng cho sự phát triển của các thư viện khác.
KẾT LUẬN
Như vậy giờ chắc bạn đã mường tượng được trong đầu, cái nào nằm đâu ? và vị trí nó như thế nào rồi đúng không ?. Cũng như kho kiến thức, kiến thức là vô hạn, một thuật toán sẽ có nhiều cách giải, một bài toán khó không phải có kết quả là quan trọng, mà phải làm sao cho nó đỡ tốn công sức nhất. Cũng như học PHP, bạn phải học theo hướng đối tượng để tránh đi tối đa những khai báo trùng lặp, để tránh tất cả những code không cần thiết, như Jquery vậy, người ta gộp chung nó và đặt cho nó một cách khác gọn gàng hơn ^^.
VnTim™ Nguồn : izwebz.com

Thứ Tư, 21 tháng 4, 2010

Toàn bộ kiến thức cơ bản về HTML (xHTML)

VnTim™  ^-^ Sau đây là toàn thể các thẻ xHTML thông dụng

Bàn tay màu vàng có nghĩa là đó là một thuộc tính HTML lạc hậu, lỗi thời, và nên thay khẩn cấp bằng cách dùng CSS được chỉ ra ở bên phải bàn tay.

Bảng này chỉ có tính tra cứu, nếu muốn học về HTML (tiếng Anh) thì tài liệu sau khá chuẩn: http://hoclieumo.com/mod/resource/view.php?id=295 (phải đăng ký nick thì phải)

(sắp xuất bản: Tra cứu xHTML, CSS trên web và từ điển)

Trước tiên giải thích 1 ký hiệu quan trọng nhất:

Bàn tay màu vàng có nghĩa là đó là một thuộc tính HTML lạc hậu, lỗi thời, và nên thay khẩn cấp bằng cách dùng CSS được chỉ ra ở bên phải bàn tay.

Sau đây là toàn thể các thẻ xHTML thông dụng








Nhớ là các thẻ (tag) xHTML khác với HTML ở vài điểm cơ bản sau:
1 - Nó viết thường chứ không viết hoa
2 - Có thẻ mở thì có thẻ đóng
3 - Trường hợp có 1 thẻ duy nhất thì cuối thẻ phải có dấu gạch chéo slash



Giải thích các ký hiệu còn lại (nếu có)



VnTim™ Theo

Tài liệu học CSS cho người mới bắt đầu

VnTim™  ^-^
Giới thiệu CSS
Phần các bài học này sẽ mang tới cho bạn một số kiến thức khác để tạo cho Website có thêm một phong cách hay một kiểu cách thống nhất mà bạn không phải mất nhiều thời gian và công sức để chỉnh sửa trên nhiều trang Web của bạn.
Kiến thức tiên quyết
Trước khi tập trung nghiên cứu về CSS bạn cần nắm vững các kiến thức về: WWW, HTML và các khái niệm cơ bản về xây dựng Website.
Thỏa thuận với người đọc
Để cho bạn không hiểu lầm một số từ ngữ chuyên môn, vì thế chúng tôi sẽ giữ nguyên bản các cụm từ thuật ngữ tiếng Anh( Ví dụ: HTML, Style Sheet, Head, p,...) những cụm từ này sẽ có giải thích ý nghĩa ngay khi bạn đọc chúng lần đầu tiên trong tài liệu này.
CSS là gì?
·         CSS thay thế cho một cụm từ tiếng Anh là "Cascading Style Sheet" 

· Styles định nghĩa cách các thành phần HTML hiển thị như thế nào.

· Các Styles thông thường được lưu trữ trong một Style Sheets

· Các Style đã được đã được thêm vào từ công bố HTML bản 4.0

· Có ba cách chèn Style: 1.External Style Sheets 2.Internal Style Sheets và 3.Inline Style những giải thích về các loại này ở dưới.

· External Style Sheets có thể tiết kiệm được nhiều thời gian cho công việc của bạn.

· External Style Sheets được lưu trong những tệp có phần mở rộng là CSS.

Nhiều định nghĩa Style trong một tệp thì được gọi là Cascade(xếp lớp) Style Sheet.



Mô phỏng CSS
Với CSS, văn bản HTML của bạn có thể được hiển thị với rất nhiều kiểu dáng khác nhau. Mời bạn xem bài ....Các bài mô phỏng CSS.
Style giải quyết những vấn đề chung
Thẻ HTML khởi đầu được thiết kế để định nghĩa nội dung của một văn bản. Chúng được hỗ trợ để mô tả cho trinh duyệt hiểu và thể hiện ý nghĩa như "Đây là một Dòng đầu trang", "Đây là một đoạn", "Đây là một bảng",... bằng cách sử dụng những thẻ như
<h1> , <p> , <table>
Việc phác thảo văn bản được hỗ trợ bởi trình duyệt mà không có bất cứ một thẻ định dạng nào. Với hai trình duyệt chính là Netscape và Internet Explorer tiếp đưa thêm những thẻ HTML mới và những thuộc tính(giống như thẻ và các thuộc tính giống như màu sắc) cho chỉ định HTML ban đầu thì việc tạo ra các Website càng khó khăn hơn, nơi mà nội dung của văn bản HTML ngày càng phân chia đối với thể hiện của giao diện trang. Để giải quyết vấn đề này, W3C đã tạo ra STYLES thêm vào HTML 4.0 Cả hai trình duyệt Netscape 4.0 và IE 4.0 đều hỗ trợ các CSS.
Style Sheet có thể tiết kiệm rất nhiều công sức làm việc của bạn
Các Style trong HTML 4.0 định nghĩa các thành phần HTML hiển thị như thế nào, giống như thuộc tính của thẻ font và color trong HTML 3.2. Các Style thông thường được lưu trong những file bên ngoài của văn bản HTML. "External style sheets" hay Style Sheet Ngoài cho phép bạn thay đổi dáng vẻ bên ngoài của các trang Web chỉ với việc soạn thảo một tệp CSS đơn lẻ. Nếu như bạn thử thay đổi phông chữ và màu sắc cho các dòng tiêu đề cho một văn bản dài trong trang Web của bạn, bạn sẽ hiểu CSS có thể tiết kiệm công sức của bạn như thế nào. CSS là một sợi chỉ xuyên suốt trong thiết kế Web bởi vì nó cho phép người phát triển kiểm soát kiểu cách và sự sắp đặt của nhiều trang một lần. Để tạo ra sự thay đổi mang tính tổng thể, đơn giản là bạn chỉ cần thay đổi Style và tất cả các thành phần khác(mà nhận Style này) sẽ tự động cập nhật theo.
Nhiều Style có thể xếp lớp trong một
Style Sheet cho phép thông tin được xác định theo rất nhiều cách. Các Style có thể được xác định bên trong một thành phần HTML đơn, bên trong thành phần <head> của một trang HTML, hoặc trong một file CSS bên ngoài. Thậm chí nhiều Style Sheet bên ngoài có thể được tham chiếu trong một tài liệu HTML đơn.
Thứ tự xếp lớp
Style nào sẽ được sử dụng khi có hơn một style được chỉ định cho một thành phần HTML? What style will be used when there is more than one style specified for an HTML element? Thông thường nói rằng chúng ta có thể phát biểu là tất cả các style sẽ "xếp chồng" vào trong một Style Sheet "ảo" mới bẳng những luật sau, nơi mà Style ở vị trí thứ tư có quyền ưu tiên cao nhất: 1. Theo mặc định của trình duyệt. 2. Style Sheet bên ngoài. 3. Style Sheet bên trong.(bên trong cặp thẻ <head>) 4. Style nội tuyến.(bên trong các thành phần HTML) Vì thế, một Style nội tuyến có quyền ưu tiên là cao nhất, điều đó có nghĩa là nó sẽ trùm lên tất cả các style được khai báo bên trong thẻ <head>, trong một Style Sheet bên ngoài và giá trị mặc định của Browser.
Cú pháp CSS

Cú pháp
Cú pháp của một CSS được tạo nền từ ba phần: một "bộ chọn - selector", một "thuộc tính - property" và một "giá trị - value":
bộ trọn{thuộc tính:giá trị} 
"bộ chọn" thông thường là các phần tử/thẻ HTML mà bạn muốn chỉ định, thuộc tính là các tính chất mà bạn muốn thay đổi, và mỗi thuộc tính có thể mang được một giá trị. Thuộc tính và giá trị được phân cách bởi một dấu ":" và được bao bởi một dấu móc nhọn. Ví dụ:
body{color:black}
thì:

· body: là "Bộ chọn".

· color: là "thuộc tính".

black: là "value"

Nếu giá trị có một chuỗi các từ liên tiếp để chỉ ra một tên nào đó, ta phải đặt chúng trong dấu nháy kép như thế này "...", Ví dụ:
p {font-family: "sans serif " } 
vì phông chữ có tên là "sans serif" về bản chất là có khoảng trống giữa từ "sans" và "serif" vì thế phải được đặt trong nháy kép. Lưu ý: Nếu bạn muốn chỉ định nhiều hơn một thuộc tính, bạn phải phân cách mỗi một thuộc tính bằng một dấu chấm phẩy. Ví dụ dưới đây chỉ ra cách làm thế nào để định nghĩa một phân đoạn được căn giữa với dòng chữ có màu đỏ
p {text-align:center;color:red} 
Để tạo ra những định nghĩa về style dễ đọc hơn, bạn có thể mô tả mỗi thuộc tính trên một dòng giống như sau:
p
{
text-align: center;
color: black;
font-family: arial
}

Nhóm các phần hau(Grouping)
Bạn có thể nhóm các bộ chọn. Phân cách mỗi bộ chọn bằng một dấu chấm phẩy. Trong ví dụ dưới đây chúng ta nhóm tất cả các thành phần "Header". Mỗi một thành phần header sẽ có màu xanh lá cây:
h1,h2,h3,h4,h5,h6 
{
color: green
}

Bộ chọn Lớp(The class Selector)
Với một "bộ chọn lớp" bạn có thể định nghĩa các style khác nhau cho cùng một kiểu thành phần HTML. Điều này nói nên rằng nếu như bạn muốn có hai kiểu của phân đoạn trong văn bản: một đoạn căn phải, một đoạn căn giữa. Đây là những gì bạn có thể làm với những kiểu đó: p.right {text-align: right} p.center {text-align: center} Bạn phải sử dụng "thuộc tính lớp" trong văn bản HTML của bạn:
<p class="right">
Phan doan nay se can ben phai.
</p>
<p class="center">
Phân đoạn này sẽ căn giữa.
</p>
Lưu ý: Chỉ một thuộc tính lớp có thể được chỉ định trên một thành phần HTML! Ví dụ dưới đây là sai(vì có 2 lớp trên một phần tử "p")
<p class="right" class="center">
This is a paragraph.
</p>
Bạn có thể cũng có thể bỏ qua tên thẻ trong bộ trọn để định nghĩa một style cái mà sẽ được sử dụng bởi tất cả các thành phần trong HTML mà có mặt trong một lớp nào đó. Trong ví dụ phía dưới, tất cả các thành phần HTML với class="center" sẽ được căn giữa:
.center {text-align: center} 
Trong đoạn mã phía dưới thì thành phần "h1" và thành phần "p" có class="center". Điều này có nghĩa là cả hai phần tử sẽ tuân theo những luật trong bộ chọn ".center":
<h1 class="center">
This heading will be center-aligned
</h1>
<p class="center">
This paragraph will also be center-aligned.
</p>

Bộ chọn Mã(The id Selector)
Bộ chọn mã thì khác với bộ chọn lớp. Trong khi một bộ chọn lớp có thể ứng dụng cho một vài phần tử trong một trang, thì một bộ trọn mã luôn luôn áp dụng cho chỉ một phần tử Một thuộc tính ID(mã số) phải là duy nhất bên trong một văn bản Luật về style phía dưới sẽ tương ứng với một phần tử "p" mà có giá trị id là "para1":
p#para1
{
text-align: center;
color: red
}
Luật về style phía dưới sẽ tương ứng với phần tử đầu tiên mà có giá trị id là "wer345":
*#wer345 {color: green} 
Luật ở trên sẽ tương ứng với thành phần h1 này:
<h1 id="wer345">Some text</h1> 
Luật dưới đây sẽ tương ứng với một thành phần p mà có giá trị id là "wer345":
p#wer345 {color: green} 
Luật trên đây sẽ không đáp ứng với thành phần h2:
<h2 id="wer345">Some text</h2> 

Lời chú thích trong CSS
Bạn có thể chèn một đoạn chú thích để giải thích mục đích đoạn mã của bạn, nó có thể giúp gợi nhớ lại cho bạn sau nhiều ngày làm việc. Một lời chú thích sẽ không được trình duyệt hiển thị. Một lời chú thích của CSS bắt đầu bằng dấu "/*" và kết thúc bằng dấu "*/", giống như những dòng chữ màu đỏ thế này:
/* Đây là dòng chú thích */
p
{
text-align: center;
/* Đây là dòng chú thích khác */
color: black;
font-family: arial
}

CSS làm thế nào...

Làm thế nào để chèn một Style Sheet
Khi một trình duyệt đọc một style sheet, nó sẽ định dạng văn bản theo các quy định có trong Style Sheet đó. Có ba cách để chèn một Style Sheet:
Style Sheet Ngoài
Một Style Sheet ngoài là lý tưởng khi style đó được ứng dụng cho nhiều trang. Với một Style Sheet ngoài, bạn có thể thay đổi cách nhìn của toàn bộ một Website chỉ cần với một file thay đổi. Mỗi trang muốn liên kết với Style Sheet cần phải sử dụng thẻ <link>. Thẻ <link> đứng bên trong đoạn <head>...</head>:
<head>
<link rel="stylesheet" type="text/css"
href="mystyle.css" />
</head>
Trình duyệt sẽ đọc chỉ định về style từ file "mystyle.css", và định dạng văn bản theo file này. Một Style Sheet Ngoài có thể được viết trong một bộ soạn thảo văn bản nào đó. Tệp đó không được chứa các thẻ html. Style Sheet của bạn nên được lưu lại với phần mở rộng là "tên_file.css". Một ví dụ về một tệp Style Sheet được biểu diễn phía dưới:
hr {color: sienna}
p {margin-left: 20px}
body {background-image: url("images/back40.gif")}
Lưu ý: Đừng để khoảng trống giữa giá trị của thuộc tính và đơn vị! Nếu bạn sử dụng câu lệnh:
"margin-left:10 px" thay vì "margin-left: 10px" 
thì nó sẽ chỉ làm việc một cách hợp lệ trong trình duyệt Internet Explorer 6 nhưng nó sẽ không làm việc trong hai trình duyệt Mozilla hoặc Netscape.
Style Sheet Trong
Một Style Sheet Trong cần phải được sử dụng khi một văn bản đơn có một style duy nhất. Bạn định nghĩa các Style Trong bên trong phần đầu bằng cách sử dụng thẻ <style> giống như thế này:
<head>

<style type="text/css">

hr
{
color: sienna
}

p
{
margin-left: 20px
}

body {
background-image: url("images/back40.gif")
}

</style>
</head>
Trình duyệt lúc này sẽ đọc các chỉ định style, và định dạng văn bản theo các chỉ định trong đó. Lưu ý: Một trình duyệt thông thường thì sẽ bỏ qua những thẻ mà nó không hiểu. Điều này có nghĩa là một trình duyệt phiên bản cũ mà không hỗ trợ các Style, sẽ bỏ qua các thẻ <style>, nhưng nội dung của thẻ <style> sẽ hiển thị trên trang. Có thể ngăn cản một trình duyệt cũ hiển thị nội dung bằng cách ẩn nó trong thành phần giải thích của HTML.
<head>
<style type="text/css">
<!--
hr {color: sienna}
p {margin-left: 20px}
body {background-image: url("images/back40.gif")}
-->
</style>
</head>

Style Nội tuyến(Inline Styles)
Một Style nội tuyến mất rất nhiều ưu điểm của các Style Sheet bình thường bởi việc trộn lẫn nội dung với việc thể hiện. Sử dụng phương pháp tiết kiệm này, giống như khi một style được áp dụng cho một sự kiện riêng lẻ của một thành phần. Để sử dụng các Style nội tuyến bạn sử dụng thuộc tính style trong thẻ có liên quan. Thuộc tính thẻ có thể bao gồm bất cứ mẫu CSS nào. Ví dụ dưới đây sẽ đưa ra cách làm thế nào để thay đổi màu và việc căn trái cho một đoạn:
<p style="color: sienna; margin-left: 20px">
This is a paragraph
</p>
Khi một trang chịu nhiều hiệu ứng Style Sheets(Multiple Style Sheets) Nếu một vài thuộc tính cùng được thiết lập cho cùng bộ chọn với style sheets khác nhau, giá trị sẽ được kế thừa nhiều hơn từ các chỉ định đó. Ví dụ, một Style sheet Ngoài có những thuộc tính cho bộ chọn h3 như sau:
h3 
{
color: red;
text-align: left;
font-size: 8pt
}
Và một Style Sheet Trong cũng có các các thuộc tính cho bộ chọn h3 như sau:
h3 
{
text-align: right;
font-size: 20pt
}
Nếu trang Web đã được thiết lập Style Sheet Trong mà đồng thời cũng gọi Style Sheet Ngoài thì thuộc tính chung cho h3 sẽ là:
color: red; 
text-align: right;
font-size: 20pt
Màu cho h3 sẽ kế thừa từ Style Sheet Ngoài và các thuộc tính text-alignment và font-size sẽ thay thế bởi Style Sheet Trong(đúng theo tính chất ưu tiên) Các thuộc tính Border trong CSS
--------------------------------------------------------------------------------
Các thuộc tính Border trong CSS định nghĩa đường bao( biên) xung quanh một thành phần. --------------------------------------------------------------------------------
Các ví dụ:

- Thiết lập kiểu cách của bốn đường bao.
Ví dụ này mô phỏng làm thế nào để thiết lập kiểu cách của bốn đường bao

- Thiết lập các đường bao khác nhau trên mỗi cạnh.
Ví dụ này mô tả làm thế nào để thiết lập các đường bao khác nhau trên mỗi cạnh của phần tử

- Thiết lập màu của bốn đường bao
Ví dụ này mô tả làm thế nào để thiết lập màu của bốn đường bao. Nó có thể thiết lập từ cạnh thứ nhất đến cạnh thứ bốn.

- Thiết lập độ rộng của đường bao đáy
Ví dụ này mô tả làm thế nào để thiết lập độ rộng của đường bao đáy

- Thiết lập độ rộng của đường bao trái
Ví dụ này mô tả làm thế nào để thiết lập độ rộng của đường bao bên trái

- Thiết lập độ rộng của đường bao phải Ví dụ này mô tả làm thế nào để thiết lập độ rộng của đường bao bên phải. Tương tự như thuộc tính border_left_width. Xem cách dùng ở bảng thuộc tính phía dưới.

- Thiết lập độ rộng của đường bao đỉnh
Ví dụ này mô tả làm thế nào để thiết lập độ rộng của đường bao đỉnh

- Tất cả các thuộc tính đường bao đáy trong một khai báo
Ví dụ này mô tả một thuộc tính nhanh chóng để thiết lập tất cả các thuộc tính cho đường bao đáy trong một khai báo.

- Tất cả các thuộc tính đường bao trái trong một khai báo
Ví dụ này mô tả một thuộc tính nhanh chóng để thiết lập tất cả các thuộc tính cho đường bao trái trong một khai báo

- Tất cả các thuộc tính đường bao phải trong một khai báo
Ví dụ này mô tả một thuộc tính nhanh chóng để thiết lập tất cả các thuộc tính cho đường bao trái trong một khai báo

- Tất cả các thuộc tính đường bao đỉnh trong một khai báo
Ví dụ này mô tả một thuộc tính nhanh chóng để thiết lập tất cả các thuộc tính cho đường bao đỉnh trong một khai báo

- Tất cả các thuộc tính về độ rộng của đường bao trong một khai báo
Ví dụ này mô tả một thuộc tính nhanh chóng để thiết lập tất cả các thuộc tính cho độ rộng đường bao trong một khai báo, có thể thiết lập cho từ một đến bốn đường bao.
- Tất cả các thuộc tính đường bao trong một khai báo
Ví dụ này mô tả một thuộc tính nhanh chóng để thiết lập tất cả các thuộc tính cho bốn đường bao đáy trong một khai báo, có thể thiết lập cho từ một đến bốn đường bao.
Các đường bao trong CSS

Thuộc tính Border cho phép bạn chỉ định kiểu cách, màu sắc và độ rộng của đường bao của một thành phần. Trong HTML chúng ta sử dụng bảng để tạo ra các đường bao xung quanh một văn bản, nhưng với các thuộc tính Border trong CSS chúng ta có thể tạo các đường bao với hiệu ứng đẹp và nó có thể ứng dụng cho phần tử bất kỳ.
Thuộc tính Border:
Thuộc tính
Mô tả
Ví dụ
border
Một thuộc tính tốc hành để thiết lập thuộc tính cho toàn bộ cả 4 đường bao trong một khai báo.
border-width
border-style
border-color
border-bottom
Một thuộc tính tốc hành để thiết lập thuộc tính cho đường bao đáy trong một khai báo.
border-bottom-width
border-style
border-color
border-bottom-color
Thiết lập màu sắc của đường bao đáy
border-color
border-bottom-style
Thiết lập kiểu cách của đường bao đáy.
border-style
border-bottom-width
Thiết lập độ rộng của đường bao đáy
thin
medium
thick
length
border-color
Thiết lập màu sắc của bốn đường bao, có thể đạt màu từ một đến bốn.
color
border-left
Một thuộc tính tốc hành để thiết lập thuộc tính cho đường bao trái trong một khai báo.
border-left-width
border-style
border-color
border-left-color
Thiết lập màu sắc của đường bao trái.
border-color
border-left-style
Thiết lập kiểu cách của đường bao trái.
border-style
border-left-width
Thiết lập độ rộng của đường bao trái.
thin
medium
thick
length
border-right
Một thuộc tính tốc hành để thiết lập thuộc tính cho đường bao phải trong một khai báo.
border-right-width
border-style
border-color
border-right-color
Thiết lập màu sắc của đường bao phải.
border-color
border-right-style
Thiết lập kiểu cách của đường bao phải.
border-style
border-right-width
Thiết lập độ rộng của đường bao phải.
thin
medium
thick
length
border-style
Thiết lập kiểu cách của cả bốn đường bao, có thể đạt được kiểu từ một đến bốn.
none
hidden
dotted
dashed
solid
double
groove
ridge
inset
outset
border-top
Một thuộc tính tốc hành để thiết lập thuộc tính cho đường bao đỉnh trong một khai báo.
border-top-width
border-style
border-color
border-top-color
Thiết lập màu sắc của đường bao đỉnh.
border-color
border-top-style
Thiết lập kiểu cách của đường bao đỉnh.
border-style
border-top-width
Thiết lập độ rộng của đường bao đỉnh
thin
medium
thick
length
border-width
Một thuộc tính tốc hành để thiết lập độ rộng của
bốn đường bao trong một khai báo, có thể có từ một đến bốn giá trị.
thin
medium
thick
length
Thuộc tính Font trong CSS

Thuộc tính phông trong CSS xác định phông chữ trong văn bản Ví dụ

- Thiết lập phông chữ trong một văn bản
Ví dụ này mô phỏng một phông chữ được thiết lập như thế nào.

- Thiết lập kích cỡ cho phông chữ
Ví dụ này mô phỏng thiết lập kích cỡ phông chữ như thế nào.

- Thiết lập kiểu cách của phông chữ
Ví dụ này mô phỏng thiết lập kiểu cách phông chữ như thế nào.

- Thiết lập biến thể của phông
Ví dụ này mô phỏng cách thiết lập các biến thể của phông chữ như thế nào.

- Thiết lập đường bao của phông chữ
Ví dụ này mô phỏng thiết lập độ đậm của phông chữ như thế nào.

- Tất cả thuộc tính trong một khai báo.
Ví dụ này mô phỏng sử dụng thuộc tính tốc hành để thiết lập thuộc tính cho tất cả các phông chữ trong một khai báo như thế nào.

Các phông trong CSS
Thuộc tính Font cho phép bạn thay đổi họ phông, độ đậm, kích cỡ và kiểu cách phông chữ của văn bản.
Các Lưu ý - Mẹo hữu ích
Các Phông chữ thì được xác định bởi tên của chúng trong CSS1. Lưu ý rằng nếu một trình duyệt không hỗ trợ thuộc tính phông được chỉ định thì nó sẽ sử dụng phông mặc định.
Thuộc tính Font:
Thuộc tính
Mô tả
Giá trị
font
Một thuộc tính nhỏ để thiết lập tất cả thuộc tính cho một phông trong một khai báo.
font-style
font-variant
font-weight
font-size/line-height
font-family
caption
icon
menu
message-box
small-caption
status-bar
font-family
Một danh sách ưu tiên của các họ phông cho một thành phần.
family-name
generic-family
font-size
Thiết lập kích cỡ cho một phông chữ.
xx-small
x-small
small
medium
large
x-large
xx-large
smaller
larger
length
%
font-stretch
Những rút gọn hoặc mở rộng của phông.
normal
wider
narrower
ultra-condensed
extra-condensed
condensed
semi-condensed
semi-expanded
expanded
extra-expanded
ultra-expanded
font-style
Thiết lập kiểu cách của phông.
normal
italic
oblique
font-variant
Hiển thị văn bản trong một phông chữ HOA NHỎ hoặc một phông chữ thường.
normal
small-caps
font-weight
Thiết lập trọng lượng của phông.
normal
bold
bolder
lighter
100
200
300
400
500
600
700
800
900
Thuộc tính List trong CSS
Thuộc tính List cho phép bạn thay đổi giữa các điểm_đánh_dấu_mục_danh_sách khác nhau, thiết lập một ảnh như một điểm_đánh_dấu_mục_danh_sách và thiết lập nơi để đặt điểm_đánh_dấu_mục_danh_sách. Ví dụ:

- Các điểm_đánh_dấu mục khác nhau trong một danh sách không có thứ tự
Ví dụ này mô tả các điểm_đánh_dấu_mục_danh_sách khác nhau trong CSS

- Các điểm_đánh_dấu mục khác nhau trong một danh sách có thứ tự
Ví dụ này mô tả các điểm_đánh_dấu_mục_danh_sách khác nhau trong CSS

- Thiết lập một ảnh như điểm_đánh_dấu_mục_danh_sách
Ví dụ này mô phỏng cách thiết lập một ảnh như một điểm_đánh_dấu_mục_danh_sách

- Đặt một điểm_đánh_dấu_mục_danh_sách
Ví dụ này mô phỏng nơi để đặt chỗ cho điểm đánh dấu mục danh sách

- Tất cả các thuộc tính danh sách trong một khai báo
Ví dụ này mô tả một cách nhanh chóng để thiết lập cho toàn bộ các thuộc tính cho một danh sách trong một khai báo.

Thuộc tính của Danh sách
Thuộc tính
Mô tả
Giá trị
list-style
A shorthand property for setting all of the properties for a list in one declaration
Một thuộc tính ngắn gọn để thiết lập cho toàn bộ thuộc tính của danh sách trong một khai báo
list-style-type
list-style-position
list-style-image
list-style-image
Sets an image as the list-item marker
Thiết lập một ảnh như một điểm_đánh_dấu_mục_danh_sách.
none
url
list-style-position
Places the list-item marker in the list
Đặt một điểm_đánh_dấu_mục_danh_sách trong danh sách.
inside
outside
list-style-type
Sets the type of the list-item marker
Thiết lập kiểu của điểm_đánh_dấu_mục_danh_sách.
none
disc
circle
square
decimal
decimal-leading-zero
lower-roman
upper-roman
lower-alpha
upper-alpha
lower-greek
lower-latin
upper-latin
hebrew
armenian
georgian
cjk-ideographic
hiragana
katakana
hiragana-iroha
katakana-iroha
marker-offset
auto
length
Thuộc tính Text trong CSS
Thuộc tính Text trong CSS xác định diện mạo của văn bản. Ví dụ

- Thiết lập màu của văn bản
Ví dụ này mô tả làm thế nào để thiết lập màu của văn bản

- Thiết lập màu nền của văn bản
Ví dụ này mô tả làm thế nào để thiết lập màu nền của một phần của văn bản

- Chỉ định khoảng cách giữa các ký tự
Ví dụ này mô tả làm thế nào để tăng hoặc giảm khoảng trống giữa các ký tự

- Căn văn bản
Ví dụ này mô tả làm thế nào để căn chỉnh văn bản

- Trang trí cho văn bản
Ví dụ này mô tả làm thế nào để thêm trang trí cho văn bản.

- Thụt đầu dòng văn bản
Ví dụ này mô tả làm thế nào để thụt đầu dòng đầu tiên của một đoạn

- Kiểm soát chữ trong văn bản
Ví dụ này mô tả làm thế nào để kiểm soát chữ trong một văn bản

Text trong CSS
Thuộc tính Text cho phép bạn kiểm soát diện mạo của văn bản. Nó cũng có thể thay đổi màu của văn bản, tăng hoặc giảm khoảng cách giữa các ký tự trong một văn bản, căn chỉnh một văn bản, trang trí cho văn bản, thụt dòng đầu tiên và nhiều hiệu ứng khác.
Thuộc tính Text
Thuộc tính
Mô tả
Giá trị
color Thiết lập màu cho chữ color
direction Thiết lập hướng cho chữ ltr
rtl
letter-spacing Tăng hoặc giảm khoảng trống giữa các ký tự normal
length
text-align Căn chỉnh văn bản trong một thành phần left
right
center
justify
text-decoration Thêm trang trí cho văn bản none
underline
overline
line-through
blink
text-indent Thụt dòng đầu văn bản trong một thành phần length
%
text-shadow none
color
length
text-transform Kiểm soát ký tự trong một thành phần none
capitalize
uppercase
lowercase
white-space Thiết lập bao nhiêu khoảng trắng trong một thành phần normal
pre
nowrap
word-spacing Tăng hoặc giảm khoảng trống giữa các từ normal
length
Thuộc tính Padding
Thuộc tính Padding của CSS xác định khoảng trống giữa thành phần đường bao và nội dung. Ví dụ:

- Thiết lập left padding
Thuộc tính này mô phỏng làm thế nào để thiết lập khoảng đệm phía bên trái của một ô của bảng

- Thiết lập right padding
Thuộc tính này mô phỏng làm thế nào để thiết lập khoảng đệm phía bên phải của một ô của bảng

- Thiết lập top padding
Thuộc tính này mô phỏng làm thế nào để thiết lập khoảng đệm với đỉnh của một ô của bảng

- Thiết lập bottom padding
Thuộc tính này mô phỏng làm thế nào để thiết lập khoảng đệm với đáy của một ô của bảng

- Tất cả các thuộc tính padding trong một khai báo
Ví dụ này mô phỏng một thuộc tính ngắn để thiết lập tất cả các thuộc tính padding trong một khai báo, có thể nhận từ một tới bốn giá trị.

Padding trong CSS
Thuộc tính Padding xác định khoảng trống giữa phần tử đường bao và nội dung. Không cho phép các giá trị âm. Khoảng trống đệm của đỉnh, phải, dưới và trái có thể được thay đổi một cách độc lập sử dụng các thuộc tính riêng biệt. Một thuộc tính khoảng đệm ngắn gọn thì cũng được tạo ra để kiểm soát nhiều cạnh cùng lúc.
Các thuộc tính của Padding
Thuộc tính
Mô tả
Giá trị
padding Một thuộc tính ngắn gọn để thiết lập tất cả các khoảng đệm chỉ với một lần khai báo padding-top
padding-right
padding-bottom
padding-left
padding-bottom Thiết lập khoảng đệm tại đáy của một phần tử length
%
padding-left Thiết lập khoảng đệm phía trái của một phần tử. length
%
padding-right Thiết lập khoảng đệm phía phải của một phần tử. length
%
padding-top Thiết lập khoảng đệm trên đỉnh của một phần tử. length
%
Các thuộc tính Background trong CSS
Các thuộc tính Background trong CSS định nghĩa các hiệu ứng của một thành phần Ví dụ:

- Thiết lập màu nền
Ví dụ này mô phỏng cách làm thế nào để thiết lập màu nền cho một thành phần

- Thiết lập một ảnh như một nền
Ví dụ này mô phỏng cách làm thế nào để thiết lập một ảnh như một nền.

- Làm thế nào để lặp một ảnh nền
Ví dụ này mô phỏng cách làm thế nào để lặp một ảnh nền chỉ theo chiều dọc

- Làm thế nào để đặt một ảnh nền
Ví dụ này mô phỏng cách làm thế nào để đặt một ảnh trên một trang

- Làm thế nào để thiết lập một ảnh nền cố định
Ví dụ này mô phỏng cách làm thế nào để thiết lập một ảnh nền cố định. Ảnh đó sẽ không cuộn theo phần còn lại của văn bản.

- Tất cả các thuộc tính nền trong một khai báo
Ví dụ này mô phỏng cách làm thế nào để sử dụng một thuộc tính ngắn gọn để thiết lập tất cả các thuộc tính nền trong một khai báo.

Thuộc tính Background trong CSS
Thuộc tính nền cho phép bạn kiểm soát màu nền của một thành phần, thiết lập một ảnh như nền trong văn bản, lặp lại một ảnh nền theo chiều dọc hoặc chiều ngang và vị trí của một ảnh trên một trang.
Các thuộc tính Background
Thuộc tính
Mô tả
Giá trị
background Một thuộc tính ngắn gọn để thiết lập tất cả các thuộc tính nền trong một khai báo. background-color
background-image
background-repeat background-attachment background-position
background-attachment Thiết lập liệu một ảnh có đứng cố định một chỗ hay cuộn theo phần văn bản còn lại của trang. scroll
fixed
background-color Thiết lập màu nền của một phần tử color-rgb
color-hex
color-name
transparent
background-image Thiết lập một ảnh như nền của trang. url
none
background-position Thiết lập điểm xuất phát của một ảnh nền top left
top center
top right
center left
center center
center right
bottom left
bottom center
bottom right
x-% y-%
x-pos y-pos
background-repeat Thiết lập cách một ảnh sẽ được lặp lại như thế nào. repeat
repeat-x
repeat-y
no-repeat
Thuộc tính Margin trong CSS
Thuộc tính Margin trong CSS xác định khoảng trống xung quanh phần tử. Ví dụ:

- Thiết lập lề đáy của một văn bản
Ví dụ này mô phỏng làm thế nào để thiết lập lề đáy của một văn bản.

- Tất cả các thuộc tính lề trong một khai báo
Thiết lập một tính chất nhanh chóng để thiết lập tất cả các thuộc tính lề trong một khai báo.

Các lề trong CSS
Thuộc tính căn lề xác định khoảng trống xung quanh các phần tử. Nó có thể sử dụng cả giá trị âm gối lên nội dung. Các thuộc tính căn lề đỉnh, phải, đáy và trái có thể được thay đổi một cách độc lập sử dụng các thuộc tính riêng rẽ. Một thuộc tính căn lề nhanh có thể được dùng để thay đổi tất cả các lề một lần. Lưu ý về trình duyệt: Netscape và IE thiết lập mặc định lề cho thẻ body là 8px. Trình duyệt Opera không thiết lập! Để thay thế, Opera áp dụng một khoảng đệm là 8px, vì thế nếu một người muốn căn chỉnh lề cho toàn bộ một trang và hiển thị một cách đúng đắn trong Opera, thì khoảng đệm cho body cũng phải được thiết lập.
Các thuộc tính của Margin:
Thuộc tính
Mô tả
Giá trị
margin Một thuộc tính nhanh để thiết lập thuộc tính cho lề trong một khai báo. margin-top
margin-right
margin-bottom
margin-left
margin-bottom Thiết lập lề đáy của một phần tử. auto
length
%
margin-left Thiết lập lề trái của một phần tử. auto
length
%
margin-right Thiết lập lề phải của một phần tử. auto
length
%
margin-top Thiết lập lề đỉnh của một phần tử. auto
length
%


Chúc bạn thành công

VnTim™  Nguồn http://my.opera.com/tranmanhlinh/blog/show.dml/1419188

Thứ Ba, 20 tháng 4, 2010

Các bộ công cụ lập trình thời đại

VnTim™  ^-^   I. Thảo luận
Lập trình là một lĩnh vực quan trọng trong thế giới Công nghệ thông tin. Mặc dù lĩnh vực này chỉ thuộc về một số ít người trên thế giới - theo nghĩa nào đó là thuộc về các lập trình viên, nhưng Lập trình có vai trò và tính chất quyết định đối với sự phát triển của Công nghệ thông tin nói chung và Phần mềm nói riêng. Bất kỳ sự đột phá nào trong ứng dụng CNTT đều có dấu ấn của công nghệ lập trình, bởi vì Lập trình chính là quá trình cốt lõi tạo ra các sản phẩm phần mềm.
Trước những năm 1990 người ta cho rằng ngôn ngữ lập trình quyết định kết quả lập trình. Chẳng hạn, trong một tình huống cụ thể nào đó, chương trình viết bằng C++ thì tốt hơn Pascal, viết bằng Pascal thì tốt hơn Fortran… Khi các công cụ lập trình còn thô sơ và các yêu cầu phần mềm chưa cao thì nhận định này là khá chính xác.
Sau đó người ta cho rằng công nghệ lập trình mới ảnh hưởng lớn nhất đến sản phẩm cuối cùng, sự thống trị trong thập kỷ 90 của lập trình hướng đối tượng và RAD (viết tắt của Rapid Application Development nghĩa là Công cụ phát triển ứng dụng nhanh, thường gọi là lập trình trực quan hay Visual Programming) đã cho thấy tư duy của người lập trình bị ảnh hưởng bởi nền tảng phát triển phần mềm. Không ai phê phán Delphi - phiên bản phát triển từ ngôn ngữ Pascal là kém hơn Java hay Visual C++. Tuy mới có 1/20 thời gian của thế kỷ 21 trôi qua nhưng từ đầu thế kỷ đến nay Công nghệ thông tin đã có những bước phát triển mạnh mẽ trong đó có Công nghệ phần mềm. Nhu cầu sử dụng phần mềm và yêu cầu đối với phần mềm đột nhiên tăng vọt khiến nhiều nhà phát triển phần mềm phải xem lại cách làm việc của mình. Đó chính là cơ sở cho sự phát triển rộng rãi trên toàn thế giới của ngành Công nghiệp phần mềm hiện nay. Người ta không chỉ quan tâm đến công nghệ lập trình mà còn quan tâm đến quy trình phát triển phần mềm.
Các công ty bắt đầu chuẩn hóa và đưa ra quy trình công nghệ phần mềm của mình - ở đó việc lựa chọn bộ công cụ lập trình có vai trò rất quan trọng. Các bộ công cụ lập trình hiện nay có xu hướng thống nhất và tương tác với nhau chặt chẽ. Ý tưởng này đã từng xuất hiện trong thập kỷ trước, tiêu biểu như CORBA của Sun hay Delphi - C++ Builder Project Union của Borland, tuy nhiên khi đó chúng chưa được ưa chuộng. Khi Visual Studio.NET của Microsoft ra đời năm 2002, người ta nhận thấy rằng các công cụ lập trình nên đi với nhau thành “bộ”. Đến thời điểm hiện nay giải pháp về công cụ lập trình của các nhà phát triển luôn được nhắc đến như “bộ công cụ”. Một ví dụ về ý nghĩ của 2 lập trình viên qua 3 giai đoạn này như sau:

II. Bộ công cụ lập trình - một sự phân loại
Hiện nay có rất nhiều ngôn ngữ lập trình (NNLT) và rất nhiều công cụ lập trình (CCLT). Một CCLT có thể gắn liền với một NNLT hoặc không - đây là điều mà một số ít người không có kinh nghiệm không hề biết.
Tôi và bạn bè đã từng có tham vọng phân loại các NNLT và CCLT cho rành rọt, rõ ràng để có được cái nhìn tổng quan và hệ thống về lịch sử các NNLT và CCLT. Tuy nhiên việc đó quá khó khăn do thời gian và trình độ của chúng tôi có hạn. Hơn nữa tìm ra một cách để phân loại xem ra đã khó chứ chưa đến lúc thực hiện phân loại.
Ta có thể phân loại theo NNLT: Dòng C có Visual C++, C++ Builder… Dòng Pascal có Borland Pascal, Delphi…
Hay theo phạm vi sử dụng: Dòng lập trình hệ thống có Microsoft Assembly, Borland C… Dòng lập trình trực quan có Visual Basic, Jbuilder… Dòng lập trình mạng có Java, ASP, PHP… Hay theo phong cách lập trình: Dòng cổ điển có Pascal, Fortran… Dòng hướng đối tượng có C++, SmallTalk, Java…
Hay theo nơi ứng dụng: Dòng trên Windows có Visual Studio, Delphi… Dòng trên Linux có Kylix, QT… Dòng trên web có ASP, JSP…v.v…
Nếu mục đích đầu tiên của việc phân loại này là có được cái nhìn lịch sử, thì một mục đích khác cũng quan trọng không kém đó là thông qua việc phân loại có được cái nhìn về công nghệ thời đại và xu hướng phát triển trong tương lai. Chính vì lẽ đó, trong bài viết này tôi muốn giới thiệu với các bạn một số bộ công cụ lập trình thời đại - thông qua phép phân loại chưa trọn vẹn là nhà sản xuất công cụ lập trình hy vọng bạn sẽ có được cái nhìn tương đối về các CCLT hiện nay.
III. Vai trò của các công cụ lập trình cổ điển
Do mục đích phục vụ giảng dạy và học tập, các công cụ lập trình cổ điển đến nay vẫn còn tồn tại. Có những công cụ đã tồn tại hơn 20 năm nhưng vẫn còn được sử dụng rộng rãi và thậm chí là công cụ trong các sự kiện CNTT lớn. Chẳng hạn Turbo Pascal 7.0 ra đời năm 1984 đến nay vẫn là công cụ thi học sinh giỏi Tin học mọi cấp tại Việt Nam. Turbo Assembler và Microsoft Assembler từ thập kỷ 80 đến nay không có phiên bản mới nào nhưng chúng vẫn là các trình biên dịch thông dụng trên thế giới cho ngôn ngữ Assembly trên nền DOS/Windows. Điều tương tự cũng xảy ra với Turbo C++ 3.0 ra đời năm 1984 nhưng đến nay vẫn là công cụ thực hành của những người mới học lập trình C và C++.
Đối với các ngôn ngữ “kinh viện” như vậy ngày nay cũng xuất hiện thêm nhiều CCLT (thường gọi là Trình biên dịch nhưng không chính xác) được cho là tốt hơn, chẳng hạn Pascal có Free Pascal, C có GCC… nhưng thực chất TP, TC, TA… không dễ bị thay thế. Đặc biệt là ở Việt Nam, chúng ta vẫn có thói quen sử dụng các công cụ quá lạc hậu. Tại trường đại học B.K.H.N, các thầy cô yêu cầu sinh viên thực hành bằng Turbo Pascal 5.0 và 5.5 chứ không phải 7.0 . Các kỳ thi Olympic Tin học và Tin học trẻ cho phép thí sinh lập trình C sử dụng Turbo C 2.0 chứ không phải 3.0 . Chú ý là sự khác biệt về tính năng giữa các phiên bản tôi đưa ra là rất lớn, Turbo C 2.0 và TP 5.5 soạn chương trình rất tệ.
Những điều này được lý giải như thế nào? Có lẽ là do tính cố hữu trong quan niệm của con người. Cho dù lý giải đúng hay sai thì các công cụ lập trình cổ điển cũng đáng để chúng ta quan tâm, vì chúng vẫn còn tồn tại phổ biển quanh ta. Tôi sẽ trình bày chung chung với các công cụ lập trình thời đại.
IV. Một số bộ CCLT thời đại qua các nhà sản xuất
SOFTWARE CORPORATION
Trước đây công ty có cái tên “rất rộng” là Borland International, khi ra đời Delphi họ đổi thành Inprise, sau đó có lẽ “làm ăn xuống” với cái tên này nên họ đổi trở lại về cái tên Borland nhưng “hẹp hơn” - chỉ trong lĩnh vực phần mềm: Borland Software Corporation. Quả thực sau khi đổi về tên cũ, với các sản phẩm mới đặc biệt là JBuilder cái tên Borland lại tiếp tục vinh dự được thế giới biết đến như 1 trong 2 nhà sản xuất công cụ lập trình và trình biên dịch hàng đầu thế giới, cùng chia sẻ danh hiệu này với Borland là Microsoft.
1. Các công cụ cổ điển họ “Turbo”, “Borland”
Như đã nói Turbo Assembler 5.0, Turbo Pascal 7.0, Turbo C++ 3.0 hiện nay vẫn rất thông dụng tại Việt Nam. Trên website của Borland vẫn cho download các trình biên dịch này, điều đó cho thấy trên thế giới chúng vẫn được sử dụng.
TASM, TP chỉ yêu cầu tối thiểu 2 tệp tin là có biên dịch được. Bộ cài TC 3.0 có phần nặng hơn. Các kỳ thi lập trình Pascal tại Việt Nam và trên thế giới đang có xu hướng sử dụng Free Pascal (FP) thay cho TP. Sự khác biệt lớn nhất của FP là cho phép lập trình với bộ nhớ không giới hạn, trong khi TP có giới hạn bộ nhớ 64KB, các bạn chưa từng dùng FP có thể hiểu rằng: FP cho ta khai báo bao nhiêu biến cũng được. Điều đó dẫn đến tư duy lập trình trên FP có nhiều khác biệt với TP - với dữ liệu không hạn chế có thể giúp bạn thực hiện những giải thuật rất ngắn gọn, nhưng cũng có thể làm bạn chủ quan và giải bài toán một cách không sâu sắc. Tuy FP có một số khác biệt và hạn chế trong việc sử dụng so với TP đã quá quen thuộc với các bạn lập trình Pascal, nhưng các bạn lập trình Pascal nên chuyển sang sử dụng FP. Các kỳ thi lập trình quốc tế đều đã dùng FP, ở Mỹ còn cấm dùng cả Pascal để lập trình. Các công cụ này bạn có thể download tại website của tạp chí: http://www.thnt.com.vn/download.php.
Một thời gian người ta cũng biết đến Borland Pascal (BP) và Borland C++ (BC) như hai công cụ khá mạnh, bằng chứng là có rất nhiều sách viết về chúng, nhiều sách đã dịch sang tiếng Việt. BP được phát triển từ Turbo Pascal for Windows, phiên bản BP 7.0 được quảng cáo là rất mạnh, có khả năng viết các ứng dụng trên Windows nhanh chóng và đẹp mắt. Borland đưa ra vài chương trình ví dụ (trong thư mục EXAMPLES) hay bằng BP, trong đó có trò chơi Cờ vua gây kinh ngạc cho nhiều người. Cả BP và BC đều xếp vào các công cụ dòng “nửa vời”, chúng có thể viết các ứng dụng trên Windows nhưng không phải theo phong cách trực quan - cách lập trình này gọi là WindowsPlatform. Các lập trình viên ngôn ngữ C rất thích cách lập trình này còn Pascal thì không, nhưng BC không phải sự lựa chọn của họ. BC thua Visual C++ về danh tiếng và cộng đồng cùng phát triển.
Vai trò của BP và BC chính là vai trò chuyển tiếp - nhờ những công cụ này mà Borland đã phát triển chúng thành các công cụ mạnh sau này, tạo nên bộ Borland Developer Studio.
2. Borland Developer Studio
Cái tên Borland Developer Studio (BDS) mới xuất hiện trong 1-2 năm gần đây. Microsoft rất sáng tạo khi dùng khái niệm Studio cho bộ CCLT của họ, gần đây các công ty đua nhau bắt chước dùng khái niệm Studio (Sun, Oracle, Borland…), coi như thừa hưởng danh tiếng của Microsoft.
BDS của Borland bao gồm: Delphi 2006, C++ Builder 2006C# Builder 2006. Trong một số chiến dịch quảng cáo khác, Borland chỉ nhắc đến Delphi và C# Builder.
Nhớ lại năm 1998 Borland tung ra phiên bản C++ Builder và Delphi 5.0 gây chấn động giới phần mềm. Delphi là một CCLT nhưng đôi khi được coi là một NNLT, ngôn ngữ Delphi phát triển từ ngôn ngữ Object Pascal (Pascal hướng đối tượng) với khả năng lập trình hướng đối tượng không thua kém Java, mặc dù không đa dạng như C++. Người sáng tạo ra Delphi đã nhận thấy C++ quá phức tạp, cần phải bỏ bớt tính năng đi, chỉ để lại những tính năng hữu ích nhất, và ông ta đã thành công. Sau này ông ta bỏ Borland chuyển sang Microsoft, tại đó ông lại gây ngạc nhiên cho giới lập trình khi tạo ra C#. Những người lập trình kinh nghiệm nhận thấy rõ C# có tinh thần rất giống với Delphi
Trước năm 2000 rất nhiều công ty phần mềm trên thế giới có yêu cầu với lập trình viên là “Sử dụng thành thạo Delphi hoặc C++ Builder”. Cả Delphi và C++ Builder đều là các công cụ thiết kế trực quan, bạn nào chưa biết có thể hình dung chúng giống như Visual Basic nhưng dùng ngôn ngữ Pascal và C++ để viết mã lệnh. Một dự án phần mềm có thể được phân rẽ để sử dụng Delphi hoặc C++ Builder, nói cách khác 2 công cụ này có thể coi như một, như vậy một dự án có thể kết hợp nhiều sức mạnh hơn. Khi đó Linux đang rất phát triển và các nhà sản xuất phần mềm còn hồ hởi bởi khả năng viết các ứng dụng một lần và biên dịch để chạy trên cả Windows và Linux, Delphi gọi đó là COM. Không có gì phải bàn cãi về sức mạnh của 2 công cụ này và hầu hết các nhà phát triển phần mềm khẳng định chúng mạnh hơn Visual Basic hay Visual J++ của Microsoft (còn Visual C++ phải xem xét lại). Borland cũng đưa thêm một công cụ là Kylix cho phép phát triển các ứng dụng trên Linux, Kylix kết hợp khả năng của C++ và Delphi. Trước đây chúng tôi đã từng phát triển cả các ứng dụng web trên Linux bằng Kylix 3.
Cặp bài trùng này chỉ phát triển thêm một số phiên bản không ấn tượng cho lắm là Delphi 7.0, 8.0, C++ Builder 6.0, C++ Builder X và im hơi lặng tiếng đến tận cuối năm vừa rồi. Mặc dù BDS bao gồm cả C++ Builder 2006 nhưng hầu hết các Developer Network (hiểu là Mạng các nhà phát triển phần mềm) đều nhắc đến sự kết hợp của Delphi và C#. Rất có thể C# Builder đã thay thế được C++ Builder, giới lập trình có thêm một cặp bài trùng mới.

Bộ công cụ này có những đặc điểm mới vượt xa hơn cả những tính năng thường thấy của một bộ CCLT. Ngoài khả năng tạo các ứng dụng trên nền Windows và.NET, các ứng dụng chạy phía Server và các khả năng vốn có, bộ BDS 2006 có những tính năng liên quan đến Quản lý và Phân tích dự án phần mềm: Thiết kế biểu đồ UML, Sinh tài liệu và nhất là Design Patterns. Đối với nhiều người Design Patterns còn là mới mẻ nhưng trên thế giới nó đã quá thông dụng, đó là một sản phẩm thuộc công nghệ lập trình hướng đối tượng, cho phép một phần mềm được thiết kế dựa trên các mẫu có sẵn đã được thu thập và chuẩn hóa. Thử sử dụng tôi thấy tính năng này không chỉ cho phép ta lấy Design Patterns trong kho có sẵn mà còn cho phép ta tổ chức lại hay thêm các Design Patterns của mình vào.
Một tài liệu được tạo ra như dưới đây có thể khiến nhiều nhà phát triển phần mềm thích thú và lựa chọn lại công cụ cho mình.

3. JBuilder
Không có một chút hồ đồ nào khi nhận định rằng JBuilder là công cụ xây dựng ứng dụng Java hàng đầu thế giới từ trước đến nay, trải qua mỗi giai đoạn, JBuilder đều có những phiên bản vượt mặt các công ty khác, kể cả Microsoft.
Phạm vi ứng dụng của Java có lẽ là rộng lớn nhất trong các NNLT. Tuy nhiên tác giả của Java - hãng Sun không đủ khả năng xây dựng một công cụ phát triển bao chứa và kết hợp đủ các khả năng của Java. Borland đã làm được điều này. Đặc biệt hơn, Borland tự xây dựng các máy ảo Java - cơ sở để các chương trình Java thực thi được. Điều này coi như đã vượt mặt Sun vì đáng lẽ các nền tảng công nghệ phải là do Sun xây dựng. Trong lúc Sun đang xấu hổ khắc phục các máy ảo JDK 1.X đầy lỗi thì Borland đã đưa ra JDK 5.0.
Đặc trưng của JBuilder cũng như các công cụ khác của Borland là có nhiều phiên bản dành cho nhiều hệ điều hành: Windows, Linux, Solaris… Trong khi các công cụ của Microsoft chỉ chạy trên Windows. JBuilder có khả năng xây dựng các loại ứng dụng Java một cách trực quan và chuyên nghiệp nhất, theo các công nghệ và mô hình mà Sun đưa ra như J2EE, RMI,… Một công cụ khác cũng cho phép thiết kế Java trực quan là Visual J++ tôi sẽ đề cập đến dưới đây. Nếu bạn có ý định học Java thì bạn nên dùng JBuilder, ngoài thị trường có thể dễ dàng tìm thấy phiên bản 8.0 hoặc JBuilder X hoàn toàn đủ để bạn xây dựng các ứng dụng Java. Khi nói về Sun tôi sẽ nhắc đến phạm vi ứng dụng của Java chi tiết hơn.
Trang chủ Borland.com không có thông tin về các phiên bản trước đây của các công cụ này. Để xem chi tiết bạn phải vào website của Borland ở nước khác, chẳng hạn Borland.pl, mặc dù tiếng Polska hơi khó “đoán” một chút nhưng các thông số thì bằng tiếng Anh, bạn chọn mục Ceny góc bên phải để xem danh mục sản phẩm, tuy nhiên danh mục này cũng có đôi chút nhầm lẫn không quan trọng lắm.
CORPORATION
Không phải nhắc nhiều đến Microsoft, họ hoàn toàn thống trị thế giới trong lĩnh vực phần mềm - từ hệ điều hành đến phần mềm ứng dụng và công cụ lập trình.
Trước khi Windows 95 ra đời Microsoft chủ yếu được biết đến thông qua hệ điều hành MSDOS và Win3.X. Microsoft cũng có một số trình biên dịch như Microsoft Assembler (MASM), Microsoft C… nhưng không gây được tiếng vang lớn.
Hiện nay MASM mặc dù khá nặng nề nhưng vẫn được sử dụng cho việc biên dịch các chương trình Assembly. Một số khác thích dùng TASM của Borland hơn vì TASM rất “nhẹ” (theo mọi nghĩa), tuy nhiên họ phải trả giá cho việc ứng dụng biên dịch bằng TASM sẽ không chạy được trong một số trường hợp đặc biệt. Các chuyên gia - trong đó có Peter Norton (sáng lập Symantec với họ sản phẩm Norton) trong cuốn sách “Cẩm nang lập trình” khuyến cáo không nên dùng TASM mà nên dùng MASM. Theo quan sát của tôi, đa số học sinh, sinh viên và các kỹ sư hiện nay vấn dùng TASM mà không có vấn đề gì trong thời gian đầu, đến khi thực hiện các chương trình quan trọng hơn, họ chuyển sang biên dịch bằng MASM cho an toàn.
Microsoft chỉ thực sự gây tiếng vang trong giới phát triển phần mềm khi đưa ra bộ công cụ Visual Studio.
1. Visual Studio
Visual Studio (VS) được coi là bộ công cụ lập trình thông dụng nhất thế giới. Mặc dù các công cụ VS và ứng dụng xây dựng bởi VS chỉ chạy trên Windows nhưng nhờ sự bành trướng của Windows - đặc biệt là trong thế giới phần mềm không có bản quyền, VS trở nên phổ biến và ngày càng phổ biến nhờ cộng đồng đông đảo sử dụng VS.
VS bao gồm Visual Basic (VB), Visual C++ (VC), Visual J++ (VJ), Visual Foxpro (VF), Visual Source Safe (VSS)… và một số công cụ khác.
Bộ VS hầu như không có tương tác với nhau giữa các thành phần nhỏ, các nhà phát triển chỉ chọn VB hoặc VC hoặc VF… làm công cụ phát triển chứ không chọn giống như BDS. Phiên bản từ năm 1998 đến nay vẫn còn sử dụng rộng rãi là VS 6.X, thường là 6.0, đôi khi cũng gặp VS 6.3 với những thay đối không đáng kể.
Visual Basic cho phép phát triển các ứng dụng trên Windows rất nhanh chóng, đặc biệt là các ứng dụng cơ sở dữ liệu. VB có phương pháp thiết kế rất đơn giản, lập trình viên không cần can thiệp quá sâu vào các quá trình mã nguồn khác. Tuy nhiên điều này cũng gây ra những hạn chế cho VB khi viết các ứng dụng can thiệp sâu vào hệ thống, các ứng dụng đa luồng và ứng dụng mạng. Những điểm này lại có đầy đủ ở VC.
Visual C++ chính là CCLT đáng tự hào nhất của Microsoft. Người ta kiểm tra và thống kê thấy phần lớn các phần mềm được viết bằng VC, các trò chơi lớn, ứng dụng văn phòng, kế toán… VC vừa có sức mạnh của ngôn ngữ C++ vừa có môi trường xây dựng rất hoàn hảo. VC có thể tạo ra nhiều kiểu ứng dụng: Console (chạy trên DOS chẳng hạn), MFC (giống như các ứng dụng VB) và đặc biệt là WindowsPlatform - hầu hết các chương trình yêu cầu tối ưu mã lệnh (như AntiVirus, Games đồ hoạ cao…) đều sử dụng cách xây dựng này - không sử dụng các đối tượng cung cấp sẵn của Microsoft mà chỉ sử dụng các hàm của Windows, nghĩa là ngay cả một nút lện hay Form bạn cũng phải viết lệnh tạo ra nó chứ không phải kéo - thả như MFC.
Foxpro là một hệ quản trị cơ sở dữ liệu phát triển từ dBase. Đôi khi người ta cũng gọi là ngôn ngữ Foxpro (nhưng như vậy không chính xác). Visual Foxpro là CCLT tốt nhất cho Foxpro, điều này là đương nhiên vì Microsoft đã mua và độc quyền phát triển Foxpro.
2. Visual Studio.NET
Visual Studio.NET là một sự phát triển mới của VS trên nền tảng mới mà Microsoft gọi là.NET Framework. Các ứng dụng viết bởi VS.NET tuy cũng là các file trông có vẻ thông thường nhưng chúng không chạy được nếu hệ điều hành không có.NET Framework vì các file EXE do VS.NET xây dựng không giống các file EXE trước đây, các file EXE của.NET có định dạng khác, còn chứa cả Meta Data và các mã lệnh đặc biệt. Đương nhiên định dạng mới này có nhiều điểm mạnh hơn. Trong VS.NET không có VJ++.NET và VF.NET (phiên bản mới của VF là 7.0) nhưng Microsoft đưa thêm Visual J#.NET và Visual C#.NET. VJ#.NET không có ý nghĩa lập trình trong VS.NET nhưng VC#.NET thì lại hoàn toàn khác.
Như đã nói ở trên tác giả của ngôn ngữ C# chính là tác giả của Delphi. Ông ta đã làm cho C# giống như một bản sao tiên tiến của Java. Tất cả các chương trình Java chỉ cần sửa duy nhất lệnh import thành using là được một chương trình C#, C# khắc phục một số vấn đề phức tạp ở Java như các vấn đề về gọi phương thức, xử lý ngoại lệ… Nhiều chuyên gia cho rằng C# ra đời có thể xóa sổ Java, họ cũng có lý khi đưa ra nhận định này, là vì Sun càng ngày càng không quan tâm đến Java, hơn nữa lập trình viên nào cũng biết Java chạy chậm như rùa bò. VC#.NET là một CCLT cho NNLT C#. C# còn nhiều ứng dụng khác nữa. Vì C# dùng cho nền.NET nên đôi khi người ta lẫn lộn và dùng chung các khái niệm C#, C#.NET, Visual C#, Visual C#.NET.
Lập trình C# tại Việt Nam đang được coi là thời thượng. Tuy nhiên trên thế giới người ta không quan tâm đến việc sử dụng VC#.NET hay VB.NET, vì chúng nằm trong một giải pháp hợp nhất của Microsoft: Visual Studio.NET. Trước đây VB và VC có phong cách khác nhau hoàn toàn, nhưng VB.NET và VC++.NET lại rất giống nhau. VB.NET không giống VB nữa, khác nhiều về cú lệnh và cả cách tổ chức chương trình. Nhờ sự thống nhất trong bộ VS.NET như vậy mà một phần mềm có thể phân rẽ thành nhiều đơn vị NNLT và CCLT khác nhau. Tuy Borland đưa ra ý tưởng này trước nhưng Microsoft lại tạo nên hoàn thiện trước tiên. Ngày nay nhiều hãng đã theo giải pháp của Microsoft, tạo ra sự kết hợp hài hòa giữa các CCLT.
ASP và ASP.NET cũng là hai ngôn ngữ được nhắc đến nhiều. ASP.NET (hay ASPX) là ngôn ngữ phát triển từ ASP. ASP là ngôn ngữ kịch bản chạy phía Server cho phép xây dựng các trang web động. Tuy được coi là không mạnh như PHP và JSP nhưng hiện nay cũng có khá nhiều website sử dụng ASP. ASP.NET khắc phục một số điểm yếu của ASP, có khả năng làm việc với môi trường.NET, tương tác với các NNLT và CCLT khác. Mặc dù ASP.NET được Microsoft quảng bá rất mạnh về sức mạnh của nó tuy nhiên đến nay đó mới chỉ là danh tiếng. Trong các ngôn ngữ kịch bản chạy phía Server, PHP mới là số 1 thế giới.
3. MSDN Library
MicroSoft Developer Network (MSDN) Library thường gọi ngắn gọn (nhưng không chính xác) là MSDN, là bộ thư viện phát triển các ứng dụng của Microsoft. MSDN Library là người bạn quen thuộc của các lập trình viên Visual Studio (.NET) trên toàn thế giới. MSDN giống như một cuốn từ điển tra cứu đa dạng về các vấn đề lập trình với VS. Bạn có thể tra cứu mọi vấn đề trong VS, học một công nghệ của Microsoft hay lấy các chương trình ví dụ hữu ích. Bộ MSDN cũ bao gồm 2 CD, bộ.NET mới bao gồm 7 CD bạn có thể tìm thấy tại các dịch vụ.
4. Visual Studio 2005 và SQL Server 2005

SQL Server được biết đến như hệ quản trị cơ sở dữ liệu Server và Client tốt nhất song thực tế điều này phải xem xét lại. Sự cạnh tranh của Oracle khiến Microsoft rất khó chịu và nhiều vụ việc kiện cáo đã từng diễn ra giữa 2 công ty này.
Tuy nhiên các ứng dụng xây dựng bởi VS hay VS.NET đều sử dụng SQL Server nên không sai khi nói rằng đây là một trong các cơ sở dữ liệu mạnh nhất thế giới. Hiện có 2 phiên bản thông dụng là SQL Server 2000 và 2003.
Mới đây Microsoft đồng loạt cho ra đời VS 2005 và SQL Server 2005, thật ngạc nhiên khi Microsoft đặt tên là Visual Studio 2005 mà không phải là VS.NET 2005, đương nhiên chúng ta hiểu rằng đây là một phiên bản phát triển từ VS.NET. Việc đặt tên công cụ gắn với một năm nào đó có thể làm nó sớm bị lãng quên, chúng ta cùng chờ xem Visual Studio 2005 có đem lại ảnh hưởng nào lớn với thế giới phần mềm không.
IBM CORPORATION
IBM hiếm khi được biết đến như một nhà sản xuất CCLT , tuy nhiên ai cũng biết rằng họ đã tiên phong trong nhiều lĩnh vực CNTT từ thửa sơ khai, khi giám đốc của Microsoft hay Borland còn đang là những thiếu niên ham chơi hơn ham học.
Trình biên dich hoàn thiện đầu tiên trên thế giới chính là do nhóm kỹ sư của IBM dẫn đầu bởi John Backus thiết kế cho Fortran năm 1957. Điều này đã thúc đẩy sự phát triển của nhiều trình biên dịch khác - ngay năm 1960, ngôn ngữ Cobol đã sớm có được trình biên dịch trên nhiều loại kiến trúc. Thời gian gần đây IBM đã chuyển sang hoạt động trên nhiều lĩnh vực khác không có thiên hướng về phần mềm như kinh doanh Server, Workstations, Laptop… nhưng IBM vẫn có những sản phẩm phần mềm nổi tiếng trong nhiều lĩnh vực nhưng ít người biết đến (đặc biệt là ở Việt Nam).
1. Lotus Domino Designer
Một số đối tác làm ăn của IBM tại Việt Nam đang sử dụng công cụ này để phát triển phần mềm. Một phiên bản hẹp hơn của Lotus Domino là Lotus Note. Lotus Note giúp các nhà phát triển xây dựng các ứng dụng quản lý trên web rất nhanh chóng. Một số Ủy ban nhân dân tại nước ta đã quản lý công văn, giấy tờ bằng phần mềm dựa trên công nghệ của Lotus Domino.
Lotus Domino cũng có một tính năng thú vị là cho phép một chương trình được viết bằng mã lệnh của nhiều NNLT khác nhau, trong đó có cả Python hay ADA. Thực chất ứng dụng chính của Lotus Domino là để xây dựng các hệ thống làm việc, quản lý từ xa bằng các trang web động, nhưng khác với ASP hay PHP chỉ có ngôn ngữ, Lotus Domino có sẵn quy trình công nghệ để xây dựng phần mềm
2. Rational Rose

Khi làm việc ở mức độ chuyên nghiệp, một phần mềm sẽ được phân tích theo đúng quy trình phát triển mà người quản lý đã lựa chọn. Người phân tích phải chỉ ra được các module cụ thể, quan hệ giữa các thành phần, tiến độ thực hiện… thông qua các công cụ chuẩn như ngôn ngữ mô hình hóa UML chẳng hạn. Có thể hiểu thay vì cảm nhận các tính năng của phần mềm theo cảm tính, người ta phải chỉ rõ được để cả tập thể có thể hiểu và khi tiến hành xây dựng dự án không gặp phải khó khăn. Rational Rose là công cụ trợ giúp cho quá trình phân tích dự án phần mềm của các chuyên gia. Hiện nay Rational Rose được sử dụng rộng rãi trên thế giới, còn ở Việt Nam việc phân tích phần mềm hầu như cũng chưa thực hiện được chứ chưa nói đến sử dụng Rational Rose.
(Kỳ sau: Giới thiệu Sun, Oracle, MacroMedia và các công cụ mã nguồn mở)
V. Kết luận
Như các bạn đã thấy các CCLT rất đa dạng. Đặc biệt là có nhiều CCLT lại là thần tượng của con người. Đối với những người chuẩn bị bước vào thế giới lập trình, họ thường tự hỏi: “Mình chọn ngôn ngữ/công cụ nào là “xịn” nhất đây?”. Khi chọn được rồi họ có thể tự nghĩ: “Vậy là ta sẽ làm được những gì mình muốn mà công nghệ “xịn” này cung cấp!”. Thực tế điều đó chỉ đúng một phần, một phần rất nhỏ.
Giai đoạn đầu tiên của phần mềm là ý tưởng, sau đó ý tưởng phải được giải quyết bằng tư duy của các khoa học khác (thường không phải là Tin học). Tiếp theo cách giải quyết này được mô hình hóa thành quy trình phần mềm. Cuối cùng lập trình viên thể hiện cách giải quyết vấn đề bằng CCLT để có sản phẩm phần mềm. Sơ đồ này như sau:

Vậy CCLT chỉ là một trong các yếu tố (không lớn) tham gia tạo thành phần mềm. Nếu bạn có dự định đến với thế giới lập trình, việc sử dụng thành thạo các CCLT là chưa đủ, bạn phải có một số chuyên môn nhất định cho lĩnh vực phần mềm mà bạn sẽ tham gia và quan trọng nhất đối với bất kỳ lập trình viên nào đó là phải có một tư duy làm việc tốt để biến các đối tượng không thuộc Tin học thành các đối tượng Tin học.
Các bạn học sinh hãy học Toán và các môn học khác nữa thật tốt nhé, chỉ học mỗi một ngôn ngữ hiện đại như ASP, PHP hay Java… không giúp bạn theo được nghề Lập trình đâu! Chúc các bạn năm mới thành công trong Công nghệ thông tin và Lập trình!

Sau đây tôi xin tiếp tục giới thiệu với các bạn một số Nhà sản xuất khổng lồ khác là Sun, Oracle, MacroMedia và một số công cụ mã nguồn mở. Những cái tên này dường như rất quen thuộc với mọi người, nhưng những công cụ của họ nói riêng và lĩnh vực hoạt động của họ nói chung chưa được biết đến nhiều ở Việt Nam.
Cũng xin nói thêm rằng việc gọi một chương trình phần mềm là Công cụ lập trình chỉ có tính tương đối, có thể vừa đúng vừa sai. Một người quen dùng Paint hay Notepad hỗ trợ cho việc lập trình, anh ta có thể gọi đó là CCLT. Nhưng chúng ta hiểu với nhau rằng CCLT là những “thứ” hỗ trợ ta trong quá trình tạo nên sản phẩm phần mềm, từ các khâu thiết kế - lập trình - kiểm thử và thường có sự gắn kết với các ngôn ngữ lập trình (NNLT) cụ thể. Sẽ là không thật chính xác khi nói C++ là một CCLT nhưng với các ngôn ngữ hiện đại ngày nay người ta vẫn nói: “Java là một công cụ lập trình mạng”, “C# là một công cụ lập trình mạnh hơn Java”, “PHP – công cụ phát triển ứng dụng web mã nguồn mở”,…v.v… Chính vì lẽ đó, phần giới thiệu sắp tới của tôi sẽ có một số khác biệt so với kỳ trước: Khi nói đến Sun tôi sẽ tập trung vào NNLT Java, Oracle thì là các hệ quản trị cơ sở dữ liệu còn Adobe thì đơn thuần là các công cụ thiết kế. Nhiều người cho rằng MacroMedia Dreamweaver (một công cụ xây dựng các trang web) không phải là một CCLT mà là một công cụ thiết kế đơn thuần, nhưng thực tế đó lại là công cụ chính cho những ai lập trình web với PHP, ASP,… thậm chí với cả JSP và ASP.NET. Tính tương đối “vừa đúng vừa sai” đã xuất hiện.
.: SUN MICROSYSTEMS :.
Sau nhiều năm nghiên cứu, vào ngày 23/5/1995 Sun chính thức công bố Java – như một hiện tượng mới ra đời trong thế giới CNTT. Java chỉ là cách gọi chung cho nhiều thực thể, có thể là ngôn ngữ kịch bản (JavaScript), là trình duyệt Web (HotJava), là Web Server (Jeeves), là giao diện lập trình ứng dụng (Java Beans), là chip máy tính (PicoJava), là là hệ điều hành (JavaOS) hay là hạ tầng đa phương tiện…
Theo Hava-Soft, một công ty con của Sun Microsystems, Java là môi trường lập trình hướng đối tượng, đa luồng, đa mục đích và thích hợp nhất dùng để tạo các trình con (hay applet), các ứng dụng cho Internet và các mạng phân tán phức tạp khác, không phụ thuộc vào hệ điều hành cụ thể.
Java không chỉ là một công cụ phát triển phần mềm như các NNLT khác (C++, Delphi…) mà còn là công cụ để tích hợp phần mềm vào các thiết bị phần cứng. Người ta dùng Java để lập các ứng dụng non-Internet, chẳng hạn các trình kế toán và trò chơi. Java có thể được dùng làm ngữ trình đa năng (universal) để dựng các "thiết bị Internet". Các unit này cho phép truy cập Internet với giá thấp và được đóng gói như các trò chơi Sega, Nintendo... Thay vì phải có máy tính và phần mềm đắt tiền, chỉ cần "thiết bị Internet" , một hộp với tính năng "cắm và bật", có thể dùng TV gia đình của bạn truy cập Internet.
Bạn có thể tìm thêm thông tin về Java và các ứng dụng của nó dễ dàng từ nhiều nguồn tin trên Internet và sách vở. Java được coi là tương lai của Internet và ứng dụng trên các thiết bị cầm tay (như Pocket PC, điện thoại di động…), xin bật mí với bạn lương của các nhà phát triển và lập trình viên Java luôn rất cao dù ở Nhật, Mỹ… hay Việt Nam ta.
. Tuy sáng tạo ra Java nhưng đến nay Sun thường bị phê phán là thiếu quan tâm đến Java. Sun thiết kế hai công cụ để phát triển Java là Sun Java Studio Creator và Sun Java Studio Enterprise, tuy chúng cũng khá mạnh và miễn phí nhưng đó không phải là sự lựa chọn của các nhà phát triển Java trên thế giới. Sun Java Studio hầu như chỉ được biết đến trong giới học lập trình Java, nó khá giống với công cụ Eclipse cũng dành cho Java, Eclipse thường được trao đổi trên các diễn đàn Java nên khá thông dụng với các bạn mới học (như JavaVietNam.org chẳng hạn). Nếu thử sử dụng ai cũng sẽ thấy chúng thật nặng nề, chậm chạp nhưng lại không có nhiều tính năng như Visual J++ hay Borland JBuilder.
Tuy nhiên Java Studio Enterprise lại hỗ trợ xây dựng các dự án UML với Java trong một môi trường rất dễ sử dụng và… đẹp mắt như dưới đây:

JBuilder của Borland mới là công cụ số 1 để phát triển Java như đã nói ở kỳ trước. Visual J++ của Microsoft cũng mạnh nhưng ngặt một nỗi - ứng dụng Java viết bằng Visual J++ chỉ chạy trên Windows (!) - điều này là đi ngược lại tinh thần của Java, trong trường hợp viết ứng dụng chỉ để chạy trên Windows thì chẳng ai dùng Java, do đó Visual J++ đã không thể tồn tại và phát triển cao hơn. Sun là tác giả của Java do đó phải đưa ra các nền thực thi Java. Trước đây ai cũng biết và sử dụng nền JDK 1.x tưởng như nó rất tốt, tuy nhiên tham gia vào các diễn đàn Java quốc tế mới biết đó là các phiên bản chứa khá nhiều lỗi mà Sun không thể khắc phục được. Hiện nay sau nhiều năm trì trệ Sun đã đưa ra một nền mới là J2SE 1.4 SDK được coi là ổn định nhưng chạy lại rất chậm, nhiều nhà phát triển Java hy vọng tốc độ của Java sẽ được cải thiện trong thời gian tới.
Hiện nay Sun đang phát triển một CCLT chạy trên nhiều hệ điều hành cho nhiều loại NNLT là Sun Studio. Phiên bản mới nhất là Sun Studio 11 bao gồm các tính năng của một môi trường tích hợp hoàn chỉnh cho các ngôn ngữ C, C++, Fortran, Java biên dịch cho các hệ điều hành Solaris, Linux, Windows. Công cụ này có khả năng tương tác, phối hợp với các công cụ thông dụng khác như Visual C++, GCC,OpenMP hay Fortran 2003. Tôi đã thử dùng Sun Studio 11 với Fortran 2003 cho một số bài toán mô phỏng Hoá học đơn giản, xin nói thêm rằng ngôn ngữ Fortran là ngôn ngữ được dùng rộng rãi nhất trong “giới Hoá Tin” – hay những người ứng dụng CNTT vào Hoá học.
.: ORACLE :.
Không hiểu vì lý do gì mà rất nhiều người khi được hỏi “CSDL nào là mạnh nhất?” sẽ trả lời ngắn gọn là “Oracle”, cho dù họ chưa hề sử dụng Oracle! Đặc biệt là ở Việt Nam, điều kiện kinh tế và phạm vi ứng dụng phần mềm chưa cho phép sử dụng Oracle. Các nhóm sử dụng Oracle như chúng tôi hầu hết đều mang tính chất nghiên cứu hoặc đơn thuần là một sở thích. Phải chăng tiếng tăm của Oracle trên thế giới đã chiếm được vị trí quán quân trong tư tưởng của cả những người chưa từng tiếp xúc với Oracle? Sự thật Oracle ra sao?
Trước hết, Oracle không chỉ là một Hệ quản trị CSDL như SQL Server hay Access, nó là cả một bộ phần mềm khổng lồ có khả năng xây dựng các ứng dụng phần mềm và trang bị các giải pháp kỹ thuật thông tin cho người dùng cuối. Oracle bao gồm thành phần quan trọng nhất chính là Hệ quản trị CSDL Oracle với nhiều phiên bản khác nhau, đi kèm với nó là môi trường thiết kế các cơ sở dữ liệu (như Designer 2000) và các công cụ phát triển (như Developer 2000). Khi có một bộ Oracle trong tay, các nhà phát triển có thể xây dựng các ứng dụng trên nhiều hệ điều hành với công cụ có sẵn trông giống như Visual Basic hay Delphi vậy, tuy nhiên các công cụ đó bị Microsoft hay Borland hoàn toàn đè bẹp. Visual Studio hay Borland Studio đều có khả năng làm việc với CSDL Oracle ngay từ thuở bình minh CNTT thế giới.
Oracle đi tiên phong trong lĩnh vực CSDL, Larry Ellison là người sáng lập Oracle cách đây gần 30 năm, đến năm 1979 Oracle đưa ra sản phẩm thương mại đầu tiên là SQL RDMS, sau đó năm 1983 là CSDL VAX-mode. Một số sản phẩm đi trước thời đại của Oracle có thể kể đến như năm 1993 – CSDL cho mô hình Khách/Chủ, năm 1995 với CSDL RDBMS 64 bit đầu tiên trên thế giới , năm 1997 với CSDL cho nền Web, năm 1999 đoán được xu thế thời đại Oracle hỗ trợ ngay XML – nay đã phát triển như vũ bão.
Hệ quản trị CSDL mới nhất của Oracle là phiên bản Oracle 10g ra đời năm 2003, đến nay phiên bản 10g đã có một số sự phát triển mới và được giới thiệu nhiều lần tại Việt Nam. 10g là hệ CSDL đầu tiên được xây dựng nhắm vào công nghệ tính toán lưới (Grid Computing), cho phép giảm chi phí CNTT bằng cách tự động hóa việc quản lý, chia sẻ tính toán giữa các Server. Oracle hiện nay có nhiều sản phẩm công nghệ khác như Oracle Application Server 10g, Oracle Collaboration Suite, Oracle Enterprise Management 10g... đặc biệt là sản phẩm ứng dụng Oracle E-Business Suite nhắm vào các doanh nghiệp phục vụ cho việc điều hành, quản lý các hoạt động nghiệp vụ một cách tự động, mang lại hiệu quả cao.

Các Hệ quản trị CSDL của Oracle có tính an toàn và bảo mật cao, nhất quán và toàn vẹn dữ liệu, cho phép người sử dụng truy nhập tới CSDL phân tán như một khối thống nhất. Cách tổ chức mô hình dữ liệu phân tán là điểm mạnh nhất của Oracle so với các CSDL khác - không chỉ được coi là hơn mà Oracle được coi là vượt xa ngay cả Hệ quản trị CSDL nổi tiếng Microsoft SQL Server. Không có gì phải bàn cãi – Oracle là Hệ quản trị CSDL ưu việt nhất hiện nay. Bạn có thể tìm thấy các phiên bản Oracle 8i hay 9i tại các quầy CD tại Việt Nam, còn tài liệu Oracle cũng có rất nhiều, tuy nhiên sách tiếng Việt chưa có cuốn nào thuyết phục chúng tôi lắm.
.: MACROMEDIA :.
MacroMedia là một cái tên rất nổi tiếng trên thế giới với sản phẩm Flash, như Sun với Java vậy. MacroMedia có các bộ công cụ thiết kế tuyệt vời như Dreamweaver, Flash, Firework, Director, HomeSite… trong số này công cụ Dreamweaver là công cụ hỗ trợ thiết kế và và lập trình web rất nhanh chóng và thông dụng, được nhiều lập trình viên biết đến.
Tại Việt Nam các công ty chuyên thiết kế website thường sử dụng Dreamweaver MX 2004 hoặc phiên bản mới nhất là Dreamweaver 8 nhờ tính năng hỗ trợ sử dụng CSS, XML, UML và hơn hết đó là một môi trường thiết kế + lập trình nhanh chóng, chuyên nghiệp, đẹp mắt và hiệu quả, vượt xa Microsoft FrontPage. Không có công cụ thiết kế web nào có thể dễ dàng đưa các hình ảnh và video vào web tiện như Dreamweaver. Khi viết mã HTML hoặc PHP, ASP… Dreamweaver giúp lập trình viên nhanh chóng viết mã, FrontPage 2003 cũng có thêm các tính năng này nhưng còn kém xa Dreamweaver. Điều đáng chú ý là với sự phát triển mạnh mẽ của ngôn ngữ PHP trên thế giới và Việt Nam mà không có công cụ nào của PHP được chấp nhận rộng rãi, Dreamweaver trở thành công cụ phát triển chính cho ngôn ngữ PHP.
Về khía cạnh lập trình, MacroMedia đã đưa ra ngôn ngữ kịch bản ActionScript dùng cho Flash - một chuẩn đồ hoạ thông dụng trên web ngày nay. ActionScript là một sự mở rộng của JavaScript nhưng có cú pháp mềm dẻo hơn và mạnh hơn hẳn trong việc xử lý sự kiện và điều khiển hoạt hình. Ngôn ngữ kịch bản này là một sự đóng góp khá lớn của MacroMedia với lĩnh vực lập trình hoạt hình.
Bộ công cụ đáng tự hào nhất hiện nay của MacroMedia là Studio 8, kết hợp tính năng của hầu hết các công cụ trước đây. 

Adobe và Macromedia công bố sát nhập tháng 4/2005 và được Bộ tư pháp Mỹ phê chuẩn hợp đồng ngày 2/12/2005. Các bạn hẳn đã biết đến Người khổng lồ Adobe với Photoshop và PDF. Thực chất việc sát nhập hồi năm ngoái là một cuộc mua bán, Adobe đã mua đứt MacroMedia với giá 3,8 tỉ USD. Hai ngày sau khi chính thức sát nhập, Adobe tung ra 3 bộ phần mềm mới toanh kết hợp những công nghệ xuất sắc nhất của cả hai hãng, nhắm đến đối tượng khách hàng truyền thống của Adobe là giới thiết kế đồ họa, thiết kế web và dựng băng video.

Hình vẽ bên cạnh là “bộ công cụ của sự sát nhập” năm 2005. Năm nay Adobe sẽ cho các phần mềm video của mình bắt tay với Flash, thậm chí tích hợp cả định dạng PDF vào Flash. MacroMedia từ nay chỉ còn là tên một dòng sản phẩm chứ không còn là MacroMedia Incorporated nữa.
.: MỘT SỐ CÔNG CỤ MÃ NGUỒN MỞ :.
Trong mục này tôi muốn giới thiệu với các bạn ngôn ngữ kịch bản chạy phía Server - PHP. PHP là một NNLT mã nguồn mở, theo nghĩa bạn không phải mua trình biên dịch của PHP. Một số nhân vật nổi tiếng trên thế giới cùng nhau viết trình biên dịch PHP, và cũng qua đó đưa ra cú pháp cho ngôn ngữ PHP. Thực chất PHP là một công cụ phát triển web theo kiểu “mì ăn liền”, không khai thác vào các tầng sâu như Java (high-end/back-end), chính vì lẽ đó PHP rất dễ sử dụng và phổ biến rộng rãi.
Số website sử dụng PHP ngày nay khoảng gần 30 triệu. Không ai dám khẳng định PHP mạnh hơn các NNLT khác nhưng PHP thông dụng bởi sự phổ biến của các hệ thống mở như SPIP, Moodle, Nuke… Yahoo và Google – hai trong ba website lớn nhất thế giới (cùng với microsoft.com) sử dụng PHP và Python chứ không phải ASP hay JSP.
Cộng đồng sử dụng PHP tạo ra những sản phấm rất hữu ích như: SPIP - công cụ phát hành trang web, báo chí; Moodle - hệ thống hỗ trợ giảng dạy và đào tạo; PHP Nuke – xây dựng hệ thống portal và thương mại điện tử… Tuy nhiên trình biên dịch “mở” của PHP đã từng gặp phải rất nhiều lỗi. Nhiều người vẫn tranh cãi về tác dụng/tác hại của mã nguồn mở, có người cho rằng cái gì là miễn phí, là làm việc tự do thì sẽ không có chất lượng tốt, PHP cũng vậy. Đứng ở góc độ phát triển phần mềm chúng ta không cần thiết phải đưa ra những đánh giá tốt/xấu cho CCLT, cái chúng ta cần là hiệu quả công việc cuối cùng.
Một số công cụ hỗ trợ xây dựng web bằng PHP gồm có:

Zend Studio (http://www.zend.com)
Phiên bản mới nhất: 5.1. Công cụ này khá mạnh, dễ sử dụng nhưng lại không hỗ trợ nhiều cho thiết kế các trang HTML. Vùng soạn thảo của Zend Studio khá giống.NET Studio với tính năng Code Folding.

CodeCharge Studio (http://www.yessoftware.com) Phiên bản mới nhất: 3.0. Công cụ này đang được các nhà phát triển PHP và các ngôn ngữ lập trình web khác quan tâm. Tuy chương trình nhỏ gọn nhưng có rất nhiều tính năng hữu ích, gần tương đương với các môi trường chuyên nghiệp như Visual Basic, Dreamweaver hay FrontPage. Đặc biệt là việc xây dựng sẵn các thành phần hữu ích như lịch, báo cáo, lưới… Khả năng hỗ trợ đa ngôn ngữ và xây dựng liên kết CSDL trực quan cũng là một điểm mạnh của CodeCharge. CodeCharge có thể làm vừa lòng bất kỳ nhà phát triển PHP khó tính nào nếu họ cảm thấy Dreamweaver chưa đủ với PHP.

Do thời gian có hạn nên tôi không thể trình bày hết những điều… muốn trình bày với các bạn. Việc nghiên cứu sâu sắc và trực tiếp sử dụng các NNLT và CCLT vào thực tế trong nhiều năm qua đã đem lại cho tôi những chân lý rất thú vị - và có lẽ cũng sẽ đem lại những điều thú vị với bạn. Hy vọng trong thời gian tới có điều kiện được trình bày với các bạn về các công cụ phát triển trên Unix/Linux, đó là một thế giới mới - có thể là hoàn toàn xa lạ với những tay lập trình kỳ cựu nhất trên Windows - và cũng là một thế giới thú vị. Sớm hay muộn các lập trình viên cũng phải bắt tay vào làm việc trên Linux nhiều hơn.
Mong nhận được những đóng góp, phê bình của bạn về loạt bài viết này. Mọi ý kiến xin gửi về địa chỉ email: datdm@vnschool.net

VnTim™Nguồn http://forums.congdongcviet.com/showthread.php?t=1824

Liên kết bạn bè :game mien phi , tai game mien phi