Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi ASP.Net ? (https://www.delphipraxis.net/132744-asp-net.html)

stahli 18. Apr 2009 19:14


ASP.Net ?
 
Hallo zusammen,

nachdem ich mir jetzt nochmal den Stammtisch 1 Teil 2 angesehen habe, habe ich ein paar allgemeine Fragen zu ASP.Net.

Nutzt das schon jemand effektiv?
Kann man mal ein Beispiel im Netz sehen?
Welcher Provider bietet sich da für ein kleiners Projekt an (T-Online offenbar nicht, die stellen wohl nur komplette Server zur Verfügung / "QualityHosting" habe ich auf die Schnelle mal gefunden).

Ist es dann grundsätzlich möglich (wenn man sie dann hat - z.B. mit D2009) eine BlackFish-Datenbank auf dem Server abzulegen und den Treiber direkt im Projekt einzubinden?
Oder müsste man dann z.B. eine MySQL-Datenbank nutzen, die der Provider bereitstellt.

Ich kann das alles noch nicht recht einordnen - das Video macht aber zumindest Lust auf mehr...


Stahli

sniper_w 18. Apr 2009 20:34

Re: ASP.Net ?
 
Zitat:

Nutzt das schon jemand effektiv?
Ja, ich :).

Zitat:

Kann man mal ein Beispiel im Netz sehen?
Z.B. eurohandball oder ehftv

r_kerber 18. Apr 2009 21:12

Re: ASP.Net ?
 
Zitat:

Zitat von stahli
Nutzt das schon jemand effektiv?
Kann man mal ein Beispiel im Netz sehen?

Schau mal unter meiner Signatur
Zitat:

Zitat von stahli
Welcher Provider bietet sich da für ein kleiners Projekt an (T-Online offenbar nicht, die stellen wohl nur komplette Server zur Verfügung / "QualityHosting" habe ich auf die Schnelle mal gefunden).

Danke DP! Kostengünstiger Webspace für DPler!.

stahli 18. Apr 2009 22:00

Re: ASP.Net ?
 
@ sniper_w + r_kerber

Also das ist schon sehr überzeugend!
Wenn man einen Server verfügbar hat, der das unterstützt, kann man sich als Delphiprogrammierer sicher nichts besseres wünschen.
Also ich werde mir das einmal ansehen. Welche Delphi-Versionen nutzt Ihr dafür. Wäre eine Investition in D2009 empfehlenswert?

Aber wie ist das nun: Delphi.Net ist tot???
Und wozu ist überhaupt .Net für Windowsprogrammierer gut? Ich könnte nur einen Nutzen für Webanwendungen (Ast.Net) erkennen.
Ich verstehe die Zusammenhänge nicht!?

BlackFish finde ich auf dem Video sehr interessant. Ob man das auf einem Webserver nutzen kann, könnt Ihr sicher auch nicht sagen...
Aber MySql wäre ja auch ok.


@ r_kerber

Der kostengünstige Webspace klingt natürlich SEEEHHHRRR interessant! :-)

[OT]
Dein Link zu dem Webspace ist nicht korrekt, kannst Du das noch korrigieren?
Hast Du Dir als Tischtennis-Fan einmal meine Turniersoftware angesehen? Ich würde mich freuen...
[/OT]


Stahli

jfheins 18. Apr 2009 22:07

Re: ASP.Net ?
 
Also: dass Delphi.net tot ist ist schon ganz gut so.

.net für Windowsprogramme ist ein Framework wie die Delphi VCL auch. Ob es besser oder schlechter ist, ist meistens Ansichtssache - aber es ist halt "moderner" als die Delphi VCL die ja seit nunmehr > 10 Jahren existiert.

In Webanwendunen ist asp.net halt nochmla ne Ecke cooler - was ich früher in PHP auswändig selbst programmieren musste, schreibe ich jetzt in einen Tag und gut is :) (unberspitzt formuliert)

Beispiel:
XML-Code:
<asp:calendar id="calendar1" runat="server" backcolor="White"
            bordercolor="White" borderwidth="1px" font-names="Verdana" font-size="9pt"
            forecolor="Black" height="190px" nextprevformat="FullMonth" width="350px">

           <OtherMonthDayStyle ForeColor="#999999" />

           <todaydaystyle backcolor="#CCCCCC" />
           
           <SelectedDayStyle
                             forecolor="White"
                             backcolor="#333399" />      
            <nextprevstyle font-bold="True" font-size="8pt" forecolor="#333333"
                verticalalign="Bottom" />
            <dayheaderstyle font-bold="True" font-size="8pt" />
            <titlestyle backcolor="White" bordercolor="Black" borderwidth="4px"
                font-bold="True" font-size="12pt" forecolor="#333399" />
      </asp:calendar>
P.S.: Du brauchst nicht zu investieren um asp.net zu entwickeln. VS-Express gibts kostenlos von Microsoft ;)
P.P.S.: Evtl. gibts auch einen entsprechende Turbo-Edition ... :gruebel:

stahli 18. Apr 2009 22:16

Re: ASP.Net ?
 
Aber ich bin ein alter Mann und ich habe schon immer mit Pascal (Delphi) gearbeitet.
Keine 10 Pferde ... :wink:

sniper_w 18. Apr 2009 22:29

Re: ASP.Net ?
 
Zitat:

Zitat von stahli
Also das ist schon sehr überzeugend!
Wenn man einen Server verfügbar hat, der das unterstützt, kann man sich als Delphiprogrammierer sicher nichts besseres wünschen.
Also ich werde mir das einmal ansehen. Welche Delphi-Versionen nutzt Ihr dafür. Wäre eine Investition in D2009 empfehlenswert?

