Spring Schema Extension eller Spring Domain Specific Languages

Størrelse: px
Starte visningen fra side:

Download "Spring Schema Extension eller Spring Domain Specific Languages"

Transkript

1 Spring Schema Extension eller Spring Domain Specific Languages Forfatter: Jeppe Cramon Cramon Consulting ( Dato: 23/ Efter at have arbejdet med Spring i lang tid, har jeg lagt mærke til at mine Spring XML konfigurations filer ofte ligner hinanden. Der ud over har de en tendens til at indeholde store mængder XML. Det lugter som en mulighed for abstraktion og genbrug. Springs standard XML format er ret godt til dets formål, nemlig at styre afhængigheder mellem dine komponenter, services, resourcer og lign. Springs XML konfigurations sprog er meget lowlevel, hvilket er påkrævet for at kunne tilbyde den grad af fleksibilitet der er nødvendig. Som udgangspunkt for mit eksempel tager vi en Spring MVC web applikation, som i stor stil bruger Springs XML konfigurations fil(er). Hensigten, sammenhængen mellem Controllers og Url mapninger mistes hurtigt i de utallige <bean> definitioner. Spring-MVC er et meget fleksibel mht. hvordan dine web applikationer kan skrues sammen. Den fleksibilitet har dog den pris, at dine konfigurations filer bliver større og mere komplicerede. Når et projekt først har besluttet sig for hvordan f.eks. en web applikationerne skal konfigureres, bliver man hurtig træt af de omfangsrige konfigurations filer, hvor man nemt kan miste overblikket. Det er min holdning, at det er bedre at konfigurere en MVC applikation i et Domæne Specifikt Sprog (DSL). Jeg vil ikke gå ind i en diskussion om, hvor vidt en domæne specifik XML konfigurations fil kan kaldes et Domæne Specifikt Sprog eller ej. Det er ikke formålet med dette blog entry. Et eksempel på et mere Domæne Specifikt Sprog for konfiguration af MVC applikationer kan findes i Struts. Her finder du XML konfigurations tags/elementer, der klart mapper til nøgle objekter/koncepter i Struts. <form-bean name="accountform" type="org.springframework.samples.jpetstore.web.struts.accountactionform"/> eller <action path="/shop/additemtocart" type="org.springframework.samples.jpetstore.web.struts.additemtocartaction" name="cartform" scope="session" validate="false"> <forward name="success" path="/web-inf/jsp/struts/cart.jsp"/> </action> Det er efter min mening mere sigende end dette Spring MVC eksempel (som blot er en ud af mange måder at konfigurere URL til Controller mapping i Spring-MVC). Først er der indikeret en viewresolver (hvordan bliver view/forward værdien omsat til en navigation til en JSP eller anden controller). Dette er ikke strengt nødvendigt og skal kun ske een gang. Den er medtaget her for at gøre eksemplet mere komplet. At man kan angive en ViewResolver giver Spring-MVC en stor grad af fleksibilitet. Der næst er der angivet en Url til controller mapping. Der findes mange forskellige måder at gøre dette på. Et andet eksempel der bruger bean's navn som Url mapning er vist her: <bean id="defaulthandlermapping" class="org.springframework.web.servlet.handler.beannameurlhandlermapping"/ > <bean name="/shop/additemtocart.do" class="org.springframework.samples.jpetstore.web.spring.additemtocartcontroller"

2 >... Tilsidst er selve controlleren vist, med angivelse af formview og successview (dette afhænger igen af hvilken slags Controller du vælger at implementere. De har forskellige features og krav). <bean id="viewresolver" class="org.springframework.web.servlet.view.internalresourceviewresolver"> <property name="viewclass"><value>org.springframework.web.servlet.view.jstlview</value></p roperty> <property name="prefix"><value>/web-inf/jsp/</value></property> <property name="suffix"><value>.jsp</value></property> <bean id="urlmapping" class="org.springframework.web.servlet.handler.simpleurlhandlermapping"> <property name="mappings"> <props> <prop key="/shop/addtoitemcart.do">additemtocartcontroller</prop>... </props> </property> <bean id="additemtocartcontroller" class="org.springframework.samples.jpetstore.web.spring.additemtocartcontroller" > <property name="successview" value="cart"/> <property name="formview" value="cart"/> <property name="petstore" ref="petstore"/> Da Spring-MVC er så fleksibelt, gør det det også sværere at lave en simpel DSL som dækker alle mulige konfigurations muligheder, så derfor synes jeg også at deres valg at lave konfigurationen i bean XML formatet indtil videre er fornuftigt. Har jeres firma eller jeres projekt i stedet besluttet sig for en konkret måde at konfigurere Spring-MVC, kan I med fordel definere jeres egen Spring- MVC DSL, som derefter kan støtte udviklerne i konfigurationen af applikationerne. En sådan DSL kunne f.eks.se sådan ud: <spring-mvc> <view-definition viewclass="org.springframework.web.servlet.view.jstlview" prefix="/web-inf/jsp" suffix=".jsp"/> <action path="/shop/additemtocart.do" class="org.springframework.samples.jpetstore.web.spring.additemtocartcontroller" > <forward name="formview">cart</forward> <forward name="successview">cart</forward> <wiring> <property name="petstore" ref="petstore"/> </wiring> </action> <action path="/shop/newaccount.do"

3 class="org.springframework.samples.jpetstore.web.spring.accountformcontroller"> <forward name="success">index</forward> <wiring> <property name="petstore" ref="petstore"/> <property name="validator" ref="accountvalidator"/> </wiring> </action> </spring-mvc> For at kunne implementere en sådan DSL startede jeg med en meget simpel template baseret løsning der brugte Java og Velocity. Løsningen, der lige så godt kunne have været lavet i XSLT (med bedre matching muligheder tilfølge, men også en mere kompliceret mapnings fil), bruger single pass XPath matching (dvs. Velocity template koden kunne ikke foretage matches, dette kunne kun styres fra mapping filen) der konverterede input XML'en til standard Spring bean XML format. Det giver nogle simplere, men også kan så effektive mapnings filer. Mapningen for Spring-MVC DSL'en ovenfor ser sådan ud: <mappings> <resultstart> <![CDATA[ <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" " <beans> <!-- For Spring MVC in our company we've decided to go for the BeanName url mapping handler <bean id="defaulthandlermapping" class="org.springframework.web.servlet.handler.beannameurlhandlermapping"/> ]]> </resultstart> <mapping xpath="/spring-mvc/view-definition"> <![CDATA[ <bean id="viewresolver" class="org.springframework.web.servlet.view.internalresourceviewresolver"> <property name="viewclass"> #set($viewtype = $element.valueof("@type")) #if ($viewtype == "JSTL") <value>org.springframework.web.servlet.view.jstlview</value> #elseif ($viewtype == "JSP") <value>org.springframework.web.servlet.view.jspview</value> #end </property> <property name="prefix"><value>${element.valueof("@prefix")/</value></property> <property name="suffix"><value>${element.valueof("@suffix")</value></property> ]]> </mapping> <mapping xpath="/spring-mvc/action"> <![CDATA[ <bean name="${element.valueof("@path")" class="${element.valueof("@class")"> #set ($forwards = $element.selectnodes("forward")) #foreach ($forward in $forwards) <property name="${forward.valueof("@name")view"><value>$forward.text</value></property> #end #set ($wiring = $element.selectsinglenode("wiring"))

4 #if ($wiring) #foreach ($wiringelement in ${wiring.elements()) $wiringelement.asxml() #end #end ]]> </mapping> <resultend> <![CDATA[ </beans> ]]> </resultend> </mappings> Dette rækker desværre ikke langt nok for mere avancerede behov, hvorfor denne løsning blev droppet til fordel for en totalt Java drevet løsning, som dog også er mere kompleks at arbejde med. Det jeg ønsker er komplet XML Schema Extension hvor elementer fra et schema kan dekorere eller bruge elementer fra et andet. Dette kan selvfølgelig misbruges til at lave meget komplekse og rodede konfigurations filer, men det kan også bruges fornuftigt til at lave let læselige og effektive konfigurations filer. Et simpelt eksempel på Schema extension, er f.eks. et transactional element der bruges til at dekorere andre objekter (som f.eks. kunne være services, facader eller DAO'er), hvorved disse objekter bliver gjort transaktionelle. I standard Spring gøres dette ved at bruge TransactionProxyFactoryBean (eller Transactional annotationen som ikke er vist her) til at wrappe target objekterne. Nedenfor at vist hvordan TransactionProxyFactoryBean er brugt i Springs PetStore eksempel applikation: <bean id="basetransactionproxy" class="org.springframework.transaction.interceptor.transactionproxyfactorybean" abstract="true"> <property name="transactionmanager"><ref bean="transactionmanager"/></property> <property name="transactionattributes"> <props> <prop key="*">propagation_required</prop> </props> </property> <bean id="petstore" parent="basetransactionproxy"> <property name="target"> <bean class="org.springframework.samples.jpetstore.domain.logic.petstoreimpl"> <property name="accountdao" ref="accountdao"/> <property name="categorydao" ref="categorydao"/> <property name="productdao" ref="productdao"/> <property name="itemdao" ref="itemdao"/> <property name="orderdao" ref="orderdao"/> </property> I dette eksempel bruges både parent og inner beans for at øge genbrugen, men der er stadig meget XML at skrive, specielt hvis du har mere end een facade. Ved brug af Spring Xml Schema Extension Parser kan jeg gøre det samme på følgende måde:

5 <?xml version="1.0" encoding="utf-8"?> <beans xmlns=" xmlns:transaction=" xmlns:xsi=" xsi:nonamespaceschemalocation="spring.xsd" xsi:schemalocation= " SpringTransaction.xsd"> <transaction:transactional defaultpropagation="propagation_required" transactionmanager="transactionmanager"> <bean class="org.springframework.samples.jpetstore.domain.logic.petstoreimpl"> <property name="accountdao" ref="accountdao"/> <property name="categorydao" ref="categorydao"/> <property name="productdao" ref="productdao"/> <property name="itemdao" ref="itemdao"/> <property name="orderdao" ref="orderdao"/> <bean class="org.springframework.samples.jpetstore.domain.logic.otherfacade">... </transaction:transactional> </beans> Xml Schema Extension Parserens konfiguration er lidt mere kompliceret end standard måden i Spring, men tilgengæld foretager man det ikke så ofte: DefaultListableBeanFactory beanfactory = new DefaultListableBeanFactory(); XmlNamespaceAwareBeanDefinitionReader beandefinitionreader = new XmlNamespaceAwareBeanDefinitionReader(beanFactory); SchemaExtensionXmlBeanDefinitionParser beandefinitionparser = new SchemaExtensionXmlBeanDefinitionParser(); beandefinitionparser.registerschemaextensionparser(" on", new SpringTransactionParser()); beandefinitionparser.registerschemaextensionparser(" new SpringBeansParser()); beandefinitionreader.setbeandefinitionparser(beandefinitionparser); int numberofbeansloaded = beandefinitionreader.loadbeandefinitions(new ClassPathResource("org/springframework/beans/factory/xml/schemaextension/MyConfi gfile.xml")); Specifikationen af XML Schemaerne til brug under XML parsning er valgfri og udeladt her. Parsningen af elementer fra de forskellige namespaces bliver foretaget af Schema Extension Parsers, som styres af en SchemaExtensionXmlBeanDefinitionParser. Hvert namespace har sin egen SchemaExtensionParser. Schema Extension Parseren er event drevet, lidt på samme måde som en SAX parser. Det vil sige at den modtager et metode kald for hver start og slut tag i XML'en. Har du f.eks. et transactional tag, vil hoved parseren (SchemaExtensionXmlBeanDefinitionParser) kalde metoderne starttransactional og endtransactional i den Schema Extension Parser, som er ansvarlig for det namespace transactional er defineret i. Start metoden modtager som parameter det XML element der bliver parset, samt et ElementParseContext object der bruges til at dele objekter og bean definitioner. End metode kaldet modtager kun et ElementParseContext objekt. Her er parseren for transaction namespacet:

6 public class SpringTransactionParser implements SchemaExtensionParser { public SpringTransactionParser() { super(); public void starttransactional(element element, ElementParseContext parsecontext) { // We tell the parse context that any immediate child contexts shouldn't register beans in the BeanFactory // since we're going to alter them in endtransactional and register them ourselves. // This hack in necessary since Spring doens't allow you to remove/unregister beans once they're registered parsecontext.setchildcontextregisterbeansinfactory(false); // Read and store the Transaction Manager and DefaultPropagation for use in the endtransactional String transactionmanagerbeanref = element.getattribute("transactionmanager"); parsecontext.getattributes().put("transactionmanager", transactionmanagerbeanref); String defaultpropagation = element.getattribute("defaultpropagation"); parsecontext.getattributes().put("defaultpropagation", defaultpropagation); public void endtransactional(elementparsecontext parsecontext) { String transactionmanagerbeanref = (String) parsecontext.getattributes().get("transactionmanager"); String defaultpropagation = (String) parsecontext.getattributes().get("defaultpropagation"); // None of the beans in the child context have been registered in the BeanFactory. // Here we register them using a new name (the original name suffixed with "Target"). // We are then inserting a new Bean into the BeanFactory with the name of the original bean. // This bean will be of type TransactionProxyFactoryBean and it's target will point // to the original bean, effectively creating a Transactonal proxy wrapping the original bean for (Iterator beansiterator = parsecontext.getchildparsecontext().getregisteredbeans().iterator(); beansiterator.hasnext();) { BeanDefinitionHolder originalbeandefinitionholder = (BeanDefinitionHolder) beansiterator.next(); // Create the TransactionProxyFactoryBean AbstractBeanDefinition beandefinition = parsecontext.createrootbeandefinition(transactionproxyfactorybean.class); beandefinition.getpropertyvalues().addpropertyvalue("transactionmanager", new RuntimeBeanReference(transactionManagerBeanRef)); Properties transactionattributes = new Properties(); transactionattributes.setproperty("*", defaultpropagation); beandefinition.getpropertyvalues().addpropertyvalue("transactionattributes", transactionattributes); beandefinition.getpropertyvalues().addpropertyvalue("target", new RuntimeBeanReference(originalBeanDefinitionHolder.getBeanName() +

7 "Target")); // Register the proxy bean BeanDefinitionHolder trxproxyfactorybeanholder = new BeanDefinitionHolder(beanDefinition, originalbeandefinitionholder.getbeanname()); parsecontext.registerbean(trxproxyfactorybeanholder); // Register the original bean BeanDefinitionHolder originalbeantargetholder = new BeanDefinitionHolder(originalBeanDefinitionHolder.getBeanDefinition(), originalbeandefinitionholder.getbeanname() + "Target"); parsecontext.registerbean(originalbeantargetholder); Her er et eksempel på hvordan dele af Parseren for Spring bean namespace er implementeret: public void startbean(element element, ElementParseContext parsecontext) { String id = element.getattribute("id"); String classname = element.getattribute("class"); AbstractBeanDefinition beandefinition = parsecontext.createrootbeandefinition(classname); BeanDefinitionHolder beandefinitionholder = new BeanDefinitionHolder(beanDefinition, id); parsecontext.registerbean(beandefinitionholder); public void endbean(elementparsecontext parsecontext) { public void startproperty(element element, ElementParseContext parsecontext) { String propertyname = element.getattribute("name"); if (element.hasattribute("value")) { String value = element.getattribute("value"); BeanDefinitionHolder beandefinitionholder = parsecontext.getcurrentbean(); beandefinitionholder.getbeandefinition().getpropertyvalues().addpropertyvalue(pr opertyname, value); else { PropertyValueHolder propertyvalue = new PropertyValueHolder(propertyName); parsecontext.getobjectstack().push(propertyvalue); public void endproperty(elementparsecontext parsecontext) { if (parsecontext.getobjectstack().istopoftype(propertyvalueholder.class)) { PropertyValueHolder propertyvalueholder = (PropertyValueHolder) parsecontext.getobjectstack().pop(); BeanDefinitionHolder beandefinitionholder = parsecontext.getcurrentbean(); beandefinitionholder.getbeandefinition().getpropertyvalues().addpropertyvalue(pr

8 opertyvalueholder.getname(), propertyvalueholder.getvalue()); else { // NOP - All was handled in the startproperty method Det spændende med Schema Extension er, at det nu er muligt at genbruge elementer på mange forskellige måder (ikke alle kombinationer giver dog mening). Du kan f.eks. genbruge Springs elementer inde i dine egne, som i dette eksemple: <dao id="customerdao2" class="com.test.mydao"> <beans:constructor-arg> <beans:ref bean="datasource"/> </beans:constructor-arg> </dao> Man bliver nød til at afveje fleksibilitet mod kompleksitet. Jo mere specifik din DSL er, desto mindre kan den genbruges. Tilgengæld kan en meget specifik DSL indkapsle en masse funktionalitet, som normalt ville kræve mange beans hvis det samme skulle gøres i standard Spring bean format. Derfor vil en meget specifik DSL også være mere effektiv til den opgave den er designet for. Med Schema Extension kan du lave project specifikke konfigurations filer, som kun tillader specfikke elementer og kombinationer. På den måde kan man nemmere kontrollere eller guide udviklerne i forbindelse med konfiguration. Da XML Schemaer er brugt som fundament, er vi mere eller mindre sikrede en nem måde at udvide funktionaliteten på, som behovet viser sig. På den måde kan vi lave specifikke og effektive Spring konfigurations filer. Valget mellem om man skal lave en DSL eller ej afhænger meget af projektet. Hvor stort er det, hvor meget bliver konfigureret, osv. Koden til XML Schema Extension er submittet til Spring projektet, som er forslag til hvordan denne funktionalitet kan implementeres. Spring 1.3 forventes at tilbyde en eller anden form for Schema Extension. Ønsker du at kigge nærmere på koden så kontakt mig på jeppe@cramon.dk

Webserverprogrammering

Webserverprogrammering Webserverprogrammering WSP fortsat - dag 11 Behandling af XML (StAX) Syndikering og RSS med XML JAXB - XML Java-objekter Projekthjælp Dette materiale er under Åben Dokumentlicens, se http://www.sslug.dk/linuxbog/licens.html

Læs mere

Hvordan vælger jeg dokumentprofilen?

Hvordan vælger jeg dokumentprofilen? Hvordan vælger jeg dokumentprofilen? Valget af OIOUBL profil i en konkret dokumentudveksling vil bl.a. afhænge af, hvilke OIOUBL profiler den anden part i udvekslingen understøtter. Et konkret eksempel

Læs mere

Web- og serverprogrammering

Web- og serverprogrammering Web- og serverprogrammering Arkitekturer i webprogrammer - dag 6 Model-View-Controller-arkitukturen Flerlags-arkitekturer Læsning: WJSP 10 Dette materiale er under Åben Dokumentlicens, se http://www.sslug.dk/linuxbog/licens.html

Læs mere

Privat-, statslig- eller regional institution m.v. Andet Added Bekaempelsesudfoerende: string No Label: Bekæmpelsesudførende

Privat-, statslig- eller regional institution m.v. Andet Added Bekaempelsesudfoerende: string No Label: Bekæmpelsesudførende Changes for Rottedatabasen Web Service The coming version of Rottedatabasen Web Service will have several changes some of them breaking for the exposed methods. These changes and the business logic behind

Læs mere

Model Drevet Design i Praksis

Model Drevet Design i Praksis Model Drevet Design i Praksis Dansk IT - På Vej Hjem møde d. 8/9-2009 Jeppe Cramon - TigerTeam ApS Lidt om mig 15 års erfaring som software udvikler Partner i TigerTeam Første erfaring med model drevet

Læs mere

Den forudsætter kendskab til XML og C# men ikke til brug af XML i C#.

Den forudsætter kendskab til XML og C# men ikke til brug af XML i C#. Denne guide er oprindeligt udgivet på Eksperten.dk Brug af XML i C# Denne artikel vil vise lidt om hvordan man kan bruge XML i C#. Den forudsætter kendskab til XML og C# men ikke til brug af XML i C#.

Læs mere

FMK-online's brug af SmartFraming

FMK-online's brug af SmartFraming Side 1 af 9 FMK-online's brug af SmartFraming Version 1.1 2011-11-01 Side 2 af 9 Indholdsfortegnelse Indledning...3 Initialisering og login...3 Kontekst Properties...4 user.id.authorizationid...4 userorganization.id.number...4

Læs mere

SAX Simple API for XML.

SAX Simple API for XML. SAX Simple API for XML. En API (Application Programming Interface) et bibliotek eller et sæt af funktioner eller metoder. SAX er et sådant bibliotek af abstrakte metoder som f. eks. startdocument() eller

Læs mere

Nye Java XML API'er

Nye Java XML API'er Denne guide er oprindeligt udgivet på Eksperten.dk Nye Java XML API'er Denne artikel beskriver nye XML features i Java 1.6 - StAX og JAXB, samt XStreams. Den forudsætter kendskab til Java og brug

Læs mere

Design by Contract Bertrand Meyer Design and Programming by Contract. Oversigt. Prædikater

Design by Contract Bertrand Meyer Design and Programming by Contract. Oversigt. Prædikater Design by Contract Bertrand Meyer 1986 Design and Programming by Contract Michael R. Hansen & Anne Haxthausen mrh@imm.dtu.dk Informatics and Mathematical Modelling Technical University of Denmark Design

Læs mere

Tredjepart webservices

Tredjepart webservices Tredjepart webservices 4. juni 2015 USS Dok. Klik her for at angive tekst. 1/12 Indholdsfortegnelse Introduktion... 3 Miljøer... 3 Adgang... 3 API kald... 4 GET: /authorizations... 4 Input 4 Output 4 Output

Læs mere

Software Construction 1 semester (SWC) Spørgsmål 1

Software Construction 1 semester (SWC) Spørgsmål 1 Spørgsmål 1 Objekter #1 Giv en kort præsentation af begrebet objekt, samt hvorledes du erklærer(declare), opretter(create) og bruger objekter Du kan beskrive o Datatyper o Variable / Instans variable /

Læs mere

Ide med Diff. Mål. Tidsplan. 1.uge: 2.uge:

Ide med Diff. Mål. Tidsplan. 1.uge: 2.uge: Side 1 af 5 Ide med Diff. Min ide med differenertierings modulet er at lave et program som kan vise 3d objekter, og få lavede en konverter som kan konventer 3ds filer over til noget som flash kan bruge.

Læs mere

IBM Network Station Manager. esuite 1.5 / NSM Integration. IBM Network Computer Division. tdc - 02/08/99 lotusnsm.prz Page 1

IBM Network Station Manager. esuite 1.5 / NSM Integration. IBM Network Computer Division. tdc - 02/08/99 lotusnsm.prz Page 1 IBM Network Station Manager esuite 1.5 / NSM Integration IBM Network Computer Division tdc - 02/08/99 lotusnsm.prz Page 1 New esuite Settings in NSM The Lotus esuite Workplace administration option is

Læs mere

Udvikling af DOTNET applikationer til MicroStation i C#

Udvikling af DOTNET applikationer til MicroStation i C# Udvikling af DOTNET applikationer til MicroStation i C# Praktiske tips for at komme i gang. Gunnar Jul Jensen, Cowi Hvorfor nu det? Mdl og Vba kan det hele Fordelene er : udviklingsmiljøet er eksternt

Læs mere

DK - Quick Text Translation. HEYYER Net Promoter System Magento extension

DK - Quick Text Translation. HEYYER Net Promoter System Magento extension DK - Quick Text Translation HEYYER Net Promoter System Magento extension Version 1.0 15-11-2013 HEYYER / Email Templates Invitation Email Template Invitation Email English Dansk Title Invitation Email

Læs mere

Parameters. Denne artikel beskriver hvorfor parameters er gode. Den forudsætter lidt kendskab til C# og ADO.NET.

Parameters. Denne artikel beskriver hvorfor parameters er gode. Den forudsætter lidt kendskab til C# og ADO.NET. Denne guide er oprindeligt udgivet på Eksperten.dk Parameters Denne artikel beskriver hvorfor parameters er gode. Den forudsætter lidt kendskab til C# og ADO.NET. Der findes en tilsvarende artikel med

Læs mere

SWC Elementer i klassedefinition

SWC Elementer i klassedefinition SWC Elementer i klassedefinition Indhold Eksempel... 2 Karakteristika for en klasse... 3 Karakteristika for et instance field... 4 Karakteristika for en constructor... 5 Karakteristika for en property...

Læs mere

DET KONGELIGE BIBLIOTEK NATIONALBIBLIOTEK OG KØBENHAVNS UNIVERSITETS- BIBLIOTEK. Index

DET KONGELIGE BIBLIOTEK NATIONALBIBLIOTEK OG KØBENHAVNS UNIVERSITETS- BIBLIOTEK. Index DET KONGELIGE Index Download driver... 2 Find the Windows 7 version.... 2 Download the Windows Vista driver.... 4 Extract driver... 5 Windows Vista installation of a printer.... 7 Side 1 af 12 DET KONGELIGE

Læs mere

Netværk & elektronik

Netværk & elektronik Netværk & elektronik Oversigt Ethernet og IP teori Montering af Siteplayer modul Siteplayer teori Siteplayer forbindelse HTML Router (port forwarding!) Projekter Lkaa Mercantec 2009 1 Ethernet På Mars

Læs mere

Digitaliseringsstyrelsen

Digitaliseringsstyrelsen NemLog-in 29-05-2018 INTERNAL USE Indholdsfortegnelse 1 NEMLOG-IN-LØSNINGER GØRES SIKRERE... 3 1.1 TJENESTEUDBYDERE SKAL FORBEREDE DERES LØSNINGER... 3 1.2 HVIS LØSNINGEN IKKE FORBEREDES... 3 2 VEJLEDNING

Læs mere

Idekatalog. Så vidt jeg husker fremgik det ret tydeligt hvad der skulle være i ansøgningen. Der var bare virkelig mange informationer der skulle med.

Idekatalog. Så vidt jeg husker fremgik det ret tydeligt hvad der skulle være i ansøgningen. Der var bare virkelig mange informationer der skulle med. Ansøgning Yderligere bemærkninger til ansøgningen Det var fedt at rammerne var så åbne, som jeg så det var der kun to krav til projektet: Det skulle være open source og det skulle have det offentliges

Læs mere

Vejledning til validator test af metadata

Vejledning til validator test af metadata Vejledning til validator test af metadata Test af metadata finds under kategorien Metadata (Technical Guidance version 1.3). Man kan teste en eller flere ISO 19115/19119 metadata XML og GML filer, ved

Læs mere

Namespaces. Vi kan kvalificere elementer på denne måde: <?xml version="1.0" encoding="iso-8859-1"?>

Namespaces. Vi kan kvalificere elementer på denne måde: <?xml version=1.0 encoding=iso-8859-1?> Namespaces...1 Default namespace:...6 Præfiks:...7 To slags navne i XML:...11 Standard namespaces:...14 RDF Resource Description Framework:...18 Attributter:...19 DTD skemaer og namespaces:...21 Namespaces.

Læs mere

PID2000 Archive Service

PID2000 Archive Service PROLON CONTROL SYSTEMS Herstedvesterstræde 56 DK-2620 Albertslund Danmark Tlf.: (+45) 43620625 Fax: (+45) 43623125 PID2000 Archive Service Bruger vejledning Juni 2002 Denne manual beskriver brugen af softwaren

Læs mere

Terese B. Thomsen 1.semester Formidling, projektarbejde og webdesign ITU DMD d. 02/11-2012

Terese B. Thomsen 1.semester Formidling, projektarbejde og webdesign ITU DMD d. 02/11-2012 Server side Programming Wedesign Forelæsning #8 Recap PHP 1. Development Concept Design Coding Testing 2. Social Media Sharing, Images, Videos, Location etc Integrates with your websites 3. Widgets extend

Læs mere

Lektion 6. Grundlæggende programmering i VR

Lektion 6. Grundlæggende programmering i VR Lektion 6 Grundlæggende programmering i VR Plan for i dag Simpelt FPS Triggerzones og animationer C# og objekt orienteret programmering Interfaces Generics Google Cardboard Video om VRs fremtid App til

Læs mere

MySQL i Java. Tutorial lavet af Jákup W. Hansen TSU 2006 2.semester 05.januar 2007

MySQL i Java. Tutorial lavet af Jákup W. Hansen TSU 2006 2.semester 05.januar 2007 MySQL i Java Tutorial lavet af Jákup W. Hansen TSU 2006 2.semester 05.januar 2007 Hvad er MySQL? Det er et database system, som er gratis for os at bruge. Det er lidt mere besværligt i starten at bruge

Læs mere

JSP, Tomcat. Tutorial lavet af Jákup W. Hansen TSU semester 10.october 2007

JSP, Tomcat. Tutorial lavet af Jákup W. Hansen TSU semester 10.october 2007 JSP, Tomcat Tutorial lavet af Jákup W. Hansen TSU 2006 3.semester 10.october 2007 Hvad er JSP(Java Server Pages): Det er en teknik som er bygget ovenover Servlets teknikken, men fidusen er at det skal

Læs mere

Design Diaries.

Design Diaries. Design Diaries http://blog.lykkeeilert.dk/ Patricia Gambula Larsen Patrick Lykke Eilert Ninette Andersen cph-pl130@cphbusiness.dk cph-pe58@cphbusiness.dk cph-na96@cphbusiness.dk INDHOLD Use case model

Læs mere

Project Step 7. Behavioral modeling of a dual ported register set. 1/8/ L11 Project Step 5 Copyright Joanne DeGroat, ECE, OSU 1

Project Step 7. Behavioral modeling of a dual ported register set. 1/8/ L11 Project Step 5 Copyright Joanne DeGroat, ECE, OSU 1 Project Step 7 Behavioral modeling of a dual ported register set. Copyright 2006 - Joanne DeGroat, ECE, OSU 1 The register set Register set specifications 16 dual ported registers each with 16- bit words

Læs mere

Eksempel: et ordresystem note 5 Lagdeling s. 1

Eksempel: et ordresystem note 5 Lagdeling s. 1 Eksempel: et ordresystem note 5 Lagdeling s. 1 Eksempel: et ordre-system NiceHair er et firma, som sælger udstyr, inventar og frisørartikler til frisørsaloner over hele landet. Det er ejet af et ægtepar

Læs mere

Webkorpora: Yahoo API og perl

Webkorpora: Yahoo API og perl Webkorpora: Yahoo API og perl Jakob Halskov jh.id@cbs.dk Ph.d.-studerende Terminologi og korpuslingvistik den 21. februar 2006 1. Hvad er et API? 2. Hent din egen udviklernøgle! 3. Gennemgang af koden

Læs mere

Vores mange brugere på musskema.dk er rigtig gode til at komme med kvalificerede ønsker og behov.

Vores mange brugere på musskema.dk er rigtig gode til at komme med kvalificerede ønsker og behov. På dansk/in Danish: Aarhus d. 10. januar 2013/ the 10 th of January 2013 Kære alle Chefer i MUS-regi! Vores mange brugere på musskema.dk er rigtig gode til at komme med kvalificerede ønsker og behov. Og

Læs mere

IBM WebSphere Operational Decision Management

IBM WebSphere Operational Decision Management IBM WebSphere Operational Decision Management 8 0 49., WebSphere Operational Decision Management 8, 0, 0. Copyright IBM Corporation 2008, 2012. ........... 1 :......... 1 Miniloan........ 3 1:........

Læs mere

Dagens program. Domæner. change log- screen shots hver gang I har arbejdet med themet. Arkitekturen bag en wp blog. Hvad er widgets.

Dagens program. Domæner. change log- screen shots hver gang I har arbejdet med themet. Arkitekturen bag en wp blog. Hvad er widgets. Dagens program Har alle fået? Har nogen betalt for meget? Hav jeres koder klar Domæner change log- screen shots hver gang I har arbejdet med themet. Arkitekturen bag en wp blog Hvad er widgets Hvad er

Læs mere

SAX Simple API for XML.

SAX Simple API for XML. SAX Simple API for XML....1 Funktioner:...2 Skrive XML dokumenter med SAX writer:...4 SAX metoder i Visual Basic:...5 error handler:...6 En content handler:...7 At validere et XML dokument med SAX:...13

Læs mere

INGENIØRHØJSKOLEN I ÅRHUS Elektro- og IKT-afdelingen. I3PRG3 + I3DTM3 + I3ISY1-3. semester

INGENIØRHØJSKOLEN I ÅRHUS Elektro- og IKT-afdelingen. I3PRG3 + I3DTM3 + I3ISY1-3. semester INGENIØRHØJSKOLEN I ÅRHUS Elektro- og IKT-afdelingen Side 1 af 7 Eksamenstermin: DECEMBER 2003 / JANUAR 2004 Varighed: 4 timer - fra kl. 9.00 til kl. 13.00 Ingeniørhøjskolen udleverer: 3 omslag samt papir

Læs mere

Aftenskole i programmering sæson Watch Me. Sæson 2 - Lektion 19

Aftenskole i programmering sæson Watch Me. Sæson 2 - Lektion 19 Watch Me Sæson 2 - Lektion 19 I sidste uge I sidste uge tog vi en lille maraton, for at få lavet version 0.5 af ugesedel appen, og lektionen blev 2.5 timer lang. Undskyld! Vi brugte tiden på: At lave en

Læs mere

Værktøjer fra værktøjskassen. Søren Breddam, Stevns Kommune

Værktøjer fra værktøjskassen. Søren Breddam, Stevns Kommune Værktøjer fra værktøjskassen Søren Breddam, Stevns Kommune sb@stevns.dk 1stevns kommune Mapbasic i Stevns Kommune Data Kørsel af planlagte opgaver, så data altid er opdaterede. Logfil til overvågning Dagligt

Læs mere

Database for udviklere. Jan Lund Madsen PBS10107

Database for udviklere. Jan Lund Madsen PBS10107 Database for udviklere Jan Lund Madsen PBS10107 Indhold LINQ... 3 LINQ to SQL og Arkitektur... 3 O/R designere... 5 LINQ Den store introduktion med.net 3.5 er uden tvivl LINQ(udtales link): Language-INtegrated

Læs mere

Integrationsmanual. Anvendelse af webservice til kursusoversigt i Campus. Brugervejledning til udviklere

Integrationsmanual. Anvendelse af webservice til kursusoversigt i Campus. Brugervejledning til udviklere Integrationsmanual Anvendelse af webservice til kursusoversigt i Campus Brugervejledning til udviklere Moderniseringsstyrelsen Webservice manual til udviklere 2016 1 1. Indholdsfortegnelse Nyt kapitel

Læs mere

Prepared Statements. Denne artikel beskriver hvorfor prepared statements er gode. Den forudsætter lidt kendskab til Java og JDBC.

Prepared Statements. Denne artikel beskriver hvorfor prepared statements er gode. Den forudsætter lidt kendskab til Java og JDBC. Denne guide er oprindeligt udgivet på Eksperten.dk Prepared Statements Denne artikel beskriver hvorfor prepared statements er gode. Den forudsætter lidt kendskab til Java og JDBC. Skrevet den 18. Feb 2010

Læs mere

Aktivering af Survey funktionalitet

Aktivering af Survey funktionalitet Surveys i REDCap REDCap gør det muligt at eksponere ét eller flere instrumenter som et survey (spørgeskema) som derefter kan udfyldes direkte af patienten eller forsøgspersonen over internettet. Dette

Læs mere

Dokumentering af umbraco artikeleksport:

Dokumentering af umbraco artikeleksport: Dokumentering af umbraco artikeleksport: Lav en artikel side 2-3. Installationsguide side 3-5. Opsættelse af databasen og web.config side 5-8. Umbraco: templates side 8. Umbraco: borger.dk tab side 8.

Læs mere

Version Dato Beskrivelse 1.0.0 26/11/2012 Initial version 1.2.0 05/03/2013 Tilføjet eksempel med Template Agent, generelt udvidet dokumentet.

Version Dato Beskrivelse 1.0.0 26/11/2012 Initial version 1.2.0 05/03/2013 Tilføjet eksempel med Template Agent, generelt udvidet dokumentet. MOX og APOS2 Forord Dette dokument er en del af APOS version 2 manualerne. APOS version 2 (APOS2 herefter) er et organisation, klassifikation og personale system baseret på Sag & Dokument standarderne.

Læs mere

Det er muligt at chekce følgende opg. i CodeJudge: og

Det er muligt at chekce følgende opg. i CodeJudge: og Det er muligt at chekce følgende opg. i CodeJudge:.1.7 og.1.14 Exercise 1: Skriv en forløkke, som producerer følgende output: 1 4 9 16 5 36 Bonusopgave: Modificer dit program, så det ikke benytter multiplikation.

Læs mere

IFC Egenskaber. Mohammad Hussain Parsianfar s102951 BYG DTU

IFC Egenskaber. Mohammad Hussain Parsianfar s102951 BYG DTU Mohammad Hussain Parsianfar s102951 Indholdsfortegnelse 1 Introduktion... 3 1.1 Hvorfor er det interessant... 3 1.2 Formål... 4 2 Simplebim... 5 2.1 Præsentation af softwaren... 5 2.1.1 Brugergrænseflade...

Læs mere

PROJEKT 3. The Design Diaries. LINK TIL BLOG: Af Mikkel Borg Svendsen & Sebastian Frank MUL B

PROJEKT 3. The Design Diaries. LINK TIL BLOG:  Af Mikkel Borg Svendsen & Sebastian Frank MUL B PROJEKT 3 The Design Diaries LINK TIL BLOG: http://mbsgraphic.dk/blog/ Af Mikkel Borg Svendsen & Sebastian Frank MUL B 1 INDHOLDS- FORTEGNELSE HVEM ER BLOGGERNE? 3 USE CASE 4 ATTRIBUT TABEL 5 PHP CODE

Læs mere

Oracle8i R8.1.5 JAVA. Oracle8i R Oracle8i Enterprise Edition Oracle8i R Oracle8i R Oracle8i R8.1.

Oracle8i R8.1.5 JAVA. Oracle8i R Oracle8i Enterprise Edition Oracle8i R Oracle8i R Oracle8i R8.1. 2000 6 Oracle8i R8.1.7 Oracle8i R8.1.5 Oracle8i R8.1.6 Oracle8i Enterprise Edition Oracle8i R8.1.6 http://otn.oracle.co.jp/ Oracle8i R8.1.7 Oracle8i Oracle8i R8.1.7 Java XML JAVA Oracle8i R8.1.7 Java Oracle

Læs mere

Løsning af skyline-problemet

Løsning af skyline-problemet Løsning af skyline-problemet Keld Helsgaun RUC, oktober 1999 Efter at have overvejet problemet en stund er min første indskydelse, at jeg kan opnå en løsning ved at tilføje en bygning til den aktuelle

Læs mere

Web Services Light. Karen Thomsen. Silkeborg Bibliotek. Karen Thomsen

Web Services Light. Karen Thomsen. Silkeborg Bibliotek. Karen Thomsen Web Services Light Silkeborg Bibliotek 1 Min baggrund Faglig baggrund datalog Ansættelse 16 år som IT- udvikling og usability 4 år som usability-konsulent og nu 3 år på Silkeborg Bibliotek som IT- udvikling

Læs mere

United Nations Secretariat Procurement Division

United Nations Secretariat Procurement Division United Nations Secretariat Procurement Division Vendor Registration Overview Higher Standards, Better Solutions The United Nations Global Marketplace (UNGM) Why Register? On-line registration Free of charge

Læs mere

Data load og udtræk. 2. iteration: implmentation (test af backend) PHP mysql. Loade og parse XML (SimpleXML, Xpath) Filhåndtering i PHP JSON

Data load og udtræk. 2. iteration: implmentation (test af backend) PHP mysql. Loade og parse XML (SimpleXML, Xpath) Filhåndtering i PHP JSON Data load og udtræk 2. iteration: implmentation (test af backend) 1 PHP mysql Loade og parse XML (SimpleXML, Xpath) Filhåndtering i PHP JSON 2 Data udtræk PHP mysql: Processen 1. Forbind til MySQL server

Læs mere

Byens Rum. The Meaningful City of Tomorrow

Byens Rum. The Meaningful City of Tomorrow Byens Rum The Meaningful City of Tomorrow The vision of the future is always changing, dependent of the technology and knowledge on all fields: If you design the best building you know to design, that's

Læs mere

Specifikation Abstrakt OO OS-API Rev. 1.7. Specifikation. Abstrakt, objektorienteret operativsystem-api

Specifikation Abstrakt OO OS-API Rev. 1.7. Specifikation. Abstrakt, objektorienteret operativsystem-api Specifikation Abstrakt, objektorienteret operativsystem-api Indhold 1 Indledning... 3 1.1 Introduktion... 3 1.2 Formål... 3 1.3 Overordnede krav... 3 2 Ressourcer i OS-API et... 4 2.1 Tråde... 4 2.2 Timere...

Læs mere

Skrevet den 18. Feb 2010 af arne_v I kategorien Programmering / Visual Basic.NET

Skrevet den 18. Feb 2010 af arne_v I kategorien Programmering / Visual Basic.NET Denne guide er oprindeligt udgivet på Eksperten.dk Parameters Denne artikel beskriver hvorfor parameters er gode. Den forudsætter lidt kendskab til VB.NET og ADO.NET. Der findes en tilsvarende artikel

Læs mere

Bemærk, der er tale om ældre versioner af softwaren, men fremgangsmåden er uændret.

Bemærk, der er tale om ældre versioner af softwaren, men fremgangsmåden er uændret. Check dine svar på: https://dtu.codejudge.net/02101-e18/ Exercise 1: Installer Eclipse og Java. Dette kan f.eks. gøres ved at følge instuktionerne i dokumentet eclipse intro.pdf som ligger under Fildeling

Læs mere

Processer og tråde. dopsys 1

Processer og tråde. dopsys 1 Processer og tråde dopsys 1 Motivation.. parallelle processer udnytter hardwaren bedre: Batch operativsystemer (50 erne) hhv. små systemer: Multiprogrammering og time-sharing (fra 60 erne og frem): dopsys

Læs mere

Extension udvikling i Mozilla Firefox. Henrik Gemal

Extension udvikling i Mozilla Firefox. Henrik Gemal Extension udvikling i Mozilla Firefox Henrik Gemal Side 1 Hvem er jeg? Web udvikler hos TDC Laver TDC.dk og TDCOnline.dk Laver HTML, CSS, PHP Med i Mozilla projektet i mange år Udviklet et par extensions

Læs mere

Dokumentation af optagelse.dk

Dokumentation af optagelse.dk ApplicationService Indhold Versionsstyring Introduktion Navn URL Formål Sikkerhed Operationer echo() findftuapplicationids(...) findftuapplicationbyid(...) findftuapplicationpdfbyid(...) findftuapplicationenclosurezipurlbyid(...)

Læs mere

FESD-standardiseringsgruppen Att: Palle Aagaard IT- og Telestyrelsen IT-strategisk kontor Holsteinsgade 63 2100 København Ø

FESD-standardiseringsgruppen Att: Palle Aagaard IT- og Telestyrelsen IT-strategisk kontor Holsteinsgade 63 2100 København Ø FESD-standardiseringsgruppen Att: Palle Aagaard IT- og Telestyrelsen IT-strategisk kontor Holsteinsgade 63 2100 København Ø Høringssvar vedr. FESD GIS-integrationsmodel version 2.0 Geodata Danmark har

Læs mere

Indhold. Senest opdateret:03. september 2013. Side 1 af 8

Indhold. Senest opdateret:03. september 2013. Side 1 af 8 Indhold Introduktion... 2 Scenarier hvor API et kan benyttes... 2 Scenarie 1 Integration til lagerhotel... 2 Scenarie 2 Integration til økonomi system... 2 API Modeller... 2 Webshop2 API Model v1... 3

Læs mere

Software 1 with Java. Recitation No. 7 (Servlets, Inheritance)

Software 1 with Java. Recitation No. 7 (Servlets, Inheritance) Software 1 with Java Recitation No. 7 (Servlets, Inheritance) Servlets Java modules that run on a Web server to answer client requests For example: Processing data submitted by a browser Providing dynamic

Læs mere

Hvorfor skal vi bruge objekt orienteret databaser?

Hvorfor skal vi bruge objekt orienteret databaser? OODBMS Vs. RDBMS 1 Indholdsfortegnelse Hvorfor skal vi bruge objekt orienteret databaser?... 3 OODBMS i erhvervslivet... 4 Bagsiden af medaljen... 5 OODBMS i praksis... 6 Konklusion... 8 2 Hvorfor skal

Læs mere

Med register_globals = On får du automatisk adgang til en række variabelnavne i dit script.

Med register_globals = On får du automatisk adgang til en række variabelnavne i dit script. Denne guide er oprindeligt udgivet på Eksperten.dk Register Globals Off Lad os slå en ting fast med det samme - register_globals = Off er en god ting, i hvert fald set ud fra et sikkerhedsmæssigt synspunkt.

Læs mere

Da beskrivelserne i danzig Profile Specification ikke er fuldt færdige, foreslås:

Da beskrivelserne i danzig Profile Specification ikke er fuldt færdige, foreslås: NOTAT 6. juni 2007 J.nr.: 331-3 LEA Bilag A danzig-møde 15.6.2007 Opdatering af DAN-1 og danzig Profile Specification Forslag til opdatering af Z39.50 specifikationerne efter udgivelse af Praksisregler

Læs mere

PARALLELIZATION OF ATTILA SIMULATOR WITH OPENMP MIGUEL ÁNGEL MARTÍNEZ DEL AMOR MINIPROJECT OF TDT24 NTNU

PARALLELIZATION OF ATTILA SIMULATOR WITH OPENMP MIGUEL ÁNGEL MARTÍNEZ DEL AMOR MINIPROJECT OF TDT24 NTNU PARALLELIZATION OF ATTILA SIMULATOR WITH OPENMP MIGUEL ÁNGEL MARTÍNEZ DEL AMOR MINIPROJECT OF TDT24 NTNU OUTLINE INEFFICIENCY OF ATTILA WAYS TO PARALLELIZE LOW COMPATIBILITY IN THE COMPILATION A SOLUTION

Læs mere

Fang Prikkerne. Introduktion. Scratch

Fang Prikkerne. Introduktion. Scratch Scratch 2 Fang Prikkerne All Code Clubs must be registered. Registered clubs appear on the map at codeclubworld.org - if your club is not on the map then visit jumpto.cc/ccwreg to register your club. Introduktion

Læs mere

IBM WebSphere Operational Decision Management

IBM WebSphere Operational Decision Management IBM WebSphere Operational Decision Management 8 0 29., WebSphere Operational Decision Management 8, 0, 0. Copyright IBM Corporation 2008, 2012. ........... 1 :......... 1 1: Decision Center....... 3 1

Læs mere

b) Udvid din implementation af forme til at understøtte.equals. To objekter af samme form er ens hvis de har samme værdier i felterne.

b) Udvid din implementation af forme til at understøtte.equals. To objekter af samme form er ens hvis de har samme værdier i felterne. Exercise 1: Opgave 9.1 på CodeJudge. a) Lav klasserne Cirkel, Rektangel og Kvadrat, som implementerer vedhæftede interface From.java (se CodeJudge). Lav Rektangel før du laver Kvadrat. Kan du bruge nedarvning

