Anda di halaman 1dari 50

.

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

Anda mungkin juga menyukai