C#, Hello World ja komentorivi (Windows)

Tässä tehtävässä oletetaan että olet asentanut kurssin työkaluista ainakin tekstieditorin ja Riderin (tai Visual Studion).

1. Mikä ihmeen komentorivi?

Jos komentorivi ei ole tuttu, niin tutustu ehdottomasti ensimmäiseksi komentoriviohjeisiin:

Ylemmässä on kuvattu miten komentorivi avataan, ja yleisimpiä komentoja Windowsille, Linuxille ja Macille. Alemmassa tarkempi kurssi Bashin käytöstä.

Tässä syksyn 2023 harjoituksessa käyteään Git Bash -liittymää. Mikäli haluat tutustua saman asian tekemiseen CMD Promtilla tai PowerShellillä, katso syksyn 2020 materiaalia.

2. Mikroluokissa: N-levyn liittäminen

Tämä kohta koskee Agoran mikroluokkia. N:-levy ei toimi suoraan kotikoneissa, mutta ei sitä välttämättä tarvitakaan!

Avaa tämä jos olet mikroluokassa ja käytät mikroluokkien koneita

# mkdir

3. Hakemiston luominen ja sinne vaihtaminen

Windowsissa avataan ensin Git Bash:

  • ota vasemmasta alakulmasta ikkunan kuva ja kirjoita Git
  • pitäisi tulla näkyviin Git Bash
  • tätä kannattaa painaa hiiren oikealla ja kiinnittää se tehtäväpalkkiin
  • avaa Git Bash

Macissa ja Linuxissa avataan ensin Pääte (engl. Terminal).

Nyt järjestelmästä riippuen luodaan itselle hakemisto tätä ohjausta varten.

Agoran mikroluokissa hakemisto pitää olla MyTemp-hakemiston alla. Ja koska samaa hakemistoa käyttää moni muukin, pitää oma tunnus lisätä hakemiston nimeen (älä siis vielä kirjoita seuraavia mihinkään, vaan katso mitä nimeä jatkossa käytetään):

c:\MyTemp\Anonymous\kurssit\ohj1\paate\paate1  (mikroluokan kone, Windows muoto)
/c/MyTemp/Anonymous/kurssit/ohj1/paate/paate1  (mikroluokan kone, Linux-muoto)
c:\kurssit\ohj1\paate\paate1                      (oma Windows-kone, Windows muoto)
/c/kurssit/ohj1/paate/paate1                      (oma Windows-kone, Linux-muoto)
~/kurssit/ohj1/paate/paate1                       (Mac ja Linux)

Huomaa että nuoli ylös -painikkeella saat edellisen komennon, joten siihen on helppoa täydentää. Nyt koneesta ja paikasta riippuen kirjoita komentoriville:

Oma Windows-kone (jos sinulla on useita levyjä, voit käyttää c-tilalla jotakin muutakin levyä):

cd /c
mkdir -p kurssit/ohj1/paate/paate1
cd kurssit/ohj1/paate/paate1

Mikroluokassa:

cd /c/MyTemp
mkdir Anonymous
cd Anonymous
mkdir -p kurssit/ohj1/paate/paate1
cd kurssit/ohj1/paate/paate1

Mac/Linux:

cd ~
mkdir -p kurssit/ohj1/paate/paate1
cd kurssit/ohj1/paate/paate1

Eli mitä tehtiin? 1. vaihdettiin c-levyn juureen (Windows) tai kotihakemistoon (Mac, Linux) 2. luotiin uusi hakemisto (mkdir, make directory) koko polku kerralla (-p eli path) ja sitten annetaan koko hakemistopolku joka halutaan luoda. Tätä ei tarvitse enää luoda toista kertaa vaikka sulkisit komentoikkunan. 3. vaihdetaan hakemistoon (cd, change directory)

Tee ohjauksen tehtävät tähän hakemistoon. Jos joudut käynnistämään Git Bashin uudelleen, pitää cd-komennot hakemiston vaihtamiseksi tehdä uuudelleen.

Mikä avuksi / missä menee vikaan kun projektimallien asennuksen kohdalla pääte sanoo "command not found"? Kokeiltu vaikka mitkä kikat. Mac kyseessä.