Læs mere

OIOSAML.NET og Umbraco. ved Thomas Ravnholt ravnholt @ silverbullet.dk

OIOSAML.NET og Umbraco. ved Thomas Ravnholt ravnholt @ silverbullet.dk OIOSAML.NET og Umbraco ved Thomas Ravnholt ravnholt @ silverbullet.dk Silverbullet, stiftet 2003 Silverbullet A/S IT- rådgivning, projektledelse og implementering Officiel SKI-leverandør Kontorer i Århus

Læs mere

CHAPTER 8: USING OBJECTS

CHAPTER 8: USING OBJECTS Ruby: Philosophy & Implementation CHAPTER 8: USING OBJECTS Introduction to Computer Science Using Ruby Ruby is the latest in the family of Object Oriented Programming Languages As such, its designer studied

Læs mere

Dokumentation af optagelse.dk

Dokumentation af optagelse.dk ApplicationService Indhold Versionsstyring Introduktion Navn URL Formål Sikkerhed Operationer echo() findftuapplicationids(...) findftuapplicationbyid(...) findftuapplicationpdfbyid(...) findftuapplicationenclosurezipurlbyid(...)

Læs mere

Den forudsætter kendskab til XML og VB.NET men ikke til brug af XML i VB.NET.

Den forudsætter kendskab til XML og VB.NET men ikke til brug af XML i VB.NET. Denne guide er oprindeligt udgivet på Eksperten.dk Brug af XML i VB.NET Denne artikel vil vise lidt om hvordan man kan bruge XML i VB.NET. Den forudsætter kendskab til XML og VB.NET men ikke til brug af

