3-Intro To Net and Java
3-Intro To Net and Java
Introduction to C#
Dot Net Platform
⚫ Platforms provide environments for development and execution of
programs
⚫ Two “largest” platforms out there today is Microsoft .Net and Java
– Both provide similar executable modules that rely on an “interpreter” at
execution time, but in different ways
⚫ .Net runs only on Microsoft Windows devices,
– but there are many front end languages that can be used to generate the
“Common Intermediate Language” (CIL).
– Only one IDE is available
⚫ Java provides only the Java programming language,
– Open Source (although now owned by Oracle)
⚫ Android Law Suite
– Multiple IDEs that all pretty much try to do the same thing.
– The resulting “bytecodes” can be used on several different operating systems
Main Objective of .Net Platform
⚫ Provide component based support for Web Applications, Web
Services and Windows Application.
– Classes are self-describing and reusable
⚫ When I do not comb
– One would compile a program to an object file, and then link the
object files into an executable
⚫ Same subroutine was compiled and placed into EXE over and over.
(Each EXE would have a copy)
⚫ When I comb over
– Concept of DLL (Dynamic Link Library) introduced
⚫ Separate pre-compiled routines that could be called from main
programs to do work
⚫ Was a mess with the way it was managed usually resulting in multiple
DLLs on a machine that did the same thing, but different version.
Main Objective of .Net Platform
⚫ .Net Framework
– CLR (Common Language Runtime)
⚫ Virtual machine that “interprets” the CIL and manages the
execution of the program or call to the library
– Framework Class Library
⚫ A set of base classes used by C# that can be used by other
.Net Languages. (Types, Strings, Objects, etc)
⚫ Compilers
⚫ Interactive Development Environment (Visual Studio)
⚫ .Net Enterprise Servers (SQL Server, BizTalk,
Sharepoint for example)
From C To Shining C#
⚫ In the beginning there was machine code. Programs were entered with a
bunch of ones and zeroes (and if you were lucky, maybe in octal or hex). Every
machine was different. Life pretty much sucked.
⚫ Next came machine language which mapped a mnemonic to an instruction, and
introduced variables instead of direct addressing. Life sucked, but not as bad.
⚫ Then development programming took off and all the academic and business
types got their own damn programming languages. (COBOL, FORTRAN,
Basic, PL/1, LISP, etc.)
⚫ Finally, the “C” language (based somewhat on ALGOL) was introduced that
added a layer of abstraction for lower level system development making it
easier and more consistent to program, but still allowing for lower level “stuff” to
happen that may not be that welcomed in a development language like Basic,
COBOL or FORTRAN.
– All the basics were there. If you needed something else (string manipulation for
example), you wrote it yourself or tried to find someone else that already did it and
borrowed the code.
– Machine Language finally could be replaced with it’s own “higher level language”
– Programs (and operating systems) that were traditionally written in Assembly
Language, quickly adopted “C”
⚫ Unix, Microsoft Windows for example
– BTW – Yes, there was a “B” developed at Bell Labs. Not so sure about an “A”
though!!
From C To Shining C#
Execution system JVM (Java Virtual CLR (Command Language Run Time)
Machine)
Class library Java class libraries FCL (Framework Class Library(
Web programming API servlets, JSP (Java ASP.NET Web Forms, ASP.NET MVC
Server Pages), JSF (Model View Controller)
(Java Server Paces)
GUI programming API AWT, Swing, JavaFX Windows Forms, Windows
(latter has RIA (rich Presentation Foundation
internet app) (latter has RIA support)
support)
.NET Other Languages