everything you want to know about script but were afraid to ask… mark carroll drew lytle script...

30
Everything You Want Everything You Want To Know About Script To Know About Script But But Were Afraid To Ask… Were Afraid To Ask… Mark Carroll Mark Carroll Drew Lytle Drew Lytle Script Technologies Script Technologies Microsoft Corporation Microsoft Corporation

Upload: emory-craig

Post on 17-Jan-2016

217 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Everything You Want To Know About Script But Were Afraid To Ask… Mark Carroll Drew Lytle Script Technologies Microsoft Corporation

Everything You Want To Everything You Want To Know About Script But Know About Script But Were Afraid To Ask… Were Afraid To Ask…

Mark CarrollMark CarrollDrew LytleDrew LytleScript TechnologiesScript TechnologiesMicrosoft CorporationMicrosoft Corporation

Page 2: Everything You Want To Know About Script But Were Afraid To Ask… Mark Carroll Drew Lytle Script Technologies Microsoft Corporation

What This Presentation What This Presentation Is About…Is About… The core elements of ScriptThe core elements of Script

Architecture overviewArchitecture overview Script Engines - new features in Script Engines - new features in

MicrosoftMicrosoft®® Visual Basic Visual Basic®® Scripting Edition Scripting Edition and JScriptand JScript®®

Associated Script technologiesAssociated Script technologies ScriptletsScriptlets Remote ScriptingRemote Scripting WindowsWindows®® Scripting Host Scripting Host

Developing with ScriptDeveloping with Script DebuggingDebugging

Page 3: Everything You Want To Know About Script But Were Afraid To Ask… Mark Carroll Drew Lytle Script Technologies Microsoft Corporation

What This Presentation What This Presentation Is Is NotNot About… About… Hosting Script in your applicationHosting Script in your application

See Chris Weight’s session (Win10) See Chris Weight’s session (Win10)

Developing a Script EngineDeveloping a Script Engine See Mark Hammond’s session (Tools08)See Mark Hammond’s session (Tools08)

Page 4: Everything You Want To Know About Script But Were Afraid To Ask… Mark Carroll Drew Lytle Script Technologies Microsoft Corporation

The Core Elements Of ScriptThe Core Elements Of Script

Page 5: Everything You Want To Know About Script But Were Afraid To Ask… Mark Carroll Drew Lytle Script Technologies Microsoft Corporation

Internet Internet ExplorerExplorer

InternetInternetInformationInformation

ServicesServices

WindowsWindowsScriptingScripting

HostHost

Other Other ApplicationsApplications

MicrosoftMicrosoftVBScriptVBScript

MicrosoftMicrosoftJScriptJScript

3rd Party3rd PartyEnginesEngines

ActiveX Scripting InterfacesActiveX Scripting Interfaces

Architecture OverviewArchitecture Overview

Open architecture for Script languagesOpen architecture for Script languages Microsoft provides VBScript, JScriptMicrosoft provides VBScript, JScript Others available - PERL, REXX, Python, etc.Others available - PERL, REXX, Python, etc.

Open architecture for integrating Script Open architecture for integrating Script into your applicationinto your application

Page 6: Everything You Want To Know About Script But Were Afraid To Ask… Mark Carroll Drew Lytle Script Technologies Microsoft Corporation

Script Engines: What’s NewScript Engines: What’s New

Version 5 engines new for Version 5 engines new for Windows NTWindows NT®® 5.0 5.0

VBScriptVBScript ClassesClasses WithWith Eval/ExecuteEval/Execute Regular ExpressionsRegular Expressions GetRef (Function Pointers)GetRef (Function Pointers)

JScriptJScript Exception HandlingException Handling ECMA-262 (Since V3)ECMA-262 (Since V3)

Page 7: Everything You Want To Know About Script But Were Afraid To Ask… Mark Carroll Drew Lytle Script Technologies Microsoft Corporation

Script Engines: What’s NewScript Engines: What’s New

PerformancePerformance Faster in the browserFaster in the browser Faster on the server (3x faster Faster on the server (3x faster

on Windows NT 5.0)on Windows NT 5.0)

DCOM SupportDCOM Support Script EncodingScript Encoding