Læs mere

Casper Fabricius http://casperfabricius.com. ActiveRecord. O/RM i Ruby on Rails

Casper Fabricius http://casperfabricius.com. ActiveRecord. O/RM i Ruby on Rails Casper Fabricius http://casperfabricius.com ActiveRecord O/RM i Ruby on Rails Casper Fabricius Freelance webudvikler - casperfabricius.com 9 års erfaring med webudvikling 6 år med ASP/ASP.NET/C# 3 år med

Læs mere

Annonceimport på GulogGratis.dk

Annonceimport på GulogGratis.dk Annonceimport på GulogGratis.dk Indhold Annonceimport på GulogGratis.dk...1 Hvad er det?...2 Hvordan foregår det?...2 Hvad er arbejdsprocessen?...2 Hvor skal feedet ligge?...2 Hvordan skal feedet udformes?...2

Læs mere

Region Sjælland Billedbroker projekt WP 2. Udviklerdokumentation til OCW-ConsumerModul

Region Sjælland Billedbroker projekt WP 2. Udviklerdokumentation til OCW-ConsumerModul Region Sjælland Billedbroker projekt WP 2 Udviklerdokumentation til OCW- 1 Sidst modificeret af: Indholdsfortegnelse 1 Introduktion... 4 1.1 Formål... 4 1.2 Antagelser... 4 2 Produkt oversigt... 5 2.1

