2010-09-08 22 views
14

Piszę projekt asp.net mvc2 z dużą liczbą wyświetleń/częściowych wyświetleń. Czytając dobre praktyki MVC, zachęcam do tworzenia ViewModels. To naprawdę fajne i ma sens, ale ostatnio zauważam, że nie mogę już łatwo zapamiętać, jaki model jest dla tego widoku. Mam nadzieję, że istnieje dobra konwencja nazewnictwa dla ViewModels, która może obsłużyć duże projekty.Jaka jest najlepsza konwencja nazewnictwa ViewModel?

Moje pytanie brzmi, czy można poprawić tę sytuację?

+1

Napisałem kilka nieco bardziej szczegółowych sugestii dotyczących [konwencji nazewnictwa ViewModel] (http://www.appetere.com/Blogs/SteveM/April-2012/MVC-Framework-ViewModel-naming-conventions) w wpis na blogu, który może być przydatny. – Appetere

Odpowiedz

18

lubię keep it simple, na przykład, jeśli masz obiekt o nazwie folderu:

View = "FolderView.xaml"

ViewModel = "FolderViewModel.cs"

2

ułatwiają:

ModelName = ViewName + "Model"; 

Jeśli masz modelu hierarchie, czasami trzeba przejść model z myślą o częściowym widokiem. W takim przypadku powyższa zasada może zostać uchylona.

0

Zacząłem iść o krok dalej i określałem, czy ViewModel jest używany do generowania formularza za pomocą EditorFor, kończąc nazwę za pomocą formularza. Pomaga zachować formy i proste modele wyświetlania, które można łatwo zidentyfikować.

1

Jeśli modele podglądu są przechowywane w tym samym zestawie co widoki, to jedna sztuczka służy do porządkowania widoków z modelami widoków oprócz prostego schematu nazewnictwa, takiego jak {View Name} ViewModel dla klasy widoku modelu, aby wykonać następujące czynności:

  1. Stwórz swoją klasę widzenia (Shell.xaml)
  2. W tym samym miejscu, dodać widok modelu klas (ShellViewModel.cs)
  3. zmienić nazwę pliku widoku modelu klasy do być taką samą nazwą, jak widok, ale dołącz do niej .model do ścieżki pliku (Shell.model.cs)
  4. Edycja pliku projektu (zarówno ręcznie lub za pomocą Power Command rozszerzeń VS)
  5. Zlokalizuj Compile elementu dla klasy widok modelu projekt dokumentu XML
  6. Dodać dziecku DependentUpon elementem których treść jest nazwą klasy widoku
  7. zapisać zmiany i przeładować projekt

Spowoduje to wizualne pogrupowanie klasy widoku widoku obok pliku kodu źródłowego widoku.

alt text

+0

To wygląda interesująco, ale nie jestem pewien, czy byłaby to dobra praktyka. Byłbym zainteresowany wysłuchaniem myśli innych ludzi na ten temat. –

+0

Przydaje się do wizualnego zorganizowania modelu widoku z widokiem, w taki sam sposób, w jaki obiekt codebehind jest połączony z widokiem. Wydaje mi się, że w grę wchodzi najlepsza praktyka dotycząca tego, czy powinieneś mieć swoje modele widoku w osobnej bibliotece klas z widoku, co zależy od twoich scenariuszy ponownego użycia i testowania. W niektórych projektach miałem modele widoków w innej bibliotece, ale w prostszych projektach umieściłem je w tych samych projektach, co widoki. – Oppositional

+1

Jest to interesujące, ale nie pasuje do faktu, że viewmodel może być używany przez wiele widoków. Ponadto pogrupowane pliki są często klasami częściowymi, których nie można i nie powinno się stosować w viewmodelu. –

2

dla ASP.NET MVC I zachować moim zdaniem modele w ViewModels.{Controller} nazw i nazwa klasy jest tylko . Nie używam sufiksu ViewModel tak, jak pliki widoku nie mają sufiksu widoku.

Powiązane problemy