DNUG Development Day 2019

Oliver Busse
Oliver BusseSenior ICS Consultant & Software Architect bei We4IT Group um We4IT Group
OliverBusse
We4ITGmbH
aveedo.com
@zeromancer1972
oliverbusse.com
2015‑2018
Node.js&
DominoQueryLanguage
DNUGFachgruppentagDevelopment
Essen,20.Februar2019
Agenda
WasistNode.js?
Node.jsinDomino
Sinn&Zweck,Hürden
MeineersteNodeAppmitDomino
DominoQueryLanguage(DQL)
Baustellen
Low‑Code
Fazit
Community
2
WasistNode.js?
Server‑SideJavascriptPlattform
BasierendaufGooglesJavascriptV8Engine
Non‑blockingThread‑>skalierbar
verfügbarfüralleSysteme(Windows,Linux,Mac,ARM,...)
Asynchron
PackageManagement
weitverbreitet
3
Node.jsinDomino
Domino10.0.1
DominoAppDevPack(Linux)
PROTONTask
gRPC(https://grpc.io/about/)
IAM(IdentityAccessManagement)‑Service&Client(preview)
keinBestandteilvonDDE!
4
Node.jsinDomino‑Schema
5
ProtonSetup(1)
ProtonAddinaufServerkopieren
cd /opt/ibm/domino/notes/latest/linux
sudo tar -xvf /tmp/proton-addin-<version>.tgz
ggf.CertifierundKeyringerzeugen(fürIAM)
notes.iniEinträgeeinfügen
# listen on all ip addresses, otherwise define machine's ip
PROTON_LISTEN_ADDRESS=0.0.0.0
# listen on port - free to choose
PROTON_LISTEN_PORT=3002
# use SSL
PROTON_SSL=1
# client certificate authorization, default: anonymous
PROTON_AUTHENTICATION=client_cert
# keyfile, can be the keyfile of SSL enabled HTTP task
PROTON_KEYFILE=proton.kyr
6
ProtonSetup(2)
Taskautomatischmitstarten
ServerTasks=Replica,Router,Update,AMgr,
Adminp,Sched,CalConn,RnRMgr,HTTP,proton
odermanuell
load proton
7
Sinn&Zweck,Hürden
Ergänztbzw.ersetztDAS
EntwicklungvonWeb‑ApplikationenjenseitsXPagesmöglich
Cloud‑ready
DominoistdamitoffenfürFullstackWebDeveloper
Nachwuchs?
Setupsehrkomplex(IAM,DominoalsOAuthProvider)
Unfertig(StandFeb.2019)
esfehlenAssistenten/ScriptsfürAdmins&Entwickler
Dokumentationvorhanden,jedoch"Luftnachoben"
8
MeineersteNodeAppmitDomino
Node.js
npm
domino‑dbPackage
Protonup&running
Editor
9
demo1
DominoQueryLanguage(DQL)
Datenbankenvorbereiten‑>Designcatalog
load updall <database> -e (enable)
load updall <database> -d (refresh)
UPDATE_DESIGN_CATALOG=1
VefügbarfürNode.js,Java,Lotusscript&Konsole*
Java&LS:gleicherServeroderlokaleReplik(10erClient),allerdingsnichtgemischt
Vereinfacht:kombiniertVorteilevonViewIndex&FTSearch
Sehrschnell
*)zumTestengut,liefertaberkeineverwertbareErgebnisse
11
DQL‑Sprachunterschiede
Node.js
const docs = await database.bulkReadDocuments({
query: "form = 'person' and lastname in ('Smith', 'Douglas')",
itemNames: ["lastname", "firstname"]
});
Java
DominoQuery dq = database.createDominoQuery();
DocumentCollection col =
dq.execute("form = 'person' and lastname in ('Smith', 'Douglas')");
Lotusscript
Dim dq As NOTESDOMINOQUERY
Set dq = database.CreateDominoQuery
Dim col As NotesDocumentCollection
Set col = _
dq.Execute(|form = 'person' and lastname in ('Smith', 'Douglas')|)
12
DQL‑Suchoptionen
SuchenachEinzelwerten
form = 'person'
SuchenachMehrfachwerten
lastname in ('Smith', 'Doe')
SuchenachDatumundDatumsbereichen
@dt('2019-02-20') > lastModified > @dt('2019-01-01')
SuchenachWertenundWertebereichen
45 > age > 19
Operatoren
= | > | >= | < | <= | in [all]
and | or | and not | or not
13
DQL‑Strategien
Nutzender"Explain"Funktion
testetnur,fürtnichtsaus
Query Processed:
[form = 'post' and postTags in ('dnug')]
0. AND (childct 2) (totals when complete:)
Prep 0.0 msecs, Exec 12.30 msecs, ScannedDocs 5,
Entries 0, FoundDocs 5
1.form = 'post' NSF document search estimated cost = 100
Prep 2.274 msecs, Exec 0.758 msecs, ScannedDocs 5
Entries 0, FoundDocs 5
1. IN (childct 1) (totals when complete:)
Prep 0.0 msecs, Exec 11.259 msecs, ScannedDocs 802,
Entries 0, FoundDocs 5
2.postTags = 'dnug' NSF document search
estimated cost = 100
Prep 0.201 msecs, Exec 11.180 msecs,
ScannedDocs 802, Entries 0, FoundDocs 5
14
demo2&demo3
Baustellen(Feb2019)
keinRichtext/MIMEundAttachments(Node.js)
wederlesendnochschreibend
Felder,dieimResultsetenthaltenseinsollen,müssen
definiertwerden(Node.js)
GraphQLStandardundgrundsätzlichgut,aberes
fehlteineOptionfür"alleFelder"
Dokumentation(IAM,OAuth)
teilweiseverwirrendundnichteindeutig
ProtonTaskschreibtnichtsindielog.nsf
durchnotes.ini‑SettingsaberaufderKonsole"verbose"zuschalten
ProtonbishernurfürLinux
nochkeinTerminfürWindowsbekannt
16
Low‑Code
BasisfürallesrundumIoT
Think2019DemosvonLuisGuirigaymitAlexasindmitNode‑REDgebaut
visuellesProgrammierenmitJavascript(nichtNode.js!)
läuftselbstaufeinemRaspberryPi:‑)
PluginsohneEnde
DominoV10&DQL
IBMWatsonServices
AmazonAlexa
17
Node‑RED
Fazit
Node.js/ProtonistmomentaneinPoC
AufDQLhabenwirlangegewartet
Low‑CodemitNode‑RED
19
Community
Hilfegibtesaufhttps://openntf.slack.comim
dominonodejsChannel
20
Quellen
WebinarDQL&FAQ:https://www.ibm.com/blogs/collaboration‑solutions/2019/02/04/domino‑
query‑language‑faq
DominoAppDevPackDocumentation:
https://doc.cwpcollaboration.com/appdevpack/docs/en/homepage.html
QuickOverview:https://prominic.net/2018/07/02/node‑js‑domino‑v10‑essentials
Node‑RED:https://nodered.org/
Node‑REDDominoV10Nodes:https://github.com/stefanopog/node‑red‑contrib‑dominodb
Vortrags‑Repository:https://gitlab.com/obusse/dnug_fachgruppe_dev
21
DNUG Development Day 2019
DNUG Development Day 2019
1 von 23

