ASP.NET Web-Benutzer-Steuerelement-Bibliothek
Haben wir eine Reihe von Benutzer-Steuerelementen, wir würden wie um zu ziehen aus einer web-Anwendung und in einer separaten assembly/Bibliothek, und ich dachte, es wäre ganz einfach: erstellen Sie eine Bibliothek-Klasse, und ziehen Sie die ascx-und ascx.cs-Dateien in das Projekt, und kompilieren der DLL, um wiederverwendet werden zu unseren Anwendungen.
War dies nicht der Fall, jedoch.
Unser oberstes Ziel ist es, einen einzigen verteilbaren DLL (ähnlich wie Telerik vertreibt Ihre Steuerelemente), können wir werfen in jede beliebige web-Anwendung. Die Schritte hier: Drehen ein .ascx Benutzersteuerelement in einer Redistributable Custom Control waren sehr einfach zu Folgen, jedoch führt dies in vielen Dateien mit dem Namen controlname.ascx.guid.dll, was nicht das gewünschte Ergebnis. Ich konnte nicht einmal diese Arbeit sowieso, da haben wir zusätzliche Klassen, die kompiliert werden müssen, in die Versammlung.
Hat jemand erfolgreich erstellt eine web-Benutzer-Steuerelement-Bibliothek .NET (wir sind mit 3.5 auch hier)? Ich kann nicht scheinen zu finden, eine schöne Schritt-für-Schritt-Anleitung.
InformationsquelleAutor Keith | 2009-08-14
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Sie möchten, teilen Sie steuert unter Projekt, meine Erfahrung hat gezeigt, dass der beste Weg ist, um benutzerdefinierte bauen asp.net server-Steuerelemente anstelle von Benutzersteuerelemente. Benutzer-Steuerelemente sind gut für den Austausch innerhalb des Projektes, aber nicht über mehrere Dateien.
Zu diesem Zweck schlage ich vor, Sie bauen eine Reihe von benutzerdefinierten server-controls, die in einer Klasse-Bibliothek und verwenden, die auf alle Ihre Projekte.
Dieses Buch macht durchaus einen guten job zu erklären, die Grundlagen für das erstellen von server-Steuerelemente
Edit:
Ich bin derzeit an der Entwicklung einer .net-Webserver-Steuerelement-Bibliothek. Ich eigentlich nicht, Folgen Sie den Schritt-für-Schritt-Anleitung. Ich meist als mit dem Buch das ich oben erwähnt habe und die MSDN-Bibliothek + Reflektor, das ist ein großes Werkzeug für die Prüfung von bestehenden MS-server-Steuerelemente und aus Ihnen zu lernen.
Also Sie überlegen, das schreiben von benutzerdefinierten server-controls?
Ja, aber das problem liegt in der Tatsache, dass der Benutzer steuert derzeit mit asp.net Kontrollen in. Ich würde es vorziehen, nicht zu schreiben, das HTML zu emulieren eine ListView haben wir in einem Steuerelement, zum Beispiel.
Natürlich bist du mit asp.net controls. Das ist völlig in Ordnung. Sie imitieren das ListView-intern, indem Sie entweder direkt oder durch die Verwendung eines Repeater-Steuerelements. Erstellen von server-Steuerelemente nicht unbedingt schreiben das ganze Hml-rendering selbst. Wenn ich kombinieren anderen asp.ne Steuerelemente zusammen, die ich nur selten überschreiben der Render(...) für mich.
Ich habe derzeit nur accss über mein iPhone. Werde ich ein Beispiel heute Abend.
InformationsquelleAutor Juri
Ich weiß, das ist ein altes Thema, aber wenn jemand auf der Suche nach einer Lösung für die Schaffung wiederverwendbarer Benutzer-Steuerelement-Bibliotheken, es stellt sich heraus, es ist ziemlich einfach. Hier sind zwei gute Schritt-für-Schritt-Anleitungen, zusammen mit Quell-code:
Aus der MSDN: Drehen ein .ascx Benutzersteuerelement in einer Redistributable Custom Control
Vom Code Project: Geraden Weg zu schaffen ASP.NET user-controls-Bibliothek
Der zweite link bietet eine Lösung zu der mehrere dlls erstellt, indem das erste Glied.
InformationsquelleAutor 0x1mason
Fand ich das tutorial Erstellen und Verwenden von Benutzer-Steuerelement-Bibliotheken aber es scheint ein bisschen wie ein hack, wie es stützt sich auf eine post-build command line event kopieren Sie die Benutzer-Steuerelemente von einem Projekt zum anderen.
InformationsquelleAutor Daniel Ballinger
Etwas spät, gebe ich zu.
Erstellen Sie eine wiederverwendbare Bibliothek von Benutzer-Steuerelemente, erstellen Sie eine neue Web-Anwendung-Projekt, löschen alle Gerüste, fügen Sie eine (Anzahl von) user-control(s). Erstellen eines Web-Deployment-Projekt von der Web-Anwendung-Projekt, in das WDP-Eigenschaften, wählen Sie die option Merge alle Steuern, die Ausgabe und vergeben Sie einen Namen für die Bibliothek ein und sorgen dafür, dass diese website aktualisiert werden, wird NICHT überprüft.
Bauen die WDP und verwenden den Reflektor zu prüfen, die generierte Bibliothek; Sie werden sehen, dass es enthält eine ASP-namespace und die Typen, die Sie sorgfältig ausgearbeitet wurden umbenannt, d.h. usercontrol_ascx. In der Ziel-website(s) Verweise hinzufügen, um SOWOHL das Ausgabe-dlls aus Ihrem WDP, fügen Sie ein system hinzu.web/pages/Kontrollen-Knoten zum web.config mit dem namespace ASP und den Namen der assembly, die Sie in der WDP.
Nun, wenn Sie die Bibliothek in einer Seite (zum Beispiel), müssen Sie den alias verwenden, die Sie definiert im web.config und die typename-wie gesehen in den Reflektor also
Ich fand es nützlich, fügen Sie eine Abhängigkeit für die website(s) auf der WDP so, dass die WDP ist gebaut, bevor der websites; jetzt kann ich den Benutzer ändern, steuert die WAP-zimmerreserviereung, ohne das Sie daran denken zu bauen, die WAP-vor der Erstellung der website(s).
Ich hoffe, dass sich jemand findet das nützlich ist, wie es kostet mich einige graue Haare bekommen, um diese Phase und haben noch VS sein 'automagisch' Sache.
InformationsquelleAutor Scott Rickman