Slides in swedish from a presentation I held at Valtech Days 2009 on the architecture of the web. I discus HTTP, resource and service application design.
Slides in swedish from a presentation I held at Valtech Days 2009 on the architecture of the web. I discus HTTP, resource and service application design.
EPiServer, Drupal, Django, Wordpress, Sharepoint, Sitecore, Umbraco... När det gäller CMS och webbramverk är verktygslådan stor! Hur vet man vad man ska välja? Står valet mellan open-source-produkter eller kommersiella produkter eller finns det fler parametrar som spelar in?
I denna första genomgång av den tekniska verktygslådan guidar Pär Fröberg och Mattias Uhlegård dig genom CMS- och webbramverksdjungeln. Vi kommer att berätta om för- och nackdelar med de plattformar som vi på Creuna arbetar mest med och vilka trender vi ser framöver.
Pär Fröberg CTO Creuna
Mattias Uhlegård System Architect Creuna
Egna mallar i moduler - Magnus Lövgren - SiteVisiondagarna 2014SiteVision AB
I många av SiteVisions standardmoduler finns möjligheten att använda "egen mall" för att förändra renderingen av modulens resultat. Att göra en enkel justering av den HTML som finns i mallen är ofta trivialt men om logik-förändringar behöver göras så krävs kunskap om Velocity och SiteVisions publika API. Den här föreläsningen ger en introduktion till det som behövs för att kunna göra lite mer avancerade förändringar av egna mallar.
Intrapages is a free open sourced intranet extranet application with social capabilities
download your own copy now
http://intrapages.openntf.org
join the intrapages community at
http://www.intrapages.com
try a live demo with a fictive user login at
http://www.intrapages.com/intrademo.nsf
EPiServer, Drupal, Django, Wordpress, Sharepoint, Sitecore, Umbraco... När det gäller CMS och webbramverk är verktygslådan stor! Hur vet man vad man ska välja? Står valet mellan open-source-produkter eller kommersiella produkter eller finns det fler parametrar som spelar in?
I denna första genomgång av den tekniska verktygslådan guidar Pär Fröberg och Mattias Uhlegård dig genom CMS- och webbramverksdjungeln. Vi kommer att berätta om för- och nackdelar med de plattformar som vi på Creuna arbetar mest med och vilka trender vi ser framöver.
Pär Fröberg CTO Creuna
Mattias Uhlegård System Architect Creuna
Egna mallar i moduler - Magnus Lövgren - SiteVisiondagarna 2014SiteVision AB
I många av SiteVisions standardmoduler finns möjligheten att använda "egen mall" för att förändra renderingen av modulens resultat. Att göra en enkel justering av den HTML som finns i mallen är ofta trivialt men om logik-förändringar behöver göras så krävs kunskap om Velocity och SiteVisions publika API. Den här föreläsningen ger en introduktion till det som behövs för att kunna göra lite mer avancerade förändringar av egna mallar.
Intrapages is a free open sourced intranet extranet application with social capabilities
download your own copy now
http://intrapages.openntf.org
join the intrapages community at
http://www.intrapages.com
try a live demo with a fictive user login at
http://www.intrapages.com/intrademo.nsf
2. Agenda
– Kunskapströskeln
– Fördelar
– Nackdelar
– En snabb demo av notessidan.se
– Demo av olika funktioner
– Fika
– Workshop Projektrum
● Formulär + validering och actions
● Vyer
3. Hur jag lärt mig xPages
●
Läst bloggar,
planetlotus.org
●
Läst dokumentationen
http://publib.boulder.ibm.com/infocenter/domhelp/v8r0/index.jsp
●
Läst och deltagit på notes.net forum
●
Chat forum #dojo
●
Xpages W iki: http://www.youatnotes.de/web/youatnotes/wiki-
xpages.nsf/home.xsp
●
Domino Designer W iki: http://www-10.lotus.com/ldd/ddwiki.nsf
●
http://www.jmackey.net/
●
Byggt själv
4. Kunskapströskeln
●
Eclipse (Outline, Navigator, Problem, Properties, Events, controls)
●
HTML
●
Stylesheet / Themes
●
Ajax, partial refresh
●
Lotusscript/@formulas/Javascript (ev. java)
●
Dojo och Dijit
●
Controls (32) och Custom Controls
●
Client side js (csjs)
●
Server side js (ssjs)
●
Globala object och Scoped variables
●
JSF + navigator
5. Fördelar
●
Man behöver inte förändra befintliga applikationerna.
●
Man kan bygga väldigt komplicerade applikationer utan att skriva en
rad kod, man får mycket gratis. t.ex. validering och type-ahead
●
Flera datakällor på samma xPage, tex. Join i en vy
●
Varje kontroll är bunden till en data källa
●
Lätt att göra flerspråkiga websidor
●
Lätt att bygga ett ramverk med ”editable area”
●
Inbyggt stöd för dojo och oneui
●
En xpage behöver inte ligga i databasen där datat ligger
●
Kan köras i notesklienten 8.5.1 (med klientens ECL)
6. Nackdelar
●
Många klick
●
Svårt att kombinera ”egen kod” med xPage funktionalitet. tex. Egna
<script></script>
●
ID hanteringen är omständig
<div id="view:_id1:_id13:repeat1:0:divSubject">
●
En xPage kan bara generera HTML, (inte xml, json, sql etc)
●
Bristfällig dokumentation
●
Säkerhetsmodellen, agenter?
●
All UI kod i lotusscript måste skrivas om (men det är inte på grund av
xpages)
●
Buggig
7. Verktyg för Webutveckling
● Utveckla för Firefox, testa i IE
● Firefox eller Chrome
● Firebug (FF tillägg)
● JSView (FF tillägg)
● Firebug lite (IE)
● Live HTTP headers (FF tillägg)
8. En Xpage
●
Är i webläsaren kompilerad java kod som körs som en servlet
●
Är bara en ”dum” html sida innan du binder kontroller och datakällor till
den
●
Liknar ett formulär.
●
En container för att lagra controller
● Kan bindas till flera datakällor
●
Kan innehålla Custom Controls
●
Är JSF
●
Har events för load ( typ W QO)
9. Custom Controls
● Liknar subformulär
● Kan innehålla andra custom controls
● Kan inte användas utan en xpage
● Kan ta parametrar (bra om man t.ex. Vill
skapa custom controls som kan användas
var som heltst, tex. Tooltip, eller Dialoger)
● Har events för load ( typ WQO)
10. Controls
repeat, panels , edit box etc..
● några har event, andra inte
● några kan nestlas i varandra, andra inte
● Alla har sina egna egenskaper och API
● Några kan man koppla till data källor, andra
inte
● Man kan göra egna
11. Repeat Control
● Antagligen den coolaste funktionen i hela
xPages , (en del tycker Editable Areas)
● Data behöver inte se ut som en tabell
● I stort sett vad som helst kan repeteras
● Repeat kan nestlas
● Inte bara för dokument
– Arrays
– Json
– Multivalue fields
12. Exempel på egna controls
● Tooltips ● Tree
● Dialoger ● Workflow
● Create PDF ● Picture gallery
● Movie/Flash ● Rating
● Actionbar ● Charting
● Drop down Menu ● Login/Logot
● Document history ● Multi file upload
● Cloud ● ....
13. Scoped Variables
cookies på servern
● ApplicationScope
Tillgänglig för alla användare
Tas bort efter en viss tid
● SessionScope
Tillgänglig för aktuell användare
● ViewScope
Tillgänglig för aktuell websida
● RequestScope
Tillgänglig för aktuell request
14. Programmering
● SSJS kräver alltid en request till servern
● CSJS utförs alltid på klienten, (id konverteras av servern)
● Javascript på servern SSJS
– @formulas
– Dominoklasser
– XSP
● Javascript på klienten CSJS
- Dojo
● Java på servern med CSJS
● Lotusscript/Java på servern via agenter
15. Notesformulär
● Traditionella Notesformulär används av
xpages men bara för att definiera fält
● Xpages kräver att alla fält finns på
formulären
● Ett formulär som ska accesssas av en
xpage kan inte innehålla subforms
● Mitt tips är att göra ett nytt formulär som
innehåller bara dom fält jag behöver i min
xpage
● Använd formuläret för att dokumentera
17. ID och Class
● ID och Class är det man i vanliga fall använder när man
utvecklar webapplikationer
● I xPages sköter Domino ID hanteringen eftersom data på en
xPage kan repeteras
● Utvecklare av xpages får nöja dig med ”Class”:er
18. Åtkomst till ID i CSJS
För att hitta denna div
<div id="view:_id1:_id12:repeat1:0:divBody" class="docBody"></div>
använd följande som hittar alla id som slutar på
divBody
dojo.query("[id$='divBody']")[0];
var div = dojo.query("[id$='divBody']")[0];
dojo.toggleClass(div,"bodyhide");
Om man behöver hitta ett id på en control använd syntaxen "#{id:mittid}"
Exempel: dojo.byId("#{id:searchData}")
Resulterar i följande efter Domino konverterat id't
dojo.byId("view:_id1:searchData")
19. SSJS
●
getClientId(”button1”)
●
getComponent(”repeat1”).
●
getComponent(”repeat1”).getRowCount()
●
getComponent(”...”).onclick=”alert('test');”
●
facesContext.getExternalContext().getRequest().getRemoteAddr()
●
sessionScope.put(”param”,”value”);
●
sessionScope.get(”param”);
●
context.redirectToPage("xstart.xsp");
●
context.getLocale();
●
context.getUrlParameter("post");
●
var pager:com.ibm.xsp.component.xp.XspPager= getComponent(””);
pager...
●
GetComponent finns inte i CSJS
20. Xpage på olika språk
● Skapa propertyfiler för olika språk med
några klick från databasen
● Exportera propertyfilerna
● Skicka propertyfilerna till översättning
● Importera propertyfilerna till databasen
● Obs: kräver att man har använt controller
21. DDE och programmeringstips
●
CTRL-M (öppna vy i fulläge)
●
Outline ( organisera controls)
●
CTRL-L x 2
●
F3 (på en control markerar ”parent control”)
●
All Properties på en control (visar alla egenskaper)
●
print(”test”) i ssjs skriver till server console
●
Aktivera debug i application properties
●
Hjälpen som ett eget fönster
●
Använd Alltid try/catch i SSJS
●
@formulas returnerar String(ett värde) eller Array(flera värden)
●
Firebug , console.log(...)
22. Demo
● Theme OneUI ● Panels
● ID hanteringen ● Repeat Control
● Custom Controls
● Editable Area
● View Control/Pager
● Partial Refresh