Viva la evolución. Peter Backlund

Relevanta dokument
Asp.net mvc intro PER KVARNBRINK,

MVC med Javascript och Ajax. Filip Ekberg

Modern webbutveckling. av Robert Welin-Berger

Databaser. TDDD80 Mobila och sociala applikationer

Databaser. TDDD80 Mobila och sociala applikationer

MVC med Javascript och Ajax. Filip Ekberg

Administrationsmanual ImageBank 2

Klientprogrammering mot databaser

Innehållsförteckning ADSync Windows Azure Active Directory ADSynC- Installation Konfigurera ADSync... 4

Säkra pausade utskriftsjobb. Administratörshandbok

Arbeta med databas. Översikt. Lektion 1: Arbeta med Entity Data Models. Arbeta med Entity Data Models. LINQ (Language Integrated Query).

PROV. 13 JSP Standard Tag Library

Laboration 10 - Eclipse

FRÅN MAVEN TILL GRADLE

Trafla databasen vi hämtar data från (remote export) ligger på en godtycklig maskin i nätverket. Den här databasen är en MIMER databas.

732G Linköpings universitet 732G11. Johan Jernlås. Översikt. Repetition. Felsökning. Datatyper. Referenstyper. Metoder / funktioner

Labb LIVE. Exempelkod från föreläsningen. Plushögskolan Frågeutveckling inom MSSQL - SU14

Det här dokumentet är till för att ge en översikt över ASP.NET MVC samt hur WCF Services används från.net applikationer.

13. Ändra inställningar så att det passar er:

Android översikt. TDDD80 Mobila och sociala applikationer

Innehållsförteckning Introduktion Installation, konfiguration & Matchning Installation på primära domänkontrollanten...

Namn: (Ifylles av student) Personnummer: (Ifylles av student) Tentamensdatum: Tid: Hjälpmedel: Inga hjälpmedel

INTRODUKTION TILL ANGULAR JS

Objektorienterad Programmering (OOP) Murach s: kap 12-16

Administrationsmanual ImageBank 2

ASP.NET MVC. Copyright Mahmud Al Hakim Innehåll

MVC med Javascript och Ajax. Filip Ekberg

Belastningstester med Visual Studio Gränssnittet

BizTalk Build & Deploy. Med Jenkins och PowerShell

Verktyg och Utvecklingsmiljö. Föreläsning 2 Eclipse

Funktionsbeskrivning

PAINTFEUD. Erfarenheter

DDL Kommandon CREATE/DROP Database CREATE /ALTER/DROP Table ALTER/ADD/DROP Column CREATE /ALTER/DROP Index

Services + REST och OAuth

Installationsmanual ImageBank 2

Eclipse. Avsikt. Nu ska ett fönster liknande figuren till höger synas.

Namn: (Ifylles av student) Personnummer: Tentamensdatum: Tid: Hjälpmedel: Inga hjälpmedel

RUG Trace JDBC error. Sandvik IT Services

Innehåll. dynamisk bindning. och programmering CRC) u Arv, polymorfi och

Innehåll MySQL Intro. Allmänt om Lagrade Procedurer Enkel utformning Skapa en lagrad procedur Använda parameter som indata

Första exemplet. Kompilator & länkare. Projekt. Övning 1, Ögrupp 4, Programsystemkonstruktion med C++, Ronnie Johansson,

DB, DATA, LOGIC, EXPOSURE (WEB)

FactoryCast HMI. Premium & Quantum PLC. MySQL Server och FactoryCast HMI databastjänst

ID1020 Introduktion av Maven. Dr. Jim Dowling

Räkna med ASP.NET MVC 3

Innehåll. Föreläsning 3. javax.naming.context. javax.sql.datasource. Vad är JDBC? Java Naming and Directory Interface(JNDI) Viktigaste metoder:

Arv: Fordonsexempel. Arv. Arv: fordonsexempel (forts) Arv: Ett exempel. En klassdefinition class A extends B {... }

Vad är en databas? Exempel på databaser: Databas = Organiserad samling och lagring av information.

Laboration 10 - NetBeans

Classes och Interfaces, Objects och References, Initialization

Verktyg och Utvecklingsmiljö. Jochim von Hacht

Windowsadministration I

