Scala web-framework nào có sẵn? [đóng cửa]


195

Tôi mới bắt đầu học Scala và điều đầu tiên tôi sẽ triển khai là một ứng dụng web nhỏ. Tôi đã sử dụng Erlang trong năm ngoái để triển khai phần mềm phía máy chủ, nhưng tôi chưa bao giờ viết các ứng dụng web trước đây. Đó sẽ là một trải nghiệm tuyệt vời.

Có khung web nào cho Scala ngoại trừ Nâng không?

Đừng hiểu lầm tôi, Nâng trông thật tuyệt. Tôi chỉ muốn biết có bao nhiêu khung để tôi có thể chọn giữa chúng. Luôn luôn là một lựa chọn tốt, nhưng tôi điều duy nhất tôi tìm thấy là Nâng.

Câu trả lời:


77

Tôi rất quan tâm đến Scala, nhưng tôi chưa sử dụng nó, vì vậy với sự cảnh báo đó, các khung mà tôi biết về điều đó không được đề cập trong câu trả lời của HRJ (Nâng, Ngọt, Slinky) là:


3
Hấp dẫn. Thang máy được công bố rộng rãi nhất: thật tò mò rằng bạn không quen thuộc với nó.
mcherm

13
Lưu ý tuyên bố "... Tôi biết và không được đề cập bởi HRJ ..." HRJ đã đề cập đến thang máy. Cảm ơn
bn.

6
chơi cũng có phiên bản scala
islon

1
/ tôi thở dài. <rant> Step là một cái tên hoàn toàn tốt, tại sao lại đổi thành Scalatra? Express.js không được gọi là Nodatra. Flask (không hoàn toàn giống nhau nhưng gần gũi) không được gọi là Pythatra. </ rant>
Dave Jensen

1
@ djensen47 bạn luôn tự do phát triển của riêng mình;)
BAR

45

Tôi đã viết một bài blog về điều này.

Tóm lại, một số tùy chọn là:

  1. Thang máy
  2. Ngọt
  3. Slinky

Cuối cùng tôi thấy rằng không có cái nào phù hợp với tôi, và phát triển "khuôn khổ" nhỏ của riêng tôi. (Nó chưa phải là nguồn mở).


35

Tôi thích thang máy ;-)

Chơi là lựa chọn thứ hai của tôi cho các khung web thân thiện với Scala.

Wicket là lựa chọn thứ ba của tôi.


46
David, bạn đã nghe về thang máy như thế nào? ;-)
Derek Mahar

6
@Derek Mahar Bên trong công việc tôi tin rằng ;-)

5
Có vẻ như bạn đang liên kết với thang máy. Xin lưu ý rằng chính sách tự quảng cáo của chúng tôi yêu cầu bạn tiết lộ thông tin này trong các câu trả lời như thế này.
josliber

35

Sau đây là một bãi chứa các khung. Điều đó không có nghĩa là tôi thực sự đã sử dụng chúng:

  • Coeus . Một khung web MVC truyền thống cho Scala.

  • Không lọc . Một bộ công cụ để phục vụ các yêu cầu HTTP trong Scala.

  • Đá hoa cương Uniscala .

  • Vườn hoa

  • Thứ hai

  • Amore . Cổng Scala của khung web Ruby Sinatra

  • Cân XML . Cách tiếp cận linh hoạt để xử lý XML và cách tương tác đơn giản với XML.

  • Thắt lưng . Giao diện giống như Rack cho các ứng dụng web được xây dựng dựa trên Scalaz-HTTP

  • Frank . Ứng dụng web DSL được xây dựng trên đỉnh của Scalaz / Belt

  • Hỗn hợp . Một khuôn khổ cho ngôn ngữ progamming Scala để giúp xây dựng các trang web

  • Mạch máu . Kết hợp một số dự án nguồn mở độc lập để phát triển ứng dụng bằng ngôn ngữ lập trình Scala.

  • Scala Webmachine . Webmachine của Port Basho trong Scala, một hệ thống dựa trên REST để xây dựng các ứng dụng web

  • Bowler . Khung web Scala sẵn sàng, đa kênh


1
Uniltered có một slideshow tốt ở đây: link
Rick-777

Tôi đã thêm Bowlerframework (chỉ tìm thấy nó trên web).
Adam Gent



8

Tôi thấy Uniltered rất thú vị https://github.com/unfiltered/unfiltered .

