instructor: dr marco valtorta csce 330 c# group members: konstantinos malegos yasser al-mutairy...

23
INSTRUCTOR: DR MARCO VALTORTA CSCE 330 C# GROUP MEMBERS: KONSTANTINOS MALEGOS YASSER AL-MUTAIRY CHRIS HESTER UNIVERSITY OF SOUTH CAROLINA

Post on 21-Dec-2015

215 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: INSTRUCTOR: DR MARCO VALTORTA CSCE 330 C# GROUP MEMBERS: KONSTANTINOS MALEGOS YASSER AL-MUTAIRY CHRIS HESTER UNIVERSITY OF SOUTH CAROLINA

INSTRUCTOR: DR MARCO VALTORTA

CSCE 330

C#

GROUP MEMBERS:

KONSTANTINOS MALEGOS

YASSER AL-MUTAIRY

CHRIS HESTER

UNIVERSITY OF SOUTH CAROLINA

Page 2: INSTRUCTOR: DR MARCO VALTORTA CSCE 330 C# GROUP MEMBERS: KONSTANTINOS MALEGOS YASSER AL-MUTAIRY CHRIS HESTER UNIVERSITY OF SOUTH CAROLINA

THE BIRTH OF C#

• C# parents are C++ and JAVA. So, C# contains many C++ features but also adds the object-oriented features from JAVA.

• C# is the a hybrid language developed by Microsoft. In order to understand the basic features of the language, we must compare them with its predecessors.

Page 3: INSTRUCTOR: DR MARCO VALTORTA CSCE 330 C# GROUP MEMBERS: KONSTANTINOS MALEGOS YASSER AL-MUTAIRY CHRIS HESTER UNIVERSITY OF SOUTH CAROLINA

INTERESTING CONCEPTS

• To produce the first component oriented language in the C/C++ family. You can construct components that have properties, methods and events.

• To create a language which everything is an object. C# bridges the gap between primitive types and classes by allowing any piece of data to be treated as object.

Page 4: INSTRUCTOR: DR MARCO VALTORTA CSCE 330 C# GROUP MEMBERS: KONSTANTINOS MALEGOS YASSER AL-MUTAIRY CHRIS HESTER UNIVERSITY OF SOUTH CAROLINA

MICROSOFT.NET

• MICROSOFT.NET is the new programming environment introduced by Microsoft.

• It is the new way of building and deploying software that leverages standards such as HTTP and XML to make interoperability a reality.

• It is not necessary for C# to use this environment but C# was especially design for this environment.

Page 5: INSTRUCTOR: DR MARCO VALTORTA CSCE 330 C# GROUP MEMBERS: KONSTANTINOS MALEGOS YASSER AL-MUTAIRY CHRIS HESTER UNIVERSITY OF SOUTH CAROLINA

Common Language Runtime

• The CLR serves as an execution engine for applications.

• Every byte of code that you write for the framework runs in the CLR.

• CLR consists of instructions written in CIL(common intermediate language-pseudo-machine language). CIL instructions are just-in-time and compiled into native machine code at run time.

• A given method is compiled only once-the first time is called-and thereafter cached in memory so it can be executed again without delay.

Page 6: INSTRUCTOR: DR MARCO VALTORTA CSCE 330 C# GROUP MEMBERS: KONSTANTINOS MALEGOS YASSER AL-MUTAIRY CHRIS HESTER UNIVERSITY OF SOUTH CAROLINA

COMMON CIL INSTUCTIONS

• LDC-Loads a numeric constant onto the stack

• LDELEM-Loads an array element onto the stack

• NEWARR-Creates a new array

• NEWOBJ-Creates a new object

• THROW-Throws an exception

Page 7: INSTRUCTOR: DR MARCO VALTORTA CSCE 330 C# GROUP MEMBERS: KONSTANTINOS MALEGOS YASSER AL-MUTAIRY CHRIS HESTER UNIVERSITY OF SOUTH CAROLINA

COMPILERS

• Microsoft provides CIL compilers for Java, C++, Visual Basic, Cobol, Python, Eiffel and Jscript.You can even use the assembler ILASM to write code in CIL.

• All of these languages use the same API so you can port an application from Visual Basic and C++ to C#.

