ASP.NET MVC3 Шаблоны проектирования и правильные методы кодирования - PullRequest
3 голосов
/ 25 ноября 2011

Я недавно работал в HP, выполняя несколько проектов ASP.NET MVC3, так как пришел из опыта работы с программным обеспечением. Я был относительно новичком во внутренней работе MVC3, а также в лучших практиках.

За это время я несколькоадаптировал стиль кодирования коллег по работе и способы оформления своих страниц, которые я до сих пор придерживаюсь.Учитывая все это, мой главный вопрос - что бы кто-нибудь порекомендовал для учебного материала;книги / видео / учебники.Я могу учиться на любом из этих ресурсов, и я хотел бы знать, что я правильно пишу код.

У меня есть несколько проектов за плечами и много крупномасштабных бизнес-решений, которые я кодировал с помощью Razor и ASP.NET, нобывают моменты, когда я чувствую, что то, что я делаю, является либо очень хакерским, либо просто неэффективным способом кодирования вещей.Чем больше проект, тем сложнее становится добавлять новые функции из-за этого.

Я думаю, что это мой недостаток опыта в кодировании, но в то же время я хотел бы преодолеть это, и я чувствую, что сМассовый опыт работы с MVC3 позволил мне приспособиться к более простому стилю или шаблону дизайна, которые помогли бы мне не только оптимизировать мой код, но и стать намного лучшим веб-разработчиком.Если у кого-то есть какие-либо предложения по поводу книг или учебных площадок или чего-нибудь еще, пожалуйста, дайте мне знать, потому что я хотел бы поправиться.

Заранее спасибо всем, кто был на моем месте и желает или способен рекомендовать что-либо!

Ответы [ 2 ]

2 голосов
/ 11 августа 2012

Я имел дело с той же проблемой и нашел полезным составить карту разума.Хотя невозможно дать вам полное понимание, я могу попытаться направить вас в правильном направлении с некоторыми основными идеями.

загрузка / просмотр (http://www.xmind.net/share/highroad/mvc3-design-pattern/)

Вы знакомы с шаблонами проектирования?Ну, они существуют и с приложениями MVC:)

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

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

В уведомлении на диаграмме есть 3 основных уровня:

  1. Уровень представления
  2. Уровень бизнес-логики
  3. Уровень доступа к данным

Некоторые из наиболее часто используемых шаблонов проектирования при работе с Model View Controller в ASP.NET включают:

Шаблоны проектирования уровня бизнес-логики:

  • АктивноЗапись.Модели относятся именно к базе данных, как в облегченных средах (например, Ruby on Rails).При создании нового приложения MVC3 с ASP.NET, а также в представлениях и контроллерах лесов, именно так оно и настраивается.Идеально подходит для менее сложных приложений.Так почему бы просто не использовать Ruby on Rails?Я бы
  • Уровень логики домена.Использует MVC с контроллером, содержащим очень мало кода, и создает множество дополнительных моделей, которые могут выполнять сложную логику, MVC предназначен только для представления.Часто с этим стилем уровня легкий уровень, называемый сервисным уровнем, может использоваться для вызова всех функций на доменном уровне из контроллеров, т.е. контроллер вызывает метод в классе сервисного уровня, который вызывает доменный уровень.Этот шаблон проектирования, кажется, очень популярен среди людей, которым нравится объектно-ориентированное программирование.См. Ссылку ниже на мой (довольно простой) проект, разработанный с использованием доменного слоя.

  • Сценарий транзакции - используйте контроллер для выполнения большой логической работы за действие, проблема в том, чтодействия должны делать то же самое, поэтому будет повторение кода

Для уровня доступа к данным:

  • Что-то вроде структуры сущностеймодели в сочетании с хранилищем, которое может выполнять любые запросы SQL.
  • Не вдаваясь во все шаблоны для этого слоя, но они включают в себя: Data Mapper
  • В простых приложениях реальных данных нетуровня доступа, это становится необходимым только в том случае, если вы используете уровень домена на бизнес-уровне (что обычно имеет место)

В зависимости от структуры, используемой вашим приложением, ваши Модели будут означать совсем другие вещи.Как правило, они не будут моделями, связанными с базой данных (по умолчанию при создании нового приложения они становятся такими).Вместо этого они будут ViewModels, которые отвечают только за хранение данных, необходимых для каждого из представлений.

Я создал приложение ssample, которое вы можете увидеть здесь.

https://github.com/testbrian/enterpriseframeworksB

1 голос
/ 25 ноября 2011

Я не знаю, является ли это примером корпоративного решения, но я многому научился из методов, найденных в RaccoonBlog .Мне нравится, как Layout.cshtml и другие файлы бритвы используют RenderAction для модуляции представлений.

Проект является примером MVC3 с использованием RavenDb, но это также одно из лучших реальных приложений, которые я видел, так какфактически используется в производстве.

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...