Læs mere

Foto-Applikation Dokumentation. Et Kod-i-Ferien projekt

Foto-Applikation Dokumentation. Et Kod-i-Ferien projekt Foto-Applikation Dokumentation Et Kod-i-Ferien projekt 1 Indholdsfortegnelse Systemets generelle opsætning... 3 Systemets elementer... 4 iphone applikation... 4 PHP-script... 4 Wordpress-plugin... 4 Website...

Læs mere

Citrix CSP og Certificate Store Provider

Citrix CSP og Certificate Store Provider Project Name Document Title TDC Citrix Citrix og Certificate Store Provider Version Number 1.0 Status Release Author jkj Date 5-10-2006 Trademarks All brand names and product names are trademarks or registered

Læs mere

Status på det trådløse netværk

Status på det trådløse netværk Status på det trådløse netværk Der er stadig problemer med det trådløse netværk, se status her: http://driftstatus.sdu.dk/?f=&antal=200&driftid=1671#1671 IT-service arbejder stadig med at løse problemerne

Læs mere

Design by Contract. Design and Programming by Contract. Oversigt. Prædikater

Design by Contract. Design and Programming by Contract. Oversigt. Prædikater Design by Contract Design and Programming by Contract Anne Haxthausen ah@imm.dtu.dk Informatics and Mathematical Modelling Technical University of Denmark Design by Contract er en teknik til at specificere

