SlideShare une entreprise Scribd logo
1  sur  23
Télécharger pour lire hors ligne
INPTP
rekapitulace zs 2016/17
Rozšiřující metody
Jedná se o zvláštní druh statické metody, která je volána, jako kdyby se
jednalo o nestatickou metodu. Pro uživatele není žádný rozdíl mezi voláním
rozšiřující a nestatické metody.
Syntaxe
deklarace prvního parametru rozšiřující metody:
this typ identifikátor
Odložené vykonávání
Metody, které vrací sekvenci, jako např. metoda Where, implementují tzv.
odložené vykonání (angl. deferred execution).
Tyto metody pouze vrací instanci nějaké třídy, která obsahuje informace
potřebné k provedení příslušné akce.
Akce je vykonána až při volání metody GetEnumerator přímo nebo
prostřednictvím cyklu foreach. Vykonání akce se provede znovu při každém
volání metody GetEnumerator.
Řazení
Pro seřazení sekvence vzestupně slouží metoda OrderBy.
Metoda seřadí zadanou sekvenci podle klíče, který poskytuje zadaný delegát.
Klíče porovnává pomocí vlastnosti Default třídy Comparer<TKey>.
Deklarace proměnné bez udání typu
Lokální proměnnou lze deklarovat bez udání typu. Místo označení typu lze
použít klíčové slovo var. Jedná se o tzv. deklaraci implicitně typové lokální
proměnné.
Syntaxe:
var identifikátor inicializace;
Anonymní typ
Anonymní typ slouží k zapouzdření množiny vlastností určených pouze pro
čtení do instance nepojmenované třídy. Jméno typu je generováno
překladačem a není ve zdrojovém kódu přístupné.
var osoba = new { Jmeno = "Josef", Vek = 10*2 };
Technologie LINQ
Dotazovací jazyk pro získání potřebných dat z určitého zdroje (databáze, XML
soubory, kolekce v paměti, …)
Integrovány přímo do programovacího jazyka
● Kontrola už v době překladu.
Technologie LINQ - syntaxe, ukázka
int maximum = (from cislo in cisla
where cislo % 2 == 1
orderby cislo
select cislo).Max();
List<int> lichaCislaList = (from cislo in cisla
where cislo % 2 == 1
orderby cislo
select cislo).ToList();
Technologie LINQ - doporučení
Doporučuje se, aby jméno dotazovací proměnné obsahovalo slovo „query“,
např. lichaCislaQuery zatímco proměnné, které neobsahují dotaz, ale
skutečnou hodnotu, nemají obsahovat ve svém jménu slovo „query“.
Pravidla pro psaní metod
1. Měly by být malé!
2. Měly by být ještě menší!
ADO.NET
ADO.NET (Microsoft ActiveX Data Objects .NET) představuje množinu tříd
nabízejících služby pro přístup k datům a tvorbu databázových aplikací. Daty
máme nyní na mysli převážně informace uložené v databázích. Ať již se jedná
o data v databázích například na Microsoft SQL Serveru či data zpřístupněná
přes OLE DB nebo XML. Mezi jeho přednosti patří především jednoduchý
způsob použití, rychlost při zpracování a další. Stačí vytvořit spojení se
serverem, s kterým budeme chtít pracovat, pomocí zvoleného adaptéru a
zadaného dotazu získat z databáze data a ty pak načíst do některé z
připravených konstrukcí pro práci s daty z tabulek.
https://youtu.be/yE9sWvuAlxo
WPF
WPF animace
● Generátor hodnot, které jsou postupně přiřazovány některé z vlastností
kontroly.
● Animovat můžeme pouze vlastnosti typu DependencyProperty.
Vlastnosti WPF animací
● From – počáteční hodnota.
● To – koncová hodnota.
● Duration – délka animace ve formátu
„hh:mm:ss“
● AutoReverse – vlastnost říkající, jestli se
má provést animace po dokončení ještě
jednou ale obráceně.
● RepeatBehivior – počet opakování („2x“,
„3x“, …, „Forever“).
● Storyboard.TargetProperty – animovaná
vlastnost.
● Storyboard.TargetName – název cílového
elementu.
Typy WPF animací
● Základní
● Frame
● Path
WPF styly
● Obdoba CSS u webových stránek.
● Definují se v párovém elementu <Style>.
● Element <Setter> nastavuje vlastnosti kontroly.
Co to je ASP.NET MVC?
Technologie pro tvorbu sofistikovaných webových aplikací.
● Založeno na návrhovém vzoru Model-View-Controller
● Umožňuje rychlý agilní vývoj
● Využití nejnovějších webových standardů
ASP.NET MVC 5 - routování
Url adresy neobsahují adresu fyzického souboru, jako např.:
http://server/application/Products.aspx?id=4
Ale požívají “url patterns”:
Adresa: http://server/application/Products/show/beverages
odpovídá vzoru: server/application/{area}/{action}/{category}
>> čitelnější i pro lidi
>> router se pak stará o správný překlad url (podle šablony) na fyzický soubor (controller) a příslušnou
metodu a s příslušnými parametry
ASP.NET MVC 5 - Razor templates
ASP.NET MVC 5 - Razor templates
Znak @
Začínají jím bloky kódu
<!-- Single statement blocks -->
@{ var total = 7; }
@{ var myMessage = "Hello World"; }
<!-- Inline expressions -->
<p>The value of your account is: @total </p>
<p>The value of myMessage is: @myMessage</p>
<!-- Multi-statement block -->
@{
var greeting = "Welcome to our site!";
var weekDay = DateTime.Now.DayOfWeek;
var greetingMessage = greeting + " Today is: " +
weekDay;
}
<p>The greeting is: @greetingMessage</p>
Aplikace s více podprocesy
▪ Nejspolehlivější způsob vytvoření aplikace s více podprocesy je použít
komponentu BackgroundWorker (viz dále).
▪ Pro větší kontrolu nad chováním podprocesů a aplikace, můžeme podprocesy
spravovat sami.
▪ Třída Thread
Třída ThreadPool
▪ Vytvoření a rušení podprocesu pomocí třídy Thread je časově náročné. Proto
modul CLR nabízí fond již vytvořených pracovních podprocesů k okamžitému
použití. Tento fond je přístupný prostřednictvím třídy ThreadPool.
▪ Po ukončení pracovního podprocesu se tento podproces vrátí zpět do fondu k
opakovanému použití. Pokud je fond podprocesů vyčerpaný, operace
požadující své spuštění, je zařazena do fronty a čeká, dokud se některý
podproces nevrátí zpět do fondu.
Třída ThreadPool
▪ Maximální a minimální počet podprocesů
▪ Pro každý proces je k dispozici samostatný fond podprocesů. Počet operací, které čekají ve frontě
na uvolnění podprocesu z fondu, není omezen, resp. je limitován pouze operační pamětí počítače.
Fond podprocesů limituje počet současně aktivních (běžících) podprocesů. Od verze .NET 4.0
implicitní maximální velikost fondu podprocesů závisí na několika faktorech, např. velikosti
virtuálního adresového prostoru. Tuto velikost je možné zjistit nebo nastavit voláním metod:
▪ void GetMaxThreads(out int workerThreads, out int completionPortThreads)
▪ bool SetMaxThreads(int workerThreads, int completionPortThreads)
▪ Kódy: https://goo.gl/jwihA2

