CNT6008 Network Programming Module - 11 Objectives

Skills/Concepts/Assignments Objectives ASP.NET Overview • Learn the Framework • Understand the different platforms • Compare to Java Platform Final Project Define your final project requirements

Section 21 – Web App Read Sections 21 and 27, pages 649 to 694 and 854 Development and ASP.NET to 878. Section 27 – Web App Development with ASP.NET Overview of ASP.NET Section Goals

Goal Course Presentation Understanding Windows Understanding .NET Framework Foundation

Project Concepts Creating a ASP.NET Client and Server Application

Understanding the Visual Creating a ASP Project Studio Development Environment .NET – What Is It?

• Software platform • Language neutral • In other words: • .NET is not a language (Runtime and a library for writing and executing written programs in any compliant language) What Is .NET • .Net is a new framework for developing web-based and windows-based applications within the environment. • The framework offers a fundamental shift in Microsoft strategy: it moves application development from client-centric to server- centric. .NET – What Is It?

.NET Application

.NET Framework

Operating System + Hardware Framework, Languages, And Tools

VB VC++ VC# JScript …

Common Language Specification VisualStudio.NET

ASP.NET: Web Services Windows and Web Forms Forms

ADO.NET: Data and XML

Base Class Library

Common Language Runtime The .NET Framework .NET Framework Services • • Windows Communication Framework (WCF) • Windows® Forms • ASP.NET (Active Server Pages) • Web Forms • Web Services • ADO.NET, evolution of ADO • Visual Studio.NET Common Language Runtime (CLR)

• CLR works like a in executing all languages. • All .NET languages must obey the rules and standards imposed by CLR. Examples: • Object declaration, creation and use • Data types, language libraries • Error and • Interactive Development Environment (IDE) Common Language Runtime

• Development • Mixed language applications • Common Language Specification (CLS) • (CTS) • Standard class framework • Automatic memory management • Consistent error handling and safer • Potentially multi-platform • Deployment • Removal of registration dependency • Safety – fewer versioning problems Common Language Runtime Multiple Language Support • CLS is a rich type system built into the CLR – Implements various types (int, double, etc) – And operations on those types • CLS is a set of specifications that language and library designers need to follow – This will ensure interoperability between languages Compilation in .NET

Code in another Code in VB.NET Code in # .NET Language

Appropriate VB.NET C# compiler Compiler

IL(Intermediate Language) code

CLR just-in-time execution Intermediate Language (IL) • .NET languages are not compiled to . They are compiled to an Intermediate Language (IL).

• CLR accepts the IL code and recompiles it to machine code. The recompilation is just-in-time (JIT) meaning it is done as soon as a function or subroutine is called.

• The JIT code stays in memory for subsequent calls. In cases where there is not enough memory it is discarded thus making JIT process interpretive. Languages

• Languages provided by Microsoft • VB, C++, C#, J#, JScript • Third-parties are building • APL, COBOL, Pascal, Eiffel, Haskell, ML, Oberon, , Python, Scheme, Smalltalk…

• Framework for Building Rich Clients – RAD (Rapid Application Development) – Rich set of controls – Data aware – ActiveX® Support – Licensing – Accessibility – Printing support – Unicode support – UI inheritance Active Server Pages (ASP.NET)

• ASP.NET, the platform services that allow to program Web Applications and Web Services in any .NET language • ASP.NET Uses .NET languages to generate HTML pages. HTML page is targeted to the capabilities of the requesting Browser • ASP.NET “Program” is compiled into a .NET class and cached the first time it is called. All subsequent calls use the cached version. ASP.NET

• Logical Evolution of ASP – Supports multiple languages – Improved performance – Control-based, event-driven – More productive – Cleanly encapsulated functionality Problems with ASP

• Easy to end up with hideous spaghetti code – HTML + VBScript + CSS + JavaScript all intertwined – But a good programmer would separate these into files • No easy way to cope with browser compatibility problems when generating client-side code – Although browser compatibility issues are reducing as standards become more mature • Script code interpreted at run-time – inefficient – not very robust • Preserving state using the ASP Session object is inefficient ASP.NET ASP.NET addresses the problems of ASP • Development is totally forms-based (called Web Forms) – everything is drag and drop • GUI controls that know how to render themselves for a range of clients – rather better on IE than other browsers if you are not careful • Create event code (e.g. for a button) in a VB fashion • Application code can be written in any Microsoft .NET language – C#, VB.NET, etc. – full programming languages, not scripting languages • Server-side code and presentation code (HTML) are separated – application code stored in a ‘code behind’ file – can be fully compiled ‘’ – increased efficiency • Session handling improved – echoing back data entered in a form is made automatic. ASP.NET Web Forms • Allows clean cut code • Code-behind Web Forms • Easier for tools to generate • Code within is compiled then executed • Improved handling of state information • Support for ASP.NET server controls • Data validation • Data bound grids ASP.NET Web Services

A technical definition “A programmable application component accessible via standard Web protocols” Web Services

• It is just an application… • …that exposes its features and capabilities over the network… • …using XML… • …to allow for the creation of powerful new applications that are more than the sum of their parts… Web Services

