• Thứ Hai, 14/08/2006 16:44 (GMT+7)

    FoxPro, bạn có biết?

    Giới làm tin học hay công việc có 'dính dáng' đến tin học ở Việt Nam ít nhiều đều biết đến dạng dữ liệu .DBF (DataBase File) và công cụ cơ sở dữ liệu (CSDL) thao tác trên dạng dữ liệu này: dBASE trước đây rồi sau đó là FoxPro và Visual FoxPro. Hiện có rất nhiều ứng dụng nghiệp vụ (như quản lý nhân sự, kế toán...) xây dựng trên FoxPro hay Visual FoxPro đang được sử dụng tại các công ty, cơ quan, trường học...

    Không server, không phí bản quyền người dùng, xây dựng ứng dụng cơ sở dữ liệu nhanh, có khả năng tạo ứng dụng độc lập cho phép 'chép và chạy' không cần cài đặt, rất mạnh trong xử lý dữ liệu và cho tốc độ cực nhanh...

    Giới làm tin học hay công việc có 'dính dáng' đến tin học ở Việt Nam ít nhiều đều biết đến dạng dữ liệu .DBF (DataBase File) và công cụ cơ sở dữ liệu (CSDL) thao tác trên dạng dữ liệu này: dBASE trước đây rồi sau đó là FoxPro và Visual FoxPro. Hiện có rất nhiều ứng dụng nghiệp vụ (như quản lý nhân sự, kế toán...) xây dựng trên FoxPro hay Visual FoxPro đang được sử dụng tại các công ty, cơ quan, trường học...

    Những chặng đường phát triển
    Được giới thiệu lần đầu tiên vào năm 1989, FoxPro 1.0 là thế hệ thứ ba trong dòng sản phẩm khởi đầu được phát triển bởi Fox Software, một công ty nhỏ do TS. Dave Fulton sáng lập. Hai thế hệ đầu là FoxBASE và FoxBASE+ được thiết kế 'nhái' theo dBASE của Ashton-Tate, nhưng chạy nhanh hơn, tốt hơn và tương thích với dBASE (chữ 'Fox' hàm ý nhanh và thông minh như cáo!). Do bị Ashton-tate kiện về vấn đề nhãn hiệu nên FoxBase được đổi tên thành FoxPro.

    Foxpro 2.0 ra đời năm 1991 làm một cuộc cách mạng thực sự, giới thiệu công nghệ Rushmore nổi tiếng về tốc độ truy vấn dữ liệu cực nhanh và hỗ trợ SQL. Phiên bản này còn giới thiệu giao diện thiết kế đồ họa dạng WYSIWYG (What You See Is What You Get) gần giống môi trường lập trình Windows hiện nay.
    Năm 1992, Microsoft cần công nghệ để xâm nhập thị trường phần mềm CSDL nên đã mua lại Fox Software, và Foxpro có thêm tên hiệu 'MS' đứng trước. 
    Phiên bản FoxPro for Windows đầu tiên (2.5) ra mắt đầu năm 1993 (thực ra phiên


    Môi trường phát triển Visual FoxPro

    bản này đã được Fox Software xây dựng gần hoàn tất trước khi sát nhập với Microsoft), tuy nhiên những thay đổi đột phá phải đợi đến phiên bản 3.0 với tên gọi mới Visual Foxpro (VFP) được Microsoft phát hành vào tháng 9/1995, ngay sau khi giới thiệu Windows 95. Với VFP, FoxPro được phát triển từ một ngôn ngữ thủ tục (procedural) thành ngôn ngữ hướng đối tượng. VFP 3.0 còn giới thiệu Database Container (DBC) hỗ trợ Stored Procedure và CSDL quan hệ, các tính năng client/server, hỗ trợ ActiveX và OLE. 
    Không có phiên bản VFP 4.0 vì Microsoft quyết định đưa VFP gia nhập Visual Studio và đồng bộ số phiên bản với Visual Basic (VB) và Visual C++. VFP 5.0 được đưa ra năm 1996 cải tiến hỗ trợ ActiveX, tạo đối tượng COM, công cụ bẫy lỗi hiệu quả, tích hợp Visual SourceSafe (quản lý mã nguồn) và khả năng tạo ứng dụng Web.

    Năm 1997, Visual Foxpro được phát hành chung với bộ Visual Studio 97. Năm 1998, VFP 6.0 ra mắt. Năm 2001, VFP 7.0 được đưa ra trước Visual Studio .NET, nó không là một ngôn ngữ thuộc Microsoft .NET và không dùng chung môi trường phát triển Visual Studio .NET. Tuy nhiên VFP 7.0 có thể làm việc với Visual Studio .NET. VFP 7.0 có tính năng Intellisense hỗ trợ nhập lệnh giống như VB, hỗ trợ XML và dịch vụ Web.
    VFP 8.0 ra mắt vào đầu năm 2003 được xem là nâng cấp đáng kể nhất kể từ VFP 3.0, hỗ trợ Windows XP Theme, tương thích tốt hơn với Visual Studio .NET và SQL Server.

    Công cụ CSDL xuất sắc
    Có nhiều công cụ CSDL trên thị trường, cơ bản có thể phân thành 2 loại: File/Server và Client/Server. Các công cụ CSDL File/Server như Access, FileMaker Pro, FoxPro, Paradox... không yêu cầu máy chủ CSDL riêng và có thể chạy độc lập trên máy trạm làm việc hay dùng các tập tin CSDL chia sẻ trên server. Các công cụ
    CSDL Client/Server như Oracle, Microsoft SQL Server, IBM DB2, Infomix... yêu cầu máy chủ dành riêng để chạy phần mềm máy chủ CSDL, ứng dụng máy khách chạy trên trạm làm việc sẽ truy cập CSDL trên server. Bảng 1 so sánh một số công cụ CSDL phổ biến.

    Tại sao Visual FoxPro?
    Điều làm cho VFP khác biệt so với các công cụ phát triển khác là nó có hệ CSDL riêng, ngôn ngữ của nó được thiết kế đặc biệt cho hệ CSDL này. Các công cụ khác tập trung hoặc là vào việc quản lý CSDL, hoặc là vào việc phát triển ứng dụng, VFP kết hợp được cả hai, nó có môi trường phát triển ứng dụng thân thiện của MS Access kết hợp với khả năng mở rộng và mạnh của MS SQL Server. Có thể nói VFP là công cụ CSDL kinh tế và hiệu quả nhất hiện có trên thị trường.

    Xử lý dữ liệu hiệu quả. VFP có khả năng xử lý dữ liệu rất hiệu quả và linh động (nhờ ngôn ngữ được thiết kế từ đầu dành cho CSDL); có thể xử lý lượng dữ liệu lớn và phức tạp, công nghệ Rushmore cho phép truy vấn dữ liệu cực nhanh; phiên bản VFP mới nhất có tính năng tự động kích hoạt tác vụ xử lý khi mở, đóng hay thay đổi bảng dữ liệu (giống như 'trigger' trong SQL Server).

    VFP cũng sử dụng truy vấn SQL giống như hầu hết các công cụ CSDL khác, tuy nhiên ngôn ngữ chuyên biệt của nó cho phép xử lý dữ liệu theo những cách thức khá phức tạp đối với câu lệnh SQL truyền thống.

    Mỗi bảng dữ liệu trong CSDL VFP có thể chứa đến 2GB dữ liệu hay 1 tỉ mẫu tin. Lưu ý đây là dung lượng giới hạn của mỗi bảng trong CSDL chứ không phải toàn bộ CSDL. Nếu thiết kế đúng đắn, VFP có thể đáp ứng dung lượng dữ liệu gần như không hạn chế.
    Công nghệ phát triển phần mềm cao cấp. VFP có tính năng lập trình hướng đối tượng đầy đủ, bao gồm tính kế thừa, có thể tạo lớp chức năng cơ sở cho thành phần CSDL Web, có thể tạo thành phần COM (Component Object Model), xây dựng thành phần xử lý dữ liệu trung gian dùng cho các ứng dụng khác, bao gồm MS Office và các công cụ Visual Studio.

    VFP khai thác được những điểm mạnh của Windows, có môi trường phát triển đồ họa trực quan có khả năng kéo-thả đối tượng như VB. Nếu bạn thích thao tác dạng dòng lệnh, VFP cũng sẵn sàng đáp ứng. 'Command Window' của VFP cho phép nhập trực tiếp lệnh và tham số để tạo bảng dữ liệu, quan hệ, mẫu biểu và truy vấn mà không cần tới ứng dụng cồng kềnh. Ngôn ngữ FoxPro, cũng như giao diện GUI của nó, đã được mở rộng và hoàn chỉnh qua nhiều năm.

    Khả năng mở rộng. VFP có thể dùng ODBC (Open Database Connectivity) để kết nối với các CSDL SQL và dùng ActiveX Data Object (ADO) để 'nói chuyện' với cả 2 loại dữ liệu quan hệ và không quan hệ. Các ứng dụng bên ngoài có thể 'móc' CSDL của FoxPro thông qua OLE DB (Object Linking & Embeding Database).

    VFP hỗ trợ các chuẩn XML như SOAP (Simple Object Access Protocol) và WSDL (Web Services Description Format), có khả năng tạo dịch vụ Web và sử dụng dịch vụ Web được tạo từ các công cụ khác (trong đó Studio .NET).
    Từ công cụ phát triển CSDL dành cho máy trạm, VFP đã phát triển thành môi trường phát triển có các tính năng cần thiết để xây dựng ứng dụng và thành phần CSDL trên client/server và Internet.

    Trưởng thành và ổn định. Với hơn 10 năm phát triển, FoxPro đã trở thành một môi trường phát triển có tính ổn định cao và đáng tin cậy. Sự hoàn thiện của FoxPro có phần đóng góp đáng kể của cộng đồng đông đảo người dùng và các nhà phát triển.

    HẠN CHẾ.
    Cũng như các công cụ phát triển khác, có những môi trường ứng dụng VFP không đáp ứng tốt. VFP không thích hợp cho ứng dụng có lượng giao dịch dữ liệu và kết nối đồng thời thật lớn, yêu cầu mức an toàn dữ liệu cao. Trong trường hợp này, Oracle hay MS SQL Server thích hợp hơn. Ngoài ra, VFP không thật đơn giản như MS Access, nó không dành cho đối tượng người dùng có ít kiến thức về lập trình, đối tượng mà nó nhắm đến là các nhà phát triển.

    MS Access: kẻ soán ngôi VFP?
    MS Access từng được cho là đối thủ cạnh tranh và thay thế VFP. Thực tế không xảy ra như vậy. VFP và Access có thị phần khác nhau.
    MS Access được thiết kế cho CSDL nhỏ, khả năng đáp ứng số người dùng kết nối đồng thời hạn chế (chỉ đáp ứng tốt từ 5 - 10 người dùng đồng thời). MS Access là công cụ dành cho người dùng cuối, nó dễ sử dụng và dễ học, không đòi hỏi nhiều kiến thức lập trình, đủ đơn giản cho phép người dùng tạo CSDL nhanh. Việc MS Access được đặt chung trong MS Office - bộ công cụ văn phòng - có lẽ đã nói lên khả năng ứng dụng của nó. Access không là ngôn ngữ lập trình chính thống, nó sử dụng ngôn ngữ VBA (Visual Basic for Applications), một tập con của Visual Basic.
    Một trong những điểm yếu của Access so với Foxpro là khả năng đóng gói ứng dụng để phân phối. Đây là vấn đề được nhiều nhà phát triển ứng dụng Access quan tâm. VFP cho phép bạn biên dịch ứng dụng thành dạng .EXE chạy độc lập, Access không có khả năng này. Tuy nhiên bạn có thể tạo ứng dụng .EXE dùng Visual Basic hay một ngôn ngữ lập trình nào đó và kết nối với CSDL .MDB của Access, hoặc dùng công cụ Package Wizard trong bộ MS Office for Developer (hiện đã có ở thị trường Việt Nam, giá chính thức cho phiên bản XP là 843 USD) để tạo bộ cài đặt ứng dụng Access chạy độc lập (không cần có Office).
    VB kết hợp với CSDL Access tạo nên môi trường phát triển tốt hơn, tuy nhiên không thể sánh được với VFP về khả năng thao tác trên CSDL. VB không được thiết kế từ đầu cho thao tác CSDL như VFP.
    Nói chung những gì MS Access làm được thì VFP đều làm được và còn làm được nhiều hơn. Nếu bạn không có nhiều kinh nghiệm về CSDL, muốn học nhanh và tận dụng MS Office thì MS Access là lựa chọn thích hợp. Còn nếu bạn muốn đầu tư nghiêm túc cho việc phát triển ứng dụng CSDL, cần tốc độ và khả năng xử lý dữ liệu mạnh, VFP là giải pháp hoàn hảo.

    VFP và .NET
    Cũng như SQL Server, Visual FoxPro không gắn với .NET Common Language Runtime (CLR). Thật sự, VFP được đưa ra khỏi bộ Visual Studio theo yêu cầu của cộng đồng các nhà phát triển nhằm chủ động trong việc cập nhật.

    VFP và Visual Studio .NET bổ sung cho nhau và có thể làm việc với nhau rất tốt. Một ví dụ tuyệt vời là dùng VFP kết hợp với ASP.NET để bổ sung giao diện WebForm và thiết bị di động cho ứng dụng VFP. Microsoft có cung cấp công cụ Visual FoxPro Toolkit for .NET (miễn phí) dành cho các nhà phát triển có kiến thức lập trình Visual Basic .NET hay Visual C#. Những thông tin liên quan về VFP và Visual Studio .NET có thể tham khảo ở Website GotDotNet.com (http://gotdotnet.com/team/vfp).

    Tương lai của Foxpro
    Thông tin về việc 'Chấm hết' Foxpro đã xuất hiện từ nhiều năm nay. Từ thời phiên bản VFP đầu tiên (3.0) cho đến nay, VFP đã có phiên bản 8.0, việc 'tồn tại hay không tồn tại' của VFP vẫn là vấn đề thường được đề cập trên các diễn đàn. Tất cả chỉ là... tin đồn (cũng như tin đồn MS Access sẽ thay thế VFP).

    Tuy vậy, 'tin đồn' cũng có cơ sở. Có vẻ như Microsoft 'thờ ơ' với VFP. VFP không có được sự quảng bá như MS Access và SQL Server. Có thể ban đầu Microsoft muốn thôn tính FoxPro chỉ để sử dụng những công nghệ của công cụ này, nhiều công nghệ của FoxPro đã được dùng cho nhiều ngôn ngữ và công cụ khác của Microsoft, như ADO được xây dựng dựa trên công nghệ Rushmore. Do VFP thật sự tốt (và kinh tế hơn hẳn so với VB/SQL Server, có lẽ vì vậy mà nó ít được quảng bá) và có cộng đồng người dùng đầy nhiệt huyết nên Microsoft vẫn duy trì phát triển. Cộng đồng người dùng và nhà phát triển FoxPro có khắp nơi trên thế giới: Mỹ (FoxDev, FoxStuff...), Canada (FoxProWiki, Universal Thread), Đức (dFUG), Tây Ban Nha (PortalFox), Nga... danh sách này khá dài, bạn có thể xem tham khảo thêm ở trang Web http://www.foxprohistory.org/communitylinks.htm.

    Phiên bản sắp tới (9.0) có tên mã Europa đã được bắt đầu phát triển nhiều tháng trước khi VFP 8.0 chính thức ra mắt (VFP 8.0 đã có tại thị trường Việt Nam, giá chính thức 677 USD). Theo lộ trình sản phẩm của Microsoft, VFP 8.0 được hỗ trợ đến 2010. Hành trình của chú cáo (Fox) vẫn còn tiếp tục.

    Thanh Phong

    ID: A0311_92