Skip to main content
PHP i MicrosoftMichał ŻylińskiKto się lubi, ten się czubi
AgendaOSS i/vs Microsoft - historia i kontekst Dlaczego lubimy PHP?Oznaki miłości
SpołecznościPartnerstwoMożliwość wyboruWkład
Port 25Centrum informacji dotyczących działań open source wokół technologii Microsoft14 mln wizyt, 20% przeglądarek to Linux/Unixhttp://port25.technet.com
InteroperabilityBridgesKatalog wszystkich projektów Microsoft, które dotyczą „zewnętrznych” technologii (PHP, Java, C, Objective C, Ruby itd.)http://www.interoperabilitybridges.com/
Przecież 50% projektów na SourceForge działa na Windows, a 1/3 tylko na Windows ;)Lepsza kontrola nad platformąUtrzymuje również „komercyjne” projekty MSTeam Foundation Server w tlehttp://www.codeplex.comCodePlex
Open Source Technology Center
OSTC – garść faktówZałożone w 2004roku (1 osoba, 2 komputery)2 ośrodki: Open Source Software Lab w Redmond oraz Joint Interoperability Lab w CambridgePonad 500 serwerów i obsługujących ponad 300 systemów operacyjnych (głównie dystrybucji Linuxa)Największe zagęszczenie CPU ze wszystkich naszych labówZatrudnia ekspertów od *nixa i OSS (JIL współtworzy Novell)
OSTC – cele i efektyTechniczna analiza rozwiązań OSSZwiększenie liczby projektów OSS współpracujących (dobrze) z platformą WindowsZarządzanie tożsamością, wirtualizacja, bezpieczeństwoDialog i współpraca ze środowiskiem OSSDotychczasowe projektyWindows Media Player 11 w FirefoxieSilverlight/Moonlight w FirefoxiePoprawki do linuxowegokernela w lipcu 2009Sterowniki SQL Servera dla Javy i PHPFast CGI – Java/PHP/PythonFirefox na Windows VistaAktualne praceHyper-V a LinuxADODB w PHP PEARWsparcie CardSpace w Javie/Ruby/Pythonie/C
Szatański planWindows = najlepsza platforma dla rozwiązań Open SourceI PHP też!
PHP a MicrosoftPHP działa na Windows od ponad dekadyWindows jest wciąż dominującą platformą wśród developerów PHPKompleksowe podejście:Ułatwienie instalacjiAktywna praca nad ulepszeniem działania PHP na WinBenefity dla programistów PHP związane z platformąZaangażowanie się w już istniejące, najpopularniejsze projekty wykorzystujące PHP
Web Platform Installerhttp://www.microsoft.com/web/downloads/platform.aspx
WPI
Expression Web 3Profesjonalny edytor HTMLBardzo mocny nacisk na kompatybilność i standardyPełne wsparcie dla PHP i ASP.NET
PHP w Expression Web 3Kolorowanie kodu, intellisense, snippetyWbudowany serwer WWW (nie musisz uruchamiać Apache lub IIS)Wsparcie dla PHP 5.2.5 i FastCGISnapshot Preview – wierny podgląd wyglądu strony w samym narzędziuSuperPreview – weryfikacja poprawności renderowania strony w różnych przeglądarkach (IE6/7/8, Firefox) – idealne do debugowaniaIntegracja z TFS, Expression Design i ExpressionEncoderem
Expression Web w praktyce
Dlaczego Windows kocha PHP Od wersji 5.3 uczestniczymy aktywnie w dostosowywaniu PHP do platformy WindowsWin32API zamiast wywołańPOSIXowychOptymalizacja wydajności pod kątem FastCGI w IISUsunięcie ponad 60 błędów dotyczących WinWięcej na: http://windows.php.net
PHP w IIS 7Mam przecież Apache…
PHP w IIS 7 1/2FastCGI – jedyny słuszny wybórOtwarty standardWykorzystywany przez wiele frameworków (Django, RoR)Bardziej stabilne niż filtr ISAPIZnacznie szybszy niż standardowe CGIGwarancja stabilności i wydajnościŁatwa konfiguracja i deployment(szczegóły na http://php.iis.net)
PHP w IIS 7 2/2Łatwa migracja:Najpopularniejsze aplikacje zostały już przetestowane i udokumentowaneKreatory do migracji z mod_rewrite na UrlRewriteElastyczność:Możliwość uruchomienia różnych środowisk (w tym wersji PHP) na tym samym serwerzeZarządzanie poprzez IIS Managera, PowerShell lub APIRozszerzanie aplikacji PHP o funkcjonalność .NET (ASP.NET intergratedpipeline)Integracja z windowsauthenticationWdrażanie przez x-copyDopalacze:OutputCachingKompresja
Parę słów o wydajnościWindows Cache Extension 1.0 podobne do APC tylko na Windows Licencja BSDDostępne w ramach PECL3-poziomowy cache:Kompilowanie stron i przechowywanie bajtkodu w pamięciDostęp do plikówWzględne ścieżki do plikówSesje przechowywane we współdzielonej pamięci (v.1.1)Kompatybilny z PHP 5.2 i 5.3Kompatybilny z Joomlą, Drupalem i Sugar CRM
PHP a SQL ServerMicrosoft SQL Server Driver Darmowy, Gotowy sterownik kompatybilny z SQL Server 2005 i 2008 i R2 (m.in. nowe typy danych)Ponieważ korzysta z ODBC działa tylko na WindowsOtwarty kod źródłowyKompatybilny z SQL AzureWspiera PDOhttp://www.codeplex.com/SQLSRVPHP
Reporting ServicesReport BuilderReport DesignerReport ServerWeb Service APIFormaty wyjściowe (HTML, Excel, Word, PDF, inne)Źródła danych(ODBC, SQL, XML/A, inne)SchedulingPrzetwarzanie w tleReport ManagerAutentykacjaWłasny serwer WWWMetadane
Reporting Services
SSRS SDK for PHPDostęp do silnika Reporting Services z kodu PHPŁatwa integracja z istniejącymi aplikacjami (dowolne źródło danych)http://ssrsphp.codeplex.com/ArchitekturaPHP Runtime (dowolny OS)Dowolna aplikacja PHPSOAPHTMLReport FormatsWindows ServerReport ManagerWindowsWeb Service APIBI Development StudioPrzetwarzanie    danychLinked ServerImportwith Advanced ServicesSQL Server, OLE DB, ODBC MySQL, Oracle, etc.Źródła danych
SSRS PHP SDK w praktyceSugarCRMDesigning and Building Reports WindowsBI Development StudioSurgarCRMModuleReport TemplatesWindows ServerReport ManagerWeb Service APIData RetrievalSOAPLinked Serverwith Advanced ServicesSugarCRMMySQLDatabase
Platforma Windows AzureSQL Azure Data Sync=coolNp. sesje PHPŁał! Naprawdę wystarczy tylko zmienić connection string?
Materializacja chmury
PHP a Windows AzureWindows w chmurzeWysoce skalowalnyAutomatycznie zarządzanyElastycznyPewnie, i dorzuć do tego jeszcze MySQLai memcached.Aaaa, i zamiast Visual Studio chcemy Eclipse!Skoro taki elastyczny, to może wrzucić tam np. PHP?
Windows Azure daje radę 1/3Gotowa paczka do Eclipse: http://windowsazure4e.orgKompletne IDE dla PHPTworzenie i zarządzanie projektemStorage ExplorerTesty w ramach WA Development FabricŁatwy deployment „w chmurę”
Windows Azure daje radę 2/3Windows AzureSDK for PHP (http://phpazure.codeplex.com/)Głównie skoncentrowany na obsłudze Windows Azure Storage
Windows Azure daje radę 3/3Co z MySQL?Przekopiuj pliki binarnePrzekopiuj daneZmień konfigurację (IP, port itd.)Zaawanse scenariusze też działają (np. replikacja, backupy)VIPEee, to z memcached pewnie też się da…Load BalancerWeb RoleMySQLWorker RoleZ Javą i Ruby także!Windows AzureMySQL PHP Solution Accelerator (http://code.msdn.microsoft.com/winazuremysqlphp)
Azure dla wygodnychLocal (Development Fabric) or CloudGotowe skrypty pozwalające na łatwy deployment aplikacji w PHP bezpośrednio do chmuryObsługa z linii komendGeneruje gotową paczkę instalacyjną (*.cspkg) oraz plik konfiguracyjny (*.cscfg)Deployment w chmurze lub w środowisku testowym (Local Development Fabric)http://azurephptools.codeplex.com123Windows Azure Command-line Tools for PHP
Inne ciekawostkiPHPExcelTworzenie i odczyt arkuszy z Office 2007Jeden z najbardziej popularnych projektów na CPhttp://phpexcel.codeplex.com/PHPWord i PHPPowerPointPhalanger– kompilator PHP do .NET (również Mono) - http://phalanger.codeplex.com/PHPLinq, OData SDK, Virtual Earth SDK, BING API, Live Messenger…
Phalanger
Ufff… czas na podsumowaniePHP na Windows? Da się – przynajmniej równie dobrzeMasz wszystko co potrzebne – doskonale znany OS, narzędzia programistyczne, rozwiązania serwerowe, wsparcieZacznij od WebPIMichal.Zylinski@microsoft.com lub plweb@microsoft.com
Program BizSparkOferta dla młodych przedsiębiorców (nie tylko przedsiębiorstw!)Formalne kryteria:Działalność software’owaMniej niż 3 lataPoniżej 0,5 mln $ przychoduOferta: komplet narzędzi + licencje serwerowehttp://www.microsoft.com/BizSpark
Program BizSpark - partnerzy
WebsiteSparkAgencje interaktywne/osoby zajmujące się tworzeniem komercyjnych serwisów WWWMaksymalnie 10 pracownikówOferta: komplet narzędzi + licencje serwerowehttp://www.websitespark.com
Pytania?Michal.Zylinski@microsoft.com