2009-12-30 5 views
4

Программное обеспечение, в котором я работаю, предлагает преобразование данных как услугу для новых клиентов, которые ранее использовали другое подобное программное обеспечение. Я написал приложение VB.NET для автоматизации общих операций преобразования и имеет отдельную логику между известными поставщиками. Конкретный макет файла стал довольно распространенным, но из-за характера того, как приложение этого конкретного конкурента хранит информацию, определенные поля означают одно для одного клиента, а другое для другого клиента.Автоматизация сценариев в приложении VB.NET

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

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

Это пример, который я имел в моей голове:

# this is a comment 
RECORD INCLUDE(source[Class] != 'I' && source[Category] != 99); 

FIELDMAP 
    destination[name] == source[name]; 
    desintation[address] == source[mailingaddress1]; 
    ... 
END FIELDMAP 

BEGIN 
    # logic goes here 
END 

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

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

Благодарим за помощь. :)

ответ

2

IronPython (один из языков DLR, на который ссылается Джейк) является .NET-реализацией языка сценариев Python. Он позволяет вам получить доступ к .NET-коду (включая классы классов и класс, который вы написали) и будет отличным выбором для такого рода задач.

У него нет реальных зависимостей (кроме .NET Framework), и вам не нужно будет многому научиться синтаксису, специфичному для Python, чтобы выполнить работу.

(Если вы решите пойти с IronPython, я рекомендую использовать Notepad++ в качестве редактора.)

+0

Я никогда раньше не работал с Python, но IronPython выглядит многообещающим. Я сделаю это. Благодаря! –

1

Вместо того, чтобы писать пользовательский язык, вы можете вставить любой из DLR languages (IronPython, IronRuby или JScript), или вы можете использовать compiler services для компиляции VB.NET из вашего приложения.

Другая идея ... если вам нужно только изменить отображения между именами переменных, возможно, вы могли бы просто придумать небольшой XML-файл, который определял бы сопоставления.

+0

DLR языка звучит как то, что мне нужно, но я рассмотрю услуги компилятора, чтобы увидеть, если это является жизнеспособным вариантом. Сопоставление действительно является частью моей логики, но иногда мне нужно определить другую логику «на лету», потому что некоторые поля не отображаются линейно. Спасибо за ввод. :) –

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