.NET Review 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

Introduction to .NET Framework
Tahir Nawaz Introduction to.NET Framework. .NET – What Is It? Software platform Language neutral In other words:.NET is not a language (Runtime and a.
J-Interop Open Source Java COM Bridge. Contents What is it ? Comparison with Java Native interface Comparison with J-Integra® for COM Benefits of using.
Extreme Programming Alexander Kanavin Lappeenranta University of Technology.
COM vs. CORBA.
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.
Overview of the.NET Framework. What is the.NET Framework A new computing platform designed to simplify application development A consistent object-oriented.
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.
.NET and J2EE Intro to Software Engineering David Talby.
Introducing the Common Language Runtime for.NET. The Common Language Runtime The Common Language Runtime (CLR) The Common Language Runtime (CLR) –Execution.
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.
Creating and Running Your First C# Program Svetlin Nakov Telerik Corporation
Session-02. Objective In this session you will learn : What is Class Loader ? What is Byte Code Verifier? JIT & JAVA API Features of Java Java Environment.
Platforms and tools for Web Services and Mobile Applications Introduction to C# Bent Thomsen Aalborg University 3rd and 4th of June 2004.
Intro to dot Net Dr. John Abraham UTPA – Fall 09 CSCI 3327.
Basic Concepts The Unified Modeling Language (UML) SYSC System Analysis and Design.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 17 Slide 1 Extreme Programming.
.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.
CSCI 224 Introduction to Java Programming. Course Objectives  Learn the Java programming language: Syntax, Idioms Patterns, Styles  Become comfortable.
Lecturer PEN PHIROM Tel : Web site: Lecturer PEN PHIROM Tel :
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.
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.
CIS NET Applications1 Chapter 2 –.NET Component- Oriented Programming Essentials.
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.
Managed C++. Objectives Overview to Visual C++.NET Concepts and architecture Developing with Managed Extensions for C++ Use cases Managed C++, Visual.
CPSC 2150 August 21, Chapter 1 Object Oriented Software Development This is an introductory course In this chapter we will look at 3 topics Challenges.
.NET Framework Danish Sami UG Lead.NetFoundry
Extreme/Agile Programming Prabhaker Mateti. ACK These slides are collected from many authors along with a few of mine. Many thanks to all these authors.
June 05 David A. Gaitros Jean Muhammad Introduction to OOD and UML Dr. Jean Muhammad.
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.
PRIOR TO WEB SERVICES THE OTHER TECHNOLOGIES ARE:.
Extreme Programming Based on and
CASE (Computer-Aided Software Engineering) Tools Software that is used to support software process activities. Provides software process support by:- –
Microsoft .NET A platform that can be used for building and running windows and web applications such that the software is platform and device-independent.
Agile Methods Presentation By: Jason Abbett. Definition A process to rapidly develop software Many kinds of agile methods but few are practiced.
CS223: Software Engineering Lecture 18: The XP. Recap Introduction to Agile Methodology Customer centric approach Issues of Agile methodology Where to.
An Extreme Makeover Jill Burkart H. Leonard Liaw Amaris Vigil Andrew Switzky Diana Miranda-Murillo Don Turnbull The University of Texas at Austin.
January 14 th -15 th 2004 Recap of Day 1 Daragh Byrne – EPCC.
Sung-Dong Kim, Dept. of Computer Engineering, Hansung University Java - Introduction.
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.
Software Development.
Introducing the Microsoft® .NET Framework
An Introduction to the Shared Source Common Language Infrastructure (SSCLI) Damien Watkins Copyright Watkins 2002.
Microsoft .NET 3. Language Innovations Pan Wuming 2017.
Introduction Enosis Learning.
CMPE419 Mobile Application Development
.NET and .NET Core 2. .NET Runtimes Pan Wuming 2017.
Introduction Enosis Learning.
Module 10: Implementing Managed Code in the Database
Quality Assurance for Component-Based Software Development
Paul Stubbs MCSD, MCSE 4.0, MCP+I, MCT, MCAD .Net
CMPE419 Mobile Application Development
FUNDAMENTALS OF DOT NET TRAINING BY SURBHI KALE. INDEX 1.Dot net training Framework Fundamentals 2.CLR Features 3.Class Library Features 4.The Common.
Presentation transcript:

.NET Review Intro to Software Engineering David Talby

This Lecture.NET Lecture Review The Framework CLR and C# 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

Evolution: Before Web Services The Issue: apps working together C APIs (System Calls, Win32 API, … ) Application-specific protocols Anything except data transfer must be coded COM / DCOM or RMI / CORBA Binary standard for interfaces, method calls, types & marshalling, error handling, … Location + protocol + language independent Services: Security, Deployment, Naming, Administration, Load Balancing, Failover, …

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