2010-09-27 2 views
1

Я собираюсь создать базу кода для своей компании - хранить библиотеки, классы и т. Д., Разработанные сотрудниками внутри компании и используемые в разных приложениях во времени. Целью было бы повторное использование кода во времени. Платформа I предназначена только для .NET: winForms, WPF, WEB, Silverlight и другие. Я думал о создании решения, в котором будут храниться 2 проекта для каждой технологии - 1, содержащей код, а другой в качестве тестового сайта для этого кода. Что было бы лучшим решением для обработки всех этих разных технологий и кода, как вы думаете?Код компании Base

ответ

4

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

Во-первых, вы, вероятно, не хотите создавать «рамки». У вас уже есть .NET Framework. Возможно, вы хотите согласовать общий набор пользовательских элементов управления. Есть много на выбор. Я бы сильно отговаривал вас от попыток написать собственный набор настраиваемых элементов управления, которые будут повторно использоваться во многих проектах. Разработка согласованной и согласованной пользовательской библиотеки управления - это огромная работа сама по себе, а полные меры, которые работают для конкретного проекта, терпят неудачу, когда вы пытаетесь переместить их в другие проекты.

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

Теперь, если вы находитесь в среде, где все работают над программами, обрабатывающими одни и те же типы данных, возможно, вы можете использовать общий набор модулей доступа к данным и отчетов, а также некоторые общие алгоритмы. Однако будьте осторожны. Любой общий код должен иметь как можно меньше зависимостей. В противном случае потенциальные клиенты (т. Е. Другие программисты) предпочтут сворачивать свои собственные, а не «включать мир».

Вы говорите, что хотите создать базу кода, в которой хранятся «библиотеки, классы и т. Д., Созданные сотрудниками внутри страны и используемые во многих приложениях во времени». Для меня это говорит о том, что вы хотите поделиться кодом между несопоставимыми проектами или, по крайней мере, взять код, который был написан для одного проекта, и использовать его в другом. Это похвальная цель, но часто трудно. Как я указывал выше, существует большая разница между написанием кода, который работает для одного проекта, и написанием кода, который может использоваться несколькими проектами с минимальными зависимостями. Возможно, но сложно. И много времени.

4

Если вы используете повторное использование кода, вы должны идентифицировать общность независимо от того, является ли конечный пользовательский интерфейс WinForms, WPF, Silverlight, WebForms или что-то еще.

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

Возможно, вы также захотите убедиться, что ваш доступ к данным более ориентирован на данные, а не UI-ориентированный, например, убедитесь, что только одна «Служба» ведет переговоры с таблицей базы данных, чтобы гарантировать, что ничего выше этой «Службы», зависит от любых изменений в таблице или даже базы данных.

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

+0

+1 Очень хороший ответ !!! –

Смежные вопросы