Hmmm....Wir haben uns missverstanden. Meine Antwort bezog sich auf ASP.NET überhaupt als Framework für Webentwicklung und nicht auf Delphi.Net. Die 2 angeführte Beispiele sind nicht mit Delphi(.Net) entwickelt.

jfheins 18. Apr 2009 22:38

Re: ASP.Net ?
 
Wenn du lieber die Delphi-Syntax magst:

Mit Prism solltest du asp.net Webanwendungen erstellen können. Zumindest hab ich nen Link gefunden, der das sagt: http://edn.embarcadero.com/article/39168 ;)

Aber ich vemute mal, der Großteil der Beispiele für asp.net wird in C# geschriben sein und der Rest in VB.net ...

Oder su suchst nach einem Buch "asp.net mit Delphi Prism" oder so ;)

stahli 25. Apr 2009 23:46

Re: ASP.Net ?
 
Hi,

ich habe jetzt Delphi Prism (trial) installiert (war alles anderes als unproblematisch, da auf meinem Rechner SDK noch nicht vorhanden war und der Cassini-Server nicht sofort lief...) und spiele jetzt etwas herum. Nun dazu meine Fragen:

Dot.Net:
Ich erkenne hier keine Vorteile gegenüber Win32, zumindest wenn man ohnehin nur für Windows entwickeln will. Gibt es da dennoch Argumente, die ich übersehe? Sollte man also unter bestimmten Umständen neue Projekte doch auf Dot.Net aufbauen?

Asp.Net:
Ich habe bereits meine erste "Web-Anwendung" fertig ;-) Also es stehen ein paar Schalter und Eingabefelder im Browser...
Kann mir jemand sagen, wie ich jetzt unter Prism eine Datenbank erstellen und an diese Asp.Net-Anwendung anbinden kann? Matt bietet ja einen Webserver mit MySql an. Das wäre also ein ganz guter Einstieg.
Ich finde zwar einige Auswahlmöglichkeiten für verschiedene Datenbankschnittstellen komme aber absolut nicht weiter.
Zu DBExpress und/oder BlackFish finde ich überhaupt nichts. Eigentlich hatte ich erwartet, dass ich als Datenbank nur BlackFish auswählen brauche und dann loslegen kann...

Gibt es dazu ein Tutorial oder noch besser ein (deutsches) Buch?

Stahli

fkerber 26. Apr 2009 00:05

Re: ASP.Net ?
 
Hi!

Von mir nochmal der korrekte Link zum günstigen Webspace:
http://www.delphipraxis.net/internal...t.php?t=156263


Ciao, Frederic

quendolineDD 26. Apr 2009 11:46

Re: ASP.Net ?
 
Zitat:

Zitat von fkerber
Hi!

Von mir nochmal der korrekte Link zum günstigen Webspace:
http://www.delphipraxis.net/internal...t.php?t=156263


Ciao, Frederic

Der Link führt in diesen Thread.

MrSpock 26. Apr 2009 11:52

Re: ASP.Net ?
 
Jetzt nochmal mit dem richtigen Link zum günstigen Webspace bei Matt.

Meflin 26. Apr 2009 12:08

Re: ASP.Net ?
 
Zitat:

Zitat von stahli
Dot.Net:
Ich erkenne hier keine Vorteile gegenüber Win32, zumindest wenn man ohnehin nur für Windows entwickeln will. Gibt es da dennoch Argumente, die ich übersehe? Sollte man also unter bestimmten Umständen neue Projekte doch auf Dot.Net aufbauen?

Du hast eine wirklich riesige Library zur Verfügung, in der alles mögliche schon implementiert ist (z.B. Regular Expressions, HTTP/FTP/SMTP/.../SSL-Support, Hashtables, Dictionaries, uvm)

Und dann natürlich noch Schmankerl wie Bei Google suchenLINQ ;)

Und vermutlich noch vieles andere...

Scooty78 28. Apr 2009 21:00

Re: ASP.Net ?
 
Nur damit keine falschen Hoffnungen erweckt werden.
Codegear hat mit Delphi 2007 die .NET Variante eingestellt.
Diese war in der gewohnten IDE untergebracht und damit auch sehr buggy :evil:
Der Vorteil war für die Win32 aber die VCL.NET die fast alle "alten" Delphi Befehle
unterstütze!
Im Rad Studio 2009 ist nun Delphi Prism enthalten, Delphi Prism nutzt als IDE VS 2008
und lehnt sich SEHR stark an C# an. Die alte VCL.NET wird nicht mehr unterstützt und
kannst Du bei Problemen eigentlich eher in der C# Ecke nachschauen als bei Delphi Win32.

Zusammengefasst Delphi Prism ist zwar geil, aber mal einfach so umsteigen ist nicht, da
darf mann sich wieder neu einarbeiten. Wenn mann aber das .NET Framework schon kennt
ist der Einstieg nicht mehr so schwer!

stahli 30. Apr 2009 13:24

Re: ASP.Net ?
 
So, dann will ich mal wieder Laut geben ;-)

Also der Einstieg in Asp.Net + BlackFish ist gemacht - und das ist alles SEHR vielversprechend. Der Umstieg war allerdings sehr schwierig und undurchsichtig.

Falls jemand ähnliches vor hat, hier einmal der Versuch einer Zusammenfassung:
(aus der Erinnerung heraus und ohne Anspruch auf Vollständigkeit und Korrektheit)

* Delphi Prism
- Testversion von Codegear geladen
- für Installation Firewall + Virenscanner komplett ausschalten (sonst gab es immer Probleme)
- Prism lädt dann bei Bedarf automatisch auch Visual Studio von Microsoft

* Cassini-Webserver
- wird mit Delphi mitgeliefert
- bekam ihn nicht zum laufen
- musste erst SDK (siehe nächster Punkt) installieren
- dann Cassini durch Build.bat erzeugen und dann installieren
- ab da lief er