Nó được đề cập trong danh sách của IttayD.

Dưới đây là một bài thuyết trình về nó http://unfiltered.lessis.me/#0 và video http://code.technically.us/post/942531598/doug-tangren-presents-the-unfiltered-toolkit-for

Ngoài ra ở đây còn có một bài viết với nhiều thông tin hơn http://code.t kỹ thuật.us / post / 1998251172 /holding-the-parameter


1
Không lọc là rất, rất mát mẻ. Nó thực sự sạch sẽ & chức năng nhưng không quá phức tạp.
thatismatt

8

Cần phải lưu ý rằng cũng có một mối quan tâm đáng kể trong WicketScala . Wicket phù hợp với Scala cực kỳ tốt. Nếu bạn muốn tận dụng dự án Wicket rất trưởng thành và hệ sinh thái (tiện ích mở rộng) của nó cộng với cú pháp ngắn gọn và lợi thế về năng suất của Scala, thì đây có thể là dành cho bạn!

Xem thêm:

  1. Một số prosa

  2. Trình bày

  3. Một số kinh nghiệm với Wicket và Scala

  4. Thông báo có tham chiếu đến dự án về mã keo để liên kết đóng cửa Scala với các mô hình


7

Chơi là khá ngọt ngào.

Bây giờ nó đã sẵn sàng để sản xuất. Nó kết hợp: một khung mẫu tuyệt vời, tự động tải lại các tệp nguồn khi an toàn, một hệ thống hành động có thể kết hợp, akka tuyệt vời, v.v.

Đó là một phần của Stackafe .

Đã sử dụng nó cho hai dự án, tôi có thể nói rằng nó hoạt động khá trơn tru và nó sẽ là điều cần xem xét trong lần tới khi bạn muốn tìm hiểu các khung web mới.


5

Tôi có xu hướng sử dụng JAX-RS bằng Jersey (bạn có thể viết các bean tài nguyên đẹp trong Scala, Java hoặc Groovy) để viết các ứng dụng web RESTul. Sau đó, tôi sử dụng Scalate để hiển thị các khung nhìn bằng một trong các ngôn ngữ mẫu khác nhau ( JADE , Scaml , Ssp (Scala Server Pages), Mustache , v.v.).


Tôi muốn biết IDE nào bạn sử dụng để phát triển các dự án Scalate?
Ali Shakiba

1
Tôi sử dụng IntelliJ cho tất cả sự phát triển của mình
James Strachan

4

Có một khung web mới, được gọi là Trang web Scala . Từ trang web:

Khán giả mục tiêu

Khung web Scala Pages có khả năng thu hút các lập trình viên web đến từ nền Java và muốn lập trình các ứng dụng web trong Scala. Trọng tâm là OOP hơn là lập trình chức năng.

Đặc điểm và tính năng

  • Tuân thủ mô hình mô hình-khung nhìn-trình điều khiển
  • Công cụ mẫu dựa trên văn bản
  • Cú pháp đơn giản: $variable<?scp-instruction?>
  • Mã hóa / phát hiện nội dung, có thể xử lý mã hóa văn bản quốc tế
  • Đoạn trích thay vì thẻ tùy chỉnh
  • Viết lại URL

4

Prikrutil, tôi nghĩ chúng ta đang ở trên cùng một chiếc thuyền. Tôi cũng đến Scala từ Erlang. Tôi thích Nitrogen rất nhiều vì vậy tôi quyết định tạo ra một khung web Scala lấy cảm hứng từ nó.

Hãy xem Xitrum . Tài liệu của nó khá rộng. Từ README:

Xitrum là một máy chủ web và máy chủ web Scala không đồng bộ và được nhóm trên Netty và Hazelcast:

  • Nó lấp đầy khoảng cách giữa Scalatra và thang máy: mạnh hơn so với Scalatra và dễ sử dụng hơn so với thang máy. Bạn có thể dễ dàng tạo cả API RESTful và postback. Xitrum là bộ điều khiển đầu tiên như Scalatra, không phải đầu tiên xem như Nâng.
  • Chú thích được sử dụng cho các tuyến URL, theo tinh thần của JAX-RS. Bạn không phải khai báo tất cả các tuyến đường ở một nơi duy nhất.
  • Loại an toàn, theo tinh thần của Scala.
  • Async, theo tinh thần của Netty.
  • Phiên có thể được lưu trữ trong cookie hoặc cụm Hazelcast.
  • Xác thực jQuery được tích hợp để xác thực phía trình duyệt và phía máy chủ. i18n sử dụng GNU gettext, có nghĩa là không giống như hầu hết các giải pháp khác, cả hai dạng số ít và số nhiều đều được hỗ trợ.
  • NHẬN điều kiện bằng cách sử dụng ETag.

