VS 2010 og.net framework 4.0

Størrelse: px
Starte visningen fra side:

Download "VS 2010 og.net framework 4.0"

Transkript

1 VS 2010 og.net framework 4.0 Captator Tlf: Henrik Lykke Nielsen Softwarearkitekt, Microsoft Regional Director for Denmark Mobil: maj 2010 VS 2010 og.net framework 4.0 1

2 Agenda Sprog features i C# 4.0 og VB 10.0 Nyheder i C# (som VB allerede har) Nyheder i VB (som C# allerede har) Generisk co- og kontravarians (nyt i både C# og VB) Den dynamiske type (C#) COM support ExpandoObject, DynamicObject Visual Studio features festivitas.net framework features Diverse framework nyheder Task Parallel Library Visual Studio Versioner maj 2010 VS 2010 og.net framework 4.0 2

3 Visual Studio og.net frameworket En platform i udvikling Juni 2000 Feb 2002 April 2003 Nov 2005 Nov 2006 Nov 2007 April 2010 maj 2010 VS 2010 og.net framework 4.0 3

4 Navngivne argumenter C# Betydningen af et argument kan være uklar Navngivning af argumenter kan hjælpe på dette int result1 = String.Compare("ABC", "abc", true); int result2 = String.Compare("ABC", "abc", ignorecase: true); Kan sendes i vilkårlig orden int result3 = String.Compare(ignoreCase: true, strb: "abc", stra: "ABC"); Kun navngivne argumenter må følge efter et navngivet argument int result4 = String.Compare(strB: "abc", "ABC", ignorecase: true); Kompiler fejl maj 2010 VS 2010 og.net framework 4.0 4

5 Optionelle argumenter C# Ofte bruges overloads til at implementere, at et argument er optionelt string UseOverloads(IEnumerable<string> strings) { return UseOverloads(strings, " "); } string UseOverloads(IEnumerable<string> strings, string delimiter) { /*... */ } Argumenter kan nu være optionelle Defineres ved angivelse af default konstant værdi public static string UseOptional(IEnumerable<string> strings, string delimiter = " ") { /*... */ } maj 2010 VS 2010 og.net framework 4.0 5

6 Optionelle argumenter C# En optional parameter kan udelades følgende kald giver samme resultat string result1 = UseOptional(new string[] { "abc", "123" }, " "); string result2 = UseOptional(new string[] { "abc", "123" }); Alle efterfølgende parametre skal også være defineret som værende optionelle Metoder uden optionelle argumenter foretrækkes ved valg af overload ref og out parametre kan ikke have default værdier maj 2010 VS 2010 og.net framework 4.0 6

7 Automatic properties VB En automatic property er en kompakt måde at definere en property med standard implementation (direkte offentliggørelse af et privat backing-field) Public Property Number42 As Integer = 42 Svarer til den expandede property: Private _number As Integer = 42 Intialisering af propertyen Public Property Number() As Integer Get Return _number End Get Set(ByVal value As Integer) _number = value End Set End Property Expander en automatic property ved at: Stå i linjen lige efter. Skriv get. Tryk Enter. maj 2010 VS 2010 og.net framework 4.0 7

8 Collection initializers VB Allerede eksisterende array initialisering Dim primesarray As Integer() = {2, 3, 5, 7, 11, 13, 17} Collectionen skal implementere System.Collections.Generic.ICollection<T> Kalder Add(T) Dim primtal As New List(Of Integer) From {2, 3, 5, 7, 11, 13, 17} Dim ænder As New List(Of Person) From { New Person() With {.Navn = "Anders And",.Adresse = "Andeby"}, New Person() With {.Navn = "Andersine And",.Adresse = "Andeby"}, New Person() With {.Navn = "Fætter Vims",.Adresse = "Andeby"}} Dim primesarraylist As New ArrayList From {2, 3, 5, 7, 11, 13, 17} Dim værdier = New Dictionary(Of Integer, String) From {{0, "Første"}, {1, "Anden"}} Argument til Add-metoden maj 2010 VS 2010 og.net framework 4.0 8

9 Implicit line continuation VB I mange situationer kan den eksplicitte line continuation character undlades Efter et komma Efter en ( { <%= eller før en )} %> Efter operatorer: & = += <> And Is o.s.v. Efter member qualifiere (.) i de fleste situationer Før og efter query operatorer (LINQ) Efter In i en Foreach statement Efter From i en collection initializer m.m. Embedded expression i en XML literal Dim a, b As Integer Dim tal As Double = System. Math. PI + ( System.Math.E ) maj 2010 VS 2010 og.net framework 4.0 9

10 Multiline lambda udtryk VB Lambda udtryk kan være på flere linjer Dim beregnværdi = Function(a As Double, b As Double, c As Double) As Double Dim resultat As Double resultat = a + b resultat += c Return resultat End Function Dim værdi As Double = beregnværdi(1, 2, 3) Dim gøretellerandet = Sub() Dim resultat As Double resultat = værdi ^ 2 MsgBox(resultat.ToString()) End Sub gøretellerandet() maj 2010 VS 2010 og.net framework

11 Generisk covarians problem i C# 3.0 public string GetNavne(IEnumerable<Person> personer) { foreach (Person p in personer) { /*... */ } } Muligt: IEnumerable<Person> personer = new List<Person> { new Person("Rip"), new Person("Rap") }; string personnavne = GetNavne(personer); Da IEnumerable<Ansat> ikke nedarves fra IEnumerable<Person> giver følgende til gengæld kompilerfejl i C# 3.0 IEnumerable<Ansat> ansatte = new List<Ansat> { new Ansat("Rip"), new Ansat("Rap") }; string ansatnavne = GetNavne(ansatte); Person Ansat covarians Kompiler fejl maj 2010 VS 2010 og.net framework

12 Problematisk array covarians Problematisk eksisterende implementation af array covarians i C# Person[] personarray = new Ansat[10]; Accepterer alle personer personarray[0] = new Ansat("Arne Ansat"); personarray[1] = new Person("Per Person"); personarray[2] = new Kunde("Kurt Kunde"); Runtime fejl personarray er erklæret til at kunne indeholde vilkårlige personer, men det bagvedliggende array accepterer kun ansatte Person Ansat Kunde maj 2010 VS 2010 og.net framework

13 Generisk covarians løsningen i C# 4.0 For at udnytte covarians for et interface skal den generiske type angives med out i interfacet System.Collections.Generic.IEnumerable<out T> må den generiske type T kun indgå i outputværdier System.Collections.Generic.IEnumerator<T> GetEnumerator() Hermed er covarians mulig public string GetNavne(IEnumerable<Person> personer) { foreach (Person p in personer) { /*... */ } } IEnumerable<Ansat> ansatte = new List<Ansat> { new Ansat("Rip"), new Ansat("Rap") }; string ansatnavne = GetNavne(ansatte); covarians maj 2010 VS 2010 og.net framework