• One of these Web protocols is the Simple Object Access Protocol (SOAP). • SOAP is a W3C submitted note (as of May 2000) that uses standards based technologies (XML for data description and HTTP for transport) to encode and transmit application data. • Consumers of a Web Service do not need to know anything about: • The platform, object model, or used to implement the service • They only need to understand how to send and receive SOAP messages (HTTP and XML). WCF Services

• Windows Communication Foundation (WCF) is a framework for building service-oriented applications. • Send data as asynchronous messages from one service endpoint to another. • A service endpoint can be part of a continuously available service hosted by IIS, or it can be a service hosted in an application. • An endpoint can be a client of a service that requests data from a service endpoint. • The messages can be as simple as a single character or word sent as XML, or as complex as a stream of binary data. Web Service ASP.net Versus WCF Service

• WCF is a replacement for all earlier web service technologies from Microsoft. • It does a lot more than what is traditionally considered as "web services“ • WCF "web services" are part of a much broader spectrum of remote communication enabled through WCF. • Much higher degree of flexibility and portability doing things in WCF than through traditional ASMX • WCF is designed, from the ground up, to summarize all of the different distributed programming infrastructures offered by Microsoft. Web Service ASP.net Versus WCF Service

• WCF - Easy endpoint communication • SOAP/XML • TCP/binary • To change this medium is simply a configuration file modification. • Common scenarios for hosting WCF services are IIS , Windows Process Activation Service (WAS), Self-hosting ,Managed Windows Service. • ASP.NET Web Services Use XmlSerializer, WCF Uses DataContractSerializer • Data serializer better in performance as compared to XmlSerializer. • With XmlSerializer only Public fields or Properties of .NET types can be translated into XML. • Only the classes which implement IEnumerable interface. • Classes that implement the IDictionary interface, such as Hash table can not be serialized. Active Data Objects (ADO.NET) (Data and XML)

• New objects (e.g., DataSets) • Separates connected / disconnected issues • Language neutral data access • Uses same types as CLR • Great support for XML Visual Studio.NET

Development tool that contains a rich set of productivity and debugging features .NET – Hierarchy

CLR

CLR The Microsoft .NET Framework

XML based Web Forms Web Services ASP.NET Windows Forms

Library classes for accessing data and XML (ADO.NET, SQL, XML, XSLT)

Library Framework Base classes (IO, string, collections, security)

Common Language Runtime Common Language Runtime

Program written in any .NET supported language C#, VB.NET, etc.

compile

Intermediate Language (IL) - like Java (.exe or .dll)

Common Language Runtime Loads and executes code, garbage collects etc Section Summary

• ASP.NET Web Forms Make it Easy to Develop Web Service Applications • ASP.NET is Derived from Previous ASP, which Proved Very Popular and Easy to Use • Code organization improvements • Performance improvements • State management • WCF is a Foundation for All Microsoft Technologies • Was better serialization • Was better performance • Was better integration • Services • Clients Comparison Between J2EE and .NET Comparison Between J2EE and .NET Architectures J2EE and .NET

Execution Engine • J2EE • Java compiles into machine-independent byte code • Runtime Environment : JVM • .NET • Any compliant language compiles into MSIL • Runtime environment : CLR

Both JVM and CLR, support services, such as code verification, memory management via garbage collection, and code security J2EE and .NET

Cross Platform Portability

• J2EE • Platform Independent • JDK should exist on target machine • .NET • Supports Windows platform • CLR should exist on target machine • Can support other platforms provided it has its own JIT complier • project for Linux J2EE and .NET Language Support

• J2EE • Tied to Java • Supports other languages via interface technology • JNI • Messaging • .NET • Language independent • Supports any language if mapping exists from that • language to IL J2EE and .NET

Tools Support • J2EE • Can employ any number of tools • Pro :Developer has a great deal of choice • Con :Difficulty in choosing a right tool for a given job

• .NET • Visual Studio.NET, single IDE for building an application Section Summary

• Should Understand the Features of Both J2EE and .NET • Should Understand the Benefits and Drawbacks Overview of Final Project Section Goals

Goal Course Presentation Understanding Windows Understanding ASP.NET Framework Foundation

Project Concepts Creating a ASP.NET Client and Server Application

Understanding the Visual Creating a ASP.NET Project Studio Development Environment Final Project

• Built Off the Concepts Provided in Chapters 21 and 27 • Student Requirements: • Define a Web based project that will be interesting for you • Must use ASP.NET • No Restriction on Protocols to use • No Restriction on the type of data store (File, ADO, Database) • Client can either be a Browser or Custom Client Web application • Provide a List of Additional Technologies the Instructor Will Need to Cover, if Required • Submit Project Proposal End of Week - Module 12 • Describes what you will build, including diagram of solution • Tools you will use • Additional information you require Section Summary

• Should Understand the Details for the Final Project • Developed in ASP.NET • But completely defined by you • Should demonstrate a Web Technology using ASP.NET • Proposal End of Week – Module 12 End Module - 11