|
|
InfoPath 2003. Новый продукт в семействе Microsoft Office System.
Мне в руки попалась вторая бета InfoPath 2003 - нового приложения от компании Microsoft. Свои заметки о ней я и решил изложить в небольшой публикации, ориентированной прежде всего на разработчиков и сотрудников IT отделов.
image001.png
image003.png
img08.png
NoteService.zip
Что из себя представляет этот продукт?
Это удобное средство для быстрого создания форм. Формы эти могут использовать различную привязку к данным, но InfoPath прежде всего ориентирован на XML и веб-сервисы.
Для чего это нужно?
Этот продукт позволит людям, далёким от программирования, быстро и корректно создавать формы, работающие с XML. При этом не требуется специальных знаний, а результат получается приемлемый (поддерживается валидация, автодополнение и т.п.). Вложения в обучение персонала InfoPath также невелики, так как этот продукт входит в Microsoft Office System и работает в привычной среде. Более того, InfoPath поддерживает весьма полезную возможность автоматической публикации форм в интранете или, например, в SharePoint, что позволяет избежать необходимости обновлять формы на всех клиентах, а значит существенно сэкономить время.
Удобно?
Да, в простых случаях действительно очень удобно. Особенно, если инфраструктура Ваших офисных приложений работает на веб-сервисах. Предоставляется WYSIWYG редактор, поддерживает drag-n-drop и т.п. Благодаря поддержке XML InfoPath очень просто интегрировать с BizTalk.
Я сотрудник IT отдела и прекрасно знаком с программированием. Мне необходимо, чтобы формы были не только простыми, но и работали на имеющейся бизнесс-логике. Как мне быть?
InfoPath формы можно расширить двумя возможными способами:
- Использовать скрипты (VBScript/Jscript, писать в прилагающемся Microsoft Script Editor)
- Использовать COM через те же самые скрипты. Эти COM компоненты могут быть написаны на чём угодно (.NET, VB6, VC++6, etc.)
Пример?
Для демонстрации возможностей InfoPath нам понадобится веб-сервис. Создадим его с помощью Visual Studio .NET Интерес представляет только метод RecordNote:
[WebMethod]
public string RecordNote(Note note) {
StreamWriter output=File.AppendText(LogFileName);
output.WriteLine(note.ToString());
output.Close();
return "note recorded";
}И собственно сам класс Note:
using System;
namespace Notes{
public class Note{
public Note(){}
public Note(DateTime created, string author, string text){
_created=created;
_author=author;
_text=text;
}
private DateTime _created;
private string _author;
private string _text;
public DateTime Created{
get{return _created;}
set{_created=value;}
}
public string Author{
get{return _author;}
set{_author=value;}
}
public string Text{
get{return _text;}
set{_text=value;}
}
public override string ToString() {
return String.Format("Created by {0}\nAt {1}\nText:{2}",Author,Created,Text);
}
}
}
Прошу прощения за краткость, но эта публикация посвящена InfoPath, а не созданию веб-сервисовJ Код сервиса я приложил в архиве.
Затем откроем InfoPath 2003, выберем меню File-> Design a Form->New from Data Source Укажем визарду нужные данные.


Перетащем нужные поля из data source

Нажмём кнопку preview в меню file. Заполним поля и нажмём submit. Если Вы правильно настроили веб-сервис и указали его InfoPath, у Вас на диске в логе по адресу c:\tmp\log.txt должна появиться новая запись. Естественно путь к логу лучше всего заменить на тот, что подходит Вам. Сделать это можно, поменяв константу LogFileName в файле NoteService.asmx.cs. Не забудьте убедиться, что каталог, в который Вы планируете писать лог наличиствует. Если у Вас возникли трудности с написанием веб-сервиса (например, нет VS.NET под рукой) попробуйте создать форму для какого-либо существующего веб-сервиса и убедитесь, как просто это сделать.
Примечания.
Не хватает поддержки Web Services Enhancements (WSE). А ведь без этого говорить о полноценной интеграции в Global XML Architecture (GXA) сложно. Не хватает и «родной» поддержки .NET. Оба эти вопроса решаемы, но хотелось бы иметь их уже решёнными в комплекте поставки.
Заключение.
InfoPath продукт интересный и представляет новый взгляд как на разработку офисных приложений, так и на работу с веб-сервисами.
Этот продукт, несомненно, найдёт своё применение в корпоративных интрасетях, особенно в компаниях, использующих BizTalk.
Андрей Филёв Microsoft Certified Solution Developer for Microsoft .NET
|