.NET and J2EE Intro to Software Engineering



Similar documents
Programming with the Microsoft.NET Framework Using Microsoft Visual Studio 2005 (VB)

C#5.0 IN A NUTSHELL. Joseph O'REILLY. Albahari and Ben Albahari. Fifth Edition. Tokyo. Sebastopol. Beijing. Cambridge. Koln.

An Introduction to.net for the J2EE Programmer

Xtreme RUP. Ne t BJECTIVES. Lightening Up the Rational Unified Process. 2/9/2001 Copyright 2001 Net Objectives 1. Agenda

Course Description. Course Audience. Course Outline. Course Page - Page 1 of 5

Put a Firewall in Your JVM Securing Java Applications!

CHAPTER 1 - JAVA EE OVERVIEW FOR ADMINISTRATORS

<Insert Picture Here> Java Application Diagnostic Expert

Dynamic Web Programming BUILDING WEB APPLICATIONS USING ASP.NET, AJAX AND JAVASCRIPT

Building an ecommerce Solution Architecture

Tuning WebSphere Application Server ND 7.0. Royal Cyber Inc.

Oracle WebLogic Server 11g Administration

WebSphere Server Administration Course

Chapter 13: Program Development and Programming Languages

Jonathan Worthington Scarborough Linux User Group

IBM WebSphere Server Administration

Java-technology based projects

What is Middleware? Software that functions as a conversion or translation layer. It is also a consolidator and integrator.

Middleware- Driven Mobile Applications

Oracle WebLogic Foundation of Oracle Fusion Middleware. Lawrence Manickam Toyork Systems Inc

Using Tomcat with CA Clarity PPM

Objectif. Participant. Prérequis. Remarque. Programme. C# 3.0 Programming in the.net Framework. 1. Introduction to the.

.NET Overview. David Smith. Today s s Topics. Why am I here? A tool. Microsoft s s Vision for.net

Why IBM WebSphere Application Server V8.0?

A standards-based approach to application integration

System Structures. Services Interface Structure

Praktikum im Bereich Praktische Informatik Entwicklung eines Ray-Tracing Systems. computer graphics & visualization

Siena Web Services. A Solution To Personal Computing With Established Desktop Programs Exploiting Web Technologies

IBM Rational Rapid Developer Components & Web Services

Introduction to WebSphere Process Server and WebSphere Enterprise Service Bus

MA-WA1920: Enterprise iphone and ipad Programming

How To Use The Dcml Framework

SOA REFERENCE ARCHITECTURE: WEB TIER

Getting started with API testing

Choose an IBM WebSphere Application Server configuration to suit your business needs

Oracle Data Integrator 11g New Features & OBIEE Integration. Presented by: Arun K. Chaturvedi Business Intelligence Consultant/Architect

Developing Web Services with Eclipse and Open Source. Claire Rogers Developer Resources and Partner Enablement, HP February, 2004

Java in Web 2.0. Alexis Roos Principal Field Technologist, CTO Office OEM SW Sales Sun Microsystems, Inc.

Take full advantage of IBM s IDEs for end- to- end mobile development

Informatica Master Data Management Multi Domain Hub API: Performance and Scalability Diagnostics Checklist

CrossPlatform ASP.NET with Mono. Daniel López Ridruejo

Version Overview. Business value

COURSE DIRECTORY MAY 2008

WEB SERVICES. Revised 9/29/2015

Basic Trends of Modern Software Development

General Introduction


BEA AquaLogic Integrator Agile integration for the Enterprise Build, Connect, Re-use

Component Middleware. Sophie Chabridon. INT - INF Department - Distributed Systems team 2006

Modern Software Development Tools on OpenVMS

Service Oriented Architecture (SOA) An Introduction

IBM Tivoli Composite Application Manager for WebSphere

Japan Communication India Skill Development Center

Is your mainframe less secure than your file server? Malcolm Trigg Solutions Consultant 24 th February 2016

Chapter 2 TOPOLOGY SELECTION. SYS-ED/ Computer Education Techniques, Inc.

Designing an Enterprise Application Framework for Service-Oriented Architecture 1

WebSphere ESB Best Practices

SW5706 Application deployment problems

The Deployment Production Line

What Is the Java TM 2 Platform, Enterprise Edition?

Japan Communication India Skill Development Center

Evolution of the Major Programming Languages

Firewall Builder Architecture Overview

Contents. Client-server and multi-tier architectures. The Java 2 Enterprise Edition (J2EE) platform