Protects against prying eyesProtects against prying eyes Develop, encode, deployDevelop, encode, deploy Decoding supported in enginesDecoding supported in engines Supports ASP, HTML, SCT, JScript, VBScriptSupports ASP, HTML, SCT, JScript, VBScript

Page 8: Everything You Want To Know About Script But Were Afraid To Ask… Mark Carroll Drew Lytle Script Technologies Microsoft Corporation

Let’s See Some Of These Let’s See Some Of These Cool New Engine Features!Cool New Engine Features!

Page 9: Everything You Want To Know About Script But Were Afraid To Ask… Mark Carroll Drew Lytle Script Technologies Microsoft Corporation

Associated Script Associated Script TechnologiesTechnologies

Page 10: Everything You Want To Know About Script But Were Afraid To Ask… Mark Carroll Drew Lytle Script Technologies Microsoft Corporation

ScriptletsScriptlets

COM Components written in Script and XMLCOM Components written in Script and XML Any interface (e.g., automation) Any interface (e.g., automation)

Can be used anywhere COM can Can be used anywhere COM can be usedbe used Client - Internet Explorer, WSH, any COM Client - Internet Explorer, WSH, any COM

applicationapplication Server - Internet Information Server, any COM Server - Internet Information Server, any COM

applicationapplication Transaction (MTS) awareTransaction (MTS) aware Runtime support in Windows NT 5.0, Runtime support in Windows NT 5.0,

downloadable for Windows 95/98/downloadable for Windows 95/98/Windows NT 4.0Windows NT 4.0

Page 11: Everything You Want To Know About Script But Were Afraid To Ask… Mark Carroll Drew Lytle Script Technologies Microsoft Corporation

ScriptletsScriptletsXML-based object definitionXML-based object definition

MethodsMethods Use the method tagUse the method tag

<method name = “method1”/><method name = “method1”/> PropertiesProperties

Use property tagUse property tag<property name=“prop1><property name=“prop1>

<get/><get/><put/><put/>

</property></property> EventsEvents

User Event tagUser Event tag<event name=“Event1”/><event name=“Event1”/>

Page 12: Everything You Want To Know About Script But Were Afraid To Ask… Mark Carroll Drew Lytle Script Technologies Microsoft Corporation

ScriptletsScriptletsRegistrationRegistration

ProgID is the only required attributeProgID is the only required attribute CLSID is created at registration time if CLSID is created at registration time if

not suppliednot supplied

Or use a moniker “scriptlet:Or use a moniker “scriptlet:URLURL””

<registration <registration progid='MyFactorial.Scriptlet'progid='MyFactorial.Scriptlet' classid='{bb7f2d60-6dbb-11d1-classid='{bb7f2d60-6dbb-11d1-

8cac-00a0c90fffc0}'8cac-00a0c90fffc0}'description='A simple test description='A simple test object'object'version="1.0">version="1.0">

</registration></registration>

Page 13: Everything You Want To Know About Script But Were Afraid To Ask… Mark Carroll Drew Lytle Script Technologies Microsoft Corporation

Scriplets ExampleScriplets Example<scriptlet><scriptlet><registration <registration progid='MyFactorial.Scriptlet'progid='MyFactorial.Scriptlet' classid='{bb7f2d60-6dbb-11d1-8cac-00a0c90fffc0}'classid='{bb7f2d60-6dbb-11d1-8cac-00a0c90fffc0}' description='A simple test object'description='A simple test object'

version="1.0">version="1.0"></registration></registration><public><public>

<method name=factorial internalname=myFactorial><method name=factorial internalname=myFactorial><parameter name=n><parameter name=n>

</method></method></public></public><script language=jscript><script language=jscript>function myFactorial(n)function myFactorial(n){{ if (typeof(n) != "number")if (typeof(n) != "number") return NaN;return NaN; return (1 <= n) ? n*myFactorial(n-1) : 1;return (1 <= n) ? n*myFactorial(n-1) : 1;}}</script></script></scriptlet></scriptlet>

Page 14: Everything You Want To Know About Script But Were Afraid To Ask… Mark Carroll Drew Lytle Script Technologies Microsoft Corporation

ScriptletsScriptletsType library supportType library support

Tools SupportTools Support Provides auto complete in Visual Provides auto complete in Visual

InterDevInterDev™ ™ /Visual Basic/Delphi/Visual Basic/Delphi Allows Browsing of ObjectsAllows Browsing of Objects Eases integration with Visual J++Eases integration with Visual J++®®

