Solutionit ja projektit Riderissa

Muita Rider-sivuja

1. Solution ja projekti

Rider käyttää ns. projekti-solution-struktuuria koodin organisointiin.

Projekti sisältää yhteen ohjelmaan (peliin tai konsolisovellukseen) liittyvän koodin ja grafiikka- ja musiikkitiedostot.

Projekti kuuluu aina johonkin solutioniin. Yksi solution voi sisältää yhden tai useampia projekteja. (Sivuhuomio: Solution on Microsoftin keksimä nimi tällaiselle projekteja koostavalle kapistukselle. Sana ei varsinaisesti tarkoita mitään.)

Esimerkiksi yksi demokerta voi olla yksi solution joka sisältää useita projekteja (demotehtäviä). Useiden projektien lisäämisessä samaan solutioniin on se etu, että silloin voi pitää samaan demoon liittyvät tehtävät yhtä aikaa näkyvillä ilman että niitä tarvitsee jatkuvasti avata tai sulkea.

Riderissa tehdyt solutionit ja projektit ovat yhteensopivia Visual Studion kanssa.

1.1 Suositeltava hakemistorakenne

Kurssilla kannattaa kaikki kurssin asiat tehdä esimerkiksi alikansion (hakemiston) ohj1 alle. Tuo ohj kansio ohj1 voi alla käyttötarkoituksesta riippuen eri paikassa:

Mikroluokan koneessa

c:\MyTemp\Anonymous\ohj1

ja omassa kannettavassa esimerkiksi:

Windows: `/c/kurssit/ohj1`    
Mac ja Linux: `~/kurssit/ohj1` 

ja sitten tuon kansion alla on alikansiota tyyliin:

ohj1
 |
 +-demot 
 |  +-demo1
 |  | +-HelloWorld
 |  | +-Lumiukko
 |  | 
 |  '-demo2
 |    +-Lumiukko2
 |    +-LukujenLaskemista
 |
 '-ohjaukset
    +-ohjaus1
    | +-HelloWorld
    | +-Lumiukko
    '-ohjaus2

Eli esimerkiksi demo1 on yksi solution jonka alla on useita projekteja. Usein projekti on yksi demotehtävä.

# uusisolution

2. Uusi solution

Luodaan uusi solution ja siihen projekti. Tässä esimerkissä luodaan demo1-niminen solution ja siihen Lumiukko-niminen projekti demot-alikansioon:

Mikäli haluat lisätä projektin olemassa olevaan solutioniin, siirry lukuun 3.

  • Valitse New Solution.
    • Mikäli joku vanha solution on jo auki, niin sama onnistuu yläpalkista File/New Solution.
Uusi solution Linuxissa
Uusi solution Linuxissa
  • Valitse vasemmalta templates-listasta FysiikkaPeli.

  • Anna solutionin nimeksi demoX, esimerkiksi demo1

  • Anna projektin nimi, esimerkiksi Lumiukko tai Teht3Lumiukko (Huom Iso alkukirjan!).

  • Kirjoita tai selaa poluksi (Anonymous tilalle oma käyttäjätunnuksesi jos se on eri):

    • oma Windows kone: C:\kurssit\ohj1\demot
    • Mac: /Users/Anonymous/kurssit/ohj1/demot
    • Linux: /home/Anonymous/kurssit/ohj1/demot
    • mikroluokssa C:\MyTemp\Anonymous\ohj1\demot

    HUOM! Yliopiston mikroluokissa projekti tulee tehdä ensin tietokoneen kiintolevylle, esim. C:\MyTemp\Anonymous\.... Siirrä lopuksi tiedostot U-asemallesi tai muualle talteen.

  • Jätä Put solution and project in the same directory-boksi tyhjäksi.

  • Framework-kohtaan net7.0

  • Klikkaa Create.

  • Levylle syntyy nyt hierarkia:

    kurssit                    - kaikkien kurssien hakemisto
      ohj1                     - ohj1 kurssin hakemisto
        demot                  - demojen hakemisto
          demo1                - demo1:n hakemisto
            demo1.sln          - solutionintiedosto jossa luetellan mitä projekteja
            Lumiukko           - hakmeisto jonka alla Lumiukko-projekti     
              bin              - hakemisto jonne tulee ajettavaa koodia
              obj              - hakemisto jonne tulee käännettyjä tiedostoja
              Lumiukko.cs      - C#-tiedosto johon tulee lumiukon piirtävä koodi
              Ohjelma.cs       - C#-pääohjelma
              Lumiukko.csproj  - projektin tiedosto jossa kerrotaan mitä tiedotoja projektiin liittyy
  • Klikkaa Solution Explorerissa Lumiukko.cs-kooditiedostoa. Koodissa pitäisi näkyä:

    public class Lumiukko : PhysicsGame
    {
        public override void Begin()
        {
            // Kirjoita ohjelmakoodisi tähän
    
            PhoneBackButton.Listen(ConfirmExit, "Lopeta peli");
            Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
        }
    }
  • Kokeile käynnistää ohjelma Run/Run 'Lumiukko', jolloin pitäisi näkyä uusi ikkuna vaaleansinisellä taustalla. Jos kaikki toimii, sulje ikkuna.

  • Pyyhi pois koko se rivi jossa lukee "Kirjoita ohjelmakoodisi tähän" ja kirjoita tilalle

            Level.Background.Color = Color.Black;
            PhysicsObject pallo = new PhysicsObject(200, 200, Shape.Circle);
            pallo.Color = Color.White;
            Add(pallo);
  • Käynnistä ohjelma uudestaan ja tarkista että ohjelma muuttui.

  • Kirjoita luokan dokumentaatiokommentti näppäilemällä luokan esittelyrivin (elipublic class...) yläpuolelle kolme kauttaviivaa ///. Kirjoita <summary>-tagien väliin selvitys luokan toiminnasta (eli että piirretään lumiukko)
  • Kirjoita vastaavasti Begin-metodin dokumentaatiokommentit.
