Tech Conference 28.-29.5.2015. Visual Studio 2015, C#6,.NET4.6. Heikki Raatikainen. #TechConfFI

Samankaltaiset tiedostot
Web Services tietokantaohjelmoinnin perusteet

Asynkroninen ohjelmointi.net 4.5 versiolla

Ohjelmointi 2 / 2008 Välikoe / Pöytätestaa seuraava ohjelma.

Tehtävä 1. Tehtävä 2. Arvosteluperusteet Koherentti selitys Koherentti esimerkki

JReleaser Yksikkötestaus ja JUnit. Mikko Mäkelä

Javan perusteita. Janne Käki

Olio-ohjelmointi Javalla

Kompositio. Mikä komposition on? Kompositio vs. yhteyssuhde Kompositio Javalla Konstruktorit set-ja get-metodit tostring-metodi Pääohjelma

Eclipse 3.2 pikku opas versio 1.0. Esittely Uuden projektin perustaminen Sovelluksen luominen Koodin siistiminen Vinkkejä

C# Windows ohjelmointi perusopas

2010-luvun kansalaistaito: Windows-puhelimen ohjelmointi. Kai Lindgren, Teollinen tuotanto/metropolia

Harjoitus Olkoon olemassa luokat Lintu ja Pelikaani seuraavasti:

Sisältö. 22. Taulukot. Yleistä. Yleistä

Operaattoreiden ylikuormitus. Operaattoreiden kuormitus. Operaattoreiden kuormitus. Operaattoreista. Kuormituksesta

P e d a c o d e ohjelmointikoulutus verkossa

Ohjelmointitaito (ict1td002, 12 op) Kevät Java-ohjelmoinnin alkeita. Tietokoneohjelma. Raine Kauppinen

Yleistä. Nyt käsitellään vain taulukko (array), joka on saman tyyppisten muuttujien eli alkioiden (element) kokoelma.

Microsoft Visual Studio 2005

Sisällys. Yleistä attribuuteista. Näkyvyys luokan sisällä. Tiedonkätkentä. Aksessorit. 4.2

Luokka Murtoluku uudelleen. Kirjoitetaan luokka Murtoluku uudelleen niin, että murtolukujen sieventäminen on mahdollista.

Olion elinikä. Olion luominen. Olion tuhoutuminen. Olion tuhoutuminen. Kissa rontti = null; rontti = new Kissa();

Object Framework - One. OF-1 is a high-productive Multi-UI OpenEdge data driven development framework. Veli-Matti Korhonen

Sisältö. 2. Taulukot. Yleistä. Yleistä

Mikä yhteyssuhde on?

Android ohjelmointi. Mobiiliohjelmointi 2-3T5245

on ohjelmoijan itse tekemä tietotyyppi, joka kuvaa käsitettä

Ohjelmointitaito (ict1td002, 12 op) Kevät Java-ohjelmoinnin alkeita. Tietokoneohjelma. Raine Kauppinen

11. Javan toistorakenteet 11.1

Sisällys. Yleistä attribuuteista. Näkyvyys luokan sisällä ja ulkopuolelta. Attribuuttien arvojen käsittely aksessoreilla. 4.2

Pedacode Pikaopas. Java-kehitysympäristön pystyttäminen

Tietorakenteet. JAVA-OHJELMOINTI Osa 5: Tietorakenteita. Sisällys. Merkkijonot (String) Luokka String. Metodeja (public)

XPages käyttö ja edut Jarkko Pietikäinen toimitusjohtaja, Netwell Oy

C# ja oliot. Santtu Viitanen Niko Mononen Jyri Leinonen

Ohjelmointi 2 / 2010 Välikoe / 26.3

Sisällys. 14. Poikkeukset. Johdanto. Johdanto

Java-kielen perusteet

Harjoitus 3: Flash-komponenttiarkkitehtuuri ( )

1 Tehtävän kuvaus ja analysointi

12. Javan toistorakenteet 12.1

Luokat ja oliot. Ville Sundberg

