Prezentacja o tworzeniu aplikacji webowych w Scali

Ogólnie o frameworkach webowych dla Scali

Serwer

  • Akka — opensourcowy framework do programowania wspóbieżnego i rozproszonego dla JVM
  • Play — opensourcowy framework zbudowany na Akkce, służący do tworzenia aplikacji webowych (MVC (Model-View-Controller), REST (Representational State Transfer), sockets)
  • Lift — opensourcowy framework do tworzenia aplikacji webowych wzorowany na Ruby on Rails. (MVC, REST)
  • Lagom — opensourcowy framework do tworzenia systemów rozproszonych, zbudowany na Play i Akkce

Klient

  • Scala.js - projekt składający się m.in. z kompilatora języka Scala do JavaScript (ES5). Pozwala na używanie sporej części bibliotek Scali. Posiada wiązania; np. do JQuery, React, Angular

Ogólnie o wiązaniach bazodanowych dla Scali

Relacyjne bazy danych

Pojęcia Wiązania
  • JDBC — niskopoziomowa biblioteka do komunikacji z bazą danych; surowy SQL podawany w Stringu (czyli nie pilnuje poprawności zapytań - typy itd.) Przykład użycia w Scali
  • JOOQ — DSL oparty na SQL-u (prawie surowy SQL). Zapewnia bezpieczeństwo typów. Wspiera zapytania rekurencyjne (nawet wtedy dbając o typy).
  • Squeryl — ORM z DSL-em opartym na SQL-u. Zapewnia bezpieczeństwo typów. Nie pozwala na używanie surowego SQL-a.
  • Slick — FRM z DSL-em wzorowanym na zwykłych operacjach na kolekcjach; np. map, filter. Zapewnia bezpieczeństwo typów. W razie potrzeby pozwala na wstawki surowego SQL-a.

NoSQLowe bazy danych

PlayFramework 2.6

Mój projekt MVC w PlayFramework

Przykładowy projekt MVC w PlayFramework na moim githubie.
Tutaj można zobaczyć filmik, w którym go opisuję.

Scala.js

Scala.js ogólnie

Biblioteki do Scali.js

Lista biblitek dla Scali.js dostępna jest tutaj

Łączenie Scali.js z PlayFramework

Serializacja i deserializacji obiektów w Scali i Scali.js

Przykładowy projekt PlayFramework z klientem w Scali.js (REST)

Przykładowy projekt PlayFramework z klientem w Scali.js na moim githubie.