.NET Fundamentals - PowerPoint PPT Presentation

About This Presentation
Title:

.NET Fundamentals

Description:

Class Schedule November 6, 2003. Introductions and other beginning ... Windows .NET Server (Whistler) Windows PocketPC 2002 (with the .NET Compact Framework) ... – PowerPoint PPT presentation

Number of Views:1361
Avg rating:3.0/5.0
Slides: 104
Provided by: kumarvar
Category:

less

Transcript and Presenter's Notes

Title: .NET Fundamentals


1
.NET Fundamentals
  • Week 1
  • November 6, 2003

2
Introduction
  • Chip Schopp
  • www.pondviewsoftware.com
  • chipschopp_at_comcast.net
  • (978) 779-5126

3
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

4
.Net FundamentalsCT-186
5
Text Books
  • Applied .NET Framework Programming by Jeffrey
    Richter
  • Programming C by Jessie Liberty

6
Grades
  • 5 take-home assignments (75)
  • Final Exam (part of last class) (25)

7
Prerequisites
  • Fundamental of Programming (CT100)
  • or
  • by permission of the instructor.

8
Class Goals
9
Class Goals
  • Provide an overview of the .NET Architecture with
    Major Components
  • Programming Languages
  • ADO.NET
  • ASP.NET
  • Web Services
  • XML Integration

10
Class Goals
  • Understand the .NET Frameworks as an Object
    Oriented Strongly Typed Computing Environment

11
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

12
Class Goals
  • Introduction to the C Programming Language

13
Course Schedule
Week Topics
1 Introduction to .NET Framework, C
2 Basic C Windows Forms Programming
3 Types, Objects, and Classes in .NET
4 .NET ADO and XML
5 Exceptions, Intro to ASP.NET, Assemblies
6 Web Services, Final Exam
14
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 ?

15
Effective Learning
  • First is Doing
  • Class exercises
  • Coaching
  • Helping each other
  • Homework
  • Second is Discussing
  • Class discussions
  • Asking questions
  • Sharing ideas and information
  • Last is Listening

16
Learning Environment
  • Learn something ? Write some code
  • Homework Assignments
  • Write some code
  • Programming is Fun!

17
The only dumb questions are the ones not asked!
18
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 ???

19
Your introductions
  • Programming background
  • Operating systems, languages
  • Any exposure to .NET ? Other courses ?
  • What do you expect to get out of this course ?

20
Please email me the following
  • Full Name, Nick Name, Student ID
  • Home Phone / Work Phone

21
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.

22
(No Transcript)
23
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.

24
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

25
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.

26
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.

27
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 applicationssometi
    mes 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.

28
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.

29
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.

30
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.

31
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

32
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
    inter-operability
  • This course deals with the fundamentals of
    programming this framework

33
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

34
The .NET Framework
  • Think of what device drivers do in terms of
    abstracting access by an application

Application
Windows
Scanner Driver
Mouse Driver
35
The .NET Framework
  • If we abstract the underlying OS in the same way

Application
.NET Framework
Windows 2000
Windows XP
FreeBSD UNIX
36
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

37
The current state of affairs
  • Win32/C programming
  • Fairly low-level, not object oriented,
    interoperability with other languages is hard,
    memory leaks an issue.
  • C/MFC programming
  • 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.

38
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

39
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.

40
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

41
What the .NET Framework gives us
  • Multi-platform support
  • The fact that the OS is abstracted away, with
    code compiled to an intermediate language makes
    this possible
  • Cross language integration
  • 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

42
What the .NET Framework gives us
  • Code verifiability
  • Rich type information gives us the ability to
    check that code is operating safely
  • e.g. Buffer overflows prevented.
  • Consistent error handling mechanism
  • 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.

43
(No Transcript)
44
Basic Components of the .NET Framework
  • The .NET Framework consists of two main parts
  • common language runtime
  • .NET Framework class library

45
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
46
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 management, and error
    handling.

47
Common Language Runtime (CLR)
  • Locates, loads and runs code written in
    runtime-aware 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

48
Managed Module
  • A Managed Module is a standard windows portable
    executable (PE) file that requires the CLR to
    execute.

49
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
    executes as managed code.

50
.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.
  • o  ADO.NET to help connect applications to
    databases.

51
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)

52
Platforms the CLR runs on
  • Windows 98, Windows 98 SE, Windows Me
  • Windows NT 4.0 with SP 6.0a or greater
  • Windows XP family
  • Windows .NET Server (Whistler)
  • Windows PocketPC 2002 (with the .NET Compact
    Framework).
  • FreeBSD Unix (Rotor)
  • Linux (Ximians Mono)

53
(No Transcript)
54
An introduction to C
  • C is a language that was developed by Microsoft
    specifically targeted for the .NET platform.

55
C Features
  • No pointers
  • Automatic memory management
  • Completely object-oriented
  • Supports interface-based programming
  • Both implementation inheritance and interface
    inheritance supported
  • Support for overloaded operators
  • Support for aspect-based (attribute-based)
    programming
  • Can only produce managed-code

