Kilka zagadnień, z którymi ostatnio miałem doczynienia:
1.
The project type is not supported by this installation - gdy zainstalowałem narzędzia do Silverlight'a na maszynie z Visual Studio 2008 z SP1 (beta), to przy próbie otwarcia jakiekolwiek projektu VS konsekwentnie informował, że nie obsługuje takiego rodzaju projektu lub że referencja na obiekt jest nullem (!). Pomogło zresetowanie ustawień Visual Studio z linii komend.
http://www.microsoft.com/silverlight/resources/readme.aspx?v=2.02. Pobieranie bibliotek z kontrolkami na żądanie - przydatne, gdy:
- chcemy współdzielić kontrolki w różnych aplikacjach
- ze względów wydajnościowych, by ładować tylko potrzebne kontrolki, a pozostałe dociągać i ładować w razie potrzeby
Do projektu biblioteki pobieranej na żądanie umieszcza się referencję w taki sam sposób jak do biblioteki, która ma być powiązana w sposób statyczny. Jedyna różnica polega na tym, że we właściwościach referencji trzeba:
- w Visual Studio: propercję
Copy Local ustawić na false
- w MSBuild: propercję
Private ustawić na false
Wtedy assembly biblioteki nie zostanie włączone do archiwum .xap aplikacji.
http://msdn.microsoft.com/en-us/library/cc296243(VS.95).aspx. Zasugerowany podanym tu przykładem byłem przekonany, że biblioteki z kontrolkami należy pakować do archiwum .xap. Jednak jedynie projekt
Silverlight Application pozawala na pakowanie do .xap, projekt
Silverlight Class Library na to nie pozwala (nie pozwala też na linkowanie do aplikacji webowej za pomocą Visual Studio). Natrafiłem na stronę
http://geekswithblogs.net/lbugnion/archive/2008/04/16/silverlight-packing-user-controls-in-separate-assemblies.aspx, gdzie autor umieszczał kontrolki w projekcie
Silverlight Application po wyrzuceniu z niego niektórych plików. Ten pomysł w obecnym wydaniu Silverlight się nie sprawdził, co prawda strumień z .xap był odczytywany, ale ładowanie assembly kończyło się u mnie niepowodzeniem... Wtedy w adresie URI (parametr metody
OpenReadAsync klasy
WebClient) zamiast adresu do pliku .xap dałem adres do pliku .dll i ... zadziałało!
W obejrzanym przeze mnie później (niestety!)
webcaście o dynamicznym ładowaniu bibliotek również w URI jest podawana ścieżka do pliku .dll, skopiowanego ręcznie do katalogu ClientBin aplikacji webowej.
3. W aplikacjach Windows mamy
MessageBox, a co mamy w Silverlight?
HtmlPage.Windows.Alert('Message')
4. Jakiś czas temu
pisałem o problemie z dodaniem referencji do serwisu WCF w Visual Studio. Gdy teraz korzystałem z Visual Studio 2008 z SP1 (beta) ten problem nie wystąpił.