* SDK
- damit Prism bzw. der Cassini-Server läuft muss das SDK (Entwicklerumgebung von Microsoft für .Net) geladen und installiert werden
- ebenfalls Firewall ausschalten
- SDK war bei meinem Vista nicht standardmäig dabei - muss man sicher immer extra laden

* BlackFisch
- habe Testversion von Codegear geladen
- über den BlackFish-Explorer konnte ich schnell eine Tabelle anlegen
- ich bekam aber keine Verbindung vom Prism zu BlackFish
- UML-Design (graphisches Design und Aufbau von Datenbanken) ist kostengünstig für BlackFish wohl nicht zu haben (in RAD Studio 2009 Architect möglich)

* Prism + BlackFish
- Prism lief dann, BlackFish war aber nicht dabei
- ich hatte es immer so verstanden, dass BlackFish schon bei Prism dabei ist - stimmt offenbar nicht
- habe Codegear (in Langen) angefragt und schnelle, aber rel. unscharfe Rückinfos erhalten
- BlackFish gibt es als Prof + Enterprise
- BlackFish Ent. kann mit Prism genutzt werden und ist in RAD Studio 2009 (allen Versionen) dabei
- also habe ich BlackFish deinstalliert und Testvers. von RAD Studio 2009 geladen (BlackFish wird als Dienst automatisch gestartet)
- Zugriff ging von Prism aus immer noch nicht.
- altes Prism deinstalliert und neues (das bei RAD Studio 2009 dabei ist) installiert - alles perfekt! :-)

* Asp.Net + BlackFish
- Testprojekt mit Datenbankanbindung erstellt
- gleich sehr vielversprechend!
- dann in SQL-Select WHERE-Klausel eingebunden
...wie kriege ich jetzt den Wert für meinen Parameter übergeben?
...Wert := TextBox1.Text;
...SqlDataSource.SelectParameters(irgendwas und so weiter).AsString := Wert
...ich habe echt STUNDEN gesucht
...dann irgendwo im Netz einen Hinweis gefunden wie einfach das geht:
...im SQL-Dialog gibt man die Where-Parameter an und GLEICH DORT, dass der Wert aus der TextBox1 als Parameter genommen werden soll
...jetzt kann ich im Eingabefeld einen Text eingeben und der wird AUTOMATISCH als Parameter für die SQL-Abfrage verwendet
...das alles funktioniert OHNE EINE EINZIGE ZEILE Quelltext (selbst geschriebenen jedenfalls)!!!
- einfacher kann man Web-Anwendungen sicher kaum erstellen
- also der Umstieg ist nicht einfach aber lohnenswert (mindestens für Asp.Net)

Das Problem:
- Es gibt keine Bücher zu Delphi Prism + BlackFish
- habe mir das o.g. "Die .NET-Technologie vom dpunkt.verlag" gekauft - die beispiele basieren auf C#, aber das Buch beschreibt die Zusammenhänge anscheinend SEHR GUT (mein erster Eindruck :-) )

Fazit:
- Wer eine Web-Entwicklung plant, sollte sich das unbedingt anschauen!

Meine aktuellen Fragen:
- Nutzung einer "eingebundenen" BlackFish-Datenbank auf einem Webserver ist lt. Codegear offenbar möglich (wie gesagt, die Antwort war etwas unscharf) - weiß jemand genaueres?
- Für eine Win32-Anwendung lässt sich ja auch BlackFish "einbinden" und bis zu 4 Nutzer können gleichzeigt zugreifen. Würde das auch auf XP-Rechnern laufen, wenn kein .Net nachinstalliert ist? BlackFish ist ja offenbar .Net-basiert!?
- Lassen sich in Asp.Net-Projekte (im Pas-Teil) Win32-Komponenten einbinden? Ich möchte konkret die VPE benutzen um Reports bzw. PDF´s zu erzeugen. Könnte man sonst auf einem Webserver eine DLL oder Exe ablegen und die aus der Asp.Net-Anwendung mit Parameterübergabe aufrufen um die PDF-Erstellung dort abwickeln zu lassen? Die Asp.Net-Anwendung müsste dann einen Link auf die erstellte PDF weitergeben...


Stahli

Phoenix 30. Apr 2009 13:37

Re: ASP.Net ?
 
Zitat:

Zitat von stahli
Meine aktuellen Fragen:
- Nutzung einer "eingebundenen" BlackFish-Datenbank auf einem Webserver ist lt. Codegear offenbar möglich (wie gesagt, die Antwort war etwas unscharf) - weiß jemand genaueres?

- Für eine Win32-Anwendung lässt sich ja auch BlackFish "einbinden" und bis zu 4 Nutzer können gleichzeigt zugreifen. Würde das auch auf XP-Rechnern laufen, wenn kein .Net nachinstalliert ist? BlackFish ist ja offenbar .Net-basiert!?

- Lassen sich in Asp.Net-Projekte (im Pas-Teil) Win32-Komponenten einbinden? Ich möchte konkret die VPE benutzen um Reports bzw. PDF´s zu erzeugen. Könnte man sonst auf einem Webserver eine DLL oder Exe ablegen und die aus der Asp.Net-Anwendung mit Parameterübergabe aufrufen um die PDF-Erstellung dort abwickeln zu lassen? Die Asp.Net-Anwendung müsste dann einen Link auf die erstellte PDF weitergeben...

Aiaiaiai.. so viele Fragen, so wenig Threads...
Aber okay:

Generell gilt: Um BF laufen zu lassen muss mindestens das .NET Framework 2.0 installiert sein. Also wo die BF-DB laufen soll muss .NET laufen. Wenn Du das nicht willst schau Dir lieber Firebird an. ADO.NET ist ADO.NET - egal welcher Datenbank-Provider da hinten dran läuft. Das ist das schöne daran ;-)