Contenu connexe

Tendances

Usnadněte si soužití s Doctrine
Usnadněte si soužití s DoctrineUsnadněte si soužití s Doctrine
Usnadněte si soužití s DoctrineFilip Procházka
 
Doctrine: co dělat, když entity nestačí
Doctrine: co dělat, když entity nestačíDoctrine: co dělat, když entity nestačí
Doctrine: co dělat, když entity nestačíFilip Procházka
 
INPTP přednáška 03 2016
INPTP přednáška 03 2016INPTP přednáška 03 2016
INPTP přednáška 03 2016Jan Hřídel
 
Doctrine - Co dělat když entity nestačí [Filip Procházka] (7. sraz, Praha)
Doctrine - Co dělat když entity nestačí [Filip Procházka] (7. sraz, Praha)Doctrine - Co dělat když entity nestačí [Filip Procházka] (7. sraz, Praha)
Doctrine - Co dělat když entity nestačí [Filip Procházka] (7. sraz, Praha)Péhápkaři
 
Na co si dát v Javascriptu pozor? - Barcamp Hradec Králové 2015
Na co si dát v Javascriptu pozor? - Barcamp Hradec Králové 2015Na co si dát v Javascriptu pozor? - Barcamp Hradec Králové 2015
Na co si dát v Javascriptu pozor? - Barcamp Hradec Králové 2015angular-cz
 