Læs mere

Modern Concurrency Abstractions for C#

Modern Concurrency Abstractions for C# Modern Concurrency Abstractions for C# Nick Benton Luca Cardelli Cédric Fournet Presenter: Henrik Kragh-Hansen September 27, 2007 Motivation for concurrency Forbedring af concurrency Baggrundsinformation

Læs mere

ABM standard arbejdsgruppen nedsat af Statens Arkiver, Biblioteksstyrelsen og Kulturarvsstyrelsen

ABM standard arbejdsgruppen nedsat af Statens Arkiver, Biblioteksstyrelsen og Kulturarvsstyrelsen nedsat af Statens Arkiver, Biblioteksstyrelsen og Kulturarvsstyrelsen Titel : Transport af ABM data Dato : 2007-10-15 Status : Gældende ABM-specifikation Sekretariat: Publicering: Kulturarvsstyrelsen ved

Læs mere

ECE 551: Digital System * Design & Synthesis Lecture Set 5

ECE 551: Digital System * Design & Synthesis Lecture Set 5 ECE 551: Digital System * Design & Synthesis Lecture Set 5 5.1: Verilog Behavioral Model for Finite State Machines (FSMs) 5.2: Verilog Simulation I/O and 2001 Standard (In Separate File) 3/4/2003 1 ECE

