Curriculum Software Construction SWC1.2

Semester: 2.sem., forår 2018
Teacher: Henrik Høltzer
Email: heho@easj.dk

Literature/Material:
C#-note: Object-Oriented Programming with C# (findes på GitHub her)

Topics Literature/Material
Curriculum part 1 (SWC 1.1)
Variables, operators, and expressions

C#-note: p.6-36

Using classes and objects
Creating objects
Using methods on objects
Defining classes
Method definitions


C#-note: p.37-75

Decisions (If-statements)
C#-note: p.76-84
Iterations (Loops) C#-note: p.84-90
Arrays
foreach-loop
C#-note: p.94-98
List/Dictionary C#-note: p.99-107
Properties
Bindings
MVVM Design Pattern
C#-note: p.128-168
Databinding Part1
Databinding Part2
Curriculum part 2 (SWC 1.2)
Inheritance
Polymorphism
Interface
Abstract Class



C#-note: p.111-127

Error/Exception
IO/File

Exceptions:
C#-note: p.129-130

Exceptions and Exception Handling in C#

MSDN: Best Practices for Exceptions
MSDN:
StorageFolder


Using Collections

IComparable / IComparer
Equals( ) / GetHashCode( )

Generics:
C#-note: p.194-207


Collections:
C#-note: p.223-227

Collections-Overview
An Overview Of System.Collections.Generic
MSDN: IComparable
MSDN: IComparer
MSDN: Guidelines for Overloading Equals()

Lampda-expressions
IEnumerable / IEnumerator
More Lamda-expressions
LINQ

Functions as parameters (Delegates, Predicates and Lambda):
Noter: s.208-218


Videos:

Anonymous methods in c#

Lambda expression in c#

MSDN: Anonymous Methods
MSDN: Delegates
MSDN: Predicate <T> Delegate
MSDN: Lambda expressions
DotnetPerls: C# Lambdas

LINQ:
Noter: s.232-241


WizIQ : LINQ - Language INtegrated Query (slides)
MSDN: Introduction to LINQ

Videos:
LINQ
Part 1 What is LINQ
Part 2 Writing LINQ queries
Part 3 Extensions Methods in C#
Part 4 LINQ Aggregate Functions
Unit Test

Unit Test (MSTest in Visual Studio)

Videos:
Channel 9:
Improving quality with unit tests and fakes
Channel 9: Unit testing your metro style apps built using XAML

MSDN: Unit Test Basics
MSDN: How to: Create a Unit Test Project
MSDN: Using Code Coverage to Determine How Much Code is being Tested



Slides:
Unit testing (PowerPoint)


MVVM Design Pattern etc.

Architecture
Entity Framework

Web API 2
MSDN: Entity Framework Development Workflows
Channel9-MSDN: Code First to Existing Database
MSDN: Code First to a New Database

Demonstrates how to create a restfull webservice that provides access to our HotelDB
Screencast: WebServiceEntityFrameworkDemo1 (Part1)

Demonstrates how to use the webservice from a client application (console)
Screencast: WebServiceEntityFrameworkDemo2 (Part2)

Demonstrates how to create a database view and how to provide the view by using a webservice controller.
Screencast: WebServiceView (Part3)


Design Patterns

  • Decorator
  • Factory
  • Observer
  • Adapter
  • State
  • mm.

Lynda.com:
Foundations-Programming-Design-Patterns

Design patterns explained 
Illustrated designpatterns: 1 2 3 4 5

Code-project: Strategy Pattern-C#


DesignPatterns (Note)

Larman: Kap. 26

Dokumentation Code Documentation with Doxygen

Task, Thread, Async, Await
MSDN: Asynchronous Programming with Async and Await
CodeProject: Asynchronous Programming in C# 5.0 using async and await

Don't Block on Async Code

Slides: ProcessesAndThreads (PowerPoint)
Slides: AsynchronousProgramming (PowerPoint)

Joseph Albahari Threading in C#, part 1
Threads in C# (slides)

Example: TryThread | WriteToArray

Joseph Albahari Threading in C#, part 2

Synchronization: Threads + monitors (slides)