Presentation is loading. Please wait.

Presentation is loading. Please wait.

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

Similar presentations


Presentation on theme: "Death of the Browser? Billy Hollis Next Version Systems, LLC Presented for the Association of Information Technology Professionals October 31, 2002."— Presentation transcript:

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

2 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 3.0 1990 – GUI jumps in popularity with Windows 3.0 1990 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 1997-2001 – Scripting languages used for application UI in the browser 1997-2001 – Scripting languages used for application UI in the browser 2002 – Microsoft.NET is introduced 2002 – Microsoft.NET is introduced

3 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

4 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

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

6 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

7 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

8 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

9 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

10 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

11 .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

12 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

13 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”

14 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

15 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

16 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

17 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

18 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 -> http://myserver/myapp.exeStart -> Run -> http://myserver/myapp.exe 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

19 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 (email, FTP, etc.) 6. Start launch program – it will download actual application automatically if it has an Internet connection

20 Code in Launch Program Dim sLocation As String sLocation = _ "HTTP://MyWebServer/MyDeployDir/MyAppName.dll" 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()

21 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: "HTTP://dev1.eraserver.net/bhollis/ 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.)

22 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

23 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

24 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

25 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

26 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

27 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

28 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

29 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

30 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

31 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

32 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

33 .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

34 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

35 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

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

37 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

38 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

39 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

40 Questions? Billy Hollis Next Version Systems, LLC bhollis@dotnetmasters.com (615) 333-6555 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

41 Presenter - Billy Hollis bhollis@dotnetmasters.com


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

Similar presentations


Ads by Google