Taulukot. Jukka Harju, Jukka Juslin

15. Ohjelmoinnin tekniikkaa 15.1

Metodit Arvotyyppi. Metodit Arvotyyppi. Metodit Parametrit. Metodit Parametrit. Metodit Kuormittaminen. Metodit Kuormittaminen. Javan perusteet

Ohjelmassa henkilön etunimi ja sukunimi luetaan kahteen muuttujaan seuraavasti:

Delegaatit ja tapahtumakäsittelijät

JAVA-PERUSTEET. JAVA-OHJELMOINTI 3op A JAVAN PERUSTEET LYHYT KERTAUS JAVAN OMINAISUUKSISTA JAVAN OMINAISUUKSIA. Java vs. C++?

Jypelin käyttöohjeet» Ruutukentän luominen

Sisältö Johdanto. Tiedostojen lukeminen. Tiedostojen kirjoittaminen. 26.2

14. Poikkeukset 14.1

Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op Taulukot & Periytyminen

Java-API, rajapinnat, poikkeukset, UML,...

7. Näytölle tulostaminen 7.1

Sisällys. 11. Javan toistorakenteet. Laskurimuuttujat. Yleistä

Luokan sisällä on lista

14. Poikkeukset 14.1

Metodit. Metodien määrittely. Metodin parametrit ja paluuarvo. Metodien suorittaminen eli kutsuminen. Metodien kuormittaminen

C-ohjelmoinnin peruskurssi. Pasi Sarolahti

JWT 2016 luento 11. to klo Aulikki Hyrskykari. PinniB Aulikki Hyrskykari

Ohjelmointikielet ja -paradigmat 5op. Markus Norrena

List-luokan soveltamista. Listaan lisääminen Listan läpikäynti Listasta etsiminen Listan sisällön muuttaminen Listasta poistaminen Listan kopioiminen

Vertailulauseet. Ehtolausekkeet. Vertailulauseet. Vertailulauseet. if-lauseke. if-lauseke. Javan perusteet 2004

ITKP102 Ohjelmointi 1 (6 op)

Apuja ohjelmointiin» Yleisiä virheitä

9. Periytyminen Javassa 9.1

Testivetoinen ohjelmistokehitys

Koottu lause; { ja } -merkkien väliin kirjoitetut lauseet muodostavat lohkon, jonka sisällä lauseet suoritetaan peräkkäin.

C# ja.net. Juha Järvensivu 2007

Sisällys. 14. Poikkeukset. Johdanto. Johdanto

TW-LTE 4G/3G. USB-modeemi (USB 2.0)

Ohjelmointi 2 / 2011 Välikoe / 25.3

Tässä tehtävässä käsittelet metodeja, listoja sekä alkulukuja (englanniksi prime ).

Mitä poikkeuskäsittely tarkoittaa?

15. Ohjelmoinnin tekniikkaa 15.1

Listarakenne (ArrayList-luokka)

Sisällys. 15. Lohkot. Lohkot. Lohkot

9. Periytyminen Javassa 9.1

Visual Basic -sovelluskehitin Juha Vitikka

Tech Conference OneDrive for Business, kuinka maksimoin tuottavuuden? Jari Kotola Seniorikonsultti, MCT.

20. Javan omat luokat 20.1

ITKP102 Ohjelmointi 1 (6 op)

12. Javan toistorakenteet 12.1

Sisällys. 20. Javan omat luokat. Java API. Pakkaukset. java\lang

1. Mitä tehdään ensiksi?

Lohkot. if (ehto1) { if (ehto2) { lause 1;... lause n; } } else { lause 1;... lause m; } 15.3

Sisällys. 7. Oliot ja viitteet. Olion luominen. Olio Java-kielessä

Ohjelmoinnin jatkokurssi, kurssikoe

5 Näppäimistö. 5.1 Näppäimistön eventit

Taulukot. Taulukon määrittely ja käyttö. Taulukko metodin parametrina. Taulukon sisällön kopiointi toiseen taulukkoon. Taulukon lajittelu