Databasföreläsning. Del 2 lagrade procedurer, vyer och transaktioner

Avancerade Webbteknologier

INSTALLATIONSGUIDE TILL ANDROID UTVECKLINGSMILJÖ

Lite om felhantering och Exceptions Mer om variabler och parametrar Fält (eng array) och klassen ArrayList.

Android - En översikt samt titt på utvecklingsmiljö. Kalle Prorok 12 nov 2013

Freja eid. Anders Henrikson

PHP. PHP: Hypertext Preprocessor

Att använda Java SE JDK 6

ITK:P1 Föreläsning 1. Programmering. Programmeringsspråket Java. Stark typning Explicit typning Strukturerat Hög säkerhet

IRONCAD KONFIGURATIONER

Programmering med Java. Grunderna. Programspråket Java. Programmering med Java. Källkodsexempel. Java API-exempel In- och utmatning.

Manuell installation av SQL Server 2008 R2 Express för SSF Timing

Alternativet är iwindows registret som ni hittar under regedit och Windows XP 32 bit.

Uppstart Inloggning SSMS Skapa Databas Skapa Tabell Skapa Diagram, Fk, RI Hantering av Index, Pk, Fk, Ix Constraints Beräknande fält Några funktioner

Outline. Objektorienterad Programmering (TDDC77) Att instansiera en klass. Objekt. Instansiering. Åtkomst. Abstrakt datatyp.

Webbprogrammering. Sahand Sadjadee

Grundläggande programmering med C# 7,5 högskolepoäng

Yanting Larsen. Mjukvaruutvecklare. Cybercom Group

Lab 6: ASP.NET 2.0 Providermodellen

Översikt MERA JAVA OCH ECLIPSE. Uttryck och tilldelning. Uttryck och tilldelning. Uttryck och tilldelning. Uttryck och tilldelning

Webbutveckling med AngularJS

Tillämpad programmering

WCMS-15, Webbutvecklare CMS

Mål med lektionen! Repetera och befästa kunskaperna.

PHP-presentation Dataföreningens Open Source-nätverk

RUTINBESKRIVNING FÖR INSTALLATION AV KAMERA

Outline. I Vi kan lätt göra samma sak för fyra variabler... I Hur gör vi för 400 inlästa värden? I Ofta behöver man flera likadana variabler

Eclipse. Kort genomgång

Handbok SSCd. Peter H. Grasch

Datatyper och kontrollstrukturer. Skansholm: Kapitel 2) De åtta primitiva typerna. Typ Innehåll Defaultvärde Storlek

Internationalisering/lokalisering på webben

Idag. Javas datatyper, arrayer, referenssemantik. Arv, polymorfi, typregler, typkonvertering. Tänker inte säga nåt om det som är likadant som i C.

LEX INSTRUKTION LEX LDAP

MVC med Javascript och Ajax. Filip Ekberg

Erik Wahlström Product Strategist 28/01/15

Objektorienterad Programmering (TDDC77)

Installationsmanual ImageBank 2

Inledande programmering med C# (1DV402) Introduktion till C#

Innehåll. Konstruktorer vid arv Regler för basklassens konstruktor. Konstruktorer vid arv. Konstruktorer vid arv. Konstruktorer vid arv

Programmering. Hur, var, när och varför. 22 November. Lars Ohlén Tieto

Office integration, med Jeeves JEEVES WORLD 2012

Java, klasser, objekt (Skansholm: Kapitel 2)

E12 "Evil is going on"

Klasser i Java kan ha metoder och egenskaper. Metoder beskriver funktioner som klassen kan utföra. Egenskaper beskriver innehållet i klassen.

Föreläsning 5 (6) Metoder. Metoder Deklarera. Metoder. Parametrar Returvärden Överlagring Konstruktorer Statiska metoder tostring() metoden javadoc

För att XCOPY i SQL Server Express ska fungera måste data och logg ligga i samma mapp, vilket naturligtvis inte är så bra.

Allmänna anvisningar: Skriv dina svar på svarsblanketten (se nästa sida) Markera och ange alla svar tydligt och entydigt efter instruktionerna.