Recomendados

".NET und jetzt!" C# in 21 Tagen oder doch besser Best Practices von
".NET und jetzt!" C# in 21 Tagen oder doch besser Best Practices".NET und jetzt!" C# in 21 Tagen oder doch besser Best Practices
".NET und jetzt!" C# in 21 Tagen oder doch besser Best PracticesGFU Cyrus AG
2.4K views67 Folien
Docker Workshop Experten Forum Stuttgart 2015, Agile Methoden GmbH von
Docker Workshop Experten Forum Stuttgart 2015, Agile Methoden GmbHDocker Workshop Experten Forum Stuttgart 2015, Agile Methoden GmbH
Docker Workshop Experten Forum Stuttgart 2015, Agile Methoden GmbHagilemethoden
1.8K views64 Folien
AdminCamp 2011 Performance von
AdminCamp 2011 PerformanceAdminCamp 2011 Performance
AdminCamp 2011 PerformanceUlrich Krause
2.2K views77 Folien
Solaris im Datacenter - Architektur, Implementation und Betrieb von
Solaris im Datacenter - Architektur, Implementation und BetriebSolaris im Datacenter - Architektur, Implementation und Betrieb
Solaris im Datacenter - Architektur, Implementation und BetriebMarco Stadler
607 views27 Folien
B1 Lotusday 2008 Vortrag X Forms Rapid Development von
B1 Lotusday 2008 Vortrag X Forms Rapid DevelopmentB1 Lotusday 2008 Vortrag X Forms Rapid Development
B1 Lotusday 2008 Vortrag X Forms Rapid DevelopmentAndreas Schulte
647 views18 Folien
Infrastructure Solution Day | Core von
Infrastructure Solution Day | CoreInfrastructure Solution Day | Core
Infrastructure Solution Day | CoreMicrosoft Österreich
813 views61 Folien

