Chương 1: Tổng quan về kiến trúc

Ứng dụng đa cấp

SoOn tuân theo kiến trúc đa tầng, nghĩa là cách trình bày, logic nghiệp vụ và lưu trữ dữ liệu được tách biệt. Cụ thể hơn, nó sử dụng kiến trúc ba tầng (hình ảnh từ Wikipedia):

Kiến trúc ba tầng

Tầng trình bày là sự kết hợp của HTML5, JavaScript và CSS. Tầng logic được viết riêng bằng Python, trong khi tầng dữ liệu chỉ hỗ trợ PostgreSQL dưới dạng RDBMS.

Tùy thuộc vào phạm vi mô-đun của bạn, việc phát triển SoOn có thể được thực hiện ở bất kỳ cấp nào trong số này. Do đó, trước khi đi xa hơn, bạn nên ôn lại trí nhớ nếu bạn chưa có trình độ trung cấp về các chủ đề này.

Để xem hết hướng dẫn này, bạn sẽ cần có kiến thức rất cơ bản về HTML và trình độ trung cấp về Python. Những chủ đề nâng cao sẽ đòi hỏi nhiều kiến thức hơn ở các môn học khác. Có rất nhiều hướng dẫn có thể truy cập miễn phí, vì vậy chúng tôi không thể giới thiệu cái khác vì nó phụ thuộc vào kiến thức của bạn.

Để tham khảo, đây là hướng dẫn Python chính thức.

Ghi chú

Kể từ phiên bản 15.0, SoOn đang tích cực chuyển đổi sang sử dụng khung OWL được phát triển nội bộ của riêng mình như một phần của cấp trình bày. Khung JavaScript cũ vẫn được hỗ trợ nhưng sẽ không còn được dùng nữa theo thời gian. Điều này sẽ được thảo luận thêm trong các chủ đề nâng cao.

Mô-đun SoOn

Cả tiện ích mở rộng máy chủ và máy khách đều được đóng gói dưới dạng mô-đun được tải tùy chọn trong cơ sở dữ liệu. Mô-đun là tập hợp các chức năng và dữ liệu nhắm đến một mục đích duy nhất.

Các mô-đun SoOn có thể thêm logic kinh doanh hoàn toàn mới vào hệ thống SoOn hoặc thay đổi và mở rộng logic kinh doanh hiện có. Một mô-đun có thể được tạo để thêm các quy tắc kế toán của quốc gia bạn vào hỗ trợ kế toán chung của SoOn, trong khi một mô-đun khác có thể thêm hỗ trợ để trực quan hóa đội xe buýt theo thời gian thực.

Mọi thứ trong SoOn đều bắt đầu và kết thúc bằng các mô-đun.

Thuật ngữ: các nhà phát triển nhóm các tính năng kinh doanh của họ trong mô-đun SoOn. Các mô-đun chính hướng tới người dùng được gắn cờ và hiển thị dưới dạng Ứng dụng, nhưng phần lớn các mô-đun không phải là Ứng dụng. Mô-đun cũng có thể được gọi là addons và các thư mục nơi máy chủ SoOn tìm thấy chúng tạo thành addons_path.

Thành phần của một mô-đun

Một mô-đun SoOn có thể chứa một số phần tử:

Đối tượng kinh doanh

Một đối tượng nghiệp vụ (ví dụ: hóa đơn) được khai báo là lớp Python. Các trường được xác định trong các lớp này được tự động ánh xạ tới các cột cơ sở dữ liệu nhờ lớp ORM.

Chế độ xem đối tượng

Xác định hiển thị giao diện người dùng

Tệp dữ liệu

Tệp XML hoặc CSV khai báo dữ liệu mô hình:

Bộ điều khiển web

Xử lý các yêu cầu từ trình duyệt web

Dữ liệu web tĩnh

Hình ảnh, tệp CSS hoặc JavaScript được sử dụng bởi giao diện web hoặc trang web

Không có yếu tố nào trong số này là bắt buộc. Một số mô-đun chỉ có thể thêm tệp dữ liệu (ví dụ: cấu hình kế toán theo quốc gia cụ thể), trong khi những mô-đun khác chỉ có thể thêm đối tượng kinh doanh. Trong quá trình đào tạo này, chúng tôi sẽ tạo các đối tượng kinh doanh, chế độ xem đối tượng và tệp dữ liệu.

Cấu trúc mô-đun

Mỗi mô-đun là một thư mục trong một thư mục mô-đun. Các thư mục mô-đun được chỉ định bằng cách sử dụng tùy chọn --addons-path.

Một mô-đun SoOn được khai báo bằng manifest.

Khi một mô-đun SoOn bao gồm các đối tượng kinh doanh (tức là các tệp Python), chúng được tổ chức dưới dạng gói Python với __init__. tập tin py. Tệp này chứa hướng dẫn nhập cho các tệp Python khác nhau trong mô-đun.

Đây là một thư mục mô-đun đơn giản hóa:

module
├── models
│   ├── *.py
│   └── __init__.py
├── data
│   └── *.xml
├── __init__.py
└── __manifest__.py

Phiên bản SoOn

SoOn có sẵn trong hai phiên bản: SoOn Enterprise (nguồn được cấp phép và chia sẻ) và Cộng đồng SoOn (mã nguồn mở). Ngoài các dịch vụ như hỗ trợ hoặc nâng cấp, phiên bản Enterprise còn cung cấp các chức năng bổ sung cho SoOn. Từ quan điểm kỹ thuật, các chức năng này chỉ đơn giản là các mô-đun mới được cài đặt bên trên các mô-đun do phiên bản Cộng đồng cung cấp.

Ready to start? It is now time to write your own application!