Und ja, BF lässt sich ohne weiteres in einer ASP.NET Anwendung in Process nutzen. Wobei die Installation als Dienst weniger Probleme machen sollte.

Zur dritten Frage: Eine Win32 Delphi-Komponenten kann man NICHT in ein ASP.NET Projekt ziehen und nur mit größeren Umwegen (z.B. mittels Hydra) in ein Windows Forms Projekt.

Der letzte Ansatz ist vielversprechender (und um längen einfacher): Eine Win32 .dll kann man mittels P/Invoke mit ein paar Zeilen aus .NET heraus ansprechen (sogar wenn die Rückgabe ein Byte-Stream ist), eine Win32 .exe ist mit Kommandozielenparameter in einer Zeile aufgerufen.

Was Reporting angeht, bringt .NET selber taugliche Komponenten mit, die auch von Haus aus PDF können. Okay, bestehende Reports sind natürlich ein sehr guter Grund das native Zeug weiter zu benutzen, keine Frage. ;-)

stahli 30. Apr 2009 13:52

Re: ASP.Net ?
 
Zitat:

Aiaiaiai.. so viele Fragen, so wenig Threads...
Aber okay:
Du bist lieb ;-)

Zitat:

Also wo die BF-DB laufen soll muss .NET laufen.
Hatte ich inzwischen schon befürchtet. "Eins für alles" wäre schon schön gewesen...

Zitat:

Und ja, BF lässt sich ohne weiteres in einer ASP.NET Anwendung in Process nutzen. Wobei die Installation als Dienst weniger Probleme machen sollte.
Das müsste ja der Provider (Matt) lizenzieren - und offenbar ist das zu teuer.

Zitat:

Was Reporting angeht, bringt .NET selber taugliche Komponenten mit, die auch von Haus aus PDF können. Okay, bestehende Reports sind natürlich ein sehr guter Grund das native Zeug weiter zu benutzen, keine Frage.
Nein, fertig ist noch nix. Ich kenne mich nur mit der VPE ganz gut aus. Also werde ich mir die PDF-Komponenten für .Net einmal anschauen...


Danke
Stahli

Phoenix 30. Apr 2009 14:04

Re: ASP.Net ?
 
Zitat:

Zitat von stahli
Zitat:

Und ja, BF lässt sich ohne weiteres in einer ASP.NET Anwendung in Process nutzen. Wobei die Installation als Dienst weniger Probleme machen sollte.
Das müsste ja der Provider (Matt) lizenzieren - und offenbar ist das zu teuer.

Ah, okay. In dem Fall ist es wohl wirklich besser, die Blackfish-Assembly zur Webanwendung zu stecken und 'in Process' als Server zu nutzen. Geht ja - mir dünkt ich habe sogar irgendwo in irgendeiner frühen Prism-Test-VM noch so ein Sample rumliegen. Aber da komme ich vor der Delphi-Live Konferenz nicht mehr dazu, musst also bis Mitte Mai warten oder selber experimentieren. Vielleicht kann Dir aber auch Thomas Pfister hierzu was sagen, der arbeitet öfter mit BF.

Zitat:

Zitat von stahli
Zitat:

Was Reporting angeht, bringt .NET selber taugliche Komponenten mit, die auch von Haus aus PDF können. Okay, bestehende Reports sind natürlich ein sehr guter Grund das native Zeug weiter zu benutzen, keine Frage.
Nein, fertig ist noch nix. Ich kenne mich nur mit der VPE ganz gut aus. Also werde ich mir die PDF-Komponenten für .Net einmal anschauen...

Auch okay ;-)
Die .NET Report-Komponente in der Toolbox ist der ReportViewer. Schau auch mal auf die Seite http://www.gotreportviewer.com/
Da sind Infos dazu drauf (die Samples sind zwar in C#, aber das ist ja wieder leicht zu übersetzen).

Ich habe nur festgestellt, dass diese eine Komponente leider ein Problem mit dem Prism-Designer hat. Also draufziehen -> Form kaputt. Ich möchte deshalb anraten, solange das noch nicht gefixt ist, das Gerät dynamisch im Code zu erzeugen und verwenden. Es ist sehr tauglich, kann wie gesagt nach PDF (und nach Word & Excel) exportieren und der Report Designer im Visual Studio ist auch sehr gut. Zumal der Report selber ein XML-Format hat und sehr flexibel einsetzbar ist.

Khabarakh 30. Apr 2009 15:55

Re: ASP.Net ?
 
Das wird jetzt höchstwahrscheinlich schmerzhaft für mich werden :mrgreen: , aber ich würde mir stark überlegen, ob ich mich wirklich jetzt noch in dieses Monster ASP.NET Webforms einarbeiten würde. ASP.NET MVC ist nun endlich final und was soll man sagen... Microsofties lieben es, die Community liebt es.

DotNetKicks besteht (neben jQuery :roll: ) gerade eigentlich nur noch aus solchen Beiträgen: Rob Conery: I Spose I’ll Just Say It: You Should Learn MVC

Wenn du einfach mal Schritt für Schritt sehen willst, wie es von 0 auf 100 beschleunigt ;) :
Free eBook: NerdDinner

Phoenix 30. Apr 2009 15:57

Re: ASP.Net ?
 
Es gibt freilich auch Templates für MVC für Prism. ;-)
Aber der Komfort mit Webforms geht halt flöten.

Scooty78 1. Mai 2009 19:01

Re: ASP.Net ?
 
zur PDF Erstellung kann ich Dir iTextSharp empfehlen, alles was mit PDf's geht kannst Du mit dieser Bibiothek machen und das beste ist, Sie ist absolut free!!

stahli 15. Mai 2009 22:40

