PiattaformePiattaformePiattaformePiattaforme Antonio Cisternino 11 Febbraio 2005 OpenSourceOpenSourceOpenSourceOpenSource e ProprietarieProprietarieProprietarieProprietarie.

Slides:



Advertisements
Presentazioni simili
Active Server Pages ed ADO. Scrivere ASP Le pagine ASP possono contenere codice HTML o XML Le parti del documento che racchiudono codice script vanno.
Advertisements

Linguaggio R Raffaele Miele Dipartimento di Matematica e Statistica Università degli Studi di Napoli Federico II
Shell: variabili di sistema PATH HOME USER PWD SHELL HOSTNAME HOSTTYPE Per visualizzare il valore di tutte le variabili dambiente si usa il comando set.
INTRODUZIONE Il framework.NET. Un po di storia Sin dalla prima versione del sistema operativo Windows (1990 circa), nacque la necessità di far comunicare.
Code::Blocks Ambiente di sviluppo.
JavaScript 5. Argomenti avanzati. Array Un array può anche contenere elementi di tipo diverso tra loro Un elemento di un array può essere un array (array.
(Appunti da Scott Mitchell, James Atkinsons - Active Server Pages 3.0 – ed. Apogeo) Le pagine ASP.
Sharepoint Gabriele Castellani
Strumenti di sviluppo Microsoft Campagna incentivi per Software Assurance Opportunità di vendita.
PHP.
INTERNET : ARPA sviluppa ARPANET (rete di computer per scopi militari)
Dipartimento di Matematica
Shell Scripting. Shell e comandi La shell e' un programma che interpreta i comandi dell'utente. I comandi possono essere dati da terminale, oppure contenuti.
Università La Sapienza Web programming e programmazione multimediale 1 Web Programming e comunicazione multimediale Lezione 10: PHP.
1 Università della Tuscia - Facoltà di Scienze Politiche.Informatica 2 - a.a Prof. Francesco Donini Active Server Pages.
JavaScript Laboratorio di Applicazioni Informatiche II mod. A.
Laboratorio di Linguaggi note sull'uso dell' IDE DevC++ Marco Tarini Università dellInsubria Facoltà di Scienze Matematiche, Fisiche e Naturali di Varese.
Laboratorio di Linguaggi lezione II Marco Tarini Università dellInsubria Facoltà di Scienze Matematiche, Fisiche e Naturali di Varese Corso di Laurea in.
1 Corso di Laurea in Biotecnologie Informatica (Programmazione) Introduzione a JAVA Anno Accademico 2009/2010.
MATLAB. …oggi… Programmare in Matlab Programmare in Matlab m-file m-file script script Funzioni Funzioni Cicli Cicli Operatori relazionali Operatori relazionali.
MATLAB. …oggi… Programmare in Matlab Programmare in Matlab Funzioni Funzioni Cicli Cicli Operatori relazionali Operatori relazionali Esercizi vari Esercizi.
PHP PHP Hypertext Preprocessor
Type int_stack = struct { int top; int P[100]; } int_stack creapila() { int_stack s = new int_stack; s.top = 0; return s; } int_stack push(int_stack s,
Introduzione a AJAX - Asynchronous Javascript And Xml
Type int_stack = struct { int top; int P[100]; } int_stack creapila() { int_stack s = new int_stack; s.top = 0; return s; } int_stack push(int_stack s,
Sistemi Operativi - Introduzione 1 Il sistema operativo UNIX Dettagli e comandi avanzati Niccolò Battezzati Politecnico di Torino Dip. Automatica e Informatica.
Sistemi Operativi - Introduzione 1 Il sistema operativo UNIX Dettagli e comandi avanzati Niccolò Battezzati Politecnico di Torino Dip. Automatica e Informatica.
Sistemi Operativi - Introduzione 1 Informazioni utili Per avere una distribuzione linux sul proprio pc: 1.
Sistemi Operativi - Introduzione 1 Il sistema operativo UNIX Shell: uso avanzato e script Niccolò Battezzati Politecnico di Torino Dip. Automatica e Informatica.
Sistemi Operativi - Introduzione 1 Il sistema operativo UNIX Shell: uso avanzato e script Niccolò Battezzati Politecnico di Torino Dip. Automatica e Informatica.
Sistema Operativo, files e cartelle.
APPLICAZIONI WEB In questo corso impareremo a scrivere un'applicazione web (WA) Marco Barbato - Corso di Applicazioni Web – A.A
Realizzazione siti web Pagine web dinamiche - javascript.
Corso di PHP.
Ing. Enrico Lecchini BetaTre S.r.l.
Javascript: fondamenti, concetti, modello a oggetti
"Non-Admin" Developing "Non-Admin" Developing Fabio Santini.NET Senior Developer Evangelist Microsoft Italy.
Guida IIS 6 A cura di Nicola Del Re.
1 Introduzione. 2 Le motivazioni In.net Framework iniziato nel 2000 rappresenta una svolta nella tecnologia Microsoft per andare oltre ai linguaggi esistenti.
Il nuovo portale : uno strumento a disposizione dei Soci per costruire insieme un nuovo modello di impresa retewww.cspnetwork.it Ferrara.
Introduzione alle ASP: primi passi negli script. Frosini Andrea Università degli studi di Siena Dipartimento di Scienze Matematiche.
Conversione da base 10 a base X (Utilizzo della pila)
ASP – Active Server Pages - 1 -Giuseppe De Pietro Introduzione ASP, acronimo di Active Server Pages, sta ad indicare una tecnologia per lo sviluppo di.
Ant Che cos’è Come si utilizza Funzionalità principali
ASP – Active Server Pages Introduzione Pagine Web Statiche & Dinamiche(ASP)
Introduzione a Windows Lezione 2 Riccardo Sama' Copyright  Riccardo Sama'
PHP - PHP: Hypertext Preprocessor. Introduzione PHP (acronimo ricorsivo per "PHP: Hypertext Preprocessor") è un linguaggio di scripting general-purpose.
JAVA Per iniziare. Verificare installazione javac –version java –version Cercare i files e sistemare eventualmente il path.
programmazione ad oggetti
Pagine ASP parte 1 Introduzione Stefano Schacherl.
1 Università della Tuscia - Facoltà di Scienze Politiche.Informatica 2 - a.a Prof. Francesco Donini Accesso a basi di dati con ASP.
Il linguaggio PHP.
Pagine ASP parte 3 I data base Stefano Schacherl.
1 Corso di Ingegneria del Web A A Domenico Rosaci 19 - Web Applications.
Introduzione a Javascript
Heap concetti ed applicazioni. maggio 2002ASD - Heap2 heap heap = catasta condizione di heap 1.albero binario perfettamente bilanciato 2.tutte le foglie.
Ajax.ptt 1 Asynchronous JavaScript and XML cross-browser XMLHttpRequest()standard w3c firefox,opera,gchrome ActiveXObject("Microsoft.XMLHTTP") ActiveXObject("Msxml2.XMLHTTP")
1 Eccezioni in Java. 2 Ricordiamo che 4 una procedura può terminare –normalmente, ritornando un risultato –in modo eccezionale ci possono essere diverse.
MySQL Database Management System
Lez. 12 (13/14)Elementi di Programmazione1 Lezione 12 Esercizi.
TW Asp - Active Server Pages Nicola Gessa. TW Nicola Gessa Introduzione n Con l’acronimo ASP (Active Server Pages) si identifica NON un linguaggio di.
PiattaformePiattaformePiattaformePiattaforme Antonio Cisternino 11 Marzo 2005 OpenSourceOpenSourceOpenSourceOpenSource e ProprietarieProprietarieProprietarieProprietarie.
Ancora sulla shell. Shell e comandi La shell e' un programma che interpreta i comandi dell'utente. I comandi possono essere dati da terminale, oppure.
PiattaformePiattaformePiattaformePiattaforme Antonio Cisternino 28 Gennaio 2005 OpenSourceOpenSourceOpenSourceOpenSource e ProprietarieProprietarieProprietarieProprietarie.
PiattaformePiattaformePiattaformePiattaforme Antonio Cisternino 25 Febbraio 2005 OpenSourceOpenSourceOpenSourceOpenSource e ProprietarieProprietarieProprietarieProprietarie.
Eprogram informatica V anno.
La gestione della rete e dei server. Lista delle attività  Organizzare la rete  Configurare i servizi di base  Creare gli utenti e i gruppi  Condividere.
ASP – Active Server Pages - 1 -Giuseppe Tandoi ASP – Active Server Pages Tecnologia per lo sviluppo di pagine dinamiche.
Transcript della presentazione:

PiattaformePiattaformePiattaformePiattaforme Antonio Cisternino 11 Febbraio 2005 OpenSourceOpenSourceOpenSourceOpenSource e ProprietarieProprietarieProprietarieProprietarie Un mondo di componenti

Componenti, gli unknown L’architettura di Windows è sostanzialmente differente da quella Unix Nel tempo i componenti binari, piuttosto che gli eseguibili, sono diventati la vera unità di esecuzione di Windows Molte delle caratteristiche della piattaforma Windows sono legate a questa sua struttura

Componenti binari La tecnologia chiave per l’architettura a componenti di Windows è COM I componenti COM sono componenti binari: un programma li può caricare ed eseguire anche se sviluppati separatamente e con linguaggi di programmazione differenti Il sistema si basa su convenzioni di compilazione e il meccanismo del caricamento dinamico delle DLL

COM Live Demo Ma cosa vuol dire esattamente che non ci sono applicazioni ma componenti? Quali applicazioni sono in realtà componenti? La Object Shell è stata sviluppata per poter sperimentare con i componenti COM interattivamente e scrivere più facilmente script

Come funziona? Il registro di sistema fu introdotto in Windows 3.0 per supportare COM Il ruolo fondamentale che esso gioca è quello di tenere traccia dei componenti installati nel sistema I GUID non sono altro che chiavi per navigare il registro

Windows Scripting Host Molti (quasi tutti) credono che gli script in Windows siano ancora i file batch NO! La vera programmazione di sistema è basata su Active Scripting e Windows Scripting Host Tutti i task di sistema sono esposti mediante componenti COM Informazioni e documentazione:

L’architettura

Javascript Sebbene WSH ammette vari linguaggi JScript è indubbiamente un buon linguaggio: –È l’implementazione Microsoft di ECMA-262 –È utilizzato anche nelle pagine Web (e XSLT) –È un linguaggio molto ben disegnato Alcune applicazioni (come ad esempio Office) usano VBScript, ma è facile convertire un linguaggio nell’altro

Javascript in 2 slides function apply(arr, f) { var ret = new Array(arr.length); var i; for (i = 0; i < arr.length; i++) ret[i] = f(arr[i]); return ret; } function printArray(arr) { var i, s = "{ "; for (i = 0; i < arr.length; i++) { if (i != 0) s += ", "; s += arr[i]; } s += " }"; WScript.Echo(s); } function inc(i) { return i + 1; } var a = new Array(1, 2, 3, 4, 5); printArray(a); printArray(apply(a, inc));

...la seconda function Persona(n, c) { this.Nome = n; this[“Cognome”] = c; } var p = new Persona('Antonio', 'Cisternino'); function PersonaEq(o, n, c) { o.Nome = n; o.Cognome = c; } p = PersonaEq({}, 'Antonio', 'Cisternino'); function Stack() { this.sp = 0; this.Push = function (v) { this[this.sp++] = v; } this.Pop = function () { if (this.sp == 0) throw "Empty Stack!"; return this[--this.sp]; } this.IsEmpty = function () { return this.sp == 0; }} try { var s = new Stack(); s.Push(1); s.Push("Ciao"); WScript.Echo(s.Pop()); WScript.Echo(s.Pop()); // Errore! s.Push(2); // Non verra` eseguito! } catch (e) { WScript.Echo("Errore: " + e);}

FileSystemObject var fso = WScript.CreateObject("Scripting.FileSystemObject"); function ProcessDir(d, p) { var e; for (e = new Enumerator(d.Files); !e.atEnd(); e.moveNext()) { var f = e.item(); if (f.Path.match(p)) WScript.Echo(f); } for (e = new Enumerator(d.SubFolders); !e.atEnd(); e.moveNext()) { var cd = e.item(); ProcessDir(cd, p);}} try { if (WScript.Arguments.length != 2) { WScript.Echo("Usage: find dir pattern"); WScript.Quit(0); } d = fso.GetFolder(WScript.Arguments.Item(0)); p = new RegExp(WScript.Arguments.Item(1)); ProcessDir(d, p); } catch (e) { WScript.Echo(e); }

System Info... var wshnw = WScript.CreateObject("WScript.Network"); var wshsh = WScript.CreateObject("WScript.Shell"); var out = "Informazioni sul programma (WScript):\n\nWSH exe: " + WScript.FullName + "\nScript name: " + WScript.ScriptFullName + "\nN. Argomenti: " + WScript.Arguments.length + "\n"; for (i = 0; i < WScript.Arguments.length; i++) out += "Args[" + i + "] = '" + WScript.Arguments(i)+ "'\n" out += WScript.interactive ? "Lo script è interattivo\n" : "Lo script non è interattivo\n\n"; WScript.Echo(out); out = "Informazioni di rete (WshNetwork):\n\nComputer name: " + wshnw.ComputerName + "\nDomain name: " + (wshnw.DomainName == undefined ? "Nessun dominio" : wshnw.DomainName) + "\nUser name: " + wshnw.UserName + "\n\nConnessioni di rete:\n\n"; for (d = wshnw.EnumNetworkDrives(), i = 0; i < d.length; i+= 2) out += d.Item(i) + " -> " + d.Item(i + 1) + "\n"; out += "\nStampanti Installate:\n\n"; for (p = wshnw.EnumPrinterConnections(), i = 0; i < p.length; i+= 2) out += p.Item(i) + " -> " + p.Item(i + 1) + "\n\n"; WScript.Echo(out); out = "Basic Shell Information:\n\nCurrent Directory: " + wshsh.CurrentDirectory + "\n\nEnvironment variables:\n\n"; for (en = new Enumerator(wshsh.Environment); !en.atEnd(); en.moveNext()) out += en.item() + "\n"; sf = new Array("AllUsersDesktop", "AllUsersStartMenu", "AllUsersPrograms", "AllUsersStartup", "Desktop", "Favorites", "Fonts", "MyDocuments", "NetHood", "PrintHood", "Programs", "Recent", "SendTo", "StartMenu", "Startup", "Templates"); out += "\nSpecial Folders:\n\n"; for (i = 0; i < sf.length; i++) out += sf[i] + " -> '" + wshsh.SpecialFolders.Item(sf[i]) + "'\n"; out += "\nYour HKCR\\.exe default value is '"+wshsh.RegRead("HKCR\\.exe\\")+"'\n\n"; WScript.Echo(out);

Componenti utili (DB) var rs = WScript.CreateObject("ADODB.Recordset"); var connstr = "Driver={Microsoft Excel Driver (*.xls)};DBQ=Prova.xls;DriverID=278"; rs.Open('select * from "Sheet1$"', connstr); while (!rs.eof) { WScript.Echo(rs(0)); rs.MoveNext(); }

Accounting (ADSI) var container = GetObject("LDAP://cn=Users,dc=miodominio,dc=it"); var e = new Enumerator(container); for (; !e.atEnd(); e.moveNext()) { var user = e.item(); if (user.Get("objectCategory").indexOf("Person") != -1) { WScript.Echo(user.distinguishedName); }

XML (MSXML)

.NET Hype

A managed OS

Monad, a.NET shell

Conclusioni