Trước hết, phần cốt lõi nhất của dự án mà tôi muốn tạo là một công cụ wiki được triển khai như một ứng dụng web một trang. Tôi dự định có một bộ tính năng có sẵn ngay từ đầu với nhiều tính năng bổ sung sau này.
Tính năng cơ bản
- tạo trang (tạo cả bài viết wiki và diễn đàn thảo luận cho bài viết đó)
- đánh dấu và WYSIWYG ala markitup
- chuyển đổi nhanh chóng giữa markup / html / WYSIWYG
- một thanh bên để điều hướng nhanh
- thanh công cụ trên cùng để chọn chỉnh sửa / xem
Các tính năng tiên tiến
- thanh bên có thể định cấu hình để điều hướng qua các phương pháp khác nhau
- thanh công cụ có thể định cấu hình (có thể thêm ngôn ngữ đánh dấu mà bạn lựa chọn)
- thẻ
- việc làm có thể chỉnh sửa
- kéo và thả các tệp tải lên và tệp đính kèm hình ảnh
Công cụ ban đầu sẽ bao gồm việc tạo trang, đánh dấu và chỉnh sửa WYSIWYG và lưu cơ bản nhất. Cuối cùng tôi muốn mở rộng công cụ cơ bản này với hỗ trợ kéo và thả hình ảnh, tải lên tệp, biểu đồ dữ liệu trực tiếp và thanh bên để tùy chỉnh chế độ xem.
Tôi đã thực hiện một cuộc tìm kiếm khá rộng rãi để tìm ra một dự án phù hợp để làm cơ sở cho dự án của mình, nhưng ngoài TiddlyWiki, dường như không có bất kỳ công cụ wiki dựa trên javascript nào tốt. Tôi cũng đã cân nhắc việc áp dụng Jquery trên các công cụ wiki hiện có nhưng tôi tin rằng dù sao thì cuối cùng tôi cũng sẽ viết lại nó (Thêm vào đó, nó thú vị hơn khi thêm các tính năng tôi muốn khi tôi sử dụng). Dù bằng cách nào thì tôi cũng đã thực hiện được con thú này với thư viện + khuôn khổ javascript.
Tôi biết rằng người ta không thể thực sự so sánh một số khuôn khổ này với nhau vì chúng rất không giống quả táo. Tôi đã cố gắng sắp xếp bất kỳ nhận xét / câu hỏi so sánh nào với các phần có thể so sánh của các khuôn khổ tương ứng nhưng tôi sẵn sàng được sửa chữa.
Vì vậy, chúng ta bắt đầu:
Dựa trên nghiên cứu và ý kiến của riêng tôi, tôi đã thu hẹp danh sách xuống các mục bên dưới. Tôi cố tình bỏ đi những thứ như SproutCore, corMVC, YUI và những thứ khác vì tôi, với khả năng hạn chế của mình, nghĩ rằng những thứ bên dưới sẽ phù hợp hơn.
Tùy chọn của tôi
jquery / UI + backbonejs
Nhìn chung
Từ những gì tôi đã đọc, sự kết hợp này được nhiều người sử dụng và yêu thích và rất linh hoạt và có thể mở rộng. Mối quan tâm chính của tôi là sự kết hợp này đơn giản không phải là điểm khởi đầu tốt nhất để phát triển giao diện UI hướng đến máy tính để bàn hơn.
Giao diện người dùng
Mặc dù jQueryUI hoặc jqueryTools có thể cạnh tranh nhưng chắc chắn chúng dường như không ngang bằng với khả năng giao diện người dùng của các khung công tác khác. Cụ thể là chúng có vẻ nặng về các hiệu ứng nhưng thiếu hỗ trợ cắt bố cục tốt.
javascriptMVC
Nhìn chung
JavascriptMVC đối với tôi có vẻ như về cơ bản nó là các tiện ích mở rộng jquery + MVC (jqueryMX), cùng với một số ứng dụng khác để tạo tài liệu (documentJS), kiểm tra chức năng (funcUnit), quản lý mã và phụ thuộc (steveJS). Ngoài những lợi ích của mô-đun bổ sung, tôi nghĩ rằng cuộc tranh luận về chức năng thực sự bắt nguồn từ backbonejs và jqueryMX Tôi có đúng về điều này không và có ai đã làm việc với hoặc so sánh cả hai chưa?
Giao diện người dùng
JavascriptMVC thêm các mục MXUI lên trên bất kỳ thứ gì có sẵn cho Jquery, vì vậy tôi nghĩ rằng ít nhất nó cũng là một chiến thắng nhẹ trong danh mục đó.
knockoutjs
Nhìn chung
Suy nghĩ và lo lắng của tôi về điều này về điều này rất giống với các bình luận jquery + backbone. Cả hai dường như cung cấp các tính năng tương tự nhưng chỉ từ một góc nhìn khác. Một nhược điểm được trích dẫn là knockoutjs kết hợp logic nghiệp vụ và cách trình bày quá chặt chẽ với data-bind và rằng phương thức ràng buộc này có thể bị hỏng đối với tương tác giao diện người dùng phức tạp nhưng tôi rất muốn biết lý do tại sao đó không phải là vấn đề.
Giao diện người dùng
Trống vào lúc này
Dojo & ExtJS
Nhìn chung
Tôi sẽ kết hợp thảo luận Dojo và ExtJS vì tôi biết ít nhất về họ và họ dường như chơi trong gần như cùng một không gian. Hầu hết thông tin trên stackoverflow về hai điều này dường như đã lỗi thời. Từ những gì tôi thấy là cả hai đều là những framework lớn tốt cho việc triển khai ứng dụng tầm cỡ trên máy tính để bàn. Dojo đã bị chỉ trích vì tài liệu kém nhưng điều đó dường như không còn đúng nữa. Tất nhiên ExtJS có giấy phép thương mại, nhưng nó thực sự hợp lý với những gì bạn nhận được và tôi sẽ không chống lại điều đó quá nhiều. Các widget trong ExtJS có vẻ được thực hiện chuyên nghiệp hơn một chút so với Dojo, nhưng tôi chắc chắn có thể được sửa chữa ở đó. Tôi muốn nghe từ bất kỳ ai có kinh nghiệm trong cả hai lĩnh vực này.
Giao diện người dùng
Dojo có thư viện giao diện người dùng dijit ExtJS có các tính năng giao diện người dùng nhưng chúng không có trong lõi Ext. Đây là tài liệu và đây là bản trình diễn của họ
Cappuccino
Nhìn chung
Và sau đó là Cappuccino. Không có CSS, không có html, nhưng cũng có thể khó sử dụng các thư viện javascript hiện có. Objective-J dường như không đáng sợ, đặc biệt là khi họ chào mời có thể viết javascript đơn giản. Các bản trình diễn rất ấn tượng và dường như tiếp cận chặt chẽ nhu cầu giao diện người dùng cho công cụ wiki. API dựa trên cacao có rất nhiều thứ cần thiết đối với những người không quen thuộc với nó, nhưng có lẽ nó rất đáng giá. Tôi đã nghe nói rằng layout engine không phải lúc nào cũng dễ làm việc nhưng một công nghệ trẻ và có thể đột phá như thế này chắc chắn sẽ có một số thiếu sót.
Giao diện người dùng
Trống vào lúc này
Tôi xin lỗi vì đã viết rất nhiều nhưng này, ít nhất câu hỏi không phải ax vs y vs z của nó, hy vọng có rất nhiều câu trả lời rẻ tiền. Vậy bạn nghĩ như thế nào? Điều gì sẽ là cơ sở cho máy tính để bàn của tôi như công cụ wiki, hy vọng sẽ trở nên phong phú hơn (đọc phức tạp) theo thời gian?