Innehåll. 1 Kort om dynamisk polymorfism. 2 Arv i C++ 3 Multipelt arv. 4 Något om statisk polymorfism. class Container {

Transkript:

Viva la evolución Peter Backlund

Grails Java- och Groovybaserat Treskiktade webbapplikationer med databas Bygger på Spring, Hibernate och Sitemesh Groovy

Likheter med Rails Konventioner, inte konfiguration Profiler dev, test, prod Scaffolding Levereras som en sammansatt stack

Skillnader Domänmodellen drivs från Groovy (eller Java) Servicelager med transaktioner en naturlig del Statisk och dynamisk typning Trivialt att integrera med Java EE

Var börjar vi? $ grails create-app jfokus jfokus grails-app domain service controllers views src java groovy test integration unit

Domänmodellen Allt under domain/ är persistent, mappas automatiskt GORM == Hibernate++ Kan blandas med Javaklasser & manuell mappning

Minimalt exempel class Person { String name Long id, version mixas in Groovy har inbyggda JavaBeanproperties och implicita konstruktorer Hibernate defaults, som vanligt

Relationer class Person { Address homeaddress // 1-1, inbäddad Person bestfriend // 1-1 static hasmany = [pets:animal] // 1-* static embedded = ['homeaddress'] Särskilda statiska fält: hasmany, belongsto, mappedby, embedded, fetchmode,... Set är default

Validering class Person { String name Person bestfriend static constraints = { name(range:4..100,match:"^[a-z][a-z]*$") bestfriend(nullable:true) Relationer är ej-null default Massor av inbyggda regler, går att skapa godtyckliga Automatiskt vid save(), finns validate()

CRUD def me = Person.findByFirstNameAndLastName( Peter, Backlund ) me.addtopets(new Cat(name: Snowball,color:WHITE)) me.save() Active Record Dynamiska finders: from Person where firstname =? and lastname =?, Peter, Backlund HQL, Criteria eller SQL går också bra

Transaktioner Spring Servicelagret tillgängligt för Dependency Injection class PersonService { static transactional = true void marry(person one, Person theother) {... Även: Person.withTransaction { ts ->...

Controllers Spring MVC Massor av mixins: request, session, params, redirect, chain,... REST-likt: /customer/show/1 Scaffolding on-the-fly eller till fil

Konventioner CustomerController { def scaffold = true def overview = { def c = Customer.get(params.id) def recentorders = Order.findRecentOrders(c) [customer:c, orders:recentorders] Vynamn blir customer/overview Returnernar ModelAndView eller Map Scaffold ger CRUD-hantering

Mer Flash scope: lever till nästa request flash.message = Stored user ${user.name Ny instans varje request, så medlemsvariabler är tillgängliga i vyn Binding: kommandoobjekt, binddata() eller aperson.properties = params

Render-metoden render OK render(view: foo,model:[bar: baz ]) render(contenttype: text/xml ) { customer { name c.name recentorders { Order.findRecent(c).each { o -> order(date:o.date) { itemname o.item.name... render Person.list() as JSON

Resultatet <?xml version= 1.0?> <customer> <name>peter Backlund</name> <recentorders> <order date= 2008-01-15 > <itemname>macbook Air</itemName>... </order>... </recentorders> </customer>

Vyer GSP Groovy Server Pages Taglibs <g:if test= ${... >...</g:if> Groovy-scriptlets/GString: <p> Welcome back, ${customer.female? Miss : Mr ${customer.lastname </p>

Testning test/unit: enhetstester Mocka med GroovyMock eller ExpandoMetaClass test/integration: context + mixins Canoo WebTest

Verktyg IntelliJ 7 + JetGroovy är bäst ;-) Debugger, korskompilering, refaktorering, körbara mål Eclipse, TextMate

Drift & deploy Jetty, Hypersonic out-of-the-box under utveckling grails run-app Packas till.war med kompilerad bytekod med JNDI-datakälla för drift grails war Äkta Java EE samexisterar med existerande infrastruktur

Svagheter 1.0 RC4 kan vara lite oslipat Ingen delning av kontexten vid integrationstester Enorma stacktrace-ar Prestanda

USP Hög produktivitet låg LoC Språkkompetens: Java ~ Groovy Ramverkskompetens: Spring, Hibernate Evolution, inte revolution!

Tack! Hjälper företag att lyckas med mjukvaruutveckling