Menu

 

Thoughts on Software Engineering

.NET Framework Course and Teaching Materials – Curriculum

Annotation:

The course objective is to introduce the students to the principles of application development for the Microsoft .NET Framework. The most important topics covered include: Architecture of .NET Framework, CLR managed execution environment, C# language, Common Type System (CTS), .NET components (assemblies), Framework Class Library, as well as Remoting and Web-services. Accessing data with ADO.NET, working with XML, creating graphical user interface with Windows Forms and Web applications with ASP.NET are also covered. More advanced topics like reflection, multithreading, interoperability, enterprise services and mobile computing are also examined.

Prerequisites:

Introduction to Programming (CS101)

Introduction to Object-Oriented Programming (CS102)

Databases (CS270)

Operating Systems and Networking (CS226)

Syllabus:

0. .NET Framework Overview

– .NET Platform architecture; .NET Framework architecture overview;

– Common Language Runtime (CLR);

– Assemblies and execution model;

– Common Type System (CTS);

– Framework Class Library (FCL);

– ADO.NET and XML;

– Windows Forms;

– ASP.NET Web Applications;

– ASP.NET Web Services.

1. .NET Framework Architecture

– .NET Platform architecture;

– .NET Framework architecture;

– Common language Runtime (CLR);

– Intermediate Language (IL);

– .NET execution model; Application domains;

– Common Language Specification (CLS); Common Type System (CTS); Language Integration;

– Visual Studio .NET development environment.

[Units Covered: PL2. Virtual machines (1); SE3. Software tools and environments (1)]

2. Introduction to C# language

– Primitive data types; Enumerations;

– Expressions;

– Statements;

– Control structures (if, for, while, do..while, foreach).

[Units Covered: PF1. Fundamental programming constructs (2)]

3. Object-oriented concepts in .NET

– Classes and interfaces;

– Structs;

– Constructors, methods, fields, constants, access modifiers;

– Inheritance and polymorphism;

– Properties, indexers, operators;

– Static methods and constructors;

– Namespaces;

– Exceptions handling.

[Units Covered: PL6. Object-oriented programming (3); PL5. Abstraction mechanisms (1)]

4. Common type system (CTS)

– System.Object, equality, hash codes, cloning;

– Value types & reference types, boxing and unboxing;

– Type conversions and casting;

– Enums and flags;

[Units Covered: PL4. Declarations and types (2)]

5. Delegates and events

– Delegates and multicast delegates;

– Events.

[Units Covered: PF5. Event-driven programming (1)]

6. Attributes

– Using attributes;

– Creating custom attributes.

[Units Covered: PL4. Declarations and types (1)]

7. Arrays and collections

– Arrays; Jagged vs. multidimensional arrays;

– Collections and enumerators;

– Lists, dictionaries, hash tables, sorted lists.

[Units Covered: PF3. Fundamental data structures (2); PF2. Algorithms and problem-solving (1)]

8. Working with strings

– Strings, strings manipulation (StringBuilder), string formatting;

– Unicode, encodings, globalization and internationalization.

[Units Covered: PF3. Fundamental data structures (2); SE2. Using APIs (1)]

9. Regular expressions

– Regular expressions language;

– Searching, extracting, validating and replacing text by regular expressions.

[Units Covered: SE2. Using APIs (1)]

10. Memory and resource management

– Managed heap and garbage collection;

– Destructors and finalizers.

[Units Covered: PF3. Fundamental data structures (1); OS5. Memory management (1)]

11. Input/output

– Streams, readers/writers

– Files and directories;

– Asynchronous input/output.

[Units Covered: PF3. Fundamental data structures (1); SE2. Using APIs (2)]

12. Working with XML

– Basic XML concepts (Well-formed XML, namespaces, DTD, XSD, XML parsers);

– XML classes – DOM classes and XmlReader;

– XML validation;

– XPath and XSL Transformation classes.

[Units Covered: SE2. Using APIs (1); PF2. Algorithms and problem-solving (1); PF3. Fundamental data structures (1)]

13. Data access with ADO.NET

