Tech Conference Visual Studio 2015, C#6, .NET4.6 Heikki Raatikainen #TechConfFI 28.-29.5.2015 # TechConfFI Yleistä • Avoimuus Open Source ja tuki yleisesti käytetyille ei-ms työkaluille • Kaikki alustat tuettuna: .NET 5 Core, Universal Apps, Xamarin • Kieli kehittyy ja Roslyn mahdollistaa paremmat työkalut ja kirjastojen tuen • Visual Studio 2015, paljon käyttöä helpottavia piirteitä • .NET 4.6 ei sisällä mitään maailmaa mullistavia uudistuksia 2 28.-29.5.2015 Tech Conference 2015 # TechConfFI .NET 2015 3 28.-29.5.2015 Tech Conference 2015 # TechConfFI .NET Framework 4.6 .NET Framework 4.6 .NET Framework 4 .NET Framework 4.5 .NET Framework 4.5.1 .NET Framework 4.5.2 # TechConfFI . NET Compiler Platform (“Roslyn”) Universal Windows Platform Universal Windows Platform .NET Native highlights # TechConfFI # TechConfFI .NET and Xamarin Share app logic across platforms 100% APIs exposed Native UI Native UI Native UI C# + XIB C# + AXML C# + XAML Xamarin .NET Core # TechConfFI UI: Visual Studio/Xamarin iOS app designer in Visual Studio Android app designer in Visual Studio # TechConfFI Visual Studio 2015 Uusia ominaisuuksia Kevyt versio Code Tech Conference 2015 # TechConfFI Uusia/muuttuneita ominaisuuksia • Kosketusnäyttötuki • • • • skrollaus zoomaus valinta, rivi vasemmasta marginaalista ja sana tuplanapautuksella context-valikko pitkällä painalluksella • Tärkein näppäinyhdistelmä edelleen Ctrl+. • toki lisää toimintoja verrattuna edelliseen versioon 10 28.-29.5.2015 Tech Conference 2015 # TechConfFI Editorista • automaattinen sulkujen lopetus • rivien siirto Alt+nuolinäppäimet • Useimmat Productivity PowerToolsin toiminnoista vakiona mukana 11 28.-29.5.2015 Tech Conference 2015 # TechConfFI Light Bulbs yms • Rename muutettu visuaalisemmaksi ja kätevämmäksi • Editori näyttää harmaalla ’turhia’ osia, esimerkiksi käyttämättömät using-lauseet tai turhat this-tarkenteet • koodimuutokset voidaan tehdä tiedostoon, projektiin tai solutioniin, demo vaikka using-määreillä • korjaustoimintojen herätys Ctrl+. tai koodin maalaus ja sitten Ctrl+. 12 28.-29.5.2015 Tech Conference 2015 # TechConfFI Ikkunointi • Ikkunoiden toiminnallisuus ei juurikaan ole muuttunut • Uutta Window-valikossa Layout –toiminnot joilla saa helposti erikokoisille näytöille tehtyä asetukset • • • • 13 Save Layout Apply Layout Manage Layout Reset Window Layout // tämä on siis se vanha toiminto 28.-29.5.2015 Tech Conference 2015 # TechConfFI Nuget • Nuget Package Manager on kokonaan uusi • selvempi • helpompi • voi valita listalta asennettavan paketin version joka aikaisemmin oli olemassa vain Package Manager Console:n kautta 14 28.-29.5.2015 Tech Conference 2015 # TechConfFI WPF ja XAML Tech Conference 2015 # TechConfFI WPF ja XAML • integraatiota Blendin kanssa parannettu • suorituskykyä ja High DPI-tukea parannettu • XAML: • Peek Definition koodille • Region-määrittely • WPF: • Live Visual Tree • Live Property Editor 16 28.-29.5.2015 Tech Conference 2015 # TechConfFI Debuggaus Tech Conference 2015 # TechConfFI Uusia ominaisuuksia • BreakPointin lisäasetukset helpompi käyttää, sama toiminnallisuus kuin aikaisemmin mutta UI on uusittu • Askellettaessa näyttää kuinka kauan edellisen toiminnon suoritus kesti • Json Visualizer • Immediate-ikkunassa voi käyttää lambda-lausekkeita 18 28.-29.5.2015 Tech Conference 2015 # TechConfFI C# 6 Tech Conference 2015 # TechConfFI C# • • • • • • • • 20 Auto-property, alustus ja readonly Static-luokan using Luokan metodit Lambda-lausekkeina Nameof, refaktorointiturvallinen nimenselvitys Elvis-operaattori (null-conditional operator) String interpolaatio, helppo String.Format Poikkeusfiltterit ja await catch- ja finally –lohkoissa Kokoelmaluokkien alustus 28.-29.5.2015 Tech Conference 2015 # TechConfFI Automaattipropertyt public string Nimi { get; } // read-only property // saa käyttää konstruktorissa // myös alkuarvon asettaminen mahdollista public int Indeksi { get; } = -1; // alustus kuten kentillä // konstruktorissa tehty asetus ajaa alkuarvon yli public string Nimi { get; set; } = ”oletusarvo”; 21 28.-29.5.2015 Tech Conference 2015 # TechConfFI static –luokkien using using static System.Diagnostics.Trace; // luokka, ei nimiavaruus // koodissa: WriteLine(”tulostus OK”); // ei tarvitse Trace-luokkaa alkuun 22 28.-29.5.2015 Tech Conference 2015 # TechConfFI Metodit ja lambda public decimal LaskeHinta() { return Hinta * ALVProsentti; } // nyt kirjoitetaan: public decimal LaskeHinta() => Hinta * ALVProsentti; // ei voi olla lohkosulkuja vain lyhyet metodit! 23 28.-29.5.2015 Tech Conference 2015 # TechConfFI NameOf Tilaus tilaus = new Tilaus(); string nimi = nameof(tilaus); // nimi == tilaus nimi = nameof(Tuote); // nimi == Tuote nimi = nameof(tilaus.ToimitusOsoite); // nimi == ToimitusOsoite 24 28.-29.5.2015 Tech Conference 2015 # TechConfFI Elvis-operaattori (null-conditional operator) //lyhentää koodia missä on null-tarkistuksia string osoite = ””; if (tilaus != null && tilaus.ToimitusOsoite != null && tilaus.ToimitusOsoite.Postitoimipaikka != null) { osoite = tilaus.ToimitusOsoite.Postitoimipaikka.ToUpper(); } // ja sama lyhyemmin: osoite = tilaus?.ToimitusOsoite?.Postitoimipaikka?.ToUpper(); // myös taulukot ja delegaatit Tuote t1 = tuotteet?[0]; 25 28.-29.5.2015 Tech Conference 2015 # TechConfFI string-interpolatio string s = Nimi + ”, Hinta: ” + Hinta.ToString(); s = string.Format(”{0}, Hinta: {1}”, Nimi, Hinta); s = $”{Nimi}, Hinta: {Hinta}”; // tämä lienee näistä helpoin 26 28.-29.5.2015 Tech Conference 2015 # TechConfFI Poikkeuksista try { // koodia… } catch (ArgumentException ex) when (ex.Message.Contains(”demo”)) { //… } finally { await SuljeYhteydetAsync(); } 27 28.-29.5.2015 Tech Conference 2015 # TechConfFI Kokoelmien alustus Dictionary<string, Tuote> tuotteet = new Dictionary<string, Tuote>() { [”eka”] = new Tuote(1), [”toka”] = new Tuote(2), [”viimeinen”] = new Tuote(33) }; 28 28.-29.5.2015 Tech Conference 2015 # TechConfFI .NET 4.6 Tech Conference 2015 # TechConfFI Uusia piirteitä • Universal Apps • Cross-platform Apps • ASP.NET 5, modulaarinen versio jossa sovellukseen otetaan vain tarvittavat ominaisuudet mukaan • MVC 6 == VS2015 + MVC + Web API + Web Pages 30 28.-29.5.2015 Tech Conference 2015 # TechConfFI Muutoksia • ASP.NET, HTTP2-tuki • Windows Forms-kontroleille High DPI –tuki, renderöityvät paremmin tarkoilla näytöillä • Compatibility Switches • Suorituskyky parempi, esim 64-bit JIT kääntäjä ja muistinhallinnan toiminnot 31 28.-29.5.2015 Tech Conference 2015 # TechConfFI Compatibility Switches // käyttävä sovellus: AppContext.SetSwitch("Switch.Apu.UusiOminaisuusPäällä", true); // kirjasto: public string Testi1() { bool uusiToiminto; AppContext.TryGetSwitch(”Switch.Apu.UusiOminaisuusPäällä", out uusiToiminto)); if (uusiToiminto){ return "uusi"; } else { return "vanha"; } } 32 28.-29.5.2015 Tech Conference 2015 Tech Conference Kiitos osallistujille! Heikki Raatikainen heikki.raatikainen@sovelto.fi # TechConfFI 28.-29.5.2015
© Copyright 2024