Firma Microsoft zapewnia fantastyczny szablon do opracowania Angular (nie AngularJS) w środowisku ASP.NET Core, jak opisano w ich artykule "Building Single Page Applications on ASP.NET Core with JavaScriptServices".Szablon kątowy ASP.NET Core: app.module.client vs. app.module.server
Podczas gdy jest to bardzo proste, istnieje jedna część szablonu, która zaskoczyła mnie: zamiast tego, po prostu jako plik app.module.ts
, istnieją zarówno app.module.client.ts
, jak i app.module.server.ts
.
nie udało mi się znaleźć niczego, co wyjaśnia to w internecie. Czy ktoś ma pojęcie, dlaczego istnieją dwa oddzielne pliki dla modułu aplikacji, jakie są ich konkretne zastosowania, jak z nich korzystać, itp.?
Jeśli to pomaga w ogóle, co tu jest pełny szablon wygląda tak:
Należy zauważyć, że ClientApp/app/models
i ClientApp/app/services
są dwa foldery mam dodane do własnych celów; nie są częścią szablonu. Ponadto, app.module.shared.ts
jest bardzo prosty i po prostu uniemożliwia napisanie kodu dwa razy, więc nie martw się o to.
Oto co dwa pliki wyglądać następująco:
Ah, okay. A co z użytkowaniem? Kiedy deklarujesz komponent na przykład, czy powinien on zostać umieszczony w kliencie, serwerze czy udostępniony? A co z dostawcami? Import? Czy dobrą zasadą byłoby po prostu wszystko udostępnić? Czy istnieje przypadek, w którym należy konkretnie umieścić coś w jednym pliku, a nie w drugim? – NetherGranite
Odkryłem, że jeśli próbuję dodać odniesienie do usługi, która ma być używana przez składniki, należy dodać takie odwołania do dostawców zarówno app.module.server i app.module.client. Próbowałem podążać za https://channel9.msdn.com/Events/Visual-Studio/Visual-Studio-2017-Launch/WEB-103 (patrz mój komentarz na dole) i musiałem dodać odniesienia do przykładowych usług w wyżej wymienione pliki. – danfer
W końcu udało mi się ustawić na app.module.shared.ts import usług i dodać je do dostawcy udostępnionego, niż na app.module.server i app.module.client po prostu dodawać odwołania do sharedConfig.providers na w sekcji @NgModule każdego z plików serwera i klienta. W ten sposób, jeśli chcesz dodać nową usługę, nie musisz nic robić w każdym z plików, tylko w udostępnionym. Testowane z 2 różnymi usługami i działało dobrze – danfer