Frage

Ich habe derzeit ein Web -Anwendungsprojekt in VS2010. Jedes Steuerelement (in *.ascx -Dateien) befindet sich zusammen mit den von diesem Steuerelement (in *.asmx -Dateien) verwendeten Webdiensten (in *.asmx -Dateien) und dem JavaScript -Objekt, das zur Manipulation (in *.js -Dateien) verwendet wird. Das Projektlayout sieht also so aus wie:

WebApp/
  WebControl1/
    WebControl1.ascx
      WebControl1.ascx.cs
      WebControl1.ascx.designer.cs
    WebControl1.asmx
      WebControl1.asmx.cs
    WebControl1.js
  WebControl2/
    ...
  Global.asax
  Default.aspx
    Default.aspx.cs
    Default.aspx.designer.cs
  ...

Das Projekt erweitert und ich möchte die .js -Dateien mit Skript#aktualisieren und ersetzen. Ich möchte diese Struktur beibehalten, aber soweit ich das erkennen kann, gibt es keine Möglichkeit, Skriptnummer und reguläre C# -Dateien im selben Projekt zu mischen.

Ich habe mir das Readme PDF auf der Skript# -Site angesehen und das Beispiel für Fotodemo heruntergeladen, aber ich kann keine Beispiele für die Verwendung von Skript# neben Websteuerungen finden. Ich habe versucht, die Vorlage "Skript -Support" zum Projekt hinzuzufügen und dann sowohl Klassen- als auch Seitenvorlagen aus der Liste der Skript# Vorlage hinzuzufügen. Beide werden beide als reguläre C# Quellcode -Dateien behandelt.

Ich habe Reflektor verwendet, um in MSCORLIB, System.Web, scriptSharp.web, scriptSharp.visualstudio, scriptSharp und script.windows -Binärdateien zu suchen, die von Skript# installiert sind und nichts finden konnten, das dieses Verhalten zulässt.

Hat jemand etwas Ähnliches implementiert oder hat weitere Hinweise?

Die einzige Möglichkeit, das Skript# zu verwenden, besteht darin, ein separates Skript# -Projekt zu haben und die Ausgabe für die JavaScript -Dateien in meiner Webanwendung zu haben. Es funktioniert, ist aber weniger als ideal.

Vielen Dank für Ihre Zeit,
Hugh

War es hilfreich?

Lösung

Ich habe kürzlich den Sprung gewagt und fast ausschließlich Web -Benutzer -Steuerelemente verwendet. Ich kompile meine Steuerung HTML in Skript# Ausgabe, und anstelle von Postbacks tätige ich Webdienst -Anrufe mit WCF. Ich denke, Sie berühren dies, aber meiner Ansicht nach ist es einfach zu viel mühsam, das Design und die Logik einer einzigen konzeptionellen Einheit zu synchronisieren, wenn sich Design und Logik in zwei separaten Projekten befinden.

Meine Projektlayouts sehen jetzt im Wesentlichen so aus:

WebApp/
  Pages/
    Home.aspx
    [etc]
  Services/
    MainService.svc

ScriptSharp/
  UI/
    Widget1.html
    Widget1.html.cs
    Widget2.html
    Widget2.html.cs

Ich habe das System aus, indem ich meine ".html" -Dateien als "kompilieren" festlegen und ihre Inhalte in Konstanten im Skript# Ausgabe verwandeln. In meinen Dateien ".html.cs" habe ich das, was Sie erwarten würden (Ereignishandler für Klick, Änderung usw.), außer dass die UI -Logik jetzt mehr als zuvor verwendet wird (eine gute Sache).

Wenn Sie interessiert sind, können Sie meine überprüfen Scharfe UI Projekt, das sich um die Parsen der HTML-Konstanten und die Behandlung jedes HTML-Fragments kümmert, als ob es sich um eine (clientseitige Version von a) Webbenutzerkontrolle handelt.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top