TechDays vieraskynä: Miten voin laajentaa tai räätälöidä toimintoja MVC kehikossa?

Kun ASP.NET MVC kehikko ilmestyi pari vuotta sitten, se oli tuonut uutta ja raikasta tuulta ASP.NET sovelluskehitykseen. Vapaasti saatavana olevia kehikkoja on ollut jo aikaisemminkin, samoin Microsoft itse on julkaissut tietoja miten Model-View-Controller patterni tulisi implementoida ASP.NETin avulla. Mutta MVC kehikko oli ensimmäinen ”tuote” itse Microsoftilta mikä oli alusta lähtien rakennettu MVC pattern mielessä.

Kehikko on saanut positiivisen vastaanoton, ja siitä on jo ilmestynyt kolmas versio tämän vuoden tammikuussa. Kehikko on myös tuonut uudistuksia itse .NET Frameworkin Web ajoympäristöön, kuten esimerkiksi reititys (routing), mikä on käytössä kaikille ASP.NET kehittäjille, ei pelkästään MVC kehittäjille.

MVC sovelluksen tekeminen – varsinkin jos käytetään olemassa olevaa Visual Studio solution runkoa – on helppoa ja nopeata. Tekeminen kuitenkin vaatii hiukan erilaista osaamista kuin Web Forms: HTML, CSS ja JavaScript taidot tulevat nopeasti käytetyksi kun toimitaan MVC sovellusten kanssa.

Ensimmäisten sovellusten jälkeen kuitenkin voi olla semmoinen olo, että jotkut asiat eivät toimi niin kuin me haluaisimme niiden toimivan. Voi olla että emme pysty meidän reittiä oikein hyvin kuvaamaan sillä tavalla, miten MVC:ssä reitit kuvataan. Tai haluaisimme jonkun uuden perusteen Action methodin valintaan, eikä sisäänrakennettu tapa tunnu sopivan meidän (tai asiakkaidemme) tarpeisiin.

Voi tietenkin yrittää jotenkin saada asiaa toimimaan MVC:n oletustyökaluilla, mutta paljon parempi (ja mielenkiintoisempi :-) ) vaihtoehto on lähteä räätälöimään MVC tuotetta omien tarkoitusten mukaiseksi. Tämä on mahdollista, koska MVC on alusta asti kehitetty sitä ajatellen, että kehittäjät voivat sitä luovasti laajentaa omien tarpeidensa mukaisesti. Kehikkoon on suunniteltu monta pistettä, mihin voimme kytkeä omaa koodia.

Räätälöintiä on mahdollista tehdä kahdella tavalla. Joko voimme ottaa jonkun olemassa olevan palasen, kuten Action methodin valinnat ja laajentaa alkuperäistä toiminnallisuutta. Voimme näin hyödyntää MVC kehikon jo olemassa olevaa toimintoja ja silti kytkeä meidän räätälöidyt osat mukaan. Toinen vaihtoehto on korvata kyseisen toiminnallisuuden kokonaan, tekemällä täysin oma toteutus.

MVC onkin monesta pienestä palasesta rakennettu kokonaisuus. Paloja voidaan vaihdella ja korvata tarpeiden mukaisesti, jos alkuperäinen kokoonpano ei tunnu toimivan luontevasti.

Jos aihe kiinnostaa enemmän, tule ja kuuntele Plug&Play MVC esityksen TechDays 2011 tapahtumassa mistä saat hyvät eväät palojen räätälöimiseen ja omien palojen toteutukseen.

Lenard Gunda työskentelee arkkitehtinä .NET teknologioiden parissa. Keskipisteenä ovat Web teknologiat: ASP.NET, MVC, Silverlight ja WCF. Lenard on myös kiinnostunut eri tavoista tehostaa ohjelmointityötä.