Solid principy v oop návrhu
Solid principy v oop návrhuSolid principy v oop návrhu
Solid principy v oop návrhuProfinit
 

Tendances (10)

Usnadněte si soužití s Doctrine
Usnadněte si soužití s DoctrineUsnadněte si soužití s Doctrine
Usnadněte si soužití s Doctrine
 
Kdyby/Translation
Kdyby/TranslationKdyby/Translation
Kdyby/Translation
 
Doctrine: co dělat, když entity nestačí
Doctrine: co dělat, když entity nestačíDoctrine: co dělat, když entity nestačí
Doctrine: co dělat, když entity nestačí
 
INPTP přednáška 03 2016
INPTP přednáška 03 2016INPTP přednáška 03 2016
INPTP přednáška 03 2016
 
Doctrine - Co dělat když entity nestačí [Filip Procházka] (7. sraz, Praha)
Doctrine - Co dělat když entity nestačí [Filip Procházka] (7. sraz, Praha)Doctrine - Co dělat když entity nestačí [Filip Procházka] (7. sraz, Praha)
Doctrine - Co dělat když entity nestačí [Filip Procházka] (7. sraz, Praha)
 
Kdyby/Redis
Kdyby/RedisKdyby/Redis
Kdyby/Redis
 
CQRS v rohlik.cz
CQRS v rohlik.czCQRS v rohlik.cz
CQRS v rohlik.cz
 
Na co si dát v Javascriptu pozor? - Barcamp Hradec Králové 2015
Na co si dát v Javascriptu pozor? - Barcamp Hradec Králové 2015Na co si dát v Javascriptu pozor? - Barcamp Hradec Králové 2015
Na co si dát v Javascriptu pozor? - Barcamp Hradec Králové 2015
 
Testování v PHP
Testování v PHPTestování v PHP
Testování v PHP
 
Solid principy v oop návrhu
Solid principy v oop návrhuSolid principy v oop návrhu
Solid principy v oop návrhu
 

Similaire à INPTP Rekapitulace

Představení Ruby on Rails
Představení Ruby on RailsPředstavení Ruby on Rails
Představení Ruby on Railsigloonet
 
.NET v SQL Serveru
.NET v SQL Serveru.NET v SQL Serveru
.NET v SQL ServeruJan Drozen
 
Honza Doleček - Jak používáme NewRelic Posobota 2013-05
Honza Doleček - Jak používáme NewRelic Posobota 2013-05Honza Doleček - Jak používáme NewRelic Posobota 2013-05
Honza Doleček - Jak používáme NewRelic Posobota 2013-05PeckaDesign.cz
 
Rozšiřitelnost ASP.NET MVC
Rozšiřitelnost ASP.NET MVCRozšiřitelnost ASP.NET MVC
Rozšiřitelnost ASP.NET MVCtopascz
 
Spring framework - J2EE S Lidskou Tvari
Spring framework - J2EE S Lidskou TvariSpring framework - J2EE S Lidskou Tvari
Spring framework - J2EE S Lidskou TvariRoman Pichlík
 
Využití chemie v procesu testování webových aplikací vytvořených pomocí techn...
Využití chemie v procesu testování webových aplikací vytvořených pomocí techn...Využití chemie v procesu testování webových aplikací vytvořených pomocí techn...
Využití chemie v procesu testování webových aplikací vytvořených pomocí techn...Michal Špaček
 
Trendy a nové možnosti test automation
Trendy a nové možnosti test automationTrendy a nové možnosti test automation
Trendy a nové možnosti test automationOndřej Machulda
 
