Geografisk lokalisering i ASP.NET
|
|
- Mathilde Petersen
- 6 år siden
- Visninger:
Transkript
1 Denne guide er oprindeligt udgivet på Eksperten.dk Geografisk lokalisering i ASP.NET Denne artikel forklarer lidt om hvorfor og hvordan man laver geografisk lokalisering og viser noget kode. Der er andre artikler for andre web sprog. Den forudsætter lidt kendskab til generel web, ASP.NET, C# / VB.NET og ADO.NET. Skrevet den 06. Feb 2009 af arne_v I kategorien Programmering / ASP.NET Historie: V1.0-30/12/ original Hvad er geografisk lokalisering Din side finder ud af hvor brugeren er henne. Typisk hvilket land. Men i nogen tilfælde også hvilken landsdel eller hvilken by. Hvorfor laver man geografisk lokalisering Det kan der være mange grunde til. Nogle eksempler: 1) Man vil forbyde adgang til hele siten eller visse sider fra enkelte lande eller eventuelt alle andre lande end ens eget p.g.a. lovmæssige krav. 2) Man vil automatisk skifte til sider i brugerens sprog. 3) Man vil generere sider som viser nærmeste butikker eller nærmeste download server eller lignende. Hvordan laver man geografisk lokalisering Man henter adressen på client maskinen fra HTTP headeren Remote-Addr og slår op i en database som mapper fra IP adresser til geografisk lokation. Kan det ikke gøres nemmere? Man kigger på HTTP headeren Accept-Language og ser hvilket sprog browseren er sat til. I praksis er det ubrugeligt, da masser af ikke personer i ikke engelsk talende lande bruger engelske versioner
2 af software. Man laver reverse DNS lookup på adressen på client maskinen og ser hvilket land domæne navnet tilhører. I praksis er det ubrugeligt, da meget almindelige domæner som.com.org.net.biz etc. ikke nødvendigvis er USA. Man beder brugeren selv vælge sprog eller nærmeste butik / download site. Det virker naturligvis for disse formål. Og er absolut en simpel og nem løsning, som man bør overveje. Løsningen kan åbenlyst ikke bruges til at blokere for uønskede med. Geo lokaliserings databaser Man skal som sagt have en database der mapper fra IP adresser til land. Der eksisterer adskillige sådanne. En masse kommercielle og enkelte gratis. Det er vigtigt at huske at den database skal løbende opdateres, da internettet ikke er statisk. Man skal også gøre sig klart at det ikke er en 100% sikker lokalisering. Forskellene på de kommercielle og de gratis er typisk: * de gratis er kun på land - de kommercielle er både land og landsdel/by * de gratis har 90-95% sikkerhed - de kommercielle har 95-98% sikkerhed * de gratis opdateres en gang om måneden - de kommercielle opdateres hver dag Jeg kender 2 gratis: * * Inden du starter brug af dem, så skal du nærlæse deres licens betingelser og checke om de er kompatible med dit brug. Nedenstående kode viser hvordan de kan bruges. Du vælger hvilken af de 2 du vil bruge og retter eventuelt koden til så den passer til dit formål. Database byg kode GeoLoad.cs using System; using System.IO; using System.Net; using System.Data; using System.Data.SqlClient; using ICSharpCode.SharpZipLib.Zip;
3 namespace E_Geo public class GeoLoad /* START CONFIGURATION */ private const String UrlWebHostingInfo = " private const String UrlMaxMind = " private const String WorkDir private const String ConnStr = "server=arnepc2;integrated Security=SSPI;database=Test"; /* END CONFIGURATION */ private static void Download(string urlstr, string zipfnm) WebClient wc = new WebClient(); wc.downloadfile(urlstr, WorkDir + zipfnm); private static void Unzip(string zipfnm, string csvfnm) Stream s = new FileStream(WorkDir + csvfnm, FileMode.Create, FileAccess.Write); ZipInputStream zis = new ZipInputStream(new FileStream(WorkDir + zipfnm, FileMode.Open, FileAccess.Read)); ZipEntry ze = zis.getnextentry(); byte[] b = new byte[100000]; int n; while((n = zis.read(b, 0, b.length)) > 0) s.write(b, 0, n); zis.close(); s.close(); private static void DbImport(string csvfnm, int fromcol, int tocol, int countrycol, string tblnam) SqlConnection con = new SqlConnection(ConnStr); con.open(); SqlCommand drp = new SqlCommand("DROP TABLE " + tblnam, con); try drp.executenonquery(); catch(exception) /* we will end here first time */ SqlCommand cre1 = new SqlCommand("CREATE TABLE " + tblnam + "(id INTEGER NOT NULL, ip1 NUMERIC(10,0), ip2 NUMERIC(10,0), country CHAR(2), PRIMARY KEY(id))", con); cre1.executenonquery(); SqlCommand cre2 = new SqlCommand("CREATE INDEX ixip1 ON " + tblnam + "(ip1)", con); cre2.executenonquery();
4 SqlCommand cre3 = new SqlCommand("CREATE INDEX ixip2 ON " + tblnam + "(ip2)", con); cre3.executenonquery(); SqlCommand ins = new SqlCommand("INSERT INTO " + tblnam + " VALUES(@id,@ip1,@ip2,@country)", con); ins.parameters.add("@id", SqlDbType.Int); ins.parameters.add("@ip1", SqlDbType.Decimal); ins.parameters.add("@ip2", SqlDbType.Decimal); ins.parameters.add("@country", SqlDbType.VarChar); StreamReader sr = new StreamReader(WorkDir + csvfnm); int n = 0; string line; while((line = sr.readline())!= null) n++; string[] cols = line.split(",".tochararray()); decimal fromval = decimal.parse(cols[fromcol-1].replace('"', ' ').Trim()); decimal toval = decimal.parse(cols[tocol-1].replace('"', ' ').Trim()); string code = cols[countrycol-1].replace('"', ' ').Trim(); ins.parameters["@id"].value = n; ins.parameters["@ip1"].value = fromval; ins.parameters["@ip2"].value = toval; ins.parameters["@country"].value = code; ins.executenonquery(); sr.close(); con.close(); private static void LoadWebHostingInfo() Download(UrlWebHostingInfo, "whi.zip"); Unzip("whi.zip", "whi.csv"); DbImport("whi.csv", 1, 2, 3, "whi"); private static void LoadMaxMind() Download(UrlMaxMind, "mm.zip"); Unzip("mm.zip", "mm.csv"); DbImport("mm.csv", 3, 4, 5, "mm"); public static void Main(string[] args) LoadWebHostingInfo(); LoadMaxMind(); GeoLoad.vb
5 Imports System Imports System.IO Imports System.Net Imports System.Data Imports System.Data.SqlClient Imports ICSharpCode.SharpZipLib.Zip Namespace E_Geo Public Class GeoLoad Private Const UrlWebHostingInfo As String = " Private Const UrlMaxMind As String = " Private Const WorkDir As String = "C:\e" Private Const ConnStr As String = "server=arnepc2;integrated Security=SSPI;database=Test" String) Private Shared Sub Download(ByVal urlstr As String, ByVal zipfnm As Dim wc As WebClient = New WebClient wc.downloadfile(urlstr, WorkDir + "\" + zipfnm) Private Shared Sub Unzip(ByVal zipfnm As String, ByVal csvfnm As String) Dim s As Stream = New FileStream(WorkDir + "\" + csvfnm, FileMode.Create, FileAccess.Write) Dim zis As ZipInputStream = New ZipInputStream(New FileStream(WorkDir + "\" + zipfnm, FileMode.Open, FileAccess.Read)) Dim ze As ZipEntry = zis.getnextentry Dim b(100000) As Byte Dim n As Integer n = zis.read(b, 0, b.length) While n > 0 s.write(b, 0, n) n = zis.read(b, 0, b.length) End While zis.close s.close Private Shared Sub DbImport(ByVal csvfnm As String, ByVal fromcol As Integer, ByVal tocol As Integer, ByVal countrycol As Integer, ByVal tblnam As String) Dim con As SqlConnection = New SqlConnection(ConnStr) con.open Dim drp As SqlCommand = New SqlCommand("DROP TABLE " + tblnam, con) Try drp.executenonquery Catch e As Exception ' we will end here first time End Try Dim cre1 As SqlCommand = New SqlCommand("CREATE TABLE " + tblnam + "(id INTEGER NOT NULL, ip1 NUMERIC(10,0), ip2 NUMERIC(10,0), country CHAR(2),
6 PRIMARY KEY(id))", con) cre1.executenonquery Dim cre2 As SqlCommand = New SqlCommand("CREATE INDEX ixip1 ON " + tblnam + "(ip1)", con) cre2.executenonquery Dim cre3 As SqlCommand = New SqlCommand("CREATE INDEX ixip2 ON " + tblnam + "(ip2)", con) cre3.executenonquery Dim ins As SqlCommand = New SqlCommand("INSERT INTO " + tblnam + " VALUES(@id,@ip1,@ip2,@country)", con) ins.parameters.add("@id", SqlDbType.Int) ins.parameters.add("@ip1", SqlDbType.Decimal) ins.parameters.add("@ip2", SqlDbType.Decimal) ins.parameters.add("@country", SqlDbType.VarChar) Dim sr As StreamReader = New StreamReader(WorkDir + "\" + csvfnm) Dim n As Integer = 0 Dim line As String line = sr.readline While Not (line Is Nothing) n = n + 1 Dim cols As String() = line.split(",".tochararray) Dim fromval As Decimal = Decimal.Parse(cols(fromcol - 1).Replace("""", " ").Trim) Dim toval As Decimal = Decimal.Parse(cols(tocol - 1).Replace("""", " ").Trim) Dim code As String = cols(countrycol - 1).Replace("""", " ").Trim ins.parameters("@id").value = n ins.parameters("@ip1").value = fromval ins.parameters("@ip2").value = toval ins.parameters("@country").value = code ins.executenonquery line = sr.readline End While sr.close con.close Private Shared Sub LoadWebHostingInfo() 'Download(UrlWebHostingInfo, "whi.zip") Unzip("whi.zip", "whi.csv") DbImport("whi.csv", 1, 2, 3, "whi") Private Shared Sub LoadMaxMind() 'Download(UrlMaxMind, "mm.zip") Unzip("mm.zip", "mm.csv") DbImport("mm.csv", 3, 4, 5, "mm") Public Shared Sub Main(ByVal args As String()) LoadWebHostingInfo LoadMaxMind End Class
7 End Namespace Bemærk at dette program gør det hele: - downloader zip fil - udpakker csv fil fra zip fil - loader csv fil til databasen Du skal kun tilrette konfigurationen i toppen. Koden bruger SharpZipLib som kan hentes her: Database søge kode GeoLocate.cs using System; using System.Collections; using System.Net; using System.Data.SqlClient; namespace E_Geo public class GeoLocate /* START CONFIGURATION */ private const String ConnStr = "server=arnepc2;integrated Security=SSPI;database=Test"; /* END CONFIGURATION */ private static SqlConnection con; private static Hashtable cache; static GeoLocate() string connstrcopy = ConnStr; con = new SqlConnection(connstrcopy); con.open(); cache = new Hashtable(); public static string Locate(string ip, string tblnam) string country = (string)cache[ip]; if(country == null) byte[] b = Dns.Resolve(ip).AddressList[0].GetAddressBytes(); long ipnum = 0; for(int i = 0; i < 4; i++) ipnum = (ipnum << 8) (uint)(b[i] & 0xFF); lock(con) SqlCommand sel = new SqlCommand("SELECT country FROM " + tblnam + " WHERE ip1 < " + ipnum + " AND " + ipnum + " < ip2", con); SqlDataReader rdr = sel.executereader();
8 if(rdr.read()) country = (string)rdr[0]; else country = "??"; rdr.close(); cache.add(ip, country); return country; GeoLocate.vb Imports System Imports System.Collections Imports System.Net Imports System.Data.SqlClient Namespace E_Geo Public Class GeoLocate Private Const ConnStr As String = "server=arnepc2;integrated Security=SSPI;database=Test" Private Shared con As SqlConnection Private Shared cache As Hashtable Shared Sub New() Dim connstrcopy As String = ConnStr con = New SqlConnection(connstrcopy) con.open cache = New Hashtable Public Shared Function Locate(ByVal ip As String, ByVal tblnam As String) As String Dim country As String = CType(cache(ip), String) If country Is Nothing Then Dim b As Byte() = Dns.Resolve(ip).AddressList(0).GetAddressBytes Dim ipnum As Long = 0 Dim i As Integer For i = 0 To 3 ipnum = (ipnum << 8) Or (b(i) And &HFF) Next SyncLock con Dim sel As SqlCommand = New SqlCommand("SELECT country FROM " + tblnam + " WHERE ip1 < " + ipnum.tostring + " AND " + ipnum.tostring
9 + " < ip2", con) Dim rdr As SqlDataReader = sel.executereader If rdr.read Then country = CType(rdr(0), String) Else country = "??" End If rdr.close cache.add(ip, country) End SyncLock End If Return country End Function End Class End Namespace test.aspx <%@ Page Language="C#" %> <%@ import namespace="e_geo" %> <%=GeoLocate.Locate(Request.UserHostAddress, "whi")%> <%=GeoLocate.Locate(Request.UserHostAddress, "mm")%> test.aspx <%@ Page Language="VB" %> <%@ import namespace="e_geo" %> <%=GeoLocate.Locate(Request.UserHostAddress, "whi")%> <%=GeoLocate.Locate(Request.UserHostAddress, "mm")%> Du skal selvfølgelig også tilrette konfigurationen her..dlll filen og.aspx filen der bruger den skal deployes helt normalt (ligger udenfor scope af denne artikel). De viste test.aspx er naturligvis uinteressante, men de viser hvordan man kalder. Kommentar af wever d. 02. Dec Fin artikel, arne_v rundede point da jeg købte adgang :) Kommentar af tofte d. 31. Dec Belyser problemer, og kommer med en fin løsning. Kommentar af olhansen d. 22. Feb
10 Fin løsning Kommentar af rasmus-madsen d. 02. Jan Jeg har nu, efter testning fundet ud af hvor præcis den egentlig var... Så stemmer lig igen, med bedre karakter ;) Kommentar af madschristensen d. 21. Jun Fin artikel! Kommentar af andr3as d. 31. Dec jeg ved ikke lige hvorfor rasmus-madsen skriver som han gør, men jeg synes det er en meget god artikel!
Geografisk lokalisering i JSP
Denne guide er oprindeligt udgivet på Eksperten.dk Geografisk lokalisering i JSP Denne artikel forklarer lidt om hvorfor og hvordan man laver geografisk lokalisering og viser noget kode. Der er andre artikler
Læs mereParameters. 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 mereSkrevet 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 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 mereIntroduction til.net remoting i VB.NET
Denne guide er oprindeligt udgivet på Eksperten.dk Introduction til.net remoting i VB.NET Denne artikel beskriver teorien bag.net remoting og viser nogle simple kode eksempler i VB.NET. Den forudsætter
Læs merePrepared 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 mereDen 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 mereDen 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 mereDatabase design for begyndere
Denne guide er oprindeligt udgivet på Eksperten.dk Database design for begyndere Denne artikel beskriver hvordan man kommer fra ide til database design. Den stopper inden normal former. Den forudsætter
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 mereUndtagelseshåndtering i C#
Denne guide er oprindeligt udgivet på Eksperten.dk Undtagelseshåndtering i C# I modsætning til C++ kan man i C# ikke skrive et program uden undtagelseshåndtering, så derfor har jeg skrevet denne guide
Læs mereSingleton pattern i C#
Denne guide er oprindeligt udgivet på Eksperten.dk Singleton pattern i C# Denne artikel beskriver Singleton pattern og implementation i C#. Den forudsætter kendskab til C# men ikke til Singleton. Der er
Læs mereSend fra Java. Denne artikel fortæller hvad man skal bruge og hvordan man skal kode for at sende fra Java.
Denne guide er oprindeligt udgivet på Eksperten.dk Send email fra Java Denne artikel fortæller hvad man skal bruge og hvordan man skal kode for at sende email fra Java. Simple eksempler ikke noget vildt
Læs mereTilfældige tal. Denne artikel introducerer generering af tilfældige tal og viser lidt om hvad man kan og ikke mindst hvad man ikke bør bruge.
Denne guide er oprindeligt udgivet på Eksperten.dk Tilfældige tal Denne artikel introducerer generering af tilfældige tal og viser lidt om hvad man kan og ikke mindst hvad man ikke bør bruge. Den forudsætter
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 mereSingleton pattern i Java
Denne guide er oprindeligt udgivet på Eksperten.dk Singleton pattern i Java Denne artikel beskriver Singleton pattern og implementation i Java. Den forudsætter kendskab til Java men ikke til Singleton.
Læs mere1B fil database. //globale variabler DateTime tid; // erklærer en variabel af typen datetime DateTime dag; // erklærer en variabel af typen datetime
1B fil database using System; //eksterne klasser using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks;
Læs mereSom sagt kræves der helst lidt viden om OOP hvis man virkelig vil lærer noget, og ikke bare lave copypaste
Denne guide er oprindeligt udgivet på Eksperten.dk Indkøbsvogn i PHP I denne artikel vil jeg prøve at lave en indkøbskurv som let kan udvides, og som ikke er svær at forstå. Det er bedst med viden om OOP(klasser),
Læs mere//Udskriver System.out.println("Hej " + ditfornavn + " " + ditefternavn + "."); System.out.println("Du er " + dinalder + " aar gammel!
Denne guide er oprindeligt udgivet på Eksperten.dk Brugerinput i Java Denne her artikel gennemgår diverse ting ved brug af brugerinput i Java. Den starter med det simple og fortæller derefter skridt for
Læs mereListen over reserverede ord er meget lang, men de væsentligste vil jeg beskrive her i denne artikel:
Denne guide er oprindeligt udgivet på Eksperten.dk SQL og ASP En artikel omkring simpel SQL og hvordan disse opbygges, udformes og udføres, sådan at man kan få et brugbart resultat i ASP. Dette ligefra
Læs mereI chartkontrollen er der så mange muligheder, at vi her blot vil se på nogle ganske enkle.
Den indbyggede chartkontrol i framework 4.0 Med denne kontrol kan man oprette meget forskellige diagrammer og måske, vil nogen nok synes, lettere end når man selv skal programmere det hele fra bunden,
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 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 mereBits, bit operationer, integers og floating point
Denne guide er oprindeligt udgivet på Eksperten.dk Bits, bit operationer, integers og floating point Denne artikel beskriver hvordan data gemmes som bits og hvordan man kan manipulere med bits. Den forudsætter
Læs mereI denne artikel vil vi bruge en User klasse som vi så vil gruppere på forskellige måder.
Denne guide er oprindeligt udgivet på Eksperten.dk Collections i.net Når du kigger i namespacet System.Collections finder du over 10 forskellige klasser. At vælge den rigtige til netop din applikations
Læs mereRMI avanceret. Denne artikel beskriver nogle mere avancerede features i RMI. Den gør det muligt at lave mere realistiske applikationer.
Denne guide er oprindeligt udgivet på Eksperten.dk RMI avanceret Denne artikel beskriver nogle mere avancerede features i RMI. Den gør det muligt at lave mere realistiske applikationer. Den forudsætter
Læs mereRatingsystem i PHP og MySQL
Denne guide er oprindeligt udgivet på Eksperten.dk Ratingsystem i PHP og MySQL Lær at lave et system til at vise rating/bedømmelse på artikler og nyheder. Skrevet den 03. Feb 2009 af virtual1ty I kategorien
Læs mereIntroduktion til SQL queries
Denne guide er oprindeligt udgivet på Eksperten.dk Introduktion til SQL queries Denne artikel beskriver nogle forskellige muligheder i SQL queries. Eksemplerne skulle gerne være standard SQL og virke i
Læs mereDerfor vil jeg bygge dette eksempel på een table hvor der kan tilkyttes personer til ALLE noder og der kan tilføjes et vilkårligt antal niveauer
Denne guide er oprindeligt udgivet på Eksperten.dk TreeView i Access II Jeg vil i denne anden udgave af treeview føljetonen begynde på et mere brugbart eksempel med et TreeView. Vi laver en ny database
Læs mereTest med JUnit 3. Denne artikel introducerer JUnit 3. Den forklarer ideen med JUnit. Og den viser hvordan man konkret bruger det.
Denne guide er oprindeligt udgivet på Eksperten.dk Test med JUnit 3 Denne artikel introducerer JUnit 3. Den forklarer ideen med JUnit. Og den viser hvordan man konkret bruger det. Den forudsætter kendskab
Læs mere.NET 4.5 og C# 5.0. Denne artikel beskriver nogle af de nye features i.net 4.5 og C# 5.0. Den forudsætter et vist kendskab til.net og C#.
Denne guide er oprindeligt udgivet på Eksperten.dk.NET 4.5 og C# 5.0 Denne artikel beskriver nogle af de nye features i.net 4.5 og C# 5.0. Den forudsætter et vist kendskab til.net og C#. Skrevet den 11.
Læs mereArkitektur for begyndere
Denne guide er oprindeligt udgivet på Eksperten.dk Arkitektur for begyndere Denne artikel beskriver forskellige basale n-tier arkitekturer. Som man bør kende og have valgt inden man går igang med at udvikle
Læs mereDynamiske Billeder, Image Map & XY coordinater. ASP.NET og Access Databasen.
Dynamiske Billeder, Image Map & XY coordinater. ASP.NET og Access Databasen. Tutorial lavet af Jákup W. Hansen TSU 2006 22. april 2008 Hvorfor denne tutorial: Denne tutorial er ikke direkte pensum på datamatikkerskolen,
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 mereThreads i Java. Denne artikel giver en introduktion til threads i Java. Den beskriver hvad tråde er og forklarer hvordan de bruges i Java
Denne guide er oprindeligt udgivet på Eksperten.dk Threads i Java Denne artikel giver en introduktion til threads i Java. Den beskriver hvad tråde er og forklarer hvordan de bruges i Java Den forudsætter
Læs mereTest med NUnit. Denne artikel introducerer NUnit. Den forklarer ideen med NUnit. Og den viser hvordan man konkret bruger det.
Denne guide er oprindeligt udgivet på Eksperten.dk Test med NUnit Denne artikel introducerer NUnit. Den forklarer ideen med NUnit. Og den viser hvordan man konkret bruger det. Den forudsætter kendskab
Læs mereI profil-feltet kan imastra-kunder vælge om upload skal ske ligesom filerne var indsendt til mailboksen eller
Upload fil Upload fil skal ses som et alternativ til at indsende tællefiler vedhæftet til mails Upload fil kan være en hurtigere og mere håndholdt måde at få data ind i Mastra på. Man starter med via Gennemse
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 mereVæ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 mereI denne artikel vil jeg gennemgå hvordan en side for RSS "Live Bogmærke" kan se ud.
Denne guide er oprindeligt udgivet på Eksperten.dk RSS "Live Bogmærke" I denne artikel vil jeg gennemgå hvordan en side for RSS "Live Bogmærke" kan se ud. Skrevet den 10. Feb 2009 af madsass I kategorien
Læs mereHvad er Objekter - Programmering
Denne guide er oprindeligt udgivet på Eksperten.dk Hvad er Objekter - Programmering En rigtig god gennemgang af hvad objekter er! Hvordan de oprettes og anvendes! Det er helt klart til nybegyndere, som
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 mere.NET 2.0 og C# 2.0. Denne artikel viser hvordan man kan bruge nogle af de nye features i.net 2.0 og C# 2.0. Det er ikke en komplet oversigt.
Denne guide er oprindeligt udgivet på Eksperten.dk.NET 2.0 og C# 2.0 Denne artikel viser hvordan man kan bruge nogle af de nye features i.net 2.0 og C# 2.0. Det er ikke en komplet oversigt. Den forudsætter
Læs mereAnvendelse af metoder - Programmering
Denne guide er oprindeligt udgivet på Eksperten.dk Anvendelse af metoder - Programmering En forhåbentlig rigtig god forklaring på hvad metoder er og hvordan de anvendes. Lidt om private og public, retur
Læs mereIndhold. Senest opdateret : 30. juli 2010. Side 1 af 5
Indhold Introduktion... 2 Scenarier hvor API et kan benyttes... 2 Scenarie 1 Integration til lagerhotel... 2 Scenarie 2 Integration til økonomi system... 2 Webshop2 API Model... 3 Brugen af API et... 4
Læs mereLø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 mereTagwall med Php & MySQL
Denne guide er oprindeligt udgivet på Eksperten.dk Tagwall med Php & MySQL Her laver vi en tagwall i Php & MySQL... jeg forklarer dog ikke så meget, men jeg håber du kan få det til at blive til en tagwall
Læs mereapplikation----x----odbc driver manager----foobar ODBC driver----foobar database
Denne guide er oprindeligt udgivet på Eksperten.dk ODBC i C/C++ Denne artikel beskriver hvordan man bruger ODBC i C/C++. Der er beskrivelse af build med forskellige compilere. Den forudsætter lidt kendskab
Læs mereMed 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 mereHvilket sprog er hurtigst
Denne guide er oprindeligt udgivet på Eksperten.dk Hvilket sprog er hurtigst Denne artikel forsøger at aflive forskellige myter om hvilke sprog der er hurtigst. Den forudsætter ikke noget særligt. Skrevet
Læs mereDatabase tips. Den forudsætter lidt kendskab til SQL men er for mindre erfarne. Denne guide er oprindeligt udgivet på Eksperten.dk
Denne guide er oprindeligt udgivet på Eksperten.dk Database tips Denne artikel vil give nogle forskellige små praktiske råd om ting man skal tænke på når man arbejder med databaser og applikationer som
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 mereForskellige Java versioner
Denne guide er oprindeligt udgivet på Eksperten.dk Forskellige Java versioner Denne artikel beskriver lidt om de forskellige Java versioner. Den forklarer J2SE/J2ME/J2EE, plugin/jre/sdk og Sun Java/Microsoft
Læs mereMySQL C API. Denne artikel beskriver hvordan man bruger MySQL C API. Der er beskrivelse af build med forskellige compilere.
Denne guide er oprindeligt udgivet på Eksperten.dk MySQL C API Denne artikel beskriver hvordan man bruger MySQL C API. Der er beskrivelse af build med forskellige compilere. Den forudsætter lidt kendskab
Læs mereDenne artikel gennemgår kort nogle mulighederne for brug af XML i ASP. Det sker ved brug af eksempler. Eksemplerne vil være i VBS.
Denne guide er oprindeligt udgivet på Eksperten.dk XML i ASP Denne artikel gennemgår kort nogle mulighederne for brug af XML i ASP. Det sker ved brug af eksempler. Eksemplerne vil være i VBS. Den forudsætter
Læs mereIntroduktion til funktioner, moduler og scopes i Python
Denne guide er oprindeligt udgivet på Eksperten.dk Introduktion til funktioner, moduler og scopes i Python Denne artikel er fortsættelsen af "I gang med Python", som blevet publiceret her på sitet for
Læs mereI mit script tager jeg højde for det problem ved, at gemme et unikt tal mellem 0-9 på 6 cifre og derved vil de så blive vist som 2 online.
Denne guide er oprindeligt udgivet på Eksperten.dk Hvem er online? Online script, som tager højde for at der kan være flere personer, som har den samme IP-adresse. Scriptet viser hvor lang tid brugeren
Læs mereIndholdsfortegnelse Databaser og PHP... 3 Opgave... 4 Opgave... 5 Opgave... 6 Sidste opgave er en lille gæstebog... 7 Kilder og nyttige links:...
Indholdsfortegnelse Databaser og PHP... 3 Opgave... 4 Opgave... 5 Opgave... 6 Sidste opgave er en lille gæstebog... 7 Kilder og nyttige links:... 9 Nogle HTML tags... 9 Databaser og PHP Når vi snakker
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 mereOffset til terminalskærm i Java
Denne guide er oprindeligt udgivet på Eksperten.dk Offset til terminalskærm i Java Ikke en atikkel - men en Classe til java der gør det nemt at skrive ud på avancerede måder når man kun opererer i dosvindue.
Læs mereWINDOWS 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 mereJava Klasse nedarvninger
Denne guide er oprindeligt udgivet på Eksperten.dk Java Klasse nedarvninger Et let lille overblik i hvordan klasse nedarvning virker i java Skrevet den 07. dec 2011 af mochners I kategorien Programmering
Læs mereBootstrap Tutorial LAV EN SIMPEL RESPONSIVE SIDE MED BOOTSTRAP MATHIAS HERSKIND GROTRIAN
2015 Bootstrap Tutorial LAV EN SIMPEL RESPONSIVE SIDE MED BOOTSTRAP MATHIAS HERSKIND GROTRIAN I denne tutorial kommer du til at I denne tutorial vil du lære hvad Bootstrap er, hvordan det fungerer og hvordan
Læs mereEndnu mere om tilfældige tal
Denne guide er oprindeligt udgivet på Eksperten.dk Endnu mere om tilfældige tal Denne artikel bygger oven på de to forrige artikler om tilfældige tal. Den indeholder lidt matematik og anvendelse på PHP
Læs mereHosted CRM Outlook client connector setup guide. Date: Version: 1. Author: anb. Target Level: Customer. Target Audience: End User
Hosted CRM 2011 Outlook client connector setup guide Date: 2011-06-29 Version: 1 Author: anb Target Level: Customer Target Audience: End User Language: da-dk Page 1 of 16 LEGAL INFORMATION Copyright 2011
Læs mereAfsending af s vha. ASP
Denne guide er oprindeligt udgivet på Eksperten.dk Afsending af emails vha. ASP Det kan ofte være praktisk at afsende emails fra sin hjemmeside. Denne artikel tager udgangspunkt i komponenten JMail fra
Læs mereForskellige databaser
Denne guide er oprindeligt udgivet på Eksperten.dk Forskellige databaser Denne artikel beskriver kort forskellige database typer, produkter og API'er. Målet er at give et overblik over hvad der findes
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 mereKoden i denne guide vil kun virke i Flash MX 2003 og MX ikke ældre versioner!
Denne guide er oprindeligt udgivet på Eksperten.dk Slideshow - Guide Denne guide gennemgår grundigt og forklarende hvordan man i Flash laver et slideshow med simpel fade-effekt med billeder hentet dynamisk.
Læs mereXML 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 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 mereI denne artikel vil du ved hjælp af arrays kunne afrunde et decimaltal til et helt tal.
Denne guide er oprindeligt udgivet på Eksperten.dk Afrund til helt tal I denne artikel vil du ved hjælp af arrays kunne afrunde et decimaltal til et helt tal. Skrevet den 03. Feb 2009 af tjomsen I kategorien
Læs mereIntroduktion til NAnt
Denne guide er oprindeligt udgivet på Eksperten.dk Introduktion til NAnt Denne artikel beskriver NAnt, som er et værktøj til at builde.net applikationer med. Den beskriver nogle af de mest brugte NAnt
Læs mereSAX 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 mereLogging i Java. Den forudsætter kendskab til Java og noget generel udviklings erfaring. Denne guide er oprindeligt udgivet på Eksperten.
Denne guide er oprindeligt udgivet på Eksperten.dk Logging i Java Denne artikel beskriver baggrunden for logging frameworks og viser hvordan man bruger 2 af de mest almindelige: Apache Log4J og J2SE/Java
Læs mereJava web applikationer med Tomcat
Denne guide er oprindeligt udgivet på Eksperten.dk Java web applikationer med Tomcat Denne artikel beskriver hvordan man kan konfigurere container managed security og en database connection pool i Tomcat.
Læs mereUniversity of Southern Denmark Syddansk Universitet. DM502 Forelæsning 3
DM502 Forelæsning 3 Indlæsning fra tastatur Udskrift til skærm Repetition Beregning af middelværdi Gentagelse med stop-betingelse (while) Heltalsdivision Division med nul Type-casting ( (double) ) Betinget
Læs mereDelphi - CrackMe og Keygen
Denne guide er oprindeligt udgivet på Eksperten.dk Delphi - CrackMe og Keygen Dette er min første artikel! :) Men jeg synes nu den er blevet meget god! :D Jeg giver et et eksempel på hvordan man kan lave
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 mereHosted CRM Outlook client connector setup guide. Date: Version: 1. Author: anb. Target Level: Customer. Target Audience: End User
Hosted CRM 2011 Outlook client connector setup guide Date: 2011-09-08 Version: 1 Author: anb Target Level: Customer Target Audience: End User Language: da-dk Page 1 of 19 LEGAL INFORMATION Copyright 2011
Læs mereI denne artikel, vil der blive gennemgået de grundlæggende PHP-funktioner, såsom udskrift til skærmen, tid og dato og if-sætningen.
Denne guide er oprindeligt udgivet på Eksperten.dk Grundlæggende PHP I denne artikel, vil der blive gennemgået de grundlæggende PHP-funktioner, såsom udskrift til skærmen, tid og dato og if-sætningen.
Læs mereDatabase programmerings tips
Denne guide er oprindeligt udgivet på Eksperten.dk Database programmerings tips Denne artikel vil introducere nogle problem stillinger med flere samtidige brugere, som man skal tænke på, når man udvikler
Læs mereSektornet VPN. Opsætning af Novell 4.1x server og klient på. Windows 2000/NT/XP
Sektornet VPN Opsætning af Novell 4.1x server og klient på Windows 2000/NT/XP UNI C oktober 2002 Sektornet VPN UNI C oktober 2002 v1.0 Af Jesper Skou Jensen 1 Installation og konfiguration af Netware IP
Læs mereKontrol-strukturer i PHP
Denne guide er oprindeligt udgivet på Eksperten.dk Kontrol-strukturer i PHP Denne artikel gennemgår kontrolstrukturer i PHP. 'if', 'switch', 'while' og 'for' bliver gennemgået. Den forudsætter lidt grundlæggende
Læs mereNye 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 mereUploade billeder eller andre filer ved hjælp af php og mysql
Denne guide er oprindeligt udgivet på Eksperten.dk Uploade billeder eller andre filer ved hjælp af php og mysql Denne artikel viser hvordan man kan uploade et billede eller en anden fil, og tilknytte det
Læs mereTech College Aalborg. HomePort. Projekt Smart Zenior Home Guide til udvikling af nye adaptere til HomePort
Tech College Aalborg HomePort Projekt Smart Zenior Home Guide til udvikling af nye adaptere til HomePort Indhold HomePort Adapter Step-for-Step... 2 Linux... 2 Installér IDE... 2 HomePort på GitHub...
Læs mereDokumentering 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 mereUniversity of Southern Denmark Syddansk Universitet. DM502 Forelæsning 4
DM502 Forelæsning 4 Flere kontrolstrukturer for-løkke switch-case Metoder Indhold Arrays og sortering af arrays String-funktioner for-løkke Ofte har man brug for at udføre det samme kode, for en sekvens
Læs mereDM01 DM01. 4. Obl. Afl. Jacob Christiansen, 130282, jacob.ch@mail.tdcadsl.dk. D12, Elias 13/5-2003. Side 1 af 7
DM01 DM01 4. Obl. Afl. Jacob Christiansen, 130282, jacob.ch@mail.tdcadsl.dk D12, Elias 13/5-2003 Side 1 af 7 DM01 Indholdsfortegnelse: BILAG:...2 1 FORMÅL:...3 2 KLASSER:...4 2.1 DNA2:...4 2.1.1 METODER:...4
Læs mereExceptions i Delphi. Try except
Exceptions i Delphi Exceptions er en teknik til at fange fejl under programafviklingen. Ikke programmeringsfejl, men fejl der opstår i forskellige situationer, f.eks. en fil der mangler en fil der er skrivebeskyttet,
Læs mereBrugerdefineret menuer i Access
Denne guide er oprindeligt udgivet på Eksperten.dk Brugerdefineret menuer i Access Denne artikel henvender sig primært til let øvede brugere af Access, der ønsker at komme i gang med at tilpasse egne menuer
Læs mereRegister-databasen med.net
Denne guide er oprindeligt udgivet på Eksperten.dk Register-databasen med.net Mange programmer gemmer deres konfiguration-data i register-database. Denne artikel viser hvordan du - f.eks. vha. C# - henter
Læs mereUpload af billeder/filer for nybegyndere Del. 2
Denne guide er oprindeligt udgivet på Eksperten.dk Upload af billeder/filer for nybegyndere Del. 2 I denne Del vil jeg ikke gaa saa dybt i fil upload som i sidste. Jeg vil i stedet forklare om funktioner
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 mereEksempel: Skat i år 2000
Kursus 02199: Programmering afsnit 2.1-2.7 Anne Haxthausen IMM, DTU 1. Værdier og typer (bl.a. char, boolean, int, double) (afsnit 2.4) 2. Variable og konstanter (afsnit 2.3) 3. Sætninger (bl.a. assignments)
Læs mereGEONIS Vand. fact sheet. Planlæg, dokumentér og vedligehold
JUNE 2015 Planlæg, dokumentér og vedligehold er en effektiv fagspecialist løsning for planlægning, dokumentation og vedligeholdelse af et vand forsyningssystem. Data model supportere en række nationale
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 mereØ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 mereLoginsystem (med MySQL)
Denne guide er oprindeligt udgivet på Eksperten.dk Loginsystem (med MySQL) Dette er en guide til, hvordan man kan lave et loginsystem med php og muligvis også med sessioner og MySQL Skrevet den 02. Feb
Læs mere