Læs mere

Forløbs publicering. Indledning. Funktionalitet

Forløbs publicering. Indledning. Funktionalitet Forløbs publicering Indledning I dag sker der en dataudveksling af forløb fra Cosmic til 3.parts systemer via beskeder på Regis-køen. Disse er i formatet specificeret ved CommitmentDistribution.xsd, Commitment.xsd

Læs mere

CodeDOM - Dynamisk generering og kompilering af kode

CodeDOM - Dynamisk generering og kompilering af kode Denne guide er oprindeligt udgivet på Eksperten.dk CodeDOM - Dynamisk generering og kompilering af kode Med CodeDOM kan man på runtime generere kode, kompilere det og derefter afvikle det. I denne artikel

Læs mere

Engelsk. Niveau C. De Merkantile Erhvervsuddannelser September 2005. Casebaseret eksamen. www.jysk.dk og www.jysk.com.

Engelsk. Niveau C. De Merkantile Erhvervsuddannelser September 2005. Casebaseret eksamen. www.jysk.dk og www.jysk.com. 052430_EngelskC 08/09/05 13:29 Side 1 De Merkantile Erhvervsuddannelser September 2005 Side 1 af 4 sider Casebaseret eksamen Engelsk Niveau C www.jysk.dk og www.jysk.com Indhold: Opgave 1 Presentation