Más contenido relacionado

Similar a DNUG Development Day 2019

Portalentwicklung auf Basis von DotNetNuke von
Portalentwicklung auf Basis von DotNetNukePortalentwicklung auf Basis von DotNetNuke
Portalentwicklung auf Basis von DotNetNukeguest6f3e4c
927 views10 Folien
Node.js - Von der Entwicklugn bis zum produktiven Einsatz von
Node.js - Von der Entwicklugn bis zum produktiven EinsatzNode.js - Von der Entwicklugn bis zum produktiven Einsatz
Node.js - Von der Entwicklugn bis zum produktiven EinsatzKai Donato
989 views35 Folien
Einführung in .NET von
Einführung in .NETEinführung in .NET
Einführung in .NETAndreas Heil
1.2K views32 Folien
Fische im Rechenzentrum – Was genau ist eigentlich dieses Redfish und wozu br... von
Fische im Rechenzentrum – Was genau ist eigentlich dieses Redfish und wozu br...Fische im Rechenzentrum – Was genau ist eigentlich dieses Redfish und wozu br...
Fische im Rechenzentrum – Was genau ist eigentlich dieses Redfish und wozu br...BOSTON Server & Storage Solutions GmbH
324 views28 Folien
Webtechnologien für das Frontend & Javascribt( AJAX ) vs Flash( Flex ) von
Webtechnologien für das Frontend & Javascribt( AJAX ) vs Flash( Flex )Webtechnologien für das Frontend & Javascribt( AJAX ) vs Flash( Flex )
Webtechnologien für das Frontend & Javascribt( AJAX ) vs Flash( Flex )guest9606ac
1.2K views49 Folien
Webtechnologien fuer das Frontend und Flash( Flex ) Vs Js( Ajax ) von
Webtechnologien fuer das Frontend und Flash( Flex ) Vs Js( Ajax )Webtechnologien fuer das Frontend und Flash( Flex ) Vs Js( Ajax )
Webtechnologien fuer das Frontend und Flash( Flex ) Vs Js( Ajax )grosser
1.1K views49 Folien

Similar a DNUG Development Day 2019(20)

