Lecture 2: An Introduction to J# and .NET Objectives “Microsoft .NET is based on the .NET Framework, which consists of two major components: a run-time execution engine and an extensive software library. The Framework supports a wide range of programming languages, including J# which brings Java to .NET... ” • Modern program execution • J# • Visual Studio .NET Introducing Microsoft J# in Visual Studio CS using .NET .NET 2-2 2 Program execution in the 21st century • Idea: – modern software executes using a run-time environment – why? portable and safe execution… Your Application Run-time Environment Operating System Hardware Introducing Microsoft J# in Visual Studio CS using .NET .NET 2-3 3 Program execution in .NET • Based on Common Language Runtime (CLR) + .NET Framework Class Library (FxCL) • run-time environment + large software library Your Application .NET Framework Class Library (FxCL) Common Language Runtime (CLR) Operating System Hardware Introducing Microsoft J# in Visual Studio CS using .NET .NET 2-4 4 So what is .NET? • A technology for developing & executing software… – platform independent (XP, Pocket PC, Linux (Mono), BSD ) – language independent (28 languages listed at http://www.gotdotnet.com/team/lang//) J# C# C++ VB … Your Application .NET Framework Class Library (FxCL) Common Language Runtime (CLR) Operating System Hardware Introducing Microsoft J# in Visual Studio CS using .NET .NET 2-5 5 What exactly is J#? • "J-Sharp" is Java on the .NET platform – J# allows you to program using the Java language yet take advantage of the Microsoft .NET platform • What is Java? – Java language syntax + Java class library • What is J#? – Java language syntax (Java 1.4) + Java class library + .NET class library – current Java language (i.e. v1.5, a.k.a. Java 5) – partial support for Java class library (most of v1.1, some of v1.2) – Additional library for Swing Introducing Microsoft J# in Visual Studio CS using .NET .NET 2-6 6 Example in J# • The infamous "hello world!" program – written in pure Java… public class HelloApp { public static void main(String[] args) { System.out.println("Hello world!"); } } Introducing Microsoft J# in Visual Studio CS using .NET .NET 2-7 7 How to edit, compile, run? • Visual Studio .NET • Visual Studio is Microsoft's IDE – "Integrated Development Environment" • One environment for all .NET programming: – editing – compiling – running – debugging Introducing Microsoft J# in Visual Studio CS using .NET .NET 2-8 8 Step 1. Select new project… Introducing Microsoft J# in Visual Studio CS using .NET .NET 2-9 9 Step 2. Create project… • Select application language, then template Introducing Microsoft J# in Visual Studio CS using .NET .NET 2-10 10 Step 3. Implement… • Code the program in coding window – use "Solution Explorer" window for navigating program files coding window Introducing Microsoft J# in Visual Studio CS using .NET .NET solution explorer 2-11 11 Step 4. Run! • Just press F5 and off we go! – or use Debug menu, Start… – or click VCR-like "Play" button on the toolbar… • Go ahead and try it — what happens? Introducing Microsoft J# in Visual Studio CS using .NET .NET 2-12 12 The "console" flash • By default, Visual Studio does the following: – opens console window – runs program – closes window – so all you see is a flash! Introducing Microsoft J# in Visual Studio CS using .NET .NET 2-13 13 Solution • Keep console window open until user is done… package HelloApp; public class HelloApp { public static void main(String[] args) throws Exception { System.out.println("Hello world!"); // keep console window open... System.out.println(); System.out.print("Press ENTER to exit..."); System.in.read(); }//main }//class Introducing Microsoft J# in Visual Studio CS using .NET .NET 2-14 14 Very helpful IDE features… • IntelliSense • Overloading • Tight integration of editor & compiler – to name just a few… Introducing Microsoft J# in Visual Studio CS using .NET .NET 2-15 15 IntelliSense! • IntelliSense is a fantastic advance – context-sensitive programming aid – reduces programming errors – encourages experimentation and exploration // keep console window open… System.o Introducing Microsoft J# in Visual Studio CS using .NET .NET 2-16 16 Overloading • J# allows multiple methods with the same name – We know this as overloading – methods must differ in their parameter lists – VS depicts as a scrollable list… // keep console window open… System.out.println( Introducing Microsoft J# in Visual Studio CS using .NET .NET 2-17 17 Editor & compiler integration • Errors are highlighted in the code like spelling mistakes: Introducing Microsoft J# in Visual Studio CS using .NET .NET 2-18 18 Working with Visual Studio • Modes of programming: – "design": coding – "run": program is actively running – "break": program is paused (more on this later) • How to know which mode you're in? Introducing Microsoft J# in Visual Studio CS using .NET .NET 2-19 19 Visual Studio files • Visual Studio produces lots of files – bin folder contains .EXE, program input files – obj folder contains temporary files – solution (.sln) is main file for working with VS – project (.vjsproj) tracks source files, settings – Visual J# (.jsl) denotes source code files Introducing Microsoft J# in Visual Studio CS using .NET .NET 2-20 20 Re-opening a project • To re-open a project and continue working… – double-click on the SOLUTION (.sln) file or – startup Visual Studio and open .sln file Introducing Microsoft J# in Visual Studio CS using .NET .NET 2-21 21 Summary • Modern program execution: – based on virtual machines and large class libraries – in Java, known as JVM and JCL – in .NET, known as CLR and FxCL • J# is Java on the .NET platform • VS is a modern, sophisticated, powerful IDE Introducing Microsoft J# in Visual Studio CS using .NET .NET 2-22 22