• Because high level code ultimately compiles to CIL, the framework lets you write a class in one language and use it or derive it from another. That is language independence!!!

Page 8: INSTRUCTOR: DR MARCO VALTORTA CSCE 330 C# GROUP MEMBERS: KONSTANTINOS MALEGOS YASSER AL-MUTAIRY CHRIS HESTER UNIVERSITY OF SOUTH CAROLINA

C#API

• The new .NET framework class library is a library with 7000 types,classes, structs, interfaces, enumerations. The bad news is that is like learning a new operating system. The good news is that that every languages uses the same API so you can easily switch to VB or C++.

Page 9: INSTRUCTOR: DR MARCO VALTORTA CSCE 330 C# GROUP MEMBERS: KONSTANTINOS MALEGOS YASSER AL-MUTAIRY CHRIS HESTER UNIVERSITY OF SOUTH CAROLINA

SAMPLE NAMESPACES

• System: core data types and auxiliary classes.• System.Net: classes that wrap protocols such as

HTTP.• System.Web.Services: classes for writing Web

Services.• System.Web.UI: core ASP.NET classes• System.Xml: classes for reading and writing XML

data.

Page 10: INSTRUCTOR: DR MARCO VALTORTA CSCE 330 C# GROUP MEMBERS: KONSTANTINOS MALEGOS YASSER AL-MUTAIRY CHRIS HESTER UNIVERSITY OF SOUTH CAROLINA

CONTINUE…

• To enable construction of robust and durable software. C# includes garbage collection,structured exception handling and type safety.

• It allows the use of pointers through the unsafe mode where performance is the key issue.

• Supports web programming through ASP and XML.

Page 11: INSTRUCTOR: DR MARCO VALTORTA CSCE 330 C# GROUP MEMBERS: KONSTANTINOS MALEGOS YASSER AL-MUTAIRY CHRIS HESTER UNIVERSITY OF SOUTH CAROLINA

CONTINUE…

• C# code can be written in any text editor. The only required task is to download the compiler from the Microsoft’s Website.

• It is recommended to use the graphical environment Visual Studio.NET. The advantages are that you can incorporate code from other languages like C++ and C and change it into C# code.

Page 12: INSTRUCTOR: DR MARCO VALTORTA CSCE 330 C# GROUP MEMBERS: KONSTANTINOS MALEGOS YASSER AL-MUTAIRY CHRIS HESTER UNIVERSITY OF SOUTH CAROLINA

EXAMPLES OF USAGE

• using System ; • //Import the WinForms Namespace • using System.Windows.Forms ; • //Class Form1 extends class Form from

the //System.Windows.Forms namespace • public class Form1 : Form {• //Main Method • public static void Main() { • //Run the Application Application.Run(new

Form1()); } }

Page 13: INSTRUCTOR: DR MARCO VALTORTA CSCE 330 C# GROUP MEMBERS: KONSTANTINOS MALEGOS YASSER AL-MUTAIRY CHRIS HESTER UNIVERSITY OF SOUTH CAROLINA

RESULT

Page 14: INSTRUCTOR: DR MARCO VALTORTA CSCE 330 C# GROUP MEMBERS: KONSTANTINOS MALEGOS YASSER AL-MUTAIRY CHRIS HESTER UNIVERSITY OF SOUTH CAROLINA

THE HELLO PROGRAM

• class HelloWorld{  public static void Main()   {    System.Console.WriteLine("Hello World") ;   } }

• Output will be Hello World

Page 15: INSTRUCTOR: DR MARCO VALTORTA CSCE 330 C# GROUP MEMBERS: KONSTANTINOS MALEGOS YASSER AL-MUTAIRY CHRIS HESTER UNIVERSITY OF SOUTH CAROLINA

WRITE TO A FILE

• public class Writetextfile

{    public static void Main(string[] args)    {        FileInfo t = new FileInfo(“example.txt");        StreamWriter Tex =t.CreateText();        Tex.WriteLine(“I am writing to the file");                Tex.Write(Tex.NewLine);        Tex.close();            }}  

Page 16: INSTRUCTOR: DR MARCO VALTORTA CSCE 330 C# GROUP MEMBERS: KONSTANTINOS MALEGOS YASSER AL-MUTAIRY CHRIS HESTER UNIVERSITY OF SOUTH CAROLINA