Re: ASP.Net ?
 
Mal wieder ein Zwischenbericht für "Nachahmer":

Also ich habe ein Testprojekt Asp-Net + BlackFish-Datenbank lokal zum laufen bekommen.

Dazu hatte ich wie oben beschrieben, verschiedene Testversionen von Codegear installiert und nach einem "guten Gefühl" ;-) RAD Studio 2009 Prof gekauft.
(Übrigens bei better office, den Überweisungsbeleg gemailt und am selben Tag den Freischaltcode erhalten - besser geht es nicht!)

Das alte Testgeraffel habe ich deinstalliert (zumindest dachte ich das) und RAD 2009 installiert.
Damit konnte ich einige Tage gut arbeiten, bis ich auf einmal die Meldung erhielt, mein Delphi Prism bzw. BlackFish wäre nicht registriert.
Codegear hat mir empfohlen, die alten Produkte nach der Anleitung http://support.codegear.com/article/39426] http://support.codegear.com/article/39426[/url] zu deaktivieren.

Da mein Vista ohnehin einige Probleme hatte habe ich statt dessen den PC komplett neu installiert.
Vista machte wohl einige Probleme, aber RAD 2009 war insgesamt kein Problem.

Unbedingt Firewall und Virenscanner ausschalten. Zuerst SDK installieren, dann RAD Studio (dabei ist der BlackFish) und dann Delphi Prism (muss extra geladen werden, das bietet aber das Installationsmenü von RAD 2009 direkt an).

Der Cassini-Server war leicht zu starten:
Unter C:\Program Files\CodeGear\Delphi Prism\Bin findet sich der Ordner Cassini.
Den habe ich nach C:\ kopiert (ist aber sicher nicht notwendig).
Dort einfach CassiniOxygene.Exe starten.
Dann noch einen Ordner C:\Inetpub\wwwroot\OxygeneWeb erstellen und im Cassini-Fenster eintragen.
Cassini starten (sollte laufen) und wieder beenden.

Wenn jetzt mit Delphi Prism eine Asp.Net-Anwendung erstell wird, wird automatisch der Cassini-Webserver gestartet und die Anwendung im aktuellen Browser ausgeführt.

Die ganze Sache ist etwas gewöhnungsbedürftig und ein passendes Buch Mangelware (man muss halt sehen, wie man sich durch C#- und VB-Beispiele "wurschtelt") aber der Ansatz ist schon nicht übel.
So leicht (wenn man das Prizip erst mal verstanden hat) konnte man sicher noch nie Webanwendungen entwickeln.

Also Interessenten dient das vielleicht als Richtungsweise für eigene Versuche...

Stahli

stahli 15. Mai 2009 22:52

Re: ASP.Net ?
 
Liste der Anhänge anzeigen (Anzahl: 1)
Jetzt will ich aber selbst noch etwas fragen:

Lokal läuft mein Asp.Net-Projekt incl. BlackFish-Datenbank.
Auf "Matt´s Server" habe ich die Default-Seite auch bereits lauffähig.
Die Hilfe von Matt war wirklich super! Danke nochmal! :-)


Es mussten zwei Punkte berücksichtigt werden:

1) In der Web.Config musste eingefügt werden:
Delphi-Quellcode:
   <system.web>
    <customErrors mode="Off"/>   <-------------- dies
2) Im Menüpunkt "WebSite veröffentlichen" musste "Aktualisierbarkeit dieser vorkompilierten Site zulassen" DEAKTIVIERT werden. (Andernfalls konnte der Oxygene-behind-code vom Server nicht verarbeitet werden.)

Inzwischen startet die Web-Anwendung auf dem Server korrekt.
Jedoch ist ein Zugriff auf die BlackFish-Datenbank noch nicht möglich: "Der angeforderte .Net Framework-Datenprovider kann nicht gefunden werden. Er ist ggf. nicht installiert."
(siehe Bild)

Kann mir jedmand sagen, wie ich die BlackFish-Datenbank auf dem Server "in das Projekt eingebunden" nutzen kann?

Danke
Stahli

Phoenix 15. Mai 2009 23:12

Re: ASP.Net ?
 
Hast Du ein 'Website' Projekt oder ein 'Web Application' Projekt?
Du musst allerdings auf jeden Fall den Blackfish Provider (also die Zugriffs-Assembly) in der Web.Config registrieren. Wie das Prinzipiell funktioniert findest Du hier.

stahli 15. Mai 2009 23:42

Re: ASP.Net ?
 
1) ASP.NET-WebSite

2) Hmm, versuche ich mal zu verstehen...
Die Datenbank selbst habe ich noch nicht auf dem Server. Auf meinem ich noch direkt zu: E:\...
Das muss ich natürlich noch ändern in den selben Ordner wie die aspx-Datei - oder ohne Ordnerangabe...?
Aber die Fehlermeldung verstehe ich erst mal so, dass ein Zugriff auf die DB selbst noch gar nicht versucht wird...

Phoenix 15. Mai 2009 23:55

Re: ASP.Net ?
 
Zitat:

Zitat von stahli
1) ASP.NET-WebSite

2) Hmm, versuche ich mal zu verstehen...
Die Datenbank selbst habe ich noch nicht auf dem Server. Auf meinem ich noch direkt zu: E:\...
Das muss ich natürlich noch ändern in den selben Ordner wie die aspx-Datei - oder ohne Ordnerangabe...?
Aber die Fehlermeldung verstehe ich erst mal so, dass ein Zugriff auf die DB selbst noch gar nicht versucht wird...

Application wäre besser. Die WebApplication Projekte sind flexibler zu handeln.

Und ja, der Zugriff wird nicht versucht. Aber wenn die Anwendung ausgeführt werden soll, dann müssen alle verwendeten Assemblies vorhanden und auffindbar sein. Das heisst die assembly muss bei der Anwendung bei den Executables liegen und es muss in der Web.config registriert sein.

