Presented by: Tim O’Brien Senior Systems Engineer Fujitsu Software Corporation
Block 1 .NET Technology Overview Fujitsu Software Corporation Customer Training Series
Fujitsu Computer Systems
Let us begin…
“A journey of a thousand miles must begin with a single step.” -Six century B.C. Chinese philosopher Lao Tzu
PAGE 2
Fujitsu Computer Systems
Here we are… ■
Software development of is an industry beset with incompatibilities
■
Different Languages Different Operating Systems Different Hardware Platforms Incompatible APIs Shifting Architectural Focus
Changes were necessary Microsoft’s vision: .NET
PAGE 3
Fujitsu Computer Systems
Microsoft has a vision ■
Addresses development issues of the past with a view toward the future
■
Embodied in Microsoft .NET
■
New way of building applications that leverages industry standards
■
Makes interoperability a reality
PAGE 4
Fujitsu Computer Systems
Microsoft has a vision (Cont…) ■
.NET Framework Platform for building and running .NET applications Makes development significantly easier Streamlines the development process Eliminates the most common and debilitating bugs Provides a common API for all languages
PAGE 5
Fujitsu Computer Systems
Microsoft has a vision (Cont…) ■
Encompasses new trends in software development
■
Distributed computing Componentization Enterprise services Web integration of applications Language interoperability
Encompasses many standards – SOAP, WSDL, UDDI, HTTP, HTML, XML
PAGE 6
Fujitsu Computer Systems
About Programming Languages… ■
Microsoft .NET languages C# VB.NET C++ J#
■
Fujitsu .NET languages COBOL Fortran
PAGE 7
Fujitsu Computer Systems
About our new development world… ■
Visual Studio .NET is the common IDE for all .NET languages
■
ADO.NET
■
Windows Forms
■
ASP.NET and Web Forms
■
Web Services
■
Smart Devices
PAGE 8
Fujitsu Computer Systems
About our new development world… (Cont…) ■
.NET is a new Applications Platform Development Tools and framework Specialized .NET Enterprise Servers such as SQL Server Biztalk Server Commerce Server Application Center Server Host Integration Server Internet Security Server Acceleration Server
PAGE 9
Fujitsu Computer Systems
Building Blocks
Visual Studio .NET
.NET Framework
NET Enterprise Servers
.NET Building Block Services
Operating System on Servers , Desktops, Notebooks and smart devices
PAGE 10
Fujitsu Computer Systems
Putting together the puzzle…
PAGE 11
NetCOBOL for .NET
VB.NET
ADO.NET
C#
ASP.NET
C++
CLR
. NET Framework
CTS
Fujitsu Computer Systems
Components and Terms… ■
Common Language Specification (CLS)
■
Microsoft Intermediate Language (MSIL)
■
Metadata and Manifest
■
Assemblies (Executables)
■
Global Assembly Cache (GAC)
PAGE 12
Fujitsu Computer Systems
Components and Terms… (Cont…) ■
Namespaces
■
Just in Time (JIT) compilers and the Verifier
■
Common Language Runtime (CLR)
■
Managed vs. Unmanaged Code
■
Platform Invocation Services
PAGE 13
Fujitsu Computer Systems
Components and Terms… (Cont…) ■
Framework base classes
■
Data and XML Classes
■
Windows Forms
■
Web Forms
■
Web Services
PAGE 14
Fujitsu Computer Systems
Common Language Specification (CLS) ■
Supports multiple language integration
■
Specifies a set of common data types (CTS)
■
Defines rules for external component accessibility
PAGE 15
Fujitsu Computer Systems
CLS (Cont…) ■
Takes full advantage of exceptions, inheritance, and polymorphism.
■
Provides for automatic garbage collection
■
All .NET compilers must adhere to the CLS and CTS
PAGE 16
Fujitsu Computer Systems
Microsoft Intermediate Language (MSIL) ■
Abstract intermediate language – a concept common to many COBOL compilers
■
Similar to an Assembly Language with additional commands to handle objects
■
All .NET Compilers must produce MSIL (sometimes called “IL”).
PAGE 17
Fujitsu Computer Systems
MSIL – COBOL Source ■
The following example shows a snippet of code from the MSIL produced by the NetCOBOL compiler for a HelloWorld example as shown:
IDENTIFICATION DIVISION. PROGRAM-ID. MAIN. ENVIRONMENT DIVISION. DATA DIVISION. WORKING-STORAGE SECTION. PROCEDURE DIVISION.
.method public hidebysig static int32 Procedure() cil managed { .entrypoint // Code size 234 (0xea) DISPLAY "HELLO .maxstack 8 WORLD". .locals init (int32 V_0, class [Fujitsu.COBOL]Fujitsu.COBOL.Runtime.ProgramControl.DisplayInfo[] V_1, END PROGRAM MAIN. class [Fujitsu.COBOL]Fujitsu.COBOL.Runtime.ProgramControl.DisplayInfo[] V_2, valuetype [Fujitsu.COBOL]Fujitsu.COBOL.COBOLData V_3) .try { .try { IL_0000: ldsfld int32 MAIN::__CompInitialInfo IL_0005: brtrue.s IL_0017 IL_0007: ldc.i4.0
PAGE 18
Fujitsu Computer Systems
Metadata ■
.NET Executables contain metadata – detailed descriptions of data types and interfaces
■
This includes descriptions of classes, methods, properties, fields, events, etc.
■
Metadata allows executables to be truly selfcontained and self-describing
PAGE 19
Fujitsu Computer Systems
Metadata (Cont…) ■
Metadata is kind of like a super type library
■
The use of Metadata removes the requirement to use the Windows registry
■
A vast improvement over COM
■
Aids in language interoperability
PAGE 20
Fujitsu Computer Systems
Manifest ■
.NET assemblies also contain a Manifest which describes everything about the assembly such as files belonging to that component External references to other assemblies and classes Permission requests Anything else required for component usage
PAGE 21
Fujitsu Computer Systems
ILDASM ■
ILDASM – Intermediate Language Disasembler is a utility that lets you view metadata.
It will also allow you to see MSIL… ■
PAGE 22
Fujitsu Computer Systems
Application Domains ■
NET Assemblies execute within an Application Domain
■
Similar to Windows Processes
■
Multiple Application Domains may run within a single Windows Process
PAGE 23
Fujitsu Computer Systems
Application Domains ■
Provides significant scalability
■
Managed code assemblies running under CLR provides reliability
PAGE 24
Fujitsu Computer Systems
Assemblies ■
.NET Executables are called “Assemblies”
■
Assemblies contain a Manifest, Metadata and MSIL
■
Assemblies may contain a single module or multiple modules
■
Assemblies may be Static, Dynamic, Private or Public (Shared)
PAGE 25
Fujitsu Computer Systems
Assemblies (Cont…) ■
Assemblies may be versioned allowing multiple versions of the same named assembly to be available on the same machine allowing side by side execution
■
Shared Assemblies must be registered in the Global Assembly Cache (GAC) at installation time
PAGE 26
Fujitsu Computer Systems
Assemblies (Cont…) ■
Shared Assemblies must be keyed
■
Assemblies may have unique security and permissions set
PAGE 27
Fujitsu Computer Systems
Namespaces ■
Provides a way to group classes logically
■
Adds another level of scoping for classes
■
Allows organization of classes
■
Namespaces may be hierarchical using dots as separators
PAGE 28
Fujitsu Computer Systems
Namespaces (Cont…) Name Space
Contents
System
Code data types and auxiliary classes
System.Collections
Hash tables, resizable arrays, and other containers
System.Net
Classes that wrap network protocols
System.IO
Classes for performing file and stream I/O
PAGE 29
Fujitsu Computer Systems
Just in Time (JIT) Compilers ■
Translates MSIL into Machine Code
■
The Verifier first checks type safety at runtime
■
Multiple JIT’s available
■
Native Code produced is cached by default
PAGE 30
Fujitsu Computer Systems
Just in Time (JIT) Compilers (Cont…) ■
Typically, only portions of an application that are referenced are JIT’ed.
■
JIT may thus be incremental throughout the life of an application
■
.NET comes with Standard JIT, EconoJIT and PreJit
PAGE 31
Fujitsu Computer Systems
Just in Time (JIT) Compilers (Cont…) ■
EconoJit targets small hardware platforms and does not cache code
■
PreJit may be used to pre-compile applications to native code and cache such at installation time (invokes Standard JIT)
PAGE 32
Fujitsu Computer Systems
Common Language Runtime (CLR) ■
Loads, manages and executes .NET executables (assemblies)
■
Activates .NET objects, security checks them, lays them out in memory, executes them and garbage collects them
■
Manages JIT of applications
PAGE 33
Fujitsu Computer Systems
Managed vs. Unmanaged Code ■
Managed Code is any executable produced by a .NET Compiler
■
Unmanaged Code is any executable code produced by a non-.NET compiler such as non-. NET versions for Fujitsu COBOL
■
.NET Compilers may optionally produce unmanaged code
PAGE 34
Fujitsu Computer Systems
Platform Invocation Services ■
.NET provides Platform Invocation Services to allow .NET applications (managed code) to call non-.NET applications and pass data to and from such
■
.NET Platform Invocation services are known as “PInvoke”
PAGE 35
Fujitsu Computer Systems
Framework Base Classes ■
Important building blocks for .NET applications
■
Includes basic data types
■
System is the root of the .NET base class Namespace
PAGE 36
Fujitsu Computer Systems
Framework Base Classes (Cont…) ■
A large number of these classes are provided. They include: system object Collections Data I/O Web and Web Forms Windows Forms Network Win32
PAGE 37
Fujitsu Computer Systems
Data and XML Classes ■
System.IO class provides basic file I/O streaming functionality
■
System.Data class provides ADO.NET relational database functionality
■
System.Data.OleDb allows for managed providers to be implemented
PAGE 38
Fujitsu Computer Systems
Data and XML Classes (Cont…) ■
System.Data.SqlClient allows for managed providers using SQL to be implemented
■
System.XML class provides significant XML functionality
PAGE 39
Fujitsu Computer Systems
Windows Forms ■
Easy way to develop graphical user interface (GUI) Windows Applications
■
Visual Studio .NET provides graphical forms painter for all integrated .NET languages, including Fujitsu NetCOBOL
■
Code is automatically generated within the program source code being edited by the Forms painter
PAGE 40
Fujitsu Computer Systems
Windows Forms (Cont…) ■
Developers may concentrate on writing event procedures for GUI applications, as opposed to being forced to write code to actually implement the GUI controls and related event handling
■
.NET Framework provides System.WinForms class for Windows Forms
PAGE 41
Fujitsu Computer Systems
Web Forms ■
Allows development of ASP.NET pages with graphical controls and event driven programming model
■
Visual Studio .NET provides graphical web forms painter for all integrated .NET languages, including Fujitsu NetCOBOL
PAGE 42
Fujitsu Computer Systems
Web Forms (Cont…) ■
ASP.NET pages containing program code to implement the desired controls are automatically generated by the Forms painter
■
Developers may concentrate on writing event procedures for ASP.NET applications, as opposed to being forced to write code to actually implement the GUI controls and related event handling
■
.NET Framework provides System.Web.UI class for Web Forms
PAGE 43
Fujitsu Computer Systems
Web Services ■
Allows access to distributed application components via standard Web protocols such as HTTP and SMTP
■
Makes use of SOAP (Simple Object Access Protocol)
■
Opens up a whole new world of Web based callable software service components
PAGE 44
Fujitsu Computer Systems
Web Services (Cont…) ■
Uses WSDL (Web Services Description Language) to discover and interface to remote Web Service components
■
Third Party Web Services already appearing such as Microsoft’s Passport
■
.NET Framework provides System.Web.Services framework class
PAGE 45
Fujitsu Computer Systems
Visual Studio .NET ■
Visual Studio .NET is the common Integrated Development Environment (IDE) for all enabled languages
■
Provides a rich set of tools, including project management, edit, build and debug, forms painters, server explorer, etc.
PAGE 46
Fujitsu Computer Systems
Visual Studio .NET (Cont…) ■
Same editor and debugger are used across all enabled .NET languages
■
Substantial integrated Help system documents the .NET framework and languages
PAGE 47
Fujitsu Computer Systems
Questions
PAGE 48
Fujitsu Computer Systems