14 Generisk kontravarians problem i C# 3.0 int System.Collections.Generic.IComparer<T>.Compare(T x, T y) public int Sammenlign(IComparer<Ansat> comparer, Ansat a1, Ansat a2) { return comparer.compare(a1, a2); } class PersonComparer: IComparer<Person> { int IComparer<Person>.Compare(Person x, Person y) { return x.navn.compareto(y.navn); } } En personcomparer kan sammenligne vilkårlige personer og burde dermed også kunne sammenligne ansatte men ikke i C# 3.0 IComparer<Ansat> ansatcomparer = new AnsatComparer(); int result3 = SammenlignAnsatte(ansatComparer, ansat, ansat); IComparer<Person> personcomparer = new PersonComparer(); int result4 = Sammenlign(personComparer, ansat, ansat); Kompiler fejl Mangelfuld implementation kontravarians maj 2010 VS 2010 og.net framework

15 Generisk kontravarians løsningen i C# 4.0 For at udnytte kontravarians for et interface skal den generiske type angives med in i interfacet System.Collections.Generic.IComparer<in T> må den generiske type T kun indgå i indgående parametre int Compare(T x, T y) Hermed er kontravarians mulig public int Sammenlign(IComparer<Ansat> comparer, Ansat a1, Ansat a2) { return comparer.compare(a1, a2); } int result4 = Sammenlign(personComparer, ansat, ansat); kontravarians maj 2010 VS 2010 og.net framework

16 Generisk co- og kontravarians Kun interfaces og delegates kan benytte generisk co- og kontravarians Overtrædes in og out medfører det kompilerfejl Varians virker kun ved reference typecasts ikke ved boxing Både in og out typer kan være repræsenteret System.Func<in T,out TResult> T bliver kun brugt i indgående parametre TResult bliver kun brugt udgående En propertys type er output-safe hvis der kun er en get-accessor er input-safe, hvis der kun er en set-accessor maj 2010 VS 2010 og.net framework

17 Den dynamiske type C#s dynamiske type kan med fordel bruges, når den konkrete type ikke kendes på kompileringstidspunktet (som ved reflektion) public static T GetPropertyValue<T>(object obj, string propertyname) { PropertyInfo property = obj.gettype().getproperty(propertyname); return (T) property.getvalue(obj, null); } private object GetObject() { return "The Dynamic Duo"; } int len1 = GetString().Length; object text = GetObject(); int len2 = GetPropertyValue<int>(text, "Length"); dynamic d = GetObject(); int len3 = d.length; maj 2010 VS 2010 og.net framework

18 Den dynamiske type dynamic er en C# type, der ikke er underlagt statisk typecheck typen findes ikke på runtime Kald af ikke-eksisterende members vil resultere i run-time fejl (RuntimeBinderException) Kompileres til System.Object dynamic d; d = "The Dynamic Duo"; int len = d.length; d = new Person(); d.navn = "Batman"; string navn = d.navn; d.sayhi(); Tooltip string eksistererej = d.adresse; Runtime fejl maj 2010 VS 2010 og.net framework

19 Den dynamiske type Der er implicit konvertering til en dynamisk type dynamic i1 = 42; Der er implicit konvertering fra en dynamisk type int i2 = i1; Konvertering til en forkert type vil resultere i runtime fejl (RuntimeBinderException) string s = i1; Runtime fejl Hvis et argument eller en parameter til en metode er dynamic, sker overload resolution på run-time maj 2010 VS 2010 og.net framework

20 Den dynamiske type dynamic kan bruges som type for members, lokale variable, parametre i generiske typer etc. var elements = new List<dynamic>(); elements.add(42); dynamic element = elements[0]; System.Type islistofobject = typeof(list<dynamic>); sammen med is og as operatorerne dynamic x1 = 17; int x2 = 42; bool istrue = x1 is dynamic; bool isalsotrue = x1 is int; Vil altid være true hvis x1!= null dynamic is17 = x1 as dynamic; dynamic is42 = x2 as dynamic; maj 2010 VS 2010 og.net framework

21 Den dynamiske type På kompileringstidspunktet ændres typen dynamic til System.Object genereres kode der baseret på kaldsinformationen identificerer operationen samt kalder den På runtimetidspunktet hvis objektet er et COM objekt benyttes IDispatch hvis objektet implementerer IDynamicObject kaldes dette hvis objektet er et almindeligt.net objekt benyttes Microsoft.CSharp.RuntimeBinder til at finde og binde til den korrekte metode hvis metoden ikke kan findes kastes exception maj 2010 VS 2010 og.net framework

22 Den dynamiske type Dynamiske opslag kan ikke finde extension metoder Lambda udtryk kan ikke være argument til metodekald på dynamiske variable public class Person { public void Call(System.Action action) { action(); } } dynamic d = new Person(); d.call(() => MessageBox.Show("I am calling you!")); Kompiler fejl Men det kan en typestærk delegate godt d.call((action)delegate { MessageBox.Show("I am calling you!"); }); maj 2010 VS 2010 og.net framework

23 Den dynamiske type Normalt ikke et godt alternativ hvis man kan arbejde typestærkt Dog kan den bruges, hvis man ønsker at undgå eksplicitte typecasts Giver kortfattet men mere usikker kode Hvis man foreacher over en dynamic, antages den at implementere IEnumerable WPF understøtter databinding til dynamiske objekter Kan bruges ved f.eks. anonyme view klasser maj 2010 VS 2010 og.net framework

24 COM support Microsoft specifikke udvidelser af C# Kald af COM metoder må kalde ref parametre by value (uden at angive ref keywordet i kaldet) Kompileren laver en temporær variabel Kan embedde (linke) anvendte interop typer fra PIAer i klient assemblyen Fylder mindre Versionering/duck-typing COM-metode, der returnerer et object, vil, hvis komponenten linkes (ikke refereres), i stedet returnere dynamic slipper for typecasts maj 2010 VS 2010 og.net framework

25 COM support C# 3.0 understøtter ikke indexed properties var excelapp = new Excel.Application(); Excel.Range targetrange = excelapp.get_range("a1", Type.Missing); Men i C# 4.0 understøttes direkte brug af COM komponenters indexed properties var excelapp = new Excel.Application(); Excel.Range targetrange = excelapp.range["a1"]; Indexed properties understøttes dog ikke generelt i C# maj 2010 VS 2010 og.net framework

26 DLR'en baserer sig på CLR'en CLR: Common Language Runtime Fælles platform for statiske sprog DLR: Dynamic Language Runtime Fælles platform for dynamiske sprog Formål: Understøtte dynamiske sprog i.net Give statiske sprog dynamiske funktioner Hurtigere kald af dynamiske members end ved almindelig reflektion maj 2010 VS 2010 og.net framework

