Durch die sogenannte “LiftOff Initiative” sollen Microsoft Partner in einem Trainingsprogramm an die Technologien rund ums Web 2.0 herangeführt werden. Schwerpunkt der Trainingsmaßnahme ist die Integration der Microsoft Webtechnologien (WPF/E, ASP.NET, AJAX), Web Services und Map Point, sowie Workflow Management.
Wie bereits berichtet hat CodeGear/Borland eine neue Entwicklungsumgebung für PHP heraus gebracht. Da ich früher sehr gern mit Delphi gearbeitet habe und eigentlich immer begeistert war, habe ich mir sofort eine Studentenversion für 99,- bestellt. Mein Ziel war es bei der Entwicklung meiner beiden WordPress-Plugins Counterize II und WP-Referencesmap etwas mehr Unterstützung durch eine IDE und einen Debugger zu erhalten. Gleich vorab: dieses Ziel kann Delphi for PHP leider nicht erfüllen.
Die Verpackung
Schon beim Öffnen der Verpackung habe ich mich gewundert. Früher gab es bei Delphi immer eine nette Box mit einigen kleinen Beilagen (wie z.B. einem Poster). Diesmal gab es jedoch nur eine einfache DVD-Hülle. Das Cover ist total verpixelt – die meisten privaten Raubkopien werden mit besseren Druckern gedruckt.
Die Installation
Die Installation der Delphiversion auf meinem Windows XP Rechner verlief absolut problemlos – einzig die zwingende Registrierung war etwas unangenehm.
Die ersten Eindrücke
Nach dem Starten zeigt sich Delphi for PHP mit einem leeren Formular und gewohnten Tools wie CodeExplorer, Toolbox und ObjectInspector. Delphi liefert auch eine große Palette von PHP-Controls in der kostenlos verfügbaren „VCL for PHP“ mit. Diese ist komplett in PHP 5 geschrieben und demnach wohl auch nicht abwärtskompatibel. Bis hierhin sieht alles ganz normal aus. Delphi unterteilt sich in die zwei Ansichten Designer und Code-Ansicht.Â
Code vs. Designer
Im Designmodus kann man Komponenten auf seinem Formular platzieren und im ObjektInspektor die Eigenschaften editieren. Delphi legt dafür im Hintergrund ein XML-File für das gesammte Webprojekt an, in dem alle Eigenschaften der Formularkomponenten (Höhe, Breite, Position, …) gespeichert werden. Zur Laufzeit wird dieses File aufgeparst und die Werte auf die Komponenten gesetzt. Bei meinen Test bekam ich jedoch schon nach ein paar Minuten die ersten Fehlermeldungen im Designer – dabei wollte ich nur ein TabSheet etwas nach rechts verschieben.
Passend dazu: Mens Slim Contrast Tee “Generation beta”
Da heute ja alles eine Beta ist.. » 17.90 EUR
Weitere Produkte gibt es im Shop.
Im Code-Editor kann man den PHP-Quellcode editieren. Bei einem Formular legt Delphi auch gleich etwas Quellcode mit an. Syntax-Highlighting und Code-Vervollständigung wird natürlich unterstützt. Man kann Breakpoints setzen und mit F9 das Programm auf dem Testwebserver starten.
Der Designer arbeitet streng mit der VCL und dem XML-File der Properties. Eigene alte Quelltextfragemente können nicht visualisiert werden. Somit kann ich den visuellen Designer nur für neue Projekte verwenden bzw. ich müsste meinen gesammten Code in VCL-Komponenten portieren.
Remote-Debugging
Nun wollte ich gleich richtig einsteigen, aber zu meinem Bedauern kann Delphi for PHP kein Remote-Debugging – was übrigens nirgends auf der CodeGear-Seite oder in der sehr knappen Hilfe beschrieben ist. An dieser Stelle brach für mich eine Welt zusammen. Delphi liefert zwar standardmäßig einen Entwicklungswebserver mit, ähnlich wie die Cassini-Version bei ASP.NET, aber Remote-Debugging wird (zur Zeit) nicht unterstützt. Schlimmer noch – der Assistent zum Exportieren des Webprojekts exportiert zwar neben dem eigenen Code nur den tatsächlich benutzten Teil der VCL, bietet jedoch keine Möglichkeit des FTP-Uploads. Ich meine selbst mit meinen PsPad kann ich Quelltexte remote editieren.
Somit müsste ich meinen gesamten WordPress-Blog (samt mySQL-Datenbank) nochmal auf meinem lokalen Entwicklungs-Rechner spiegeln und Änderungen manuell mit meinem FTP-Programm hochladen. Team-Entwicklung fällt damit wohl auch flach.
Datenbank-Anbindung
CodeGear liefert standardmäßig neben dem Entwicklungsserver noch eine Testversion von InterBase mit. Diese kann man für eigene Testzwecke nutzen – vor dem Deployment muss InterBase jedoch lizensiert werden. Was soll das denn? Da liefern die eine Datenbank mit und dann darf ich die nicht benutzen? Mal davon abgesehen, dass natürlich mySQL der eigentliche PHP-Partner ist.
Fazit
Delphi for PHP hat sich für mich leider als absoluter Fehlkauf erwiesen. CodeGear/Borland hat einfach von der Firma qadram das Qstudio genommen und einen schönen Delphi-Sticker draufgeklebt. Ich habe mich von dem guten Namen und der Möglichkeit PHP in einer IDE zu nutzen blenden lassen. Dabei ist der Designer noch nicht komplett bugfrei, Remote Debuging wird nicht unterstützt, die Hilfe ist sehr sehr kurz und die Sache mit InterBase ist wirklich eine Frechheit. Für mich hat Borland hier alle Sympathien verspielt. Das Programm ist noch lange nicht marktreif und den Namen Delphi hat es schon gar nicht verdient.
Nachdem ich mich ja schon eine ganze Zeit lang mit ASP.NET und Visual Studio beschäftigt habe, muss ich sagen: Das ist ein Unterschied wie Tag und Nacht. Für mich stellt sich nun die Frage: Wie bekomme ich mein Geld zurück – Software ist ja leider vom Umtausch ausgeschlossen.
Jetzt werde ich mir also doch die Eclipse-PHP-Versionen (wie z.B. PHPEclipse) ansehen müssen…
Marcel Hoyer von der .NET User Group Leipzig hat einen schönen Abschlussbericht zum .NET Wintercamp in Leipzig geschrieben. Ich muss sagen mir hat mein ASP.NET-Vortrag auch viel Spaß gemacht und ich hoffe ich bekomme die Gelegenheit beim .NET-Sommercamp 2007 wieder als Sprecher fungieren zu dürfen. 🙂
Ab März bringt CodeGear/Borland eine neue Entwicklungsumgebung für PHP heraus. Dabei wird die IDE auf den gewohnten Delphi-Komfort aufsetzen und eine Alternative zu Visual Studio 2005 / ASP.NET bieten. Besonders interessant dürfte der integrierte Debugger sein, da es momentan teilweise doch sehr anstrengend sein kann PHP zu debuggen. “Delphi for PHP” soll übrigens auch eine eigene Komponentenbibliothek (“VCL for PHP”) mitbringen, so dass viele Standardaufgaben wie LogIn usw. “out of the box” mitgeliefert werden. Die Visual Component Library ist nebenbei auch komplett in PHP 5 geschrieben, so dass man sie auf jeden Standardserver benutzen kann.
Als Einführungspreis gibt CodeGear 249,- USD an – als Studentenversion ist Delphi for PHP wohl für 99,- USD zu haben.Â
Am Mittwoch den 21.3.2007 werde ich übrigens einen Vortrag zum ASP.NET 2.0 halten. Hier ein Auszug aus der Agenda:
Mittwoch, 21.03.2007 um 09:00 Uhr – ASP.NET 2.0
Die nächste Generation der Web Entwicklung steht vor der Tür. Der Vortrag vermittelt die zentralen Features von ASP.NET 2.0 wie beispielsweise Master Pages, Skinning, Themes, Navigation, Rich Databinding und einfache Benutzerverwaltung. Insbesondere wird die Geschwindigkeit der Anwendungsentwicklung, nicht zuletzt aufgrund der 70%igen Codereduktion für alle Teilnehmer zum Erlebnis.
Warning: Creating default object from empty value in /www/htdocs/w007928a/blog/wp-content/plugins/wp-referencesmap/GoogleMapsWrapper.php on line 55
Filed under: ASP.NET — Steffen Forkmann at 14:02 Uhr
Falls mal wieder keine Textverarbeitung installiert ist, kann man jetzt auf die folgende Online Alternative zurückgreifen: AjaxWrite. Funktioniert prima ohne Installation und besser als Wordpad ist es allemal. Desweiteren gibt es von dem gleichen Anbieter jetzt ein Online-Sketch Prgramm namens AjaxSketch, welches auch SVG Export ermöglicht. Benötigt wird lediglich Firefox 1.5 oder neuer.Â
Filed under: ASP.NET,WCF — Steffen Forkmann at 21:41 Uhr
Wie wäre es denn, wenn man einen .NET WebService auf einen Apache WebServer zum laufen bringen könnte. Eine Möglichkeit besteht darin, sich auf dieser Seite den Apache HTTP Server in der Version 2.0 und außerdem das “mod_aspdotnet Apache HTTP Server 2.0 Module”, was es hier gibt herunterzuladen.
Als einzige Vorraussetzung braucht man das Microsoft .NET Framework in Version 1.0 oder 1.1, welches installiert sein muss. Es funktioniert leider nicht mit der ASP.NET Version 2.0.
Nun zur Vorgehensweise:
Alles installieren und mit einem Browser testen. Dazu einfach http://localhost/
oder http://localhost:8080/ (je nachdem was man bei der Installation gewählt hat) eingeben und es müsste der folgende Bildschirm erscheinen:
Als nächstes muss man die httpd.conf mit einem Texteditor öffnen und folgende Zeilen hinzufügen:
# Use the asp.net handler for all common ASP.NET file types
AddHandler asp.net asax ascx ashx asmx aspx axd config cs csproj licx rem resources resx soap vb vbproj vsdisco webinfo
# Mount the IBuySpy C# example application
AspNetMount /StoreCSVS “C:/StoreCSVS/StoreCSVS”
# Map all requests for /StoreCSVS to the IBuySpy application files
Alias /StoreCSVS “C:/StoreCSVS/StoreCSVS”
# Allow asp.net scripts to be executed in the IBuySpy example
Options FollowSymlinks ExecCGI
Order allow,deny
Allow from all
DirectoryIndex Default.htm Default.aspx
# For all virtual ASP.NET webs, we need the aspnet_client files
# to serve the client-side helper scripts.
AliasMatch /aspnet_client/system_web/(\d+)_(\d+)_(\d+)_(\d+)/(.*) “C:/Windows/Microsoft.NET/Framework/v$1.$2.$3/ASP.NETClientFiles/$4”
Options FollowSymlinks
Order allow,deny
Allow from all
Die Pfade müssen natürlich entsprechend dem Projekt angepasst werden und wenn alles funktioniert hat erhält man folgende Seite:
Ein Problem ist natürlich, dass es kein ASP.NET 2.0 unterstützt, aber auch hierfür gibt es eine Lösung wenn man kein IIS unter Windows betreiben will. Man läd sich das mod_mono Modul von der Mono Seite und schon ist der Apache Webserver auch für ASP.NET gerüstet (wenn das Mono Framework installiert ist), aber dieses Modul gibt es bis jetzt nur für Linux.
Filed under: ASP.NET — Steffen Forkmann at 10:06 Uhr
The Commerce Starter Kit (CSK) ist ein freier, open source e-commerce Shop in ASP.NET 2.0 und C# 2.0. Es hat schon alles dabei was man braucht, wie zum Beispiel Produktkatalog, Einkaufswagen… . Einfach zu installieren, da man lediglich eine beliebige Version vom SQL Server braucht. Das besondere daran ist, dass man hier sogar mit Paypal bezahlen kann.
Filed under: ASP.NET — Steffen Forkmann at 10:40 Uhr
URL Rewriting wird dazu genutzt, um zum Beispiel Adressen wie http://yoursite.com/info/dispEmployeeInfo.aspx?EmpID=459-099&type=summary in solche besser merkbare und von Google bevorzugte Links wie http://yoursite.com/people/sales/chuck.smith umzuwandeln. Dazu gibt es einen Artikel in der MSDN Library.