Category:Võrgurakendused II: hajussüsteemide ehitamine: Difference between revisions

From ICO wiki
Jump to navigationJump to search
Sluhtoja (talk | contribs)
Mposka (talk | contribs)
 
(112 intermediate revisions by 25 users not shown)
Line 16: Line 16:
==Õppejõud==
==Õppejõud==
Mait Poska
Mait Poska
* mait.poska<ät> itcollege.ee
* mait.poska<ät> itcollege.ee või mait.poska <ät> netgroup.ee
* Skype: minamait
* Skype: minamait
* +372 53 469 734
* +372 53 469 734
Line 33: Line 33:


* <ins>Hinne</ins> ('''100p / 100%''') - Hinde kujunemisel arvestatakse kahte tööd:
* <ins>Hinne</ins> ('''100p / 100%''') - Hinde kujunemisel arvestatakse kahte tööd:
** [[Kodutöö aines "Võrgurakendused II: hajussüsteemide ehitamine" 2015]], mis moodustab hindest 55%. '''55p''' (koosneb kolmest osast) (vähemalt 51%)
** [[Kodutöö aines "Võrgurakendused II: hajussüsteemide ehitamine" 2018]], mis moodustab hindest 55%. '''55p''' (koosneb kolmest osast) (vähemalt 51%)
*** XML (xsd, xslt) '''5p'''
**** Retsensioonid XLM-i kohta '''2p'''
*** Veebiteenus '''18p'''
*** Veebiteenus '''18p'''
**** Veebiteenuse analüüs '''3p'''
**** Veebiteenuse analüüs '''3p'''
Line 41: Line 39:
*** Klientrakendus veebiteenusele '''18p'''
*** Klientrakendus veebiteenusele '''18p'''
**** Retsensioonid Klientrakenduse kohta '''3p'''
**** Retsensioonid Klientrakenduse kohta '''3p'''
*** XML (xsd, xslt) '''5p'''
**** Retsensioonid XML-i kohta '''2p'''
*** Esitlus '''3p'''
*** Esitlus '''3p'''
** <ins>Individuaalne teadmiste kontroll</ins> '''45p'''
** <ins>Individuaalne teadmiste kontroll</ins> '''45p'''
Line 62: Line 62:


