Ограничьте нарушение архитектуры - MVP asp.net

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

Поскольку исключая, в случае MVP (не asp.net MVC) архитектура, предъявитель должен всегда связывать модель и представление. Это помогает в записи надлежащих программ модульного теста. Однако у нас были экземпляры, куда люди непосредственно импортировали модель в поле зрения и вызвали функции, нарушающие нормы, и следовательно тестовые сценарии не могли быть записаны правильно.

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

5
задан Srikanth Venugopalan 27 April 2010 в 05:11
поделиться

3 ответа

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

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

alt text
(источник: ndepend.com )

2
ответ дан 15 December 2019 в 06:20
поделиться

Вы хотите решить проблему людей с помощью программного обеспечения? Приготовьтесь к миру боли!

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

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

0
ответ дан 15 December 2019 в 06:20
поделиться

Как только все будет заблокировано в соответствии с вашим удовлетворением, появятся новые требования, и вам придется преодолеть их.

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

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

0
ответ дан 15 December 2019 в 06:20
поделиться
Другие вопросы по тегам:

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