2009 X33EJA Moderní Technologie Pro Vývoj JEE
2009 X33EJA Moderní Technologie Pro Vývoj JEE2009 X33EJA Moderní Technologie Pro Vývoj JEE
2009 X33EJA Moderní Technologie Pro Vývoj JEEMartin Ptáček
 
Jan Čislinský: Seznámení se Sourcery aneb Základy metaprogramování ve Swiftu
Jan Čislinský: Seznámení se Sourcery aneb Základy metaprogramování ve SwiftuJan Čislinský: Seznámení se Sourcery aneb Základy metaprogramování ve Swiftu
Jan Čislinský: Seznámení se Sourcery aneb Základy metaprogramování ve Swiftumdevtalk
 
4320 vzdaleny pristup_k_serveru_net_ware
4320 vzdaleny pristup_k_serveru_net_ware4320 vzdaleny pristup_k_serveru_net_ware
4320 vzdaleny pristup_k_serveru_net_warepisaceku
 
20110511 Vývoj software - produktivně, efektivně, kvalitně
20110511 Vývoj software - produktivně, efektivně, kvalitně20110511 Vývoj software - produktivně, efektivně, kvalitně
20110511 Vývoj software - produktivně, efektivně, kvalitněJiří Mareš
 
2007 Technologie Pro Tvorbu Java Enterprise Aplikací
2007 Technologie Pro Tvorbu Java Enterprise Aplikací2007 Technologie Pro Tvorbu Java Enterprise Aplikací
2007 Technologie Pro Tvorbu Java Enterprise AplikacíMartin Ptáček
 
ASP.NET MVC 3 and SQL Server interoperability overview [CZ]
ASP.NET MVC 3 and SQL Server interoperability overview [CZ]ASP.NET MVC 3 and SQL Server interoperability overview [CZ]
ASP.NET MVC 3 and SQL Server interoperability overview [CZ]Vítězslav Šimon
 
Jak vypadá ideální bankovní API?
Jak vypadá ideální bankovní API? Jak vypadá ideální bankovní API?
Jak vypadá ideální bankovní API? Petr Dvorak
 

Similaire à INPTP Rekapitulace (20)

Představení Ruby on Rails
Představení Ruby on RailsPředstavení Ruby on Rails
Představení Ruby on Rails
 
.NET v SQL Serveru
.NET v SQL Serveru.NET v SQL Serveru
.NET v SQL Serveru
 
TNPW2-2011-06
TNPW2-2011-06TNPW2-2011-06
TNPW2-2011-06
 
Honza Doleček - Jak používáme NewRelic Posobota 2013-05
Honza Doleček - Jak používáme NewRelic Posobota 2013-05Honza Doleček - Jak používáme NewRelic Posobota 2013-05
Honza Doleček - Jak používáme NewRelic Posobota 2013-05
 
ASP.NET 3.5 / futures
ASP.NET 3.5 / futuresASP.NET 3.5 / futures
ASP.NET 3.5 / futures
 
Rozšiřitelnost ASP.NET MVC
Rozšiřitelnost ASP.NET MVCRozšiřitelnost ASP.NET MVC
Rozšiřitelnost ASP.NET MVC
 
Spring framework - J2EE S Lidskou Tvari
Spring framework - J2EE S Lidskou TvariSpring framework - J2EE S Lidskou Tvari
Spring framework - J2EE S Lidskou Tvari
 
Využití chemie v procesu testování webových aplikací vytvořených pomocí techn...
Využití chemie v procesu testování webových aplikací vytvořených pomocí techn...Využití chemie v procesu testování webových aplikací vytvořených pomocí techn...
Využití chemie v procesu testování webových aplikací vytvořených pomocí techn...
 
Trendy a nové možnosti test automation
Trendy a nové možnosti test automationTrendy a nové možnosti test automation
Trendy a nové možnosti test automation
 
2009 X33EJA Moderní Technologie Pro Vývoj JEE
2009 X33EJA Moderní Technologie Pro Vývoj JEE2009 X33EJA Moderní Technologie Pro Vývoj JEE
2009 X33EJA Moderní Technologie Pro Vývoj JEE
 
