.NET Lectures

Up Java Resources C++ Resources Comp410

 

Jan 22, 2003 by Michael Stuart and Chris Wafer:

Download all the materials, including demo code:  RiceLectures.zip

On-line materials:

Lecture Outline:

Our lecture comprised three hours, the first hour of which we devoted to introductory material—

1)       what .NET is and is not

2)       what the CLR, CTS, and CLI are

3)       the CLR’s duties—garbage, threads, security, jit, etc.

4)       architectural concepts\

In the second and third hour, we were pleased to have a very interactive session with the students.  We’d prepared seven demonstrations of various technologies and the students asked to focus on particular pieces:

1)       web services—

a.       from the ground up, using nothing but Notepad

b.       from visual studio, using the project wizards

c.       how web services “feel” to the developer, both in designing the services AND in consuming it

d.       how far SOAP has come since the Soap Toolkits, which were much lower level tools and forced the developer to be much more aware of the underlying workings

2)       data access—

a.       basic ADO.NET object layout

b.       the difference between stateless, Reader-based access and stateful, DataSet-based access

c.       Modern architectures’ use of Data Access Layers to abstract data access—

d.       Demonstration of the Data Access Application Block

3)       Mobile applications—

a.       Consuming a web service from a Pocket PC device running the Compact Framework (unfortunately some connectivity issues prevented us from actually running this demo, but the code works when connections are OK)

b.       Similarities and differences in Base Class Libraries between full .NET and Compact Framework

4)       The UIP, my “pet project”—

a.       The importance of Design Patterns in real world enterprise development—I think some students actually gasped in surprise that these “esoteric” principles are the lifeblood of large development projects!!

b.       Architectural concepts of enterprise development:

                                                               i.      Loose coupling

                                                             ii.      Predictable pattern usage

                                                            iii.      Maintainability of code

                                                            iv.      Extensibility of object models