SlideShare a Scribd company logo
1 of 19
Download to read offline
PHP
e la piattaforma Windows

Pietro Brambati
Developer Evangelist

Microsoft

pietro.brambati@microsoft.com
http://blogs.msdn.com/pietrobr
Agenda

      •    PHP e Windows
      •    FastCGI
      •    Internet Information Server 7 (IIS 7) e PHP
      •    Phalanger
      •    Nuove tecnologie




http://blogs.msdn.com/pietrobr | Pietro Brambati
PHP e Windows

      •    Microsoft e Zend stanno lavorando insieme per offrire il
           massimo agli sviluppatori che lavorano con PHP
      •    Internet Information Server è il web server della
           piattaforma Microsoft
      •    Internet Information Server 7 è una piattaforma completa
           per lo sviluppo di applicazioni web con PHP
             •   IIS 7 disponibile su Windows Vista e con “Longhorn Server”
      •    AJAX e Silverlight




http://blogs.msdn.com/pietrobr | Pietro Brambati
PHP e Windows …la storia!

      •    Due modi per far girare PHP su Windows
             •   La via “affidabile”  CGI
                    •   su Windows è costoso creare un nuovo processo per ogni richiesta
             •   La vai “veloce”  ISAPI
                    •   Su Windows è poco costoso creare thread
                    •   Estensioni PHP non-thread safe

      •    Molte estensioni PHP non sono thread-safe




http://blogs.msdn.com/pietrobr | Pietro Brambati
FastCGI : oggi !

      •    Componente di IIS (5.x/6/7) che permette di utilizzare
           PHP in modo affidabile e performante
      •    Riusa i processi creati per richieste successive
             •   PHP è single thread in uno dei processi del pool
      •    Sfrutta il multi-threaded di IIS 7
      •    Adatto per ambienti di produzione
      •    Attualmente in Technical Preview 2 e …




http://blogs.msdn.com/pietrobr | Pietro Brambati
Installare FastCGI su IIS 7

       •    PHP 5.2.1 o successive (oggi 5.2.2)
              •    Versione non-thread safe !
       •    Download FastCGI per la piattaforma (32 o 64 bit)
       •    Dal prompt dei comandi
              •    fcgisetup /install
              •    fcgisetup.exe /add C:PHPphp-cgi.exe PHP
       •    Quindi phpInfo()
       •    Per disinstallare
              •    Usare lo switch /uninstall

http://www.iis.net/default.aspx?tabid=2&subtabid=25&i=1345

http://blogs.msdn.com/pietrobr | Pietro Brambati
Demo
CGI vs. FastCGI
IIS 7 e .NET Framework

      •    .NET Framework è un framework per lo sviluppo di
           applicazioni desktop, web e mobile
             •    fondamento della Microsoft Application Platform
      •    ASP.NET è la piattaforma per lo sviluppo web
      •     Con IIS 7 alcune funzionalità di ASP.NET 2.0 sono ora
            parte della piattaforma
              •    per contenuti statici e pagine PHP
       •    Per l’ autenticazione e autorizzazione
              •    Gestione utenti e ruoli
       •    Profilazione … etc.
http://blogs.msdn.com/pietrobr | Pietro Brambati
IIS7: architettura modulare

      •    “Piccolo ed efficiente”
             •   Installi solo i componenti che ti servono
             •   Riduce il footprint di memoria
             •   Riduce la superficie di attacco
      •    Circa 40 moduli disponibili
      •    Moduli basati su API pubbliche
             •   Facile sostituire un modulo di IIS con uno proprio




http://blogs.msdn.com/pietrobr | Pietro Brambati
IIS 7 e PHP
              Output Cache
        •     IIS 7 output cache
                •    Cache in memoria dell’intera response in user-mode
                •    Anche per contenuti dinamici
                        •   Diverse copie della pagina in base a querystring, o headers
                •    Policy
                        •   DontCache | CacheUntilChange | CacheForTimePeriod
                •    Configurabile da file (web.config)

                    <caching>
                     <profiles enabled=”true”>
                       <add extension=”.php” policy=”CacheForTimePeriod” duration=”00:30:00”
                        varyByQueryString=”action” varyByHeaders=”User-Agent”/>
                     </profiles>
                    </caching>

