Как написать хорошую базовую архитектуру для проекта в ASP.NET MVC - PullRequest
3 голосов
/ 24 ноября 2010

Я собираюсь написать большую систему в январе с ASP.NET MVC3 / C #, и мне нужно знать, как написать систему, которая будет РАБОТА .У меня есть небольшой опыт работы с ASP.NET MVC и C #, но я бы не назвал себя экспертом.Это должно быть расширяемым, чтобы я мог расширить его позже с новыми функциями.Как можно поступить об этом?Есть ли книги, которые подробно объясняют эту тему, или я должен использовать метод проб и ошибок?

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

С уважением, RaVen

Система будетпортал сообщества с рейтингами форумов и т. д. Не могу сказать, что больше << Политика компании >>, форумы, которыми я могу управлять из-за множества вариантов с открытым исходным кодом ... Но остальное зависит от меня.

Ответы [ 8 ]

11 голосов
/ 24 ноября 2010

SOLID == Большой успех

Следуйте принципам SOLID в любом проекте, и у вас все получится.

5 голосов
/ 24 ноября 2010

Что касается базовой инфраструктуры / архитектуры, SharpArchitecture - хорошее место для старта.Это ни в коем случае не идеальное решение ... НО они дают вам хорошую основу для игры, и вы можете быстро получить работающую систему, изучая концепции, которые работают и не работают со временем.Посмотрите и посмотрите, что вы думаете.Он использует NHibernate, Castle и MVC.

3 голосов
/ 24 ноября 2010

Test Driven development обеспечит качество вашего проекта.Будь строг с собой, красно-зеленый рефрактор.Одной из сильных сторон MVC является то, что ее проще тестировать.

2 голосов
/ 24 ноября 2010

вы можете использовать мою "удивительную" демонстрацию в качестве начала

http://awesome.codeplex.com

2 голосов
/ 24 ноября 2010

Профессиональная ASP.NET MVC 2 является хорошей отправной точкой, хотя я бы предположил, что они также выпустят версию MVC 3. Учебное пособие NerdDinner содержит множество идей о том, как структурировать ваше приложение.

Базовый совет: работать с архитектурой MVC, а не против нее. Понимайте свое приложение, особенно модель данных, и делите это на структуру приложения. Обычно у вас есть контроллер для каждой модели, но не всегда.

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

1 голос
/ 24 ноября 2010

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

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

0 голосов
/ 25 ноября 2010

WhoCanHelpMe - хорошее справочное приложение.Он построен на архитектуре S # arp , которая является хорошей отправной точкой для MVC-приложений, использующих дизайн, управляемый доменом.Это также поможет вам с подключением IoC и db-вещи.

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

Вам также следует изучить MEF для расширяемости.

0 голосов
/ 24 ноября 2010

Исходя из ваших правок и ваших способностей, возможно, было бы разумнее выбрать CMS с открытым исходным кодом, написанную на ASP.NET MVC, и поддерживать ее.Похоже, ваши навыки достаточно хороши, чтобы научиться писать модули и быть частью большого сообщества.Вы не выглядите так, как будто вы действительно хотите написать все это, потому что вы робки в своих навыках, сроках и т. Д. Изучая все тонкости хорошо написанного программного обеспечения, однажды вы можете написать свой собственный или внести свой вклад.к основной части программного обеспечения.Есть несколько вариантов на выбор, смотрите мой комментарий выше под вашим вопросом.

edit: я также думаю, что это позволит вам просто начать и не беспокоиться о каждой парадигме дизайна, которую люди бросят вам на успех.

...