==Tähtajad==
==Tähtajad==
<!--* Teema ning meeskonna koosseis peab olema õppejõuga kooskõlastatud hiljemalt 21. veebruar 2011.-->
* '''XML fail''' [https://wiki.itcollege.ee/index.php/Kodut%C3%B6%C3%B6_aines_%22V%C3%B5rgurakendused_II:_hajuss%C3%BCsteemide_ehitamine%22_2015#XML_andmefail NB! Täpsem info]
** XML fail, stiilifail ja skeemifail peavad olema valmis ja wikilehel kirjeldatud hiljemalt '''07. märts 2015'''.
** Retsensioonid XML-failide kohta peavad tehtud olema '''14. märts 2015'''.
* '''Veebiteenus''' [https://wiki.itcollege.ee/index.php/Kodut%C3%B6%C3%B6_aines_%22V%C3%B5rgurakendused_II:_hajuss%C3%BCsteemide_ehitamine%22_2015#Veebiteenus NB! Täpsem info]
**Veebiteenuse analüüs peab olema valmis ja kirjeldatud wikilehel hiljemalt '''4.aprill 2015'''
** Veebiteenus peab olema valmis, esitatud ja ja wikilehel kirjeldatud hiljemalt '''24. mai 2015'''.
** Retsensioonid veebiteenuste kohta peavad tehtud olema '''30. mai 2015'''.


* '''Klientrakendused''' [https://wiki.itcollege.ee/index.php/Kodut%C3%B6%C3%B6_aines_%22V%C3%B5rgurakendused_II:_hajuss%C3%BCsteemide_ehitamine%22_2015#Klientrakendus NB! Täpsem info]
* '''Veebiteenus'''
** Klientrakendused peavad olema valmis, esitatud ja ja wikilehel kirjeldatud hiljemalt '''24. mai 2015'''.
** Veebiteenuse analüüs peab olema valmis ja kirjeldatud wikilehel hiljemalt '''01.04.2018'''
** Retsensioonid klientrakenduste kohta peavad tehtud olema '''30. mai 2015'''.
** Veebiteenus peab olema valmis, esitatud ja ja wikilehel kirjeldatud hiljemalt  '''27.05.2018'''
** Retsensioonid veebiteenuste kohta peavad tehtud olema '''03.06.2018'''
* '''Klientrakendused'''
** Klientrakendused peavad olema valmis, esitatud ja ja wikilehel kirjeldatud hiljemalt '''27.05.2018'''
** Retsensioonid klientrakenduste kohta peavad tehtud olema '''03.06.2018'''


<!--* '''Meeskonna kokkuvõttev aruanne'''
* '''XML fail'''
** Meeskonnatöö kokkuvõttev aruanne peab olema valmis, esitatud ja ja wikilehel kirjeldatud hiljemalt 28.mai 2013
** XML fail, stiilifail ja skeemifail peavad olema valmis ja wikilehel kirjeldatud hiljemalt '''01.06.2018'''
** Arvamused Meeskonnatöö kokkuvõtva aruande ja esitluse kohta tuleb esitada hiljemalt päev enne eksamit
** Retsensioonid XML-failide kohta peavad tehtud olema '''05.06.2018'''
** '''Meeskonna kokkuvõttev aruanne ja töö lõplik tulemus''' tuleb esitleda!
-->


==Retsensioonid==
==Retsensioonid==


Iga grupp peab tegema lisaks igale grupitööle vastavalt ka 2 retsensiooni. Retsensioonid võib teha vabalt valitud gruppide tööde kohta. Tingimuseks on see, et ühe töö kohta saab teha maksimaalselt kolm retsensiooni.
Retsensioonid võib teha vabalt valitud gruppide tööde kohta. Tingimuseks on see, et ühe töö kohta saab teha maksimaalselt kolm retsensiooni.


Seega kokku tuleb esitada 6 retsensiooni ühel grupil.
Seega kokku tuleb esitada 3 retsensiooni ühel grupil.


<!--
<!--
Line 97: Line 89:


==Projekti kaitsmisele registreerumine==
==Projekti kaitsmisele registreerumine==
Siia lisada meeskonna nimetus ja wiki leht. Palun aegu täita järjest võimaluse korral.


=Veebiteenused=
<!-- ==Loengud== -->
Käesolevas blokis räägitakse veebiteenuste loomisest kasutades Microsofti tehnoloogiaid nagu Microsoft Windows Communication Foundation ja ASP.NET MVC Web API


Esmaspäev - 25.mai
Antud kursuse raames käsitletakse kahte liiki veebiteenuseid:
*12:00 - Tab
*SOAP protokollil baseeruvad teenused
*12:15 -
*RESTful veebitennused
*12:30 - Liisa ja Poisid
*12:45 -
*13:00 -
*13-15 -


Teisipäev - 26.mai
==Veebiteenused==
*[https://www.w3.org/TR/2004/NOTE-ws-gloss-20040211/#webservice Veebiteenuse definitsioon]
*[http://www.service-architecture.com/articles/web-services/web_services_explained.html Lühike ülevaade Rest teenustest ja SOAPist]


*10:00 - Variable Moods II (recipe)
===REST teenused===
*10:15 - Meeskond Valar Morghulis
Alljärgnevalt on teoreetiline lugemismaterjal, mis aitab lihtsustada REST teenuste põhimõtetest arusaamist.
*10:30 - Dot muzei
*10:45 -
*11:00 -
*11:15 -


Neljapäev - 28.mai
*[http://www.drdobbs.com/web-development/restful-web-services-a-tutorial/240169069 Sissejuhatus REST teenustesse]
*[https://www.ics.uci.edu/~fielding/pubs/dissertation/fielding_dissertation.pdf Roy Fieldingi doktoritöö ]
*[http://rest.elkstein.org/ Olulisemad mõisted ja mõned koodinäited REST teenustest]


*08:15 - Indiviid
'''REST teenuste loomine ASP.NET Core 2.0
*08:30 - KRTT
*08:45 - Hubris
*09:00 - VariableMoods I (eShop)
*09:15 - Bananaphone
*09:30 - Error405


=Teemad=
=XML failivorming ja sellega seotud tehnoloogiad=


==XML failivorming==
'''REST teenuste loomine(Web API2)'''
<!--===Loengusalvestused===
Alljärgnevalt on toodud välja materjalid, kus räägitakse kuidas ASP.NET Web API abil luua veebiteenuseid.
*[http://www.asp.net/web-api Üleüldine web api leht, kus koodi ja näiteid uuendatakse pidevalt]
*[http://www.asp.net/web-api/overview/getting-started-with-aspnet-web-api/tutorial-your-first-web-api REST teenuste loomine]
*[http://www.asp.net/web-api/overview/creating-web-apis/creating-a-web-api-that-supports-crud-operations Creating a Web API that Supports CRUD Operations]


* '''Esimese loengu salvestus http://enos.itcollege.ee/~htahis/VRII/WR2%20-%20Loeng%201/WR2%20-%20Loeng%201.html'''
===SOAP teenused===
* '''Teise loengu salvestus http://echo360.e-uni.ee/ess/echo/presentation/9264dd7c-990a-4e3f-9045-1a7a5e04039b'''
*[http://www.w3schools.com/xml/xml_soap.asp SOAPi sissejuhatus ning olulisemad elemendid]
** Teise loengu näited: http://enos.itcollege.ee/~htahis/VRII/Praktikum2%20(loeng2)/
*[https://en.wikipedia.org/wiki/SOAP SOAPi ajalugu]
-->
*[https://docs.microsoft.com/en-us/dotnet/framework/wcf/ SOAP teenuste loomine kasutades WCFi]


===Teooria===  
===SOAP ja REST võrdlus===
* XML failid
*[http://blog.smartbear.com/apis/understanding-soap-and-rest-basics/ SOAP ja REST võrdlus]
**  Kippar, J. "XML rakendused", TLU:2009 http://minitorn.tlu.ee/~jaagup/kool/java/kursused/10/xmlrak/trykk/xmlrak.pdf
*[https://stormpath.com/blog/rest-vs-soap Erinevad stsenaariumid, kuna mida kasutada]
** XMLi rakendused ainekursuse leht by Jaagup Kippar http://minitorn.tlu.ee/~jaagup/kool/java/kursused/10/xmlrak/juht.html
** Introduction to XML by w3schools.com http://www.w3schools.com/xml/xml_whatis.asp
* XSLT - XML failide transformeerimine ehk stiilifailid
** XSLT Tutorial by w3schools.com http://www.w3schools.com/xsl/default.asp
 
[https://wiki.itcollege.ee/index.php/Praktikum:_XML_failide_valideerimine_(XSD,_DTD)_ning_XML_stiilide_(XSLT)_loomine_,_VR2.3 Lugemiseks ja harjutamiseks]
 
===Praktika===
 
<!--
* [[Praktikum: XML failide loomine vol 2, VR2.2]]
* [[Praktikum: XML failide lugemine ja muutmine .Net vahenditega, VR2.3]]
 
-->
<!-- * [[Praktikum: XML failide loomine ja nende skeemifailid(XSD), VR2.1]]
*[[Praktikum: XML andmefailidest päringute tegemine VR2.2]]
* [[Praktikum: XML failide valideerimine (XSD, DTD) ning XML stiilide (XSLT) loomine , VR2.3]]-->
 
*[[Praktikum: XML failide loomine(VR2.1)]]
*[[Praktikum: XML andmefailidest päringute loomine(VR2.2)]]
*[[Praktikum: XML skeemifailid(VR2.3)]]
 
=Veebiteenused=
<!-- ==Loengud== -->
Käesolevas blokis räägitakse veebiteenuste loomisest kasutades Microsofti tehnoloogiaid nagu Microsoft Windows Communication Foundation ja ASP.NET MVC Web API
 
Antud kursuse raames käsitletakse kahte liiki veebiteenuseid:
*SOAP protokollil baseeruvad teenused
*RESTful veebitennused


==Andmebaasi loomine==
==Andmebaasi loomine==
Line 209: Line 168:
Kui kasutada Code First lähenemist, tuleb valida ka strateegia andmebaasi loomiseks, mis on kirjeldatud siin: http://www.entityframeworktutorial.net/code-first/database-initialization-strategy-in-code-first.aspx
Kui kasutada Code First lähenemist, tuleb valida ka strateegia andmebaasi loomiseks, mis on kirjeldatud siin: http://www.entityframeworktutorial.net/code-first/database-initialization-strategy-in-code-first.aspx


Vt. Code First Migrations lubamine projetkis: http://www.asp.net/mvc/overview/getting-started/getting-started-with-ef-using-mvc/migrations-and-deployment-with-the-entity-framework-in-an-asp-net-mvc-application
Vt. Code First Migrations lubamine projektis: http://www.asp.net/mvc/overview/getting-started/getting-started-with-ef-using-mvc/migrations-and-deployment-with-the-entity-framework-in-an-asp-net-mvc-application
*pööra tähelepanu andmebaasi uuendamisele, kui mudel on muutunud ''add-migration'' käsk


==Lihtsamate päringute loomine kasutades LINQt==
==Lihtsamate päringute loomine kasutades LINQt==
===Teooria===
===Teooria===
*[[Linq päringukeel]]
*[[Linq päringukeel]]
*[https://msdn.microsoft.com/en-us/library/bb738550(v=vs.110).aspx LINQs olemasolevad meetodid]
*101 LINQ Samples: http://code.msdn.microsoft.com/101-LINQ-Samples-3fb9811b
*101 LINQ Samples: http://code.msdn.microsoft.com/101-LINQ-Samples-3fb9811b
*Getting Started with LINQ in C#: http://msdn.microsoft.com/en-us/library/bb397933.aspx
*Getting Started with LINQ in C#: http://msdn.microsoft.com/en-us/library/bb397933.aspx
Line 221: Line 182:
[[Praktikum:LINQ päringukeele meeldetuletus VR2.3]] -->
[[Praktikum:LINQ päringukeele meeldetuletus VR2.3]] -->


==Veebiteenuste loomine==
==Arendusmustrid ja põhimõtted==
*Creating a Web API that Supports CRUD Operations: http://www.asp.net/web-api/overview/creating-web-apis/creating-a-web-api-that-supports-crud-operations
Üleüldine pilt: https://i-msdn.sec.s-msft.com/dynimg/IC340233.png


==Andmebaasiga ühendumine==
===Repositoorium===
* Database Connectivity using WebService http://www.c-sharpcorner.com/UploadFile/raj1979/DatabaseWebService01142008011107AM/DatabaseWebService.aspx
*https://msdn.microsoft.com/en-us/library/ff649690.aspx
*http://www.codeproject.com/Articles/526874/Repository-pattern-done-right
*https://www.youtube.com/watch?v=rtXpYpZdOzM
*http://deviq.com/repository-pattern/
 
===Sõltuvuse süstimine===
*http://www.codeproject.com/Articles/615139/An-Absolute-Beginners-Tutorial-on-Dependency-Inver
*https://msdn.microsoft.com/en-us/library/hh323705(v=vs.100).aspx
*http://www.jeremybytes.com/downloads/dependencyinjection.pdf
*http://martinfowler.com/articles/injection.html
 
===Äriloogika===


==Veebiteenuste turvamine==
==Veebiteenuste turvamine==
* Securing ASP.Net Web Services with Forms Authentication http://dotnetslackers.com/articles/aspnet/Securing-ASP-Net-Web-Services-with-Forms-Authentication.aspx
* ASP.NET Web API turvamine ja erinevad võimalused https://www.asp.net/web-api/overview/security
*[[Praktikum: Windows Communication Foundation teenuse turvamine, VR2.9]]
* [https://docs.microsoft.com/en-us/dotnet/framework/wcf/feature-details/common-security-scenarios WCF teenuste turvamine]


==Praktika==
==Praktika==
Line 236: Line 208:
*[[Praktikum VR 2.5 Päringud Andmebaasist]]
*[[Praktikum VR 2.5 Päringud Andmebaasist]]
-->
-->
=XML failivorming ja sellega seotud tehnoloogiad=
==XML failivorming==
<!--===Loengusalvestused===
* '''Esimese loengu salvestus http://enos.itcollege.ee/~htahis/VRII/WR2%20-%20Loeng%201/WR2%20-%20Loeng%201.html'''
* '''Teise loengu salvestus http://echo360.e-uni.ee/ess/echo/presentation/9264dd7c-990a-4e3f-9045-1a7a5e04039b'''
** Teise loengu näited: http://enos.itcollege.ee/~htahis/VRII/Praktikum2%20(loeng2)/
-->
===Teooria===
* XML failid
**  Kippar, J. "XML rakendused", TLU:2009 http://minitorn.tlu.ee/~jaagup/kool/java/kursused/10/xmlrak/trykk/xmlrak.pdf
** XMLi rakendused ainekursuse leht by Jaagup Kippar http://minitorn.tlu.ee/~jaagup/kool/java/kursused/10/xmlrak/juht.html
** Introduction to XML by w3schools.com http://www.w3schools.com/xml/xml_whatis.asp
* XSLT - XML failide transformeerimine ehk stiilifailid
** XSLT Tutorial by w3schools.com http://www.w3schools.com/xsl/default.asp
[https://wiki.itcollege.ee/index.php/Praktikum:_XML_failide_valideerimine_(XSD,_DTD)_ning_XML_stiilide_(XSLT)_loomine_,_VR2.3 Lugemiseks ja harjutamiseks]
===Praktika===
<!--
* [[Praktikum: XML failide loomine vol 2, VR2.2]]
* [[Praktikum: XML failide lugemine ja muutmine .Net vahenditega, VR2.3]]
-->
<!-- * [[Praktikum: XML failide loomine ja nende skeemifailid(XSD), VR2.1]]
*[[Praktikum: XML andmefailidest päringute tegemine VR2.2]]
* [[Praktikum: XML failide valideerimine (XSD, DTD) ning XML stiilide (XSLT) loomine , VR2.3]]-->
*[[Praktikum: XML failide loomine(VR2.1)]]
*[[Praktikum: XML failide valideerimine (XSD, DTD) ning XML stiilide (XSLT) loomine , VR2.3]]
<!-- *[[Praktikum: XML andmefailidest päringute loomine(VR2.2)]]
*[[Praktikum: XML skeemifailid(VR2.3)]]-->
=JSON=


=Veebiteenuste kasutamine=
=Veebiteenuste kasutamine=
=Teooria=
*REST teenusele kliendi loomine kasutades C# programmeerimiskeelt: https://docs.microsoft.com/en-us/aspnet/web-api/overview/advanced/calling-a-web-api-from-a-net-client
*[[Angularis klientrakenduse loomine]]
==Praktika==
==Praktika==
<!--
<!--

Latest revision as of 00:01, 10 May 2018

Võrgurakendused II: hajussüsteemide ehitamine

Eesmärk

Õppeaine eesmärgiks on tutvustada õppijale XML märgendikeelel baseeruvaid hajuslahendusi ja nende loomise võimalusi ning arendada õppijates .Net raamistiku vahenditega tarkvara arendamisoskuseid

Lühitutvustus

Õppeaines käsitletakse XML märgendikeelt ning veebiteenuseid. Kursuse käigus disainitakse, koostatakse ja testitakse veebiteenustel ning XML märgendikeelel põhinevaid lahendusi.

Õpiväljundid

  • Õppija oskab kasutada XML märgendikeelt keerulisema strukuuriga andmete hoidmiseks ja esitamiseks struktureeritud kujul.
  • Õppija oskab avalikult kättesaadavate juhendite abil koostada lihtsamaid klientrakendusi levinud veebiteenustele.
  • Õppija oskab luua lihtsamaid veebiteenuseid kasutades selleks .Net raamistiku tehnoloogiaid ning vahendeid.
  • Õppija teab veebiteenuste turvamiseks kasutatavaid tehnoloogiaid ja vahendeid ning oskab leid tavaolukorras rakendada.
  • Õppija teab ning oskab kirjeldada hajusrakenduste kasutusvaldkondi ning nende arhitektuure.
  • Õppija oskab töötada 3-5 liikmelises meeskonnas.

Õppejõud

Mait Poska

  • mait.poska<ät> itcollege.ee või mait.poska <ät> netgroup.ee
  • Skype: minamait
  • +372 53 469 734

Hinne

  • Hinne (100p / 100%) - Hinde kujunemisel arvestatakse kahte tööd:
    • Kodutöö aines "Võrgurakendused II: hajussüsteemide ehitamine" 2018, mis moodustab hindest 55%. 55p (koosneb kolmest osast) (vähemalt 51%)
      • Veebiteenus 18p
        • Veebiteenuse analüüs 3p
        • Retsensioonid Veebiteenuse kohta 3p
      • Klientrakendus veebiteenusele 18p
        • Retsensioonid Klientrakenduse kohta 3p
      • XML (xsd, xslt) 5p
        • Retsensioonid XML-i kohta 2p
      • Esitlus 3p
    • Individuaalne teadmiste kontroll 45p
      • Teooria (Test) 20p (tulemus vähemalt 51%)
      • Praktiline (Programmeerimine) 25p (tulemus vähemalt 51%)


Võrgurakendused II: 2011 kevadel valminud kodutööd

Tähtajad

  • Veebiteenus
    • Veebiteenuse analüüs peab olema valmis ja kirjeldatud wikilehel hiljemalt 01.04.2018
    • Veebiteenus peab olema valmis, esitatud ja ja wikilehel kirjeldatud hiljemalt 27.05.2018
    • Retsensioonid veebiteenuste kohta peavad tehtud olema 03.06.2018
  • Klientrakendused
    • Klientrakendused peavad olema valmis, esitatud ja ja wikilehel kirjeldatud hiljemalt 27.05.2018
    • Retsensioonid klientrakenduste kohta peavad tehtud olema 03.06.2018
  • XML fail
    • XML fail, stiilifail ja skeemifail peavad olema valmis ja wikilehel kirjeldatud hiljemalt 01.06.2018
    • Retsensioonid XML-failide kohta peavad tehtud olema 05.06.2018

Retsensioonid

Retsensioonid võib teha vabalt valitud gruppide tööde kohta. Tingimuseks on see, et ühe töö kohta saab teha maksimaalselt kolm retsensiooni.

Seega kokku tuleb esitada 3 retsensiooni ühel grupil.

Lisaks tuleb silmas pidada retsensioonide minimaalseid pikkusi projektide kohta. Retsensioonide minimaalsed pikkused

Meeskonnad

Ühte meeskonda võib kuuluda 3 kuni 4 tudengit. Gruppi kuuluvate tudengite nimekiri kinnitatakse esimese projekti esitamisega.

Projekti kaitsmisele registreerumine

Siia lisada meeskonna nimetus ja wiki leht. Palun aegu täita järjest võimaluse korral.

Veebiteenused

Käesolevas blokis räägitakse veebiteenuste loomisest kasutades Microsofti tehnoloogiaid nagu Microsoft Windows Communication Foundation ja ASP.NET MVC Web API

Antud kursuse raames käsitletakse kahte liiki veebiteenuseid:

  • SOAP protokollil baseeruvad teenused
  • RESTful veebitennused

Veebiteenused

REST teenused

Alljärgnevalt on teoreetiline lugemismaterjal, mis aitab lihtsustada REST teenuste põhimõtetest arusaamist.

REST teenuste loomine ASP.NET Core 2.0


REST teenuste loomine(Web API2) Alljärgnevalt on toodud välja materjalid, kus räägitakse kuidas ASP.NET Web API abil luua veebiteenuseid.

SOAP teenused

SOAP ja REST võrdlus

Andmebaasi loomine

Enne kui saame hakata looma veebiteenuseid, mis tagastavad erinevaid andmeid või võimdaldavad neid salvestada, on meil vaja andmebaasi, kus hoida informatsioonid. Käesoleva kursuse raames kasutatakse andmebaasi loomiseks Entity Frameworki(EF) ja Code First lähenemist.

Entity Framework

Enne Entity Frameworkiga tutvumist, tuleb lahti seletada mõiste ORM. ORM pakub raamistiku objektorienteeritud domeeni mudeli sidumiseks (mapping) traditsiooniliste relatsiooniandmebaasidega.

Entity Framework on ORM, mis võimaldab .NET arendajatel tegeleda relatsiooniliste andmetega, kasutades samal ajal ära domeenimudelied. EFi kasutades ei ole vaja andmetele ligipääsuks andmebaasis kirjutada ise koodi, vaid ORM genereerib selle meie eest.

EFi (või mõne muu ORMi) kasutamine võimaldab hoida kokku arendusaega, kuna arendajal ei ole vajalik kirjutada SQLi ega eraldi koodi, et andmebaasis olevatele andmetele ligipääseda. Samas tuleb olla ORMi kasutamisega ettevaatlik, kuna võrreldes traditsiooniliselt kirjutatud SQLiga on selle jõudlus ~30% nõrgem.

Vt. Enity Frameworki raamistiku API: https://msdn.microsoft.com/en-us/library/dn223258(v=vs.113).aspx

Andmebaasi loomine kasutades Entity Frameworki

Tänasel päeval on Entity Frameworki puhul kuuldud arvatavasti kõige rohkem Code First lähenemisest, kus kõige pealt luuakse domeenimudel(klassid) ning selle põhjal genereeritakse andmebaas. Samas ei tohi unustada, et tarkvara on võimalik arendada ka stiilis, kus andmebaas on juba olemas ning selle põhjal luuakse domeenimudel Sellist lähenemist kutsutakse Database First arendamiseks.


Code First

Nagu eelpool mainitud, siis selle kursuse käigus vaatleme eelkõige "kood enne" lähenemist.

Esimese sammuna peaksime ära kirjeldama oma andmemudeli. Code First lähenemise puhul ei pea arendaja teoorias andmebaasist midagi teadma, vaid peab ära defineerima lihtsalt andmestruktuurid ning andmebaas luuakse selle põhjal. Paratamtult tuleb siiski keerulisemate andmete mudelleerimise juures mõista ka relatsioonilise andmebaasi tööpõhimõtteid.

Vt. lihtsa andmebaasi loomist siit: https://msdn.microsoft.com/en-us/data/jj193542

Nagu ka videost on näha, siis üks põhiline probleem, millega kokku puutume on domeenimudeli muutumine. Meie objekt-orienteeritud maailmas ei ole andmemudeli(klassi) struktuuri muutmine üldjuhul keerukas(kui on vaja lisada mõni väli, või midagi ära kaotada). Kui aga mängus on ka andmebaas, siis peab arvestama, et nende muutuste tegemine on keerulisem, kuna raamistik peab hoolitsema selle eest, et andmebaasis ei tekiks andmekadusid. Muutused domeenimudelis toovad kaasa ka muutused andmebaasi struktuurides. Selle jaoks tuleb kasutusele võtta Code First Migrations, kus kirjeldatakse ära, kuidas muutused andmebaasi struktuuris peaks toimuma. Nagu eelpool toodud näites on näha, siis õnneks suudab migratsioone raamistik üldjoontes ise genereerida.

Kui kasutada Code First lähenemist, tuleb valida ka strateegia andmebaasi loomiseks, mis on kirjeldatud siin: http://www.entityframeworktutorial.net/code-first/database-initialization-strategy-in-code-first.aspx

Vt. Code First Migrations lubamine projektis: http://www.asp.net/mvc/overview/getting-started/getting-started-with-ef-using-mvc/migrations-and-deployment-with-the-entity-framework-in-an-asp-net-mvc-application

  • pööra tähelepanu andmebaasi uuendamisele, kui mudel on muutunud add-migration käsk

Lihtsamate päringute loomine kasutades LINQt

Teooria

Praktika

Arendusmustrid ja põhimõtted

Üleüldine pilt: https://i-msdn.sec.s-msft.com/dynimg/IC340233.png

Repositoorium

Sõltuvuse süstimine

Äriloogika

Veebiteenuste turvamine

Praktika

XML failivorming ja sellega seotud tehnoloogiad

XML failivorming

Teooria

Lugemiseks ja harjutamiseks

Praktika

JSON

Veebiteenuste kasutamine

Teooria


Praktika

Praktikum: REST veebiteenusele klientrakenduse loomine

Arhiiv

2012 Kevad

Loengud

Praktikumid

Meeskonnad 2012

  • Meeskond "-.-"*
    • Erki Miilberg (projektijuht)
    • Kalev Vallsalu
    • Oliver Naaris
    • Margo Kuustik
  • Meeskond "PhoneBook"
    • Lauri Jansen
    • Tanel Jüris
    • Madis Rääk
  • Meeskond "LLL"
    • Joonas Püüa
    • Janno Toomingas
    • Janek Kople
    • Roland Krindal
  • Meeskond "Peeter VR2"
    • Lennart Lüsi
    • Kairo Koik
    • Marek Kikas
    • Kaivar Kull

Pages in category "Võrgurakendused II: hajussüsteemide ehitamine"

The following 49 pages are in this category, out of 49 total.