.NET and J2EE Intro to Software Engineering David Talby.

Slides:



Advertisements
Similar presentations
.NET Technology. Introduction Overview of.NET What.NET means for Developers, Users and Businesses Two.NET Research Projects:.NET Generics AsmL.
Advertisements

Welcome to Middleware Joseph Amrithraj
Introduction to .NET Framework
Alternate Software Development Methodologies
The road to reliable, autonomous distributed systems
SSCLI: The Microsoft Shared Source CLI Implementation Mark Lewin Microsoft Research
.NET Framework Overview Pingping Ma Nov 16 th, 2006.
.NET Review Intro to Software Engineering David Talby.
Overview of the.NET Framework. What is the.NET Framework A new computing platform designed to simplify application development A consistent object-oriented.
CSE3030Lecture 11 Know Your User The First Slogan.
Computer Engineering 203 R Smith Agile Development 1/ Agile Methods What are Agile Methods? – Extreme Programming is the best known example – SCRUM.
XP and Refactoring David Talby. Development Methodologies The Software Crisis – 84% of software projects are not on time – 31% of software projects never.
J2EE vs..NET Nigam Patel. Topics Background –Web Services, J2EE and.NET Similarities Differences Conclusion –Pros and Con (J2EE and.NET)
Introducing the Common Language Runtime for.NET. The Common Language Runtime The Common Language Runtime (CLR) The Common Language Runtime (CLR) –Execution.
J2EE Java 2 Enterprise Edition. Relevant Topics in The Java Tutorial Topic Web Page JDBC orial/jdbc
Intro to C# Language Richard Della Tezra IS 373. What Is C#? C# is type-safe object-oriented language Enables developers to build a variety of secure.
Introducing the Common Language Runtime. The Common Language Runtime The Common Language Runtime (CLR) The Common Language Runtime (CLR) –Execution engine.
Nikolaos Korfiatis The Java 2 Enterprise Edition Platform Dept. of Management & Technology-Athens University of Economics and Business Java 2 Platform.
© 2004 IBM Corporation BEA WebLogic Server Introduction and Training.
Creating and Running Your First C# Program Svetlin Nakov Telerik Corporation
DotNET A Developer’s Perspective Mike Litzkow University of Wisconsin - MadisonOne.
L EC. 01: J AVA FUNDAMENTALS Fall Java Programming.
Understanding and Managing WebSphere V5
.NET, and Service Gateways Group members: Andre Tran, Priyanka Gangishetty, Irena Mao, Wileen Chiu.
Creating and Running Your First C# Program Telerik Software Academy Telerik School Academy.
Windows.Net Programming Series Preview. Course Schedule CourseDate Microsoft.Net Fundamentals 01/13/2014 Microsoft Windows/Web Fundamentals 01/20/2014.
A Free sample background from © 2001 By Default!Slide 1.NET Overview BY: Pinkesh Desai.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse.
EJB Overview Celsina Bignoli Distributed Business Applications Server DB Client DB Server DB.
Architecture Of ASP.NET. What is ASP?  Server-side scripting technology.  Files containing HTML and scripting code.  Access via HTTP requests.  Scripting.
©2007 · Georges Merx and Ronald J. NormanSlide 1 Chapter 11 Reality Check: Java Programming in the Real World.
CSCI 224 Introduction to Java Programming. Course Objectives  Learn the Java programming language: Syntax, Idioms Patterns, Styles  Become comfortable.
Introduction to .Net Framework
Quality Assurance for Component- Based Software Development Cai Xia (Mphil Term1) Supervisor: Prof. Michael R. Lyu 5 May, 2000.
1 8/29/05CS360 Windows Programming Professor Shereen Khoja.
© 2008 Dr. Paul Walcott – The University of the West Indies: Cave Hill CampusDr. Paul Walcott COMP6325 Advanced Web Technologies Dr. Paul Walcott The University.
Session 1 - Introduction and Data Access Layer
Meir Botner David Ben-David. Project Goal Build a messenger that allows a customer to communicate with a service provider for a fee.
Creating and Running Your First C# Program Svetlin Nakov Telerik Corporation
Lesley Bross, August 29, 2010 ArcGIS 10 add-in glossary.
CIS 375—Web App Dev II Microsoft’s.NET. 2 Introduction to.NET Steve Ballmer (January 2000): Steve Ballmer "Delivering an Internet-based platform of Next.
Enterprise Java Beans Part I Kyungmin Cho 2001/04/10.
第十四章 J2EE 入门 Introduction What is J2EE ?
® IBM Software Group © 2007 IBM Corporation J2EE Web Component Introduction
.NET Framework Danish Sami UG Lead.NetFoundry
.Net – The First Glance What Is.Net, Why Use.Net.
tom perkins1 XML Web Services -.NET FRAMEWORK – Part 1 CHAPTER 1.1 – 1.3.
1 Geospatial and Business Intelligence Jean-Sébastien Turcotte Executive VP San Francisco - April 2007 Streamlining web mapping applications.
NA-MIC National Alliance for Medical Image Computing UCSD: Engineering Core 2 Portal and Grid Infrastructure.
PRIOR TO WEB SERVICES THE OTHER TECHNOLOGIES ARE:.
CS223: Software Engineering Lecture 18: The XP. Recap Introduction to Agile Methodology Customer centric approach Issues of Agile methodology Where to.
 Cloud Computing technology basics Platform Evolution Advantages  Microsoft Windows Azure technology basics Windows Azure – A Lap around the platform.
Intro to ASP.NET CS-422 Dick Steflik. What is.NET As applications in the Enterprise become more and more netcentric and less and less standalone.NET is.
Introduction to the Microsoft.NET Framework Chris Wastchak Student Ambassador to Microsoft.
Introduction to Distributed Objects and Services David Rabinowitz.
The Holmes Platform and Applications
Introducing the Microsoft® .NET Framework
Suresh Ramachandran Duke Energy
WebSphere Diego Leone.
Platform as a Service.
.Net A brief introduction to
Introduction Enosis Learning.
CMPE419 Mobile Application Development
Introduction Enosis Learning.
Component-Based Software Engineering: Technologies, Development Frameworks, and Quality Assurance Schemes X. Cai, M. R. Lyu, K.F. Wong, R. Ko.
Web Application Server 2001/3/27 Kang, Seungwoo. Web Application Server A class of middleware Speeding application development Strategic platform for.
Module 10: Implementing Managed Code in the Database
Quality Assurance for Component-Based Software Development
CMPE419 Mobile Application Development
Presentation transcript:

.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 Compilation Language Compiler Assembly Execution JIT Compiler NativeCode Code (IL) 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 Sim plifies 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/ruprational.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.comXProgramming.com Embrace change Simplicity User involvement & rapid feedback Incremental pay-as-you-go design Test-first programming

The 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

The 12 XP Principles 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