Quais estruturas da Web Scala estão disponíveis? [fechadas]

195

Acabei de começar a aprender Scala, e a primeira coisa que vou implementar é uma pequena aplicação web. Eu tenho usado Erlang no último ano para implementar software do servidor, mas nunca escrevi aplicativos da Web antes. Será uma ótima experiência.

Existem estruturas da web para o Scala, exceto para o Lift ?

Não me interpretem mal, o Lift parece incrível. Eu só quero saber quantas estruturas existem para que eu possa escolher entre elas. É sempre bom ter uma escolha, mas eu a única coisa que encontrei foi o Lift.

Prikrutil
fonte

Respostas:

77

Estou muito interessado em Scala, mas ainda não o usei, portanto, com essa ressalva, os quadros de que tenho conhecimento não são mencionados na resposta do HRJ (Lift, Sweet, Slinky):

bilhões.
fonte
3
Interessante. O elevador é de longe o mais divulgado: é curioso que você não o tenha familiarizado.
Mcherm 28/09/09
13
Observe a declaração "... estou ciente e não mencionado pelo HRJ ..." O HRJ já mencionou o Lift. Obrigado
bn.
6
jogo tem uma versão scala também
islon
1
/ me suspira. <rant> Step é um nome perfeitamente bom, por que mudar para Scalatra? O Express.js não se chama Nodatra. O frasco (não exatamente o mesmo, mas próximo) não se chama Pythatra. </rant>
Dave Jensen
1
@ djensen47 sua sempre livre para desenvolver seu próprio;)
BAR
45

Eu escrevi uma postagem no blog sobre isso.

Para resumir, algumas das opções são:

  1. Lift
  2. Doce
  3. Slinky

Eu finalmente descobri que nenhum era adequado para mim e desenvolvi minha própria "pequena estrutura". (Ainda não é de código aberto).

HRJ
fonte
35

Eu gosto de Lift ;-)

O Play é minha segunda opção para estruturas da Web compatíveis com Scala.

Wicket é minha terceira escolha.

David Pollak
fonte
46
David, como você ficou sabendo sobre o Lift? ;-)
Derek Mahar
6
@Derek Mahar Inside job I believe ;-)
5
Parece que você é afiliado ao Lift. Observe que nossa política de autopromoção exige que você divulgue essas informações em respostas como esta.
josliber
35

A seguir, é apresentado um despejo de estruturas. Isso não significa que eu realmente os usei:

  • Coeus . Uma estrutura da Web tradicional do MVC para Scala.

  • Não filtrado . Um kit de ferramentas para atender solicitações HTTP no Scala.

  • Granito Uniscala .

  • Gardel

  • Mondo

  • Amore . Uma porta Scala da estrutura da web Ruby Sinatra

  • Escala XML . Abordagem flexível para manipulação de XML e uma maneira simplificada de interagir com XML.

  • Cinto . Uma interface semelhante a rack para aplicativos da Web criados sobre o Scalaz-HTTP

  • Frank . Aplicação Web DSL construída sobre Scalaz / Belt

  • MixedBits . Uma estrutura para a linguagem de programação Scala para ajudar a criar sites

  • Circunflexo . Une vários projetos de código aberto independentes para desenvolvimento de aplicativos usando a linguagem de programação Scala.

  • Scala Webmachine . A webmachine de Port of Basho em Scala, um sistema baseado em REST para construção de aplicativos web

  • Jogador . Uma estrutura da Web Scala pronta para RESTful, multicanal

IttayD
fonte
1
O Unfiltered tem uma boa apresentação de slides aqui: link
Rick-777
Adicionei bowlerframework (acabei de encontrá-lo na web).
Adam Gent
23

Experimente o Play Framework , que também oferece suporte ao Scala.

lidaobing
fonte
2
Brinque com o suporte do Scala parece muito promissor.
Abhinav Sarkar
8

Um framework web muito interessante com implantação comercial é o Scalatra , inspirado no Ruby Sinatra. Aqui está um artigo da InfoQ sobre isso.

Daniel C. Sobral
fonte
8

Acho o Unfiltered muito interessante https://github.com/unfiltered/unfiltered .

É mencionado na lista de IttayD.

Aqui está uma apresentação http://unfiltered.lessis.me/#0 e o vídeo http://code.technically.us/post/942531598/doug-tangren-presents-the-unfiltered-toolkit-for

Também aqui está um artigo com mais informações http://code.technically.us/post/998251172/holding-the-parameter

fedesilva
fonte
1
Não filtrado é muito, muito legal. É realmente limpo e funcional, mas não muito complexo.
thatismatt
8

Deve-se notar que também há um interesse considerável em Wicket e Scala . O wicket se encaixa surpreendentemente bem em Scala. Se você quiser tirar proveito do projeto Wicket muito maduro e de seu ecossistema (extensões), além da sintaxe concisa e da vantagem de produtividade do Scala, este pode ser o seu caso!

Veja também:

  1. Alguma prosa

  2. Apresentação

  3. Alguma experiência com Wicket e Scala

  4. Anúncios com referência ao projeto do código de cola para vincular os fechamentos Scala aos modelos

Andreas Petersson
fonte
7

Brincar é muito gentil.

Agora está pronto para produção. Ele incorpora: uma estrutura de modelo legal, recarga automática de arquivos de origem em segurança, um sistema de ação compostável, akka awesomeness, etc.

Sua parte da pilha Typesafe .

Depois de usá-lo em dois projetos, posso dizer que funciona muito bem e deve ser algo a ser considerado na próxima vez que você estiver procurando aprender novas estruturas da web.

JaimeJorge
fonte
5

