Translate

Tuesday, August 18, 2015

Các thành phần design trong một ứng dụng Domino cơ bản.



Chắc hẳn với các bạn bắt đầu tìm hiểu các viết một ứng dụng trên nền Domino đều đặt ra câu hỏi “Cần những thứ gì để tạo một ứng dụng domino?” và “dữ liệu của nó được lưu trữ ở đâu?”
Với các bạn đã phát triển ứng dụng trên nền công nghệ khác (.net hay php….) thì thành phần design và dữ liệu được tách biệt riêng, như các trang web của asp hay của php đều đặt design… trên một web server (IIS, apache…), còn database thì đặt trên một server DBMS riêng (SQL, MySQL). Domino thì không giống thế, tất cả design, dữ liệu các ứng dụng Domino đều lưu vào file nsf hoặc ntf.
Các ngôn ngữ lập trình được sử dụng khi phát triển ứng dụng

  1. HTML (client)
  2. Javascript (client)
  3. Cascading Style Sheets (CSS) (client)
  4. Formula (Server).
  5. LotusScript (Server – Ngôn ngữ này có rất nhiều điểm giống MS Visual Basic).
  6. Java (Server).
  7. Simple action
Về Formula và LotusScript các bạn có thể xem trong tài liệu Help của Domino designer.
Như vậy để viết một ứng dụng Domino chạy trên nền web ta phải biết ít nhất 5/6 ngôn ngữ này (Theo tôi, có thể chọn LotusScript hoặc Java).
Các thành phần design trong ứng dụng
  1. Page: là thành phần design được sử dụng để hiển thị thông tin. Bạn có thể sử dụng page để viết một trang như trạng about, có thể sử dụng để viết các tài nguyên css, javascript, nhược điểm của page là khả năng truy vấn dữ liệu kém.
  2. Form: Mọi thứ bạn làm với page được thì đều có thể làm với form được, ngoài ra, form có khả năng truy vấn dữ liệu tốt. khi các bạn đã quen rồi các bạn sẽ thấy khi cần hiển thị các thông tin liên quan đến dữ liệu ta thường sẽ đều sử dụng form. Form cung cấp một cấu trúc để tạo và hiển thị các document (ở đây mình không dịch từ document để tránh nhầm lẫn với các tài liệu thông thường, mình sẽ giải thích kỹ hơn về trong khi nói về cấu trúc dữ liệu của domino).
  3. View: sử dụng để hiển thị các document theo một truy vấn nào đó. với các bạn đã làm việc với một MS SQL hoặc MySQL thì view của domino cũng thế
  4. Folder: giống view, xong các document không được lấy theo một truy vấn mà thực hiện bằng code.
  5. Frameset: Là tập hợp các HTML frame, nó chia một trang web của bạn thành các phần (session) khác nhau.
  6. Subform: Thành phần design giúp bạn chia nhỏ cấu trúc của một form
  7. Agent: là một chương trình độc lập (stand-alone programs) thực hiện một nhiệm vụ nào đó. Theo tôi có thể chia ra làm 2 loại agent:* Agent chạy tự động: là các agent chạy khi sảy ra một action của hệ thống. không được điều khiển bởi người dùng. như:
    * Agent bình thường: là các agent chạy khi sảy ra một action của người dùng, như sau khi load document, người dùng click một button….
  8. Resources: Các tài nguyên khác
    • Imagess
    • Files
    • Applets
    • Style Sheets
  9. Ngoài ra còn một số thành phần khác nhưng ít dụng sau này các bạn tự tìm hiểu.