and Visual C++and Visual C++®®

Helps with MTS integrationHelps with MTS integration Generate Type LibraryGenerate Type Library

Menu optionMenu option Object Model supportObject Model support

Page 15: Everything You Want To Know About Script But Were Afraid To Ask… Mark Carroll Drew Lytle Script Technologies Microsoft Corporation

<implements type=ASP id=ASP default/><implements type=ASP id=ASP default/><script language=“vbscript”><script language=“vbscript”>

Response.Write “Hello World!”Response.Write “Hello World!”</Script></Script>

Dim objCurrDim objCurrDim objCurrObjContDim objCurrObjContSet objCurr = CreateObject("MTxAS.AppServer.1")Set objCurr = CreateObject("MTxAS.AppServer.1")Set objCurrObjCont = objCurr.GetObjectContext()Set objCurrObjCont = objCurr.GetObjectContext()GetRequest = objCurrObjCont("Response").Write(”Hello MTS”)GetRequest = objCurrObjCont("Response").Write(”Hello MTS”)

ScriptletsScriptletsTransaction specificsTransaction specifics

Use the AppServer object provided by MTSUse the AppServer object provided by MTS

Native ASP supportNative ASP support

Page 16: Everything You Want To Know About Script But Were Afraid To Ask… Mark Carroll Drew Lytle Script Technologies Microsoft Corporation

How About Showing Us How About Showing Us One Of These Scriptlets?One Of These Scriptlets?

Page 17: Everything You Want To Know About Script But Were Afraid To Ask… Mark Carroll Drew Lytle Script Technologies Microsoft Corporation

Scriptlet SummaryScriptlet Summary

COM Components in XML + ScriptCOM Components in XML + Script Transaction support allows:Transaction support allows:

ScalabilityScalability Interoperability with any Interoperability with any

COM componentCOM component

Scriptlet Wizard makes it easyScriptlet Wizard makes it easy

Page 18: Everything You Want To Know About Script But Were Afraid To Ask… Mark Carroll Drew Lytle Script Technologies Microsoft Corporation

Remote ScriptingRemote Scripting

Remote Scripting provides richer Web Remote Scripting provides richer Web client/server communicationclient/server communication No need for a submitNo need for a submit Call server functions asychronouslyCall server functions asychronously Works in Internet Explorer and NetscapeWorks in Internet Explorer and Netscape

Combined with DHTML and Scriptlets, Combined with DHTML and Scriptlets, allows sophisticated user experience allows sophisticated user experience in the browserin the browser

Page 19: Everything You Want To Know About Script But Were Afraid To Ask… Mark Carroll Drew Lytle Script Technologies Microsoft Corporation

Microsoft Internet Microsoft Internet Information ServerInformation Server

Web browser Web browser

client.htmclient.htmclient.htmclient.htm

rs_client.htmrs_client.htm

RSExecuteRSExecute(url,”VCC”,(url,”VCC”, 4225,MyCallback); 4225,MyCallback);

functionfunction MyCallback(co) MyCallback(co){{ r = co.return_value; r = co.return_value;}}

server.aspserver.asp<%<%function VCC(CC) function VCC(CC) { … return true; }{ … return true; }

RSDispatch();RSDispatch();

%>%>

rs_server.asprs_server.asp

http://server.asp?method=VCC&p0=4225http://server.asp?method=VCC&p0=4225

server.aspserver.asp<method ver=0.2><method ver=0.2> <return_value> <return_value> true true </return_value> </return_value></method></method>

Remote ScriptingRemote ScriptingIn actionIn action

Page 20: Everything You Want To Know About Script But Were Afraid To Ask… Mark Carroll Drew Lytle Script Technologies Microsoft Corporation

Remote ScriptingRemote Scripting

Provided in source formProvided in source form Runs cross-platform - some functions Runs cross-platform - some functions

require ECMA 262 compliant enginesrequire ECMA 262 compliant engines Java proxy enables Remote Scripting Java proxy enables Remote Scripting

to work with many browsers - so you to work with many browsers - so you can use it on the server without can use it on the server without limiting reachlimiting reach

Page 21: Everything You Want To Know About Script But Were Afraid To Ask… Mark Carroll Drew Lytle Script Technologies Microsoft Corporation