Jan Čislinský: Seznámení se Sourcery aneb Základy metaprogramování ve Swiftu
Jan Čislinský: Seznámení se Sourcery aneb Základy metaprogramování ve SwiftuJan Čislinský: Seznámení se Sourcery aneb Základy metaprogramování ve Swiftu
Jan Čislinský: Seznámení se Sourcery aneb Základy metaprogramování ve Swiftu
 
ASP.NET MVC a TDD
ASP.NET MVC a TDDASP.NET MVC a TDD
ASP.NET MVC a TDD
 
4320 vzdaleny pristup_k_serveru_net_ware
4320 vzdaleny pristup_k_serveru_net_ware4320 vzdaleny pristup_k_serveru_net_ware
4320 vzdaleny pristup_k_serveru_net_ware
 
TNPW2-2013-05
TNPW2-2013-05TNPW2-2013-05
TNPW2-2013-05
 
20110511 Vývoj software - produktivně, efektivně, kvalitně
20110511 Vývoj software - produktivně, efektivně, kvalitně20110511 Vývoj software - produktivně, efektivně, kvalitně
20110511 Vývoj software - produktivně, efektivně, kvalitně
 
TNPW2-2012-05
TNPW2-2012-05TNPW2-2012-05
TNPW2-2012-05
 
2007 Technologie Pro Tvorbu Java Enterprise Aplikací
2007 Technologie Pro Tvorbu Java Enterprise Aplikací2007 Technologie Pro Tvorbu Java Enterprise Aplikací
2007 Technologie Pro Tvorbu Java Enterprise Aplikací
 
ASP.NET MVC 3 and SQL Server interoperability overview [CZ]
ASP.NET MVC 3 and SQL Server interoperability overview [CZ]ASP.NET MVC 3 and SQL Server interoperability overview [CZ]
ASP.NET MVC 3 and SQL Server interoperability overview [CZ]
 
Jak vypadá ideální bankovní API?
Jak vypadá ideální bankovní API? Jak vypadá ideální bankovní API?
Jak vypadá ideální bankovní API?
 
TechEd 2014 - MVC5
TechEd 2014 - MVC5TechEd 2014 - MVC5
TechEd 2014 - MVC5
 

Plus de Jan Hřídel

INPTP přednáška 01a 2016
INPTP přednáška 01a 2016INPTP přednáška 01a 2016
INPTP přednáška 01a 2016Jan Hřídel
 
KST/ICSHP - 5. a 6. přednáška
KST/ICSHP - 5. a 6. přednáškaKST/ICSHP - 5. a 6. přednáška
KST/ICSHP - 5. a 6. přednáškaJan Hřídel
 
KST/ICSHP - 3. a 4. přednáška
KST/ICSHP - 3. a 4. přednáškaKST/ICSHP - 3. a 4. přednáška
KST/ICSHP - 3. a 4. přednáškaJan Hřídel
 
KST/ICSHP - 2. přednáška
KST/ICSHP - 2. přednáškaKST/ICSHP - 2. přednáška
KST/ICSHP - 2. přednáškaJan Hřídel
 
KST/ICSHP - 1. přednáška
KST/ICSHP - 1. přednáškaKST/ICSHP - 1. přednáška
KST/ICSHP - 1. přednáškaJan Hřídel
 
Startup investor pitch
Startup investor pitchStartup investor pitch
Startup investor pitchJan Hřídel
 
Pokročilé techniky programování .NET a C#
Pokročilé techniky programování .NET a C#Pokročilé techniky programování .NET a C#
Pokročilé techniky programování .NET a C#Jan Hřídel
 

Plus de Jan Hřídel (10)

INPTP wpf
INPTP   wpfINPTP   wpf
INPTP wpf
 
INPTP přednáška 01a 2016
INPTP přednáška 01a 2016INPTP přednáška 01a 2016
INPTP přednáška 01a 2016
 
KST/ICSHP - 5. a 6. přednáška
KST/ICSHP - 5. a 6. přednáškaKST/ICSHP - 5. a 6. přednáška
KST/ICSHP - 5. a 6. přednáška
 
