Application Development with C# and .NET
H.Mössenböck, W.Beer, D.Birngruber, H.Prähofer, A.Wöß
University of Linz, Austria
Latest update: October 3, 2008
This course covers the whole Microsoft .NET technology (including .NET 2.0).
It is an advanced course for students who are already familiar with
object-oriented programming and basic Web programming techniques. It
comes with a full set of Powerpoint slides (both in English and in German)
and with an extensive case study. Text books with exercises and sample
solutions are also available.
All material is published under the
Microsoft Curriculum Licence.
(c) University of Linz, Institute for System Software, 2004
Although many universities use Java or C++ as their primary programming
language (and do not plan to switch to C# and .NET in the near future)
they feel the need to provide their students with a profound overview
of the .NET technology, which becomes more and more important in industry.
A course with this goal is different from introductory programming
courses, since it can assume that the students are already proficient
in programming and know the basics of Web engineering (e.g. in Java, ASP or PHP).
Our course was designed with these goals in mind. It covers the whole .NET
technology, that is C#, ASP.NET, Web Services, ADO.NET, the major classes
of the class library as well as the fundamentals of the CLR and the most
important .NET tools. It includes also the new features introduced in .NET 2.0.
The course has been delivered several times at the university of Linz.
Parts of the course have also be given a industry seminars and tutorials.
There are almost 700 slides, more than 200 exercises with sample
solutions and a case study involving C#, ASP.NET, ADO.NET and Web Services.
The course will teach students the following skills:
Programming in C# using high-level abstractions such as classes,
interfaces, namespaces, properties, delegates, events, threads,
attributes, generics, and iterators, new features of C# 3.0.
Using the .NET platform to develop dynamic web pages with ASP.NET,
Web Services, ADO.NET. It also covers the most important features
of the class library (collections, IO, threading, sockets,
Windows Forms, reflection, Xml, generics, ...). Students will
learn about the CLR (assemblies, versioning, security, JIT compilation,
configuration, ...) and about the most important .NET tools
(VS.NET, ildasm, gacutil, ...).
Ability to compare the .NET platform with the Java technology.
The course can either be delivered as a whole or as two separate courses
on C# and .NET. In total, it has 30 lecturing units of 45 minutes each
corresponding to 2 units per week (or 3 ECTS credit points) during a semester.
We recommend to accompany the course with a programming lab of at least
15 units, which can be organized either as weekly exercises or as a term
project. Exercises can be found in our text books.
Sample solutions are on our web site.
Overview of .NET
The Programming Language C#
Types, expressions, declarations, statements, classes, structs, inheritance,
interfaces, delegates, exceptions, namespaces, assemblies, attributes,
native calls, threads, XML commments, genericity, anonymous methods,
iterators, partial types
.NET Framework Class Library
Overview, utility classes, collection classes, reflection, XML processing,
Windows Forms, threading, networking
CLR overview, assemblies, modules, CIL, interoperability, virtual
execution system, code access security, AppDomains
DataReader, DataSet, transactions, XML data sources
Dynamic web pages, Web Forms, event handling, Web Controls, validators,
user controls, custom controls, state management, configuration,
web page design with Visual Studio .NET, master pages, navigation,
themes and skins, personalization, authentication, database access controls
Servers and clients, SOAP, WSDL, DISCO, UDDI, configuration, tools
.NET Framework Tools
Assembly cache viewer, native image generator, GAC utility, strong name tool,
code access security policy tool, web services description language tool
We have written two text books on C# and .NET. Both are available in English
and in German. Our slides have been tailored to these books.
H.Mössenböck, W.Beer, D.Birngruber, A.Wöß:
.NET Application Development with C#, ADO.NET, ASP.NET and Web Services.
Addison-Wesley 2004, 544 pages, ISBN 0-321-17349-X
C# to the Point.
Addison-Wesley 2004, 246 pages, ISBN 0-321-25290-X
W.Beer, D.Birngruber, H.Mössenböck, A.Wöß:
dpunkt.verlag 2003, 510 pages, ISBN 3-89864-174-0
Softwareentwicklung mit C#.
dpunkt.verlag 2003, 244 pages, ISBN 3-89864-126-0
Prof. Dr. Hanspeter Mössenböck
PhD in Computer Science (University of Linz, 1987). From 1988 to 1994
assistant professor at ETH Zurich with Prof. Niklaus Wirth.
Since 1994 full professor of Computer Science at the University of
Linz, Austria. Head of the Institute for System Software.
Besides teaching courses on compiler construction, (object-oriented) programming,
algorithms & data structures, and .NET, he also regularly lectures
at the Oxford Brookes University, UK, and appeared as a speaker of
various .NET events.
Dr. Wolfgang Beer
Phd in Computer Science (University of Linz, 2004). Special interests include
context-aware pervasive systems, component-based and object-oriented
Dr. Dietrich Birngruber
Phd in Computer Science (University of Linz, 2002). Special interests include
component-based and object-oriented systems. He is currently with
an Austrian company doing business in the area of .NET.
Dr. Herbert Prähofer
Phd in Computer Science (University of Linz). Special interests include
object-oriented systems and simulation.
Dipl.-Ing. Albrecht Wöß
Holds a master degree from the University of Linz. Special interests include
compiler construction and object-oriented programming. He lead the
"Compiler Generation Tools for C#" project funded by the 1st Rotor RFP.
Prof. Dr. Hanspeter Mössenböck
Johannes Kepler University Linz
Institute for System Software
Altenbergerstraße 69, 4040 Linz, Austria