2012-05-07 25 views
6

obecna sytuacja: strona internetowa ASP.NET MVC z wieloma kontrolerami i metodami działania oraz widoki umożliwiające dodawanie receptur.Zużywanie metod działania ASP.NET MVC

Teraz muszę utworzyć aplikację WPF, która działa jak interfejs użytkownika, aby dodawać receptury (tak samo jak strona internetowa).

Moje pytanie brzmi: czy mogę użyć strony ASP.NET MVC, aby ujawnić operacje serwisowe, które są zużywane przez aplikację WPF (i jak można to zrobić)? Czy powinienem lepiej utworzyć dedykowane usługi WCF dla tego i mieć WPF i witryny ASP.NET MVC zużywają te usługi?

Dzięki Ludwig

Odpowiedz

3

Mam powodzeniem stosowane kontrolery MVC i działania do obsługi zarówno widoki HTML z przeglądarki, jak i zewnętrznych aplikacji. To działa dobrze, ale co to oznacza, że ​​trzeba trochę oprzyrządowania:

  1. Mam filtr działania, która zwraca Model wynikające z działania w formacie wymaganym przez klienta (poprzez kontrolę akceptuje nagłówka poszukuje aplikacji/json lub text/xml). Tak, mogę serializować wynikowy model jako JSON lub XML (ja wolę JSON).
  2. Musisz znaleźć lub utworzyć prosty interfejs API w aplikacji klienckiej, aby utworzyć żądania sieci Web dla swoich działań, a następnie przetworzyć wyniki. Stworzyłem prosty interfejs API, który może POST lub GET, a następnie deserializować dowolny wynikowy JSON do obiektu (przy użyciu JSON.NET). Istnieją interfejsy API klienta REST, których można użyć do tego celu.

Jednak można uniknąć niektórych dodatkowych narzędzi, jeśli przejdziesz do trasy WCF-REST. Co więcej, zajrzałbym do funkcji WebApi programu ASP.NET MVC 4 (do której będę migrował).

Według mnie, WCF jest potężny, ale nasza organizacja zmęczyła się tym, jak skomplikowane może być przekręcanie wszystkich gałek i uderzanie w wszystkie przełączniki, aby działało prawidłowo, i łatwe konfigurowanie z jednej instalacji do inny. Z drugiej strony MVC po prostu działa ... i ponieważ używamy go już do obsługi naszych widoków HTML, to prawdziwa radość, że trzeba tylko dodać trochę dodatkowego kodu, aby obsłużyć także zgłoszenia serwisowe. Tylko osobiste preferencje, oczywiście.

+0

Dzięki, rzecz aplikacji webowej wydaje się interesująca. Jednak wciąż jest to wersja beta i prawdopodobnie zbyt niebezpieczna dla mnie, aby móc ją już używać w środowisku produkcyjnym. Czy byłoby dobrym pomysłem stworzenie konkretnego kontrolera, który zawierałby całą logikę, która musi zostać ujawniona na zewnątrz? Ta logika używałaby następnie logiki kontrolera bazowego. –

+0

To będzie szybko beta. Wydaje się rozsądne, aby zacząć opracowywać rozwiązanie przeciwko wersji beta, dostosowywać się do RTM i zyskiwać :) – HackedByChinese

Powiązane problemy