stahli 16. Mai 2009 01:16

Re: ASP.Net ?
 
Liste der Anhänge anzeigen (Anzahl: 1)
1) Ich weiß nicht, was Du mit WebApplication meinst...
Ich erstelle doch eigentlich eine Asp.Net-Application - meine ich.
Delphi Prism bietet die Möglichkeiten im Bild.
Mir ist jetzt noch aufgefallen, dass Net-Framework 3.5 voreingestellt ist. DerWebserver nutzt (wie ich das verstanden habe) 2.0.
Kann das ein Problem sein?

2) Ich habe hier einen Link gefunden, der auf das Thema eingeht. Anscheinend muss man auf dem Webserver erst noch explizit den BlackFish installieren und starten (ich dachte, eine DLL dazu legen würde reichen). Jetzt erscheint mir das ganze doch zu kompliziert :-(
Wäre es weniger aufwändig, MySQL zu benutzen? Das bietet "Matt" ja mit an.
BlackFish habe ich bísher eigentlich nur genutzt, weil es bei RAD 2009 mit dabei ist... Die DB unter MySQL neu anzulegen sollte eigentlich nicht das Problem sein.

Phoenix 16. Mai 2009 01:37

Re: ASP.Net ?
 
Zitat:

Zitat von stahli
1) Ich weiß nicht, was Du mit WebApplication meinst...
Ich erstelle doch eigentlich eine Asp.Net-Application - meine ich.
Delphi Prism bietet die Möglichkeiten im Bild.
Mir ist jetzt noch aufgefallen, dass Net-Framework 3.5 voreingestellt ist. DerWebserver nutzt (wie ich das verstanden habe) 2.0.
Kann das ein Problem sein?

WebSite <> WebApplication.
Du solltest nicht über Datei->Neu->Webseite gehen sondern über Datei->Neu->Projekt (!). Dort wählst Du aus Delphi Prism, Web, ASP.NET Webanwendung.
Diese Dinger unterscheiden sich gewaltig. Webapplikationen sind um längen flexibler als Websites. Insbesondere werden WebApplications als VisualStudio Solutions verwaltet und nicht nur als 'lose rumfliegendes Verzeichnis'. Du bist nicht auf das App_Code Verzeichnis angewiesen sondern kannst Deinen Code besser strukturieren. Du kannst hier auch Referenzen auf die benötigten Assemblies (Borland.Data.BlackfishSQL.LocalClient) leichter verwalten etc. Es sollte auf deinem WebSite-Verzeichnis in der Projektverwaltung eine Option 'Convert to Application project) geben. Damit sollte die Umstellung kein Problem sein.

Wegen der .NET Version brauchst Du Dir in aller Regel keine Gedanken machen.
.NET 3.5 ist die Runtime von .NET 2.0 plus ein paar Assemblies. Wenn Du z.B. LINQ nutzt, dann musst Du halt einfach noch die System.Core.dll zu Deiner Anwendung mit ausliefern. Bzw. entsprechend alle 3.5 Assemblies, die auf dem Zielrechner noch nicht vorhanden sind. Auch hier gilt wieder: Liegen die in einem Unterverzeichnis und sind in der WebApplication(!) referenziert werden die auch gefunden. Da es keine Projektdatei mit WebSite Projekten gibt geht das da halt nicht so einfach sondern nur mit viel Handarbeit.

Zitat:

Zitat von stahli
2) Ich habe hier einen Link gefunden, der auf das Thema eingeht. Anscheinend muss man auf dem Webserver erst noch explizit den BlackFish installieren und starten (ich dachte, eine DLL dazu legen würde reichen). Jetzt erscheint mir das ganze doch zu kompliziert :-(
Wäre es weniger aufwändig, MySQL zu benutzen? Das bietet "Matt" ja mit an.
BlackFish habe ich bísher eigentlich nur genutzt, weil es bei RAD 2009 mit dabei ist... Die DB unter MySQL neu anzulegen sollte eigentlich nicht das Problem sein.

Naja, Du musst die DLL dazu legen, den Provider (also das Assembly) registrieren (in der Web.Config) und den Connection String richtig setzen. Ein paar Hinweise dazu findest Du auch hier.

Prinzipiell ist der Aufwand für MySQL ähnlich hoch. Du brauchst den MySQL Provider, musst diesen referenzieren und anziehen. Nur die DLL musst Du bei Matt's Servern wahrscheinlich(!) dazulegen weil die (ebenso wahrscheinlich) schon im GAC registriert ist. Im prinzip schenkt sich beides nichts.

In der Global.asax kannst Du dann den Embedded Blackfish Server starten (dort gibt es ein Event wenn die Webanwendung hochfährt, das ist der richtige Zeitpunkt).

stahli 17. Mai 2009 13:27

Re: ASP.Net ?
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo Phoenix,

ich komme einfach nicht weiter :-(
Daher nochmal Nachfragen zum besseren Verständnis:

1) Diese WebApplication finde ich im Prism nicht (siehe Bild).
Ich würde jetzt erst mal bei Ast.Net-Website bleiben wollen - das läuft soweit wenigstens schon mal...

2) Auf meinem lokalen Rechner funktionierte ja bereits alles. Ich habe die Datenbankverbindung im Server-Explorer eingerichtet (mit Verweis auf einen festen Ordner auf der Platte).
In der Web.Config hat Prism das eingetragen:
Delphi-Quellcode:
<connectionStrings>
  <add name="E:\Programme\WebSiteEt\EtConnectionString" connectionString="host=LocalHost;user=sysdba;password=masterkey;database=E:\Programme\WebSiteEt\Et" providerName="Borland.Data.BlackfishSQL.LocalClient"/>