Cấu trúc lưu trữ dữ liệu
Chắc hẳn lâu nay các bạn lập trình đều quen với kiểu dữ liệu quan hệ.  Dữ liệu của các ứng dụng Domino là kiểu dữ liệu phi quan hệ. Dữ liệu của domino được lưu trữ thành các document, trong document có các field.
Để các bạn dễ tưởng tượng, mình xin mạo muộn đưa ra một phép so sánh như sau: các field của domino giống như các trường trong một bảng của MS SQL, như vậy document sẽ giống như một bản ghi (record). Domino hoàn toàn không có khái niện table, chỉ có document là thực thể thể hiện cho một định dạng dữ liệu. ví dụ:
Trong một document lưu trữ thông tin của nhân sự Nguyễn Văn A ta có thể đưa ra một mô tả cấu trúc dữ liệu như sau:
Document:
Field Type Value
HoVaTen Text Nguyen Van A
NgaySinh DateTime 1/1/1970
QueQuan Text Ha Noi
DiaChi Text Ha Noi
SoCMTND Text 123456789
Ở trên ta có nói FORM cung cấp một cấu trúc để tạo và hiển thị document, vậy form và document có quan hệ với nhau như thế nào. Khi mình mới bắt đầu làm việc với domino mình bị nhầm lần là form nó giống như table trong MS SQL nhưng không phải vậy. Khi một document có field tên là form có giá trị trùng với tên một form design thì khi mở document ra domino sẽ sử dụng form đó để hiển thị thông tin về document này. Hoặc khi bạn gọi cậu lệnh save từ một form thì domino sẽ tạo một document có field tên là form trùng với tên form hiện tại và các field khác có giá trị trùng với các field được khai báo trên form. ohh, như vậy form thì khác gì table đâu? một điểm khác và cũng rât mở của Domino là bạn có thể thêm một trường vào document trong quá trình thực thi (on runtime). ngoài cách tạo document bằng cách ghi lại một form ra bạn có thể tạo document bằng code trong quá trình chạy chương trình. Không những thế, bạn còn có thể tạo ra các view, folder, thay đổi câu truy vấn của các view, xóa một field của document trong quá trình chạy.
Các thành phần thường dùng của một form
Ta thấy rằng form là một thành phần design rất quan trọng trong một ứng dụng domino, sau này khi làm việc với xpage thì form giống như thành phần khai báo các trường được sử dụng trong một document. Trong một form thường có các thành phần sau:
  1. Text
  2. Field
  3. Hotspot (Buttons…)
  4. Resource
  5. Computed text
  6. HTML text
  7. Embeded elements (view, folder)
Text và HTML text khác nhau chỗ nào: Text khi hiển thị trên browser sẽ giữ nguyên format, còn HTML text thì sẽ được đối xử như một đoạn mã HTML. như vậy để viết code HTML trên form các bạn phải chuyển từ text thành HTML text. Để làm thao tác này bạn chọn đoạn text cần chuyển – Menu Text – Pass_Thru HTML và ngược lại.
Ngoài ra còn các thành phần khác, bạn tham khảo thêm trong bộ help của Domino Designer (Lotus Domino Designer Basic User Guide and Reference > Application Design > Designing forms) .
URL Command

URL command là sự kết hợp của các đặc điểm của URL với một câu lệnh điều khiển các item như là một document hay view. cấu trúc của URL command có dạng
http://Host/DominoObject?Action&Arguments
Phần này trong tài liệu Help của Domino Designer nói rất kỹ, các bạn đọc trong này nhé (Lotus Domino Designer Basic User Guide and Reference > Application Design > URL commands for Web applications).
Mình xin cung cấp một số các command hay dùng
OpenForm: mở một form
OpenView: Mở một view hoặc folder
OpenAgent: Chạy một agent (cho phép chạy trên web).
OpenDocument: Mở document (dạng readonly)
EditDocument: Mở document (dạng editable)
DeleteDocument: Xóa document
OpenPage: Mở một trang
/?Login: đăng nhập
/?Logout: Đăng xuất
Với các thành phần như trên các bạn đã có thể phát triển được các ứng dụng Domino đơn giản rồi đấy. Trong một khuôn khổ một bài viết mình không thể đi hết và chi tiết các thành phần design của một Domino Application được, các bạn nên đọc kỹ hơn trong tài liệu help của Domino Designer.
Sau đây mình sẽ demo cách dụng một số thành phần trên để viết ứng dụng cho phép nhập, hiển thị thông tin nhân sự của một cơ quan.
Download vi du: http://www.mediafire.com/?br4zc4r2ge4fscc
Video:

0 nhận xét:

Post a Comment

 
Design by IT Manager | Bloggerized by Themes For IT Managers | MIS-DUONG