Haaga-Helia/IltaTiko ict2tcd005: Ohjelmiston suunnittelutaito 1/7 Anne Benson. Tällä opintojaksolla käytämme VS:n kolmen kokonaisuuden luomiseen:

Eclipse 3.1 Pikaopas versio 1.0

Sisältö. Johdanto. Tiedostojen lukeminen. Tiedostojen kirjoittaminen. 6.2

Web järjestelmän ohjelmointi Kevät 2012 Hans Nieminen

Sisältö. Johdanto. Tiedostojen lukeminen. Tiedostojen kirjoittaminen. 6.2

public static void main (String [] args)

PLA Mobiiliohjelmointi. Mika Saari

Microsoft Visual J++ ohjelmointiympäristö

Sisällys. Metodien kuormittaminen. Luokkametodit ja -attribuutit. Rakentajat. Metodien ja muun luokan sisällön järjestäminen. 6.2

7. Oliot ja viitteet 7.1

Kieliversiointityökalu Java-ohjelmistoon. Ohje

Lohkot. if (ehto1) { if (ehto2) { lause 1;... lause n; } } else { lause 1;... lause m; } 16.3

Transkriptio:

Tech Conference 28.-29.5.2015 Visual Studio 2015, C#6,.NET4.6 Heikki Raatikainen #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

.NET 2015 3

.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

. NET Compiler Platform ( Roslyn ) # TechConfFI

Universal Windows Platform Universal Windows Platform # TechConfFI.NET Native highlights

.NET and Xamarin Share app logic across platforms Native UI Native UI Native UI C# + XIB C# + AXML C# + XAML 100% APIs exposed Xamarin.NET Core

UI: Visual Studio/Xamarin # TechConfFI ios app designer in Visual Studio Android app designer in Visual Studio

Visual Studio 2015 Uusia ominaisuuksia Kevyt versio Code Tech Conference 2015

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

Editorista automaattinen sulkujen lopetus rivien siirto Alt+nuolinäppäimet Useimmat Productivity PowerToolsin toiminnoista vakiona mukana 11

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

Ikkunointi Ikkunoiden toiminnallisuus ei juurikaan ole muuttunut Uutta Window-valikossa Layout toiminnot joilla saa helposti erikokoisille näytöille tehtyä asetukset Save Layout Apply Layout Manage Layout Reset Window Layout // tämä on siis se vanha toiminto 13

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

WPF ja XAML Tech Conference 2015

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

Debuggaus Tech Conference 2015

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

C# 6 Tech Conference 2015

C# 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 20

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

static luokkien using using static System.Diagnostics.Trace; // luokka, ei nimiavaruus // koodissa: WriteLine( tulostus OK ); // ei tarvitse Trace-luokkaa alkuun 22

Metodit ja lambda public decimal LaskeHinta() { } return Hinta * ALVProsentti; // nyt kirjoitetaan: public decimal LaskeHinta() => Hinta * ALVProsentti; // ei voi olla lohkosulkuja vain lyhyet metodit! 23

NameOf Tilaus tilaus = new Tilaus(); string nimi = nameof(tilaus); // nimi == tilaus nimi = nameof(tuote); // nimi == Tuote nimi = nameof(tilaus.toimitusosoite); // nimi == ToimitusOsoite 24

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

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

Poikkeuksista try { // koodia } catch (ArgumentException ex) when (ex.message.contains( demo )) { // } finally { await SuljeYhteydetAsync(); } 27

Kokoelmien alustus Dictionary<string, Tuote> tuotteet = new Dictionary<string, Tuote>() { [ eka ] = new Tuote(1), [ toka ] = new Tuote(2), [ viimeinen ] = new Tuote(33) }; 28

.NET 4.6 Tech Conference 2015

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

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

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

Tech Conference 28.-29.5.2015 Kiitos osallistujille! Heikki Raatikainen heikki.raatikainen@sovelto.fi # TechConfFI