</connectionStrings>
Der Providername ist ja auch schon angegeben.
Frage1: Reicht das oder fehlt da noch etwas?

Nun habe ich den "Ordner" der Datenbank in der Web.Config geändert in "database=|DataDirectory|Et", so dass der Web-Unterordner App_Data verwendet wird. Lokal funktioniert das offenbar.
Delphi-Quellcode:
<connectionStrings>
  <add name="E:\Programme\WebSiteEt\EtConnectionString" connectionString="host=LocalHost;user=sysdba;password=masterkey;database=|DataDirectory|Et" providerName="Borland.Data.BlackfishSQL.LocalClient"/>
</connectionStrings>
Frage2: Ist das der richtige Weg, in der Web.Config herumzuändern oder gibt es dafür irgendwo Eigenschaften, die man einstellen kann/sollte?

Das Anlegen einer neuen Datenbankverbindung mit dem Zeichen "|" war im Server-Explorer nicht möglich.
Dass im Namen des ConnectionStrings noch diese alte Ordnerbezeichnung enthalten ist, sollte nicht stören, denke ich.
Frage3: Um diesem Connectionstring einen anderen Namen zuzuweisen, muss ich diesen auch in der Web.Config ändern und nachträglich an allen Stellen in der Default.aspx (alle SqlDataSource-Verbindungen) oder gibt es irgendwo eine Eigenschaft, wo ich den Namen zentral ändern kann (habe halt nichts gefunden)?


Auf dem Webserver erscheint noch der selbe Fehler: Der angeforderte .Net Framework-Datenprovider kann nicht gefunden werden. Er ist ggf. nicht installiert.

Im Bild "et" habe ich einmal alle Dateien aufgeführt, die im Projekt enthalten sind (teilw. doppelt, da ich nicht weiß, was wohin gehört).
M.E. muss eigentlich wohl nur die "Borland.Data.BlackfishSQL.LocalClient.dll" im bin-Ordner liegen.

Frage4: Muss ich die jetzt noch extra registrieren und/oder starten (wo und wie)?

Frage5: Wohin gehört die slip-Datei?


Danke für Deine Hilfe!
Stahli

stahli 17. Mai 2009 22:30

Re: ASP.Net ?
 
So Entwarnung! :-)

Es war sehr mühsam, sich alles zusammenzusuchen und alles habe ich auch noch nicht verstanden, aber der Blackfish läuft jetzt (eingebunden in meinem Projekt) auf "Matt´s" Server!

In der Web.Config musste der ConnectionString und der Datenprovider definiert werden und dann lief es :-)

Delphi-Quellcode:
<connectionStrings>
 
 
  <add name="BlackfishSqlAspNet" connectionString="database=|DataDirectory|XYZ.jds;user=sysdba;password=masterkey" providerName="Borland.Data.BlackfishSQL.LocalClient"/>
</connectionStrings>

<system.data>
  <DbProviderFactories>
    <remove invariant="Borland.Data.BlackfishSQL.LocalClient"/>
    <add name="BlackfishSQL Local Provider"
    invariant="Borland.Data.BlackfishSQL.LocalClient" description="Provider with inprocess database Server"
    type="Borland.Data.DataStore.DataStoreProviderFactory, Borland.Data.BlackfishSQL.LocalClient, Version=8.0.0.0, Culture=neutral, PublicKeyToken=91d62ebb5b0d1b1b"/>
  </DbProviderFactories>
</system.data>
In früheren Versuchen hatte ich im Formular den ReportViewer für Tests mit PDF verwendet und dann aber wieder gelöscht. In der Web.Config waren allerdings noch mehrere Einträge dazu enthalten, die ich einfach alle gelöscht habe. Ansonsten hätte das Projekt immer noch entsprechende Assemblies benötigt.

Die Veröffentlichung des Projektes sollte man auf eine lokale Platte durchführen (z.B. in einen Ordner "wwwXYZ") anstatt direkt über FTP. Das geht schneller und unproblematischer. Das Ergebnis aus diesem Ordner kann man dann mit einem FTP-Programm extra auf den Server schieben. Dann kann man auch selbst entscheiden, welche Dateien neu übertragen werden müssen. Außerdem kann es ansonsten Probleme geben, da der BIN-Ordner auf dem Server u.U. nicht gelöscht werden kann.

Beim Veröffentlichen des Projektes (auf die Platte) unbedingt "Aktualisierbarkeit dieser vorkompilierten Site zulassen" DEAKTIVIEREN, da sonst der Server später den "Delphi-Quelltext" nicht compilieren kann, jedenfalls nicht, wenn dort kein Oxygene-Compiler installiert ist.

Folgende Dateien müssen dann auf dem Server vorliegen:

[root]
Default.aspx
PrecompiledApp.config
Web.config

[App_Data]
Datenbank.jds
Datenbank_LOGA_000000000
Datenbank_LOGA_ANCHOR

[bin]
! App_Web_irgendwas.dll (neu nach jeder Kompilierung)
! default.aspx.irgendwas.compiled (neu nach jeder Kompilierung)
BlackfishSQLPro.slip (Lizenzdatei)
Borland.Data.BlackfishSQL.LocalClient.dll
Borland.Delphi.dll
Borland.VclRtl.dll
itextsharp.dll (falls man iTextSharp benutzt)

(Die Dateien in der root und die beiden ersten Dateien unter bin müssen immer neu übertragen und ersetzt werden.)

Soweit mein Ergebnis nach 3-4 Tagen Suche und Tests. Kann sein, dass noch etwas fehlt oder ungenau ist, aber mein Projekt läuft jetzt so :-)
Vielleicht hilft es ja anderen, etwas schneller zum Zuge zu kommen.

Danke nochmal an Phönix!

