Лучшие практики для ASP.NET MVC [закрыто]

Если вы используете Java 1.7, вы можете использовать java.nio.file.Files.walkFileTree(...) .

Например:

public class WalkFileTreeExample {

  public static void main(String[] args) {
    Path p = Paths.get("/usr");
    FileVisitor fv = new SimpleFileVisitor() {
      @Override
      public FileVisitResult visitFile(Path file, BasicFileAttributes attrs)
          throws IOException {
        System.out.println(file);
        return FileVisitResult.CONTINUE;
      }
    };

    try {
      Files.walkFileTree(p, fv);
    } catch (IOException e) {
      e.printStackTrace();
    }
  }

}

Если вы используете Java 8 , вы можете использовать интерфейс потока с помощью java.nio.file.Files.walk(...) :

public class WalkFileTreeExample {

  public static void main(String[] args) {
    try (Stream paths = Files.walk(Paths.get("/usr"))) {
      paths.forEach(System.out::println);
    } catch (IOException e) {
      e.printStackTrace();
    }
  }

}

30
задан 9 revs, 3 users 82% 20 March 2017 в 10:29
поделиться

6 ответов

Используйте T4MVC , чтобы удалить все магические строки и магические анонимные типы во всем вашем проекте. Это поможет вам в дальнейшем рефакторинге вашего проекта, и (помимо необходимости по-прежнему гарантировать, что ваши маршруты четко определены) все вызовы Action получают свои правильные параметры. Он меняет вызовы следующим образом:

<%= Html.ActionLink("Link text", "Products", "Details", new { id = Model.Id }) %>

В:

<%= Html.ActionLink("Link text", MVC.Products.Details(Model.Id)) %>
10
ответ дан 28 November 2019 в 00:18
поделиться

Не допускайте попадания любой логики в поле зрения. Контроллер должен определять, что будет отображаться - ваше представление должно быть тупым.

7
ответ дан 28 November 2019 в 00:18
поделиться
  1. IoC / DI для фабрики контроллеров (так что я могу внедрить IRepository, ISomeService в конструктор контроллеров)
  2. никогда не обращаться к HttpContext напрямую, сборку оболочки, поэтому ее можно протестировать на единицу
  3. Среда проверки для проверки привязки модели (xVal или FluentValidation). Встроенная проверка внутри MVC 1 является базовой
  4. , никогда не используйте «волшебные строки»: для вызова контроллеров / действий из View, для RouteLink, RenderPartial, RenderAction, ...
  5. никогда не используйте ViewData, создавайте классы DTO ViewModel. Используйте AutoMapper для сопоставления данных из сущностей домена с объектами ViewModel DTO для View

объектов ViewModel DTO:
Абстрактный класс BaseViewModel со свойствами для отображения метаданных страницы, меню и всего остального, что появляется на каждой странице. Все остальные классы ViewModel наследуются от BaseViewModel.

7
ответ дан 28 November 2019 в 00:18
поделиться

Хотя этот сайт не является сайтом с лучшими практиками, он отлично работает с asp.net MVC, что, вероятно, можно было бы считать передовым методом.

http://www.codeplex.com/MVCContrib

3
ответ дан 28 November 2019 в 00:18
поделиться

Для книги «MVC в действии» доступны 2 бесплатные главы.

http://www.manning.com/palermo/

Глава 12. Передовой опыт.

3
ответ дан 28 November 2019 в 00:18
поделиться

Делайте контроллеры как можно более «тонкими». Просто попросите их проверить данные, поступающие из формы, а затем вызвать модель (которая выполняет всю реальную работу), чтобы получить данные, которые будут возвращены в вашем следующем представлении.

Наличие сложных контроллеров как бы нарушает концепцию MVC.

3
ответ дан 28 November 2019 в 00:18
поделиться
Другие вопросы по тегам:

Похожие вопросы: