Transcript PPT
The Impact of
Microsoft .NET
Billy Hollis
Next Version Systems, LLC
Presented for the Association of
Information Technology Professionals
October 31, 2002
Limitations of software at the turn
of the century
Internet “strapped on” to existing systems
Multiplying programming models
• Web programming different languages and
technologies from other types of programming
Lack of standard way for distributed
systems to communicate
• Most systems isolated within one organization
• Information communicated “ad-hoc” –
printing, fax, email, etc.
Security vulnerabilities
Microsoft-based systems hard to deploy
The first post-Internet platform
Microsoft .NET
Designed from the ground up with the
Internet in mind
Microsoft is betting their future on it
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
This session covers some of the expected
long term and short term effects
Structure of Microsoft .NET
Two main elements
• Common Language
Runtime (execution
engine) abstracts away
the operating system
• Framework Base Classes
provide “infrastructure”
code, allowing
consistent programming
with far fewer lines of
code
Web users
Other
systems
local users
Programs written in .NET
Framework Base Classes
(database access, user interface
creation, XML, security interface
over 8000 classes)
Common Language Runtime
(execution, security, memory
management, program
loading, interface to OS)
Databases, message queues,
other O/S Services
Operating System
(currently Windows)
Goals of Microsoft .NET
Unify programming models
• Internet, local, mobile programming all done with
the same language and toolset
Provide new distributed architectures
• Tying systems together across the Internet
Better deployment
• Cheaper deployment for standard apps
• More deployment options, including Internet
deployment
Better security
• Obliterate common security flaws such as buffer
overruns
• More security options – fine-grained policies
Languages in .NET
There are over thirty languages already
enabled or being enabled to work with the
.NET platform, including:
•
•
•
•
Visual Basic
C# (Microsoft’ new Java-like language)
•Fortran
Java
•Many others
COBOL
All have similar flexibility and performance
characteristics
Languages work together transparently,
including the ability to do cross-language
inheritance
The effects of .NET
Breaking the “single-organization”
model for software systems
Decline of browser-based applications
Simplified development via a
common programming model
Much faster creation of Internet
applications
Integration of mobile/wireless
technologies
Interoperability with existing systems
Breaking the single-organization
model
Most current systems reside within a
single organization
Need to integrate with other organizations
increases every year
• Communicate information to
customers/suppliers/public
• Use functionality without having to write it
• Support geographically distributed operations
• Integrate external data into decision support
programs
The need for better integration
Screen
scrape
Partner
Web
Applications
FAX
B2C
website
Client
Partner
Ad-hoc
Credit
info
The technology – Web Services
System-to-system communication over the
Internet
Standard communications protocol – SOAP
• Variant of XML
• W3C approved
• Supported by Microsoft, IBM, Intel, HP, Sun, etc.
Integrates systems with different hardware
or operating systems
Supplies data, not “web page”, so data can
be used in any necessary fashion
Very easy to create and use with .NET
Changes caused by XML and Web
Services Adoption
Partner
XML
Partner
XML
Client
XML
Client
B2C
website
XML
Credit
info
Benefits: End-to-end automation;
Share, analyze and act on the data
Decline of browser-based apps
Today we use
the browser
just to keep
deployment
costs low
Alternative of “smart-client” applications
costs too much to deploy for most scenarios
So we put up with sub-standard, nonresponsive user interfaces
.NET changes the economics of
deployment
Simple deployment model – copy and run
Allows programs to run from
•
•
•
•
Local computer
Shared drive on a network
Removable media (e.g. CD-ROM)
An Internet server
Fine-grained security
• Security 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
Web Server
.NET Runtime
Form1
Windows
Forms App.
HTTP
Assembly
Cache
Web
Server
Forms contained in
separate DLLs
Form2
Deployment directory
on web server
Smart clients become practical again
This new generation is sometimes referred
to as “distributed smart client architecture”
Common Programming Model in .NET
For Microsoft (pre .NET), you needed
multiple languages and technologies
• Visual Basic, ASP, C++, DHTML, XML, etc.
.NET languages can be used for all types of
programming
Internet
Mobile
Wireless
Forms-based
Component development
System development
Developers capable of doing a broader
range of tasks
No need to change languages for different
types of development
Simpler Programming Model in
.NET
XML can be accessed as normal data
Web developers use far less HTML/DHTML
Less SQL development – better data
access tools
.NET Framework Classes handle
infrastructural details
.NET applications have roughly half the
amount of code as applications written
with previous Microsoft tools
The effects of .NET
Breaking the “single-organization”
model for software systems
Decline of browser-based applications
Simplified development via a
common programming model
Much faster creation of Internet
applications
Integration of mobile/wireless
technologies
Interoperability with existing systems
Faster development of Internet
applications
Drag and drop development of web pages
Smart “server controls” act like visual
controls on a form
• Manage their own state
• Render their visual appearance in HTML
• Support multiple browsers
Infrastructure built in
• Security
• Caching
• Storing information from page to page
Mobile and wireless technologies
Two approaches
• Web pages for wireless devices (phones, PDAs)
• Software that runs on mobile devices (PDAs,
tablet PCs)
Advantages to each approach
• Web pages have broad reach, practically zero
deployment costs, but cannot take advantage
of local intelligence or store info locally
• Software on device is limited to certain devices
and must be copied to device, but can store
locally and have smart UI
.NET has support for both types of
mobile development
Mobile Internet Toolkit used to write pages for
wireless devices
• Drag and drop development
• One page supports multiple devices, using
HTML or WML as necessary
.NET Compact Framework for mobile devices
such as PDAs
• Subset of complete .NET Framework
• Can access Web Services for data
• Smart UI with Windows Forms subset
Interoperability with existing
software
You can’t just throw away everything you
have now
Older COM software can be used inside
.NET through interoperability
• Engine for interop built into the CLR
• Good performance
.NET software can expose a COM interface
• Allows systems to be replaced piece-by-piece
.NET versus Java
The main competitor to .NET is Java
Java is a strong, mature technology for
server applications
Java weaknesses vs. .NET
• Behind on Web Services
• No significant competition for distributed smart
client architectures
• More expensive
• Only one language
• Not as interoperable with older technologies
Some of these will disadvantages will be
reduced in time – others will not
Summary
These changes brought by .NET will
drive new business needs and
arrangements
• Communication with partners
• New business models for providing data
and services on the web
• Competitive advantages
New, smarter systems…
with greater reach…
and more connectivity…
developed faster
Summary (continued)
These changes will affect many
aspects of software development
• Wider reach and higher connectivity
allow new architectures
• Deployment options drive new choices
for common applications
• Changes in best practices
• System definition and design
• Makeup of development teams
• Professional development and training
Questions?
Billy Hollis
Next Version Systems, LLC
[email protected]
(615) 333-6555
• Strategic and
architectural consulting
in .NET
• Focus on commercial
software development
• In-depth training in
.NET
Presenter - Billy Hollis
[email protected]