Modernit sovellukset ja asynkronisuus Heikki Raatikainen
|
|
- Pasi Katajakoski
- 8 vuotta sitten
- Katselukertoja:
Transkriptio
1 1 Modernit sovellukset ja asynkronisuus Heikki Raatikainen Miksi asynkronisuutta? Käyttöliittymät (sekä web että client) Käyttöliittymän pitäminen 'hengissä' Näytön päivitys taustalla Suorituskyvyn parantaminen Moniytimisten prosessorien tehokkaampi käyttö Yksi säie yksi ydin käytössä Logiikka pilkottu pienempiin osiin eri säikeille voidaan ajaa rinnan eri ytimillä 2
2 2 Kosketusnäytöt uudet haasteet koodaajalle Kosketusnäytössä voidaan painonappia painaa, valita listasta, asettaa focus haluttuun kenttään jne aivan kuten missä tahansa muussakin näyttötyypissä Mutta: kosketusnäytössä olevan sovelluksen on reagoitava välittömästi ilman mitään viiveitä jokaiseen käyttäjän toimintoon Yhtään pitkäkestoista toimintoa ei voi tehdä synkronisesti eli sillä perinteisellä tavalla tai sovellus on käytännössä käyttökelvoton käyttöliittymäkoodi muuttuu ja ohjelmoijalla ei ole muuta vaihtoehtoa kuin opetella asynkroninen koodaus ja kaikki sen vaatimat asiat 3 Web sovelluksen nopeudella on väliä Lähde: Amazon: 100 ms of extra load time caused a 1% drop in sales (source: Greg Linden, Amazon). Google: 500 ms of extra load time caused 20% fewer searches (source: Marrissa Mayer, Google). Yahoo!: 400 ms of extra load time caused a 5 9% increase in the number of people who clicked back before the page even loaded (source: Nicole Sullivan, Yahoo!). Siis sekä client- että server-koodi on optimoitava suorituskyvyn suhteen Client: JavaScript ja Ajax 4
3 3 JavaScript ja rinnakkaisuus Selaimien JavaScript on ollut yksisäikeistä rinnakkaisuus on pitänyt tehdä Timerkäsitteen avulla Toimii kaikilla selaimilla settimeout(haeuutinen, 1000); HTML5: säikeistys voidaan tehdä Web Workereillä var hakutoiminto = new Worker('haku.js'); function hae(query) { hakutoiminto.postmessage(query); 5 Perinteinen UI 'ongelma' Käynnistä toiminto, mahdollisesti keskeytä (haku tai prosessointi) täysin ratkaistavissa, vaatii rinnakkaisuutta ja sen ymmärtämistä 6
4 4 Mikä rinnakkaisuudessa on sitten vaikeaa? Ei pitäisi olla mitään vaikeaa, mutta käytäntö on osoittanut toista Teknisesti esimerkiksi.net kirjastossa ja kielissä on varmasti kaikki tarvittavat osat rinnakkaisuuden toteuttamiseen ja hallintaan Merkittävää on ymmärtää miksi rinnakkaisuutta (asynkronisia) toimintoja tarvitaan ja mitä muita vaatimuksia tulee esille (mm.): säie-turvallinen datan käsittely, synkronointimekanismit käyttöliittymän päivitys vain ja ainoastaan käyttöliittymän tehneeltä säikeeltä Saman datan käsittely eri säikeistä pitää suojata, muuten sovellus voi käyttäytyä epämääräisesti Toimintojen keskinäinen ajastaminen, tarvitaanko? Debuggaaminen on haasteellista 7 Historiasta nykyisyyteen säie (.NET ja Win32API) FX1.1 BackgroundWorker-komponentti Lambda-lausekkeet, Extension-metodit delegaatin Begin-/EndInvoke ThreadPool System.Threading.Timer class FX3.5 Synkronointiluokat: Mutex, Monitor, Semaphore WaitEventHandle, prosessoreiden hyödyntäminen, uudet ohjelmointimallit (Task) Parallel.Invoke, For ja ForEach FX4 CancellationToken Task, Task.Factory Barrier, CountdownEvent, Parallel LINQ SemaphoreSlim, SpinLock, SpinWait F# ConcurrentCollections Asynkroninen UI async ja await (C#5) FX4.5 FX2 8
5 5 Rinnakkaisuuden tekniikoita Thread Käynnistäminen delegaatin kautta: BeginInvoke/EndInvoke BackgroundWorker Parallel.For, Parallel.ForEach ja Parallel.Invoke Task PLINQ async ja await (C#5 ja Task-luokka) Patternit: Asynchronous Programming Model (APM) Event-based Asynchronous Pattern (EAP) Task-based Asynchronous Pattern (TAP) ja tietysti kaikki synkronointi- ja sarjallistamismekanismit 9 Patternien erot Synkroninen APM EAP TAP public class MyClass { public int Read(byte [] buffer, int offset, int count); public class MyClass { public IAsyncResult BeginRead(byte [] buffer, int offset, int count, AsyncCallback callback, object state); public int EndRead(IAsyncResult asyncresult); public class MyClass { public void ReadAsync(byte [] buffer, int offset, int count); public event ReadCompletedEventHandler ReadCompleted; public class MyClass { public Task<int> ReadAsync(byte [] buffer, int offset, int count); 10
6 6 Client-käyttöliittymät WinForms käyttöliittymän päivitys vain sillä säikeellä joka on luonut kontrollin, taustasäikeeltä siirretään suorituskonteksti oikealle säikeelle Invoke-metodilla WPF-sovelluksessa sama rajoite, mutta päivityksessä käytetään Dispacher-luokkaa, monipuolisempi kuin WinFormsin tekniikka private void taustahommadispatcher() { Action<int> lisäälistaan = j => listbox1.items.add(j); for (int i = 0; i < 10; i++) { Dispatcher.Invoke(lisääListaan, DispatcherPriority.Normal, i); 11 BackgroundWorker komponentti Yksinkertaistaa taustasäikeiden käyttöä tuli versioon FX2 helpottamaan 'vaikeaa' rinnakkaisuuden toteuttamista RunWorkerAsync metodi käynnistää toiminnan Toimintologiikka koodataan DoWork tapahtumaan ProgressChanged ja RunWorkerCompleted tapahtumat suorittuvat "pääsäikeessä" Voi käyttää kaikissa sovellustyypeissä, esim. Service:ssä ja konsolisovelluksessa yhtä hyvin kuin Windows-sovelluksessa (WinForms ja WPF) tai Web-sovelluksessakin 12
7 7 Teknisiä rajoitteita ja ongelmia Säikeet eivät ole ilmaisia, niitä käytettäessä tulee Context switch:ejä jotka kuluttavat resursseja ja moniytimisten prosessorien tehokas käyttäminen on haastavaa ThreadPool on ollut tehokkaampi tapa, mutta käynnistetyn metodin tilaa on mahdotonta hallita/valvoa, esim ei tietoa milloin metodi on päättynyt: var mre = new ManualResetEvent(false); ThreadPool.QueueUserWorkItem( (o) => { PitkäHomma(); mre.set();); mre.waitone(); 13 Task Parallel Library PLINQ LINQ-kyselyn suorittaminen pienissä osissa rinnakkain (.AsParallel()) Parallel Helppo tapa käynnistää metodeja rinnakkain suoritukseen ja odottaa niiden päättymistä Parallel.Invoke, Parallel.For ja Parallel.ForEach, näiden tehokas hyödyntäminen edellyttää että rinnakkain suoritettavilla toiminnoilla ei ole keskinäisiä riippuvuuksia Jos on, niin rinnakkaisuuden määrä pienenee ja hyödyt jäävät vähäisemmiksi Task Rinnakkaisuuden merkittävin käsite.net4:stä lähtien Ajatusmallimuutos: Task on enemmän looginen käsite kuin tekniikka.net tarjoaa paljon asynkronisia palveluita jotka perustuvat Task-käsitteeseen Toimintojen keskeytys: CancellationToken ja CancellationTokenSource 14
8 8 Parallel LINQ LINQ-kyselyiden suorittaminen rinnakkain, voidaan määritellä monellako prosessorilla/ytimellä suoritetaan samaan aikaan automaattisesti kaikki kyselyt eivät toimi rinnakkain saattaa olla riippuvuuksia tai rajoituksia oletus sama kuin aikaisemmin yhteensopivuus var q = from p in people.asparallel() where p.name == queryinfo.name && p.state == queryinfo.state && p.year >= yearstart && p.year <= yearend orderby p.year ascending select p; 15 Parallel-luokka Parallel.Invoke rinnakkaisten toimintojen käynnistys, toiminnoilla ei sivuvaikutuksia toistensa toimintoihin Parallel.For saman metodin käynnistäminen useita kertoja rinnakkain private void button4_click(object sender, EventArgs e) { Action toiminto = () => Trace.WriteLine("toimii"); Parallel.Invoke(toiminto, ()=>homma2(42), laskentaa); private void homma2(int indeksi) { // koodia private void laskentaa() { // koodia 16
9 9 System.Threading.Tasks.Task class Task-luokka ja Task.Factory.StartNew mahdollistavat ns. tehtävien (ovat siis metodeja) käynnistämisen Parallel.Invoke:n tavoin, mutta Task-käsittelyssä ohjelmoijalla on parempi kontrolli mitä tehdään ja mitä tapahtuu suorituksen aikana async ja await käyttävät myös Task:ia Action hello = () => { Console.Write("Hello"); ; Action world = () => { Console.Write("World"); ; //Parallel.Invoke(hello, world); Task taskhello = Task.Factory.StartNew(hello); Task taskworld = Task.Factory.StartNew(world); Task.WaitAll(taskHello, taskworld); 17 Task - käynnistys Task sisältää propertynä TaskFactory-luokan, sen static-metodeilla käynnistetään taskit Käynnistyksessä parametrillä ohjataan toimintaa, esimerkiksi voidaan kertoa skedulerille että metodi kestää pitkään ja joutuu odottamaan välillä tai voidaan välittää CancellationToken Käynnistyksessä paluuarvona Task-luokka Sekä Action että Func delegaatit (siis paluuarvo on ok) Task.Factory.StartNew( () => Laskentaa(), TaskCreationOptions.LongRunning); var t = Task<string>.Factory.StartNew(() => 42.ToString()); t.wait(); this.title = t.result; 18
10 10 Tehtävien riippuvuudet toisista Miten seuraavan kaavion mukaiset toiminnot saadaan suoritettu rinnakkain? Nuolet osoittavat keskinäiset riippuvuudet eli metodien suoritysjärjestyksen 19 Task.Factory Parallel.Invoke ei yksin riitä, edellisen sivun esimerkki joko säikeillä tai monella Parallel.Invoke:lla tai Taskeilla: var f = Task.Factory; var build1 = f.startnew(() => Build(project1)); var build2 = f.startnew(() => Build(project2)); var build3 = f.startnew(() => Build(project3)); var build4 = f.continuewhenall(new[] { build1, _ => Build(project4)); var build5 = f.continuewhenall(new[] { build1, build2, build3, _ => Build(project5)); var build6 = f.continuewhenall(new[] { build3, build4, _ => Build(project6)); var build7 = f.continuewhenall(new[] { build5, build6, _ => Build(project7)); var build8 = f.continuewhenall(new[] { build5, _ => Build(project8)); Task.WaitAll(build1, build2, build3, build4, build5, build6, build7, build8); 20
11 11 Task odotus ja jatko Task:ia voidaan odottaa Wait-metodilla Monta taskia: odotetaan kaikkia tai ensimmäistä valmistunutta Jatkumo: kun taski on valmis niin saadaan automaattisesti käynnistymään seuraava metodi (task) var t = Task<string>.Factory.StartNew(() => 42.ToString()); t.continuewith(s=>trace.writeline("valmis", s.result)); var task1 = Task.Factory.StartNew(() => Lue()); var task2 = Task.Factory.StartNew(() => Laske()); var task3 = Task.Factory.StartNew(() => JokuMuu()); Task.WaitAll(task1, task2, task3); // tai Task.WaitAny(task1, task2, task3); Task.Factory.StartNew(() =>{ Thread.Sleep(3000);return "vastaus on 42";).ContinueWith(t => Console.WriteLine(t.Result)).ContinueWith(t => Console.WriteLine("Valmista on!")); 21 Task ja UI Task voi valita mitä skeduleria se käyttää, voidaan hyödyntää UI-ohjelmoinnossa (async/await vielä helpompi ratkaisu) //WPF-koodia: private void B_Click(object sender, RoutedEventArgs e) { button1.isenabled = false; // haetaan UI-säikeen konteksti käyttöön: var uischeduler = TaskScheduler.FromCurrentSynchronizationContext(); var t = Task<int>.Factory.StartNew(() => slowfunc(1, 2)); t.continuewith(x => { label1.content = "tulos: " + t.result.tostring(); button1.isenabled = true;, uischeduler ); 22
12 12 C#5: async ja await C#5 sisältää kieleen lisätyn piirteen, jolla voidaan toteuttaa entistä helpommin asynkronisia toimintoja. Käytännössä saadaan ajettua yhdellä säikeellä eri metodeja vuorotellen. async: esitellään metodi, jonka koodissa on await:lla tehtäviä asynkronisia metodikutsuja. Kääntäjä tuottaa koodia, joka odottaa await-metodin paluuta mutta sillä välin suorittaa async-metodin kutsujaa await: luovutetaan suoritusvuoro jollekin toiselle suorituskelpoiselle metodille 23 async (ja UI) esimerkki private async void B_Click(object sender, RoutedEventArgs e){ Title = "Haetaan uutisotsikoita..."; Otsikot = new ObservableCollection<string>( await haeotsikot ()); // B Click:n kutsuja pääsee suoritukseen sanomajonosta käsitellään // seuraavat sanomat käyttöliittymä pysyy toiminnassa // ja kun haeotsikot on valmis koodin suoritus jatkuu tästä Title = "Löytyi " + Otsikot.Count + " kpl otsikoita"; private Task<List<string>> haeotsikot () { Task<List<string>> t = new Task<List<string>>(() => { return uutispalvelu.haeotsikot(); ); t.start(); return t; 24
13 13 Web-sovellukset ja Taskit Jo.NET 1.0 sisälsi IHttpAsyncHandler rajapinnan ASP.NET MVC 2, 3, 4: AsyncController-luokka Asynkronisen kontrollerin tekeminen on helppoa async/await:in avulla Public class UutisiaController: AsyncController { public async Task<ActionResult> UutisetAsync(string syotenimi) { HakuToiminto.DataPalvelu data = new HakuToiminto.DataPalvelu(); return View("Uutiset", await syotteenuutiset(syotenimi)); // 25 AsyncController aikaisemmin public class HomeController : AsyncController { public void LongRunningActionAsync() { AsyncManager.OutstandingOperations.Increment(); Task.Factory.StartNew(() => DoLengthyOperation()); private void DoLengthyOperation() { Thread.Sleep(5000); AsyncManager.Parameters["message"] = "hello world"; AsyncManager.OutstandingOperations.Decrement(); public ActionResult LongRunningActionCompleted(string message) { return View(); 26
14 14 Milloin AsyncController? Jos Action-metodit ovat yksinkertaisia ja/tai CPU-intensiivisiä, käytä synkronista kontrolleria tai koodia ei haluta monimutkaistaa lainkaan HTTP-pyynnön suoritetaan ThreadPoolista otetun säikeen kontekstissa Asynkroniset kontrollerit/actionit mahdollistavat monen pyynnön yhtäaikaisen suorituksen samalla säikeellä parempi suorituskyky 27 Async ja Framework Task/Async toimintoja valmiina: Toiminto Web-toiminnot Tiedosto-IO Kuvien käsittely WCF Luokka käyttää async-metodeja HttpClient, SyndicationClient, Socket StorageFile, StreamWriter, StreamReader, XmlReader MediaCapture, BitmapEncoder, BitmapDecoder Synchronous and Asynchronous Operations try { string uri = " string body = await client.getstringasync(uri); Console.WriteLine(body); catch (HttpRequestException ex) { Console.WriteLine("Virhe: {0", ex.message); 28
15 15 Task ja.net Task on merkittävä koska sitä käyttää varsin moni luokka/metodi Muita vaihtoehtoja on mm. Reactive Extensions (RX) The Reactive Extensions (Rx)......is a library to compose asynchronous and event-based programs using observable collections and LINQ-style query operators. 29 Synkronointi Muista huolehtia siitä että vain yksi säie/taski käsittelee kerrallaan mitä tahansa tietorakennetta Jopa kokonaislukumuuttujan käsittely täytyy tehdä oikein rinnakkaisessa koodissa Synkronointiluokkia on runsaasti sekä prosessien väliseen synkronointiin että prosessin sisällä eri säikeiden synkronointiin 30
16 16 System.Collections.Concurrent Säieturvalliset kokoelmaluokat, esim: ConcurrentBag<T> ConcurrentDictionary<TKey, TValue> ConcurrentQueue<T> ConcurrentStack<T> ConcurrentList<T> puuttuu koska sen toteuttaminen on säieturvallisesti erittäin vaikeaa Ohjelmoijalta jää pois säikeiden ja taskien välinen synkronointi kokoelmaluokkien käytössä ConcurrentDictionary<int, string> cd = new ConcurrentDictionary<int, string>(); cd.addorupdate(1, "eka", (j, k) => k + j.tostring()); bool ok = cd.tryadd(2, "kakkonen"); string s = cd[1]; ok = cd.trygetvalue(1, out s); 31 Windows 8 ja WinRT Windows 8 sisältää kaksi puolta: perinteinen UI ja Win32API kosketusnäytölle optimoitu WINRT WinRT:ssä kaikki mahdollisesti pitkäkestoiset toiminnot ovat asynkronisia joten rinnakkaisuuteen liittyvät asiat on pakko osata ja käyttää WinRT-sovelluksissa C#-koodaajan kannalta async/await samanlaista private async void Button_Click(object sender, RoutedEventArgs e) { SyndicationClient client = new SyndicationClient(); client.bypasscacheonretrieve = true; Uri feeduri = new Uri(" feed = await client.retrievefeedasync(feeduri); feeddata feeddata = new feeddata(); items feeditem = null; foreach (SyndicationItem item in feed.items) //... 32
17 17 Debuggerin apuvälineitä Debuggerin ikkunat: Concurrency Visualizer (Analyze-valikossa) analyysi suorituksen rinnakkaisuudesta 33.NET-koodarin pakolliset taidot Generics-määrittelyt Extension-metodit Lambda-lausekkeet ja delegaatit, liittyvät kaikkeen asynkroniseen käsittelyyn Task-käsite async/await Synkronointimekanismit Tarvitaan sekä tekninen osaaminen että ymmärrys miksi ja miten asioita pitää tehdä 34
18 18 Aihealueen kursseja Soveltossa Essentials of Developing Windows Store Apps Using C#, 3 pv C# ja.net Framework -ohjelmointi, 4pv ASP.NET MVC, 3pv Thank you for coming! Feedback can be given via mobile or laptop through techdays.fi seminar schedule Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentations. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION. #td2013fi
19 19 Q&A t
Asynkroninen ohjelmointi.net 4.5 versiolla
Asynkroninen ohjelmointi.net 4.5 versiolla Jari Kallonen Software Specialist at Tieturi Oy Régis Laurent Director of Operations, Global Knowledge Competencies include: Gold Learning Silver System Management
LisätiedotWindows Phone 7.5 erilainen ja fiksu älypuhelin. Vesa-Matti Paananen Liiketoimintajohtaja, Windows Phone Microsoft Oy vesku@microsoft.
Windows Phone 7.5 erilainen ja fiksu älypuhelin Vesa-Matti Paananen Liiketoimintajohtaja, Windows Phone Microsoft Oy vesku@microsoft.com Agenda 29.11.2011 Microsoftin strategia pähkinän kuoressa Kuluttajat
LisätiedotOffice 2013 ja SQL Server 2012 SP1 uudet BI toiminnallisuudet Marko Somppi/Invenco Oy
t Office 2013 ja SQL Server 2012 SP1 uudet BI toiminnallisuudet Marko Somppi/Invenco Oy Agenda 1. Office Excel 2013 2. SharePoint 2013 3. SQL Server 2012 SP1 4. SharePoint 2013 BI-arkkitehtuuri 5. Kunta-analyysi
LisätiedotMalleja verkostojen rakentamisesta
Tieke Tietoyhteiskunnan kehittämiskeskus ry Malleja verkostojen rakentamisesta Antti Larsio, teknologiajohtaja Esityksen sisältö Pelikenttä Win-Win-Win Ansaintalogiikka Verkostot Pelikenttä YHTEISKUNTAJÄRJESTELMÄ
LisätiedotSQL SERVER 2012 PARALLEL DATA WAREHOUSE APPLIANCE
SQL SERVER 2012 PARALLEL DATA WAREHOUSE APPLIANCE Toukokuu, 2013 Pekka Pykäläinen Tuote- ja ratkaisupäällikkö Application Platform Microsoft HYÖDYNNÄ KAIKKI KÄYTETTÄVISSÄ OLEVA TIETO NEW WORLD OF DATA
LisätiedotKuluttajapalvelun rakentaminen. Omegawave Mikko Heilimo
t Kuluttajapalvelun rakentaminen Omegawave Mikko Heilimo Agenda Omegawave lyhyesti Régis Laurent Director of Operations, Global Knowledge Competencies include: Gold Learning Silver System Management Mitä
LisätiedotVi V nk n kej e ä Wi W nd n o d w o s 7: 7 n : käy ä tttö t ö ö n ö Etunimi Sukunimi
Vinkkejä Windows 7:n käyttöön Etunimi Sukunimi Uudet tuulet, uudet taustakuvat Microsoftilla on ollut tapana julkaista uusia taustakuvia uuden Windows-version mukana. Maisemavalokuvat ovat olleet Windowsin
LisätiedotKonesali ilman rajoja Kongressi A 5.3.2013
Konesali ilman rajoja Kongressi A 5.3.2013 t SC Orchestrator 2012 SP1 Harri Puupponen 5.3.2013 t 2012 Microsoft Corporation. All rights reserved. Sisältö Yleistä Arkkitehtuuri Uudet ominaisuudet Demoja
LisätiedotLuottamuksellinen viestintä. Kimmo Bergius Tietoturvajohtaja Microsoft Oy kimmo.bergius@microsoft.com
Luottamuksellinen viestintä Kimmo Bergius Tietoturvajohtaja Microsoft Oy kimmo.bergius@microsoft.com Joustava ja luotettava Jatkuva käytettävyys Yksinkertaistettu hallinta Joustava käyttöönotto Käytettävyys
LisätiedotTech Conference 28.-29.5.2015. Visual Studio 2015, C#6,.NET4.6. Heikki Raatikainen. #TechConfFI
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
LisätiedotRinnakkaisuus (.NET) Juha Järvensivu 2007
Rinnakkaisuus (.NET) Juha Järvensivu juha.jarvensivu@tut.fi 2007 Sisällys Rinnakkaisuus ja käyttöliittymäohjelmointi GUI-thread Asynkroninen delegaatti System.Timers.Timer Backgroundworker Responsive GUI
LisätiedotOffice 2013 - käyttöönotto Heikki Bergius heikki.bergius@sovelto.fi
Office 2013 - käyttöönotto Heikki Bergius heikki.bergius@sovelto.fi Sisältö 2 Office 2013 asennusvaihtoehdot Perusasennus Click-to-Run Office On Demand Asennuksissa huomioitavia asioita Office-asennus
LisätiedotLisäarvoa liiketoimintaan
Lisäarvoa liiketoimintaan Ari Suominen, Tuote- ja ratkaisupäällikkö Tom Toivonen, Liiketoimintajohtaja Microsoft Oy Microsoft Lync Server 2010 Tervetuloa julkistustilaisuuteen Microsoft Lync Server 2010
LisätiedotJuha Karppinen juha.karppinen@microsoft.com liiketoimintajohta palvelinohjelmistot Microsoft Oy. Millaisiin ratkaisuihin pilvipalvelut soveltuvat?
Juha Karppinen juha.karppinen@microsoft.com liiketoimintajohta palvelinohjelmistot Microsoft Oy Millaisiin ratkaisuihin pilvipalvelut soveltuvat? Esityksen sisältö Minkä tyyppisiä pilvipalveluita on tarjolla
LisätiedotKustannustehokas ohjelmistopohjainen puhe- ja puhelinviestintä
Kustannustehokas ohjelmistopohjainen puhe- ja puhelinviestintä Ari Auvinen, Teknologia-asiantuntija, Microsoft Oy Jani Brander, Teknologia-asiantuntija, Microsoft Oy Matka työnteon tulevaisuuteen Asiantuntijaorganisaatiomallit
LisätiedotConcurrency - Rinnakkaisuus. Group: 9 Joni Laine Juho Vähätalo
Concurrency - Rinnakkaisuus Group: 9 Joni Laine Juho Vähätalo Sisällysluettelo 1. Johdanto... 3 2. C++ thread... 4 3. Python multiprocessing... 6 4. Java ExecutorService... 8 5. Yhteenveto... 9 6. Lähteet...
LisätiedotTapahtumapohjainen ohjelmointi. Juha Järvensivu juha.jarvensivu@tut.fi 2007
Tapahtumapohjainen ohjelmointi Juha Järvensivu juha.jarvensivu@tut.fi 2007 Sisältö Tapahtumapohjainen ohjelmointi Käyttöliittymän rakenne Pääikkuna (top-level window) Lapsi-ikkuna (child window) Dialogit
LisätiedotIntel Threading Building Blocks
Intel Threading Building Blocks Markku Vajaranta Esko Pekkarinen TBB Pähkinänkuoressa C++ luokkamallinen rinnakkaisuus Abstrahoi rinnakkaisuutta korkean tason tehtävät (tasks) ja niiden skedulointi suuri
LisätiedotWeb Services tietokantaohjelmoinnin perusteet
ASP.NET Web Services Web Services tietokantaohjelmoinnin 2 (22) Sisällys Harjoitus 1: Tietokannat ja Web Services... 3 Harjoitus 2: Windows Client... 10 Harjoitus 3: Datan päivitys TableAdapterin avulla...
LisätiedotGraafisen käyttöliittymän ohjelmointi
TIE-11300 Tietotekniikan vaihtuva-alainen kurssi Graafisen käyttöliittymän ohjelmointi Luento 2 Tapahtumapohjainen ohjelmointi Juha-Matti Vanhatupa Sisältö Tapahtumapohjainen ohjelmointi Tapahtumakuuntelijoiden
LisätiedotAJAX-konsepti AJAX. Asynkronisuus. Nykyisten web-ohjelmien ongelmia. Asynchronous JavaScript And XML
AJAX-konsepti AJAX Asynchronous JavaScript And XML Viimeisin muoti-ilmiö web-ohjelmoinissa, termi Ajax tuli käyttöön vuoden 2005 aikana Joukko teknologioita, joiden avulla voidaan toteuttaa uudenlaisen
LisätiedotOlet vastuussa osaamisestasi
Olet vastuussa osaamisestasi Ohjelmistoammattilaisuuden uudet haasteet Timo Vehmaro 02-12-2015 1 Nokia 2015 Mitä osaamista tulevaisuudessa tarvitaan? Vahva perusosaaminen on kaiken perusta Implementaatio
LisätiedotYhdistetty viestintä - the next generation of communications. Harri Henell, Nokia Jorma Bergius, Microsoft Antti Kiviniemi, Microsoft
Yhdistetty viestintä - the next generation of communications Harri Henell, Nokia Jorma Bergius, Microsoft Antti Kiviniemi, Microsoft Agenda Office 365:n uudet toiminnot Exchange Onlinen näkökulmasta Office
LisätiedotRINNAKKAINEN OHJELMOINTI A,
RINNAKKAINEN OHJELMOINTI 815301A, 18.6.2005 1. Vastaa lyhyesti (2p kustakin): a) Mitkä ovat rinnakkaisen ohjelman oikeellisuuskriteerit? b) Mitä tarkoittaa laiska säikeen luominen? c) Mitä ovat kohtaaminen
LisätiedotDelegaatit ja tapahtumakäsittelijät
14 Delegaatit ja tapahtumakäsittelijät Toinen käyttökelpoinen keksintö C#-kielessä ovat delegaatit. Periaatteessa ne palvelevat samaa tarkoitusta kuin C++:n funktio-osoittimet. Delegaatit ovat kuitenkin
LisätiedotGraafisen käyttöliittymän ohjelmointi Syksy 2013
TIE-11300 Tietotekniikan vaihtuva-alainen kurssi Graafisen käyttöliittymän ohjelmointi Syksy 2013 Luento 10 Rinnakkaisuus käyttöliittymäohjelmoinnissa Juha-Matti Vanhatupa Rinnakkaisuus ja käyttöliittymäohjelmointi
LisätiedotJuha Karppinen juha.karppinen@microsoft.com liiketoimintajohta palvelinohjelmistot Microsoft Oy. Millaisiin ratkaisuihin pilvipalvelut soveltuvat?
Juha Karppinen juha.karppinen@microsoft.com liiketoimintajohta palvelinohjelmistot Microsoft Oy Millaisiin ratkaisuihin pilvipalvelut soveltuvat? Esityksen sisältö Pilvipalveluiden käyttökohteita Mitä
LisätiedotPuheviestinnän murros
Puheviestinnän murros Harri Mikkanen, Ratkaisumyyjä, Microsoft Oy Jani Brander, Teknologia-asiantuntija, Microsoft Oy Sisältö Uudet viestinnän teknologiat murtautuvat puheviestintään. Ajaako aika nykyisten
Lisätiedot10 Lock Lock-lause
10 Lock Avainsanan lock (Lock keyword) avulla voidaan toteuttaa prosessien ja säikeiden välisessä keskinäisessä kommunikoinnissa käytettäviä synkronointi- ja poissuljentarakenteita. Tämän niin sanotun
LisätiedotTuottavuutta viestinnän välineillä Asiantuntijatyön johtaminen. Ari Rahkonen Toimitusjohtaja, Microsoft Oy 1.10.2008
Tuottavuutta viestinnän välineillä Asiantuntijatyön johtaminen Ari Rahkonen Toimitusjohtaja, Microsoft Oy 1.10.2008 Asiantuntijatyön johtaminen Työntekijöiden ja työnteon tehokkuuden parantaminen 54 %
LisätiedotKill XP. Petri Paavola MVP 5.3.2013
Kill XP Petri Paavola MVP 5.3.2013 Agenda XP-tuki loppumassa Mitä pitäisi tehdä? Mihin pitäisi mennä? Miten maaliin päästään? Vinkki, josta varmasti kaikille hyötyä! Aihealueita: Windows 7, Windows 8,
LisätiedotC++11 seminaari, kevät Johannes Koskinen
C++11 seminaari, kevät 2012 Johannes Koskinen Sisältö Mikä onkaan ongelma? Standardidraftin luku 29: Atomiset tyypit Muistimalli Rinnakkaisuus On multicore systems, when a thread writes a value to memory,
LisätiedotRinnakkaisuuden hyväksikäyttö peleissä. Paula Kemppi
Rinnakkaisuuden hyväksikäyttö peleissä Paula Kemppi 24.4.2008 Esityksen rakenne Johdantoa Rinnakkaisuus Pelimoottorien rinnakkaisuuden mallit Funktionaalisen rinnakkaisuuden malli Rinnakkaisen tiedon malli
LisätiedotMicrosoft Visual Studio 2005
Sovelluksen jako palvelimiksi: Palvelin on sille annettuun vastuulliseen tehtävään erikoistunut sovellusosa. Käyttöliittymäpalvelin (Web-palvelin) vastaa käyttöliittymän toteuttamisesta. Web-palvelin toteuttaa
LisätiedotPalvelut. Sulautetut järjestelmät Luku 2 Sivu 1 (??) Sulautetut käyttöjärjestelmät
Sulautetut järjestelmät Luku 2 Sivu 1 (??) Palvelut Käyttöjärjestelmän tehtävänä on tarjota ohjelmoijalla erilaisia palveluita Tyypillisin palvelu, jota sulautetut käyttöjärjestelmät tarjoavat on prosessien
LisätiedotGraafisen käyttöliittymän ohjelmointi Syksy 2013
TIE-11300 Tietotekniikan vaihtuva-alainen kurssi Graafisen käyttöliittymän ohjelmointi Syksy 2013 Luento 8 Suunnittelumallit käyttöliittymäohjelmoinnissa Juha-Matti Vanhatupa Yleistä Suunnittelumalli on
LisätiedotC# ja.net. Juha Järvensivu 2007
C# ja.net Juha Järvensivu juha.jarvensivu@tut.fi 2007 Sisältö C#.NET-kirjastot C# - C-sharp Standardoitu kieli (2003) Kieli, jossa pyritään yhdistämään C++:n tehokkuus ja Javan helppokäyttöisyys Suunniteltu.NET-ohjelmointiin
LisätiedotSalasanan vaihto uuteen / How to change password
Salasanan vaihto uuteen / How to change password Sisällys Salasanakäytäntö / Password policy... 2 Salasanan vaihto verkkosivulla / Change password on website... 3 Salasanan vaihto matkapuhelimella / Change
Lisätiedot2010-luvun kansalaistaito: Windows-puhelimen ohjelmointi. Kai Lindgren, Teollinen tuotanto/metropolia
2010-luvun kansalaistaito: Windows-puhelimen ohjelmointi Kai Lindgren, Teollinen tuotanto/metropolia Paikka: Metropolia Ammattikorkeakoulu, Helsinki, Bulevardi 31. Sali Engel (P317) Ohjelma 9.00 9.15 Tervetuloa!
LisätiedotFinFamily PostgreSQL installation ( ) FinFamily PostgreSQL
FinFamily PostgreSQL 1 Sisällys / Contents FinFamily PostgreSQL... 1 1. Asenna PostgreSQL tietokanta / Install PostgreSQL database... 3 1.1. PostgreSQL tietokannasta / About the PostgreSQL database...
LisätiedotOhjelmoinnin peruskurssien laaja oppimäärä
Ohjelmoinnin peruskurssien laaja oppimäärä Luento 19: Rinnakkaisuus Riku Saikkonen (merkityt ei-laajan kurssin kalvot: Otto Seppälä) 24. 3. 2011 Sisältö 1 Säikeet 2 Lukot 3 Monitorit 4 Muuta säikeisiin
LisätiedotWeb järjestelmän ohjelmointi Kevät 2012 Hans Nieminen
Harjoitus 1 Käsiteltävät aiheet: C# kielen kertaus luokat, oliot ja periytyminen poikkeukset ja niiden käsittely tapahtumat ja niiden käsittely C# 3.0 uudet ominaisuudet Visual Studio projektin kansiot
Lisätiedot1. Mitä tehdään ensiksi?
1. Mitä tehdään ensiksi? Antti Jussi i Lakanen Ohjelmointi 1, kevät 2010/ Jyväskylän yliopisto a) Etsitään Googlesta valmis algoritmi b) Mietitään miten itse tehtäisiin sama homma kynällä ja paperilla
LisätiedotOn instrument costs in decentralized macroeconomic decision making (Helsingin Kauppakorkeakoulun julkaisuja ; D-31)
On instrument costs in decentralized macroeconomic decision making (Helsingin Kauppakorkeakoulun julkaisuja ; D-31) Juha Kahkonen Click here if your download doesn"t start automatically On instrument costs
LisätiedotJavan perusteita. Janne Käki
Javan perusteita Janne Käki 20.9.2006 Muutama perusasia Tietokone tekee juuri (ja vain) sen, mitä käsketään. Tietokone ymmärtää vain syntaksia (sanojen kirjoitusasua), ei semantiikkaa (sanojen merkitystä).
LisätiedotRinnakkaisuus. Juha Järvensivu 2008
Rinnakkaisuus Juha Järvensivu juha.jarvensivu@tut.fi 2008 Sisällys Rinnakkaisuus ja käyttöliittymäohjelmointi GUI-thread.NET rinnakkaisuus Asynkroninen delegaatti (.NET) Timerit Backgroundworker (.NET)
LisätiedotPower BI 29.5.2015. Tech Conference 28.-29.5.2015. Power BI. Pekka.Korhonen@sovelto.fi. #TechConfFI. Johdanto
Tech Conference 28.-29.5.2015 Power BI Pekka.Korhonen@sovelto.fi #TechConfFI Johdanto 2 1 Microsoft BI komponentit Azure Machine Learning Stream Analytics HDInsight DocumentDB Blob/table storage VM SQL
LisätiedotXPages käyttö ja edut Jarkko Pietikäinen toimitusjohtaja, Netwell Oy
IBM Collaboration Forum ٨.٣.٢٠١١ XPages käyttö ja edut Jarkko Pietikäinen toimitusjohtaja, Netwell Oy ٢٠١١ IBM Corporation Domino-sovelluskehitys Nopea kehitysympäristö (Rapid application development,
LisätiedotJReleaser Yksikkötestaus ja JUnit. Mikko Mäkelä 6.11.2002
JReleaser Yksikkötestaus ja JUnit Mikko Mäkelä 6.11.2002 Sisältö Johdanto yksikkötestaukseen JUnit yleisesti JUnit Framework API (TestCase, TestSuite) Testien suorittaminen eri työkaluilla Teknisiä käytäntöjä
LisätiedotHarjoitus 7. 1. Olkoon olemassa luokat Lintu ja Pelikaani seuraavasti:
Harjoitus 7 1. Olkoon olemassa luokat Lintu ja Pelikaani seuraavasti: class Lintu //Kentät private int _siivenpituus; protected double _aivojenkoko; private bool _osaakolentaa; //Ominaisuudet public int
LisätiedotDart. Ryhmä 38. Ville Tahvanainen. Juha Häkli
Dart Ryhmä 38 Ville Tahvanainen Juha Häkli 1.LYHYESTI Dart on luokkapohjainen, yksiperintäinen, puhdas olio-ohjelmointikieli. Dart on dynaamisesti tyypitetty. Sovellukset on organisoitu modulaarisiksi
LisätiedotTapahtumapohjainen ohjelmointi. Juha Järvensivu 2008
Tapahtumapohjainen ohjelmointi Juha Järvensivu juha.jarvensivu@tut.fi 2008 Sisältö Tapahtumapohjainen ohjelmointi Käyttöliittymän rakenne Pääikkuna (top-level window) Lapsi-ikkuna (child window) Dialogit
Lisätiedot4. Luento: Prosessit ja säikeets. Tommi Mikkonen, tommi.mikkonen@tut.fi
4. Luento: Prosessit ja säikeets Tommi Mikkonen, tommi.mikkonen@tut.fi Agenda Prosessi Säikeet Keskeytykset Keskeytyskäsittely Käyttöjärjestelmäkutsut Prosessielementti Prosessin hallinta Suunnittelunäkökohtia
LisätiedotNykyaikainen viestintäalusta
Nykyaikainen viestintäalusta OSALLISTUMINEN TUOTTAVUUS Mitä viestintä ja milloin Milloin Ensi tapaaminen, tärkeä neuvottelu jne Menetelmä Henkilökohtainen Arvo / vaikutus Suurin vaikutus Päätöksentekoa
LisätiedotProjekti 1 Säikeet ja kriittisen vaiheen kontrollointi javalla
Projekti 1 Säikeet ja kriittisen vaiheen kontrollointi javalla Lasse Leino ja Marko Kahilakoski Helsingin Yliopisto Tietojenkäsittelytieteen laitos Rinnakkaisohjelmointi 18. joulukuuta 2006 Sisältö 1 Säikeet
LisätiedotWindows 8 Hallinta Petri Paavola Sami Laiho 6.3.2013
Windows 8 Hallinta Petri Paavola Sami Laiho 6.3.2013 t Agenda Rauta Asennukset Käyttäjien tunnistus Start Screen Windows 8 Apps Adminin elämä Windows 8:ssa Keskitetty hallinta Elvyttäminen #td2013fi petri@petripaavola.fi
LisätiedotRinnakkaisohjelmointi, Syksy 2006
Rinnakkaisohjelmointi, Syksy 2006 17.12.2006 Opintopiiri WTF Mika Holmström Paula Kemppi Janne Piippo Lasse Lukkari Javan semaforit 1. Menetelmän käyttötarkoitus ja sovellusalue Semaforin idea kehitettiin
LisätiedotHiQ Finland Älypuhelinsovellusten käyttäjälähtöisen kehityksen tukeminen
HiQ Finland Älypuhelinsovellusten käyttäjälähtöisen kehityksen tukeminen HiQ otti käyttöön Lenovon ja Nutanixin hyperkonvergenssiratkaisun tarjotakseen kehittäjille resurssit uusien ja mielenkiintoisten
LisätiedotOlio-ohjelmointi Javalla
1 Olio-ohjelmointi Javalla Olio-ohjelmointi Luokka Attribuutit Konstruktori Olion luominen Metodit Olion kopiointi Staattinen attribuutti ja metodi Yksinkertainen ohjelmaluokka Ohjelmaluokka 1 Olio-ohjelmointi
LisätiedotELM GROUP 04. Teemu Laakso Henrik Talarmo
ELM GROUP 04 Teemu Laakso Henrik Talarmo 23. marraskuuta 2017 Sisältö 1 Johdanto 1 2 Ominaisuuksia 2 2.1 Muuttujat ja tietorakenteet...................... 2 2.2 Funktiot................................
LisätiedotC# Windows ohjelmointi perusopas
Paavo Räisänen C# Windows ohjelmointi perusopas www.ohjelmoimaan.net Tätä opasta saa vapaasti kopioida, tulostaa ja levittää ei kaupallisissa tarkoituksissa. Kuitenkaan omille nettisivuille opasta ei saa
LisätiedotJärjestelmäarkkitehtuuri (TK081702)
Järjestelmäarkkitehtuuri (TK081702) yleistyvät verkkopalveluissa Youtube Google... Avaavat pääsyn verkkopalvelun sisältöön. Rajapintojen tarjoamia tietolähteitä yhdistelemällä luodaan uusia palveluja,
LisätiedotRinnakkaisohjelmointi.NET-ympäristössä
Rinnakkaisohjelmointi.NET-ympäristössä Aleksi Kontkanen Juho Lappalainen Opinnäytetyö Tieto- ja viestintätekniikka Insinööri (AMK) 2014 LAPIN AMMATTIKORKEAKOULU TEKNIIKKA JA LIIKENNE Tieto- ja viestintätekniikka
LisätiedotOhjelmistojen mallintaminen, sekvenssikaaviot
582104 - Ohjelmistojen mallintaminen, sekvenssikaaviot 1 Vuorovaikutussuunnittelu Oliojärjestelmän toiminta perustuu olioiden vuorovaikutukseen ja yhteistyöhön Olioiden yhteistyö toteutuu operaatioiden
LisätiedotRinnakkaisuus. parallel tietokoneissa rinnakkaisia laskentayksiköitä concurrent asioita tapahtuu yhtaikaa. TTY Ohjelmistotekniikka
Rinnakkaisuus parallel tietokoneissa rinnakkaisia laskentayksiköitä concurrent asioita tapahtuu yhtaikaa Rinnakkaisuuden etuja: laskennan nopeutuminen (sarjoittuvat operaatiojonot) ilmaisuvoima (ongelman
LisätiedotREST rajapintana mobiilikehityksessä
REST rajapintana mobiilikehityksessä Django & WP7 Jonne Räsänen 2011 jonne.rasanen@jyu.fi Case iscope Hälytyspalvelu Web-palvelu Mobiilisovellus REST (REpresentational State Transfer) Aikojakin vanhempi
LisätiedotHYÖDYNNÄ SUBSCRIPTION-ETUSI
HYÖDYNNÄ SUBSCRIPTION-ETUSI OHJELMISTOJEN LATAAMINEN Autodesk Subscription sopimuksella saat kaikki edut irti ohjelmistostasi. Tässä ohjeessa käydään läpi, kuinka voit ladata Subscriptionsopimukseesi sisältyviä
LisätiedotMetodit. Metodien määrittely. Metodin parametrit ja paluuarvo. Metodien suorittaminen eli kutsuminen. Metodien kuormittaminen
Metodit Metodien määrittely Metodin parametrit ja paluuarvo Metodien suorittaminen eli kutsuminen Metodien kuormittaminen 1 Mikä on metodi? Metodi on luokan sisällä oleva yhteenkuuluvien toimintojen kokonaisuus
LisätiedotSQL Server 2005 Express Edition tietokannan asennusohje
1 SQL Server 2005 Express Edition tietokannan asennusohje SQL Server 2005 Express Edition on Microsoftin tietokantaohjelmiston ilmaisversio. Asennukset tulee tehdä käyttäjätunnuksella, jolla on administrator-oikeudet.
LisätiedotT Henkilökohtainen harjoitus: FASTAXON
T-76.115 Henkilökohtainen harjoitus: FASTAXON Suunnittelumallit Group: Muuntaja Pentti Vänskä 52572W 2 1. Toteutus Tämä henkilökohtainen harjoitustyö käsitteli suunnittelumallien (Design Patterns) käyttöä
LisätiedotHYÖDYNNÄ SUBSCRIPTION-ETUSI
HYÖDYNNÄ SUBSCRIPTION-ETUSI KIRJAUTUMINEN SUBSCRIPTION CENTERIIN Autodesk Subscription sopimuksella saat kaikki edut irti ohjelmistostasi. Tässä ohjeessa käydään läpi kuinka kirjaudut Subscription Centeriin,
LisätiedotXNA grafiikka laajennus opas. Paavo Räisänen. www.ohjelmoimaan.net. Tämän oppaan lähdekoodit ovat ladattavissa näiden sivujen Ladattavat osiossa.
XNA grafiikka laajennus opas Paavo Räisänen www.ohjelmoimaan.net Tämän oppaan lähdekoodit ovat ladattavissa näiden sivujen Ladattavat osiossa. Tätä opasta saa vapaasti kopioida, tulostaa ja levittää ei
LisätiedotWeb Service torilla tavataan!
Web Service torilla tavataan! Jari Putula Avarea Oy COPYRIGHT BY AVAREA 2009 1 Google Trends COPYRIGHT BY AVAREA 2009 2 1 1. Mahdollistajat 2. Web service? 3. KISS 4. Miksi? 5. Analogia 6. Ajax 7. Esimerkki
Lisätiedot15. Ohjelmoinnin tekniikkaa 15.1
15. Ohjelmoinnin tekniikkaa 15.1 Sisällys For-each-rakenne. Geneerinen ohjelmointi. Lueteltu tyyppi enum. 15.2 For-each-rakenne For-rakenteen variaatio taulukoiden ja muiden kokoelmien silmukoimiseen:
LisätiedotSisällys. Yleistä attribuuteista. Näkyvyys luokan sisällä ja ulkopuolelta. Attribuuttien arvojen käsittely aksessoreilla. 4.2
4. Attribuutit 4.1 Sisällys Yleistä attribuuteista. Näkyvyys luokan sisällä ja ulkopuolelta. Attribuuttien arvojen käsittely aksessoreilla. 4.2 Yleistä Luokan lohkossa, mutta metodien ulkopuolella esiteltyjä
LisätiedotLX 70. Ominaisuuksien mittaustulokset 1-kerroksinen 2-kerroksinen. Fyysiset ominaisuudet, nimellisarvot. Kalvon ominaisuudet
LX 70 % Läpäisy 36 32 % Absorptio 30 40 % Heijastus 34 28 % Läpäisy 72 65 % Heijastus ulkopuoli 9 16 % Heijastus sisäpuoli 9 13 Emissiivisyys.77.77 Auringonsuojakerroin.54.58 Auringonsäteilyn lämmönsiirtokerroin.47.50
LisätiedotSisällys. Yleistä attribuuteista. Näkyvyys luokan sisällä. Tiedonkätkentä. Aksessorit. 4.2
4. Attribuutit 4.1 Sisällys Yleistä attribuuteista. Näkyvyys luokan sisällä. Tiedonkätkentä. Aksessorit. 4.2 Yleistä Luokan lohkossa, mutta metodien ulkopuolella esiteltyjä muuttujia ja vakioita. Esittely
LisätiedotTT00AA12-2016 - Ohjelmoinnin jatko (TT10S1ECD)
TT00AA12-2016 - Ohjelmoinnin jatko (TT10S1ECD) Ohjelmointikäytännöt 21/3/11 Mikko Vuorinen Metropolia Ammattikorkeakoulu 1 Sisältö 1) Mitä on hyvä koodi? 2) Ohjelmointikäytäntöjen merkitys? 3) Koodin asettelu
LisätiedotObject Framework - One. OF-1 is a high-productive Multi-UI OpenEdge data driven development framework. Veli-Matti Korhonen
Object Framework - One OF-1 is a high-productive Multi-UI OpenEdge data driven development framework Veli-Matti Korhonen Aiheet OF-1 esittely Mitä ominaisuuksia saa ilman ohjelmointia Miten ohjelmoidaan
LisätiedotRinnakkaisohjelmointi kurssi. Opintopiiri työskentelyn raportti
Rinnakkaisohjelmointi kurssi Opintopiiri työskentelyn raportti Opintopiiri: Heikki Karimo, Jesse Paakkari ja Keijo Karhu Päiväys: 15.12.2006 Ohjelmointitehtävä C i C i : Säikeet ja kriittisen vaiheen kontrollointi
LisätiedotOhjelmointikielet ja -paradigmat 5op. Markus Norrena
Ohjelmointikielet ja -paradigmat 5op Markus Norrena Ko#tehtävä 4 Viimeistele "alkeellinen kuvagalleria". Käytännössä kaksi sivua Yksi jolla voi ladata kuvia palvelimelle (file upload) Toinen jolla ladattuja
LisätiedotSuunnittelumalleja, MVC. Juha Järvensivu 2008
Suunnittelumalleja, MVC Juha Järvensivu juha.jarvensivu@tut.fi 2008 Sisältö Tarkkailija Strategia Rekursiokooste Tehdas-metodi MVC Tarkkailija suunnittelumalli Tarkkailijamalli (Observer) Määrittelee olioiden
LisätiedotApuja ohjelmointiin» Yleisiä virheitä
Apuja ohjelmointiin» Yleisiä virheitä Ohjelmaa kirjoittaessasi saattaa Visual Studio ilmoittaa monenlaisista virheistä "punakynällä". Usein tämä johtuu vain siitä, että virheitä näytetään vaikket olisi
Lisätiedot15. Ohjelmoinnin tekniikkaa 15.1
15. Ohjelmoinnin tekniikkaa 15.1 Sisällys For-each-rakenne. Lueteltu tyyppi enum. Override-annotaatio. Geneerinen ohjelmointi. 15.2 For-each-rakenne For-rakenteen variaatio taulukoiden ja muiden kokoelmien
Lisätiedot5. HelloWorld-ohjelma 5.1
5. HelloWorld-ohjelma 5.1 Sisällys Lähdekoodi. Lähdekoodin (osittainen) analyysi. Lähdekoodi tekstitiedostoon. Lähdekoodin kääntäminen tavukoodiksi. Tavukoodin suorittaminen. Virheiden korjaaminen 5.2
LisätiedotVisma Software Oy
pidättää itsellään oikeuden mahdollisiin parannuksiin ja/tai muutoksiin tässä oppaassa ja/tai ohjelmassa ilman eri ilmoitusta. Oppaan ja siihen liittyvän muun materiaalin kopiointi on kielletty ilman :n
LisätiedotOn instrument costs in decentralized macroeconomic decision making (Helsingin Kauppakorkeakoulun julkaisuja ; D-31)
On instrument costs in decentralized macroeconomic decision making (Helsingin Kauppakorkeakoulun julkaisuja ; D-31) Juha Kahkonen Click here if your download doesn"t start automatically On instrument costs
Lisätiedot812315A Ohjelmiston rakentaminen. Asynkronisuus
812315A Ohjelmiston rakentaminen. Asynkronisuus Ari Vesanen ari.vesanen (at) oulu.fi Yleistä moduulista Tällä kertaa sisältää Java-kielistä monisäieohjelmointia Suoritustapa: Neljästä ohjelmointitehtävästä
LisätiedotLab SBS3.FARM_Hyper-V - Navigating a SharePoint site
Lab SBS3.FARM_Hyper-V - Navigating a SharePoint site Note! Before starting download and install a fresh version of OfficeProfessionalPlus_x64_en-us. The instructions are in the beginning of the exercise.
LisätiedotLuento 6. T Ohjelmoinnin jatkokurssi T1 & T Ohjelmoinnin jatkokurssi L1. Luennoitsija: Otto Seppälä
Luento 6 T-106.1240 Ohjelmoinnin jatkokurssi T1 & T-106.1243 Ohjelmoinnin jatkokurssi L1 Luennoitsija: Otto Seppälä Kurssin WWW: http://www.cs.hut.fi/opinnot/t-106.1240/s2007 Oma Grafiikka Swing-käyttöliittymässä
LisätiedotCitizen s skill in 2010s: Programming the Windowsphone. Kai Lindgren, Industrial Production/Metropolia
Citizen s skill in 2010s: Programming the Windowsphone Kai Lindgren, Industrial Production/Metropolia Paikka: Metropolia Ammattikorkeakoulu, Helsinki, Bulevardi 31. Sali Engel (P317) Ohjelma 9.00 9.15
LisätiedotOhjelmistojen mallintaminen Olioiden yhteistyö. 18.11.2008 Harri Laine 1
Ohjelmistojen mallintaminen Olioiden yhteistyö 18.11.2008 Harri Laine 1 Olioiden yhteistyö Oliokeskeisen ohjelmistonäkemyksen mukaan ohjelmiston palvelut tuotetaan olioiden yhteistyön tuloksena. Ohjelmisto
LisätiedotHYÖDYNNÄ SUBSCRIPTION-ETUSI
HYÖDYNNÄ SUBSCRIPTION-ETUSI KÄYTTÄJIEN PÄÄSY SUBSCRIPTION-ETUIHIN Autodesk Subscription sisältää paljon etuja, kuten joustavammat mahdollisuudet käyttää Autodesk-ohjelmistoja. Tämä ohje käy läpi, kuinka
LisätiedotJUnit ja EasyMock (TilaustenKäsittely)
OHJELMISTOJEN TESTAUS JA HALLINTA Syksy 2015 / Auvo Häkkinen JUnit ja EasyMock (TilaustenKäsittely) Tehtävässä tarvittava koodi löytyy osoitteella http://users.metropolia.fi/~hakka/oth/mockesimerkki.zip
LisätiedotTermBase NET versio 1.0.1. (Beta)
TermBase NET versio 1.0.1. (Beta) Sulautettu sanasto- ja termikanta OHJEET TÄRKEÄÄ: Copyright M. Tuittu, 2005 Kaikki oikeudet pidätetään. TermBase NET on toteutettu java -tekniikalla. Java and all Java-based
LisätiedotOlion elinikä. Olion luominen. Olion tuhoutuminen. Olion tuhoutuminen. Kissa rontti = null; rontti = new Kissa();
Sisällys 7. Oliot ja viitteet Olio Java-kielessä. Olion luominen, elinikä ja tuhoutuminen. Viitteiden käsittelyä: sijoitus, vertailu ja varautuminen null-arvoon. Viite metodin paluuarvona.. 7.1 7.2 Olio
LisätiedotJAVA-PERUSTEET. JAVA-OHJELMOINTI 3op A274615 JAVAN PERUSTEET LYHYT KERTAUS JAVAN OMINAISUUKSISTA JAVAN OMINAISUUKSIA. Java vs. C++?
JAVA-OHJELMOINTI 3op A274615 JAVAN PERUSTEET LYHYT KERTAUS Teemu Saarelainen teemu.saarelainen@kyamk.fi Lähteet: http://java.sun.com/docs/books/tutorial/index.html Vesterholm, Kyppö: Java-ohjelmointi,
Lisätiedot9. Periytyminen Javassa 9.1
9. Periytyminen Javassa 9.1 Sisällys Periytymismekanismi Java-kielessä. Piirteiden näkyvyys periytymisessä. Ilmentymämetodien korvaaminen. Luokkametodien peittäminen. Super-attribuutti. Override-annotaatio.
Lisätiedot5 Näppäimistö. 5.1 Näppäimistön eventit
5 Näppäimistö Näppäimistö (Keyboard) on Windows Forms -ohjelmissa keskeisessä asemassa. Erityisesti erilaisissa tekstinkäsittelyohjelmissa ja ohjelmissa, joissa tarvitaan datan syöttämistä esimerkiksi
LisätiedotTech Conference 28.-29.5.2015. Mikropalvelut, Kontit ja Nano Server tulevaisuuden ajoympäristöt? Jouni Heikniemi Offbeat Solutions.
Tech Conference 28.-29.5.2015 Mikropalvelut, Kontit ja Nano Server tulevaisuuden ajoympäristöt? Jouni Heikniemi Offbeat Solutions #TechConfFI Hei kuka puhuu? Offbeat Solutions 2010 -> konsultti Sininen
Lisätiedot