KST/ICSHP - 3. a 4. přednáška
KST/ICSHP - 3. a 4. přednáškaKST/ICSHP - 3. a 4. přednáška
KST/ICSHP - 3. a 4. přednáška
 
KST/ICSHP - 2. přednáška
KST/ICSHP - 2. přednáškaKST/ICSHP - 2. přednáška
KST/ICSHP - 2. přednáška
 
KST/ICSHP - 1. přednáška
KST/ICSHP - 1. přednáškaKST/ICSHP - 1. přednáška
KST/ICSHP - 1. přednáška
 
Startup investor pitch
Startup investor pitchStartup investor pitch
Startup investor pitch
 
Nástěnka 01
Nástěnka 01Nástěnka 01
Nástěnka 01
 
Nástěnka 02
Nástěnka 02Nástěnka 02
Nástěnka 02
 
Pokročilé techniky programování .NET a C#
Pokročilé techniky programování .NET a C#Pokročilé techniky programování .NET a C#
Pokročilé techniky programování .NET a C#
 

INPTP Rekapitulace

  • 2. Rozšiřující metody Jedná se o zvláštní druh statické metody, která je volána, jako kdyby se jednalo o nestatickou metodu. Pro uživatele není žádný rozdíl mezi voláním rozšiřující a nestatické metody. Syntaxe deklarace prvního parametru rozšiřující metody: this typ identifikátor
  • 3. Odložené vykonávání Metody, které vrací sekvenci, jako např. metoda Where, implementují tzv. odložené vykonání (angl. deferred execution). Tyto metody pouze vrací instanci nějaké třídy, která obsahuje informace potřebné k provedení příslušné akce. Akce je vykonána až při volání metody GetEnumerator přímo nebo prostřednictvím cyklu foreach. Vykonání akce se provede znovu při každém volání metody GetEnumerator.
  • 4. Řazení Pro seřazení sekvence vzestupně slouží metoda OrderBy. Metoda seřadí zadanou sekvenci podle klíče, který poskytuje zadaný delegát. Klíče porovnává pomocí vlastnosti Default třídy Comparer<TKey>.
  • 5. Deklarace proměnné bez udání typu Lokální proměnnou lze deklarovat bez udání typu. Místo označení typu lze použít klíčové slovo var. Jedná se o tzv. deklaraci implicitně typové lokální proměnné. Syntaxe: var identifikátor inicializace;
  • 6. Anonymní typ Anonymní typ slouží k zapouzdření množiny vlastností určených pouze pro čtení do instance nepojmenované třídy. Jméno typu je generováno překladačem a není ve zdrojovém kódu přístupné. var osoba = new { Jmeno = "Josef", Vek = 10*2 };
  • 7. Technologie LINQ Dotazovací jazyk pro získání potřebných dat z určitého zdroje (databáze, XML soubory, kolekce v paměti, …) Integrovány přímo do programovacího jazyka ● Kontrola už v době překladu.
  • 8. Technologie LINQ - syntaxe, ukázka int maximum = (from cislo in cisla where cislo % 2 == 1 orderby cislo select cislo).Max(); List<int> lichaCislaList = (from cislo in cisla where cislo % 2 == 1 orderby cislo select cislo).ToList();
  • 9. Technologie LINQ - doporučení Doporučuje se, aby jméno dotazovací proměnné obsahovalo slovo „query“, např. lichaCislaQuery zatímco proměnné, které neobsahují dotaz, ale skutečnou hodnotu, nemají obsahovat ve svém jménu slovo „query“.
  • 10. Pravidla pro psaní metod 1. Měly by být malé! 2. Měly by být ještě menší!
  • 11. ADO.NET ADO.NET (Microsoft ActiveX Data Objects .NET) představuje množinu tříd nabízejících služby pro přístup k datům a tvorbu databázových aplikací. Daty máme nyní na mysli převážně informace uložené v databázích. Ať již se jedná o data v databázích například na Microsoft SQL Serveru či data zpřístupněná přes OLE DB nebo XML. Mezi jeho přednosti patří především jednoduchý způsob použití, rychlost při zpracování a další. Stačí vytvořit spojení se serverem, s kterým budeme chtít pracovat, pomocí zvoleného adaptéru a zadaného dotazu získat z databáze data a ty pak načíst do některé z připravených konstrukcí pro práci s daty z tabulek.
  • 13. WPF animace ● Generátor hodnot, které jsou postupně přiřazovány některé z vlastností kontroly. ● Animovat můžeme pouze vlastnosti typu DependencyProperty.
  • 14. Vlastnosti WPF animací ● From – počáteční hodnota. ● To – koncová hodnota. ● Duration – délka animace ve formátu „hh:mm:ss“ ● AutoReverse – vlastnost říkající, jestli se má provést animace po dokončení ještě jednou ale obráceně. ● RepeatBehivior – počet opakování („2x“, „3x“, …, „Forever“). ● Storyboard.TargetProperty – animovaná vlastnost. ● Storyboard.TargetName – název cílového elementu.
  • 15. Typy WPF animací ● Základní ● Frame ● Path
  • 16. WPF styly ● Obdoba CSS u webových stránek. ● Definují se v párovém elementu <Style>. ● Element <Setter> nastavuje vlastnosti kontroly.
  • 17. Co to je ASP.NET MVC? Technologie pro tvorbu sofistikovaných webových aplikací. ● Založeno na návrhovém vzoru Model-View-Controller ● Umožňuje rychlý agilní vývoj ● Využití nejnovějších webových standardů
  • 18. ASP.NET MVC 5 - routování Url adresy neobsahují adresu fyzického souboru, jako např.: http://server/application/Products.aspx?id=4 Ale požívají “url patterns”: Adresa: http://server/application/Products/show/beverages odpovídá vzoru: server/application/{area}/{action}/{category} >> čitelnější i pro lidi >> router se pak stará o správný překlad url (podle šablony) na fyzický soubor (controller) a příslušnou metodu a s příslušnými parametry
  • 19. ASP.NET MVC 5 - Razor templates
  • 20. ASP.NET MVC 5 - Razor templates Znak @ Začínají jím bloky kódu <!-- Single statement blocks --> @{ var total = 7; } @{ var myMessage = "Hello World"; } <!-- Inline expressions --> <p>The value of your account is: @total </p> <p>The value of myMessage is: @myMessage</p> <!-- Multi-statement block --> @{ var greeting = "Welcome to our site!"; var weekDay = DateTime.Now.DayOfWeek; var greetingMessage = greeting + " Today is: " + weekDay; } <p>The greeting is: @greetingMessage</p>
  • 21. Aplikace s více podprocesy ▪ Nejspolehlivější způsob vytvoření aplikace s více podprocesy je použít komponentu BackgroundWorker (viz dále). ▪ Pro větší kontrolu nad chováním podprocesů a aplikace, můžeme podprocesy spravovat sami. ▪ Třída Thread
  • 22. Třída ThreadPool ▪ Vytvoření a rušení podprocesu pomocí třídy Thread je časově náročné. Proto modul CLR nabízí fond již vytvořených pracovních podprocesů k okamžitému použití. Tento fond je přístupný prostřednictvím třídy ThreadPool. ▪ Po ukončení pracovního podprocesu se tento podproces vrátí zpět do fondu k opakovanému použití. Pokud je fond podprocesů vyčerpaný, operace požadující své spuštění, je zařazena do fronty a čeká, dokud se některý podproces nevrátí zpět do fondu.
  • 23. Třída ThreadPool ▪ Maximální a minimální počet podprocesů ▪ Pro každý proces je k dispozici samostatný fond podprocesů. Počet operací, které čekají ve frontě na uvolnění podprocesu z fondu, není omezen, resp. je limitován pouze operační pamětí počítače. Fond podprocesů limituje počet současně aktivních (běžících) podprocesů. Od verze .NET 4.0 implicitní maximální velikost fondu podprocesů závisí na několika faktorech, např. velikosti virtuálního adresového prostoru. Tuto velikost je možné zjistit nebo nastavit voláním metod: ▪ void GetMaxThreads(out int workerThreads, out int completionPortThreads) ▪ bool SetMaxThreads(int workerThreads, int completionPortThreads) ▪ Kódy: https://goo.gl/jwihA2