microsoft .net gerry miller chief technology officer microsoft corporation – us central region
DESCRIPTION
Microsoft .NET Gerry Miller Chief Technology Officer Microsoft Corporation – US Central Region. Vision. Empower people through great software any time, any place, and on any device. Names And Notables. Jim Gray, 1998 Turing Award Butler Lampson, 1992 Turing Award - PowerPoint PPT PresentationTRANSCRIPT
Microsoft .NETMicrosoft .NET
Gerry MillerGerry MillerChief Technology OfficerChief Technology OfficerMicrosoft Corporation – US Central RegionMicrosoft Corporation – US Central Region
VisionVision
Empower Empower people people
through great through great softwaresoftware
any time, any place, any time, any place,
and on any deviceand on any device
Names And NotablesNames And Notables
Jim Gray, 1998 Turing AwardJim Gray, 1998 Turing Award Butler Lampson, 1992 Turing AwardButler Lampson, 1992 Turing Award C.A.R. Hoare, Turing Award, Kyoto PrizeC.A.R. Hoare, Turing Award, Kyoto Prize Gary Starkweather, Inventor of the laser printerGary Starkweather, Inventor of the laser printer Jim Blinn, Graphics pioneerJim Blinn, Graphics pioneer Jim Kajiya, Graphics pioneerJim Kajiya, Graphics pioneer Michael Freedman, Fields Medal winnerMichael Freedman, Fields Medal winner Laci Lovasz, Wolf Prize and 2001 Godel PrizeLaci Lovasz, Wolf Prize and 2001 Godel Prize Gordon Bell, Father of the VAXGordon Bell, Father of the VAX Rick Rashid, Mach microkernel, “NUMA”Rick Rashid, Mach microkernel, “NUMA”
Compaq Tru64 Unix, Mac OS XCompaq Tru64 Unix, Mac OS X
Microsoft .NETMicrosoft .NET A Platform for the Next-Gen A Platform for the Next-Gen
InternetInternetVisionVision
PlatformPlatform
ServicesServices
Web Web ServiceService
Vision: Web ServicesVision: Web Services
Web Web ServiceService
XMLXML
““Building Block Building Block Services”Services”HTML
HTML
ClientClient
XML
XML
ClientClientXMLXML
Web Web ServiceService
XMLXML
Web Web ServiceService
XMLXML
XM
LX
ML
Vision: New DevicesVision: New Devices BroadbandBroadband WirelessWireless Smart cardsSmart cards Incredible PCs with Incredible PCs with
microphone, cameramicrophone, camera Tablet PCTablet PC Pocket PC, screen phonePocket PC, screen phone Adaptable, customizable UIAdaptable, customizable UI
Operating SystemOperating System
Common Language RuntimeCommon Language Runtime
Base Class LibraryBase Class Library
ADO.NET and XMLADO.NET and XML
ASP.NETASP.NETWeb Forms Web ServicesWeb Forms Web Services
Mobile Internet ToolkitMobile Internet Toolkit
WindowsWindowsFormsForms
Common Language SpecificationCommon Language Specification
VBVB C++C++ C#C# JScriptJScript ……
Visu
al S
tud
io.N
ET
Visu
al S
tud
io.N
ET
Framework, Languages, And ToolsFramework, Languages, And Tools
User-Centric Web ServicesUser-Centric Web Services
.NET Inbox.NET Inbox
.NET Presence.NET Presence
.NET Location.NET Location
.NET Contacts.NET Contacts
.NET Devices.NET Devices
.NET Application.NET ApplicationSettingsSettings
.NET Calendar.NET Calendar.NET Alerts.NET Alerts
.NET Wallet.NET Wallet.NET Profile.NET Profile
.NET Lists.NET Lists
.NET .NET FavoriteWebsitesFavoriteWebsites
.NET Documents.NET Documents
.NET Categories.NET Categories
A Platform For Web Services?A Platform For Web Services?
User experiencesUser experiences
PC’s & PC’s & DevicesDevices
Web servicesWeb services
Servers Servers
Building The .NET PlatformBuilding The .NET Platform
User User experiencesexperiences
Web Web servicesservices
PC’s and PC’s and DevicesDevices
ServersServers
Authentication
Notification
App
licat
ion
App
licat
ion
Cen
ter 2
000
Cen
ter 2
000
Enterprise ServersEnterprise Servers
Biz
Talk
B
izTa
lk
Serv
er 2
000
Serv
er 2
000
Com
mer
ce
Com
mer
ce
Serv
er 2
000
Serv
er 2
000
Exch
ange
Ex
chan
ge
2000
2000
SQL
Serv
er
SQL
Serv
er
2000
2000
ISA
Ser
ver
ISA
Ser
ver
2000
2000
Mob
ile
Mob
ile
Info
rmat
ion
Info
rmat
ion
2001
Ser
ver
2001
Ser
ver
Hos
t H
ost
Inte
grat
ion
Inte
grat
ion
Serv
er 2
000
Serv
er 2
000
.NET Programming.NET ProgrammingVisualStudio.NETVisualStudio.NET.NET Framework.NET FrameworkStorage
XML Web Services XML Web Services The Integration ChallengeThe Integration Challenge
Customer ServiceCustomer Service
PartnersPartners EmployeesEmployees
Customer ServiceCustomer Service
Supply Chain Supply Chain
ERPERP Human ResourceHuman Resource
Financial ServicesFinancial Services
CustomersCustomers
The TMC team spent 4 months performing this benchmark. They worked 100 hours per week on this and worked every weekend, skipping holidays. Trust me, they were trying very hard to make J2EE win. But in the end, J2EE did not come out on top.
TMC had a lot of heartache seeing the results of this benchmark. We internally debated about whether we should post this or not. In the end, we decided to go forward and publish this report.
- The Middleware Group, - The Middleware Group, October 2002 October 2002
PerformancePerformancePetshop Case StudyPetshop Case Study Java Pet Store is Sun’s primary blueprint Java Pet Store is Sun’s primary blueprint
application for J2EEapplication for J2EE Source: Source: http://java.sun.com/j2ee/blueprintshttp://java.sun.com/j2ee/blueprints Illustrates best coding practices for J2EEIllustrates best coding practices for J2EE Ships as a sample application in IBM Websphere, Ships as a sample application in IBM Websphere,
Oracle Application Server 9i, Sun iPlanet, and Oracle Application Server 9i, Sun iPlanet, and BEA WebLogicBEA WebLogic
The .NET Petshop is a port of the J2EE Java The .NET Petshop is a port of the J2EE Java Pet Store to .NETPet Store to .NET Source: Source: http://www.gotdotnet.com/comparehttp://www.gotdotnet.com/compare Implements the same functionality as Java Pet Implements the same functionality as Java Pet
StoreStore Illustrates best coding practices for .NET Illustrates best coding practices for .NET
FrameworkFramework
1400014000
75007500
90009000
50005000
25002500
1550015500
1150011500Java Pet StoreJava Pet Store
Lines of Code RequiredLines of Code Required
User User InterfaceInterface
4,410
Data TierData TierMiddle TierMiddle Tier
2,865
.NET Petshop.NET Petshop
14,273
5,891
ConfigurationConfigurationTotal Lines Total Lines of Codeof Code
710
5,404
761 412 74
2,566
Porting Java Pet Store to .NETPorting Java Pet Store to .NET
Page Response TimesPage Response Times Based on Oracle-published data for tuned version of Java Pet StoreBased on Oracle-published data for tuned version of Java Pet Store Using Oracle’s test scripts from their “9i App Server Challenge”Using Oracle’s test scripts from their “9i App Server Challenge” Run on equivalent hardwareRun on equivalent hardware
1.01.0
00
User Load LevelUser Load Level
Re
spo
nse
Tim
e (S
eco
nds
)R
esp
on
se T
ime
(Se
con
ds)
0.60.6
0.40.4
0.20.2
0.80.8
00 500500 10001000 15001500 20002000 25002500 27502750
Page Response TimesPage Response Times Based on Oracle-published data for tuned version of Java Pet StoreBased on Oracle-published data for tuned version of Java Pet Store Using Oracle’s test scripts from their “9i App Server Challenge”Using Oracle’s test scripts from their “9i App Server Challenge” Run on equivalent hardwareRun on equivalent hardware
1.01.0
00
User Load LevelUser Load Level
Re
spo
nse
Tim
e (S
eco
nds
)R
esp
on
se T
ime
(Se
con
ds)
0.60.6
0.40.4
0.20.2
0.80.8
00 500500 10001000 15001500 20002000 25002500 27502750
2800% Better performance2800% Better performance
Page Response TimesPage Response Times Based on Oracle-published data for tuned version of Java Pet StoreBased on Oracle-published data for tuned version of Java Pet Store Using Oracle’s test scripts from their “9i App Server Challenge”Using Oracle’s test scripts from their “9i App Server Challenge” Run on equivalent hardwareRun on equivalent hardware
1.01.0
00
User Load LevelUser Load Level
Re
spo
nse
Tim
e (S
eco
nds
)R
esp
on
se T
ime
(Se
con
ds)
0.60.6
0.40.4
0.20.2
0.80.8
00 500500 10001000 15001500 20002000 25002500 27502750
2800% Better performance2800% Better performance
Page Response TimesPage Response Times Based on Oracle-published data for tuned version of Java Pet StoreBased on Oracle-published data for tuned version of Java Pet Store Using Oracle’s test scripts from their “9i App Server Challenge”Using Oracle’s test scripts from their “9i App Server Challenge” Run on equivalent hardwareRun on equivalent hardware
1.01.0
00
00
User Load LevelUser Load Level
Re
spo
nse
Tim
e (S
eco
nds
)R
esp
on
se T
ime
(Se
con
ds)
500500 10001000 15001500 20002000 25002500 27502750
0.60.6
0.40.4
0.20.2
0.80.8
2800% Better performance2800% Better performance
Supporting 6 times more usersSupporting 6 times more users
Broad Language SupportBroad Language SupportJ#J#String s = "authors";
SqlCommand cmd = new SqlCommand("select * from "+s, sqlconn);
cmd.ExecuteReader();
string s = "authors";SqlCommand cmd = new SqlCommand("select * from "+s, sqlconn);cmd.ExecuteReader();
C#C#
Dim s as Strings = "authors"Dim cmd As New SqlCommand("select * from " & s, sqlconn)cmd.ExecuteReader()
VB.NETVB.NET
Broad Language SupportBroad Language Support
C++C++String *s = S"authors"; SqlCommand cmd = new SqlCommand(String::Concat(S"select * from ", s),
sqlconn); cmd.ExecuteReader();
String *s = S"authors"; SqlCommand cmd = new SqlCommand(String::Concat(S"select * from ", s), sqlconn); cmd.ExecuteReader();
PerlPerl
s = "authors"cmd =SqlCommand("select * from " + s, sqlconn)cmd.ExecuteReader()
PythonPython
var s = "authors"var cmd = new SqlCommand("select * from " + s, sqlconn)cmd.ExecuteReader()
JScriptJScript
Broad Language SupportBroad Language Support
ENVIRONMENT DIVISION.CONFIGURATION SECTION.REPOSITORY. CLASS SqlCommand AS "System.Data.SqlClient.SqlCommand" CLASS SqlConnection AS "System.Data.SqlClient.SqlConnection".DATA DIVISION.WORKING-STORAGE SECTION.01 str PIC X(50).01 cmd-string PIC X(50).01 cmd OBJECT REFERENCE SqlCommand.01 sqlconn OBJECT REFERENCE SqlConnection.PROCEDURE DIVISION. *> Establish the SQL connection here somewhere.MOVE "authors" TO str.STRING "select * from " DELIMITED BY SIZE, str DELIMITED BY " " INTO cmd-string.INVOKE SqlCommand "NEW" USING BY VALUE cmd-string sqlconn RETURNING cmd.INVOKE cmd "ExecuteReader".
CobolCobol
Broad Language SupportBroad Language Support
assembly_external(name="System.Data.SqlClient.SqlCommand")sqlcmdcharacter*10 xsqlcmd Cmd x='authors'cmd = sqlcmd("select * from "//x, sqlconn) call cmd.ExecuteReader()end
FortranFortran
DclFld MyInstObj Type( System.Data.SqlClient.SqlCommand ) DclFld s Type( *string ) s = "authors" MyInstObj = New System.Data.SqlClient.SqlCommand("select *
from "+s, sqlconn) MyInstObj.ExecuteReader()
RPGRPG
Broad Language SupportBroad Language Support
Broad Language SupportBroad Language Support
|s| := 'authors'. |cmd| := SqlCommand('select * from '+s, sqlconn). cmd.ExecuteReader().
SmalltalkSmalltalk
APLAPLs←String.New ‘authors’cmd←SqlCommand.New (‘select * from ‘,s.ToString σ) sqlconncmd.ExecuteReader
(let* ( (s "authors") (cmd (new-SqlCommand (string-append "select * from " s) sqlconn)))(execute-command cmd))
SchemeScheme
ExecuteReader = invoke System.Data.SqlClient.ExecuteReader();SqlCommand = create System.Data.SqlClient.SqlCommand(String,\ System.Data.SqlClient.SqlConnection);query = sqlconn -> let{ s = "authors"; } in { cmd <- SqlCommand ("select * from "+s, sqlconn); cmd # ExecuteReader(); }; MondrianMondrian
local s: STRING cmd: SQLCOMMANDdo s := "authors" create cmd("select * from " + s, sqlconn) cmd.ExecuteReader()end
EiffelEiffel
Broad Language SupportBroad Language Support
You have to manage it by ignoring it. The complexity of J2EE is pretty extreme…There’s a dirty little secret about J2EE; most people don’t need J2EE; the JSPs and database APIs are enough ….If you need to use it, then use it; if you don’t, stay away.
- James Gosling (the - James Gosling (the “father” of Java”), May 2002 “father” of Java”), May 2002
InfoWorld: So what you're saying is what J2EE adds in terms of Web services support in 1.4 could be relatively irrelevant?
Mills: Yes. That's exactly what I'm saying.
- Steve Mills, IBM chief - Steve Mills, IBM chief software executive, April software executive, April 2002 2002
Though in theory, any J2EE application can be deployed
on any J2EE-compliant application server, in practice,
this is not strictly true.
- Oracle’s web site- Oracle’s web site
Due to the vendor-specific tools and extensions required for ease of
development, functionality, performance, and integration, Java 2 Enterprise
Edition (J2EE) application servers still lock users into a specific vendor's product, despite being based on
standards.
- The Meta Group- The Meta Group
The .NET BetThe .NET Bet Software industry transformationSoftware industry transformation Integration and XMLIntegration and XML Decentralized computing Decentralized computing New user experienceNew user experience User confidence in privacy, securityUser confidence in privacy, security Windows 2000 foundationWindows 2000 foundation Subscription business modelsSubscription business models PartnershipsPartnerships