Software Development fundamentals Les 1 - Application development
inhoudsopgave Leerdoelen (toetsonderdelen) Overzicht van wat we gaan leren Windows applicaties UI Technologieën Windows services Databases ADO.NET CRUD Master-detail Parameterized queries Opdracht: Kaartenbak
Toetsonderdelen De getoetste concepten zijn: Vereiste voorkennis: SQL queries schrijven (select, update, insert, delete) De basis van OOP (classes, methods en properties) SQL Server databases Master-detail UI ADO.NET classes Winforms Databinding WPF CRUD functionaliteit Universal Apps Parameterized queries Windows services
User interface Technologieën 2012-2002 WinRT (2012) WPF (2006) Windows Forms (2002) Windows Store Apps Windows 8+ PC/Phone/Tablet/Xbox Windows Desktop Apps Windows XP+ Hardware accelerated Windows Desktop Apps Windows XP+ Eenvoudig in gebruik
Technologie kiezen We hebben WinRT, WPF en Windows Forms. Wat zou jij gebruiken voor: Een oefenopdracht om te leren programmeren (zoals BTW berekenen) Een IDE om software mee te ontwikkelen (zoals visual studio) Een office suite (zoals MS office) Een schaakspel Een reisplanner Voor het ontwikkelen van Universal Apps heb je windows 10 nodig, heeft iedereen dat?
Windows services Een windows service is een programma zonder user interface. De service draait op de achtergrond op een computer, en doet ‘iets’. https://en.wikipedia.org/wiki/Windows_service Windows services kunnen ook draaien als niemand is aangemeld op de computer Maar niet als deze uit staat (duh).
ADO.NET ADO.NET is de naam van de set classes in het .NET framework die je gebruikt voor databases. Vergelijkbaar met de mysqli library in PHP (eigenlijk lijkt het meer op PDO). De classes die we gaan leren zijn: SqlConnection SqlCommand SqlDataReader Waar denk je dat deze classes voor gebruikt worden? http://www.codeproject.com/Articles/1870/Introduction-to-some-basic-classes-of-ADO-NET
CRUD Create, Read, Update and Delete De meestgebruikte functionaliteit in combinatie met databases. Kan op verschillende manieren worden gebouwd, bijvoorbeeld: Alles in 1 gridview (zoals Access/Excel) Een lijst met aparte schermen voor editen en toevoegen Doel is dat je aan het eind van de periode programma’s met CRUD functionaliteit kunt maken in C# https://en.wikipedia.org/wiki/Create,_read,_update_and_delete
Parameterized queries Parameterized queries zijn een belangrijk onderdeel van veilige code. https://blogs.msdn.microsoft.com/sqlphp/2008/09/30/how-and-why-to-use-parameterized-queries/ Voorbeeld zonder parameter: string query = "SELECT account_balance FROM user_data WHERE user_name = “ + UserName.Text; SqlCommand command = new SqlCommand(query, connection); Voorbeeld met parameter: string query = "SELECT account_balance FROM user_data WHERE user_name = @username"; command.Parameters.Add(new SqlParameter(“@username”, UserName.Text));
SQL injection
Bijzondere vermelding Entity framework Laat je je database gebruiken alsof het objecten zijn in C# Zorgt ervoor dat je veel databasecode niet meer hoeft te schrijven. Werkt in combinatie met de querytaal LINQ Maakt op de achtergrond nog steeds gebruik van ADO.NET.
huiswerk We gaan eerst kijken of je Visual Studio goed werkt met databases Hiervoor is de opdracht ‘Kaartenbak’ online gezet. Deze loopt je stap voor stap door het maken van een eenvoudige applicatie met een database. Let op: Alles wat we met drag&drop en wizards in deze opdracht doen, kunnen we aan het eind van de periode in C# code oplossen. Optioneel is er ook een WPF opdracht (alle WPF opdrachten van deze periode behalve één zijn optioneel)
Afsluiting Zijn er vragen?