Portalentwicklung auf Basis von DotNetNuke von guest6f3e4c
Portalentwicklung auf Basis von DotNetNukePortalentwicklung auf Basis von DotNetNuke
Portalentwicklung auf Basis von DotNetNuke
guest6f3e4c927 views
Node.js - Von der Entwicklugn bis zum produktiven Einsatz von Kai Donato
Node.js - Von der Entwicklugn bis zum produktiven EinsatzNode.js - Von der Entwicklugn bis zum produktiven Einsatz
Node.js - Von der Entwicklugn bis zum produktiven Einsatz
Kai Donato989 views
Einführung in .NET von Andreas Heil
Einführung in .NETEinführung in .NET
Einführung in .NET
Andreas Heil1.2K views
Webtechnologien für das Frontend & Javascribt( AJAX ) vs Flash( Flex ) von guest9606ac
Webtechnologien für das Frontend & Javascribt( AJAX ) vs Flash( Flex )Webtechnologien für das Frontend & Javascribt( AJAX ) vs Flash( Flex )
Webtechnologien für das Frontend & Javascribt( AJAX ) vs Flash( Flex )
guest9606ac1.2K views
Webtechnologien fuer das Frontend und Flash( Flex ) Vs Js( Ajax ) von grosser
Webtechnologien fuer das Frontend und Flash( Flex ) Vs Js( Ajax )Webtechnologien fuer das Frontend und Flash( Flex ) Vs Js( Ajax )
Webtechnologien fuer das Frontend und Flash( Flex ) Vs Js( Ajax )
grosser1.1K views
Entity Framework Core - Der Umstieg auf Core von NETUserGroupBern
Entity Framework Core - Der Umstieg auf CoreEntity Framework Core - Der Umstieg auf Core
Entity Framework Core - Der Umstieg auf Core
NETUserGroupBern13 views
Maemo 5 Developer Workshop @ Metalab von thp4
Maemo 5 Developer Workshop @ MetalabMaemo 5 Developer Workshop @ Metalab
Maemo 5 Developer Workshop @ Metalab
thp4643 views
Meet Magento - High performance magento von AOE
Meet Magento - High performance magentoMeet Magento - High performance magento
Meet Magento - High performance magento
AOE 3.5K views
Kuck mal, Node.js! Einstieg für .NET Entwickler mit Visual Studio Code und Ty... von Gregor Biswanger
Kuck mal, Node.js! Einstieg für .NET Entwickler mit Visual Studio Code und Ty...Kuck mal, Node.js! Einstieg für .NET Entwickler mit Visual Studio Code und Ty...
Kuck mal, Node.js! Einstieg für .NET Entwickler mit Visual Studio Code und Ty...
Gregor Biswanger1K views
Kooperative Angebote von GBV und GDZ im Bereich Digitalisierung von Ralf Stockmann
Kooperative Angebote von GBV und GDZ im Bereich DigitalisierungKooperative Angebote von GBV und GDZ im Bereich Digitalisierung
Kooperative Angebote von GBV und GDZ im Bereich Digitalisierung
Ralf Stockmann552 views
Domino Security Present and Future ConnectED Review - ICS.UG 2016 von ICS User Group
Domino Security Present and Future ConnectED Review - ICS.UG 2016Domino Security Present and Future ConnectED Review - ICS.UG 2016
Domino Security Present and Future ConnectED Review - ICS.UG 2016
ICS User Group1K views
Good by Server... Hello Client! von Sandro Sonntag
Good by Server... Hello Client!Good by Server... Hello Client!
Good by Server... Hello Client!
Sandro Sonntag1.1K views

Más de Oliver Busse

HCL Domino Volt - der NSF Killer? von
HCL Domino Volt - der NSF Killer?HCL Domino Volt - der NSF Killer?
HCL Domino Volt - der NSF Killer?Oliver Busse
142 views43 Folien
Outlook becomes a Team Player - with a clever add-in von
Outlook becomes a Team Player - with a clever add-inOutlook becomes a Team Player - with a clever add-in
Outlook becomes a Team Player - with a clever add-inOliver Busse
116 views26 Folien
The NERD stuff - opening for Domino to the modern web developer von
The NERD stuff - opening for Domino to the modern web developerThe NERD stuff - opening for Domino to the modern web developer
The NERD stuff - opening for Domino to the modern web developerOliver Busse
650 views49 Folien
DNUG44 Watson Workspace von
DNUG44 Watson WorkspaceDNUG44 Watson Workspace
DNUG44 Watson WorkspaceOliver Busse
255 views24 Folien
Paradiesisch - OpenNTF von
Paradiesisch - OpenNTFParadiesisch - OpenNTF
Paradiesisch - OpenNTFOliver Busse
269 views38 Folien
Find your data von
Find your dataFind your data
Find your dataOliver Busse
962 views20 Folien

Más de Oliver Busse(20)

