FLIS PORTAL GENNEMGANG OG STIKPRØVER (SEPTEMBER 2015)
|
|
- Ejnar Christiansen
- 8 år siden
- Visninger:
Transkript
1 FLIS PORTAL GENNEMGANG OG STIKPRØVER (SEPTEMBER 2015)
2 INDHOLD 1. FORMÅL OG SCOPE TEKNOLOGIER OG RAMMEVÆRKER ARKITEKTUR KOMBIT.FLIS.PORTAL SCRIPTS SHAREPOINT TILPASNINGER KILDEKODE C# KODESTANDARDER POWERSHELL KODESTANDARDER JAVASCRIPT KODESTANDARDER ASP.NET WEBFORMS SPMETAL KOBLING TIL NETCOMPANYS CRM SYSTEM SEMANTIK FLIS_LOGGER DISPOSE ELEVATE LOKAL UDVIKLING SQL OG MDX FEATURE RECEIVERS INTERFACES OG SNITFLADER STIKPRØVER STIKPRØVE 3.1 FLIS STANDARDRAPPORT STIKPRØVE 5.1 KOMMUNE STIKPRØVE 8.1 DATAPAKKEBESTILLING AUTOMATISK TEST (UNIT/INTEGRATION) KONKLUSION i
3 1. FORMÅL OG SCOPE Formålet med dette dokument er at give en gennemgang af kildekoden og arkitektur i forhold til overdragelse til en ny udviklings- og systemleverandør TEKNOLOGIER OG RAMMEVÆRKER Følgende teknologier er brugt til udviklings i backend og frontend: BACKEND: SPMetal (Kombit.Flis.Portal.DataAccess.LinqContext) CKSDev SharePoint 2010 ASP.Net AutoSPInstaller PowerShell AnalysisServices SQL FRONTEND jquery Grunt RequireJS Underscore SPServices 1
4 2. ARKITEKTUR SharePoint løsningen er struktureret i 3 SharePoint (wsp) pakker: Kombit.Flis.Portal Kombit.Flis.PortalDefinition Kombit.Flis.SiteDefinitions Alle løsningskomponenter fra D Softwarearkitektur afsnit er implementeret i pakken Kom- bit.flis.portal, løsningen er grupperet efter artefakt type: Det kan derfor være svært for en ny udvikler direkte og danne sig et overblink over præcis hvor koden til de enkelte komponenter ligger. Det er også uklart hvordan den præcise opdeling er fordi ting som måske kunne være grupperet sammen også er fordelt under flere foldere, f.eks. indholdstyper: En mere naturlig opdeling af pakker kunne måske være en pakke per løsningskomponent. De to sidste pakker implementere portal strukturen fra afsnit 4.3 i softwarearkitektur dokumentet hvor man får indtryk af at der er tale om to portaler. Men i PortalDefinition virker det som at der ligger en ekstra form for portal som ikke er beskrevet i dokumentet en Kom- bit.flis.communityportaldefinition. 2
5 2.1. KOMBIT.FLIS.PORTAL Hele pakken Komit.Flis.Portal er tæt koblet, og der er ikke brug koncepter som f.eks. dependency injection. Hvis der var taget udgangspunkt i guidelines fra Microsoft ville man kunne skabe en mere afkoblet arkitektur. I pakken er der ligeledes implementeret en LoggingService, servicen skriver til SharePoints ULS log. Klassen er implementeret på den måde man må forvente af en SharePoint 2010 løsning SCRIPTS Udover selve pakkerne findes der også en stor mængde scripts. Formålet med disse scripts er deployment af løsningen, men det virker også som at delkomponenter ligger f.eks. i FLIS41\source\web\sharepoint\Kombit.Flis.Portal\Scripts\Modules. Opdelingen mellem hvad der f.eks. er implementeret som en feature receiver og hvad der er et script er svær at gennemskue SHAREPOINT TILPASNINGER SharePoint er blevet tilpasset i større grad, løsningen har lavet custom tilpasningerne af typerne: SiteDefinitions CustomFieldTypes (Kombit.Flis.Portal.Common.CustomFieldTypes) DelegateControls HttpModules Layouts Pages EventReceiver Mange af disse tilpasninger er tidssvarende for da løsningen er lavet, men hvis man vil op på en nye version af SharePoint, måske med en cloud-first tilgang, så må man forvente at der skal investeres en del tid i en sådan opgradering. 3
6 3. KILDEKODE Der er ikke fundet beskrivelser i dokumentationen for hvilke kode standarder løsningen skal overholde. Mange steder i koden er sproget en blanding mellem dansk og engelsk, f.eks.: protected void EditComment(object sender, EventArgs e) var button = sender as Button; CurrentCommentId = int.parse(button.commandargument); } protected void Tilbage(object sender, EventArgs e) var source = HttpContext.Current.Request.QueryString["source"]; Det er ikke optimalt hvis vedligeholdelse af løsningen skal udbydes til en udenlandsk partner, eller løsningen skal vedligeholdes af en person med mindre gode dansk egenskaber C# KODESTANDARDER De fleste steder overholdes normale navne og kodestandarder for C#. Flere steder er man dog ikke helt konsekvent med brug af var, f.eks: private static StringBuilder CreateResetPasswordMailBody(string navn, string newpass- word) StringBuilder mailsignature = MailSignature(); var sb = new StringBuilder(); sb.append("kære " + navn); og casing (burde have været stort C): public string createflislink(string lastbody) Der er også forskel på hvilke type mellemrum man har brugt (tabs vs. spaces): 4
7 Mængden af kommentarer er meget forskellig, nogle klasser indeholder kun standard autogenerede kommentarer, andre ingen. Men der findes også klasser med fint XML documentation comments POWERSHELL KODESTANDARDER Ser fornuftig ud, flere steder kunne man dog godt have fulgt Verb-Noun standarden ( JAVASCRIPT KODESTANDARDER Alt javascript kode befinder sig i Kombit.Flis.Portal\Kombit.Flis.Portal\LAYOUTS\Kombit.Flis.Portal\UI\js kodestandarden ser fornuftig ud. Men jquery burde have været sat i noconflict mode for at undgå sammenfald med SharePoints standard definition af $ ( ASP.NET WEBFORMS Web kontrollerne er lavet på den klassiske ASP.Net WebForms måde, man kunne måske forvente at en løsning af dette omfang var lavet efter et MVW (Model-View-Whatever) princip (f.eks. og SPMETAL Der er dannet SPMetal data kontekst som ligger i Kom- bit.flis.portal\kombit.flis.portal\dataaccess\linqcontext Konteksten bliver brugt f.eks.: Kombit.Flis.Portal.LAYOUTS.Kombit.Flis.Portal.ApplicationPage1 var url = KommuneHelper.GetAdminPortalUrl() + "/UddannelseOgVejledning"; using (var entity = ContextHelper.GetAdministrationUddannelseContext(url, true)) var context = HttpContext.Current; HttpContext.Current = null; var kurser = entity.kurser.where(k => k!= null && k.status!= Status.Aflyst && k.status!= Status.Gennemført); Men alligevel fraviger man i samme klasse også brugen og tilgår SharePoint direkte: SPList listkurser = root.lists["kurser"]; SPListItem kursus = listkurser.getitembyid(kursusnavnid); if (kursus!= null) string lokationtmp = kursus["courselocation"].tostring(); kursuslokationnamn = lokationtmp.substring(lokationtmp.indexof('#') + 1); KursusLokationLbl.Text = kursuslokationnamn; KursusDatoLbl.Text = Date- Time.Parse(kursus["StartDate"].ToString()).ToShortDateString(); 5
8 3.6. KOBLING TIL NETCOMPANYS CRM SYSTEM Dokumentet D0130 Logisk Datamodel beskriver i afnist 7 at fejl og ændringer sendes direkte fra til Netcompanys CRM system. BCS modellen i Kom- bit.flis.portal\kombit.flis.portal\artifacts\bcs Models\IncidentModel er derfor stærkt afhængig af dette eksterne system. 6
9 4. SEMANTIK Afsnit beskriver konceptuelle udfordringer ved kildekoden FLIS_LOGGER Der er fundet en FLIS_Logger klasse hvor alle metoderne er tomme. Løsningen indeholder allerede en anden logger LoggingService. Kursus delen i løsningen kalder FLIS_Logger: new FLIS_Logger("FLIS", "FLIS log").writetoeventlog("kursusdetaljer: Der fandtes enten ingen eller flere kursusmoduler i kursusmodul- listen med følgende navn: " + kursusmo- dulnavn + ", da " + SPContext.Current.Web.CurrentUser.LoginName + "forsøgte at få vist kursusdetaljer.", "error"); Og det virker derfor til at disse fejlbeskeder bliver slugt af systemet DISPOSE Flere steder i løsningen kan der findes eksempler på at SPWeb og SPSite objekter ikke frigives korrekt. F.eks.: public class LayoutEventReceiver : SPFeatureReceiver public override void FeatureActivated(SPFeatureReceiverProperties properties) SPSite site = (SPSite)properties.Feature.Parent; using (SPWeb web = site.rootweb) Og public class ipadrollouthelper public static void RollOutIPadAppFile(SPWebApplication webapplication, SPFile sourcefile) LoggingService.LogVerbose(string.Format("Beginning rollout of ipad- file {0}", sourcefile.name)); SPSecurity.RunWithElevatedPrivileges(() => foreach (SPSite site in webapplication.sites) Er direkte modstridende i forhold til de guidelines som microsoft har lavet: Andre steder i løsningen (f.eks. SiteCollectionIteratorService): foreach (SPSite spsite in webapplication.sites) try... } finally 7
10 spsite.dispose(); } } Virker det dog til at man er udmærket klar over disse guidelines. Et værktøj som burde man forvente var brugt til udviklingen, men det virker ikke som tilfældet. Konsekvensen ved ikke at bruge dispose korrekt er at hukommelsen for Application Pool en vil blive fyldt og på et tidspunkt recyclet ELEVATE Når rettigheder skal forhøjes bruges RunWithElevatedPrivileges. Mange steder bruges den dog ikke korrekt, f.eks. (fra ManuelDataleveranceJob): using (SPSite site = new SPSite(siteCollection.Url)) SPSecurity.RunWithElevatedPrivileges(() => Andre steder kaldes metoden korrekt, og der er tilmed en kommentar til hvorfor det skal gøres sådan (AfmeldKursus): protected void AfmeldKursusBtn_Click(Object sender, EventArgs e) var centralurl = KommuneHelper.GetAdminPortalUrl(); // XTZ FLIS- 1744: Moved the RunWithElevatedPrivileges to BEFORE we open the Admin- site, hence giving the user the required credentials.. SPSecurity.RunWithElevatedPrivileges(() => using (var site = new SPSite(centralUrl)) Se for korrekt brug (frequently, to perform actions in SharePoint, you must get a new SPSite object to effect the changes.). Når RunWithElevatedPrivileges bruges er det også vigtig at validere på om den nuværende bruger faktisk har burde kunne udføre den handling som skal gøres. F.eks. virker det som at der i AfmeldKur- sus gives lov til at alle kan slette elementer fra listen Kursustilmeldinger: SPSecurity.RunWithElevatedPrivileges(() => using (var site = new SPSite(centralUrl)) using (var root = site.allwebs["uddannelseogvejledning"]) root.allowunsafeupdates = true; //Sletter listeelementet med det id, som står i query string int coursetodeleteid = Convert.ToInt32(Request.QueryString["k"]); SPList listkursustilmeldinger = root.lists["kursustilmeldinger"]; listkursustilmeldinger.items.deleteitembyid(coursetodeleteid); listkursustilmeldinger.update(); 4.4. LOKAL UDVIKLING Der er fundet hardcoding af en IP: 8
11 //...[Necessary hack for local develop- ment]... var host = SPContext.Current.Web.Url.Contains(" ")? " : SPContext.Current.Web.Url; Det virker som en IP der bliver brugt i forhold til udvikling, hvis udviklingsservere skal flyttes på et tidspunkt vil man måske også skulle ændre denne IP. Som koden er skrevet kommer IP en også med i produktions koden, her kunne man med fordel have brugt compiler direktiver ( SQL OG MDX SQL og MDX er hardcoded i løsningen, typisk vil man nok have brugt stored procedures eller et Object-relational mapping framework for at opnå bedre abstraktion. I klassen Begrebsbeskrivelse overføres der direkte argumenter fra query string til mdx kommando. Det har måske ikke den store konsekvens, men virker lidt bekymrende FEATURE RECEIVERS Features udgøre funktionalitet som kan aktiveres og deaktiveres. Når man aktivere en feature og aktiveringen går godt, vil man som bruger eller udvikler forvente funktionaliteten blev tilføjet. Men flere af de features som er blevet lavet sluger fejl, f.eks. (CommunityBlogModifierEventReceiver): try web.masterurl = "/sites/community/_catalogs/masterpage/fliskommune.master"; web.custommasterurl = "/sites/community/_catalogs/masterpage/fliskommune.master"; web.update(); } catch (Exception ex) Logging.WriteException(ex, "CommunityBlogModifi- er.eventreceiver.cs:featureactivated() - Customize Branding"); } Burde have været lavet med trow efter logging.en konsekvens kan være at man som udvikler skal ind og læse logs for at finde ud af hvad der er gået galt INTERFACES OG SNITFLADER Kildekoden indeholder kun et enkelt interface (IActiveDirectory), og det kan derfor konkluderes at der ikke er lagt meget energi i at beskrive snitflader mellem komponenter. Dokumentationen beskriver heller ikke snitflader mellem komponenter. 9
12 5. STIKPRØVER Dette afsnit indeholder stikprøver på dokumentet D0130 Logisk Datamodel afsnit 3 om FLIS entiteterne. Stikprøverne indeholder eventuelle forskelle mellem dokumentation og kildekode STIKPRØVE 3.1 FLIS STANDARDRAPPORT Navn: FLIS - Standardrapport imod FLIS Standardrapport Attributter: Standard er tvungen i koden, men ikke i dokumentation Ansvarlig Person er tvungen i koden, men ikke i dokumentation Rapporttype hedder Type i koden Rapporttype valgmuligheder i dokumentation: Analyserapport, Benchmarkrapport vs. koden: Benchmarking, Analyse Felt i kode som ikke er i dokumentation: FlisRapportId 5.2. STIKPRØVE 5.1 KOMMUNE Navn: FLIS - Kommune imod Kommune Attributter: Kommunenavn er nedarvet fra Element (navn blot ændret) KommuneID hedder Kommune ID i koden Valg til Region passer ikke præcis sammen med koden Valg til Aktuel tilmeldingsstatus passer ikke præcis med koden. Godkendt dato er tvungen i dokumentation med ikke i koden Kommentar er tvungen i dokumentation men ikke i koden Forretningsansvarlig hedder Forretningsansvarlig Kommune i koden Teknisk ansvarlig hedder Teknisk ansvarlig Kommune i koden Forretningsansvarlig type passer ikke, dokumentation siger Opslag (flere) men er kun enkelt Teknisk ansvarlig type passer ikke, dokumentation siger Opslag (flere) men er kun enkelt Teknisk kontakt Netcompany type passer ikke, dokumentation siger Enkelt tekstlinje men er opslag Dokumentet D0160 Brugergrænseflade administrationsportal afsnit 2.2 viser: 10
13 Det bemærkes at der findes to Teknisk kontakt - Netcompany på skærmbilledet. Ifølge dokumentationen burde der kun finde et tekstlinje felt, men der findes to, en af type User og en af typen Url. Følgende script er fundet der tilføjer feltet: Scripts\Administration.ModifyKommuneList.ps1 Både kildekoden (pakkerne) indeholder derfor felter og scripts indeholder felter, det er ikke klart hvorfor noget ligger i scripts og andet ligger i pakker STIKPRØVE 8.1 DATAPAKKEBESTILLING Navn: Datapakkebestilling imod FLIS - Datapakkebestilling Attributter: Område er tvungen i dokumentation men ikke i koden Område type er uklar fordi valg i dokumentation men taxonomy i kode Felt i kode som ikke er i dokumentation: Status 11
14 6. AUTOMATISK TEST (UNIT/INTEGRATION) Under gennemgangen blev der ikke fundet udpræget grad af automatisk test. Det eneste der blev fundet var en enkelt test i FLIS41\source\test\SeleniumFrontend der omhandlede nøgletal for kommuner. 12
15 7. KONKLUSION SharePoint er tilpasset i stor grad. Det er tydeligt at der ikke er brugt ensartede kodestandarder igennem hele løsningen. De klassiske udfordringer omkring SharePoint 2010 server side udvikling i forhold til elevate og dispose er løst tvivlsomt. Dokumentationen omtaler komponenter men der er ingen direkte relation mellem pakker eller namespaces og disse komponenter. Løsningen indeholder ikke begreber som Dependency Injection eller Model View Whatever og er derfor forholdsvis hårdt koblet. Hvis man på et tidspunkt ønsker at skrive automatiske tests til løsningen kan dette være svært fordi der ikke er introduceret disse former for abstraktion. Alt er samlet i få SharePoint pakker, det kan derfor være svært at finde rundt i den store pakke hvis man kun skal ændre i en af komponenterne. Stikprøver fra Logisk Datamodel holdt op imod kildekoden antyder at disse ikke stemmer overens. 13
Assignment #5 Toolbox Contract
Assignment #5 Toolbox Contract Created by: René Kragh Trine Randløv E mail address cph rk70@cphbusiness.dk 23 11 2014 1 Introduktion Dette dokument indeholder en vertikal kontrakt for et system som skal
Læs mereFra idé til virkelig med Azure Mobile Services
Fra idé til virkelig med Azure Mobile Services Niels Ladegaard Beck Holion nlb@holion.dk @nielslbeck Windows Developers in Denmark Azure App Service Mobile App Introduktion til Azure Mobile Services Platform
Læs mereIntegrationsmanual. 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 mereUdvikling 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 mereSoftware 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 mereDatabase 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 mereDatabaseadgang fra Java
Databaseadgang fra Java Grundlæggende Programmering med Projekt Peter Sestoft Fredag 2007-11-23 Relationsdatabasesystemer Der er mange databaseservere Microsoft Access del af Microsoft Office MySQL god,
Læs mereDygtig.NET / C# udvikler med stor erfaring fra både offentlige organisationer og private virksomheder.
.NET UDVIKLER NATIONALITET: DANSK PROFIL Dygtig.NET / C# udvikler med stor erfaring fra både offentlige organisationer og private virksomheder. Stor erfaring omkring databasedesign, datahåndtering og MS
Læs mereFLIS POTENTIELT GENUDBUD. Leverandørpræsentation D. 21. januar 2016, kl
FLIS POTENTIELT GENUDBUD Leverandørpræsentation D. 21. januar 2016, kl. 09.00-12.00 Dagsorden o Velkomst v/ markedschef Jesper Bo Seidler o Status for FLIS, inkl. kort introduktion, status og fremtidsplaner
Læs mereMySQL 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 mereITWIN1. Afsluttende projekt. PhotoDays. Benjamin Sørensen (02284) Tomas Stæhr Berg (03539)
ITWIN1 Afsluttende projekt PhotoDays Benjamin Sørensen (02284) Tomas Stæhr Berg (03539) ITWIN1 - AFSLUTTENDE PROJEKT PhotoDays Benjamin Sørensen & Tomas Stæhr Berg 02284 & 03539 1 1 Underskrifter Rapporten
Læs mereHvordan 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 mereSWC eksamens-spørgsmål. Oversigt
SWC eksamens-spørgsmål Oversigt #1 Typer og variable #2 Aritmetik og logik #3 Klasser (definition, objekter) #4 Klasser (metoder) #5 Klasser (nedarvning, polymorfi) #6 Conditional statements #7 Repetition
Læs mereHvorfor 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 merePROGRAM. using System; using System.Collections.Generic; using System.Text; using System.Collections;
PROGRAM using System; using System.Collections.Generic; using System.Text; using System.Collections; namespace EventManager class Program static void Main(string[] args) string hovedmenu = ""; string svar;
Læs mereUMS Velkomst Byder nye brugere velkommen til skolen
Forord UMS Velkomst modulet giver mulighed for at give de kommende studerende et godt førstehåndsindtryk ved skolestart - den indledende kontakt til de studerende er umådelig vigtig. Velkomst modulet består
Læs mereTredjepart 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[MARKONLINE I CITRIX]
2012 [Type text] Udarbejdet af Udarbejdet for Optimering af MarkOnline I Citrix miljøer Indholdsfortegnelse Baggrundsinfo... 2 Symptomerne... 3 MarkOnline starter ikke... 3 MarkOnline startes, men download
Læs mereAPEX i Praksis Martin B. Nielsen. Navn. MBNDATA Emne
APEX i Praksis Martin B. Nielsen Navn MBNDATA Emne Foredragsholderen Oracle/APEX Arkitekt/udvikler/DBA Siden Oracle v.5 (1988) APEX Siden 2007, men før (Database provider, HTMLDB) MBNDATA siden 1996 MBNDATA
Læs mereAffaldsdatasystem Vejledning supplement i system-til-system integration for.net brugere
Affaldsdatasystem Vejledning supplement i system-til-system integration for.net brugere Dokument version: 2.0 ADS version: 1.0 Henvendelse vedrørende affald: Miljøstyrelsen Roskilde, Affaldssekretariatet
Læs mereAbstrakte datatyper C#-version
Note til Programmeringsteknologi Akademiuddannelsen i Informationsteknologi Abstrakte datatyper C#-version Finn Nordbjerg 1/9 Abstrakte Datatyper Denne note introducerer kort begrebet abstrakt datatype
Læs mereSpring Schema Extension eller Spring Domain Specific Languages
Spring Schema Extension eller Spring Domain Specific Languages Forfatter: Jeppe Cramon Cramon Consulting (http://www.cramon.dk) Dato: 23/7-2005 Efter at have arbejdet med Spring i lang tid, har jeg lagt
Læs mereCivilingeniøreksamen 49104 12. januar 2001. Skriftelig prøve den 12. januar 2001 Kursusnummer 49104
Skriftelig prøve den 12. januar 2001 Kursusnummer 49104 Kursusnavn: Programmering. Tilladte hjælpemidler: Alle skriftlige hjælpemidler Opgavesættet består af fire opgaver, der har følgende vægtning: Opgave
Læs mereDM01 DM01. 3. Obl. Afl. Jacob Christiansen, 130282, jacob.ch@mail.tdcadsl.dk. D12, Elias 18/3-2003. Side 1 af 11
DM01 DM01 3. Obl. Afl. Jacob Christiansen, 130282, jacob.ch@mail.tdcadsl.dk D12, Elias 18/3-2003 Side 1 af 11 DM01 Indholdsfortegnelse: BILAG:...2 1 FORMÅL:...3 2 KLASSER:...4 2.1 DILEMMA:...4 2.1.1 METODER:...4
Læs merePlugin-arkitektur med.net
Denne guide er oprindeligt udgivet på Eksperten.dk Plugin-arkitektur med.net Denne artikel viser hvordan du kan lave en plugin-arkitektur i dit program. Gør det muligt for andre at skrive udvidelser til
Læs mereInstallation af Office 365 - Windows 8/10
Installation af Office 365 - Windows 8/10 Vigtig information før du starter 1. Office 365 virker kun så længe du går på skolen. 2. Office 365 kan kun installeres på Windows 7 eller nyere styresystem. 3.
Læs mereGuide til opdatering af Navision Stat med ny funktionalitet - nye objekter, datakonvertering, automatisk indlæsning af datafiler.
Side 1 af 20 Navision Stat 7.0 ØSY/JACPM 15-05-2015 Vejledning til Lokal Versionsstyring (VMS) Overblik Guide til opdatering af Navision Stat med ny funktionalitet - nye objekter, datakonvertering, automatisk
Læs mereSoftware Construction 1. semester (SWC) januar 2014 Spørgsmål 1
Spørgsmål 1 Grundlæggende objektorienterede begreber o Klasse (class) o Objekt (object) o Metode (method), herunder return type og parametre o Instansvariable (instance variables) & egenskaber (properties),
Læs mere10. Rapporter i BBR... 2
Indholdsfortegnelse 10. Rapporter i BBR... 2 10.1 Reporting Services arkitektur... 2 10.2 Reporting Services i Nyt BBR... 3 10.3 Faste BBR-rapporter... 4 10.3.1 Kort beskrivelse af de 10 faste rapporter...
Læs mereSucces med intranet til Office 365. Den 13. august 2014 Webtop A/S s. 1
Succes med intranet til Office 365 Webtop A/S s. 1 Hvem er jeg https://twitter.com/jeslas http://www.linkedin.com/in/jesslassen Webtop A/S s. 2 Hvad er Office 365 Office pakken (Word, Excel..) Skyudgaver
Læs mereVejledning 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 mereSYSTEMDOKUMENTATION AF POC
DIGITALISERINGSSTYRELSEN POC PÅ ORKESTRERINGSKOMPONENTEN SYSTEMDOKUMENTATION AF POC Version: 1.1 Status: Endelig Godkender: Forfatter: Copyright 2019 Netcompany. All rights reserved Dokumenthistorik Version
Læs mereWeb CMS kontra Collaboration
Web CMS kontra Collaboration Sammenligning mellem Sitecore og Sharepoint Lars Fløe Nielsen, Evangelism ln@sitecore.net Page 1 Sitecore har dyb integration til Microsoft Sitecore har integration til mange
Læs mereBOULEVARDEN 19E 7100 VEJLE LERSØ PARKALLE KØBENHAVN Ø TLF Webservices Installationsvejledning
BOULEVARDEN 19E 7100 VEJLE LERSØ PARKALLE 101 2100 KØBENHAVN Ø TLF. 76 42 11 00 WWW.UNIK.DK Webservices Installationsvejledning Indholdsfortegnelse Indholdsfortegnelse... 1 Formål... 2 Nyt fra version
Læs merePHP Quick Teknisk Ordbog
PHP Quick Teknisk Ordbog Af Daniel Pedersen PHP Quick Teknisk Ordbog 1 Indhold De mest brugte tekniske udtryk benyttet inden for web udvikling. Du vil kunne slå de enkelte ord op og læse om hvad de betyder,
Læs mereDagens 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 mereInstallationsguide til SAP Business One 2005 SP1 (SBO 2005)
Installationsguide til SAP Business One 2005 SP1 (SBO 2005) Installationen af SBO 2005 Service Pack 1består af flere enkeltkomponenter. Først og fremmest skal der installeres en database til at indeholde
Læs mereHELLO INSTALLATIONS GUIDE - DANSK RACKPEOPLE
HELLO INSTALLATIONS GUIDE - DANSK RACKPEOPLE 1 Tekniske Krav 1.1 Hardware krav: En skærm gerne med touch Hvis skærmen ikke har touch, skal du bruge et tastatur og en mus Webcam Gerne i HD En ekstern lydenhed
Læs mereVejledning til Teknisk opsætning
Vejledning til Teknisk opsætning v. 1.0 Adm4you, 2010. Indhold Kort om denne vejledning... 3 Generelt om easyourtime... 3 Installation af databasen... 3 Sikkerhed og rettigheder... 4 SQL Login... 4 Rettigheder
Læs mereInstallation af Office 365 - Windows 7
Installation af Office 365 - Windows 7 Vigtig information før du starter 1. Office 365 virker kun så længe du går på skolen. 2. Office 365 kan kun installeres på Windows 7 eller nyere styresystem. 3. Installation
Læs mereGENUDBUD AF NEMREFUSION. 28. november 2013
GENUDBUD AF NEMREFUSION 28. november 2013 Agenda Formål med genudbuddet og overordnede målsætninger Funktionalitet og værdi System design drift support Selvbetjeningskomponent (option) Tidsplan/udbudsform
Læs mereCms-uafhængighed. Cms uafhængighed. Automatiseret kodegenerering Typestærkt datalag med auto completion og compile time-fejlhåndtering.
Dato 28.01.2012 Go Basic udviklerdokumentation Go Basic er et asp.net projekt, som skal fungere som et startsite for nye webprojekter. I nuværende form er Go Basic implementeret i Umbraco, men i virkeligheden
Læs mereWebsite sikkerhed SQL Injections og mere...
... Skrevet af Daniel Pedersen 1 Introduktion Sikkerheden i dag skal være i top, der er rigtig mange små hurtige og nemme metoder til at få adgang til ens hjemmeside. Mange er ikke ældre end 14 år, og
Læs mereInstallation af web-konfigurationsprogrammer
Installation af web-konfigurationsprogrammer 23. marts 2015 MODST/JAMAN 1. Generelt Denne vejledning vedrører installation af web-konfigurationsprogrammer, som anvendes til at vedligeholde (konfigurere)
Læs mereCivilstyrelsen. Lex Dania editor. Installationsvejledning. Version: 1.0 2011-09-26
Installationsvejledning Version: 1.0 2011-09-26 Indhold 1 INDLEDNING... 3 1.1 HVAD ER LEX DANIA EDITOR?... 3 1.2 FORUDSÆTNINGER... 3 1.2.1 Hardware... 3 1.2.2 Software... 3 1.3 POLICIES... 4 2 INSTALLATION
Læs mereInteraktionsudvikling
Projektopgave 3: Interaktionsudvikling CPH business, klasse: MulA2013 Projektansvarlige undervisere Thomas Hartmann MereteGeldermann lützen: Projekt produkt url: www.amalieardahl.dk/projekt3/index.html
Læs mereBrugervejledning til databrowseren
Brugervejledning til databrowseren Indholdsfortegnelse Indledning...2 Hvordan tilgås browseren og api et...2 Databrowseren...2 Søgning...2 Visning...4 Features i listevisningen...4 Detaljeret visning...5
Læs mereIntro Denne vejledning beskriver proceduren for at opdatere en kørende UMS version til seneste version.
Intro Denne vejledning beskriver proceduren for at opdatere en kørende UMS version til seneste version. For at kunne gennemføre en opdatering, kræves der administrator adgang til alle UMS servere. En typisk
Læs mereIntroduction til.net remoting i C#
Denne guide er oprindeligt udgivet på Eksperten.dk Introduction til.net remoting i C# Denne artikel beskriver teorien bag.net remoting og viser nogle simple kode eksempler i C#. Den forudsætter kendskab
Læs mere1 Domæne 2 1.1 Design valg... 2 1.1.1 User... 2. 2 Klassediagran 5
INDHOLD 1 Domæne 2 1.1 Design valg.................................... 2 1.1.1 User.................................... 2 2 Klassediagran 5 3 Serbio 7 3.1 Kommunikation..................................
Læs mereJavaScript. nedarvning.
JavaScript er et sprog, der kan give en hjemmeside mere funktionalitet og gøre den interaktiv, så den reagerer på læsernes handlinger. CGI (Common Gateway Interface) har hidtil været de protokoller, man
Læs mereInstallation og Drift. Aplanner for Windows Systemer Version 8.15.12
Installation og Drift Aplanner for Windows Systemer Version 8.15.12 Aplanner for Windows løsninger Anbefalet driftsopsætning Cloud løsning med database hos PlanAHead Alle brugere, der administrer vagtplaner
Læs mereRMI 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 mereProgram Dokumentation PC Software Skrevet af. Gruppen. Version 1.0
Program Dokumentation PC Software Skrevet af Gruppen. Version 1.0 Indholds fortegnelse 1. INDLEDNING...3 1.1. FORMÅL...3 1.2. REFERENCER...3 1.3. VERSIONSHISTORIE...3 1.4. DEFINITIONER...3 1.5. DOKUMENTATIONENS
Læs mereDynamisk PHP design OPDATERET
Denne guide er oprindeligt udgivet på Eksperten.dk Dynamisk PHP design OPDATERET I har måske undret jer over "http://bla.dk/?side=kontakt", her beskriver jeg hvordan, og hvorfor Skrevet den 03. Feb 2009
Læs mereVideregående programmering i Java
Videregående programmering i Java Dag 6 Komponenter (og lidt Swing og MVC) Læsning: VP 4, evt. VP 6 Dette materiale er under Åben Dokumentlicens, se http://www.sslug.dk/linuxbog/licens.html Grafiske komponenter
Læs mereUdfordringer og problemstillinger. En liste over de udfordringer og problemstillinger, der er ved Java og JEE udvikling
Java og JEE 1 2 Udfordringer og problemstillinger En liste over de udfordringer og problemstillinger, der er ved Java og JEE udvikling 3 Generelt om Java og JEE 4 Generelt, I Man undervurderer hvor mange
Læs mereQuick Guide til Visit Gæstesystem i Backend.
Quick Guide til Visit Gæstesystem i Backend. Version: 2.5.0.5 Opsætning af ipad: 1. HUSK, at man skal slå automatisk Lås fra. (Gøres under: Indstillinger, Generelt, Automatisk Lås, Aldrig. 2. ipad, skal
Læs mereNetvæ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 mereUniversity of Southern Denmark Syddansk Universitet. DM503 Forelæsning 11
DM503 Forelæsning 11 Generics Pakker Exceptions Indhold Generics Nedarvning og Generics Generics Nedarvning og Generics Husk Box fra sidst Generics public class Box {! private T object;! public void
Læs mereWho s to blame? Jeppe Rørbæk. Jeppe.rorbaek@teknologisk.dk +45 22 70 55 07. Konsulent og underviser på Teknologisk Institut MCP, MCAD, MCSD, MCT
Who s to blame? Jeppe Rørbæk Jeppe.rorbaek@teknologisk.dk +45 22 70 55 07 Konsulent og underviser på Teknologisk Institut MCP, MCAD, MCSD, MCT Introduktion til ATLAS AJAX Intro / hensigten med ATLAS Hvordan
Læs mereEksempel: 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 mereIT Support Guide. Installation af netværksprinter (direkte IP print)
IT Support Guide Denne guide er hentet på www.spelling.dk Program: Microsoft Windows Vista Program sprog version: ENG (US) Guide emne: Installation af netværksprinter (direkte IP print) Publikationsnr.:
Læs mereDatatekniker med programmering som speciale
Datatekniker med programmering som speciale H2 H1 varer ti uger bestående af ti uddannelsesspecifikke fag. Indhold På H2 er der fokus på at integrere Objektorienteret Programmering i dine programmer. Fagene
Læs mereSådan opretter du et arrangement. Log dig ind på hjemmesiden. Klik på Tilføj indhold og dernæst på Arrangement:
Sådan opretter du et arrangement Log dig ind på hjemmesiden. Klik på Tilføj indhold og dernæst på Arrangement: Flere ting skal være udfyldt, før du kan få lov til at gemme dit arbejde første gang. Det
Læs mereOnline kursus: Content Mangement System - Wordpress
Online kursus 365 dage DKK 1.999 Nr. 90213 P ekskl. moms Wordpress er et open-source content management system, som anvendes af mere end 23% af verdens 10 millioner mest besøgte hjemmesider. Det er et
Læs mereBrugermanual til Assignment Hand In
Brugermanual til Assignment Hand In Indhold: Undervisere:... 2 Hvor finder jeg Assignment hand in?... 2 Opret en opgave... 3 Slet en opgave... 4 Rediger en opgave... 4 Hvor finder jeg de afleverede filer?...
Læs mereData 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 mereTeknisk dokumentation
Teknisk dokumentation Scene 11 Html kode javascript kode Til at sætte et stykke lyd ind på en hjemmeside, skal man bruge det semantiske tag . Inde i tag et skal man bruge et empty tag, ,
Læs mereDen forudsætter kendskab til C++ og lidt kendskab til SQL og MySQL C API.
Denne guide er oprindeligt udgivet på Eksperten.dk Brug af MySQL i C++ Denne artikel bygger ovenpå artiklen "MySQL C API" og forklarer hvordan man kan programmere mere objekt orienteret. Den forudsætter
Læs mereServicedesk JAST/december 2015
JAST/december 2015 Formål Formålet med dette dokument er, at give styregruppen for IT Center Fyn en beskrivelse af, hvordan supportsager håndteres efter etableringen af en, samt en forklaring af de begreber
Læs mereELEKTRONISK INDBERETNING POST 23/8 2007 VERSION 1.13
ELEKTRONISK INDBERETNING POST 23/8 2007 VERSION 1.13 Indhold Indhold... 2 Introduktion... 3 dk.hob.ei.general.plugin... 4 Metoder... 4 GetPrivateMail... 4 GetPrivateMailNext... 7 DeletePrivateMailEx...
Læs mereBRP 6.9.2006 Kursusintroduktion og Java-oversigt
BRP 6.9.2006 Kursusintroduktion og Java-oversigt 1. Kursusintroduktion 2. Java-oversigt (A): Opgave P4.4 3. Java-oversigt (B): Ny omvendings -opgave 4. Introduktion til næste kursusgang Kursusintroduktion:
Læs mereVideregående Programmering Obligatorisk opgave - 3. semester, efterår 2004
Overvågningssystem Beskrivelse Bagagesorteringssystemet består af et antal skranker (check-in) til modtagelse og registrering af bagage, et automatiseret sorteringsanlæg samt et antal terminaler (gates),
Læs mereASB E-mailsignatur. ASB E-mailsignatur. Vejledning til opsætning af e-mailsignatur IKT - Februar 2008
ASB E-mailsignatur I det følgende forklares, hvordan du opretter ASBs e-mailsignatur for medarbejdere. Det skal her noteres at e-mail signaturen ikke kan opsættes i webmail (webmail.asb.dk), men skal opsættes
Læs mereFAQ til Web Ansøger, Web ejendomsfunktionær, Web investeringskunde og Web bestyrelse Installationsvejledning
FAQ til Web Ansøger, Web ejendomsfunktionær, Web investeringskunde og Web bestyrelse Installationsvejledning BOULEVARDEN 19E 7100 VEJLE LERSØ PARKALLE 101 2100 KØBENHAVN Ø TLF. 76 42 11 00 WWW.UNIK.DK
Læs mereFå de rette værktøjer. Kursusplan forår 2011 IDG-Kurser introducerer helt nye kursus- og workshoptilbud
Få de rette værktøjer Kursusplan forår 2011 IDG-Kurser introducerer helt nye kursus- og workshoptilbud Velkommen til en ny kursus-sæson IDG s kurser opdeles i fire hovedgrupper: Og velkommen til en stribe
Læs mereKursus navn: Indledende programmering Kursus nr. 02101
Danmarks Tekniske Universitet Side 1 af 8 sider Skriftlig prøve, den 15. december 2007 Kursus navn: Indledende programmering Kursus nr. 02101 Tilladte hjælpemidler: Alle skriftlige hjælpemidler Vægtning
Læs mereIndhold. Vejledning til import af regneark til Outlook 2010
Indhold Moderniseringsstyrelsens regneark med lønkørslerne hentes... 2 Trinvis indlæsning af regneark i Outlook 2010... 2 Aktiver importfunktion... 2 Udpeg Excel-ark... 4 Importér aftaler... 6 Afslutning...
Læs mereWebserverprogrammering
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 mereSkriftlig eksamen i Datalogi
Roskilde Universitetscenter side 1 af 9 sider Skriftlig eksamen i Datalogi Modul 1 Vinter 1999/2000 Opgavesættet består af 6 opgaver, der ved bedømmelsen tillægges følgende vægte: Opgave 1 5% Opgave 2
Læs mereInstallation af Elektronisk APV på flere PC er
Installation af Elektronisk APV på flere PC er Vejledning til installation af Elektronisk APV, når programmet skal installeres på flere PC er, der kobler sig op på en fælles server. 1 Installation af Elektronisk
Læs mereOpsætning af forbindelse til Danmarks Statistik
23. april 2015 MTL Forskningsservice Opsætning af forbindelse til Danmarks Statistik Denne vejledning beskriver opsætning og logonprocedure fra Windowsmaskiner ved ekstern logon til DST s forskerservere
Læs mereaccodesk vi hjælper dig hele vejen!
accodesk vi hjælper dig hele vejen! Brugervejledning Æbeløgade 4, st. 2100 København Ø november 2015 Side 1 29 Indhold Forside... 3 Knowledge base... 4 Artikler... 4 Search... 5 Log in - Sign in... 5 Opret
Læs mereAgiPro brugervejledning.
AgiPro brugervejledning på dansk side 1 AgiPro brugervejledning. Det allerførste du skal gøre er at oprette dig som bruger. KLIK på Register new AgiPro user! AgiPro brugervejledning på dansk side 2 Side
Læs mereMapBasic &.NET interaktion. MapBasic.NET. Jakob Lanstorp IT konsulent COWI. Odense 23. Juni 2011. 1 8 jun 2011 MapBasic &.
MapBasic &.NET interaktion MapBasic.NET Jakob Lanstorp IT konsulent COWI Odense 23. Juni 2011 1 MapBasic &.NET interaktion Erfaring med MapBasic.NET / Visual Studio Anden programmering 2 Program Hurtig
Læs mereDKAL Snitflader REST Register
DKAL Snitflader REST Register 1 Indholdsfortegnelse A2.1 INTRODUKTION 3 A2.1.1 HENVISNINGER 3 A2.1.2 LÆSEVEJLEDNING 4 A2.1.2.1 SÅDAN LÆSES EN REST GRAF 4 A2.1.2.2 SÅDAN LÆSES EN RESSOURCE OG EN TYPE 4
Læs mereDenne rapport er skrevet af:
Rapport til Kajakklubben Rapport til Kajakklubben Generelt: Frontend: Backend Admin: Backend instruktør sign up: Backend medlem sign up: Database: Oprettelse af database og SQL sætning: Konklusion: Bilag:
Læs mereMSI pakke til distribution af AutoPilot komponenter.
MSI pakke til distribution af AutoPilot komponenter. Hermed følger en basal dokumentation for installation af AutoPilot msi pakken. Der vil i det følgende blive forklaret brugen af 4 programmer fra Microsoft,
Læs mereAPPLIKATIONSARKITEKTUR ERP INFRASTRUKTUR. EG Copyright
APPLIKATIONSARKITEKTUR ERP INFRASTRUKTUR EG Copyright Infrastruktur er mere end nogle servere... Den Mentale Infrastruktur Den Fysiske Infrastruktur Den Mentale Infrastruktur Vi vil jo gerne have vores
Læs mereIndhold. 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 mereSAX 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 mereWeb- og serverprogrammering
Web- og serverprogrammering Introduktion til web- og serverprogrammering - dag 1 Overblik over WSP, eller: de 3+x sprog i webprogrammering (HTML, CSS, JavaScript, plus x serverside-sprog) Installation
Læs mereEksamen, DSDS, forår 2009
Eksamen, DSDS, forår 2009 Introduktion til Scripting, Databaser og Systemarkitektur Jonas Holbech IT Universitetet i København 3. juni 2009 Alle hjælpemidler er tilladte, dog ikke computer og kommunikationsmidler.
Læs mereTimePlan version 6.0 - Installationsvejledning
TimePlan version 6.0 - Installationsvejledning For opgradering af tidligere TimePlan versioner anvendes opdateringsprogrammet: TimePlan 6 Wizard.exe. Programmet kan afvikles på dansk eller engelsk. Opdateringsprogrammet
Læs mereDesign 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 mereOIOSAML.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 mereDokumentation af programmering i Python 2.75
Dokumentation af programmering i Python 2.75 Af: Alexander Bergendorff Jeg vil i dette dokument, dokumentere det arbejde jeg har lavet i løbet opstarts forløbet i Programmering C. Jeg vil forsøge, så vidt
Læs mere