Software Development fundamentals Application development
inhoudsopgave Leerdoelen Voorkennis Overzicht van wat we gaan leren Windows applicaties UI Technologieën Windows services Databases ADO.NET CRUD Master-detail Parameterized queries
veranderingen De komende periode draait meer om het schrijven van complete applicaties dan het leren programmeren. We gaan applicaties schrijven die werken met databases. Wat weten we al van het werken met databases? Denk aan: Wanneer? Waarvoor? Waarom? Hoe? Maak eerst de online oefentoets.
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
Bijzonderheden (voLGend jaar) HTML! Je kunt windows (store) apps ontwikkelen met HTML, CSS en JavaScript. HTML apps zijn makkelijk te porten naar android, ios, linux, OSX etc. Games zijn ook geen probleem met het HTML Canvas Via JavaScript is het ook mogelijk de hardware te benaderen (filesystem etc.) Xamarin Met Xamarin kan je IOS/Windows/Android apps ontwikkelen in C# Net zo snel als native (Java) android en IOS Apps https://www.xamarin.com
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
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.
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
Eigen doelen We hebben meer lesuren deze periode. Naast lessen gaan we wat grotere applicaties bouwen. Dus is er ook ruimte voor eigen leerdoelen
Opdracht De komende 30 minuten: Bedenk applicaties die je zou willen kunnen maken. Overleg hierover ook met mensen om je heen, inspireer elkaar! Voorbeelden: To-do lijst, verder met RPG, eenvoudige game, een universal app etc. etc. etc. Maak een document met 5 ideeën voor applicaties. Beschrijf: doel, technologie, functionaliteit. Gebruik ongeveer 1 alinea aan tekst om de applicatie te beschrijven. Voorbeeld: Verbruiksmeter Met de verbruiksmeter universal app kan je op je telefoon, tablet of PC je stroomverbruik invoeren en terugzien. Deze wordt gemaakt met WinRT. Je kunt hier meterstanden invoeren van water, gas en elektriciteit, en grafieken zien met het verbruik per dag, week, maand en jaar.
Vragen Zijn er vragen?