2011-01-06 22 views
12

Mam rozwiązanie, które zawiera zarówno rozwiązanie Silverlight 4, jak i WPF 4. Jedna to internetowa wersja aplikacji, a druga to wersja komputerowa.Najlepszy sposób na dzielenie kodu między WPF a Silverlight

Oba projekty mają podobne klasy domenowe i interfejsy i oba uzyskują dostęp do chmury w celu przechowywania i innych rzeczy.

Chciałem stworzyć wspólny projekt Interfejsy i klasy, więc utworzyłem Bibliotekę klas, ale gdybyś tego nie wiedział, Silverlight nie może dodać odniesienia do Biblioteki klas. Więc stworzył wspólny projekt jako Silverlight Class Library, ale kiedy odsyłającego wynika, że ​​z projektu WPF dostaję ostrzeżenia:

Warning The project 'Interface.Common.Silverlight' cannot be referenced. The referenced project is targeted to a different framework family (Silverlight)

a nawet pojawiają się błędy wykonawcze klasa ładowanie podczas korzystania z dowolnej klasy z tej biblioteki ponieważ "System.Windows nie można znaleźć w czasie wykonywania"

Chcę podzielić kod między dwa projekty, w jaki sposób można to osiągnąć w czysty sposób?

Dzięki za wszelką pomoc można dać

+1

MSDN - Kodeks rozdysponowania między Silverlight i WPF: http://msdn.microsoft.com/en-us/library/ff921109(v=pandp.40).aspx –

+0

dzięki , Robię to teraz, ale wciąż mam wiele pytań ... takich jak możesz udostępnić kod dostępu Azure między SL i WPF? – Mark

+2

Szukanie uwagi! Sprawdź [Portable Class Libraries] (http://msdn.microsoft.com/en-us/library/gg597391.aspx), teraz obsługiwany w .NET 4.0! – Will

Odpowiedz

7

Utwórz dwa równoległe projekty jeden dla WPF i jeden dla Silverligth. W przypadku jednego z projektów dodaj pliki jako łącza zamiast plików.

Zrobiłem to pomyślnie dla Microsoft Silverlight Analytics Framework z jednej bazy kodu dla Silverlight 4, WPF i Windows Phone 7.

+0

tak utworzyć dwa projekty Common.Interface (Common.Interface.SL i Common.Interface.WPF), a pliki w jednym z nich (który?) Będą łączami zamiast rzeczywistymi plikami? Co to osiąga? – Mark

+0

W projekcie -> Dodaj istniejący element, odnotuj strzałkę w dół obok przycisku Dodaj. Pobierz zestaw narzędzi MvvmLight na przykład dzielenia kodu między projektami Sliverlight i WPF przy użyciu połączonych plików C#: http://mvvmlight.codeplex.com/ –

+0

Taa, to ta, którą widzę większość ludzi. Nie ma znaczenia, który projekt ma pliki i który ma "połączone elementy". Jeśli masz kod, który powinien być tylko jedną platformą, może to być tylko jeden projekt, a jeśli klasa powinna być tylko trochę inna, możesz zrobić rzeczy takie jak #ifdef SILVERLIGHT lub mieć częściową klasę z metodą/właściwością/itp. zdefiniowane inaczej w projekcie każdej platformy w innej części tej samej klasy. –

0

Co xaml udostępniania kodu Silverlight i WPF

0

Tworzenie projektu "Portable" . że można odwoływać się zarówno z WPF i Silverlight

Powiązane problemy