Pulling It All Together…Pulling It All Together…

Page 22: Everything You Want To Know About Script But Were Afraid To Ask… Mark Carroll Drew Lytle Script Technologies Microsoft Corporation

Windows Scripting Host v2Windows Scripting Host v2

Batch files come to Windows!Batch files come to Windows! WSH 1.0 shipped with Windows 98 andWSH 1.0 shipped with Windows 98 and

Windows NT 4.0 Option PackWindows NT 4.0 Option Pack WSH 2.0 ships in Windows NT 5.0, WSH 2.0 ships in Windows NT 5.0,

downloadable for other platformsdownloadable for other platforms WSH 2.0 addresses top 4 WSH 2.0 addresses top 4

user requestsuser requests IncludesIncludes Type LibraryType Library Multiple EnginesMultiple Engines Tools supportTools support

Page 23: Everything You Want To Know About Script But Were Afraid To Ask… Mark Carroll Drew Lytle Script Technologies Microsoft Corporation

WSH In Person…WSH In Person…

Page 24: Everything You Want To Know About Script But Were Afraid To Ask… Mark Carroll Drew Lytle Script Technologies Microsoft Corporation

Developing With ScriptDeveloping With Script

Page 25: Everything You Want To Know About Script But Were Afraid To Ask… Mark Carroll Drew Lytle Script Technologies Microsoft Corporation

Debugging ScriptDebugging Script

Debugging supportDebugging support Light-weight debugger in Light-weight debugger in

Windows NT 5.0Windows NT 5.0 Full featured debugging with Full featured debugging with

Visual InterDev 6.0Visual InterDev 6.0 Defined ways of Defined ways of

integrating debuggingintegrating debugging Host Debugging Interfaces (smart)Host Debugging Interfaces (smart) Script Engine Interfaces (simple)Script Engine Interfaces (simple)

Smart host examplesSmart host examples Internet Explorer, Internet Internet Explorer, Internet

Information ServicesInformation Services

Page 26: Everything You Want To Know About Script But Were Afraid To Ask… Mark Carroll Drew Lytle Script Technologies Microsoft Corporation

Debugging Script DemoDebugging Script Demo

Page 27: Everything You Want To Know About Script But Were Afraid To Ask… Mark Carroll Drew Lytle Script Technologies Microsoft Corporation

SummarySummary

Script is everywhereScript is everywhere Script is simpleScript is simple Script is powerfulScript is powerful Script is light-weightScript is light-weight Script is integrated into Script is integrated into

Windows NT 5.0!Windows NT 5.0!

Page 28: Everything You Want To Know About Script But Were Afraid To Ask… Mark Carroll Drew Lytle Script Technologies Microsoft Corporation

Where To Get More…Where To Get More…

Other PDC SessionsOther PDC Sessions Hosting - Chris Weight (Win10)Hosting - Chris Weight (Win10) Developing a Script Engine - Mark Developing a Script Engine - Mark

Hammond (Tools08)Hammond (Tools08) The Web…The Web…

http://msdn.microsoft.com/scriptinghttp://msdn.microsoft.com/scripting http://www.microsoft.com/http://www.microsoft.com/

sitebuilder/magazinesitebuilder/magazine Clinick’s Clinic on ScriptingClinick’s Clinic on Scripting

Feedback - msnews.microsoft.comFeedback - msnews.microsoft.com public.scripting.*public.scripting.*

Page 29: Everything You Want To Know About Script But Were Afraid To Ask… Mark Carroll Drew Lytle Script Technologies Microsoft Corporation

Call To ActionCall To Action

Integrate ScriptIntegrate Script Start using v5 featuresStart using v5 features Use the Script technologies in Use the Script technologies in

Wondows NT 5.0Wondows NT 5.0 VBScript, JScriptVBScript, JScript ScriptletsScriptlets Windows Scripting HostWindows Scripting Host

Attend other scripting sessions:Attend other scripting sessions: Active Scripting Engines (TOOL08)Active Scripting Engines (TOOL08) Hosting Script Engines (WIN10)Hosting Script Engines (WIN10)

Page 30: Everything You Want To Know About Script But Were Afraid To Ask… Mark Carroll Drew Lytle Script Technologies Microsoft Corporation