http://blogs.iis.net/ksingla/archive/2006/11/16/caching-in-iis7.aspx
http://blogs.msdn.com/pietrobr | Pietro Brambati
Demo
IIS 7
Output Cache
Phalanger
Phalanger Project

      •    Phalanger = compilatore del linguaggio PHP per .NET
             •   Abbreviazione di “PHP Language Compiler”
      •    Semplicità di PHP + ricchezza della piattaforma .NET
      •    Fornisce l’implementazione delle librerie che sono
           compatibili con la maggior parte delle applicazioni PHP
      •    Compila in MSIL (Microsoft Intermediate Language)
             •   JIT compila in codice nativo  performance
      •    Può chiamare estensioni PHP native




http://blogs.msdn.com/pietrobr | Pietro Brambati
Storia del progetto Phalanger

      •    Progetto in ambito accademico iniziato nel 2003 alla
           facoltà di matematica e fisica all’università di Praga
      •    V 1.0 (feb 2006) compatibile con la maggior parte delle
           applicazioni PHP 4 e 5
      •    V 2.0 (in Beta 3) aggiunto pieno supporto alle classi .NET
             •   Estensione al linguaggio PHP (PHP/CLI) per il supporto ai
                 generics, attributi, classi parziali, parte di LINQ etc
             •   Licenza Microsoft Share Source, ospitato su CodePlex