27 Dynamiske sprog baseret på.net IronPython IronRuby C# VB.NET Øvrige Dynamic Language Runtime Expression Trees Dynamic Dispatch Call Site Caching Object Binder JavaScript Binder Python Binder Ruby Binder COM Binder maj 2010 VS 2010 og.net framework

28 ExpandoObject System.Dynamic.ExpandoObject i System.Core.dll Implementerer: IDynamicMetaObjectProvider IDictionary<string,object> IEnumerable<KeyValuePair<String,Object>> INotifyPropertyChanged Properties kan tilføjes, fjernes og enumereres Gemmes i et dictionary Kan bruges som et alternativ til et traditionelt Dictionary maj 2010 VS 2010 og.net framework

29 ExpandoObject Properties kan tilføjes dynamic and = new System.Dynamic.ExpandoObject(); and.navn = "Anders And"; and.alder = 42; and.adresse = "Paradisæblevej 111"; string s = and.navn + " " + and.alder; and.kæreste = new System.Dynamic.ExpandoObject(); and.kæreste.navn = "Andersine And"; and.kæreste.niecer = new List<dynamic>(); and.kæreste.niecer.add(new System.Dynamic.ExpandoObject()); and.kæreste.niecer[0].navn = "Kylle"; and.kæreste.niecer.add(new System.Dynamic.ExpandoObject()); and.kæreste.niecer[1].navn = "Pylle"; and.kæreste.niecer.add(new System.Dynamic.ExpandoObject()); and.kæreste.niecer[2].navn = "Rylle"; int antalniecer = and.kæreste.niecer.count; maj 2010 VS 2010 og.net framework

30 ExpandoObject Properties kan enumereres dynamic expando = new System.Dynamic.ExpandoObject(); string s = ""; foreach (KeyValuePair<string,object> property in (IDictionary<string, object>)expando) { s += property.key + "=" + property.value.tostring(); } Properties kan fjernes ((IDictionary<string, object>)expando).remove("adresse"); maj 2010 VS 2010 og.net framework

31 DynamicObject System.Dynamic.DynamicObject i System.Core.dll Implementerer IDynamicMetaObjectProvider Kan implementere custom memberhåndtering Eksempler på interessante members TryGetMember, TrySetMember TryGetIndex, TrySetIndex TryInvoke, TryInvokeMember GetDynamicMemberNames Bruges af debuggeren, kan bruges af egen kode maj 2010 VS 2010 og.net framework