Hazelcast cũng cung cấp cho:

  • Bộ đệm trong quá trình và bộ đệm, bạn không cần máy chủ bộ đệm riêng.
  • Comet đang xử lý và phân cụm, bạn có thể chia tỷ lệ Comet cho nhiều máy chủ web.

Thực hiện theo các hướng dẫn để bắt đầu nhanh chóng.


3

Ngoài ra còn có Pinky, đã từng có trên bitbucket nhưng đã được chuyển sang github .

Nhân tiện, github là một nơi tuyệt vời để tìm kiếm các dự án Scala, vì có rất nhiều thứ được đặt ở đó.


3

Tôi muốn thêm những nỗ lực của riêng tôi vào danh sách này. Bạn có thể tìm hiểu thêm thông tin ở đây:

khuôn khổ

Đó là trong sự phát triển ban đầu và tôi vẫn đang làm việc tích cực. Nó bao gồm các tính năng như:

  • Tập trung vào sự đơn giản và mở rộng.
  • Công cụ xây dựng tích hợp.
  • Thiết kế mô đun; một số mô-đun ban đầu bao gồm hỗ trợ mở rộng, email, jms, jpa, squeryl, cassandra, dịch vụ cron và nhiều hơn nữa.
  • Bộ điều khiển và hành động RESTful đơn giản.

Bất kỳ và tất cả thông tin phản hồi được nhiều đánh giá cao.

CẬP NHẬT: 2011-09-078, tôi vừa đăng một bản cập nhật lớn cho phiên bản 0.9.1. Có thêm thông tin tại http://brzy.org bao gồm một screencast.


1

Cả Sweet và Slinky dường như không được biết đến trong khoảng một năm. Sweet Maven repo sweetsoftwaredesign.com đã chết nên thậm chí không có cách nào để tải xuống phụ thuộc.


1

Lưu ý: Spiffy đã lỗi thời.

< cắm >

Spiffy :

  • được viết bằng Scala
  • sử dụng thư viện và diễn viên Akka tuyệt vời để mở rộng quy mô
  • sử dụng API API 3.0 để xử lý yêu cầu không đồng bộ
  • là mô-đun (thay thế các thành phần là thẳng về phía trước)
  • sử dụng DSL để cắt giảm mã mà bạn không muốn
  • hỗ trợ Scalate và Freemarker để tạo khuôn mẫu

Spiffy là một khung web sử dụng Scala, Akka (triển khai diễn viên Scala) và API Java Servlet 3.0. Nó sử dụng giao diện async và nhằm mục đích cung cấp một môi trường song song và có thể mở rộng cho các ứng dụng web. Tất cả các thành phần khác nhau của Spiffy đều dựa trên ý tưởng rằng chúng cần phải là các mô-đun tối giản độc lập, thực hiện một lượng nhỏ công việc rất nhanh và chuyển yêu cầu đến thành phần tiếp theo trong đường ống. Sau khi thành phần cuối cùng được xử lý xong yêu cầu, nó báo hiệu cho thùng chứa servlet bằng cách "hoàn thành" yêu cầu và gửi lại cho máy khách.

https://github.com/mardambey/spiffy

< / cắm >


0

Bạn cũng có thể thử Bối cảnh . Nó được thiết kế để trở thành một khung công tác Java nhưng tôi cũng đã sử dụng nó thành công với Scala. Nó là một khung dựa trên thành phần và có các thuộc tính tương tự như Nâng hoặc Tapestry.


0

Tôi đã vấp phải câu hỏi của bạn vài tuần trước, nhưng từ đó cũng đã biết về Circumflex . Đây là một khung công tác tối thiểu, đẹp, dễ học và cũng có sẵn tài liệu khá tốt.

Bên cạnh tính năng tối thiểu, nó cũng tuyên bố sẽ hoạt động tốt với các thư viện khác và cho phép bạn sử dụng triển khai mọi thứ của riêng mình khi bạn cần.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.