2008-11-12 13 views
11

Nasz zespół opracowuje dość duży projekt sieciowy ASP.NET, który początkowo był uruchamiany w ASP.NET 1.0 i był przenoszony kilka razy do wszystkich nowych wersji .NET.ASP.NET ascx vs. aspx - Czy używasz ponownie elementów sterujących użytkownika?

W dużym stopniu korzystaliśmy z elementów sterowania użytkownika (ascx). Ale z perspektywy czasu wątpię, że to była dobra decyzja. Bardzo mały odsetek tych elementów sterujących jest ponownie wykorzystywany (resuable) za pośrednictwem różnych stron. Do aplikacji dodano tylko tę warstwę złożoności, która sprawia, że ​​niektóre rzeczy są bardziej złożone.

W przypadku kontrolek wielokrotnego użytku, małych i specjalistycznych używamy Kontrolek serwera (odziedziczonych z klasy WebControl), które działają doskonale.

Moje pytanie: rozpoczęcie nowego projektu, czy to jest w porządku, aby pozbyć się ascx i zaimplementować wszystkie na samych stronach (aspx)? Może z wyjątkiem sytuacji, gdy robisz dużo dynamicznego ładowania (nie robimy) kontroli użytkownika? Jakie jest twoje doświadczenie i jak radzisz?

Odpowiedz

16

Mamy kilka projektów, które intensywnie korzystają z kontrolek ASCX, a inne nie. Z mojego doświadczenia wynika, że ​​musisz decydować indywidualnie dla każdego przypadku.

Moje dwa ulubione powody korzystania formantów ASCX są:

  1. Ty wykonawczych kawałek funkcjonalność interfejsu użytkownika, który pojawi się na wielu różnych stronach (lub wiele razy na tej samej stronie).
  2. Chcesz zawrzeć niektóre złożone funkcje, aby odróżnić je od reszty strony, dzięki czemu Twój kod będzie łatwiejszy do odczytania i łatwiejszy w utrzymaniu.

kontrole ASCX mogą być przydatne, ale naprawdę trzeba się upewnić, że tylko z nich korzystać, gdy nie jest dobry powód, aby - w przeciwnym razie - jak mówisz, możesz być dodając niepotrzebnej złożoności w swoim kodzie.

+1

Jeśli naprawdę wdrażasz jakiś interfejs użytkownika, który będzie się często pojawiał/enkapsulował, dlaczego zamiast tego użyjesz * stron głównych * i skończysz? –

2

Używałbym nadal usercontrols, a przede wszystkim dlatego, że można znacznie łatwiej oddzielić treść od projektu w ten sposób, co w ostatecznym rozrachunku bardzo pomoże, gdy zmienisz projekt aplikacji.

Ułatwia także przenoszenie elementów sterujących na stronie, niż w przypadku konieczności wycinania/wklejania kodu w całym miejscu.

2

To wyłącznie sprowadza się do rodzaju projektowanej aplikacji internetowej. W pracy jedna z naszych aplikacji jest bardzo konfigurowalna, działa więc na jednej stronie (default.aspx) i ładuje kontrolki w zależności od tego, jak jest skonfigurowana dla zalogowanego użytkownika.

Jednak po drugiej stronie, jeśli piszesz stronę internetową, która musi być dostępna przez SEO i musi być łatwa w nawigacji, to wdrażanie każdego widoku na stronie aspx jest dobrym sposobem. Sprawia, że ​​dostęp do każdej strony podczas programowania jest łatwy i bezpośredni, ponieważ można uzyskać do niego bezpośredni dostęp (zakładając, że żadne zabezpieczenia/logika bezpieczeństwa nie staną na przeszkodzie) poprzez ustawienie go jako strony startowej w VS.

Inną opcją do wrzucenia do miksu jest użycie ASP.net MVC; widoki współzależne z możliwymi do powtórnego użycia kontrolkami użytkownika :-)

6

Stosowane poprawnie, kontrole użytkownika usprawniają konserwację i ponowne wykorzystanie, a często są szybsze w tworzeniu niż elementy sterujące serwera.

Wspomniał Pan o tym, że w poprzednim projekcie bardzo niewiele elementów sterujących użytkownika zostało ponownie wykorzystanych.Wydaje się, że jest to bardziej związane ze złym planowaniem niż nieodłączna wada kontroli użytkowników.

Sądzę, że dobrą zasadą byłoby przyjrzenie się twojemu projektowi i sprawdzenie, czy używasz tego samego zestawu elementów sterujących w kółko, w takim przypadku sensowne jest używanie elementów sterujących użytkownika.

+0

Dziękuję za odpowiedź. Można to nazwać złym planowaniem, ale faktem jest, że w naszej SZCZEGÓŁOWEJ aplikacji internetowej kontrole użytkowników były tak wyspecjalizowane, że w większości przypadków nie trzeba ich ponownie wykorzystywać. Być może są inne sytuacje (np. Portale), w których kontrole użytkowników mają dużo więcej sensu. – splattne

Powiązane problemy