Internet Engineering: Web Application Architecture. Ali Kamandi Sharif University of Technology Fall 2007

So You Want an SOA: Best Practices for Migrating to SOA in the Enterprise. Eric Newcomer, CTO

Agile Software Development Methodologies and Its Quality Assurance

WebSphere Training Outline

BlackBerry Enterprise Service 10. Version: Configuration Guide

Java Monitoring. Stuff You Can Get For Free (And Stuff You Can t) Paul Jasek Sales Engineer

Introduction to Automated Testing

Beat the Beast - Java Performance Problem Tracking. with you. Java One - San Francisco, , Miroslaw Bartecki

WEB APPLICATION DEVELOPMENT. UNIT I J2EE Platform 9

The Enterprise Java Internet Provider

.NET Overview. Andreas Schabus Academic Relations Microsoft Österreich GmbH

SERENA SOFTWARE Authors: Bill Weingarz, Pete Dohner, Kartik Raghavan, Amitav Chakravartty

Methods and tools for data and software integration Enterprise Service Bus

CATALOG OF CLASSES IT and Technical Courses

Client-Server Architecture & J2EE Platform Technologies Overview Ahmed K. Ezzat

<Insert Picture Here> Java, the language for the future

WEBLOGIC ADMINISTRATION

IBM Rational Web Developer for WebSphere Software Version 6.0

White Paper: Why Upgrade from WebSphere Application Server (WAS) v7 to v8.x?

Quality Assurance Software Development Processes

Blackboard Learn TM, Release 9 Technology Architecture. John Fontaine

Workshop for WebLogic introduces new tools in support of Java EE 5.0 standards. The support for Java EE5 includes the following technologies:

Software Development Process Models and their Impacts on Requirements Engineering Organizational Requirements Engineering

MagDiSoft Web Solutions Office No. 102, Bramha Majestic, NIBM Road Kondhwa, Pune Tel: /

A Beginners Guide to Fusion Middleware

IBM InfoSphere MDM Server v9.0. Version: Demo. Page <<1/11>>

EVALUATION ONLY. WA2088 WebSphere Application Server 8.5 Administration on Windows. Student Labs. Web Age Solutions Inc.

Base One's Rich Client Architecture

Mobile Application Languages XML, Java, J2ME and JavaCard Lesson 04 Java

MicroStrategy Course Catalog

IBM Lotus Domino Document Manager 6.5.1

Overview: Siebel Enterprise Application Integration. Siebel Innovation Pack 2013 Version 8.1/8.2 September 2013

Developing Web Services with Documentum

Open Source egovernment Reference Architecture Osera.modeldriven.org. Copyright 2006 Data Access Technologies, Inc. Slide 1

Enterprise Application Integration

Transcription:

.NET and J2EE Intro to Software Engineering David Talby This Lecture.NET Platform The Framework CLR and C# J2EE Platform And Web Services Introduction to Software Engineering The Software Crisis Methodologies Course Summary.NET Compilation & Execution Model Source Code Native Code Compilation Language Compiler Execution JIT Compiler Code (IL) Assembly Metadata.NET Compilation Model 30+ languages compile to IL Can be done in Java (Python, Eiffel) IL defines which language features can run C++, Eiffel, ML and others lose some features, and extend the language for other features Metadata Reflection Identification Attributes.NET Execution Model JIT Compilation Compared to HotSpot in Java Enables safe yet native code 10%-15% Slower than native Also wastes more memory Same in Java Developers & Time cost more than hardware.net Language Interoperability Language doesn t matter Single stack trace, heap, threads, Polymorphism, exceptions, thread locks, garbage collection, singletons, Development tool Cross-language debugging Shared libraries Huge impact for esoteric languages Same performance for all languages Much easier reuse of older code

