![]() |
Neues Projekt unter .Net: c# oder Prism
Hi,
ich warte ein uraltes Delphi-Programm (Delphi 3.0, Paradox-Datenbank) welches seit Jahren läuft, und läuft und läuft und stets weiter entwickelt wurde. Nun ist aber langsam wirklich die Zeit gekommen... Das Unternehmen welches in totaler Abhängigkeit von dieser Anwendung lebt, wird sich dessen langsam bewusst und braucht Neues... Es wäre ein kompletter Rebuild from scratch. Es kann so gut wie nichts übernommen werden außer das Wissen um die Funktionalität und die Workflows des Unternehmens. Die Daten müssten natürlich übernommen werden, aber das ist ein anderes Thema. Jetzt stellt sich mir die Frage ob ich gleich direkt in VS 10, .Net 4, C# beginne oder doch bei dem von mir so geliebten Delphi/Pascal bleibe und Prism verwende... Was meint ihr? |
AW: Neues Projekt unter .Net: c# oder Prism
Was du beachten solltest ist, dass unter WinXP .Net-Versionen später als 2.0 nicht nutzbar sind!
Deine Frage klingt so, als besteht deine Anwendung aus EINER einzigen Datei (Assembly). Wenn du dich sowieso auf .Net einlässt, sollte sich das ändern und du solltest dich eher fragen, für welche Assemblies du welche Sprache verwenden möchtest. Du könntest die GUI-Logik mit Delphi-Prism und die Business-Logik mit C# schreiben (Weitere Sprachen, die mir einfallen sind VB-NET, F#). |
AW: Neues Projekt unter .Net: c# oder Prism
Zitat:
@SebE: Wenn Du .NET willst, nutze C#. VS2010/C# ist ein wirklich gutes Gespann und bietet dir eine hohe Flexibilität. Der Support der Community ist sehr gut, auch wenn man von DP schon sehr verwöhnt ist. Prism wäre mir (wenn auch sympathisch) zu "exotisch". Ansonsten: Was hält dich ab, Delphi zu benutzen? |
AW: Neues Projekt unter .Net: c# oder Prism
Zitat:
Ich wollte den Hinweis auch nur loswerden, da es sein kann, dass das Uraltsystem auf einem nicht ganz aktuellen OS läuft und läuft und läuft. (Ich selbst verwende auch nur Version 2.0) @exilant: Falsche Anrede im zweiten Part. Zitat:
Ich selbst arbeite zwar nicht mit Delphi-Prism, sehe aber keinen großen Umstiegsaufwand (.Net-Kenntnisse vorausgesetzt). Wie ich schon sagte, die große Stärke von .Net liegt in dem einfachen Zusammenspiel von Assemblies (was die Verwendung unterschiedlicher Sprachen ermöglicht) |
AW: Neues Projekt unter .Net: c# oder Prism
Zitat:
Nach dem Neuschreiben soll die Anwendung durchaus wieder mehrere Jahre und Windows-Versionen überleben... Ich habe bereits erste Erfahrungen unter C# und VS 2010 gemacht. Mir scheint aber zB die WPF zu komplex für diese Anwendung bzw. zu umfangreich. Die neue Anwendung soll zwar durchaus mehrschichtig werden, doch diese Schichten müssen nicht auf unterschiedlichen Servern laufen mit Lastverteilung und wasweissichnochalles. - WinForms für die Präsentation - ObjectPascal für die BusinessLogic - MySQL oder Interbase für die Datenhaltung Und das ganze eben unter Prism. Hat Prism eurer Meinung nach Zukunft? Kann man sich das leisten darauf zu setzen oder eben nur wenn man tonnenweise Pascal-Kode retten muß? Welche Vorteile hat eine Backoffice-Anwendung (Kundenverwaltung, Vertragsverwaltung, Buchungsverwaltung, Serienbriefe, ...) von WPF? Reicht da nicht WinForms? Oder ist diese Technologie auch schon wieder auf dem sterbenden Ast? Schwierige Fragen... ;-) |
AW: Neues Projekt unter .Net: c# oder Prism
Zitat:
|
AW: Neues Projekt unter .Net: c# oder Prism
Zitat:
Nach dem Neuschreiben soll die Anwendung durchaus wieder mehrere Jahre und Windows-Versionen überleben... Zitat:
Zitat:
|
AW: Neues Projekt unter .Net: c# oder Prism
Zitat:
Aber mal so ein paar Vergleiche zwischen der Oxygene-Sprache in Prism und C#: Aspektorientierte Programmierung kann C# nur mit viel Infrastruktur und komplizierten Post-Build-Prozessen. Oxygene hat das im Bauch. Class Contracts ist auch so ein Thema: In C# ist das mehr oder weniger in .NET 4.0 im Framework so hingefrickelt. Aber richtiger Compiler-Support sieht anders aus (so wie in Prism). Mal davon abgesehen, dass auch dieses Jahr wieder einige Features rauskommen, die C# so nicht hat und die da auch nicht abzusehen sind. ;-) Technologisch / was die Sprachfeatures angeht ist man mit Prism auf jeden Fall weiter vorne dran. Noch ein Vorteil: Die Business-Klassen die man mit Prism schreibt kann man sofern bedarf besteht mit Cooper dann auch in Java Bytecode compilieren. Die Frage ob .NET oder Java stellt sich also nicht mehr, die Sprache bleibt immer die gleiche: Oxygene. Zu den Technologien: Windows Forms ist schon seit Jahren abgekündigt und wird von MS nicht großartig weiter entwickelt. Das hält die Komponentenhersteller aber nicht davon ab hier immernoch kräftig weiter zu arbeiten. WPF ist genial, wenn man wirklich coole GUI's bauen will - aber da sollte dann tatsächlich ein Designer ran. Ich habe noch kein WPF-Gui von einem Nicht-Designer gesehen das taugt und nicht nach 'so würde ich es mit Windows Forms machen' aussieht ;-) |
AW: Neues Projekt unter .Net: c# oder Prism
Ich würde im ersten Schritt Paradox loswerden und durch eine DB ersetzen, die auch von dot.NET hinreichend gut unterstützt wird.
Dann hast Du eine Lösung, die für die nächsten 10 Jahre lauffähig ist (behaupte ich einfach mal)- Falls Du auf dot.NET umsteigen willst, dann würde ich persönlich die Standardsprache C# nehmen, denn wer weiss schon, ob Prism in 10 Jahren noch unterstütztz wird. Hier fängt aber schon der Glaube an, denn es wäre ja auch möglich, das Microsoft in 10 Jahren pleite ist und man nur noch für Android, ChromeOS oder die Klaut entwickelt. Am wahrscheinlichsten ist jedoch, das C# noch lange Zeit zu gebrauchen ist und weiterentwickelt wird. |
AW: Neues Projekt unter .Net: c# oder Prism
Moin moin Pascal,
da ich zu wissen glaube, worum es bei der Anwendung geht mein Vorschlag: RAD-Studio XE2 (welches wohl in den nächsten Wochen erscheinen wird). Gerüchten zu Folge wird es wohl einen Cross-Compiler geben, der unterschiedliche Plattformen (nicht nur Windows) zugänglich macht. Und für den Web-Teil das im RAD-Studio enthaltene Prism. Tja, und als Datenbank vielleicht MS SQL-Server, den es auch in einer kostenlosen Version gibt. |
AW: Neues Projekt unter .Net: c# oder Prism
Mit FireBird kann Delphi/.Net auch recht gut
|
AW: Neues Projekt unter .Net: c# oder Prism
Also schon mal auf keinen Fall WinForms! Falls dir die Möglichkeiten von Silverlight reichen das, ober dann eben WPF. Mit einem MVVM Framework geht die Arbeit schnell von der Hand, wenn man sich erst mal dran gewöhnt hat (Konzeptorientiertes Arbeiten ist in Delphi ja eher selten).
Als Datenbank würde ich entweder MS SQL Server (Express falls lokal) oder Firebird nehmen. Geschäftslogik bleibt dir überlassen. Ich persönlich würde wenn man schon alles wechselt auch auf C# wechseln, gerade weil man dann nicht jedes Beispiel erst mal übersetzen muss. Es würde sich ggf. auch lohnen über eine verteilte Architektur mit z.B. Workflow-Services nachzudenken, außer natürlich du brauchst Offline-Access. Mag erstmal oversized klingen, aber theoretisch kannst du dann auch beliebige Frontends davor setzen. |
AW: Neues Projekt unter .Net: c# oder Prism
So wie es in der Gerüchteküche von MS zu W8 klingt, geht es wohl in die Richtung GUI Oberfläche auf WEB-Basis (HTML5) und die Bussineslogik in Net.
Ob C# oder Prism oder Delphi würde ich von der Qualifikation und Alter der Programmierer abhängig machen. Wenn jahrelange Erfahrungen in Delphi/Pascal und tonnenweise Delphicode vorhanden ist, dann ist es effektiver bei Pascal zu bleiben. Ob Net oder nativ muss man abwarten, was XE2 bringt. Hier habe ich durchaus meine Bedenken. Neue Technologien aus der Delphirichtung gingen bisher mehr oder weniger immer schief. Ich möchte mich nicht gern auf ein Framework oder ähnliches einlassen, wo ich nicht weis, ob es das nächstes Jahr noch gibt. (Blackfisch,CLX) Prism dürfte insgesamt zukunftssicher sein, da ich zukünftig für 2 Plattformen (Net,Java) entwickeln kann und mit C# auf Assembly Basis linken kann. Insgesamt würde ich mit der Entscheidung bis zum Herbst warten, was sich mit Delphi tut. Native Programme haben durch auch noch ihren Reiz. Auf Basis der jetzigen VCL, würde ich keine Neuentwicklung mehr anfangen. Gruß Peter |
AW: Neues Projekt unter .Net: c# oder Prism
Zitat:
![]() |
AW: Neues Projekt unter .Net: c# oder Prism
|
AW: Neues Projekt unter .Net: c# oder Prism
Zitat:
|
AW: Neues Projekt unter .Net: c# oder Prism
Zitat:
Zitat:
Aber mir schwante schon, dass in C# die Zukunft liegt... |
AW: Neues Projekt unter .Net: c# oder Prism
Zitat:
Mensch, dass Du aber auch prompt über meinen Thread stolperst... Schon ist die Anonymität dahin... :roll: :lol: Ich brauche ja eigentlich weder Cross-Plattform noch Web-Interface. Multi-Layer Architektur, ja, Multi-Tier, nein. So wie ich den Thread bisher verstehe lohnt sich prism nur, wenn viel Delphi-KOde übernommen werden soll. Das ist ja bei mir nicht der Fall. Ich dachte halt, dass sich mit Prism auch die Lernkurve weniger steil gibt... Vielleicht sollte ich das ja auch vom Preis abhängig machen. VS2010 ist ja auch nicht geschenkt. Was kostet eigentlich eine "vernünftige" Version von Prism??? Bin übrigens Ende nächster Woche bei der ISS, dann können wir ja direkt darüber reden! Bis dann! |
AW: Neues Projekt unter .Net: c# oder Prism
Zitat:
Zitat:
|
AW: Neues Projekt unter .Net: c# oder Prism
Zitat:
|
AW: Neues Projekt unter .Net: c# oder Prism
Zitat:
Zitat:
Zitat:
Zitat:
|
AW: Neues Projekt unter .Net: c# oder Prism
Zitat:
|
AW: Neues Projekt unter .Net: c# oder Prism
Zitat:
Den Einarbeitungsaufwand in die .NET Plattform und die .NET Klassen hast Du so oder so. Du sparst Dir mit Prism das Lernen der C#-Syntax, und Du hast mit Oxygene eine Sprache die zudem noch moderner ist und mehr Features mitbringt als C# es tut. Und Du hast mit Prism eine Lösung, die auf Cross-Plattform getrimmt ist. Für MS C# gibt es keinen offiziellen Support für Mono. Für Oxygene schon. Mit C# kannst Du nichts für Java machen. Mit Oxygene schon (und mit Oxygene hat man in Java sogar Properties ;-) ). Es ist halt nicht mehr das Pascal von vor 40 Jahren (war doch irgendwann Anfang der 70er, oder?), sondern Oxygene ist eine moderne Sprache, die einem die Arbeit mit modernen Plattformen leichter macht, ales es die Haussprachen selber tun. Es gibt keinen Grund, sich initial den zusätzlichen Aufwand einer komplett anderen Syntax anzutun. Später kommt das von alleine, aber die Zeit kann man sich zu Beginn schonmal sparen. |
AW: Neues Projekt unter .Net: c# oder Prism
Zitat:
Wie sieht es mit Fremdkomponenten für Prism (z.B. die von Developer Express) aus? Bekommt man das auch für Prism? Frank |
AW: Neues Projekt unter .Net: c# oder Prism
Zitat:
Möchte ich als Programmierer arbeiten, bin ich nicht schlecht beraten C# zu beherschen. Das lernt man am besten bei der Realisierung eines Projektes. Darf aber nicht übersehen, das die Lernkurve den Fortschritt des Projektes erheblich verzögern kann. Erfolgt die Programmierung nebenbei oder in Eigenregie (z.B. selbstständig), dann ist oft dem Auftraggeber die Programmiersprache eher egal. In diesem Fall würde ich bei Pascal bleiben. Wobei ich allein aufgrund der zukünftig möglichen Plattformen eher zu Prism bzw. seinem Nachfolger tendiere. Allein über die JVM bin ich auf fast allen Plattformen. Ob Delphi das jemals kann? Interessanter ist sicherlich, wie das Projekt realisiert werden soll und ob hier mehrschichtig in der klassischen Variante noch optimal ist. Denkbar wäre z.B. durchaus eine GUI in einer beliebigen Sprache und die gesamte Verarbeitung auf den Server zu legen. Ich experimentiere im Moment mit einem Lösungsansatz mit Firebird. Hier aktiviert eine durch Trigger aufgerufene stored Procedure ein externes Bearbeitungsprogramm das Datenänderungen bearbeitet. Gruß Peter |
AW: Neues Projekt unter .Net: c# oder Prism
Zitat:
In der Tat würde ich natürlich auf solche Komponentenbibliotheken zugreifen wollen, doch gerade DEV Express gibt's doch auch für .NET. Dann sollten das doch in der Visual Studio Shell einbindbar und in einer Prism-Anwendung verwendbar sein, oder? |
AW: Neues Projekt unter .Net: c# oder Prism
Zitat:
Alles, was echtes .NET ist (ADO.NET, Entity Framework, ASP.NET, ASP.NET MVC, NHibernate, Spring.NET, Nant, kommerzielle Komponenten, Open-Source-Bibliotheken) funktioniert mit Prism. Auch alles was mit Prism erstellt wird kann von C#, VB.NET, IronRuby, IronPython, F# und wie die ganzen anderen .NET-Sprachen da draussen noch heissen genutzt werden. Einschränkungen gibt es potentiell da, wo es um Quellcode-Generierung und/oder -Parsing geht und das nicht über CodeDom oder Code.Emit gemacht wird. Webservice-WSDL's in Oxygene-Code generieren geht z.B. auch einwandfrei, obwohl das ja auch Code-Generierung ist. Der einzige Wermutstropfen sind tatsächlich z.B. Refactoring Tools von irgendwelchen anderen Anbietern. Die gehen in aller Regel nicht, weil die spezifisch für C# und ggf. VB geschrieben sind. Das geht dann aber auch nicht mit F#, was ja angeblich ein offizieller 'First Class Citizen' in der .NET Umgebung von Microsoft ist. Von daher relativiert sich das ein bisschen. |
AW: Neues Projekt unter .Net: c# oder Prism
Zitat:
Zitat:
:lol: |
AW: Neues Projekt unter .Net: c# oder Prism
@all: vielen Dank für die rege Diskussion und die vielen Anregungen! :thumb:
Ich denke ich werde wohl doch direkt in C# beginnen. Die Erfahrungen die ich damit mache sind auf dem Markt gefragter und für die Zukunft sicherer... Allerdings... Klingt Delphi Prism immer noch sehr verlockend... :gruebel: Letztlich bräuchte man wirklich eine :glaskugel: um sowas zu entscheiden... |
AW: Neues Projekt unter .Net: c# oder Prism
Zitat:
![]() |
AW: Neues Projekt unter .Net: c# oder Prism
Ein paar Fragen zu Delphi Prism (nicht nur aber auch an Phönix)
1. Wie hoch ist die Wahrscheinlichkeit (im Vergleich zu einer von MS unterstützten quasi-standard-Sprache), das Prism die nächsten 10 Jahre übersteht? Wer außer RemObjects beteiligt sich an der Unterstützung? 2. Wenn 99% der Zeit beim Umstieg auf dot.NET sowieso mit dem Kennenlernen der .NET-Library drauf geht, wieso dann nicht die letzten 1% in das erlernen einer neuen Syntax stecken? Die C#-Community ist doch deutlich größer und eigentlich unterscheiden sich Prism und C# nur durch die Schlüsselwörter (s.u.) *räusper* Und damit nicht der Verdacht aufkommt, ich würde was gegen die Sprache haben, hier noch eine Frage zu C# (an Microsoft): 1. Wieso lasst ihr euch von einer vergleichsweise kleinen Firma wie ein Tanzbär an der Nase durch die Entwicklermanege ziehen, wenn es um neue Sprachfeatures und Innovationen geht? :mrgreen: Ich hab mich übrigens für C# entschieden (wegen 2) und meinem Motto: Öfter mal was Neues. |
AW: Neues Projekt unter .Net: c# oder Prism
Zitat:
Zitat:
|
AW: Neues Projekt unter .Net: c# oder Prism
Zitat:
Zweitens steht dort VOR dem *räusper* ein "(s.u.)" was gemeinhin als "siehe unten" übersetzt werden kann und einen Verweis auf ein Zugeständnis dessen ist, was Du mit anderen Worten aber dennoch überflüssigerweise wiederholt hast. Dein Beitrag beantwortet also einerseits eine von mir nicht gestellte Frage und ist andererseits eine Tautologie. Ich halte dies für 'füllend' aber nicht unbedingt 'inhaltlich wichtig', mit Verlaub. Im Übrigen müsstest Du mir bitte "weit mehr" zumindest ansatzweise quantifizieren. Ich will um Gottes willen keinen Glaubenskrieg anzetteln, sondern nur die Fragen stellen, die sich jeder Controller stellt, der mit dem Gedanken spielt, Prism statt C# einzusetzen. Antworten wie deine sind hierbei nicht zielführend. |
AW: Neues Projekt unter .Net: c# oder Prism
Zitat:
Und es gibt auch eine ganz klare Aussage von Marc: Sollte es RemObjects irgendwann nicht mehr geben, wird Oxygene opensourced, um niemandem die Investition in das Produkt 'wegzunehmen' oder ihn im Regen stehen zu lassen. Zitat:
Zitat:
Wenn man sich mal anschaut dass es Async in Oxygene schon über ein Jahr lang gab, bis Microsoft was ähnliches für C# 4.0 erstmal angekündigt hat, und man dann noch bedenkt dass die Oxygene-Lösung auch auf .NET 2.0 funktioniert und kein .NET 4.0 braucht, dann ist über ein Jahr Technologievorsprung und die eingebaute 'Rückwärtskompatibilität' hier Gold Wert. Die Frage nach wieviel Zeit ein Oxygene-Entwickler bei Threading-Code im Vergleich zu einem C# Kollegen eingespart hat (nicht nur beim Coden sondern insbesondere beim Debuggen, weil der Compiler eben keine Fehler beim Thread-Synchronisieren machen kann, der Entwickler eben schon) lässt sich in dem Jahr wahrscheinlich schon in Mannmonaten messen. Class Contracts haben knappe 4 Jahre gebraucht bis sie in C# drin waren, und dann können die noch nichtmal so viel wie die in Oxygene. Das heisst Der Oxygene-Entwickler hat in den letzten 4 Jahren an Test-Code ungeheuer viel gespart im Gegensatz zum C#ler. AOP kann C# auch nach inzwischen 3 Jahren immer noch nicht und wird es auf absehbare Zeit auch nicht nativ können (auch nicht in VNext). Was ein C#ler hierfür an Infrastruktur und Post-Buidl prozessen aufsetzen muss sind auch Manntage, die bei Oxygene einfach entfallen. Das ist mit den Fix-It's, Ducktyping und sonstigen Oxygene 5 Features nicht anders. Es ist alles eine Frage der Produktivität. Mittels 'notify' spare ich mir für jede Klasse die INotifyPropertyChanged implementieren soll regelrechte Massen an Code (während der C#ler noch die ganzen Notification-Aufrufe für seine Properties programmiert habe ich meine Klasse fertig), und nach Konvertierungen von größeren C# Projekten kann man im Schnitt zwischen 15% und 30% an Codezeilen sparen, die man weniger schreiben muss, Und wenn man dann noch weiss, was ich weiss aber leider noch nicht sagen darf, dann wird man sich für wissenschaftliche / mathematische Anwendungsgebiete in spätestens einem Jahr massigst in den Hintern beissen, wenn man auf C# gesetzt hat. ;-) Zitat:
|
AW: Neues Projekt unter .Net: c# oder Prism
Zitat:
|
AW: Neues Projekt unter .Net: c# oder Prism
Zitat:
![]() |
AW: Neues Projekt unter .Net: c# oder Prism
Hallo Phönix.
Das sind die Antworten, die ich erwartet bzw. erhofft habe. Danke |
AW: Neues Projekt unter .Net: c# oder Prism
Zitat:
![]() |
AW: Neues Projekt unter .Net: c# oder Prism
Ach noch was...
Lohnt sich die "Enterprise"-Version von Prism in meinem Fall? Anbindung an DB-Servern wie SQL-Server, MySQL und co. ist doch schon bei der "Professional" dabei, oder? Ausserdem würde ich wahrscheinlich eh NHibernate nutzen... |
AW: Neues Projekt unter .Net: c# oder Prism
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:18 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-2025 by Thomas Breitkreuz