http://blogs.msdn.com/pietrobr | Pietro Brambati
Demo
Personal Web Site con Phalanger
Molto altro …

      •    Microsoft AJAX Library per PHP
             •   Pochi files per poter utilizzare le MS AJAX Library da PHP
             •   Le Microsoft AJAX Library (http://ajax.asp.net) sono scaricabili
                 gratuitamente con il codice sorgente
             •   http://codeplex.com/phpmsajax
      •    Silverligth (http://silverlight.net)
             •   Tecnologia cross-browser, cross-platform per realizzare RIA
             •   Client-side: VB, C#, Ruby, Phyton
             •   SIMP (Silverlight, IIS, MySQL, PHP)
                    •   http://silverlight.net/learn/learnvideo.aspx?video=114
             •   Demo: http://delay.members.winisp.net/SilverlightAirlinesDemo

http://blogs.msdn.com/pietrobr | Pietro Brambati
Link utili

      •    Tutto su Internet Information Server 7
             •   http://www.iis.net/default.aspx?tabid=7
      •    FastCGI
             •   http://www.iis.net/default.aspx?tabid=1000051
      •    Fast CGI Post TP 2 (unofficial – update)
             •   http://blogs.iis.net/rickjames/archive/2007/04/19/fastcgi-tp2-unofficial-
                 update-70419.aspx
      •    PHP su IIS 7
             •   http://blogs.iis.net/bills/archive/2006/10/31/PHP-on-IIS.aspx
      •    Phalanger Project
             •   http://www.php-compiler.net
      •    Sicurezza
             •   http://secunia.com




http://blogs.msdn.com/pietrobr | Pietro Brambati
Risorse per sviluppatori
      •    Sito web italiano e newsletter MSDN Flash
             •   http://www.microsoft.com/italy/msdn
      •    Seminari on-line gratuiti (webcast)
             •   http://www.microsoft.it/msdn/webcast
      •    Conferenze
            • http://www.microsoft.com/italy/msdn/eventi/default.mspx
      •    Community
            • http://www.microsoft.com/italy/msdn/community/defult.mspx
      •    Contattaci
             •   http://www.microsoft.com/italy/msdn/contattaci




http://blogs.msdn.com/pietrobr | Pietro Brambati
© 2006 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries.
       The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market
            conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation.
                                        MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.




http://blogs.msdn.com/pietrobr | Pietro Brambati

More Related Content

What's hot

Framework per la realizzazione di ria
Framework per la realizzazione di riaFramework per la realizzazione di ria
Framework per la realizzazione di riaLorenzo Bortolotto
 
Php On Windows For Ph Pday 2008
Php On Windows For Ph Pday 2008Php On Windows For Ph Pday 2008
Php On Windows For Ph Pday 2008pietrobr
 
Frontend Development with Blazor
Frontend Development with BlazorFrontend Development with Blazor
Frontend Development with BlazorMichele Aponte
 
Sviluppo Web Agile Con MonoRail
Sviluppo Web Agile Con MonoRailSviluppo Web Agile Con MonoRail
Sviluppo Web Agile Con MonoRailStefano Ottaviani
 
Utilizzare Windows Vista come Software Developer
Utilizzare Windows Vista come Software DeveloperUtilizzare Windows Vista come Software Developer
Utilizzare Windows Vista come Software DeveloperStefano Ottaviani
 
Introduzione alle Tecnlogie Web v1.0
Introduzione alle Tecnlogie Web v1.0Introduzione alle Tecnlogie Web v1.0
Introduzione alle Tecnlogie Web v1.0Paolo Quartarone
 
Generazione Dinamica di Codice in .NET
Generazione Dinamica di Codice in .NETGenerazione Dinamica di Codice in .NET
Generazione Dinamica di Codice in .NETStefano Ottaviani
 
JBoss Seam, un framework per Java EE 5
JBoss Seam, un framework per Java EE 5JBoss Seam, un framework per Java EE 5
JBoss Seam, un framework per Java EE 5Marcello Teodori
 
Blazor Focus Week Bari
Blazor Focus Week BariBlazor Focus Week Bari
Blazor Focus Week BariMichele Aponte
 
Ottimizzare WordPress su Windows/IIS
Ottimizzare WordPress su Windows/IISOttimizzare WordPress su Windows/IIS
Ottimizzare WordPress su Windows/IISpietrobr
 
Meetup Fluent Design e Progressive Web App
Meetup Fluent Design e Progressive Web AppMeetup Fluent Design e Progressive Web App
Meetup Fluent Design e Progressive Web Appdotnetcode
 
Sviluppo Web Agile con Castle Monorail
Sviluppo Web Agile con Castle MonorailSviluppo Web Agile con Castle Monorail
Sviluppo Web Agile con Castle MonorailDotNetMarche
 
Il Web orientato al futuro: Express, Angular e nodeJS
Il Web orientato al futuro: Express, Angular e nodeJS Il Web orientato al futuro: Express, Angular e nodeJS
Il Web orientato al futuro: Express, Angular e nodeJS Eugenio Minardi
 
Creazione componenti con Vue js
Creazione componenti con Vue jsCreazione componenti con Vue js
Creazione componenti con Vue jsGianfranco Castro
 
Web Services, le librerie Nusoap e PHP5 nell’interrogazione dei dati demograf...
Web Services, le librerie Nusoap e PHP5 nell’interrogazione dei dati demograf...Web Services, le librerie Nusoap e PHP5 nell’interrogazione dei dati demograf...
Web Services, le librerie Nusoap e PHP5 nell’interrogazione dei dati demograf...Vincenzo Patruno
 
Link. vb6 [santi caltabiano].txt blocco note
  Link. vb6 [santi caltabiano].txt   blocco note  Link. vb6 [santi caltabiano].txt   blocco note
Link. vb6 [santi caltabiano].txt blocco notesanti caltabiano
 
Streaming in Java e Flex con Red5
Streaming in Java e Flex con Red5Streaming in Java e Flex con Red5
Streaming in Java e Flex con Red5Marcello Teodori
 

What's hot (20)

Framework per la realizzazione di ria
Framework per la realizzazione di riaFramework per la realizzazione di ria
Framework per la realizzazione di ria
 
Php On Windows For Ph Pday 2008
Php On Windows For Ph Pday 2008Php On Windows For Ph Pday 2008
Php On Windows For Ph Pday 2008
 
Frontend Development with Blazor
Frontend Development with BlazorFrontend Development with Blazor
Frontend Development with Blazor
 
Sviluppo Web Agile Con MonoRail
Sviluppo Web Agile Con MonoRailSviluppo Web Agile Con MonoRail
Sviluppo Web Agile Con MonoRail
 
Utilizzare Windows Vista come Software Developer
Utilizzare Windows Vista come Software DeveloperUtilizzare Windows Vista come Software Developer
Utilizzare Windows Vista come Software Developer
 
Introduzione alle Tecnlogie Web v1.0
Introduzione alle Tecnlogie Web v1.0Introduzione alle Tecnlogie Web v1.0
Introduzione alle Tecnlogie Web v1.0
 
Java sul tuo Mac
Java sul tuo MacJava sul tuo Mac
Java sul tuo Mac
 
Generazione Dinamica di Codice in .NET
Generazione Dinamica di Codice in .NETGenerazione Dinamica di Codice in .NET
Generazione Dinamica di Codice in .NET
 
JBoss Seam, un framework per Java EE 5
JBoss Seam, un framework per Java EE 5JBoss Seam, un framework per Java EE 5
JBoss Seam, un framework per Java EE 5
 
Blazor Focus Week Bari
Blazor Focus Week BariBlazor Focus Week Bari
Blazor Focus Week Bari
 
Ottimizzare WordPress su Windows/IIS
Ottimizzare WordPress su Windows/IISOttimizzare WordPress su Windows/IIS
Ottimizzare WordPress su Windows/IIS
 
Meetup Fluent Design e Progressive Web App
Meetup Fluent Design e Progressive Web AppMeetup Fluent Design e Progressive Web App
Meetup Fluent Design e Progressive Web App
 
Sviluppo Web Agile con Castle Monorail
Sviluppo Web Agile con Castle MonorailSviluppo Web Agile con Castle Monorail
Sviluppo Web Agile con Castle Monorail
 
Il Web orientato al futuro: Express, Angular e nodeJS
Il Web orientato al futuro: Express, Angular e nodeJS Il Web orientato al futuro: Express, Angular e nodeJS
Il Web orientato al futuro: Express, Angular e nodeJS
 
Creazione componenti con Vue js
Creazione componenti con Vue jsCreazione componenti con Vue js
Creazione componenti con Vue js
 
Web Services, le librerie Nusoap e PHP5 nell’interrogazione dei dati demograf...
Web Services, le librerie Nusoap e PHP5 nell’interrogazione dei dati demograf...Web Services, le librerie Nusoap e PHP5 nell’interrogazione dei dati demograf...
Web Services, le librerie Nusoap e PHP5 nell’interrogazione dei dati demograf...
 
Link. vb6 [santi caltabiano].txt blocco note
  Link. vb6 [santi caltabiano].txt   blocco note  Link. vb6 [santi caltabiano].txt   blocco note
Link. vb6 [santi caltabiano].txt blocco note
 
Streaming in Java e Flex con Red5
Streaming in Java e Flex con Red5Streaming in Java e Flex con Red5
Streaming in Java e Flex con Red5
 
Creare PWA con Angular
Creare PWA con AngularCreare PWA con Angular
Creare PWA con Angular
 
Plone Cms
Plone CmsPlone Cms
Plone Cms
 

Similar to Pietro Brambati: PHP e la piattaforma Microsoft

Php Day 2009:Un Salto Nel Buio
Php Day 2009:Un Salto Nel BuioPhp Day 2009:Un Salto Nel Buio
Php Day 2009:Un Salto Nel Buiopietrobr
 
Word press e iis
Word press e iisWord press e iis
Word press e iispietrobr
 
Keynote del phpday 2010
Keynote del phpday 2010Keynote del phpday 2010
Keynote del phpday 2010pietrobr
 
Laboratorio Di Basi Di Dati 07 Programmazione Web Lato Server
Laboratorio Di  Basi Di  Dati 07  Programmazione  Web Lato ServerLaboratorio Di  Basi Di  Dati 07  Programmazione  Web Lato Server
Laboratorio Di Basi Di Dati 07 Programmazione Web Lato Serverguestbe916c
 
Zend Server
Zend ServerZend Server
Zend ServerGrUSP
 
.NET Core, ASP.NET Core e Linux per il Mobile
.NET Core, ASP.NET Core e Linux per il Mobile.NET Core, ASP.NET Core e Linux per il Mobile
.NET Core, ASP.NET Core e Linux per il MobilePietro Libro
 
ASP.NET Core Services e Linux per il Mobile - Pietro Libro - Codemotion Rome...
ASP.NET Core Services e Linux per il Mobile  - Pietro Libro - Codemotion Rome...ASP.NET Core Services e Linux per il Mobile  - Pietro Libro - Codemotion Rome...
ASP.NET Core Services e Linux per il Mobile - Pietro Libro - Codemotion Rome...Codemotion
 
Back to the Future: Migrare da WebForm ad ASP.NET Core gradualmente
Back to the Future: Migrare da WebForm ad ASP.NET Core gradualmente Back to the Future: Migrare da WebForm ad ASP.NET Core gradualmente
Back to the Future: Migrare da WebForm ad ASP.NET Core gradualmente Andrea Dottor
 
Presentazione IBM i virtualizzazione su Power System
Presentazione IBM i virtualizzazione su Power SystemPresentazione IBM i virtualizzazione su Power System
Presentazione IBM i virtualizzazione su Power SystemPRAGMA PROGETTI
 
Webkit presentazione ufficiale
Webkit presentazione ufficialeWebkit presentazione ufficiale
Webkit presentazione ufficialeintoinside
 
Laboratorio Di Basi Di Dati 06 Programmazione Web Lato Client
Laboratorio Di  Basi Di  Dati 06  Programmazione  Web Lato ClientLaboratorio Di  Basi Di  Dati 06  Programmazione  Web Lato Client
Laboratorio Di Basi Di Dati 06 Programmazione Web Lato Clientguestbe916c
 
phpday 2006 - SEA case study
phpday 2006 - SEA case studyphpday 2006 - SEA case study
phpday 2006 - SEA case studyGaetano Giunta
 
Un backend per tutte le stagioni con Spring
Un backend per tutte le stagioni con SpringUn backend per tutte le stagioni con Spring
Un backend per tutte le stagioni con SpringMarcello Teodori
 
Real world Visual Studio Code
Real world Visual Studio CodeReal world Visual Studio Code
Real world Visual Studio CodeRoberto Messora
 
WPO: Ottimizzazione step-by-step del front-end di un e-commerce
WPO: Ottimizzazione step-by-step del front-end di un e-commerceWPO: Ottimizzazione step-by-step del front-end di un e-commerce
WPO: Ottimizzazione step-by-step del front-end di un e-commerceFrancesco Terenzani
 
Works with ASP.NET Core on Linux and Mac
Works with ASP.NET Core on Linux and MacWorks with ASP.NET Core on Linux and Mac
Works with ASP.NET Core on Linux and MacEmanuele Bartolesi
 

Similar to Pietro Brambati: PHP e la piattaforma Microsoft (20)

Php Day 2009:Un Salto Nel Buio
Php Day 2009:Un Salto Nel BuioPhp Day 2009:Un Salto Nel Buio
Php Day 2009:Un Salto Nel Buio
 
Word press e iis
Word press e iisWord press e iis
Word press e iis
 
Presentazione wi400 i5
Presentazione wi400 i5Presentazione wi400 i5
Presentazione wi400 i5
 
Php for ASP.NET Developers
Php for ASP.NET DevelopersPhp for ASP.NET Developers
Php for ASP.NET Developers
 
Keynote del phpday 2010
Keynote del phpday 2010Keynote del phpday 2010
Keynote del phpday 2010
 
Laboratorio Di Basi Di Dati 07 Programmazione Web Lato Server
Laboratorio Di  Basi Di  Dati 07  Programmazione  Web Lato ServerLaboratorio Di  Basi Di  Dati 07  Programmazione  Web Lato Server
Laboratorio Di Basi Di Dati 07 Programmazione Web Lato Server
 
Zend Server
Zend ServerZend Server
Zend Server
 
.NET Core, ASP.NET Core e Linux per il Mobile
.NET Core, ASP.NET Core e Linux per il Mobile.NET Core, ASP.NET Core e Linux per il Mobile
.NET Core, ASP.NET Core e Linux per il Mobile
 
ASP.NET Core Services e Linux per il Mobile - Pietro Libro - Codemotion Rome...
ASP.NET Core Services e Linux per il Mobile  - Pietro Libro - Codemotion Rome...ASP.NET Core Services e Linux per il Mobile  - Pietro Libro - Codemotion Rome...
ASP.NET Core Services e Linux per il Mobile - Pietro Libro - Codemotion Rome...
 
Back to the Future: Migrare da WebForm ad ASP.NET Core gradualmente
Back to the Future: Migrare da WebForm ad ASP.NET Core gradualmente Back to the Future: Migrare da WebForm ad ASP.NET Core gradualmente
Back to the Future: Migrare da WebForm ad ASP.NET Core gradualmente
 
Presentazione IBM i virtualizzazione su Power System
Presentazione IBM i virtualizzazione su Power SystemPresentazione IBM i virtualizzazione su Power System
Presentazione IBM i virtualizzazione su Power System
 
Webkit presentazione ufficiale
Webkit presentazione ufficialeWebkit presentazione ufficiale
Webkit presentazione ufficiale
 
The road to php7
The road to php7The road to php7
The road to php7
 
Laboratorio Di Basi Di Dati 06 Programmazione Web Lato Client
Laboratorio Di  Basi Di  Dati 06  Programmazione  Web Lato ClientLaboratorio Di  Basi Di  Dati 06  Programmazione  Web Lato Client
Laboratorio Di Basi Di Dati 06 Programmazione Web Lato Client
 
Acadevmy - PWA & Angular
Acadevmy - PWA & AngularAcadevmy - PWA & Angular
Acadevmy - PWA & Angular
 
phpday 2006 - SEA case study
phpday 2006 - SEA case studyphpday 2006 - SEA case study
phpday 2006 - SEA case study
 
Un backend per tutte le stagioni con Spring
Un backend per tutte le stagioni con SpringUn backend per tutte le stagioni con Spring
Un backend per tutte le stagioni con Spring
 
Real world Visual Studio Code
Real world Visual Studio CodeReal world Visual Studio Code
Real world Visual Studio Code
 
WPO: Ottimizzazione step-by-step del front-end di un e-commerce
WPO: Ottimizzazione step-by-step del front-end di un e-commerceWPO: Ottimizzazione step-by-step del front-end di un e-commerce
WPO: Ottimizzazione step-by-step del front-end di un e-commerce
 
Works with ASP.NET Core on Linux and Mac
Works with ASP.NET Core on Linux and MacWorks with ASP.NET Core on Linux and Mac
Works with ASP.NET Core on Linux and Mac
 

More from Francesco Fullone

Life Cycle Design e Circular Economy: un caso reale
Life Cycle Design e Circular Economy: un caso reale Life Cycle Design e Circular Economy: un caso reale
Life Cycle Design e Circular Economy: un caso reale Francesco Fullone
 
Okr istruzioni per l'uso - devfest
Okr   istruzioni per l'uso - devfestOkr   istruzioni per l'uso - devfest
Okr istruzioni per l'uso - devfestFrancesco Fullone
 
OKR, sono veramente utili alla mia azienda?
OKR, sono veramente utili alla mia azienda?OKR, sono veramente utili alla mia azienda?
OKR, sono veramente utili alla mia azienda?Francesco Fullone
 
Open Governance, un caso reale
Open Governance, un caso realeOpen Governance, un caso reale
Open Governance, un caso realeFrancesco Fullone
 
A recommendation engine for your applications
A recommendation engine for your applicationsA recommendation engine for your applications
A recommendation engine for your applicationsFrancesco Fullone
 
A recommendation engine for your applications
A recommendation engine for your applicationsA recommendation engine for your applications
A recommendation engine for your applicationsFrancesco Fullone
 
MVP & Startup, with OpenSource Software and Microsoft Azure
MVP & Startup, with OpenSource Software and Microsoft AzureMVP & Startup, with OpenSource Software and Microsoft Azure
MVP & Startup, with OpenSource Software and Microsoft AzureFrancesco Fullone
 
Help yourself, grow an healthy ecosystem
Help yourself, grow an healthy ecosystemHelp yourself, grow an healthy ecosystem
Help yourself, grow an healthy ecosystemFrancesco Fullone
 
Outsourcing, partners or suppliers?
Outsourcing, partners or suppliers?Outsourcing, partners or suppliers?
Outsourcing, partners or suppliers?Francesco Fullone
 
From brainstorming to product development
From brainstorming to product developmentFrom brainstorming to product development
From brainstorming to product developmentFrancesco Fullone
 
Compromises and not solution
Compromises and not solutionCompromises and not solution
Compromises and not solutionFrancesco Fullone
 

More from Francesco Fullone (20)

Life Cycle Design e Circular Economy: un caso reale
Life Cycle Design e Circular Economy: un caso reale Life Cycle Design e Circular Economy: un caso reale
Life Cycle Design e Circular Economy: un caso reale
 
Okr istruzioni per l'uso - devfest
Okr   istruzioni per l'uso - devfestOkr   istruzioni per l'uso - devfest
Okr istruzioni per l'uso - devfest
 
OKR, sono veramente utili alla mia azienda?
OKR, sono veramente utili alla mia azienda?OKR, sono veramente utili alla mia azienda?
OKR, sono veramente utili alla mia azienda?
 
Okr per community - icms
Okr   per community - icmsOkr   per community - icms
Okr per community - icms
 
Open Governance, un caso reale
Open Governance, un caso realeOpen Governance, un caso reale
Open Governance, un caso reale
 
A recommendation engine for your applications
A recommendation engine for your applicationsA recommendation engine for your applications
A recommendation engine for your applications
 
A recommendation engine for your applications
A recommendation engine for your applicationsA recommendation engine for your applications
A recommendation engine for your applications
 
Con te non ci lavoro
Con te non ci lavoroCon te non ci lavoro
Con te non ci lavoro
 
Con te non ci lavoro
Con te non ci lavoroCon te non ci lavoro
Con te non ci lavoro
 
Continuous budgeting
Continuous budgetingContinuous budgeting
Continuous budgeting
 
Remote working istruzioni
Remote working istruzioniRemote working istruzioni
Remote working istruzioni
 
Remote working istruzioni
Remote working istruzioniRemote working istruzioni
Remote working istruzioni
 
MVP & Startup, with OpenSource Software and Microsoft Azure
MVP & Startup, with OpenSource Software and Microsoft AzureMVP & Startup, with OpenSource Software and Microsoft Azure
MVP & Startup, with OpenSource Software and Microsoft Azure
 
Remote working istruzioni
Remote working istruzioniRemote working istruzioni
Remote working istruzioni
 
Help yourself, grow an healthy ecosystem
Help yourself, grow an healthy ecosystemHelp yourself, grow an healthy ecosystem
Help yourself, grow an healthy ecosystem
 
Outsourcing, partners or suppliers?
Outsourcing, partners or suppliers?Outsourcing, partners or suppliers?
Outsourcing, partners or suppliers?
 
From brainstorming to product development
From brainstorming to product developmentFrom brainstorming to product development
From brainstorming to product development
 
Compromises and not solution
Compromises and not solutionCompromises and not solution
Compromises and not solution
 
PHP Goes Enterprise
PHP Goes EnterprisePHP Goes Enterprise
PHP Goes Enterprise
 
your browser, my storage
your browser, my storageyour browser, my storage
your browser, my storage
 

Pietro Brambati: PHP e la piattaforma Microsoft

  • 1. PHP e la piattaforma Windows Pietro Brambati Developer Evangelist Microsoft pietro.brambati@microsoft.com http://blogs.msdn.com/pietrobr
  • 2. Agenda • PHP e Windows • FastCGI • Internet Information Server 7 (IIS 7) e PHP • Phalanger • Nuove tecnologie http://blogs.msdn.com/pietrobr | Pietro Brambati
  • 3. PHP e Windows • Microsoft e Zend stanno lavorando insieme per offrire il massimo agli sviluppatori che lavorano con PHP • Internet Information Server è il web server della piattaforma Microsoft • Internet Information Server 7 è una piattaforma completa per lo sviluppo di applicazioni web con PHP • IIS 7 disponibile su Windows Vista e con “Longhorn Server” • AJAX e Silverlight http://blogs.msdn.com/pietrobr | Pietro Brambati
  • 4. PHP e Windows …la storia! • Due modi per far girare PHP su Windows • La via “affidabile”  CGI • su Windows è costoso creare un nuovo processo per ogni richiesta • La vai “veloce”  ISAPI • Su Windows è poco costoso creare thread • Estensioni PHP non-thread safe • Molte estensioni PHP non sono thread-safe http://blogs.msdn.com/pietrobr | Pietro Brambati
  • 5. FastCGI : oggi ! • Componente di IIS (5.x/6/7) che permette di utilizzare PHP in modo affidabile e performante • Riusa i processi creati per richieste successive • PHP è single thread in uno dei processi del pool • Sfrutta il multi-threaded di IIS 7 • Adatto per ambienti di produzione • Attualmente in Technical Preview 2 e … http://blogs.msdn.com/pietrobr | Pietro Brambati
  • 6. Installare FastCGI su IIS 7 • PHP 5.2.1 o successive (oggi 5.2.2) • Versione non-thread safe ! • Download FastCGI per la piattaforma (32 o 64 bit) • Dal prompt dei comandi • fcgisetup /install • fcgisetup.exe /add C:PHPphp-cgi.exe PHP • Quindi phpInfo() • Per disinstallare • Usare lo switch /uninstall http://www.iis.net/default.aspx?tabid=2&subtabid=25&i=1345 http://blogs.msdn.com/pietrobr | Pietro Brambati
  • 8. IIS 7 e .NET Framework • .NET Framework è un framework per lo sviluppo di applicazioni desktop, web e mobile • fondamento della Microsoft Application Platform • ASP.NET è la piattaforma per lo sviluppo web • Con IIS 7 alcune funzionalità di ASP.NET 2.0 sono ora parte della piattaforma • per contenuti statici e pagine PHP • Per l’ autenticazione e autorizzazione • Gestione utenti e ruoli • Profilazione … etc. http://blogs.msdn.com/pietrobr | Pietro Brambati
  • 9. IIS7: architettura modulare • “Piccolo ed efficiente” • Installi solo i componenti che ti servono • Riduce il footprint di memoria • Riduce la superficie di attacco • Circa 40 moduli disponibili • Moduli basati su API pubbliche • Facile sostituire un modulo di IIS con uno proprio http://blogs.msdn.com/pietrobr | Pietro Brambati
  • 10. IIS 7 e PHP Output Cache • IIS 7 output cache • Cache in memoria dell’intera response in user-mode • Anche per contenuti dinamici • Diverse copie della pagina in base a querystring, o headers • Policy • DontCache | CacheUntilChange | CacheForTimePeriod • Configurabile da file (web.config) <caching> <profiles enabled=”true”> <add extension=”.php” policy=”CacheForTimePeriod” duration=”00:30:00” varyByQueryString=”action” varyByHeaders=”User-Agent”/> </profiles> </caching> http://blogs.iis.net/ksingla/archive/2006/11/16/caching-in-iis7.aspx http://blogs.msdn.com/pietrobr | Pietro Brambati
  • 13. Phalanger Project • Phalanger = compilatore del linguaggio PHP per .NET • Abbreviazione di “PHP Language Compiler” • Semplicità di PHP + ricchezza della piattaforma .NET • Fornisce l’implementazione delle librerie che sono compatibili con la maggior parte delle applicazioni PHP • Compila in MSIL (Microsoft Intermediate Language) • JIT compila in codice nativo  performance • Può chiamare estensioni PHP native http://blogs.msdn.com/pietrobr | Pietro Brambati
  • 14. Storia del progetto Phalanger • Progetto in ambito accademico iniziato nel 2003 alla facoltà di matematica e fisica all’università di Praga • V 1.0 (feb 2006) compatibile con la maggior parte delle applicazioni PHP 4 e 5 • V 2.0 (in Beta 3) aggiunto pieno supporto alle classi .NET • Estensione al linguaggio PHP (PHP/CLI) per il supporto ai generics, attributi, classi parziali, parte di LINQ etc • Licenza Microsoft Share Source, ospitato su CodePlex http://blogs.msdn.com/pietrobr | Pietro Brambati
  • 15. Demo Personal Web Site con Phalanger
  • 16. Molto altro … • Microsoft AJAX Library per PHP • Pochi files per poter utilizzare le MS AJAX Library da PHP • Le Microsoft AJAX Library (http://ajax.asp.net) sono scaricabili gratuitamente con il codice sorgente • http://codeplex.com/phpmsajax • Silverligth (http://silverlight.net) • Tecnologia cross-browser, cross-platform per realizzare RIA • Client-side: VB, C#, Ruby, Phyton • SIMP (Silverlight, IIS, MySQL, PHP) • http://silverlight.net/learn/learnvideo.aspx?video=114 • Demo: http://delay.members.winisp.net/SilverlightAirlinesDemo http://blogs.msdn.com/pietrobr | Pietro Brambati
  • 17. Link utili • Tutto su Internet Information Server 7 • http://www.iis.net/default.aspx?tabid=7 • FastCGI • http://www.iis.net/default.aspx?tabid=1000051 • Fast CGI Post TP 2 (unofficial – update) • http://blogs.iis.net/rickjames/archive/2007/04/19/fastcgi-tp2-unofficial- update-70419.aspx • PHP su IIS 7 • http://blogs.iis.net/bills/archive/2006/10/31/PHP-on-IIS.aspx • Phalanger Project • http://www.php-compiler.net • Sicurezza • http://secunia.com http://blogs.msdn.com/pietrobr | Pietro Brambati
  • 18. Risorse per sviluppatori • Sito web italiano e newsletter MSDN Flash • http://www.microsoft.com/italy/msdn • Seminari on-line gratuiti (webcast) • http://www.microsoft.it/msdn/webcast • Conferenze • http://www.microsoft.com/italy/msdn/eventi/default.mspx • Community • http://www.microsoft.com/italy/msdn/community/defult.mspx • Contattaci • http://www.microsoft.com/italy/msdn/contattaci http://blogs.msdn.com/pietrobr | Pietro Brambati
  • 19. © 2006 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION. http://blogs.msdn.com/pietrobr | Pietro Brambati