# uusiprojekti

3. Uusi projekti olemassa olevaan solutioniin

Oletetaan, että solution on jo olemassa. Lisätään siihen toinen projekti olemassa olevan lisäksi. Tässä esimerkissä luodaan uusi ConsoleMain-projekti olemassa olevaan demo1-solutioniin.

  • Klikkaa Explorer-paneelissa solutionin demo1 nimeä hiiren oikealla (Macissa kahdella sormella).
  • Valitse Add -> New Project
  • Valitse vasemmalta ConsoleMain-projektimalli
  • Anna nimeksi HelloWorld
  • Paina Create.
  • Ensimmäisellä kerralla projekti ajetaan klikkaamalla Explorerissa sen nimeä Lausekkeita hiiren oikealla ja valitse Run HelloWorld. Myöhemmillä kerroilla voit käynnistää projektin käynnistämällä yläpalkista haluamasi projektin.

4. Huomio Jypeli-projekteista

Jypeli-projektissa Main-pääohjelma menee Ohjelma.cs-tiedostoon, joten jos copy-pastetat koodin, joka sisältää Main-pääohjelman, niin poista Main-pääohjelma Portaat-luokan (tms. projektisi nimeä vastaava luokka) sisältä.

5. Pikanäppäimet

6. Ikkunat

Riderisssa voi eri ikkunoita siirrellä hiirellä paikasta toiseen.

  • Kun ikkunaa siirtää ja irrottaa, siitä tulee Float-näkymä (View Mode).
  • Ikkunan oikeassa yläkulmassa on ikoni, jolla ikkunan saa telakopitumaan (Dock).
  • Oletuksena ikkuna telakoituu viimeiseen "kotiinsa". Jos telakoidun ikkunan raahaa ja päästää irti johonkin reunoista (vasen, ala tai oikea), ikkuna telakoituu sinne.
  • Telakoituja ikkunoita voi avata ja sulkea klikkaamalla niiden nimeä.
  • Ikkunan rattaankuvasta voi View Mode-kohdasta valita myös Window, jolloin ikkunasta tulee erillinen käyttöjärjestelmän ikkuna jonka voi vetää vaikka toiseen näyttöön.
  • Ikkunan rattaankuvasta löytyy myös Move To josta voi suoraan valita mihin ikkuna telakoituu.
  • lähdekoodi-ikkunoita (mm. .cs-päätteisiä) voi asetelle allekkain, rinnakkain tai vetää ihan omiksi ikkunoikseen, joita voi siirtää vaikka toiseen näyttöön.
  • Eri paikkaa viedyn lähdekoodi-ikkunan saa omaan TAB-listaansa joko vetämällä sen toisen lähdekoodi-ikkunan keskelle tai sitten sulkemalla ikkunan ja avaamalla uudelleen

6.1 Näkymät

Ikkunanäkymä (siis niiden määrä ja sijoittelu) voi vaihdella tiloittain. Kurssilla tärkeimät tilat ovat muokkaus ja debug. Oletuksena ollaan muokkaustilassa ja debugtilaan päästään kun ohjelma pysähtyy breakpointtiin.

6.2 Ikkunoiden hakeminen

Ikkunat voi helposti vahigossa hukata ja silloin niitä voi etsiä seuraavista paikoista:

  • View/TollWIndows
  • Debug/Windows

Tärkeimmät ikkunat (suluissa mistä menusta ikkunan löytää jos se on hukkunut):

Muokkaustila:

  • peruseditointialue, tässäkin voi tiedostoja siirtää rinnakkain katseltavaksi tai irroitttaa kokonaan omiksi ikkunoikseen
  • Solution Explorer - näyttää solutionin rakenteen
  • Run - näyttää ohjelman tulosteen
  • File (View) - ohjelman käännösvirheet
  • Debug (View) - testien tulokset

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