everything you want to know about script but were afraid to ask… mark carroll drew lytle script...
TRANSCRIPT
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
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
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)
The Core Elements Of ScriptThe Core Elements Of Script
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
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)
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
Let’s See Some Of These Let’s See Some Of These Cool New Engine Features!Cool New Engine Features!
Associated Script Associated Script TechnologiesTechnologies
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
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”/>
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>
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>
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
<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
How About Showing Us How About Showing Us One Of These Scriptlets?One Of These Scriptlets?
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
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
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
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
Pulling It All Together…Pulling It All Together…
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
WSH In Person…WSH In Person…
Developing With ScriptDeveloping With Script
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
Debugging Script DemoDebugging Script Demo
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!
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.*
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)