56
Lets try a simple program.
57
  • Create a Working Directory
  • mkdir k\week1\hello
  • Copy corvars.bat
  • copy
  • c\Program Files\Microsoft Visual
    Studio.NET \FrameworkSDK\bin\corvars.bat
  • k\week1\hello\corvars.bat
  • Set up environment, run covars.bat
  • Cd k\week1\hello
  • Type corvars.bat lthit returngt

58
Open notepad, create the following file and save
it in the k\week1\hello directory as hello.cs.
  • class Hello
  • static void Main()
  • System.Console.WriteLine("Hello World")

59
  • Compile the program
  • k\week1\hellogtcsc Hello.cs
  • Run the program
  • K\week1\hellogtHello.exe
  • K\week1\hellogt Hello World

60
(No Transcript)
61
C.NET Language Basics
  • Types in C
  • Defining integer types
  • A Bit About Strings
  • Reading From and Writing To The Console
  • If Then Statement
  • Looping The For Next Statement 

62
Primitive Types
C Type .NET Framework type
bool System.Boolean
byte System.Byte
sbyte System.Sbyte
char System.Char
decimal System.Decimal
double System.Double
float System.Single
63
Primitive Types (contd.)
int System.Int32
uint System.UInt32
long System.Int64
ulong System.UInt64
object System.Object
short System.Int16
ushort System.UInt16
string System.String
64
A word on types
  • All types in .NET derive from System.Object
  • They are provided implementations of ToString()
    and GetType()
  • To get a string with the type of any variable,
    you can call ltvargt.GetType()
  • Whenever you call Console.WriteLine(obj) the
    ToString() method on obj is implicitly called.
    The default ToString implementation for classes
    simply returns the name of the class.

65
What Are Integers
  • 0, 432, -5, 10000000, -10000000
  • Integers are whole numbers
  • Integer variables are stored as signed 32-bit
    (4-byte) integers ranging in value from
    -2,147,483,648 through 2,147,483,647.

66
Defining Integers
  • int i
  • int i, j, k
  • int i 12
  • j i ? j is now equal to 12
  • i 15
  • k i j ? k is equal to 27
  • To write an Integer, convert it to a String
    using
  • k.ToString()

67
A Bit About Strings
68
What are strings?
  • abcdef Abcdef aBcdEf A23-/789 q
  • John J. Smith
  • How do you do?
  • 123 South Street, Calais, ME 04235
  • Are we there?
  • ? an empty string

69
How do we define strings?
  • string strTmp
  • strTmp time will tell
  • string strTmp time will tell
  • strTmp Console.ReadLine()
  • string strTmp2
  • strTmp2 strTmp
  • strTmp2 ? time will tell

70
Concatenating Strings
  • string strCity Calais
  • string strState ME
  • string strZip 04270
  • string strLoc
  • strLoc strCity , strState
    strZip
  • strLoc ? Calais, ME 04270

71
Some String Functions
  • string strTmp
  • strTmp.Trim() removes leading and trailing
    spaces
  • strTmp.ToUpper() converts string to all upper
    case
  • strTmp.ToLower() converts string to all lower
    case
  • strTmp.Length returns string length as an
    integer
  • strTmp.SubString() extracts a substring

72
String Function Examples
  • string strTmp Hello World
  • strTmp.Trim()
  • strTmp ? Hello World
  • string strTmp Hello World
  • strTmp.ToLower() ? hello world
  • strTmp.ToUpper() ? HELLO WORLD

73
String.Length Function
  • string strTmp
  • strTmp in the beginning
  • The value of strTmp.Length is 16.
  • int i
  • i strTmp.Length
  • The value of i is 16.

74
String.SubString() Function
  • String.Substring(startIndex , length )
  • Parameters (are Integers)
  • startIndex Where the substring starts.
    startIndex is zero-based.
  • length The number of characters in the
    substring.

75
Substring Examples
  • string strTmp
  • strTmp around the world
  • strTmp.Substring(0,6) ? around
  • strTmp.Substring(11,5) ? world
  • strTmp.Substring(0,strTmp.Length)
  • ? around the world

76
Writing to the Console
  • Console.WriteLine(String) write with line return
  • Console.WriteLine(Hi There)
  • C\gtHi There
  • C\gt
  • Console.Write(String) write with no line
    return Console.Write(Hi There)
  • C\gtHi There

77
Reading from the Console
  • Console.ReadLine() returns a string
  • string tmp
  • Console.Write(What is your name? )
  • tmp Console.ReadLine()
  • Console.WriteLine(Hi tmp)
  • C\gtWhat is your name? Chip
  • C\gtHi Chip
  • C\gt

78
if Statement
  • if (some condition is true)
  • do something in here,
  • using one or more lines of code

79
What is difference between and ?
  • is for assignment of value
  • String tmpString Hello world
  • int i 12
  • is for equivalence
  • if (str1 str2) some code
  • if (str.Length 0) some code
  • if (str1 ! end) some code

80
Sample if Statement
  • string strInput
  • strInput Console.ReadLine()
  • if (strInput )
  • Console.WriteLine(Input required.)