Stahli

PS: dieser Beitrag war sehr hilfreich

Phoenix 19. Mai 2009 15:35

Re: ASP.Net ?
 
Zitat:

Zitat von stahli
Beim Veröffentlichen des Projektes (auf die Platte) unbedingt "Aktualisierbarkeit dieser vorkompilierten Site zulassen" DEAKTIVIEREN, da sonst der Server später den "Delphi-Quelltext" nicht compilieren kann, jedenfalls nicht, wenn dort kein Oxygene-Compiler installiert ist.

In der Web.config kannst Du - ähnlich wie Du den Blackfish ADO.NET Datenbankprovider dann registriert hast - auch den Oxygene Compiler registrieren. Wie das geht steht hier. Dann musst der Compiler nicht explizit auf der Maschine installiert sein, sondern es reicht diesen dann als Assembly zur Webanwendung dazuzulegen.

stahli 20. Mai 2009 18:15

Re: ASP.Net ?
 
Ich habe das jetzt der Vollständigkeit halber mal probiert und
-RemObjects.Oxygene.CodeModel.dll
-RemObjects.Oxygene.Compiler.dll
mit in den BIN-Ordner kopiert und die Kompilierungscheckbox wieder aktiviert.

Oxygene kann wieder nicht übersetzt werden.
Soll aber für mich kein Problem sein, ich deaktiviere die Checkbox wieder - dann passt ja alles.

Stahli

Phoenix 21. Mai 2009 11:08

Re: ASP.Net ?
 
Wie gesagt - der Compiler muss in der Web.Config noch registriert sein. Ich müsste bei Gelegenheit mal ein Sample bauen das das alles demonstriert. Kommt irgendwann nach den Delphi-Tagen ;-)

stahli 21. Mai 2009 11:29

Re: ASP.Net ?
 
Oh, ja klar! :oops:
Ich wollte das nur mal schnell durchtesten - man sollte sich eben doch auch mal Zeit nehmen...

stahli 24. Mai 2009 20:31

Re: ASP.Net ?
 
Hi Phoenix,

ich habe inzwischen einmal versucht, den Compiler in der Web.Config einzubinden.
Der Abschnitt compilers wird jedoch nicht akzeptiert.

Du kannst ja vielleicht irgendwann einmal erklären, was man noch beachten muss.

Einen wirklichen Vorteil würde ich bei einer Umstellung aber letztlich nicht erkennen.
Offenbar muss man dann bei jeder neu compilierten Version lediglich 1 Datei weniger auf den Webserver übertragen.

Also scheint es bei beiden Varianten keinen gravierenden Unterschied zu geben...

Stahli

stahli 6. Jun 2009 08:55

Re: ASP.Net ?
 
Der Vollständigkeit halber nochmal zum Thema "Virtual Print Engine":

Die ist tatsächlich .net-fähig (habe ich "früher" nur alles nicht richtig deuten können :oops: ).

Also ich habe sie jetzt einmal im Prism installiert und in einem kleinen Test für dot.Net benutzt. Das ging sehr problemlos.

Zitat:

1.2.3 Installing the VPE .NET Component
After SETUP has been executed successfully, the .NET component is already installed on system
level. It is then available for all .NET development applications.
In order to place the VpeControl component onto the Toolbox of Visual Studio .NET, do the
following: Click onto the Toolbox, then "Components". Afterwards right click and choose
"Add/Remove Items". A dialog will appear. Scroll down until you see "VpeControl". Click the
checkbox to activate it. Afterwards click "Ok" to close the dialog. The VpeControl icon will
appear in the Toolbox under the "Components" category.

Für Asp.Net sollte es auch gehen, allerdings erschließen sich mir die Lizenzbeschränkungen nicht so richtig (ist jetzt aber auch egal, da ich mein Projekt mit iTextSharp-Pdf realisiert habe):
Zitat:

9.3 Server Licenses
This chapter does only apply to the platforms: Solaris, OpenSolaris, Aix and AS/400.
If any product is executed on servers, a special Server License per server must be acquired. The
prices are scaled upon the number of concurrent users. For details, please visit our websites at
www.IdealSoftware.com.
Definition of "server": a system for electronic data processing, that provides services for other
electronic data processing systems.
Definition of "execute": at least one of the redistributable files is executed by a CPU (processor) in
the memory of a server.
If a product is licensed as Server Version, its thread-safe code can be activated, which is essential
for server based multi-threaded applications (see also: “Multi-Threading” on page 113).
For the following products Server Licenses are not available:
· VPE Community Edition
· VPE Standard Edition
· VPE Enhanced Edition
IMPORTANT NOTE:
In order to protect VPE from misuse in server environments without a server license, the engine
keeps track of the number of calling threads and processes for each license key.
In environments without server licenses, a maximum of three processes or threads may use VPE
simultaneously with the same license key. If more than three processes try to open a VPE
document with the same license key, the licensing fails and VPE will behave like the trial version
and demo banners are shown.
Since VPE tracks the usage separately per license key, applications of different manufacturers
(which are using therefore different license keys) do not conflict with each other.
Important: the limitation only applies to different processes or threads. A single process or thread
may open and create an unlimited number of VPE documents simultaneously with the same
license key. If your application shall show multiple documents at the same time, do not use
different processes or threads, or limit the number of simultaneously running processes or
threads to 3.
Because the VPE .NET WebControl is intended to be used with ASP.NET on servers only, a
server license is required for this type of control. Without a server license demo banners will be
shown in created documents.
VPE also detects, if it is executed within the context of a Windows Service. As the name already
suggests, the main reason to execute VPE within a Service is to serve something. Therefore, if
VPE is executed within the context of a Windows Service, a server license is required. Without a
server license demo banners will be shown in created documents.
stahli


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:21 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