2012-04-10 10 views
5

Ich bin ziemlich neu in der Web-Entwicklung. Ich bin am Einsatzort (zum Testen). Ich habe ein paar Orte (vielleicht 4 Plätze), wo ich einen URI hinzufügen musste, der in der Anwendung nicht-relativ war. Jetzt müssen diese beim Deployment geändert werden.Gibt es eine clevere Möglichkeit, meine Silverlight-App bereitzustellen und Einstellungen programmgesteuert zu ändern?

Gibt es eine glatte Art der Handhabung? Mit Slick meine ich nicht manuell durch die App gehen und ändern die URIs oder eine Decke finden und ersetzen (zu riskant). Ich habe jetzt nur noch vier Stellen, die geändert werden können, aber dies könnte sich leicht ändern und zu Problemen bei der Bereitstellung führen.

Ich verwende einen Microsoft-Technologie-Stack. Silverlight, ASP.NET, RIA usw. Die Entwicklung erfolgt in Visual Studio 2010.

Ich bemerkte, dass die Web-Projekte eine nette Transformation für die web.config haben ... was schön ist. Gibt es einen gleichwertigen Mechanismus für Silverlight-Ressourcen? Irgendwelche anderen Möglichkeiten?

Irgendwelche Gedanken?

Antwort

1

Ich habe gerade gefunden this post on stack overflow über die Verwendung von MS eingebauten Transformationsmechanismus für Service-Referenzen. Aber in Wirklichkeit ... ist es generisch für jede XML-Datei. Das bedeutet, dass ich dieselben Konzepte auf meine benutzerdefinierte XML-Datei anwenden konnte, die einige Einstellungen enthielt ... und es funktionierte hervorragend.

Siehe Randoms-Lösung. Es ist nicht die ausgewählte Lösung, aber es ist viel besser als alles, was ich bisher gesehen habe.

1

Eine Möglichkeit besteht darin, Parameter von der Hosting-Webseite an die Silverlight-Anwendung zu übergeben.

<object ....> 
... 
<param name="initParams" value="prm1=http://google.com,prm2=http://bing.com" /> 
... 
</object> 

und den Zugriff von Ihrem Silverlight-Anwendung (App.xaml.cs, Application_Startup-Methode):

foreach (var item in e.Initparams) 
{ 
    this.Resources.Add(item.Key, item.Value); 
} 

Zugriff auf die Parameter:

var prm1 = App.Current.Resources["prm1"].ToString(); 
0

Es ist nicht zu hübsch, aber Sie können für die DEBUG überprüfen define (definiert im Debug-Modus erstellt standardmäßig):

#if (DEBUG) 
    myUrl = "http://www.google.com"; 
#else 
    myUrl = "http://www.bing.com"; 
#endif 
Verwandte Themen