CLR compared to JVM Class loader Dynamic loading, can be controlled Security Manager + Code Signing Garbage collection Can be deterministic in CLR Disassemblers Can be done easily in IL or Java, also in C/C++/etc. Obfuscation partial solution, hinders reflection Only real solution hide the code Exceptions CLR Compared to JVM II Managed vs. unmanaged code C# has an unsafe keyword for unsafe sections Pointers and direct access to OS are allowed Enables both power and safety COM Inter-Op Transparent use of gigantic COM code base Generics Designed in advance for CLR, libraries and C#.NET is not forward-compatible C# Language Highlights Unified type system Value and reference types Explicit Polymorphism virtual, override, new, class::method syntax Component Programming Properties, events (delegates), indexers A lot of syntactic sugar Boxing, Operator Overloading, Enums, Iterators C# Language Highlights II Reflection Including generics, dynamic proxies, attributes Attributes Added to Java in 1.5, but not to libraries For the Compiler: Debug info, obfuscate, For Libraries, by Reflection: Serialization, Security, GUI properties, Documentation, For Aspect-Oriented Programming: XCSharp defines interfaces for code injection Enterprise Computing Basics Enterprise: Business Critical Basic Concepts: Enterprise Application Presentation Logic Business Logic EIS (Database) Multi- Tier Application Client, Web, Business, EIS Tiers J2EE Basics Three Editions to the Java Platform: Java 2 Micro Edition (Cell Phones, PDAs, ) Java 2 Standard Edition (Desktops) Java 2 Enterprise Edition (Enterprise Apps) Same language, different libraries Goal of J2EE: Reduce time, cost and complexity of developing enterprise apps Developers should focus on business logic They should buy all other services

J2EE Components & Services EJB: Enterprise Java Beans Server-side components / services Run on an EJB Application Server Application Server services Thread management, logging, security, failover, clustering, load balancing, multiple applications, naming service, connection management, scheduling, transactions, hot deployment, remote administration,... The J2EE Standard For Developers APIs for writing beans and accessing services Configuration & other file formats For Servers Protocols, required services, inter-operability The app servers market IBM WebWphere, BEA WebLogic, JBoss,... Microsoft provides similar services in Windows Evolution: Web Services Web Services (.NET / Java) New standard protocols for interfaces, method calls, and object creation Based on HTTP and XML Share schema, not class Independent deployment and versioning Heterogeneous platforms Strong security facilities in the standard Authentication, Single sign-on, Encryption, Developing Web Services This (mostly) applies to both.net and Java Developing a service Write a normal class in your favorite language Use attributes to define web methods / classes Create a deployment file, and publish it to a server Developing a client Choose Add Web Reference and write a URL An interface in your favorite language is generated Full debugging, type safety, metadata, intellisense, All plumbing is transparent in both ways Why Web Services are Important New WWW applications Software and not humans navigate the web Strong security -> economic transactions Simplifies integration between apps Major issue facing large organizations today Many systems, platforms, formats, upgrades, A Real heterogeneous platform Intro to Software Engineering David Talby

The Software Crisis In Numbers 84% of software projects are not on time 31% of software projects never complete ~60% of completed code is never used ~200 Billion $ a year lost to software bugs In Words Most software is buggy, unstable and insecure A lot of software is totally unusable Yet, software runs the world What is Engineering Repeatability Ability to do a similar project again well Same time, budget, quality are expected Methodology Well-defined roles: Architect, Engineer, Well-defined products: Designs, Specs, Code,... Standard workflow of how things are done Legal Liability Both Civil and Criminal Certification required for life-critical issues Methodology & Notation are laws State of the Software World Large Scale Lack of repeatability, even for small projects Inability to provide quality software No standard definition of roles & products No standard for requirements, design, tests, It s a wild west profession Small Scale Developers don t produce working software Developer tools are also far from perfect Development Methodologies A methodology describes An entire life cycle of a software product Roles, Products, Workflow Best Practices extreme Programming For small projects: up to 12 people, 100 stories Rational Unified Process For large projects: a heavy-weight process A commercial product Rational Unified Process By Rational, see rational.com/rup Decompose large system to sub-systems A team and development effort per system Architects Team does overall design, sharing Five stages of each system s life cycle Business modeling, Requirements, Analysis & Design, Implementation, Test Many artifacts are not code or tests Iterative Development Highly managed, highly automated process extreme Programming By Kent Beck, see XProgramming.com Embrace change Simplicity User involvement & rapid feedback Incremental pay-as-you-go design Test-first programming

The XP Principles The 12 XP Principles Develop by iterations of 1-3 weeks each: Plan (user stories) -> design (simplest!) -> test (unit tests) -> code (and refactor) Testing Functional tests: in design phase Unit tests as part of coding Continuous Integration Quality Work Refactoring, 40-Hour Week Planning Game Small Releases On-Site Customer Metaphor Simple Design 40-Hour Week Pair Programming Collective Ownership Testing Refactoring Continuous Integration Coding Standard Summary Writing Software Delivering Products Requirements, Architecture, Design, Code, Integrate, Test, Deploy, Maintain, Update The Software Crisis Software Today < 20% of existing code is Object-Oriented > 90% of new code is Object-Oriented Reuse: Libraries, Components, Web Services Major Frameworks/Platforms: Java and.net Course Summary