Læs mere

ADIS, WS og Meta Service

ADIS, WS og Meta Service ADIS, WS og Meta Service Om ADIS, Web Services, Værktøjer og Meta Service. Michael Jacobsen Technology Network Management Agenda ADIS og dens udvidelse ISOagriNET Web Service med eller uden fuldt objektmodel

Læs mere

Aftenskole i programmering sæson Registrering af tid. Sæson 2 - Lektion 5

Aftenskole i programmering sæson Registrering af tid. Sæson 2 - Lektion 5 Registrering af tid Sæson 2 - Lektion 5 Før jul Vi har designet og bygget en model til håndtering af en timeregistrering Vi har kigget på hvordan vi håndterer fejl Vi har kopieret koden over i Bents x-code

Læs mere

WINDOWS FORMS EVENTS INTERAGEREN MED FIL SYSTEMET. Grundlæggende programmering Lektion 9

WINDOWS FORMS EVENTS INTERAGEREN MED FIL SYSTEMET. Grundlæggende programmering Lektion 9 EVENTS INTERAGEREN MED FIL SYSTEMET WINDOWS FORMS Grundlæggende programmering Lektion 9 1 EVENTS Der sker ting når der sker ting 2 EVENTS Events er brugerhandlinger såsom tastetryk, klik, musebevægelser,

