Death of the Browser? Billy Hollis Next Version Systems, LLC Presented for the Association of Information Technology Professionals October 31, 2002.

Slides:



Advertisements
Similar presentations
Web Services Nasrullah. Motivation about web service There are number of programms over the internet that need to communicate with other programms over.
Advertisements

The Impact of Microsoft.NET Billy Hollis Next Version Systems, LLC Presented for the Association of Information Technology Professionals October 31, 2002.
DEV392: Extending SharePoint Products And Technologies Through Web Parts And ASP.NET Clint Covington, Program Manager Data And Developer Services - Office.
Distributed components
Technical Architectures
ARC312 Smart Client Architecture Chris J.T. Auld Managing Director- Kognition Microsoft Regional Director & MVP
Kashif Jalal CA-240 (072) Web Development Using ASP.NET CA – 240 Kashif Jalal Welcome to week – 2 of…
Week 2 IBS 685. Static Page Architecture The user requests the page by typing a URL in a browser The Browser requests the page from the Web Server The.
Create Windows ® Applications with.NET Allan Knudsen.NET Developer Evangelist Microsoft.
2006 IEEE International Conference on Web Services ICWS 2006 Overview.
J2EE vs..NET Nigam Patel. Topics Background –Web Services, J2EE and.NET Similarities Differences Conclusion –Pros and Con (J2EE and.NET)
Systems Architecture, Fourth Edition1 Internet and Distributed Application Services Chapter 13.
Computer Science 101 Web Access to Databases Overview of Web Access to Databases.
Client/Server Architecture
Intro to dot Net Dr. John Abraham UTPA – Fall 09 CSCI 3327.
Microsoft Visual Basic 2012 CHAPTER ONE Introduction to Visual Basic 2012 Programming.
.NET, and Service Gateways Group members: Andre Tran, Priyanka Gangishetty, Irena Mao, Wileen Chiu.
INTRODUCTION TO WEB DATABASE PROGRAMMING
A Free sample background from © 2001 By Default!Slide 1.NET Overview BY: Pinkesh Desai.
Smart Client Applications for Developers Davin Mickelson, MCT, MCSD New Horizons of MN.
Architecture Of ASP.NET. What is ASP?  Server-side scripting technology.  Files containing HTML and scripting code.  Access via HTTP requests.  Scripting.
A Scalable Application Architecture for composing News Portals on the Internet Serpil TOK, Zeki BAYRAM. Eastern MediterraneanUniversity Famagusta Famagusta.
Introduction to ASP.NET. Prehistory of ASP.NET Original Internet – text based WWW – static graphical content  HTML (client-side) Need for interactive.
ASP.NET The.NET Framework. The.NET Framework is Microsoft’s distributed run-time environment for creating, deploying, and using applications over the.
Meir Botner David Ben-David. Project Goal Build a messenger that allows a customer to communicate with a service provider for a fee.
Introduction to .NET Rui Ye.
ASP.NET  ASP.NET is a web development platform, which provides a programming model, a comprehensive software infrastructure and various services required.
1 Web Services Distributed Systems. 2 Service Oriented Architecture Service-Oriented Architecture (SOA) expresses a software architectural concept that.
C Copyright © 2009, Oracle. All rights reserved. Appendix C: Service-Oriented Architectures.
Visual Studio ®.NET Data with XML Carlotta Eaton ( Associate Professor of IST New River Community College Slides by Microsoft Modified.
Introduction to distributed systems Dr. S. Indran 23 January 2004.
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.
Windows Internet Explorer 9 Chapter 1 Introduction to Internet Explorer.
4 - 1 Copyright © 2006, The McGraw-Hill Companies, Inc. All rights reserved.
XP New Perspectives on Browser and Basics Tutorial 1 1 Browser and Basics Tutorial 1.
Home Media Network Hard Drive Training for Update to 2.0 By Erik Collett Revised for Firmware Update.
5 Chapter Five Web Servers. 5 Chapter Objectives Learn about the Microsoft Personal Web Server Software Learn how to improve Web site performance Learn.
TRAQ Manager.NET MES on Microsoft.NET Wrapmation Inc Vladimir L’vov This Presentation is available for download at
Section 1: Introducing Group Policy What Is Group Policy? Group Policy Scenarios New Group Policy Features Introduced with Windows Server 2008 and Windows.
Tutorial 121 Creating a New Web Forms Page You will find that creating Web Forms is similar to creating traditional Windows applications in Visual Basic.
 Evolution of Smart Client  What is Smart client?  Types of Smart client  Architectural challenges  Smart Client Architecture  Demo application.
Tom Castiglia Hershey Technologies
Lecture 15 Introduction to Web Services Web Service Applications.
CS480 Computer Science Seminar Introduction to Microsoft Solutions Framework (MSF)
Dynamic Content On Edge Cache Server (using Microsoft.NET) Name: Aparna Yeddula CS – 522 Semester Project Project URL: cs.uccs.edu/~ayeddula/project.html.
Chapter 34 Java Technology for Active Web Documents methods used to provide continuous Web updates to browser – Server push – Active documents.
DEV325 Deploying Visual Studio.NET Applications Billy Hollis Author / Consultant.
1 Welcome to CSC 301 Web Programming Charles Frank.
Dr. Azeddine Chikh IS444: Modern tools for applications development.
Create Windows ® Applications with.NET Carlotta Eaton ( Associate Professor of IST New River Community College Slides by Microsoft.
Section 11: Implementing Software Restriction Policies and AppLocker What Is a Software Restriction Policy? Creating a Software Restriction Policy Using.
Windows Forms in Visual Studio 2005 Mike Pelton Systems Engineer Microsoft Ltd
Active Server Pages (ASP), also known as Classic ASP or ASP Classic, was Microsoft's first server-side script engine for dynamically generated web pages.
Intro to dot Net Dr. John Abraham UTPA CSCI 3327.
ASP.NET in Definition: 1.ASP.NET is a web application framework developed and marketed by Microsoft to allow programmers to build dynamic web sites,
PRIOR TO WEB SERVICES THE OTHER TECHNOLOGIES ARE:.
Module: Software Engineering of Web Applications Chapter 2: Technologies 1.
Web Services An Introduction Copyright © Curt Hill.
ASP-2-1 SERVER AND CLIENT SIDE SCRITPING Colorado Technical University IT420 Tim Peterson.
Intro to Web Services Dr. John P. Abraham UTPA. What are Web Services? Applications execute across multiple computers on a network.  The machine on which.
.NET Mobile Application Development XML Web Services.
Navigation Framework using CF Architecture for a Client-Server Application using the open standards of the Web presented by Kedar Desai Differential Technologies,
E-commerce Architecture Ayşe Başar Bener. Client Server Architecture E-commerce is based on client/ server architecture –Client processes requesting service.
COMP3121 E-Commerce Technologies Richard Henson University of Worcester December 2009.
ClickOnce Deployment (One-click Deployment)
Platform as a Service.
Visual Studio Tools for Office 2005
Smart Client Deployment With Microsoft® Windows® Forms
ClickOnce Deployment (One-click Deployment)
Mark Quirk Head of Technology Developer & Platform Group
Presentation transcript:

Death of the Browser? Billy Hollis Next Version Systems, LLC Presented for the Association of Information Technology Professionals October 31, 2002

Recent history Prior to 1984 – character-based interfaces Prior to 1984 – character-based interfaces 1984 – Apple Macintosh introduces first mainstream GUI OS 1984 – Apple Macintosh introduces first mainstream GUI OS 1990 – GUI jumps in popularity with Windows – GUI jumps in popularity with Windows to circa 1996 – GUI-based client-server programs, rise of Visual Basic 1990 to circa 1996 – GUI-based client-server programs, rise of Visual Basic Circa 1995 – Internet becomes a force in mainstream computing, browsers and HTML become commonplace Circa 1995 – Internet becomes a force in mainstream computing, browsers and HTML become commonplace 1997 – Browser-based applications become popular because of increasing reach of Internet and cheap deployment 1997 – Browser-based applications become popular because of increasing reach of Internet and cheap deployment – Scripting languages used for application UI in the browser – Scripting languages used for application UI in the browser 2002 – Microsoft.NET is introduced 2002 – Microsoft.NET is introduced

Why did browser-based applications become popular? Not “because they’re cool”! Not “because they’re cool”! Deployment to the client became more expensive with Microsoft’s COM platform Deployment to the client became more expensive with Microsoft’s COM platform No more “copy and run”No more “copy and run” DLL HellDLL Hell Simultaneously, browsers offered a near-zero-cost deployment alternative Simultaneously, browsers offered a near-zero-cost deployment alternative

But browsers are a giant step backward! HTML not designed as application interface technology HTML not designed as application interface technology Designed for hyperlinked documentsDesigned for hyperlinked documents Bolt-on capabilities allowed only minimal GUI elements Bolt-on capabilities allowed only minimal GUI elements Limited control over user interaction in the browser (keystrokes, drag and drop) Limited control over user interaction in the browser (keystrokes, drag and drop) Difficult to do client-side data validation Difficult to do client-side data validation Costly to produce even marginally effective UI Costly to produce even marginally effective UI Immature security model Immature security model

The only reason we put up with browser-based applications is because alternatives have had limited reach and very high deployment costs!!

What if… …there was an alternative to browser-based applications that offered …there was an alternative to browser-based applications that offered Broad reachBroad reach Very low cost deploymentVery low cost deployment Slick, responsive UISlick, responsive UI Better, far more flexible security modelBetter, far more flexible security model

The next generation Such an alternative represents the next generation of Internet-enabled applications Such an alternative represents the next generation of Internet-enabled applications Smart clients running on the user machineSmart clients running on the user machine A standard way to pass data from server to smart client and back again over the InternetA standard way to pass data from server to smart client and back again over the Internet The first platform to offer this alternative is Microsoft.NET The first platform to offer this alternative is Microsoft.NET

The first post-Internet platform Microsoft.NET Designed from the ground up with the Internet in mind Designed from the ground up with the Internet in mind Microsoft is betting their future on it Microsoft is betting their future on it So big, it’s hard to grasp the changes it will bring So big, it’s hard to grasp the changes it will bring Will likely bring competitive responses from other companies, so its effects matter even if you don’t expect to use it Will likely bring competitive responses from other companies, so its effects matter even if you don’t expect to use it

Goals of Microsoft.NET Unify programming models Unify programming models Internet, local, mobile programming all done with the same language and toolsetInternet, local, mobile programming all done with the same language and toolset Provide new distributed architectures Provide new distributed architectures Tying systems together across the InternetTying systems together across the Internet Better deployment Better deployment Cheaper deployment for standard appsCheaper deployment for standard apps More deployment options, including Internet deploymentMore deployment options, including Internet deployment Better security Better security Obliterate common security flaws such as buffer overrunsObliterate common security flaws such as buffer overruns More security options – fine-grained policiesMore security options – fine-grained policies

Decline of browser-based apps Today we use the browser just to keep deployment costs low Today we use the browser just to keep deployment costs low Alternative of “smart-client” applications costs too much to deploy for most scenarios Alternative of “smart-client” applications costs too much to deploy for most scenarios So we put up with sub-standard, non- responsive user interfaces So we put up with sub-standard, non- responsive user interfaces

.NET changes the economics of deployment Simple deployment model – copy and run Simple deployment model – copy and run Allows programs to run from Allows programs to run from Local computerLocal computer Shared drive on a networkShared drive on a network Removable media (e.g. CD-ROM)Removable media (e.g. CD-ROM) An Internet serverAn Internet server Fine-grained security Fine-grained security Security policies determine exactly what privileges code has, based on its origin and other pieces of evidence about the codeSecurity policies determine exactly what privileges code has, based on its origin and other pieces of evidence about the code

Internet Deployment of Windows Forms Client with.NET Runtime Web Server Windows Forms App. HTTP Form1 Form2 Assembly Cache Forms contained in separate DLLs Deployment directory on web server

Smart clients become practical again This new generation is sometimes referred to as a “distributed smart client architecture” This new generation is sometimes referred to as a “distributed smart client architecture”

Technologies required Distributed smart client architectures require the following pre-requisite technologies: Distributed smart client architectures require the following pre-requisite technologies: Standard HTTP connection from each client machine to a web serverStandard HTTP connection from each client machine to a web server A forms engine and execution environment running on the client machineA forms engine and execution environment running on the client machine A way to easily and cheaply deploy the application to the client machineA way to easily and cheaply deploy the application to the client machine One or more ways to fetch data from a central web server and update the server with changes to dataOne or more ways to fetch data from a central web server and update the server with changes to data A security model that limits the ability to do damage to the client machineA security model that limits the ability to do damage to the client machine A means to secure access to the system and the dataA means to secure access to the system and the data

Microsoft.NET has all these technologies Windows Forms /.NET Framework Windows Forms /.NET Framework Internet deployment Internet deployment Standard data packages (DataSets) Standard data packages (DataSets) Web Services / Remoting / SOAP Web Services / Remoting / SOAP Code Access Security Code Access Security Authentication/Authorization mechanisms Authentication/Authorization mechanisms Support for HTTP/HTTPS Support for HTTP/HTTPS

What are Windows Forms? Replicate the functionality of the Visual Basic forms engine in VB6 Replicate the functionality of the Visual Basic forms engine in VB6 More consistent object model More consistent object model Used in all.NET languages Used in all.NET languages Because based on.NET, can be used with any language, and have future possibility of being portable to other systems (Mac? Linux?) Because based on.NET, can be used with any language, and have future possibility of being portable to other systems (Mac? Linux?) Demonstration Demonstration

Windows Forms advanced capabilities Docking and anchoring of controls Docking and anchoring of controls Topmost, Owned forms Topmost, Owned forms Advanced visual control (Opacity, TransparencyKey) Advanced visual control (Opacity, TransparencyKey) Capability to do skins Capability to do skins Demonstration Demonstration

The Easy Way to Deploy – Launching From a URL Run a.NET executable straight from a URL Run a.NET executable straight from a URL Start -> Run -> -> Run -> Shortcut to URL on desktopShortcut to URL on desktop In a web page: My App In a web page: My App No-Touch Update No-Touch Update Just update the files on the serverJust update the files on the server On-demand download On-demand download Demonstration Demonstration

An Alternative for More Control 1. Create Windows Forms application as usual 2. Package entire application in DLLs (no starting EXE) 3. Copy these DLLs into a web folder 4. Create a launch program that uses Reflection to load application (see next slide) 5. Compile launch program to EXE and transport to target machine ( , FTP, etc.) 6. Start launch program – it will download actual application automatically if it has an Internet connection

Code in Launch Program Dim sLocation As String sLocation = _ " Dim formAsm As [Assembly] = _ [Assembly].LoadFrom(sLocation) [Assembly].LoadFrom(sLocation) Dim formtype As Type = _ formAsm.GetType("MyProjectName.Form1") formAsm.GetType("MyProjectName.Form1") 'Create an instance of the Form Dim FormObj As Object FormObj = Activator.CreateInstance(formtype) 'Cast it to a Form object to enable early binding Dim Form1 As Form = CType(FormObj, Form) Form1.Show()

Demonstration of Internet Deployment Program up on a web site Program up on a web site Program using the code on the previous slide with the following URL: Program using the code on the previous slide with the following URL: " UploadWinForms/LoanCalc.dll“ And the form name “LoanCalc.Form1” And the form name “LoanCalc.Form1” This demonstration assumes security policy has already been fixed! (We’ll see how to do that later.) This demonstration assumes security policy has already been fixed! (We’ll see how to do that later.)

Data packages in.NET.NET contains a new data access model – ADO.NET.NET contains a new data access model – ADO.NET Data is packaged into a standard container called a DataSet Data is packaged into a standard container called a DataSet The container is XML-based, and so is the same for all back-end databases The container is XML-based, and so is the same for all back-end databases A DataSet containing data can be transmitted via HTTP because it is XML- based A DataSet containing data can be transmitted via HTTP because it is XML- based On the client system, the data has an in- memory structure to give good performance On the client system, the data has an in- memory structure to give good performance

DataSet Structure Similar to a miniature relational database Similar to a miniature relational database Contains tables, columns, rows, constraints, views and relations Contains tables, columns, rows, constraints, views and relations Disconnected model Disconnected model Has no knowledge of data sourceHas no knowledge of data source Array-like indexingArray-like indexing Strong typingStrong typing Supports data bindingSupports data binding Supports batch updatesSupports batch updates DataSet Tables Table Columns Column Constraints Constraint Rows Row Relations Relation

Example of a DataSet Life Cycle Original DataStore DataSet Table1 Table2 Sets up relationships DataSet Table1 Table2 Makes changes to data DataSet Table1 Table2 Resolves changes with Managed Provider Extracts tables With Managed Provider

Example of a DataSet Life Cycle DataSet Table1 Table2 DataSet Table1 Table2 DataSet Table1 Table2 Original DataStore Sets up relationships Makes changes to data Resolves changes with Managed Provider Extracts tables With Managed Provider ConnectedOperations

Example of a DataSet Life Cycle DataSet Table1 Table2 DataSet Table1 Table2 DataSet Table1 Table2 Original Data Store Sets up relationships Makes changes to data Resolves changes with Managed Provider Extracts tables With Managed Provider DisconnectedOperations

Generating Datasets Datasets can be easily generated from standard relational datasources Datasets can be easily generated from standard relational datasources Using XML technologies, DataSets can also be created from other sources Using XML technologies, DataSets can also be created from other sources Demonstration of creating a dataset Demonstration of creating a dataset

What is a Web Service? WebService XML “Building Block Services” WebService HTTP Client WebService XML WebServiceXMLXML A web service is: programmable logic accessible via standard Web protocols

SOAP Web Service consumers can send and receive messages using XML Web Service consumers can send and receive messages using XML WSDL Web Services are defined in terms of the formats and ordering of messages Web Services are defined in terms of the formats and ordering of messages SOAP Discovery You can ask a site for a description of the Web Services it offers You can ask a site for a description of the Web Services it offers All these capabilities are built using open Internet protocols All these capabilities are built using open Internet protocols XML & HTTP Web Service built on Standards Open Internet Protocols Web Service A programmable application component accessible via standard Web protocols UDDI Universal Description, Design, and Integration Provide a Directory of Services on the Internet Provide a Directory of Services on the Internet

Web Services Demonstration Web services are easy to create in.NET Web services are easy to create in.NET Remember common programming model Remember common programming model Demonstration Demonstration

Other transport options VPN over Internet (acts like a LAN) VPN over Internet (acts like a LAN).NET Remoting.NET Remoting Must be.NET on both endsMust be.NET on both ends SOAP transport through firewallsSOAP transport through firewalls Binary TCP on networksBinary TCP on networks Better performance and more controlBetter performance and more control Any of these can transport DataSets

Default Security Options On RTM of.NET Framework, applications will download and run, but cannot access file system or other local resources On RTM of.NET Framework, applications will download and run, but cannot access file system or other local resources On Service Pack 1 (SP1) of.NET, by default, downloaded applications not even run On Service Pack 1 (SP1) of.NET, by default, downloaded applications not even run Security policies on local machine must be set to remedy both of these situations Security policies on local machine must be set to remedy both of these situations Demonstration of downloaded code with default security Demonstration of downloaded code with default security

.NET Security Policies Must set up a “Code Group”, which describes a set of code. Examples: Must set up a “Code Group”, which describes a set of code. Examples: All code from a particular publisherAll code from a particular publisher All code downloaded from a particular URLAll code downloaded from a particular URL Code Group (e.g. all code from a URL) Assembly 1 Assembly 2 Assembly 3 Permission set e.g. -Write to dir X -Access queue y Must set up a “Permission Set” Must set up a “Permission Set” Contains exact permissions the code group will haveContains exact permissions the code group will have A Code Group can have one Permission Set applied to it A Code Group can have one Permission Set applied to it

Setting up a Permission Set Wizard to create Code Group has option to create new Permission Set Wizard to create Code Group has option to create new Permission Set Choose permissions from the following set: Choose permissions from the following set: Directory Services DNS Event Log Environment Variables File IO File Dialog Isolated Storage File Message Queue OLE DB Performance Counter Printing Registry Reflection Security Service Controller Socket Access SQL Client Web Access User Interface

Demonstration of Configuring to Access One Directory Only First, we’ll reset security permissions to the default and run the Internet- deployed programs First, we’ll reset security permissions to the default and run the Internet- deployed programs We’ll get a security exceptionWe’ll get a security exception We’ll then set permissions to do only the following: We’ll then set permissions to do only the following: ExecuteExecute Display to the screenDisplay to the screen Write to a particular directoryWrite to a particular directory

` Presentation tier User interface Middle tier Components, rules Data tier Relational database

A tiered architecture for distributed smart clients User Interface Data Validation Transport layer Business rules Data access layer Data tier (database) Client machine Application server Database server Web services / remoting

Bottleneck -.NET Framework must be available Limiting factor in resurgence of the smart client – the.NET Framework must be on all client machines Limiting factor in resurgence of the smart client – the.NET Framework must be on all client machines First candidates for distributed smart clients are corporate applications where control over the desktop exists First candidates for distributed smart clients are corporate applications where control over the desktop exists Later.NET Framework will become ubiquitous Later.NET Framework will become ubiquitous Future O/S versionsFuture O/S versions Service PacksService Packs Other.NET applicationsOther.NET applications

Summary The technology is now here to do distributed smart client systems The technology is now here to do distributed smart client systems Competitive pressures will require adoption of those systems Competitive pressures will require adoption of those systems Proper architecture is essential Proper architecture is essential Stay flexible on the transport mechanism Stay flexible on the transport mechanism Open your thinking to new smart clients Open your thinking to new smart clients

Questions? Billy Hollis Next Version Systems, LLC (615) Strategic and architectural consulting in.NETStrategic and architectural consulting in.NET Focus on commercial software developmentFocus on commercial software development In-depth training in.NETIn-depth training in.NET

Presenter - Billy Hollis