مایکروسافت اینفوپس
اینفوپس نرم‌افزاری کاربردی است که جهت طراحی، انتشار، ورود داده و ارائه فرم‌های الکترونیکی حاوی داده‌های ساخت یافته، تولید شده‌است. به گفته یکی از افراد تیم سازنده، یکی از تصمیم گیری‌های اساسی در طراحی معماری این نرم‌افزار «وفادار ماندن به اصل جدایی داده‌ها از قالب نمایش آن‌ها در XML» بود. بنابراین در طراحی این نرم‌افزار از محیط طراحی فرم WYSIWYG استفاده شده‌است. در این محیط کنترل‌های گوناگون (از جمله لیست‌های بازشو، جعبه متن و ...) به فیلدهای اطلاعاتی پیوند خورده‌اند. این پیوند به صورت درختی سلسله مراتبی، از پوشه‌ها و فیلدهای اطلاعاتی رقم می‌خورد. این ابداع در سال ۲۰۰۰ توسط آدریانا نیاگو، ژان پاولی و همکارانشان صورت گرفت. می‌توان گفت که آن‌ها XML را با تبدیلات اکس‌اس‌ال و نماهای دی‌اچ‌تی‌ام‌ال نوشتند.
مایکروسافت، «اینفوپس» را نخستین بار در مجموعه مایکروسافت آفیس ۲۰۰۳ ارائه نمود. آن‌ها در تابستان ۲۰۱۰ نسخه جدیدی را انتشار داند که طی آن «اینفوپس» به دو نرم‌افزار کاربردی تقسیم شده بود: «اینفوپس دیزاینر ۲۰۱۰» و «اینفوپس فیلر ۲۰۱۰». همانطور که از نام آن‌ها پیداست، «اینفوپس دیزاینر ۲۰۱۰» جهت ساختن فرم و تعریف ساختارهای اطلاعات و «اینفوپس فیلر ۲۰۱۰» به منظور تکمیل اطلاعات و تأیید آن‌ها به کار می‌روند. آخرین نسخه اینفوپس در سال ۲۰۱۳ منتشر شد و توسعه آن متوقف شده و نسخه جدیدی عرضه نخواهد شد اما پشتیبانی از آن تا سال آوریل ۲۰۲۳ ادامه خواهد داشت.
«اینفوپس» به عنوان یکی از محصولات مایکروسافت به اشکال گوناگونی از سایر برنامه‌های کاربردی مجموعه مایکروسافت آفیس نظیر مایکروسافت ورد و مایکروسافت اکسل استفاده می‌کند. کاربر قبل از پر کردن فرم توسط «اینفوپس» باید توسعه دهنده طراح قالب «اینفوپس» را در اختیار داشته باشد. همه داده‌های موجود در فرم‌های «اینفوپس» در قالب XML ذخیره می‌شوند. در «اینفوپس» به این داده‌ها اصطلاحاً «منبع داده» (Data Source) می‌گویند. قالب (Template) فرم باید دست کم یک منبع داده داشته باشد. به آن «منبع داده اولیه» (Primary Data Source) می‌گویند و برای تأیید داده‌ها استفاده می‌شود. همچنین می‌توان از بیشمار «منبع داده ثانویه» (Secondary Data Source) جهت ذخیره‌سازی داده در فرم استفاده نمود. منابع داده ثانویه را می‌توان در داخل فرم ایجاد نمود و به کمک یک پیوند خارجی در یک وب سرویس یا نرم‌افزار شیرپوینت از محتوای آن استفاده نمود. در «اینفوپس» از انواع کنترل‌ها (نظیر تکست باکس، رادیوباتن، چک باکس و ...) برای ارائه داده‌ها در منبع داده یا نمایش آن به کاربران اصلی استفاده می‌شود. همچنین از یک نوع کنترل تحت عنوان «جدول تکرار شونده» (Repeating Table) و نیز «کنترل‌های تکرار شونده» درجداول داده و منابع داده ثانویه برای نمایش شایسته تر داده‌ها استفاده می‌شود. از طرف دیگر می‌توان از قالبهای آماده (Template) و کنترل‌های اکتیوایکس نیز در طراحی فرم‌ها سود جست. می‌توان عملیات خاصی را برای هر کنترل تعیین نمود. به این عملیات «قانون» (Rule) اطلاق می‌شود. این قوانین به سه دسته تقسیم بندی می‌شوند: قوانین قالب بندی، قوانین اعتبار سنجی و قوانین عملیاتی. از جمله قوانین قالب بندی می‌توان به مخفی کردن یا تغییر رنگ یک کنترل اشاره نمود. از نمونه قوانین اعتبار سنجی می‌توان قانون «فقط اعداد ۱۰ رقمی را وارد کنید» را بیان کرد. با استفاده از قوانین عملیاتی می‌توان «اینفوپس» را وادار نمود تا مجموعه‌ای از عملیات را با توجه به وارد شدن داده‌ای خاص (در سایر فیلدها) انجام دهد. قوانین ممکن است از طریق بررسی رفتار کاربر وادار به اجرا نمود (مثلاً کاربر روی یک دکمه کلیک کند). از طرف دیگر می‌توان اجرا شدن یک قانون را منوط به احراز یک شرایط ویژه نمود. مثلاً «اگر کاربر برای field۱ مقداری وارد نکرد، فیلد Total برابر ۱۰۰ قرار بده».
قوانین: (Rules) یک قانون پس از تحریک شدن فعالیت‌های مشخصی را اجرا می‌کند. قانون به واسطه انجام یک عمل توسط کاربر (مانند کلیک کردن روی یک دکمه) یا احراز یک شرایط خاص (مثلاً تغییر مقدار یک فیلد) تحریک می‌شود. با استفاده از قوانین می‌توان مقادیر فیلدهای منبع داده را تغییر داد، پایگاه داده را تأیید نمود یا از آن پرس و جو(Query) تهیه نمود، پیامی به کاربر نمایش داد، فرم‌هایی را باز یا بسته نمود یا اینکه نماهایی دیگری از فرم را به نمایش گذاشت.
اعتبار سنجی: (Data Validation)به کمک اعتبار سنجی می‌توان صحت مقادیر ورودی به فیلدها توسط کاربر را آزمود. اعتبارسنجی را می‌توان از طریق مقایسه مقدار ورودی توسط کاربر با یک الگوی از پیش تعیین شده، کنترل نوع داده ورودی یا هر روش دلخواه کاربر انجام داد.
قالب بندی شرایطی: (Conditional Formatting) می‌توان نمایش یا عدم نمایش دادن یک داده خاص یا رنگ و قالب آن را بر اساس مقادیر خاصی روی فرم تغییر داد.
کنترل‌های اکتیوایکس: (ActiveX Controls) «اینفوپس» از کنترل‌های اکتیوایکس متنوعی بهره می‌برد. می‌توان مقادیر مختلفی روی فرم را به کنترل‌های اکتیوایکس پیوند زد. از این دسته از کنترل‌ها می‌توان به لیست باکس، رادیوباتن، تکست باکس، دکمه و چک باکس اشاره نمود. علاوه بر این در «اینفوپس» کنترلی تحت عنوان «مقادیر محاسبه شده» (Calculated Values)وجود دارد که به کمک آن می‌توان نتایج عبارتهای XPath و بخش‌هایی که خود حاوی کنترل‌های دیگری هستند را به نمایش گذاشت. فراتر از این، در «اینفوپس» فیلدها و بخش‌های تکرار شونده نیز موجود است که به واسطه آن‌ها می‌توان داده‌های بسیاری را ذخیره نمود.
عبارتهای XPath و توابع: از عبارتهای XPath و توابع می‌توان را روی داده‌های فیلدها اعمال نمود تا مقادیر جدید محاسبه شوند. مثلاً تابع " concat(string(field۱ + field2), "#;", field3) " مجموع دو فیلد field۱ و field۲ را حساب کرده، در انتهای آن کاراکتر # را چسبانده و سپس مقدار فیلد field۳ را به انتهای آن می‌چسباند. توابع XPath برای انجام عملیات روی داده‌ها رشته‌ای، اجرای عملیات ساده ریاضی و بسیاری از موارد دیگر کاربرد دارند. به علاوه در «اینفوپس» می‌توان داده‌ها را فیلتر نمود. به عبارت دیگر مقادیر مشخصی از دادههای مختلف را جهت انجام عملی خاص روی آن‌ها برگزید.
ارتباط خارجی: (Connections to External Datasources)«اینفوپس» ارتباط با منابع داده خارجی را پشتیبانی می‌کند. شما در فرم‌های «اینفوپس» می‌توانید از پایگاه داده ساخته شده با SQL، مایکروسافت اکسس و شیرپوینت در فرم‌های «اینفوپس» استفاده کنید.
پشتیبانی از زبان‌های برنامه نویسی: از جاوااسکریپت، سی‌شارپ، ویژوال بیسیک و سایر زبان‌های برنامه‌نویسی می‌توانید برای ارتقای توانمندی‌های «اینفوپس» بهره مند شوید. با این روش می‌توانید پنل کاری HTML، داده‌های تکراری، «اکتیو دایرکتوری» و تقریباً هر کاری که در «اینفوپس» مقدور نیست را انجام دهید.
یکپارچگی با شیرپوینت: به بخش «یکپارچگی با شیرپوینت» مراجعه کنید.
قوانین کاربر: می‌توان پس از شناسایی کاربر، قالب بندی و رنگها و حالات نمایش را مطابق میل و سلیقه وی تغییر داد.
رعایت استاندارد: قابلیتهای قالب بندی و ایجاد واسط کاربر «اینفوپس» بسیار شبیه به محصول «ورد» می‌باشد.
از «اینفوپس» به منظور ایجاد فرمهای دریافت اطلاعات و ذخیره نمودن محتویات آن‌ها در یک فایل استفاده می‌شود. این فایل ممکن است روی هارد کامپیوتر یا روی یک وب سرور (که میزبان شیرپوینت است) قرار داشته باشد. همچنین از «اینفوپس» می‌توان برای دسترسی و نمایش داده‌های منابع گوناگون (وب سرویس‌ها، XML، پایگاه‌های داده، فرم‌های مختلف و ...) استفاده نمود. در عین حال با توجه به قوانین، شرایط و عملیات خاص، می‌توان کنترل مناسبی روی رفتار فرم‌ها اعمال نمود. برای باز کردن فرم‌های «اینفوپس» باید «اینفوپس دیزاینر» یا «اینفوپس فیلر» را روی سیستم خود نصب کرده باشید. البته در صورتی که شیرپوینت فایل را میزبانی کند، می‌توان با استفاده از مرورگر فایل را مشاهده نمود. «اینفوپس» بیشتر کاربرد تجاری دارد تا کاربرد شخصی زیرا «اینفوپس» به عنوان یک ابزار مشارکتی در گردآوری داده‌ها به شکلی ساخت یافته از افراد متعدد عمل می‌نماید. گسترش استفاده از «اینفوپس» در یک سازمان نیازمند ایجاد یک میزبان «شیرپوینت» یا تهیه چند لایسنس از «اینفوپس فیلر» می‌باشد. فرم‌های «اینفوپس» روی تلفن همراه نیز قابل مشاهده هستند. البته در صورنی که فایل روی میزبان «شیرپوینت» باشد یا از محصولات third-party استفاده شود. برای اجرای فرمها روی مرورگر ابتدا باید فایل را روی سروری که سرویس‌های مربوط به فرم‌های «اینفوپس» را پشتیبانی می‌کند بارگذاری کرد. برتری این رویکرد در این است که نیازی به نصب «اینفوپس» روی کلاینت نبوده و تنها وجود یک مرورگر کافی است تا کاربر بتواند فایل را در مرورگر ببیند. در این حالت می‌توان فرم را به شکل یک ایمیل برای کلاینت‌ها ارسال نمود یا مستقیماً روی یک لیست تولید شده توسط «شیرپوینت» قرار داد.
یکی از کاربردهای بسیار معمول «اینفوپس»، یکپارچه نمودن آن با فناوری «شیرپوینت» ماکروسافت می‌باشد. فرم‌های «اینفوپس» را می‌توان روی لیست‌ها و کتابخانه‌های «شیرپوینت» قرار داد. این کار به کمک «اینفوپس فیلر» یا محصولات third-party صورت می‌گیرد. از سوی دیگر سرویس‌های «اینفوپس» یک فرم را جهت قرار گرفتن روی سرور میزبان «شیرپوینت» مهیا می‌کنند. با این کار فرم مذکور به صورت یک صفحه HTML به همراه اسکریپت‌های مربوطه روی مرورگر کلاینت باز شده و پاسخ کاربر به صورت یک صفحه ای‌اس‌پی‌دات‌نت به سرور باز می‌گردد. در «شیرپوینت» «کتابخانه فرم» کتابخانه‌ای از تمپلیتهای «اینفوپس» است که به شکل یک سند طراحی شده‌اند. می‌توان فیلدهای «اینفوپس» را در «شیرپوینت» به گونه‌ای ارتقا داد که به صورت «ستونهای» داده در یک نما (View) دیده شوند. مثل سایر اسناد «شیرپوینت»، می‌توان برای هر فرم «اینفوپس» یک روند کار (Workflow) تعریف نمود تا از آن طریق به فیلدهای ارتقا داده شده دسترسی پیدا کنند.