Læs mere

RMI introduktion. Denne artikel beskriver Java RMI (Remtote Method Invocation).

RMI introduktion. Denne artikel beskriver Java RMI (Remtote Method Invocation). Denne guide er oprindeligt udgivet på Eksperten.dk RMI introduktion Denne artikel beskriver Java RMI (Remtote Method Invocation). Den beskriver teorien bag RMI, viser et simpelt kode eksempel og forklarer

Læs mere

A Profile for Safety Critical Java

A Profile for Safety Critical Java A Profile for Safety Critical Java Martin Schoeberl Hans Søndergaard Bent Thomsen Anders P. Ravn Præsenteret af: Henrik Kragh-Hansen November 8, 2007 Forfatterne Martin Schoeberl Udvikler af JOP processoren

Læs mere

Eksempel på transformation: XML -> RTF dokument:

Eksempel på transformation: XML -> RTF dokument: Eksempel på transformation: XML -> RTF dokument: RTF dokumenter er Rich Text dokumenter der kan formateres med farver og forskellige skrifttyper. I nogle tilfælde kan det være interessant at transformere

Læs mere

Tracking af YouTube i Google Tag Manager og Universal Analytics (Seneste version)

Tracking af YouTube i Google Tag Manager og Universal Analytics (Seneste version) Tracking af YouTube i Google Tag Manager og Universal Analytics (Seneste version) Introduktion til Google Tag Manager og Youtube... 1 Opsæt Tags, Variabler og Triggers... 4 A) Variabler (variables)...

Læs mere

Particle-based T-Spline Level Set Evolution for 3D Object Reconstruction with Range and Volume Constraints

Particle-based T-Spline Level Set Evolution for 3D Object Reconstruction with Range and Volume Constraints Particle-based T-Spline Level Set for 3D Object Reconstruction with Range and Volume Constraints Robert Feichtinger (joint work with Huaiping Yang, Bert Jüttler) Institute of Applied Geometry, JKU Linz

Læs mere

MultiProgrammer Manual

MultiProgrammer Manual MultiProgrammer Manual MultiProgrammeren bruges til at læse og skrive værdier til ModBus register i LS Controls frekvensomformer E 1045. Dansk Version side 2 til 4 The MultiProgrammer is used for the writing

Læs mere

Øvelse 9. Klasser, objekter og sql-tabeller insert code here

Øvelse 9. Klasser, objekter og sql-tabeller insert code here Øvelse 9. Klasser, objekter og sql-tabeller Denne opgave handler om hvordan man opbevarer data fra databasekald på en struktureret måde. Den skal samtidig give jer erfaringer med objekter, der kommer til

Læs mere

Introduktion til ActionScript, fortsat

Introduktion til ActionScript, fortsat Introduktion til ActionScript, fortsat Kaspar Rosengreen Nielsen kaspar@interactivespaces.net i n t e r a c t i v e s p a c e s. n e t Kaspar Nielsen, kaspar@interactivespaces.net 1 Dagens program Opsamling

Læs mere

XML parsning i Java. Denne artikel beskriver hvordan man parser XML i Java. Den beskriver W3C DOM, SAX og JDOM.

XML parsning i Java. Denne artikel beskriver hvordan man parser XML i Java. Den beskriver W3C DOM, SAX og JDOM. Denne guide er oprindeligt udgivet på Eksperten.dk XML parsning i Java Denne artikel beskriver hvordan man parser XML i Java. Den beskriver W3C DOM, SAX og JDOM. Den forudsætter kendskab til Java og XML.

Læs mere