81
The For Loop
82
A Simple For Loop
  • int i
  • for (i 1 ilt10 i)
  • Console.WriteLine("The value of i is "
    i.ToString())
  • The Value of i is 1
  • The Value of i is 2
  • The Value of i is 3
  • The Value of i is 9
  • The Value of i is 10

83
Or You Could Reverse It
  • int i
  • for (i 10 igt0 i--)
  • Console.WriteLine("The value of i is "
    i.ToString())
  • The Value of i is 10
  • The Value of i is 9
  • The Value of i is 8
  • The Value of i is 2
  • The Value of i is 1

84
To Walk Through a String
  • string tmp hello world
  • for (int k 0 klt tmp.Length-1k)
  • Console.WriteLine(tmp.Substring(k,1))

85
To Walk Through a String Backward
  • string tmp "hello world"
  • for (int k tmp.Length-1kgt-1k--)
  • Console.WriteLine(tmp.Substring(k,1))

86
What About?
  • What If We Want To Enter More Data?
  • What If No String Is Entered?
  • What If The Entered String Is Too Long?
  • How Do We Know When We Are Done?

87
What If We Want To Enter More Data?
  • Labels
  • A Label is Defined with a Colon ?
    ReturnHere
  • goto Statements
  • goto Statements Direct Program Flow To A
    Label
  • goto ReturnHere
  • GoTo Statements are Evil and High Risk!!!

88
What If No String Is Entered?
  • Checking for a zero length string.
  • if (tmpStr.Length 0)
  • Console.WriteLine(No String Entered)
  • goto ReturnHere
  • Note You could also check for tmpStr

89
What If The Entered String Is Too Long?
  • Lets only work with strings up to 10 characters
  • if (strTmp.Length gt 10)
  • strTmp strTmp.SubString(0,10)

90
How Do We Know When We Are Done?
  • Lets check for the string end to end the
    program
  • if (strTmp end)
  • return
  • Note return tells the program to exit the
    subroutine, which in this case will end the
    program.

91
Comments in C
  • Both / / and // can be used for comments.
  • VS provides comment/uncomment selections.
  • Use the menu bar, or Ctrl-K Ctrl-C for comment
    and Ctrl-K Ctrl-U for uncomment

92
(No Transcript)
93
Now lets redo hello.cs as a Visual Studio
project.
94
Visual Studio.NET
  • The newest version of Visual Studio
  • Multiple language development finally in one
    environment.
  • Can program in
  • Visual C
  • Visual Basic.NET
  • Visual C.NET
  • Can build
  • Desktop console and GUI applications
  • Web services
  • ASP.NET Web applications
  • Mobile applications

95
To get Visual Studio.NET
  • You need to purchase either
  • An MSDN subscription
  • A copy of Visual Studio.NET
  • Academic editions are available (in or through
    the bookstore ?)

96
Visual Studio.NET
  • Start up Visual Studio.NET
  • Open a new project by either
  • Clicking on the New Project button on the Start
    Page OR
  • File-gt New-gt Project from the Menu Bar
  • In Visual C Projects, create a Console
    Application
  • Implement the Main() method
  • Notice you now have IntelliSense
  • Add the Console.WriteLine line of code.
  • Compile using the Build menu.
  • Run using the Debug menu

97
Your code should look like this
using System namespace HelloVS ///
ltsummarygt /// Summary description for App. ///
lt/summarygt class App /// ltsummarygt ///
The main entry point for the application. ///
lt/summarygt STAThread static void
Main(string args) System.Console.WriteLin
e("Hello World")
98
Class Exercise (time permitting)
  • Using the Visual Studio.NET write an interactive
    console program to accept information from the
    keyboard and then format and display the
    information back. It might be a persons name
    and address or a variable list of favorite pets
    including name and type of animal or whatever.
    Focus on formatting the data, looping to accept
    multiple entries, testing for missing information
    and also testing for an at end condition. A
    sample, somewhat simplified example is in the
    Class Collections zip file on the web (i.e.
    www.PondviewSoftware.com).

99
(No Transcript)
100
Homework Part 1
  • Send Me An Email ? ChipSchopp_at_comcast.net,
    include the following 
  • Full Name, Nick Name, Student ID
  • Home Phone / Work Phone
  • 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?
  • Which additional dates you would attend classes
    on.

101
Homework Part 2
  • C.Net Programming
  • Homework Assignment Week 1
  • Assignment Due November 13, 2003 530 PM
  •  
  •  

102
Write a C.NET Console Application, which
performs the following
  • Accepts a first name string, a middle name
    string, and a last name string from the console.
    The first name and last name are required. The
    middle name is optional.
  • Concatenates the two or three fields together
    creating a full name string.
  • Truncates the full name to 20 characters if the
    length of the full name is longer than 20
    characters.
  • Provides the capability of displaying the full
    name either vertically or horizontally and
    forward or backward as desired.
  • Allows the full name field to be displayed in
    either of these four ways as many times as
    desired.
  • Allows the user to go back to the top and start
    over, entering a new name.
  • Terminates gracefully.
  •  Note
  •   There was enough information discussed in
    todays class to complete this assignment. Feel
    free to use any additional commands, structures,
    or functions you wish.

103
(No Transcript)
Write a Comment
User Comments (0)
About PowerShow.com