– Basic concepts and classes (Connection, Command, DataReader, DataAdapter, CommandBuilder);

– Data sets, data tables, relations, views, constraints;

– Strongly-typed data sets;

– Data sets and XML;

– Best practices using ADO.NET.

[Units Covered: IM1. Information models and systems (1); IM4. Relational databases (2); SE2. Using APIs (1)]

14. Windows Forms

– Windows Forms programming model, basic classes (Component, Control, ScrollableControl, ContainerControl);

– Forms and dialogs;

– Basic controls (Label, TextBox, Button);

– Adding controls to forms;

– Handling events;

– Advanced controls (menus, status bars, toolbars);

– Data binding and DataGrid;

– Custom controls.

[Units Covered: PF5. Event-driven programming (2); HC6. Graphical user-interface programming (3); SE9. Component-based computing (1)]

15. ASP.NET and Web applications

– ASP.NET programming model, Web Forms and Web controls, basic classes;

– Code behind pages;

– Page execution model;

– Web-application execution model;

– Basic Web controls;

– Handling events;

– Validations;

– State management;

– Data-bound controls, DataGrid and DataView;

– Custom controls.

[Units Covered: NC4. The web as an example of client-server computing (1); NC5. Building web applications (4); PF5. Event-driven programming (2)]

16. Concurrency

– Multithreading;

– Asynchronous execution;

– Synchronization;

– Classical synchronization problems.

[Units Covered: OS3. Concurrency (1)]

17. Internet access

– Introduction to basic Internet concepts (TCP/IP, protocols, services);

– TCP and UDP sockets;

– Accessing Internet resources;

– E-mail classes.

[Units Covered: NC2. Communication and networking (2); SE2. Using APIs (1)]

18. Reflection

– Exploring metadata;

– Invoking methods.

[Units Covered: PL2. Virtual machines (1); PL5. Abstraction mechanisms (1)]

19. Serialization

– Automatic and custom serialization;

– XML and binary serialization.

[Units Covered: PF3. Fundamental data structures (2)]

20. Web services

– Web services base concepts – request-response model, SOAP, UDDI and WSDL;

– Using Web services; Asynchronously invoking Web services;

– Creating Web services, exposing methods.

[Units covered: SE1. Software design (1); AL4. Distributed algorithms (1)]

21. Remoting

– Channels and Formatters;

– Activation and Deactivation; Object lifecycle; Activation models;

– Marshalling;

– Hosting remote objects;

– Using remote objects;

– Remoting configuration.

[Units covered: SE1. Software design (1); AL4. Distributed algorithms (1)]

22. Interoperability and Unmanaged Code

– Calling DLL functions;

– COM interoperability, COM wrappers.

[Units Covered: SE2. Using APIs (1)]

23. Assemblies and deployment

– Assemblies and metadata, assemblies versions, assemblies strong names, private and shared assemblies;

– Modules;

– Global Assembly Cache (GAC);

– Portable executables;

[Units Covered: PL2. Virtual machines (1)]

24. Security

– Code access security;

– Role based security;

– Signing assemblies.

[Units Covered: OS7. Security and Protection (1)]

Additional dispensable topics:

25. * Enterprise Services

– Introduction to multi-tier software architectures;

– COM+, creating, deploying and using COM+ components;

– Using message queues, MSMQ.

[Units Covered: SE1. Software design (1); SE9. Component-based computing (1)]

26. * ASP.NET Mobile Controls

– Introduction to WAP and WML;

– ASP.NET and WAP/WML;

– Using Mobile controls.

[Units Covered: NC9. Wireless and mobile computing (1)]

27. * Microsoft .NET Compact Framework

– .NET Compact Framework architecture;

– .NET Framework vs. .NET Compact Framework;

– Creating mobile applications.

[Units Covered: NC9. Wireless and mobile computing (2)]

Note: Units covered are calculated according to IEEE and ACM’s official university computing curricula recommendations – http://www.computer.org/education/cc2001/.

Previews (2,584), Views (1,405), Comments (0)

RSS feed for comments on this post. TrackBack URL

LEAVE A COMMENT