.
NET Fundamentals
Week 1
November 6, 2003
Class Schedule November 6, 2003
Introductions and other beginning stuff
Review Class Syllabus / Class Goals
Class Dates
Introduction to .NET
Introduction to C#
Class Exercise(s)
Homework Assignment
2
.Net Fundamentals
CT-186
3
Text Books
Applied .NET Framework Programming by
Jeffrey Richter
Programming C# by Jessie Liberty
Grades
5 take-home assignments (75%)
Final Exam (part of last class) (25%)
Prerequisites
Fundamental of Programming (CT100)
or
by permission of the instructor.
Class Goals
Class Goals
Provide an overview of the .NET Architecture with
Major Components
Programming Languages
ADO.NET
ASP.NET
Web Services
XML Integration
Class Goals
Understand the .NET Frameworks as an Object Oriented
Strongly Typed Computing Environment
Class Goals
Work with various .NET Framework components
Common Language Runtime (CLR)
.NET Framework Class Library (FCL)
Assemblies
Strong Names
The Global Assembly Cache (GAC)
Using the GACUTIL
10
Class Goals
Introduction to the C# Programming Language
11
Course Schedule
Week
Topics
Introduction to .NET Framework, C#
Basic C# Windows Forms Programming
Types, Objects, and Classes in .NET
.NET ADO and XML
Exceptions, Intro to ASP.NET, Assemblies
Web Services, Final Exam
12
Class Dates
Class Dates ( 6, 7, or 8 classes ?)
November 6, 13, 20 December 4, 11, 18
November 27, Thanksgiving, no class
Other possible dates:
Monday November 24th
Monday December 1st
Monday December 8th or Tuesday December 9th
Monday December 15th or Tuesday December 16th
Or ?
13
Effective Learning
First is Doing
Class exercises
Homework
Second is Discussing
Class discussions
Coaching
Helping each other
Asking questions
Sharing ideas and information
Last is Listening
14
Learning Environment
Learn something Write some code
Homework Assignments
Write some code
Programming is Fun!
15
The only dumb questions
are the ones not asked!
16
Time to Address Open Questions
Begin each class with a time for questions
Questions left open from previous classes
Questions emailed to me during the week
Questions triggered by the homework
Or other ???
17
Your introductions
Programming background
Operating systems, languages
Any exposure to .NET ? Other courses ?
What do you expect to get out of this course ?
18
Please email me the following
Full Name, Nick Name, Student ID #
Home Phone / Work Phone
19
Email Address (s) [email gives me one]
Your background in computing/programming
Any experience with .NET, other courses, ?
Your objective or goals for this course
Any material you have a special interest in covering?
Any issues or questions that you have?
Additional dates you can attend classes on.
20
21
What Is the Microsoft .NET
Framework?
The Microsoft .NET Framework is an
important new component of the Microsoft
Windows family of operating systems. It is
the foundation of the next generation of
Windows-based applications that are easier
to build, deploy, and integrate with other
networked systems.
22
The .NET Initiative
To create rich applications, businesses must offer a
programmatic interface to their business logic services
[which] must be callable remotely using a network
like the Internet. Simply stated, the .NET initiative is
about connecting information, people and devices
- Jeff Richter
23
What Is the Microsoft .NET
Framework?
Most consumers will never notice that the
.NET Framework is running on their Pocket
PC, smartphone, or desktop computer. But
they may appreciate the reliability, ease of
use, and ability to connect to other systems
that the .NET Framework helps bring to
computers.
24
What Is the Microsoft .NET
Framework?
The .NET Framework helps software
developers and systems administrators more
easily build and maintain systems with
improvements toward performance, security,
and reliability. Here's how.
25
A New Approach to Building
Windows Software
The .NET Framework simplifies Windows
software development. It provides developers
with a single approach to build both desktop
applicationssometimes called smart client
applicationsand Web-based applications. It
also enables developers to use the same tools
and skills to develop software for a variety of
systems ranging from handheld smartphones
to large server installations.
26
A New Approach to Building
Windows Software
Software built on the .NET Framework can
be easier to deploy and maintain than
conventional software. Applications can be
designed to automatically upgrade
themselves to the latest version. The .NET
Framework can also minimize conflicts
between applications by helping
incompatible software components coexist.
27
Benefits of the .NET Framework
Helps IT professionals better integrate
existing systems with its native support for
Web services.
Assists with the deployment of software to
both users and Web servers.
Facilitates the development of software with
improved reliability, scalability,
performance, and security.
28
Helps developers be more
productive by:
Making it easier for them to reuse existing
code.
Enabling them to more easily integrate
components written in any of the more than
20 supported programming languages.
Helping them more easily build software for
a wide range of devices using same skills
and tools.
29
The Development Environment Visual
Studio.NET
Finally , Visual Studio truly becomes an
Integrated Development Environment, with
multi-language development.
Runs on Windows 2000, NT, XP and the .NET
server family.
Support for building 32 and 64 bit applications
Usual gamut of wizards, debuggers, linkers
Plenty of good documentation
Free .NET Framework SDK compilers, tools,
documentation
30
The Development/Runtime platform the
.NET Framework
The new runtime environment in .NET
Provides a set of base classes for developers to build
on
A unified type system to allow language interoperability
This course deals with the fundamentals of
programming this framework
31
To summarize, .NET is
An OS platform
The .NET Enterprise Servers.NET building block
services
.NET Device Software
The Development Environment Visual
Studio.NET
The Development/Runtime platform the .NET
Framework
32
The .NET Framework
Think of what device drivers do in terms of
abstracting access by an application
Application
Windows
Mouse
Scanner
Driver
Driver
33
The .NET Framework
If we abstract the underlying OS in the same
way
Application
.NET Framework
Windows
XP
FreeBSD
Windows
UNIX
2000
34
The .NET Framework
The .NET Framework introduces a layer of
abstraction (and obviously, some overhead) to the OS
as we currently know it.
Is this reason enough to move to it ? Lets look at the
state of Windows development without .NET
35
The current state of affairs
Win32/C programming
C++/MFC programming
Fairly low-level, not object oriented, interoperability
with other languages is hard, memory leaks an issue.
Large language, complex idioms, prone to abuse,
interoperability with other languages and other C++
implementations still hard, memory leaks still an issue
Visual Basic programming
Object aware, but not object oriented.
Interop with other languages possible, but ugly.
36
The current state of affairs
COM programming
Allows you cross language integration at the binary
level.
Interface based programming encouraged
Fairly complex to understand and set up
Deployment is registry based, fairly fragile.
Distributed COM was notoriously hard to set up
because of the security issues involved
A Microsoft-only solution
Java programming
Great language, but no cross language integration.
Interpreted byte-code did have performance issues
37
The current state of affairs
Into the mix just discussed, throw in JavaScript,
ASP, HTML, DHTML
Everything we just talked about has its own
runtime engine/environment, its own set of
libraries and its own set of development tools.
In a highly connected world, our solutions need
to span languages, machines and network
boundaries.
38
What the .NET Framework gives us
Consistent programming model
A simple OO programming model
Application component isolation
Newer versions can be installed safely
Goes a long way in helping improve DLL Hell
Simplified installation model
Xcopy, no registry entries
Uninstalls involve just deleting files/folders
Shared components easier to install than COM
components
39
What the .NET Framework gives us
Multi-platform support
Cross language integration
The fact that the OS is abstracted away, with code
compiled to an intermediate language makes this
possible
This is in contrast with COMs cross-language
interoperation. Types can be used between languages.
This also makes cross language debugging possible.
Automatic memory management
Reduces the incidence of memory leaks . The Visual
Basic runtime has done this for sometime, but it is now
available to all languages
40
What the .NET Framework gives us
Code verifiability
Consistent error handling mechanism
Rich type information gives us the ability to check that
code is operating safely
e.g. Buffer overflows prevented.
Exceptions used instead of error codes and
HRESULTS
Exceptions have to be handled cannot ignore them
Code security
Signing allows the runtime to verify that code has not
been tampered with.
Code access security associates permissions with code.
41
42
Basic Components of the .NET
Framework
The .NET Framework consists of two main
parts:
common language runtime
.NET Framework class library
43
The heart of the Framework
The most important elements of the franework
are:
The Common Language Runtime (CLR)
The Framework Class Libraries (FCL)
WinForms
ASP.NET
Framework Class Library
Base
Data
XML
Common Language Runtime
OS Services
44
Common Language Runtime
Provides
the common services for .NET
Framework applications.
Programs can be written for the common
language runtime in just about every language,
including C, C++, C#, and Microsoft Visual
Basic, as well as some older languages such
as Fortran.
The runtime simplifies programming by
assisting with many mundane tasks of writing
code, including memory managementwhich
can be a big generator of bugssecurity
45
management, and error handling.
Common Language Runtime
(CLR)
Locates, loads and runs code written in runtimeaware languages.
Handles object creation, memory management,
making method calls, enforces code security and
provides a process abstraction.
Code that targets the CLR is called managed code,
while code that uses the native OS services directly
is called unmanaged code.
Languages that can produce managed code (or
.NET programming languages)
C#, VB.NET, VC++ with managed extensions, Fujitsu
COBOL.NET, Jscript.NET, Eiffel, Python, Perl
46
Managed Module
A Managed Module is a standard windows portable
executable (PE) file that requires the CLR to execute.
47
Managed Code
Code executed and managed by the Microsoft .NET
Framework, specifically by the .NET Framework's
common language runtime.
Managed code must supply the information necessary
for the common language runtime to provide services
such as memory management, cross-language
integration, code access security, and automatic
lifetime control of objects.
All code based on Microsoft Intermediate Language
48
executes as managed code.
.NET Framework Class Library
The library includes prepackaged sets of
functionality that developers can use to more
rapidly extend the capabilities of their own
software. The library includes three key
components:
o ASP.NET to help build Web applications and
Web services.
o Windows Forms to facilitate smart client user
interface development.
49
o ADO.NET to help connect applications to
databases.
Framework Class Library (FCL)
Provides base class libraries available to all .NET
programming languages.
Access to primitive types, file I/O, graphical
rendering, crypto, GUI, XML support, etc.
Think of the CLR as abstracting the underlying OS (e.g.
Windows), and the FCL as abstracting the OS
libraries. (e.g. Win32)
50