VL: onko .NET asennettu ohjeiden mukaan?

10 Sep 23 (edited 10 Sep 23)
# dotnet

4. Kääntäminen ja ajaminen dotnetillä

Tämä on uudempi ja hieman yksinkertaisempi tapa kääntää komentoriviltä. Uusi tapa valitettavasti peittää näkyvistä mitä taustalla tapahtuu. dotnet-komento on ohjelma, joka luo uuden projektin eli tekee tarvittavat tiedostot annettujen mallien mukaan (esim ConsoleMain tai FysiikkaPeli). Sitten se kääntää ja myös ajaa käännetyn ohjelman jos se on virheetön.

Aluksi asenna tarvittavat projektimallit. Tämä tehdään yhden kerran/kone, tosin uudelleen antaminenkaan ei haittaa, jopa päivittää uudempaan versioon tarvittaessa.

dotnet new install Jypeli.Templates

Jos ylempi ei toimi tai olet yliopiston koneella niin käytä

dotnet new --install Jypeli.Templates

Vaihda hakemistoon johon haluat projektin (ks. 3. Hakemiston luominen ja sinne vaihtaminen).

Luo HelloWorld projekti

dotnet new ConsoleMain -n HelloWorld

Vaihda syntyneen projektin hakemistoon

cd HelloWorld

Katso mitä tiedostoja syntyi:

ls -la     

Tiedoston saa muokattavaksi antamalla komentoriviltä esim (olettaen että Visual Studio Code on asennettu):

code HelloWorld.cs

Mikäli mitään editoriasennuksia ei ole tehty

  • Windows: notepad HelloWorld.cs
  • Mac: open -e HelloWorld.cs
  • Linux: nano HelloWorld.cs

Muokkaa koodia (eli avaa editorilla tiedosto HelloWorld.cs) tiedostosta HelloWorld.cs laittamalla Main funktion sisään (eli siellä olevien aaltosulkujen {} väliseen alueeseen) esimerkiksi

    System.Console.WriteLine("Hello World!");

Sisennä niin, että System-sana alkaa 4 välilyöntiä sisemää kuin aaltosulut. Esimerkkikoodi:

public class HelloWorld
{
    public static void Main()
    {
        System.Console.WriteLine("Hello World!");
    }
}

Käännä ja aja ohjelma antamalla komentoriviltä:

dotnet run

Huomioi, että komento dotnet run on annettava samasta kansiosta jossa sijaitsee .csproj loppuinen tiedosto (esimerkissä tiedosto on HelloWorld.csproj).

Nyt tiedosto HelloWorld.cs sisältää ensimmäisen ohjelman lähdekoodin (englanniksi sourcecode, nörtiksi sorsakoodi). Lähdekoodi on normaalia tekstiä, jota voidaan muokata millä tahansa tekstinmuokkausohjelmalla. Lähdekoodi on aina kirjoitettu jonkin ohjelmointikielen sääntöjen mukaisesti. Tällä kurssilla ohjelmamme lähdekoodi noudattaa C# (C-sharp) nimisen ohjelmointikielen sääntöjä.

Tietokoneet eivät kuitenkaan ymmärrä lähdekoodia, vaan lähdekoodi on ensin käännettävä (eng. "Compile") muotoon, jonka tietokone osaa suorittaa. Tämä tehdään kääntäjällä (eng. "Compiler"), erillisellä ohjelmalla jonka tehtävä on tuottaa lähdekoodista ajettava ohjelma.

Ympäristössä .NET kääntäminen ja ajaminen siis tapahtuu tuolla dotnet-kommenolla. Esimerkiksi C-kielessä yleensä käännetään eri komennolla ja ajetaan toisella komennolla käännöksessä syntynyt ohjelma.

Jos projektimallien asennus ei onnistu ohjeiden komennolla niin dotnet new --install Jypeli.Templates saattaa toimia.

Yliopiston koneilla saattaa myös tulla virheilmoitus väärällä frameworkilla ajosta. Hätäratkaisuna toimii kun muuttaa .csproj tiedostosta traget frameworkiksi 6.0. Oletuksena siellä on 7.0. -JK

06 Sep 23

These are the current permissions for this document; please modify if needed. You can always modify these permissions from the manage page.