Кто-либо знает о каких-либо шаблонах T4 для генерации классов от xsd?

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

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

я в настоящее время работаю над проектами в Flex и.NET. Одна из более хороших вещей о Flex - то, как немного различных путей там состоят в том, чтобы выполнить стандартную вещь - данные получения по запросу из базы данных, открывать/закрывать/читать/писать файл, и т.д. (Все же, я использую Разработчика/Eclipse IDE Flex - типичный тяжелый пример как VS, потому что я все еще изучаю основы, и мне нужны учебные колеса. Я ожидаю развиваться назад к энергии, как только я уверен в своих шаблонах.) В этом представлении, я могу сделать то, что я должен сделать профессионально путем знания нескольких вещей действительно действительно хорошо.

OTOH, я не могу предположить добираться до той точки с.NET, потому что представление, которое я, как ожидают, поддержу, продолжает расширяться и смещаться. Там намного меньше концептуальной целостности, и по нескольким разработчикам на проекте за несколько месяцев, а тем более непротиворечивости - но поддержки IDE, что, возможно, поощряет его. Таким образом, разработчику действительно нужно к (и может более легко) знать намного больше вещей соответственно. Который также обладает преимуществом помощи им ответить (или даже понять) намного более высокий процент вопросов на StackOverflow. Т.е. у нас может быть более глубокая стопка знаний. И мы можем ответить на более широкое множество объявлений о приеме на работу.

Вещи могут зайти слишком далеко в обоих направлениях. Возможно, с объемом "только для редактора", это похоже, "если у Вас только есть молоток, все похоже на гвоздь". С подходом IDE, для того, что Вы хотите закрепить вместе, у Вас есть широкий выбор застежек и связанные диапазоны инструментов для выбора из - nals/hammers, винты/отвертки, болты/ключи, адгезивы/клеевые пистолеты/зажимы, магниты, и вперед и вперед - все под рукой (с мастером, чтобы помочь Вам начать).

5
задан 3 revs 19 October 2009 в 12:35
поделиться

2 ответа

В настоящее время я использую xsd2code.net, его можно найти здесь: http: // xsd2code. codeplex.com/. Множество преимуществ:

  • открытый исходный код, поэтому вы можете настроить / взломать его

  • заменить массивы списками или даже вашим собственным типом коллекции

  • , запускаемым из командной строки или запускаемым как надстройка Visual Studio (щелкните правой кнопкой мыши xsd, скажите, чтобы сгенерировать)

Мне также нравится, что вы можете запустить его на одном файле xsd, и он не взорвется, если упомянутый xsd не может быть найден (например, как это делает xsd.exe). Так что его легко запустить для отдельных файлов, если вы просто хотите быстро обновить один файл.

Тем не менее, T4 тоже должен быть вариантом, я просто погуглил T4 XSD и нашел несколько решений, говорящих об этом .

3
ответ дан 14 December 2019 в 13:43
поделиться

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

Если вы решите продолжить и использовать XSD в качестве модели, вы, вероятно, захотите выбрать простую подмножество, достаточное для того, что вам нужно сгенерировать. Один из подходов - загрузить схему XSD в объект DataSet и использовать этот объект DataSet в качестве модели. Доступ к метаданным DataSet намного проще, чем к XSD общего назначения. Это также позволит вам использовать существующий конструктор DataSet в Visual Studio для редактирования ваших моделей.

1
ответ дан 14 December 2019 в 13:43
поделиться
Другие вопросы по тегам:

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