SIMILARITIES AND DIFFERNCES

• DECLARING VARIABLES :• C#: int x; int x=3;• C++: int x; int x=3; • Java: int x; int x=3;

• ASSIGNMENTS• C#: xvalue=7;• C++: xvalue=7;• Java: xvalue=7;

Page 17: INSTRUCTOR: DR MARCO VALTORTA CSCE 330 C# GROUP MEMBERS: KONSTANTINOS MALEGOS YASSER AL-MUTAIRY CHRIS HESTER UNIVERSITY OF SOUTH CAROLINA

CONTINUE…

• FOR LOOPS• C#: for(int i =1; i<=10; i++)• Console.WriteLine(“ The number is {0}”, i);• C++: for(int i =1; i<=10; i++)• Printf(“%d\n”,i);• JAVA: for(int i =1; i<=10; i++)• System.out.println(“The number is” +i);

Page 18: INSTRUCTOR: DR MARCO VALTORTA CSCE 330 C# GROUP MEMBERS: KONSTANTINOS MALEGOS YASSER AL-MUTAIRY CHRIS HESTER UNIVERSITY OF SOUTH CAROLINA

C# VERSUS JAVA

• C# and Java are both new generation languages descended from a line including C and C++. Each includes advanced features, like garbage collection, which remove some of the low level maintenance tasks from the programmer. In a lot of areas they are syntactically similar.

• C# contains more primitive data types than Java , and also allows more extension to the value types. For example, C# supports 'enumerators', types which are limited to a defined set of constant variables and structs, which are user-defined value types.

Page 19: INSTRUCTOR: DR MARCO VALTORTA CSCE 330 C# GROUP MEMBERS: KONSTANTINOS MALEGOS YASSER AL-MUTAIRY CHRIS HESTER UNIVERSITY OF SOUTH CAROLINA

CONTINUE…

• Unlike Java, C# has the useful feature that we can overload various operators.

• Like Java, C# gives up on multiple class inheritance in favor of a single inheritance model extended by the multiple inheritance of interfaces. However, polymorphism is handled in a more complicated fashion, with base class methods either 'overriding' or 'hiding' super class methods.

Page 20: INSTRUCTOR: DR MARCO VALTORTA CSCE 330 C# GROUP MEMBERS: KONSTANTINOS MALEGOS YASSER AL-MUTAIRY CHRIS HESTER UNIVERSITY OF SOUTH CAROLINA

According to Microsoft the top 6 Reasons to Switch to Visual C# from Java are:

• Familiarity Visual C# provides Java developers with a language that is immediately familiar and comfortable to them, regardless of skill level.

• Object-based Type System Visual C# provides developers with a modern and intuitive object-based type system that negates the need for complex and verbose data marshalling code commonly found in Java applications.

Page 21: INSTRUCTOR: DR MARCO VALTORTA CSCE 330 C# GROUP MEMBERS: KONSTANTINOS MALEGOS YASSER AL-MUTAIRY CHRIS HESTER UNIVERSITY OF SOUTH CAROLINA

Continue…

• Powerful Component-oriented Development Visual C# provides developers with a powerful component-oriented development language that includes support for properties, indexers, delegates, inheritance, versioning, and attributes, without the need for esoteric or rigid naming patterns and companion classes.

• C# allows developers to use Extensible Markup Language (XML) comments to provide useful and customizable source code documentation.

Page 22: INSTRUCTOR: DR MARCO VALTORTA CSCE 330 C# GROUP MEMBERS: KONSTANTINOS MALEGOS YASSER AL-MUTAIRY CHRIS HESTER UNIVERSITY OF SOUTH CAROLINA

CONTINUE…

• Target Any Device Visual C# lets developers target powerful desktop computers and a wide variety of handheld and wireless devices today using identical tools and skills.

• Leverage the .NET Framework Visual C# provides developers with access to the Microsoft .NET Framework, a robust, thread-safe library of collection classes, networking functionality, data access classes, and more.

Page 23: INSTRUCTOR: DR MARCO VALTORTA CSCE 330 C# GROUP MEMBERS: KONSTANTINOS MALEGOS YASSER AL-MUTAIRY CHRIS HESTER UNIVERSITY OF SOUTH CAROLINA

ANY QUESTIONS?