Eu costumo usar JAX-RS usando Jersey (você pode escrever bons beans de recurso no Scala, Java ou Groovy) para escrever aplicativos da Web RESTul. Então eu uso Scalate para a prestação das vistas usando um dos vários idiomas modelo ( JADE , Scaml , Ssp (Páginas Scala Server), Bigode , etc.).

James Strachan
fonte
Estou interessado em saber qual IDE você usa para desenvolver projetos do Scalate?
Ali Shakiba
1
Eu uso IntelliJ para todo o meu desenvolvimento
James Strachan
4

Há uma nova estrutura da web, chamada Scala Web Pages . Do site:

Público-alvo

A estrutura da Web Scala Pages provavelmente atrairá os programadores da Web que tenham experiência em Java e queiram programar aplicativos da Web no Scala. A ênfase está no POO, e não na programação funcional.

Características e recursos

  • Adere ao paradigma model-view-controller
  • Mecanismo de modelo baseado em texto
  • Sintaxe simples: $variablee<?scp-instruction?>
  • Codificação / detecção de conteúdo, capaz de lidar com codificações de texto internacionais
  • Snippets em vez de tags personalizadas
  • Reescrita de URL
Daniel C. Sobral
fonte
4

Prikrutil, acho que estamos no mesmo barco. Eu também venho de Erlang para Scala. Eu gosto de nitrogênio muito de por isso decidi criar um framework Web Scala inspirado nele.

Dê uma olhada no Xitrum . Seu doc é bastante extenso. Do README:

O Xitrum é uma estrutura da Web Scala assíncrona e em cluster e um servidor da Web sobre Netty e Hazelcast:

  • Preenche a lacuna entre Scalatra e Lift: mais poderoso que Scalatra e mais fácil de usar que Lift. Você pode criar facilmente APIs RESTful e postbacks. O Xitrum é o primeiro controlador como o Scalatra, e não o primeiro como o Lift.
  • A anotação é usada para rotas de URL, no espírito do JAX-RS. Você não precisa declarar todas as rotas em um único local.
  • Typesafe, no espírito de Scala.
  • Assíncrono, no espírito de Netty.
  • As sessões podem ser armazenadas em cookies ou Hazelcast em cluster.
  • A validação do jQuery é integrada para validação do lado do navegador e do servidor. O i18n usando o GNU gettext, o que significa que, diferentemente da maioria das outras soluções, as formas singular e plural são suportadas.
  • GET condicional usando ETag.

Hazelcast também fornece:

  • Cache em processo e em cluster, você não precisa de servidores de cache separados.
  • Comet em processo e em cluster, você pode dimensionar o Comet para vários servidores da web.

Siga o tutorial para um início rápido.

Ngoc Dao
fonte
3

Há também o Pinky, que costumava estar no bitbucket, mas foi transferido para o github .

A propósito, o github é um ótimo lugar para procurar projetos Scala, pois há muito a ser colocado lá.

Daniel C. Sobral
fonte
3

Eu gostaria de adicionar meus próprios esforços a esta lista. Você pode encontrar mais informações aqui:

estrutura brzy

Está no início do desenvolvimento e ainda estou trabalhando agressivamente. Inclui recursos como:

  • Foco na simplicidade e extensibilidade.
  • Ferramenta de compilação integrada.
  • Design modular; alguns módulos iniciais incluem suporte para serviços escalate, email, jms, jpa, squeryl, cassandra, cron e muito mais.
  • Controladores e ações RESTful simples.

Todo e qualquer feedback é muito apreciado.

UPDATE: 2011-09-078, acabei de publicar uma grande atualização para a versão 0.9.1. Há mais informações em http://brzy.org, que inclui um screencast.

Michael Fortin
fonte
1

Sweet e Slinky parecem não ser mantidos por cerca de um ano. O repositório do Sweet Maven sweetsoftwaredesign.com está morto, portanto não há como baixar dependências.

Nowaker
fonte
1

Nota: Spiffy está desatualizado.

< plug >

Spiffy :

  • está escrito em Scala
  • usa a fantástica biblioteca e atores Akka para dimensionar
  • usa a API 3.0 do servlet para manipulação de solicitações assíncronas
  • é modular (a substituição de componentes é simples)
  • usa DSLs para reduzir o código onde você não deseja
  • suporta Scalate e Freemarker para modelagem

O Spiffy é uma estrutura da Web que usa Scala, Akka (uma implementação de ator do Scala) e a API do Java Servlet 3.0. Ele faz uso da interface assíncrona e visa fornecer um ambiente massivamente paralelo e escalável para aplicativos da web. Os vários componentes do Spiffy são todos baseados na idéia de que eles precisam ser módulos minimalistas independentes que executam pequenas quantidades de trabalho muito rapidamente e enviam a solicitação para o próximo componente no pipeline. Após o processamento do último componente, o pedido sinaliza para o contêiner do servlet "completando" o pedido e enviando-o de volta ao cliente.

https://github.com/mardambey/spiffy

< / plug >

Hisham
fonte
0

Você também pode tentar o Contexto . Ele foi projetado para ser uma estrutura Java, mas eu o usei com sucesso com o Scala também sem dificuldades. É uma estrutura baseada em componentes e possui propriedades semelhantes às do Lift ou Tapeçaria.

ML
fonte
0

Eu me deparei com sua pergunta há algumas semanas, mas desde então também aprendi sobre o Circumflex . Essa é uma estrutura mínima e agradável, portanto, fácil de aprender, e também possui uma documentação muito boa.

Além de ser minimalista, ele também afirma funcionar bem com outras bibliotecas e permite que você use sua própria implementação de coisas quando precisar.

Dave Vogt
fonte