![]() |
Delphi Prism XE
Hallo zusammen,
wir nutzen zur Zeit Prism 2009 im Visual Studio 2008. Jetzt haben wir von embacadero ein gutes Update Angebot für das Update auf XE bekommen. Die Frage ist ob sich ein Wechsel lohnt...??? Wir haben ein größeres ASP.NET Projekt laufen welches zuerst mit Delphi 2007 .NET (welches mich min. 10 Lebensjahre gekostet hat :evil:) und später auf Prism portiert wurde. Da hier auch noch einige Weiterentwicklungen zu erwarten sind, wird uns Prism sicher auch noch etwas begleiten. Was gibt es großartig Neues? Und vor allem, bekomme ich hin und wieder Speicherprobleme mit großen Projekten (Prism zieht sich dann gerne auch mal 1,2 GB RAM). Ist dies besser geworden? Danke schonmal für euere Antworten!!! scooty
Delphi-Quellcode:
[/DELPHI]
[DELPHI]
|
AW: Delphi Prism XE
Warte lieber auf XE 2.
Das Release ist immer so August / September rum, und da kommen dann richtig nette neue Sachen mit ;-) |
AW: Delphi Prism XE
Jupp, so kurz vor der neuen Version schmeißen die immer nochmal die "alten" Versionen raus.
PS: Beim Kauf von Delphi XE gibt es Lizenzen für D7, D2007, D2009 und D2010 gratis mit dazu. Bei XE2 wird es besimmt/vermutlich das Selbe geben, nur noch mit einem XE dabei. Also, in vermutlich 2-4 Monaten wird es XE2 geben und dann wirst'e zum XE noch 64 Bit und Mac/Linux dazubekommen. :zwinker: |
AW: Delphi Prism XE
Welche Argumente (bitte kein Marketing Gefasel und das "Du kannst Delphi Syntax verwenden" Argument) gibt es eigentlich, mit Delphi Prism zu entwickeln? Das Netz quillt über von C# Code für fast jedes Problem und es gibt Blogs und Foren soweit das Auge reicht. Warum sollte man da auf ein "Nischenprodukt" (von der Verbreitung ausgegangen) setzen? Zudem gibts nen VS Express für lau für den Anfänger und da kann man schon ne Menge mit anfangen.
Und ich mein die Frage ganz ernst. |
AW: Delphi Prism XE
Die Frage ist denke ich berechtigt.
Bei uns wird seid Uhrzeiten Delphi eingesetzt... aus historischen Gründen (und weil man es nicht besser wusste) wurde Delphi .NET für die erste Webentwicklung eingesetzt ... -> Fehler... Ein bestehendes Projekt war nach einer gewissen Grösse mit Delphi .Net nicht mehr pflegbar, nur noch Abstürze, komplette Methoden verschwanden und der Designer machte völlig die Grätsche.... haben wir überlegt was wir tun können... Delphi .NET wurde eingestellt und Prism kam auf den Markt. Die Portierung war nicht ganz einfach aber der Aufwand hat sich gelohnt... Wir können wieder entwickeln :lol:!!! Die Portierung hat ca. 6 Wochen gedauert... Neuschreiben hätte etliche Monate benötigt!!! Grundsätzlich hätte mann das ganze auch in C# machen können. C# lernt man mit Prism mehr oder weniger eh mit, da alle Codebeispiele in C# vorliegen. Der Vorteil den ich allerdings in Prism sehe ist, wenn mann mal bei Remobjects auf der Seite nachschaut, dass bald Cooper kommt. Die Syntax ist wie Prism, nur für die JVM. D.h. für mich ich kann mit einer Sprache die alle Zielsystem abdecken und das mit Pascal. Das finde ich genial |
AW: Delphi Prism XE
Ist eigentlich der Speicherhunger von Prism in grösseren Projekten gestillt?
|
AW: Delphi Prism XE
Wenn man in Pascal Syntax für .Net entwickeln will, ist Delphi.Prism die richtige Lösung.
@himitsu: Es geht um Delphi.Prism XE(2) nicht Delphi XE(2) |
AW: Delphi Prism XE
Zitat:
Zitat:
Mac und 64 Bit sagen wir ja.... aber Linux? Dafür gibt's dann halt noch andere Schmankerl dazu (aber kein Linux) |
AW: Delphi Prism XE
Zitat:
Wobei sich hier aufgrund der zugrunde liegenen Sprache Object Pascal natürlich ganz neue Dimensionen für Plattformunabhängigkeit auftun. Der wichtigste Punkt ist, dass man Business-Logik wiederverwenden und zwischen Delphi und Prism (und zukünftig auch Cooper für Java)sharen kann. Das erlaubt es einem Delphianer, die Logik-Teile seiner Anwendungen ungeheuer effizient nach .NET und damit auf alle anderen Plattformen wie Linux, Mac OS X, andere Unixoide, ins Web, in die Cloud und auf alle relevanten mobilen Geräte zu bringen. Die Alternative wäre, entweder seine Delphianer teuer auf C# zu schulen oder sich neue C#-Entwickler zu suchen und diese dann die ganzen Sachen nochmal neu schreiben zu lassen. Das ist in aller Regel nicht wirtschaftlich. Mal davon abgesehen dass man massiv weniger Code zu schreiben braucht als mit C# (z.B. durch so nette Sprachfeatures wie den : -Operator oder einen besseren Support von Nullables). Daneben werden einem dann noch einige Sachen vom Compiler abgenommen, wie z.b. die vollständige Implementierung von INotifyPropertyChanged. In C# schreibt man sich hier einen Wolf mit Events, in Prism ist das ein einziges Keyword nach dem Property. Auch inline properties sparen ungeheuer viel Code. Ich habe letztes ein DB-Update-Framework von C# nach Prism portiert und habe ca. 1/3 Code gespart. Ein Drittel weniger schreiben zu müssen heisst in aller Regel schneller fertig zu sein und vor allem auch ein Drittel weniger potentielle Fehlerquellen zu haben. Dann kann man mit Prism viele Sachen von Haus aus machen, für die man mit C# nochmal externe Frameworks und aufwändige Infrastrukturen braucht, wie z.B. Aspektorientierte Programmierung oder Class Contracts. Class Contracts sind z.B. eine Sache, die ungeheuer gerne von Prism Usern verwendet werden, und die schon seit 'Chrome'-Zeiten in der Sprache verfügbar waren. C# kam erst Jahre später (also seit 4.0) mit einem änlichen, aber nicht so flexiblen Feature um die Ecke. Alles in allem ist es für ein Unternehmen letzlich eine Frage, wo man sparen will. Am Schulungsaufwand der Delphianer auf C# oder an neuen Entwicklern und am Portierungsaufwand von Delphi nach C#, oder an Lizenzen. Prism ist für Delphianer einfach die effizienteste Möglichkeit, in der .NET Welt Fuss zu fassen. Zitat:
|
AW: Delphi Prism XE
Zitat:
|
AW: Delphi Prism XE
@mkinzler: Richtig, es geht hier um Prism.
Und das konkrete Angebot ist das Upgrade von 2009 auf XE |
AW: Delphi Prism XE
Zitat:
|
AW: Delphi Prism XE
Danke für die Infos! Dann warten wir auf XE2 :-D
|
AW: Delphi Prism XE
Danke für die Infos. Einiges davon klingt plausibel. :love: INotifyPropertyChanged. Allerdings hab ich noch arge Problem das zu glauben:
Zitat:
Nicht, dass ich es nicht glauben will, aber ich hab schon so vielen gewachsenen und verfrickelten Delphi Code gesehen, der niemals im entferntesten auch nur in Prism laufen würde. |
AW: Delphi Prism XE
Etwas OT: Wofür steht eigentlich das "XE"?
|
AW: Delphi Prism XE
Zitat:
Aber selbst in dem Fall ist massives 'Refaktorieren' vermutlich weniger aufwändig als neu zu schreiben. Und dabei kann man dann eine saubere Architektur reinziehen. Aber im Prinzip geht es auch nicht um das retten von 100% Altcode. Wenn man eben die Anforderung hat, seine Anwendung ins Web und auf Mobile Geräte zu bringen wird in aller Regel eh nicht das komplette featureset benötigt, sondern immer nur Teilbereiche. Und wenn man die einzeln anpackt und entsprechend aufbereitet hat man eben mit einem mal seinen Altcode aufgeräumt und gleichzeitig nochmal ein paar Plattformen damit bedient. Das erfordert natürlich etwas Disziplin, ist aber erfahrungsgemäß sehr effizient und erfolgreich. |
AW: Delphi Prism XE
Zitat:
|
AW: Delphi Prism XE
Also ein Grund für mich Prism C# vorzuziehen wäre allein schon die Tatsache, dass Prism Typen gleichsetzen kann ...
D.h. wenn ich ein und dieselbe Klasse unter zwei Namen haben will, müsste ich sie in C# 2x komplett deklarieren, mit allen Folgen von doppelten Reflektionsinfos usw. Meiner Information nach kann Prism auch sowas wie
Delphi-Quellcode:
bzw.
type Typ2 = Typ1
Delphi-Quellcode:
Korrigiert mich bitte, wenn ich falsch liege.
type Typ2 = type Typ1
Allein diese Tatsache würde mich komplett von Prism überzeugen (angenommen es gibt auch für die Linuxversion 'ne kostenlosen Kommandozeilenedition :stupid:) |
AW: Delphi Prism XE
Zitat:
Code:
Das ganze ist beim using - Keyword
using MySecondTypeName = MyNameSpace.SomeSubNamespace.SomeType;
![]() |
AW: Delphi Prism XE
So, seit heute gibt es auch mehr Infos über neue Sachen, die in XE2 kommen werden (und die es in C# auch nicht gibt ;-) ):
![]() |
AW: Delphi Prism XE
Zitat:
|
AW: Delphi Prism XE
Gibts dann eigentlich auch eine IDE für Mac OS?
|
AW: Delphi Prism XE
Zitat:
Aber es ist nur ein lokaler Alias. Binde ich jetzt diese Assembly irgendwo anders ein, wird MySecondTypeName dort unbekannt sein. :wink: |
AW: Delphi Prism XE
Zitat:
![]() |
AW: Delphi Prism XE
Und seit heute
![]() |
AW: Delphi Prism XE
Fördert dieses 'duck' nicht schlampige Programmierung? Nach dem Motto: "Ich bin zu faul, es richtig zu machen und nun gibt es auch eine Programmiersprache, die Faulheit unterstützt".
|
AW: Delphi Prism XE
Wie viele andere Language Features muss man auch Duck Typing mit Verstand einsetzen.
Das Beispiel mit dem ToString macht das sehr schön deutlich. Es wird definiert, dass man diese Methode in dem übergebenen Parameter braucht. Natürlich könnte man dieses Interface auch herkömmlich implementieren und für jedes Objekt eine eigene Klasse bauen, ist aber enorm umständlich und nicht unbedingt praktikabel. |
AW: Delphi Prism XE
Ah. Aber wenn irgend jemand später mal die Methode umbenennt oder verändert, klappt das mit dem duck-Zeugs nicht mehr. Ich halte das so ebenso elegant wie typecasting, denn eigentlich ist es ja nix anderes.
Und natürlich muss man alles mit Verstand einsetzen, aber nach der Logik wäre selbst C eine tolle Programmiersprache. |
AW: Delphi Prism XE
Zitat:
Auch bietet sich z.B. Ducktyping an, wenn man die Nutzung fremder Bibliotheken testen will und diese z.B. keine Interfaces definieren. Konkret: Ich definiere mir selber ein Interface das genau so aussieht wie die fremde Komponente, und nutze diese Komponente dann mit dem eigenen Interface mittels Ducktyping. Nun habe ich meinen Code zum einen von der fremden Komponente entkoppelt. Ich habe also eine konkrete Abhängigkeit weniger, was per se mal nicht schlecht ist. Zum anderen habe ich nun eine einfache Möglichkeit die Komponente zu mocken wenn ich meinen Code mit Unit-Tests abdecken will. Die eigentliche Idee hinter Ducktyping in Prism ist aber folgende: Ich will Code für .NET und Java schreiben. Nun definiere ich mir Interfaces gegen EINE der beiden Seiten. z.B. gegen System.IO.Stream in der .NET Welt. Nun kann ich diesen mittels Ducktyping direkt verwenden. Auf der Java-Seite wrappe ich nun das Java-Stream Objekt so, dass es mein Interface erfüllt. Oder andersrum. Auf jeden Fall spare ich mir auf einer der beiden Plattformen das wrappen, und das mit einer sauberen Lösung, da Typsicher. |
AW: Delphi Prism XE
Wie jedes gute Werkzeug: In den falschen Händen ist es nicht zu gebrauchen. In den richtigen Händen jedoch ziemlich mächtig.
Ich habe verstanden. :) |
AW: Delphi Prism XE
Genau. Man muss halt aufpassen das wenn man den Hammer in der Hand hat nicht alles anfängt auszusehen wie ein Nagel. ;-)
|
AW: Delphi Prism XE
Zitat:
Die letzen Worte des Lehrmeisters: (vor einem unerklärlichen Schädelbasisbruch) Wenn ich mit dem Kopf nicke, dann schlägst du zu. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:01 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz