8

Dla ludzi, którzy mają doświadczenie z obszarami przenośnePortable Area niekorzystne

Chciałbym wiedzieć, czy istnieją wady korzystania z nich i dlaczego nie użyłby ich złamać dużych aplikacji MVC w dół do komponentu Części. początek

+0

Jako komentarz boczny do mojej wysłanej odpowiedzi, chciałem wyjaśnić, że istnieje różnica między Obszarami Przenośnymi i bardziej Typowymi. Jeśli obszary przenośne nie pasują do twoich potrzeb, prawdopodobnie zajmują to obszary konwencjonalne. –

+1

Witam @DaveA, Zgadzam się z Tobą i właśnie tego używam w tej chwili. – Sam

Odpowiedz

12

Przejdźmy z

Definicja:

Portable Area jest DLL, który zawiera items które normalnie byłyby częścią rozwiązania. Obszary przenośne zawierają widoki, kontrolery, modele, a nawet skrypty JS, pliki CSS i obrazy.

Idealnie, items w Twoim obszarze przenośnym współpracują ze sobą, tworząc spójną funkcjonalność. Jeśli nie, prawdopodobnie nie korzystasz z przenośnego obszaru.

Benefit

porównuję przenośne obszarach, aby Web-Form Web Parts ponieważ obie są próbą odpowiedzi na pytanie:

Jak mogę utworzyć wielokrotnego użytku funkcjonalność?

Będziesz czerpać korzyści z Przenośnych Obszarów, jeśli chcesz utworzyć funkcjonalność do wykorzystania w wielu projektach lub dystrybuować jako funkcję do użytku przez strony trzecie.

Wada

każdym razem wprowadzić zmiany w dowolnym widoku, JS, CSS Plik pliku lub obrazu w przenośnym Area, trzeba będzie ją odbudować. Podkreślam te komponenty, ponieważ zwykle nie trzeba ich odbudowywać, gdy są testowane lub rozwijane.

To może stać się problemem. Jeśli odnawiasz się za każdym razem, gdy modyfikujesz CSS, 30-sekundowe zmiany stają się 2-minutowymi zmianami. Zrób 30 takich i rozciągnij 15 minut na pracę do 2 godzin.

Obszary przenośne są przeznaczone dla dojrzałych funkcji, które można ponownie wykorzystać w wielu projektach lub rozwiązaniach bez zmian.

  • Przenośne obszary nie są idealne dla funkcjonalności na wczesnym etapie rozwoju.

  • Przenośne obszary nie są idealne dla funkcjonalności istniejącej tylko w jednym rozwiązaniu lub projekcie.

9

Wiele rzeczy już zostało powiedziane. Mam pewne doświadczenie w pracy z Przenośnymi Obszarami i oto mój osobisty punkt widzenia.

  • MvcContrib nie został zaktualizowany od jednego roku (patrz nuget). Jeśli spojrzysz na codeplex, zobaczysz, że od ostatniej wersji nie było zbyt wielu aktualizacji kodu źródłowego. Może być dojrzały, ale żadne wsparcie nie może być problematyczne.

  • Przenośny obszar jest samodzielny w jednym zestawie. Łatwiej jest ponownie użyć i zaktualizować, ale wyzwaniem jest to, w jaki sposób zapewniasz wystarczającą kontrolę nad interfejsem użytkownika przez aplikację kliencką. Nawet jeśli jest to funkcja wielokrotnego użytku, czasami nadal chcesz użyć układu głównego lub częściowego.

  • Wszystkie Zasoby internetowych (CSS, JS, widoki) muszą być Wbudowane Resources (wliczone w DLL). Oznacza to, że naprawianie/debugowanie jest naprawdę trudne, ponieważ każda modyfikacja kodu wymaga przebudowy. Ponadto, aby hostować obszar przenośny, musisz mieć stronę internetową klienta.

  • Obszary przenośne korzystają z niestandardowego dostawcy ścieżki wirtualnej. Kod niestandardowego dostawcy ścieżki wirtualnej jest nieprzetestowany i całkowicie nieprzetestowalny. Korzystanie z wirtualnych dostawców ścieżek jest odradzane przez zespół ASP.Net, ponieważ mogą powodować problemy z wydajnością.

  • Przenośne obszary Vs Nuget Packages. Obszary przenośne zostały zaprojektowane cztery lata temu (przed Nuget) .Portable Areas rozwiązało problemy z łatwym transportem, wyświetlaniem i plikami zasobów (Css, javacript) w oddzielnej aplikacji. Nuget rozwiązał również ten problem.

Jednak pomimo tych wszystkich wad, mój zespół nadal go używa. Czemu ? ponieważ było to właściwe rozwiązanie we właściwym momencie dla nas.

+0

Dzięki temu, że uderzyłeś w gwóźdź w głowę, udało ci się mnie przekonać i zamiast tego użyć zamiast tego Obszarów. Problem ten dotyczył dostawcy wirtualnej ścieżki. – Sam

+2

Nuget i tak nie rozwiązuje problemu zachowania funkcjonalności, ułatwia jedynie łączenie źródeł i złożeń z istniejącym projektem. Sprawdzenie, czy scalanie działa poprawnie, obsługa aktualizacji i radzenie sobie z przerażającymi skutkami, jeśli zrobisz to źle, nadal są na tobie, szczególnie jeśli chodzi o zasoby JS/CSS i zmiany konfiguracji (tj. Wstawki web.config). Obszary przenośne nie wprowadzają żadnego kodu źródłowego do projektu importowania, co moim zdaniem jest dobre dla stabilności. – shahzbot

Powiązane problemy