Borna66
04-01-2011, 12:15 AM
XAML زبان XML محور شركت مايكروسافت است براي ايجاد رابط كاربري. اين زبان هم قالب برداري و هم نقطهبيتي و هم چندرسانهاي و متن را پشتيباني ميكند. XAML اولين بار در سال 2003 ميلادي به عنوان زباني كه در پس Windows Presentation Foundation، كه ابزار طراحي رابط كاربري مايكروسافت براي ويندوز ويستا است، به مراجع فني ارايه شد.
XAML شركت مايكروسافت ، با تعيين روشن عمليات مختلف درگير در توليد نرمافزار، وعده ميدهد كه طلايهدار عصر جديدي از توليد برنامههاي كاربردي باشد. XAML به عنوان بخشي از Windows Presentation Foundation (http://searchvb.techtarget.com/sDefinition/0,290660,sid8_gci1189827,00.html) زيرساختي را فراهم ميسازد كه به طراحان، برنامهنويسان و مديران فرآيند كسب و كار امكان ميدهد كه حوزه تخصصي خود را در فرآيندي سيال هماهنگ نمايند. اين پيام روشني بود كه در گزارشي از Burton Group ارايه شد: " XAML، پيشرفت برنامهنويسي توصيفي در .Net 3.0 است."
**منظور از طراحی در این مقاله، طراحی گرافیکی نرم افزار یا رابط کاربری می باشد، با طراحی نرم افزار اشتباه گرفته نشود
با پيروي و مشاركت در رويههاي برتر طراحي، برنامهنويسان و معماران نرمافزار قادر خواهند بود با استفاده از لايههاي توصيفي جديد براي رابط كاربر و منطق تجاري، برنامههاي كاربردي به شدت تطابقپذيري را توليد كنند. شركتهايي كه از مزاياي XAML استقبال و ساختار چرخه حيات توليد نرمافزار خود را بر اساس ابزارهاي مبتني بر XAML بازسازي ميكنند، بسيار مولدتر خواهند بود. XAML از چنان پتانسيلي برخوردار است كه اگر مايكروسافت ميخواست به سمت استانداردها يا مجوزهاي "باز" حركت كند، صرف نظر از زبان پيادهسازي، مسلما به يك گرامر جهاني براي برنامهنويسي توصيفي تبديل ميشد.
ارتقاي همكاري و بهرهوري
با بهكارگيري ابزار برنامهسازي موجود، ميان رابط كاربري و تجربه كاربر از يك سو و برنامهنويسي برنامه كاربردي از سوي ديگري مانعي وجود دارد. XAML دو امر را محقق ميكند: 1) رابط كاربري را از قواعد تجاري جدا ميكند و 2) امكان دسترسي از درون Visual Studio و ابزار طراحي را به دادههايي يكسان فراهم مينمايد. به منظور جداسازي رابط كاربر از منطق تجاري به اصول معماري مناسب و اصول جداسازي صحيحي نيازمنديم. در مدل پيشين، همكاري برنامهنويسان و طراحان دشوار بود؛ چرا كه زمان بسياري ميبرد و نتيجه كار نيز چندان رضايتبخش نبود.
ران دسراننو ، مدير عامل Mobiform Software، كه ابزار گرافيكي Aurora XAML را ميسازد، عقيده دارد كه XAML و WPF قابليتي 10 برابر بيشتر از برنامههاي سنتي Scalable Vector Graphics در اختيار قرار ميدهد. وي ميافزايد كه اين فناوري به او امكان ميدهد كه برنامههايي را با رابط كاربري بهتر و در مدتزماني برابر با نصف زماني كه با ابزار قديميتر .Net ميبايست صرف ميكرد، توليد نمايد.
عموما، طراحان با استفاده از ابزار طراحي يا حتي قلم و كاغذ نمونهاي از آنچه كه برنامه در نهايت بايد شبيه آن باشد را ميسازند. ولي با توجه به محدوديتهاي زماني و تخصص برنامهنويسان، برنامه نهايي با انتظارات طراح فاصله ميگيرد. خانواده محصولات طراحي Expression شركت مايكروسافت و ساير ابزاري كه خروجي XAML توليد ميكنند، به طراحان امكان ميدهد كه رابط كاربري را طراحي و آن را در قالب يك فايل XAML ذخيره كنند، به طوري كه برنامهنويسان بتوانند برنامه كاربردي خود را بر روي آن پياده سازند. بنابراين، طراحان هنري رابط كاربري و برنامهنويسان در فرآيند توليد واحدي مشاركت خواهند كرد. در حال حاضر، محل نگهداري مستندات و فايلهاي صوتي و تصويري جداگانه است و زماني كه بخواهيم آنها را با هم تركيب كنيم، پيچيدگي به وجود ميآيد. با XAML ادغام هر چه بيشتر اين دو دنيا را شاهد خواهيد بود. به عنوان مثال، XAML چسباندن كليپهاي ويديويي را به محيط سه بعدي رابط كاربري را تسهيل ميكند.
شركتها به دنبال ارايه تجربه جديدتري به كاربران هستند. آنان در پي ابزاري هستند كه مصرفكنندگان را به خريد بيشتر ترغيب كند. با توجه به اين موضوع، انتظار ميرود كه برنامههاي CAD، GIS، تصويربرداري پزشكي، سيستمهاي كنترل صنعتي و ساير برنامههاي مبتني بر گرافيك و پويانمايي، از جمله پذيرندگان بعدي XAML باشند.
چالشهاي XAML
در واقع، XAML نشانگر گرايش عمده به انتزاع در توليد نرمافزار است. نتيجه اوليه صرف زمان كمتر براي نوشتن كد ميباشد. با اين حال ظهور برنامهنويسي مبتني بر مدل و ابزار طراحي در روند عملياتي برنامه كاربردي، ممكن است در ابتدا برخي برنامهنويسان را ناخوشنود سازد. ولي در نهايت، همگام با ظهور الگوها و رهنمودهاي مناسب كه گردش كار منطق تجاري توصيفي را از منطق كنترل كننده برنامه جدا ميسازد، برنامهنويسان به مرور توصيف منطق تجاري را به عنوان بخشي از طراحي خواهند پذيرفت و آن را در ايجاد راه حلهاي خلاق به كار خواهند گرفت.
مشكل ديگر در ايجاد گردش كارهاي مختلف است؛ گردش كارهايي كه نحوه استفاده از دادهها را در برنامه كاربردي تعيين ميكنند و آنهايي كه نقش شركت كنندگان متفاوت در يك برنامه را به تصوير ميكشند. متخصصين فرآيندهاي كسب و كار قادر خواهند بود كه گردش كارهاي پيشنهادي خود را به صورت فايلهاي Extensible Orchestration Markup Language (XOML)، كه نوع خاصي از فايل XAML است، ذخيره كنند. اين فايلها منطق گردش كاري برنامه كاربردي را به صورت بخشي از Windows Workflow Foundation (http://searchvb.techtarget.com/sDefinition/0,290660,sid8_gci1189840,00.html) تعيين ميكنند. WF هم گردش كاري سيستمي و هم گردش كاري انساني را، در قابل سناريوهاي متعدد، پوشش ميدهد. WF امكان دستكاريهاي خلاقانه در گردش كاريهاي در حال اجرا، از تغيير فعاليتها گرفته تا بارگذاري بخشهاي گردش كاري XAML، تا ايجاد يك فرآيند كاملا جديد را فراهم مينمايد. ابزار XAML تكرار اين مراحل را بسيار طبيعيتر ميكند؛ چرا كه ديگر گام ترجمه مانعي بر سر راه نيست. با اين حال براي اجتناب از خطا، بهتر است كه تحليلگران گردش كار فرآيندها را به گردش كارهاي كوچكتري از منطق تجاري در سطح برنامه كاربردي تجزيه كنند.
مايكروسافت اولين نسخه رسمي XAML را با انتشار ويندوز ويستا ارايه كرده است. اين شركت همچنين بر روي Windows Presentation Foundation Everywhere يا WPF/e نيز كار ميكند، كه اجازه خواهد داد بخشي از WPF در محيطهاي گوناگون اجرا شود؛ مانند مرورگرها و سيستم عاملهاي مختلف، مانند لينوكس و مكينتاش. البته، شركتهاي ديگري نيز شروع به ارايه ابزاري براي توليد فايلهاي XAML كردهاند، مانند Mobiform (http://www.mobiform.com/) با محصول Aurora و Electric Rain (http://www.erain.com/) با ZAM3D. ابزار XAML به همراه WPF شامل Expression Interactive Designer براي برنامه كاربردي، Expression Graphic Designer براي كارهاي گرافيكي و Expression Web Designer براي وبسايت نيز ميشود.
** به عنوان یک برنامه نویس، تا با XAML کار نکنید، نخواهید دانست معنی واقعی امکاناتی که می دهد چیست و حتی تصوری نبز نخواهید داشت،
مثالی که زده می شود تنها قصد نشان دادن بخش کوچکی از امکاناتی که در راه است دارد: فرم خود را طراحی می کنید، فرمی بسیار ساده با چند دکمه برروی آن، که تنها منطق برنامه نویسی درست می باشد حال نرم افزار Expression Graphic Designer را اجرا کرده و فرم خود را در آن نرم افزار باز می کنید (فرم شما در Vs.Net همچنان باز است) در محیطی با امکانات Photo Shop فرم خود را از نظر گرافیکی (محل، اندازه، رنگ، افکت های رنگی و ...) تغییر می دهید و ذخیره می کنید و بلافاصله نتیجه تغییرات در Vs.Net ظاهر می گردد. پس از طراحی فرم (چه یک صفحه وب باشد، یا ویندوز فرم) ممکن است کاربر نهایی از ظاهر طراحی شده راضی نباشد، به راحتی و با استفاده از Expression Graphic Designer می تواند تغییرات دلخواه خود را اعمال کند (استفاده از این نرم افزار نیاز به هیچ دانش خاصی ندارد) و دیگر شما درگیر طراحی فرمی که هیچ گاه کاربر خود را راضی نمی کند، نخواهید شد.)
XAML شركت مايكروسافت ، با تعيين روشن عمليات مختلف درگير در توليد نرمافزار، وعده ميدهد كه طلايهدار عصر جديدي از توليد برنامههاي كاربردي باشد. XAML به عنوان بخشي از Windows Presentation Foundation (http://searchvb.techtarget.com/sDefinition/0,290660,sid8_gci1189827,00.html) زيرساختي را فراهم ميسازد كه به طراحان، برنامهنويسان و مديران فرآيند كسب و كار امكان ميدهد كه حوزه تخصصي خود را در فرآيندي سيال هماهنگ نمايند. اين پيام روشني بود كه در گزارشي از Burton Group ارايه شد: " XAML، پيشرفت برنامهنويسي توصيفي در .Net 3.0 است."
**منظور از طراحی در این مقاله، طراحی گرافیکی نرم افزار یا رابط کاربری می باشد، با طراحی نرم افزار اشتباه گرفته نشود
با پيروي و مشاركت در رويههاي برتر طراحي، برنامهنويسان و معماران نرمافزار قادر خواهند بود با استفاده از لايههاي توصيفي جديد براي رابط كاربر و منطق تجاري، برنامههاي كاربردي به شدت تطابقپذيري را توليد كنند. شركتهايي كه از مزاياي XAML استقبال و ساختار چرخه حيات توليد نرمافزار خود را بر اساس ابزارهاي مبتني بر XAML بازسازي ميكنند، بسيار مولدتر خواهند بود. XAML از چنان پتانسيلي برخوردار است كه اگر مايكروسافت ميخواست به سمت استانداردها يا مجوزهاي "باز" حركت كند، صرف نظر از زبان پيادهسازي، مسلما به يك گرامر جهاني براي برنامهنويسي توصيفي تبديل ميشد.
ارتقاي همكاري و بهرهوري
با بهكارگيري ابزار برنامهسازي موجود، ميان رابط كاربري و تجربه كاربر از يك سو و برنامهنويسي برنامه كاربردي از سوي ديگري مانعي وجود دارد. XAML دو امر را محقق ميكند: 1) رابط كاربري را از قواعد تجاري جدا ميكند و 2) امكان دسترسي از درون Visual Studio و ابزار طراحي را به دادههايي يكسان فراهم مينمايد. به منظور جداسازي رابط كاربر از منطق تجاري به اصول معماري مناسب و اصول جداسازي صحيحي نيازمنديم. در مدل پيشين، همكاري برنامهنويسان و طراحان دشوار بود؛ چرا كه زمان بسياري ميبرد و نتيجه كار نيز چندان رضايتبخش نبود.
ران دسراننو ، مدير عامل Mobiform Software، كه ابزار گرافيكي Aurora XAML را ميسازد، عقيده دارد كه XAML و WPF قابليتي 10 برابر بيشتر از برنامههاي سنتي Scalable Vector Graphics در اختيار قرار ميدهد. وي ميافزايد كه اين فناوري به او امكان ميدهد كه برنامههايي را با رابط كاربري بهتر و در مدتزماني برابر با نصف زماني كه با ابزار قديميتر .Net ميبايست صرف ميكرد، توليد نمايد.
عموما، طراحان با استفاده از ابزار طراحي يا حتي قلم و كاغذ نمونهاي از آنچه كه برنامه در نهايت بايد شبيه آن باشد را ميسازند. ولي با توجه به محدوديتهاي زماني و تخصص برنامهنويسان، برنامه نهايي با انتظارات طراح فاصله ميگيرد. خانواده محصولات طراحي Expression شركت مايكروسافت و ساير ابزاري كه خروجي XAML توليد ميكنند، به طراحان امكان ميدهد كه رابط كاربري را طراحي و آن را در قالب يك فايل XAML ذخيره كنند، به طوري كه برنامهنويسان بتوانند برنامه كاربردي خود را بر روي آن پياده سازند. بنابراين، طراحان هنري رابط كاربري و برنامهنويسان در فرآيند توليد واحدي مشاركت خواهند كرد. در حال حاضر، محل نگهداري مستندات و فايلهاي صوتي و تصويري جداگانه است و زماني كه بخواهيم آنها را با هم تركيب كنيم، پيچيدگي به وجود ميآيد. با XAML ادغام هر چه بيشتر اين دو دنيا را شاهد خواهيد بود. به عنوان مثال، XAML چسباندن كليپهاي ويديويي را به محيط سه بعدي رابط كاربري را تسهيل ميكند.
شركتها به دنبال ارايه تجربه جديدتري به كاربران هستند. آنان در پي ابزاري هستند كه مصرفكنندگان را به خريد بيشتر ترغيب كند. با توجه به اين موضوع، انتظار ميرود كه برنامههاي CAD، GIS، تصويربرداري پزشكي، سيستمهاي كنترل صنعتي و ساير برنامههاي مبتني بر گرافيك و پويانمايي، از جمله پذيرندگان بعدي XAML باشند.
چالشهاي XAML
در واقع، XAML نشانگر گرايش عمده به انتزاع در توليد نرمافزار است. نتيجه اوليه صرف زمان كمتر براي نوشتن كد ميباشد. با اين حال ظهور برنامهنويسي مبتني بر مدل و ابزار طراحي در روند عملياتي برنامه كاربردي، ممكن است در ابتدا برخي برنامهنويسان را ناخوشنود سازد. ولي در نهايت، همگام با ظهور الگوها و رهنمودهاي مناسب كه گردش كار منطق تجاري توصيفي را از منطق كنترل كننده برنامه جدا ميسازد، برنامهنويسان به مرور توصيف منطق تجاري را به عنوان بخشي از طراحي خواهند پذيرفت و آن را در ايجاد راه حلهاي خلاق به كار خواهند گرفت.
مشكل ديگر در ايجاد گردش كارهاي مختلف است؛ گردش كارهايي كه نحوه استفاده از دادهها را در برنامه كاربردي تعيين ميكنند و آنهايي كه نقش شركت كنندگان متفاوت در يك برنامه را به تصوير ميكشند. متخصصين فرآيندهاي كسب و كار قادر خواهند بود كه گردش كارهاي پيشنهادي خود را به صورت فايلهاي Extensible Orchestration Markup Language (XOML)، كه نوع خاصي از فايل XAML است، ذخيره كنند. اين فايلها منطق گردش كاري برنامه كاربردي را به صورت بخشي از Windows Workflow Foundation (http://searchvb.techtarget.com/sDefinition/0,290660,sid8_gci1189840,00.html) تعيين ميكنند. WF هم گردش كاري سيستمي و هم گردش كاري انساني را، در قابل سناريوهاي متعدد، پوشش ميدهد. WF امكان دستكاريهاي خلاقانه در گردش كاريهاي در حال اجرا، از تغيير فعاليتها گرفته تا بارگذاري بخشهاي گردش كاري XAML، تا ايجاد يك فرآيند كاملا جديد را فراهم مينمايد. ابزار XAML تكرار اين مراحل را بسيار طبيعيتر ميكند؛ چرا كه ديگر گام ترجمه مانعي بر سر راه نيست. با اين حال براي اجتناب از خطا، بهتر است كه تحليلگران گردش كار فرآيندها را به گردش كارهاي كوچكتري از منطق تجاري در سطح برنامه كاربردي تجزيه كنند.
مايكروسافت اولين نسخه رسمي XAML را با انتشار ويندوز ويستا ارايه كرده است. اين شركت همچنين بر روي Windows Presentation Foundation Everywhere يا WPF/e نيز كار ميكند، كه اجازه خواهد داد بخشي از WPF در محيطهاي گوناگون اجرا شود؛ مانند مرورگرها و سيستم عاملهاي مختلف، مانند لينوكس و مكينتاش. البته، شركتهاي ديگري نيز شروع به ارايه ابزاري براي توليد فايلهاي XAML كردهاند، مانند Mobiform (http://www.mobiform.com/) با محصول Aurora و Electric Rain (http://www.erain.com/) با ZAM3D. ابزار XAML به همراه WPF شامل Expression Interactive Designer براي برنامه كاربردي، Expression Graphic Designer براي كارهاي گرافيكي و Expression Web Designer براي وبسايت نيز ميشود.
** به عنوان یک برنامه نویس، تا با XAML کار نکنید، نخواهید دانست معنی واقعی امکاناتی که می دهد چیست و حتی تصوری نبز نخواهید داشت،
مثالی که زده می شود تنها قصد نشان دادن بخش کوچکی از امکاناتی که در راه است دارد: فرم خود را طراحی می کنید، فرمی بسیار ساده با چند دکمه برروی آن، که تنها منطق برنامه نویسی درست می باشد حال نرم افزار Expression Graphic Designer را اجرا کرده و فرم خود را در آن نرم افزار باز می کنید (فرم شما در Vs.Net همچنان باز است) در محیطی با امکانات Photo Shop فرم خود را از نظر گرافیکی (محل، اندازه، رنگ، افکت های رنگی و ...) تغییر می دهید و ذخیره می کنید و بلافاصله نتیجه تغییرات در Vs.Net ظاهر می گردد. پس از طراحی فرم (چه یک صفحه وب باشد، یا ویندوز فرم) ممکن است کاربر نهایی از ظاهر طراحی شده راضی نباشد، به راحتی و با استفاده از Expression Graphic Designer می تواند تغییرات دلخواه خود را اعمال کند (استفاده از این نرم افزار نیاز به هیچ دانش خاصی ندارد) و دیگر شما درگیر طراحی فرمی که هیچ گاه کاربر خود را راضی نمی کند، نخواهید شد.)