32 DynamicObject - eksempel DataRowObject: Indpakning af DataRow med property-tilgang til columns string adresse1 = (string) row["adresse"]; Klassisk DataRow string adresse2 = dynarow.adresse; DynamicObject public class DataRowObject : System.Dynamic.DynamicObject { public DataRowObject(System.Data.DataRow row) { _row = row; } private System.Data.DataRow _row; //... DataRowObject System.Data.DataTable table = CreateTable(); System.Data.DataRow row = table.rows[0]; dynamic dynarow = new DataRowObject(row); Klientkode maj 2010 VS 2010 og.net framework

33 DynamicObject - eksempel Property-tilgang til columns dynarow.adresse = "Paradisæblevej 111"; string dynastring = dynarow.id.tostring() + " - " + dynarow.navn; Implementation: Klientkode override bool TrySetMember(SetMemberBinder binder, object value) { _row[binder.name] = value; return true; } DataRowObject override bool TryGetMember(GetMemberBinder binder, out object result) { result = _row[binder.name]; return true; DataRowObject } binder.name kan naturligvis mappes/modificeres maj 2010 VS 2010 og.net framework

34 DynamicObject - eksempel Indexeret-tilgang til columns dynarow[0] = 117; int id1 = dynarow[0]; Klientkode Implementation: override bool TryGetIndex(GetIndexBinder binder, object[] indexes, out object result) { result = _row[(int)indexes[0]]; return true; DataRowObject } override bool TrySetIndex(SetIndexBinder binder, object[] indexes, object value) { _row[index] = value; return true; DataRowObject } indexes type(r) kan varieres og overloades frit maj 2010 VS 2010 og.net framework

35 DynamicObject - eksempel Opremsning af membernavne Skal implementeres for at få debuggersupport override IEnumerable<string> GetDynamicMemberNames() { var names = new System.Collections.Generic.List<string>(); } foreach (System.Data.DataColumn column in _row.table.columns) { names.add(column.columnname); } return names; DataRowObject IEnumerable<string> names = ((DynamicObject)dynaRow).GetDynamicMemberNames() Klientkode maj 2010 VS 2010 og.net framework

36 Start Page Pin og remove recent projects Kan ændres Defineret i XAML: StartPage.xaml, StartPage.csproj i user\documents\visual Studio 10\StartPages maj 2010 VS 2010 og.net framework

37 Call Hierarchy Viser kaldshierarkiet for en member Kald til og fra memberen samt overstyringer af den Kodevindue Detaljer Hierarki maj 2010 VS 2010 og.net framework

38 Navigate To Søger efter symboler udfra delstrenge Finder ikke lokale variable eller namespaces Hvis søgestrengen indeholder uppercase tegn søges casesensitivt Space fungerer som and Akronymsøgning (f.eks. SU) Shortcut: ctrl+, Dobbeltklik eller OK går til symbolet maj 2010 VS 2010 og.net framework

39 Reference Highlighting Valg af symbol highlighter alle forekomster af symbolet i samme fil Næste forekomst: ctrl+shift+pilned Forrige forekomst: ctrl+shift+pilop maj 2010 VS 2010 og.net framework

40 Generate From Usage Kan generere en stub for en type eller konstruktør udfra en anvendelse Kan allerede generere members med parametererklæringer using System; namespace VS2010_DemoerCs { class FirstClass { private int initialvalue; } } public FirstClass(int initialvalue) { // TODO: Complete member initialization this.initialvalue = initialvalue; } public int Value { get; set; } internal void TheMethod(int newvalue, string parameter) { throw new NotImplementedException(); } maj 2010 VS 2010 og.net framework

41 Completion og suggestion modes Skifter imellem de to modes med ctrl+alt+space Completion mode Suggestion mode I completion mode indsættes den valgte identifier ved et identifier-afsluttende-tastetryk I suggestionmode skal der trykkes på tab eller identifieren skal vælges med pilop/pilned maj 2010 VS 2010 og.net framework

42 Intellisense Intellisense Understøtter delstrengs- og akronymfiltrering Box-selection VS2008 feature Et kode-rektangel (box) kan vælges med alt-selektion VS2010 feature Hvis der tastes/pastes ind i en box selektion, erstatter det indsatte det valgte på hver linje (gentages) En box med en bredde på nul karakterer kan bruges til indsættelse (uden at erstatte eksisterende tekst) maj 2010 VS 2010 og.net framework

43 Diverse nye Visual Studio funktioner Vinduer kan flyttes overalt på desktoppen Også til anden monitor Kodevinduer kan zommes med ctrl+mousewheel References dialogen: Den senest valgte tab vises initielt maj 2010 VS 2010 og.net framework

44 Debugging "Hover over"-quickwatch-tooltips kan pinnes Kan kommenteres og flyttes maj 2010 VS 2010 og.net framework

45 BigInteger og Complex System.Numerics.BigInteger (System.Numerics.dll) Vilkårlig stor integer Mange af de sædvanlige matematiske og bitvise operationer Struct, immutable pas på med performance! Konvertering til og fra bytearrays var number = System.Numerics.BigInteger.Pow(42, 117); byte[] bytes = number.tobytearray(); var newnumber = new System.Numerics.BigInteger(bytes); Pas på med ekstern håndtering af byte arrayet (studér formatet!) System.Numerics.Complex (System.Numerics.dll) maj 2010 VS 2010 og.net framework

46 Tuple System.Tuple (mscorlib.dll) Immutable collection med fast størrelse Kan indeholde forskellige stærkt-typede objekter Create factory-metode standard op til 7 elementer var trio = Tuple.Create<int, int, string>(17, 42, "fjel"); int first = trio.item1; trio = new Tuple<int, int, string>(trio.item1, trio.item2, "fejl"); var trio2 = Tuple.Create(17, 42, "fejl"); bool isfalse = trio == trio2; Mere end 7 elementer via nesting var oktet = Tuple.Create<int, int, int, int, int, int, int, Tuple<string, string>> (1, 2, 3, 4, 5, 6, 7, Tuple.Create<string,string>("eight", "nine")); string isnine = oktet.rest.item1.item2; Typeinferens Reference sammenligning maj 2010 VS 2010 og.net framework

47 Diverse nyheder i frameworket Func og Action delegatetyper med op til 16 parametre Nye filsystem enumereringer: (Directory DirectoryInfo).EnumerateDirectories, (Directory DirectoryInfo).EnumerateFiles, Directory.EnumerateFileSystemEntries, DirectoryInfo.EnumerateFileSystemInfos, File.ReadLines <enum>.hasflag metode og Enum.TryParse BindingFlags binding = BindingFlags.Public BindingFlags.Instance; bool istrue = binding.hasflag(bindingflags.instance); bool isfalse = binding.hasflag(bindingflags.static); System.Reflection.BindingFlags result; bool succeeded = Enum.TryParse<BindingFlags>("Public", out result); bool failed = Enum.TryParse<BindingFlags>("Private", out result); maj 2010 VS 2010 og.net framework

48 SortedSet SortedSet Sorteret collection dubletter ignoreres Almindelige collection members Inkluderer mængdeoperationer ExceptWith, GetViewBetween, IntersectWith, IsProperSubsetOf, IsSubsetOf, IsSupersetOf, Overlaps, RemoveWhere, SetEquals, SymmetricExceptWith, UnionWith, Max, Min var mængde = new SortedSet<string>() { "q", "w", "r", "t", "y" }; mængde.add("q"); SortedSet<string> delmængde = mængde.getviewbetween("q", "t"); var mængde2 = new SortedSet<string>() { "t", "y", "k", "m", "æ" }; mængde.intersectwith(mængde2); int is2 = mængde.count; bool istrue = mængde.ispropersubsetof(mængde2); maj 2010 VS 2010 og.net framework

49 Lazy System.Lazy<T> (mscorlib.dll) Implementerer lazy instansiering var dovendyr = new Lazy<Dyr>(); bool isfalse = dovendyr.isvaluecreated; Dyr dyret = dovendyr.value; MessageBox.Show("Dovendyret hedder nu: " + dyret.navn); bool istrue = dovendyr.isvaluecreated; IsValueCreated Lazy Dyr Value Kan fodres med en instansieringsfunktion var dovendyr = new Lazy<Dyr>(() => new Dyr("Ole Lukøje")); maj 2010 VS 2010 og.net framework

50 Task Parallel Library System.Threading, System.Threading.Tasks Tasks håndterer trådallokeringen Asynkron eksekvering Task<string> task = Task<string>.Factory.StartNew(s => GetString(s), "1"); task.continuewith(t => ShowText(task.Result)); Synkroniseringen af tasks eksempel Task<string> task1 = Task<string>.Factory.StartNew(s => GetString(s), "1"); Task<string> task2 = Task<string>.Factory.StartNew(s => GetString(s), "2"); Task.Factory.ContinueWhenAll(new Task[] { task1, task2 }, tasks => { foreach (Task<string> task in tasks) { ShowText(task.Result); } }); maj 2010 VS 2010 og.net framework

51 Parallel-klassen.Invoke kalder en række operationer parallelt Tasks.Parallel.Invoke(() => Calculate(17), () => Calculate(42));.For definerer et antal gennemløb for hver af hvilke, der parallelt kaldes en operation Tasks.Parallel.For(1, 11, (d) => Calculate(d));.ForEach kalder parallelt en operation for hvert element i sourcen (collection etc.) var doubles = new List<double>() { 17, 42 }; Tasks.Parallel.ForEach<double>(doubles, (d) => Calculate(d)); maj 2010 VS 2010 og.net framework

52 Parallel LINQ (PLINQ) Fungerer tilsvarende LINQ to Objects System.Linq.ParallelEnumerable Members (langt de fleste er extension metoder) Aggregate, All, Any, AsEnumerable, AsOrdered, AsParallel, AsSequential, AsUnordered, Average, Cast, Concat, Contains, Count, DefaultIfEmpty, Distinct, ElementAt, ElementAtOrDefault, Empty, Equals, Except, First, FirstOrDefault, ForAll, GetHashCode, GetType, GroupBy, GroupJoin, Intersect, Join, Last, LastOrDefault, LongCount, Max, Min, OfType, OrderBy, OrderByDescending, Range, Repeat, Reverse, Select, SelectMany, SequenceEqual, Single, SingleOrDefault, Skip, SkipWhile, Sum, Take, TakeWhile, ThenBy, ThenByDescending, ToArray, ToDictionary, ToList, ToLookup, ToString, Union, Where, WithCancellation, WithDegreeOfParallelism, WithExecutionMode, WithMergeOptions, Zip maj 2010 VS 2010 og.net framework

53 Parallel LINQ (PLINQ) Man vælger at eksekvere queries parallelt var numbers = Enumerable.Range(17, 42); var query2 = from number in numbers.asparallel() where IsEven(number) select number; PLINQ bruger som default alle processorer WithDegreeOfParallelism kan begrænse antallet ForAll har tilknyttet en continuation til hvert element string s = ""; var numbers = Enumerable.Range(17, 42); var query = from number in numbers.asparallel() where IsEven(number) select number; query.forall((item) => s+= item.tostring() + " "); maj 2010 VS 2010 og.net framework

54 IntelliTrace UML Modeling Architecture Explorer Logical Class Designer Load Testing UI Test Automation Performance Profiling Code Coverage Database Change Mgmt Database Unit Testing Silverlight Tools SharePoint Development Web Development Generate from Usage New WPF Editor Test and Lab Manager Test Case Management Manual Testing Test Record & Playback Layer Diagram Web Testing Test Impact Analysis Static Code Analysis Code Metrics Database Deployment Test Data Generation Multi-core Development Cloud Development Windows Development Office Development Customizable IDE maj 2010 VS 2010 og.net framework

55 IntelliTrace "Baglæns debugging" under almindelig debugging Debugging i gemte TraceDebugging filer (.tdlog-filer) maj 2010 VS 2010 og.net framework

56 Hvilke yderligere nyheder er der? Visual Studio Team System TFS MEF Code contracts Memorymapped files ClickOnce, WCF og WF ASP.NET WPF Office VS add-ins Silverlight designer Entity Frameworket... samt sikkert en hel masse andet... maj 2010 VS 2010 og.net framework

57 Spørgsmål nyheder, artikler, information,... maj 2010 VS 2010 og.net framework

Overblik over udviklingen af.net frameworket. - et kig på de vigtigste nyheder i de seneste versioner

Overblik over udviklingen af.net frameworket. - et kig på de vigtigste nyheder i de seneste versioner Overblik over udviklingen af.net frameworket - et kig på de vigtigste nyheder i de seneste versioner Captator Tlf: 8620 4242 www.captator.dk Henrik Lykke Nielsen Softwarearkitekt, Microsoft Regional Director

Læs mere

LINQ for Objekter med C#

LINQ for Objekter med C# Denne guide er oprindeligt udgivet på Eksperten.dk LINQ for Objekter med C# LINQ er den store nye teknologi med.net 3.5. Der er i virkeligheden tale om en familie af teknologier som deler et fælles fundament

Læs mere

.NET 4.0 og C# 4.0. Denne artikel beskriver nogle af de nye features i.net 4.0 og C# 4.0. Den forudsætter et vist kendskab til.net og C#.

.NET 4.0 og C# 4.0. Denne artikel beskriver nogle af de nye features i.net 4.0 og C# 4.0. Den forudsætter et vist kendskab til.net og C#. Denne guide er oprindeligt udgivet på Eksperten.dk.NET 4.0 og C# 4.0 Denne artikel beskriver nogle af de nye features i.net 4.0 og C# 4.0. Den forudsætter et vist kendskab til.net og C#. Skrevet den 14.

Læs mere

MapBasic &.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 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 mere

I denne artikel vil vi bruge en User klasse som vi så vil gruppere på forskellige måder.

I 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 mere

SWC eksamens-spørgsmål. Oversigt

SWC 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 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

Dvs. at give dit program muligheden for at loade og bruge plugins som andre har lavet.

Dvs. at give dit program muligheden for at loade og bruge plugins som andre har lavet. Denne guide er oprindeligt udgivet på Eksperten.dk Refleksion med.net Refleksion bruges til at undersøge klasser på runtime tidspunktet. Se hvordan du f.eks. loader en klasse fra en DLL, gennemkigger dens

Læs mere

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

Software 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 mere

METODER ARV KLASSER. Grundlæggende programmering Lektion 5

METODER ARV KLASSER. Grundlæggende programmering Lektion 5 METODER KLASSER ARV Grundlæggende programmering Lektion 5 1 METODER Sekvenser af kode om samme emne 2 REPETITION Række af statements der udfører en handling Mindst én metode der hedder main Forskellen

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

AAU, Programmering i Java Intern skriftlig prøve 18. maj 2007

AAU, Programmering i Java Intern skriftlig prøve 18. maj 2007 AAU, Programmering i Java Intern skriftlig prøve 18. maj 2007 Opgavebesvarelsen skal afleveres som enten en printerudskrift eller som et passende dokument sendt via email til fjj@noea.dk. Besvarelsen skal

Læs mere

Datalogi OB, Efterår 2002 OH er, forelæsning 10/ Klasser og nedarvning

Datalogi OB, Efterår 2002 OH er, forelæsning 10/ Klasser og nedarvning Datalogi OB, Efterår 2002 OH er, forelæsning 10/9-2002 Klasser og nedarvning Hvad er formålet? Typer, generisk kode, typeparameterisering Kritisk kig på, hvordan man gør i Java. Eftermiddagens opgave:

Læs mere

F# - hvorfor, hvordan og til hvad? Rune Ibsen Jyske Bank

F# - hvorfor, hvordan og til hvad? Rune Ibsen Jyske Bank F# - hvorfor, hvordan og til hvad? Rune Ibsen Jyske Bank 03-10-2018 Rune Ibsen Softwareudvikling Seniorkonsulent Mentoring 10 konsulenter F# Programmeringssprog som oversættes til.net Functional-first,

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

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

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

Plugin-arkitektur med.net

Plugin-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 mere

Klasser og nedarvning

Klasser og nedarvning Datalogi C, Efterår 2004 OH er, forelæsning 21/9-2004 Klasser og nedarvning Hvad er formålet? Typer, generisk kode, typeparameterisering Kritisk kig på, hvordan man gør i Java. Opgaven til senere: Generalisere

Læs mere

Abstrakte datatyper C#-version

Abstrakte 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 mere

Programmering for begyndere Lektion 2. Opsamling mm

Programmering for begyndere Lektion 2. Opsamling mm Lektion 2 Opsamling mm God tone Der er indlagt spørge sessioner Lektion 2 - Agenda Programmering for Lidt ændringer til teknikken, herunder hvordan du genser en lektion Lidt generelle tilbagemeldinger

Læs mere

Forelæsning Uge 3 Mandag

Forelæsning Uge 3 Mandag Forelæsning Uge 3 Mandag Niveauer af programbeskrivelser Statiske / dynamiske beskrivelser ArrayList Collection med variabelt antal elementer Der er mange andre Collection typer (se Collection interfacet

Læs mere

Aarhus Universitet, Science and Technology, Computer Science. Exam. Wednesday 27 June 2018, 9:00-11:00

Aarhus Universitet, Science and Technology, Computer Science. Exam. Wednesday 27 June 2018, 9:00-11:00 Page 1/12 Aarhus Universitet, Science and Technology, Computer Science Exam Wednesday 27 June 2018, 9:00-11:00 Allowed aid: None The exam questions are answered on the problem statement that is handed

Læs mere

Klasser og objekter. (Afsnit i manualen)

Klasser og objekter. (Afsnit i manualen) Klasser og objekter (Afsnit 4 + 5 i manualen) Grundbegreber Klasser og objekter beskrivelse oprettelse Attributter og metoder tilstand opførsel Indkapsling afskærmning datarepræsentationsuafhængighed Klasser

Læs mere

Lær Python dag 1 - modul 1

Lær Python dag 1 - modul 1 Lær Python dag 1 - modul 1 Introduktion, basis python Steffen Berg Klenow Jonas Bamse Andersen Syddansk Universitet Indhold 1. Velkommen 2. Programmering i python 3. Typer, variabler og udtryk 1 Velkommen

Læs mere

LØKKER METODER C S HISTORIE. Grundlæggende programmering Lektion 4

LØKKER METODER C S HISTORIE. Grundlæggende programmering Lektion 4 LØKKER METODER C S HISTORIE Grundlæggende programmering Lektion 4 1 LEKTIER UML struktur diagrammer om biler 2 OPERATORER Syntaks til at udføre forskellige beregninger og handlinger Booleans og hvorfor

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#.

.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 mere

VÆR EFFEKTIV SOM SAS PROGRAMMØR MED SAS ENTERPRISE GUIDE 7.12 GEORG MORSING

VÆR EFFEKTIV SOM SAS PROGRAMMØR MED SAS ENTERPRISE GUIDE 7.12 GEORG MORSING VÆR EFFEKTIV SOM SAS PROGRAMMØR MED SAS ENTERPRISE GUIDE 7.12 GEORG MORSING Copyr i g ht 2013, SAS Ins titut e Inc. All rights res er ve d. Livet som SAS-programmør er blevet lettere med SAS Enterprise

Læs mere

Kapitel 1 I gang med C#

Kapitel 1 I gang med C# Kapitel 1 I gang med C# Vi skal starte med at oprette et meget simpelt program, så du kan se hvad der ligger bag et C# projekt. Når du er færdig med dette kapitel vil du have lært: Hvordan du opretter

Læs mere

The Missing LINQ. - og relaterede features. VB version

The Missing LINQ. - og relaterede features. VB version The Missing LINQ - og relaterede features VB version Henrik Lykke Nielsen / Captator www.captator.dk Softwarearkitekt, Microsoft Regional Director for Denmark lykke@captator.dk +45 2237 3311 twitter.com/dothenrik

Læs mere

Microsoft Dynamics CRM 2013

Microsoft Dynamics CRM 2013 Microsoft Dynamics CRM 2013 Dashboard, PowerPivot og PowerView CRM User Group Denmark www.easyconsult.dk Præsentation Henrik Jensen Microsoft Dynamics CRM-arkitekt hj@easyconsult.dk Arbejdet med CRM-systemer

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

Eksamens spørgsmål Software Construction. Objekter. Spørgsmål 1: Januar Giv en beskrivelse af Objekt-begrebet og deres brug

Eksamens spørgsmål Software Construction. Objekter. Spørgsmål 1: Januar Giv en beskrivelse af Objekt-begrebet og deres brug Spørgsmål 1: Objekter Giv en beskrivelse af Objekt-begrebet og deres brug Under eksaminationen forventes du at forklare: Hvad er en type og en variabel? Hvordan erklæres en variabel? Hvad forstås ved en

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

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

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

Fra idé til virkelig med Azure Mobile Services

Fra 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 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

Forelæsning Uge 2 Torsdag

Forelæsning Uge 2 Torsdag Forelæsning Uge 2 Torsdag Java syntax og style guide Sætninger Simple sætninger (assignment, interne og eksterne metodekald) Sammensatte sætninger (blok, selektion, gentagelse) Udtryk og operatorer Brug

Læs mere

Introduction til.net remoting i VB.NET

Introduction 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 mere

University of Southern Denmark Syddansk Universitet. DM502 Forelæsning 4

University 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 mere

BlogReader 1.0.0 Af Jonas F. Jensen.

BlogReader 1.0.0 Af Jonas F. Jensen. BlogReader 1.0.0 Af Jonas F. Jensen. Indholdsfortegnelse Forord.....3 Hvad er BlogReader?......4 RSS, XML og sematic web......4 Klasse struktur i UML......4 Overordnet opbygning......5 UML diagram over

Læs mere

Forelæsning Uge 5 Mandag

Forelæsning Uge 5 Mandag Forelæsning Uge 5 Mandag Algoritmeskabeloner findone, findall, findnoof, findsumof (sidste mandag) findbest Brug af klassen Collections og interfacet Comparable BlueJ s Debugger Nyttig til at inspicere

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

Databaseadgang fra Java

Databaseadgang 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 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

University of Southern Denmark Syddansk Universitet. DM502 Forelæsning 3

University 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 mere

SAS USER FORUM DENMARK 2017 USER FORUM. Rune Nordtorp

SAS USER FORUM DENMARK 2017 USER FORUM. Rune Nordtorp SAS USER FORUM USER FORUM Rune Nordtorp Agenda Logning Audit logning Og hvorfor er det lige pludselig blevet vigtigt Logning i SAS -platformen Ressource Inventory Model Introduktion til opsætning af logning

Læs mere

BACK-END OG DATA: ADMINISTRATION HVAD ER DE NYE MULIGHEDER MED VERSION 7.1? STEFFEN BILLE RANNES, 4. FEBRUAR 2015

BACK-END OG DATA: ADMINISTRATION HVAD ER DE NYE MULIGHEDER MED VERSION 7.1? STEFFEN BILLE RANNES, 4. FEBRUAR 2015 BACK-END OG DATA: ADMINISTRATION HVAD ER DE NYE MULIGHEDER MED VERSION 7.1? STEFFEN BILLE RANNES, 4. FEBRUAR 2015 SAS VISUAL ANALYTICS 7.1 ADMINISTRATOR Mulighed for at udføre handlinger på flere servere

Læs mere

Singleton pattern i C#

Singleton 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 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

VA 7.4 Tips og Tricks. Torben Skov

VA 7.4 Tips og Tricks. Torben Skov VA 7.4 Tips og Tricks Torben Skov Hjælp din bruger Sektion i precision mode Billed har link til info vindue (Dokumentation) Billed med info icon indsat Billede har link til info vindue (Dokumentation)

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

OrCAD Capture TCL IDE med Eclipse

OrCAD Capture TCL IDE med Eclipse OrCAD Capture TCL IDE med Eclipse OrCAD Capture TCL er et script sprog til at lave applikationer til OrCAD Capture. Eclipse er et gratis udviklingsmiljø med debug muligheder. Denne guide hjælper med at

Læs mere

Forelæsning Uge 4 Mandag

Forelæsning Uge 4 Mandag Forelæsning Uge 4 Mandag Algoritmeskabeloner Kan (ved simple tilretningerne) bruges til at implementere metoder, der gennemsøger en arrayliste (eller anden objektsamling) og finder objekter, der opfylder

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

Indhold. Senest opdateret : 30. juli 2010. Side 1 af 5

Indhold. 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 mere

Tidligere gik denne i øvrigt under navnet DLINQ for Database LINQ, og man kan finde masse materiale om emnet under dette navn på Internettet.

Tidligere gik denne i øvrigt under navnet DLINQ for Database LINQ, og man kan finde masse materiale om emnet under dette navn på Internettet. Denne guide er oprindeligt udgivet på Eksperten.dk LINQ for SQL med C# LINQ for SQL er en af de nye teknologier med.net 3.5. Den gør det muligt at skrive (typesikre!) database søgninger direkte i programkoden

Læs mere

Test med NUnit. Denne artikel introducerer NUnit. Den forklarer ideen med NUnit. Og den viser hvordan man konkret bruger det.

Test 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 mere

#AlleKanKode. Lektion 2 - Konstanter og Variabler

#AlleKanKode. Lektion 2 - Konstanter og Variabler #AlleKanKode Lektion 2 - Konstanter og Variabler Disclaimer / Ansvarsfraskrivelse Alt du deler og siger mm bliver optaget. Lad være med at dele privat oplysninger, adgangskoder, kreditkort oplysninger

Læs mere

Specialeforsvar: Fundamentet for et fleksibelt container bibliotek

Specialeforsvar: Fundamentet for et fleksibelt container bibliotek Specialeforsvar: Fundamentet for et fleksibelt container bibliotek Foundations of an adaptable container library Bo Simonsen Datalogisk Institut, Københavns Universitet Denne præsentation, afhandlingen,

Læs mere

Ugeseddel 4 1. marts - 8. marts

Ugeseddel 4 1. marts - 8. marts Ugeseddel 4 1. marts - 8. marts Læs følgende sider i kapitel 6 i lærebogen: s. 233 258 og s. 291 317 (afsnit 6.3 overspringes). Begynd at overveje, hvad afleveringsopgaven skal omhandle. Læs vejledningen,

Læs mere

Forelæsning Uge 3 Mandag

Forelæsning Uge 3 Mandag Forelæsning Uge 3 Mandag ArrayList Collection (samling af objekter) med variabelt antal elementer Der er mange andre Collection typer (se Collection interfacet i JavaDoc) MusicOrganizer projektet Eksempel

Læs mere

Nintex Workflow UK/DK

Nintex Workflow UK/DK Nintex Workflow UK/DK Når Nintex Workflows anvendes i et Dansk sproget SharePoint miljø, er der lidt forskel på hvad de forskellige elementer kaldes, såvel som rækkefølgen på disse. Noget er oversat, noget

Læs mere

class subklasse-navn extends superklasse-navn { } NorwaySpruce har superklassen Spruce, som igen har superklassen Tree.

class subklasse-navn extends superklasse-navn { } NorwaySpruce har superklassen Spruce, som igen har superklassen Tree. Programmering 1999 Forelæsning 11, tirsdag 5. oktober 1999 Oversigt Klasse-hierarkier: superklasser og subklasser Nedarvning Polymorfi Programmering 1999 KVL Side 11-1 Hierarkier En klasse repræsenterer

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

Forelæsning Uge 2 Mandag

Forelæsning Uge 2 Mandag Forelæsning Uge 2 Mandag Sætninger Simple sætninger (assignment, interne og eksterne metodekald) Sammensatte sætninger (blok, selektion, gentagelse) Udtryk og operatorer Java syntax og style guide Afleveringsopgave:

Læs mere

Program Dokumentation PC Software Skrevet af. Gruppen. Version 1.0

Program 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 mere

EG Data Inform. Byggebasen. WCF og webservices. Jens Karsø

EG Data Inform. Byggebasen. WCF og webservices. Jens Karsø EG Data Inform Byggebasen WCF og webservices Jens Karsø 10 Indholdsfortegnelse Byggebasen Services indledning... 2 Målsætning... 2 Valg af teknologier... 3 Kommunikationsmodel for byggebasen... 3 Services.byggebasen.dk...

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

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

DM507 Algoritmer og datastrukturer

DM507 Algoritmer og datastrukturer DM507 Algoritmer og datastrukturer Forår 2016 Projekt, del I Institut for matematik og datalogi Syddansk Universitet 29. februar, 2016 Dette projekt udleveres i tre dele. Hver del har sin deadline, således

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

Installations guide Saxo ERPTrader. Microsoft Dynamics NAV 2009 / 2013 / 2013R2

Installations guide Saxo ERPTrader. Microsoft Dynamics NAV 2009 / 2013 / 2013R2 Installations guide Saxo ERPTrader Microsoft Dynamics NAV 2009 / 2013 / 2013R2 Indhold Introduktion...3 Forudsætninger...3 Software krav...3 Installer MSI pakken...4 Importer Saxo ERPTrader objekterne...5

Læs mere

DAXIF# - Delegate Automated Xrm Installation Framework. Delegate A/S

DAXIF# - Delegate Automated Xrm Installation Framework. Delegate A/S DAXIF# - Delegate Automated Xrm Installation Framework Delegate A/S Agenda Delegate A/S DAXIF# Kun et programmeringssprog Type stærke script (og selvdokumenterende) filer Unit tests afvikles før assembly

Læs mere

DM507 Algoritmer og datastrukturer

DM507 Algoritmer og datastrukturer DM507 Algoritmer og datastrukturer Forår 2018 Projekt, del II Institut for matematik og datalogi Syddansk Universitet 20. marts, 2019 Dette projekt udleveres i tre dele. Hver del har sin deadline, således

Læs mere

Installation og Drift. Aplanner for Windows Systemer Version 8.15.12

Installation 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 mere

ATTRIBUTES MULTITHREADING DYNAMIC PROGRAMMING. Grundlæggende programmering Lektion 11

ATTRIBUTES MULTITHREADING DYNAMIC PROGRAMMING. Grundlæggende programmering Lektion 11 ATTRIBUTES DYNAMIC PROGRAMMING MULTITHREADING Grundlæggende programmering Lektion 11 1 ATTRIBUTES Information om adfærd 2 ATTRIBUTES En attribut er en deklarativ tag, der bruges til at formidle information

Læs mere

Arkitektur principper og design mønstre til realisering af enterprise applikationer baseret på rige domænemodeller (og.net)

Arkitektur principper og design mønstre til realisering af enterprise applikationer baseret på rige domænemodeller (og.net) Arkitektur principper og design mønstre til realisering af enterprise applikationer baseret på rige domænemodeller (og.net) Kim Harding Christensen EOS A/S Margrethepladsen 3 8000 Århus TLF: 8732 8787

Læs mere

MS Visual Studio Basic 2010. En kort vejledning

MS Visual Studio Basic 2010. En kort vejledning Du kan hente programmet gratis her: MS Visual Studio Basic 2010 Express http://www.microsoft.com/visualstudio/eng/downloads#d-2010-express Tryk på Install Now og følg vejledningen. Indholdsfortegnelse

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

Moderne SAS-programmering på webben med SAS Studio. Georg Morsing SAS Institute

Moderne SAS-programmering på webben med SAS Studio. Georg Morsing SAS Institute Moderne SAS-programmering på webben med SAS Studio Georg Morsing SAS Institute SAS-programmering med SAS Display Manager 1985 2015 Den nye SAS program editor i SAS Enterprise Guide August 2010 SAS Enterprise

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

.NET 3.5 og C# 3.0. Denne artikel viser hvordan man kan bruge nogle af de nye features i.net 3.5 og C# 3.0. Det er ikke en komplet oversigt.

.NET 3.5 og C# 3.0. Denne artikel viser hvordan man kan bruge nogle af de nye features i.net 3.5 og C# 3.0. Det er ikke en komplet oversigt. Denne guide er oprindeligt udgivet på Eksperten.dk.NET 3.5 og C# 3.0 Denne artikel viser hvordan man kan bruge nogle af de nye features i.net 3.5 og C# 3.0. Det er ikke en komplet oversigt. Den forudsætter

Læs mere

MsSQL: Basal performance tuning, part 1

MsSQL: Basal performance tuning, part 1 Denne guide er oprindeligt udgivet på Eksperten.dk MsSQL: Basal performance tuning, part 1 Hvordan man skriver "God SQL" for bedre performance. Skrevet den 03. Feb 2009 af trer I kategorien Databaser /

Læs mere

DM507 Algoritmer og datastrukturer

DM507 Algoritmer og datastrukturer DM507 Algoritmer og datastrukturer Forår 2018 Projekt, del II Institut for matematik og datalogi Syddansk Universitet 13. marts, 2018 Dette projekt udleveres i tre dele. Hver del har sin deadline, således

Læs mere

Installation og Drift. Aplanner for Windows Systemer Version 8.15

Installation og Drift. Aplanner for Windows Systemer Version 8.15 Installation og Drift Aplanner for Windows Systemer Version 8.15 Aplanner for Windows løsninger Tekniske forudsætninger Krav vedr. SQL Server SQL Server: SQL Server 2008 Express, SQL Server 2008 R2 eller

Læs mere

Oprettelse af Titelblok i Capture og Capture CIS

Oprettelse af Titelblok i Capture og Capture CIS e-service Titelblok i OrCAD Capture og Capture CIS Side 1 af 11 Oprettelse af Titelblok i Capture og Capture CIS Note skrevet af : Nordcad Systems Technical Support Revision : April 2003, Release 14.2/9.2.3,

Læs mere

Studiepraktik. Thomas Bøgholm Mikkel Hansen Jacob Elefsen

Studiepraktik. Thomas Bøgholm Mikkel Hansen Jacob Elefsen Studiepraktik Thomas Bøgholm boegholm@cs.aau.dk Mikkel Hansen mhan@cs.aau.dk Jacob Elefsen jelefs12@student.aau.dk 1 Studiepraktik -- program Program onsdag 10.00 10.15 Registrering af fremmøde og gennemgang

Læs mere

Speciale. Evaluering af Java til udvikling af indlejrede realtidssystemer ved brug af en eksisterende Java Optimized Processor (JOP)

Speciale. Evaluering af Java til udvikling af indlejrede realtidssystemer ved brug af en eksisterende Java Optimized Processor (JOP) Speciale Evaluering af Java til udvikling af indlejrede realtidssystemer ved brug af en eksisterende Java Optimized Processor (JOP) Speciale efterår 2005 Teknisk Informationsteknologi Jan Lauritzen & Mads

Læs mere

DM507 Algoritmer og datastrukturer

DM507 Algoritmer og datastrukturer DM507 Algoritmer og datastrukturer Forår 2013 Projekt, del I Institut for matematik og datalogi Syddansk Universitet 5. marts, 2013 Dette projekt udleveres i to dele. Hver del har sin deadline, således

Læs mere

Hvad er Objekter - Programmering

Hvad 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 mere

Forelæsning Uge 3 Mandag

Forelæsning Uge 3 Mandag Forelæsning Uge 3 Mandag ArrayList klassen Gør det let at lave en objektsamling (collection) med et variabelt antal elementer Der er mange andre slags objektsamlinger (se Collection interfacet i JavaDoc)

Læs mere

DANMARKS TEKNISKE UNIVERSITET

DANMARKS TEKNISKE UNIVERSITET DANMARKS TEKNISKE UNIVERSITET Skriftlig prøve, 14. december 2018, 4 timer Side 1 af 18 Kursus navn: 02101 Indledende Programmering Kursus : 02101 Tilladte hjælpemidler: Ikke-digitale skriftlige hjælpemidler

Læs mere

Kursusarbejde 3 Grundlæggende Programmering

Kursusarbejde 3 Grundlæggende Programmering Kursusarbejde 3 Grundlæggende Programmering Arne Jørgensen, 300473-2919 klasse dm032-1a 21. november 2003 Indhold 1. Kode 2 1.1. forestillinger.h............................................. 2 1.2. forestillinger.cc.............................................

Læs mere

Polymorfi. Arv (inheritance) Abstrakte klasser, substitutionsprincippet, overriding, statisk og dynamisk type. Coercion

Polymorfi. Arv (inheritance) Abstrakte klasser, substitutionsprincippet, overriding, statisk og dynamisk type. Coercion Polymorfi Arv (inheritance) Abstrakte klasser, substitutionsprincippet, overriding, statisk og dynamisk type Coercion Tvangskonvertering (forfremmelse og begrænsning) Oversigt Abstrakt klasse abstrakt

Læs mere

En Kort Introduktion til Oracle

En Kort Introduktion til Oracle En Kort Introduktion til Oracle Henrik Bulskov 12. februar 2001 bulskov@ruc.dk 1 Start SQL*Plus... 1 1.1 TELNET... 1 1.2 WINDOWS SQL PLUS... 2 2 Kør et SQL-script... 3 3 Hjælp i SQL*Plus... 3 4 Editering

Læs mere

Indholdsfortegnelse PSpice modul 3. Forudsætninger. Forberedelse til øvelser

Indholdsfortegnelse PSpice modul 3. Forudsætninger. Forberedelse til øvelser Indholdsfortegnelse PSpice modul 3 Model Editor, opret diode ud fra model fundet på internettet.... 2 Parametrisk Analyse... 6 Ekstra - Parametrisk analyse på diode parameter... 9 Forudsætninger For at

Læs mere

Kapitel 6 Events i C#

Kapitel 6 Events i C# Kapitel 6 i C# Når vi snakker programmering er en Event når der aktiveres specielt indbygget kode. Der sker en hændelse (event). Man siger at eventet bliver udført. De events vi skal gennemgå i dette kapitel

Læs mere

Klasser og Objekter i Python. Uge 46 Learning Python: kap 15-16, 19-22.

Klasser og Objekter i Python. Uge 46 Learning Python: kap 15-16, 19-22. Klasser og Objekter i Python Uge 46 Learning Python: kap 15-16, 19-22. Klasser og objekter En klasse beskriver en klump af samhørende funktioner og variable En klasse er en beskrivelse. En kage form Klassens

Læs mere