HCL Domino Volt - der NSF Killer? von Oliver Busse
HCL Domino Volt - der NSF Killer?HCL Domino Volt - der NSF Killer?
HCL Domino Volt - der NSF Killer?
Oliver Busse142 views
Outlook becomes a Team Player - with a clever add-in von Oliver Busse
Outlook becomes a Team Player - with a clever add-inOutlook becomes a Team Player - with a clever add-in
Outlook becomes a Team Player - with a clever add-in
Oliver Busse116 views
The NERD stuff - opening for Domino to the modern web developer von Oliver Busse
The NERD stuff - opening for Domino to the modern web developerThe NERD stuff - opening for Domino to the modern web developer
The NERD stuff - opening for Domino to the modern web developer
Oliver Busse650 views
DNUG44 Watson Workspace von Oliver Busse
DNUG44 Watson WorkspaceDNUG44 Watson Workspace
DNUG44 Watson Workspace
Oliver Busse255 views
Paradiesisch - OpenNTF von Oliver Busse
Paradiesisch - OpenNTFParadiesisch - OpenNTF
Paradiesisch - OpenNTF
Oliver Busse269 views
ISBG 2016 - XPages on IBM Bluemix von Oliver Busse
ISBG 2016 - XPages on IBM BluemixISBG 2016 - XPages on IBM Bluemix
ISBG 2016 - XPages on IBM Bluemix
Oliver Busse616 views
Utilizing the OpenNTF Domino API von Oliver Busse
Utilizing the OpenNTF Domino APIUtilizing the OpenNTF Domino API
Utilizing the OpenNTF Domino API
Oliver Busse912 views
Utilizing the open ntf domino api von Oliver Busse
Utilizing the open ntf domino apiUtilizing the open ntf domino api
Utilizing the open ntf domino api
Oliver Busse782 views
XPages on Bluemix - the Do's and Dont's von Oliver Busse
XPages on Bluemix - the Do's and Dont'sXPages on Bluemix - the Do's and Dont's
XPages on Bluemix - the Do's and Dont's
Oliver Busse1.4K views
Utilizing the OpenNTF Domino API von Oliver Busse
Utilizing the OpenNTF Domino APIUtilizing the OpenNTF Domino API
Utilizing the OpenNTF Domino API
Oliver Busse3.2K views
SUTOL 2015 - Utilizing the OpenNTF Domino API von Oliver Busse
SUTOL 2015 - Utilizing the OpenNTF Domino APISUTOL 2015 - Utilizing the OpenNTF Domino API
SUTOL 2015 - Utilizing the OpenNTF Domino API
Oliver Busse1.1K views
Out of the Blue - the Workflow in Bluemix Development von Oliver Busse
Out of the Blue - the Workflow in Bluemix DevelopmentOut of the Blue - the Workflow in Bluemix Development
Out of the Blue - the Workflow in Bluemix Development
Oliver Busse3.2K views
Transformations - a TLCC & Teamstudio Webinar von Oliver Busse
Transformations - a TLCC & Teamstudio WebinarTransformations - a TLCC & Teamstudio Webinar
Transformations - a TLCC & Teamstudio Webinar
Oliver Busse1.3K views
Out of the Blue: Getting started with IBM Bluemix development von Oliver Busse
Out of the Blue: Getting started with IBM Bluemix developmentOut of the Blue: Getting started with IBM Bluemix development
Out of the Blue: Getting started with IBM Bluemix development
Oliver Busse1.7K views
Fix & fertig: Best Practises für "XPages-Migranten" von Oliver Busse
Fix & fertig: Best Practises für "XPages-Migranten"Fix & fertig: Best Practises für "XPages-Migranten"
Fix & fertig: Best Practises für "XPages-Migranten"
Oliver Busse1.7K views
Dnug 112014 modernization_openn_ntf_ersatzsession von Oliver Busse
Dnug 112014 modernization_openn_ntf_ersatzsessionDnug 112014 modernization_openn_ntf_ersatzsession
Dnug 112014 modernization_openn_ntf_ersatzsession
Oliver Busse931 views
DNUG 38: "Einen Rahmen schaffen: Vorteile durch Frameworks in der Domino-Webe... von Oliver Busse
DNUG 38: "Einen Rahmen schaffen: Vorteile durch Frameworks in der Domino-Webe...DNUG 38: "Einen Rahmen schaffen: Vorteile durch Frameworks in der Domino-Webe...
DNUG 38: "Einen Rahmen schaffen: Vorteile durch Frameworks in der Domino-Webe...
Oliver Busse643 views

DNUG Development Day 2019