بررسی دات نت 4.0 – کتابخانه های کلاس پایه

قرار بود طی چنیدن پست به بررسی ویژگی های جدید دات نت فریم ورک 4.0 بپردازم. در مطلب قبلی به بررسی تغییرات Common Language Runtime پرداختم. با وقفه تقریباً طولانی که به علت اتفاقات اخیر در ایران و امتحانات دانشگاه ها بود، امروز نگاهی گذرا به تغییرات کتابخانه های کلاس پایه دات نت فریم ورک 4.0 بتا 1 خواهیم داشت.

قسمت دوم : تغییرات کتابخانه های کلاس پایه

در این نسخه از دات نت شاهد بهبودهایی در سیستم های ورودی/خروجی، هندل کردن استثناها، Reflection و تغییراتی در انواع مجموعه ای (Collectionها) خواهیم بود. در این مطلب با برخی از مهمترین تغییرات کتابخانه های کلاس پایه یا Base Class Libraries در دات نت فریم ورک 4.0 بتا 1 آشنا خواهیم شد.

BigInteger

ساختار جدید System.Numerics.BigInteger یک نوع داده ای صحیح با دقت دلخواه است که تمام عملیات های استاندارد یک نوع داده Integer را پشتیبانی می کند. این نوع داده می تواند در تمام زبان های مبتنی بر دات نت مورد استفاده قرار گیرد. زبان های جدیدی مثل F#x و IronPython به صورت توکار از این نوع داده پشتیبانی می کنند.

Tuples

یک تاپل (Tuple) یک ساختار داده ای Generic ساده است که مجموعه ای از آیتم های ناهمگن منظم را نگهداری می کند. تاپل ها به صورت Native یا محلی در زبان هایی مثل F#x و IronPython پشتیبانی می شوند، در این نسخه هر زبان برنامه نویسی مبتنی بر دانت نتی مانند C#x و Visual Basic قادر به استفاده از تاپل ها هستند. دات نت فریم ورک 4.0 بتا هشت کلاس جدید جنریک Tuple اضافه کرده است، همچنین این کلاس Tuple شامل متدهای استاتیکی برای ایجاد تاپل هاست.

Exceptions Handling

کتابخانه پایه دات نت فریم ورک 4.0 شامل فضای نام جدیدی به نام System.Runtime.ExceptionServices است که قادر به هندل کردن استثناهایی که corrupted state گفته می شوند، خواهد بود.

I/O

بهبودهایی در سیستم I/O دات نت فریم ورک بوجود آمده است. به طور مثال متدهای شمارشی در کلاس های Directory و DirectoryInfo به جای آرایه، یک مجموعه IEnumerable(T)x بر می گردانند. این کار باعث بهبود این متدها می شود، زیرا دیگر لازم نیست که این متدها ابتدا حافظه ای (معمولاً بزرگ) به آرایه ها اختصاص بدهند، یا منتظر پر شدن تمام خانه های آن آرایه شوند، شما می توانید قبل از اینکه این مجموعه به طور کامل پر شود، از آیتم هایی که تا به حال در مجموعه قرار گرفته اند استفاده کنید.

فضای نام System.IO.MemoryMappedFiles اجازه استفاده از عمل Memory Mapping که در ویندوز موجود است را به برنامه نویس می دهد. شما با استفاده از این قابلیت می توانید فایل های با حجم بسیار بالا را در حافظه باز یا ویرایش کنید. فضای نام System.IO.UnmanagedMemoryAccessor نیز اجازه دسترسی تصادفی به حافظه مدیریت نشده (Unmanaged Memory) را به شما می دهد. بهبودهایی نیز در کلاس های فضای نام System.IO.Compression.DeflateStream و System.IO.Compression.GZipStream بوجود آمده تا فشرده سازی داده ها بهتر از قبل باشند.

Reflection

دات نت فریم ورک 4.0 بتا 1 قابلیت هایی را برای مانیتور کردن کارایی دامنه اپلیکیشن های شما فراهم می کند. با استفاده از دات نت فریم ورک 4.0 مدیریت بهتری بر سیکل زندگی پراسس های اپلیکیشن خود خواهید داشت.

x64-bit View and Other Registry Improvements

بهبودهای کلاس های رجیستری ویندوز در دات نت 4.0 شامل:

  • توانایی مشخص نمودن نمای 32-بیتی یا 64-بیتی از رجیستری ویندوز با استفاده از Microsoft.Win32.RegistryView زمانی که کلیدهای پایه را باز می کنید
  • Microsoft.Win32.RegistryOptions که به شما اجازه می دهد یک کلید فرار (volatile) در رجیستری ویندوز بسیازید که با ریستارت کردن ویندوز از بین خواهد رفت

Threading

  • Unified Model for Cancellation : دات نت فریم ورک 4.0 بتا مدل واحدی برای کنسل کردن عملیات های غیر همزمان یا asynchronous فراهم می کند. کلاس جدید System.Threading.CancellationTokenSource برای ایجاد یک CancellationToken مورد استفاده قرار می گیرد که ممکن است به هر تعداد عملیات روی چندین  thread پاس شود. با صدا زدن متد Cancel()x در شیء token source، مشخصه IsCancellationRequested برابر true می شود و تمام عملیاتی که در این token ثبت شده اند در حالت wait قرار می گیرند.
  • Thread-Safe Collection Classes : فضای نام جدید System.Collections.Concurrent مجموعه ای از کلاس های thread-safe را معرفی می کند. استفاده از این کلاس ها در سناریوهای multi thread باعث بهبود بخشیدن کارایی انواع مجموعه ای مثل ArrayList و List(T)x می شود.

farasun.wordpress.com

در این مطلب کوتاه نمی توان تمام تغییرات جدید کتابخانه های کلاس پایه دات نت 4.0 را به طور کامل شرح داد. در مطالب بعدی به تغییرات جدید زبان های ویژوال بیسیک و سی شارپ در نسخه 2010 آن ها خواهیم پرداخت. برای از دست ندادن این مطالب مشترک فید فراسان شوید!

چگونه یک رابط کاربری مناسب و استاندارد طراحی کنیم؟

اگر شما قوی ترین نرم افزار را در یک زمینه خاص تولید کنید اما یک رابط کاربری مناسب برای آن طراحی نکنید، کاربران از آن استفاده نخواهند کرد. طراحی رابط کاربر مناسب، مسیر ارتباطی موثری بین کاربران و نرم افزار کامپیوتری ایجاد می کند. اگر استفاده از نرم افزار مشکل باشد، اگر باعث بروز اشتباهات متعدد شود، یا اگر نرم افزار کاربر را به راحتی به هدفش نرساند، علیرغم قدرت عملکردی که ارائه می کند، کاربران علاقه ای به استفاده از آن نخواهند داشت. طراحی رابط کاربری مناسب یکی از مهمترین مسایل تولید نرم افزار است، چون کاربر فقط رابط کاربری که با آن سر و کار دارد را درک می کند و آن را به عنوان نرم افزار می شناسد.

به علت طولانی بودن مطلب، این مقاله را می توانید در قالب PDF دانلود کنید +
برای داشتن یک طراحی خوب در زمینه رابط کاربری، ابتدا باید کاربران نرم افزار را شناسایی کنید، سن، سطح سواد، نیازها و کارهایی که می خواهند با نرم افزار انجام بدهند را در نظر بگیرید. به طور مثال وقتی می خواهید نرم افزاری برای گروه سنی کودکان تولید کنید باید طراحی را با توجه با سن کاربران انجام دهید. پس از مشخص کردن کاربران و مشخصات آنان، سناریوهای هر کاربر را که در بخش تحلیل ایجاد شده اند را مورد بررسی قرار دهید و Use caseهای هر کاربر را در نظر بگیرید تا مجموعه ای از اشیاء و اعمال مربوط به آن ها مشخص شوند. این اجزاء معمولاً مبنایی برای ایجاد صفحات (منظور از صفحه، هر جزئی از رابط کاربری است که یکسری اجزای مربوط به هم را در کنار هم قرار می دهد، نه فقط صفحات وب) رابط کاربری می شوند که شامل طراحی گرافیکی، آیکون ها، متن ها، توضیحات صفحه و منوها می باشد.

office2007windows
خیلی از مدیر پروژه های شرکت های نرم افزاری در ایران، طراحی رابط کاربری را امری پیش پا افتاده می دانند و ایجاد آن را هم به دست برنامه نویسان می سپارند. همین که رابط کاربری، ظاهری جذاب و زیبا داشته باشد برای آنان کافی است. این ها هر چه می توانند از تصاویر گرافیکی و کامپوننت های UI برای ایجاد ظاهر زیبا در نرم افزارهایشان استفاده می کنند تا در نظر کاربر نرم افزارشان حرفه ای به نظر آید. درست است که زیبایی یکی از فاکتورهای مهم یک رابط کاربری خوب است اما همه چیز نیست. در اینجا به برخی از اصول طراحی رابط کاربری خوب اشاره می کنیم :

  • استفاده از عنوان های با معنی برای اجزای صفحه : برای اجزای رابط کاربری خود عنوان های مناسبی انتخاب کنید تا کاربر منظورتان را با یک نگاه بفهمد. برای منو ها و دکمه ها عنوان های با معنی بگذارید که کاری که انجام می دهند را در یک یا دو کلمه توصیف کند. عنوان های بی معنی و طولانی برای کاربران ناخوشایند هستند.
  • استفاده از آیکون های مناسب و با معنی : هرجایی که قرار است از آیکون استفاده کنید، به جز زیبایی ظاهر آن، به اندازه آن در واحد پیکسل و با معنی بودن آن هم توجه کنید. آیکون ها باید نماد مشخصی از تابعی باشند که قرار است آن را صدا بزنند. هرجا که می توانید به جای منوها از شکلک ها استفاده کنید، چون کاربران ارتباط بهتری با شکلک ها برقرار می کنند تا منوهای تو در تو.
  • جزئیات تکنیکی از دید کاربر پنهان باشد : شما نباید کاربر را درگیر مسائل تکنیکی کنید، حتی اگر این مسایل از نظر شما مسایل راحت و پیش پا افتاده ای باشند. به طور مثال شما نباید کاربر را مجبور کنید که یک کلید خاص را در رجیستری ویندوز انتخاب کند!
  • در هر صفحه پیش فرض هایی داشته باشید : در هر صفحه باید چند عمل پیش فرض برای کاربر تعریف کنید. اگر در حال گرفتن اطلاعات از کاربر هستید، باید دکمه پیش فرضی برای کاربر قرار دهید که با کلیک روی آن تمام اطلاعات آن فرم پاک یا به اصطلاح Reset شود. یا به طور مثال دکمه های تایید یا OK در خیلی از فرم ها به عنوان پیش فرض آن فرم قرار داده می شوند تا کاربر با زدن دکمه Enter قادر به اجرای تابع مورد نظر باشد.
  • کاهش بار فکری کاربر : هر چه کاربر بیشتر مجبور باشد بخاطر بسپارد، ارتباط او با نرم افزار دارای خطای بیشتری خواهد بود. یک رابط کاربری مناسب به حافظه کاربر متکی نیست. هر زمانی که لازم شد، نرم افزار باید اطلاعات مورد نیاز را ذخیره کند و به هنگام نیاز آن اطلاعات را به کاربر یادآوری کند.
  • تعریف کلیدهای میانبر : سعی کنید کلیدهای میانبر مناسبی برای توابع پرکاربرد موجود در نرم افزار ایجاد کنید. این کلیدهای میانبر باید با اعمالی که قرار است انجام دهند به گونه ای مرتبط شوند که بخاطر سپردن آن ها توسط کاربران آسان باشد. برای مثال کلید Ctrl به علاوه حرف اول عنوان تابع مورد نظر. اگر برای کاری کلید میانبر استانداردی وجود دارد (مثل Ctrl+C برای کپی)، همان را استفاده کنید، چون عوض کردن این گونه کلیدها باعث سردرگمی کاربران می شود.
  • رابط کاربری را بر اساس دنیای واقعی مدل کنید : به طور مثال برای ثبت فاکتور در یک سیستم فروش، سعی کنید صفحات شبیه به فاکتورهای واقعی طراحی شوند. این کار باعث می شود که کاربر احساس راحتی با نرم افزار شما کند.
  • اطلاعات را به تدریج نمایش دهید : اگر قرار است اطلاعات گوناگون و حجیمی را به کاربر نمایش دهید، ابتدا آن را در بالاترین سطح مجردسازی به کاربران نمایش دهید. جزئیات بیشتر باید به علاقه کاربر و با دستور او ارائه شوند.
  • فراهم نمون ارتباط قابل انعطاف : چون کاربران مختلف علایق گوناگون و سطح آشنایی متفاوتی با کامپیوتر دارند وجود انتخاب نحوه ارتباط ضروری است. نرم افزار باید به کاربر امکان دهد که از ماوس، صفحه کلید، قلم دیجیتالی یا حتی دستورات صوتی برای اجرای کارهای مختلف بهره بگیرد.
  • کارهای طولانی باید وقفه پذیر باشند : کاربر باید بتواند اعمال در حال اجرای طولانی را متوقف کند. کاربر باید از زمان اجرای یک کار آگاهی داشته باشد تا بتواند بهتر در مورد اجرا یا عدم اجرای آن کار تصمیم بگیرد. مثال ساده این عمل را در کپی کردن فایل ها دیده اید، کاربر از زمان اجرای عمل باخبر است و هرگاه که تصمیم بگیرد می تواند آن را متوقف کند.
  • کارهای حساس باید برگشت پذیر باشند : ممکن است کاربر عملی را به اشتباه انجام دهد و نیاز داشته باشد آن عمل اشتباه را لغو کند. نرم افزار باید چنین امکانی را در کارهای حساس به کاربر ارائه کند. به طور مثال در ویرایشگرهای تصویر، اگر به اشتباه جایی از تصویر را خراب کنید، به راحتی با یک عمل Undo می توانید اشتباه خود را جبران کنید.
  • رابط کاربری باید یکنواخت باشد : علاوه بر رعایت استانداردهای معمول یک رابط کاربری، شما بایستی استانداری برای طراحی رابط خود تعریف کنید تا تمام صفحات رابط شما از یکنواختی مشخصی برخوردار باشند. رابط کاربری شما باید اطلاعات را به صورت یکنواخت نمایش دهد یا دریافت کند. این کار باعث می شود تا کاربر با صفحات جدیدی که برایش باز می شوند نا آشنا نباشد و با آن ها راحت کار کند.

gmail-web

حتماً عوامل موثر دیگری هم در ایجاد رابط کاربری مناسب و استاندارد وجود دارند که در این مطلب به آن ها اشاره نشد. موضوع مهمی که حتماً باید در نظر بگیرید، پلت فرمی است که قرار است نرم افزار شما روی آن کار کند. به طور مثال اگر نرم افزار شما تحت وب است طراحی شما شرایط متفاوتی با یک نرم افزار تحت دسکتاپ دارد. هر چند که مسایل بالا هم در نرم افزارهای تحت وب قابل پیاده سازی است و هم در نرم افزارهای تحت دسکتاپ. همچنین طراحی رابط کاربری در سیستم عامل های مختلف نیز تفاوت های زیادی با هم دارند. در این مطلب ما به صورت Abstract و جدا از پلت فرم به مسئله طراحی رابط کاربری نگاه کردیم.
مثال هایی از رابط کاربری استاندارد در نرم افزارهای امروز را می توان Gmail در وب، Office 2007 در ویندوز و فایرفاکس در لینوکس عنوان کرد.

دریافت این مقاله در قالب PDF

مطالب مرتبط :

می توانید برای مطلع شدن از مطالب جدید فراسان، مشترک فید آن شوید!

سیلورلایت 3.0 ارائه شد

تمام کسانی که به تکنولوژی های روز دنیای برنامه نویسی، مخصوصاً فناوری های شرکت مایکروسافت علاقه دارند، تا به حال باید در مورد نسخه جدید Silverlight چیزهایی شنیده باشند و یا مقالاتی در مورد ویژگی های جدید آن مطالعه کرده باشند. این نسخه از سیلورلایت دارای ویژگی های جدیدی است که هر توسعه دهنده ی وبی را به استفاده از آن علاقه مند می کند.

18 مارس در MIX09 مایکروسافت نسخه ی بتای سیلورلایت 3.0 را معرفی کرد. در این کنفرانس که در لاس وگاس برگزار شد، علاوه بر نسخه جدید سیلورلایت، IIS 7، ASP.NET MVC Framework، IE 8، Blend 3، Visual Studio 2010 نیز مورد بررسی قرار گرفتند.  در این نوشته قصد داریم به معرفی ویژگی های جدید سیلورلایت نسخه 3.0 بتا بپردازیم.

اجرا خارج از مرورگر Out of Browser

یکی از مهمترین و پر سر و صداترین ویژگی های سیلورلایت جدید، امکان اجرای برنامه های مبتنی بر سیلورلایت بدون استفاده از مرورگر وب است.با سیلورلایت 3 قادرید اپلیکیشن هایی بسازید که خارج از مرورگر و در دسکتاپ شما اجرا می شوند. در این حالت کاربران می توانند از اپلیکیشن شما در حالت آفلاین هم استفاده کنند.

بهبود های گرافیکی

سیستم گرافیکی سیلورلایت بهبودهای زیادی در این نسخه پیدا کرده است. پشتیبانی از افکت های قابل برنامه ریزی، perspective 3D، ایجاد فایل های Bitmap با استفاده از API های جدید سیلورلایت از این جمله اند. این بهبودهای گرافیکی، توسعه دهندگان را قادر میسازد تا مانور بیشتری روی تصاویر بدهند و افکت های تصویری مطلوب خود را تولید کنند.

کنترل های جدید

چندین کنترل جدید به SDK سیلورلایت اضافه شده اند و برخی از کنترل های موجود بهبود یافته اند. در این نسخه کنترل های جدید برای اعتبار سنجی داده های ورودی و هندل کردن خطاهای رابط کاربری معرفی شده اند. این کنترل ها به هنگام وارد کردن داده ها توسط کاربر به اعتبار سنجی آن و احتمالاً نشان دادن پیغام خطا می پردازند. برخی از کنترل های موجود در Silverlight Control Toolkit از جمله WrapPanel, DockPanel, ViewBox, AutoCompleteBox,Label در SDK نسخه 3.0 سیلورلایت ارائه شده اند. کنترل جدید SaveFileDialog هم به کاربران اجازه ذخیره فایل ها را روی هارد دیسک کامپیوترشان می دهد.

کنترل های پیشرفته تر مثل DataForm که امکان کار با داده ها (اضافه کردن، حذف و ویرایش) و حرکت میان آن ها را به شما می دهد. DataPager که امکان مرور صفحه به صفحه داده ها را به کاربر نهایی می دهد و Navigation Framework که برای حرکت میان صفحات یک اپلیکیشن سیلورلایت کاربرد دارد.

قابلیت های چند رسانه ای

چیزی که از قبل معلوم بود، پشتیبانی سیلورلایت 3.0 از فرمت های H264 و ACC است. پشتیبانی از RAW و امکان ایجاد Codecهای سفارشی توسط توسعه دهندگان از دیگر قابلیت های اضافه شده به سیستم مالتی مدیای سیلورلایت است.

بهبود کیفیت رندر متون Text Rendering

استفاده از افکت های انیمیشنی در متن ها و ایجاد متونی واضح تر برای کاربر در این نسخه از سیلورلایت بیشتر به چشم می آیند. با استفاده از API جاوا اسکریپت موجود در این نسخه، اپلیکیشن های سیلورلایت می توانند از فونت های محلی روی سیستم کاربر نیز علاوه بر فونت های روی سرور، استفاده کنند، که این باعث کاهش زمان بارگذاری اپلیکیشن می شود. در نسخه نهایی سیلورلایت قرار است از فناوری ClearType هم برای افزایش کیفیت متون استفاده شود.

بایند کردن عنصر به عنصر Element-to-Element Binding

این قابلیت به عناصر موجود روی رابط کاربری اجازه بایند شدن به مشخصات (Properties) یکدیگر را می دهد. مثلاً بدون کد نویسی می توانید مقدار یک Slider را به پراپرتی Text یک TextBox نسبت دهید. با این کار هر گاه مقدار Slider توسط کاربر تغییر کند، مقدار Text مربوط به TextBox به صورت خودکار آپدیت می شود.

Network Monitoring API

با استفاده از این API خواهید توانست اتصال به اینترنت را در یک اپلیکیشن سیلورلایت چک کنید. برخی مواقع لازم است که بدانید کاربر با اینترنت ارتباط دارد یا از آن Disconnect شده است.

Binary XML

برای ارتباط با سرویس های WCF، علاوه بر فرمت معمولی مبتنی بر متن XML، می توانید از فرمت فشرده Binary XML در سیلورلایت 3 استفاده کنید.

سرویس های .NET RIA

به همراه سیلورلایت 3 بتا، مایکروسافت فریم ورک .NET RIA Services را منتشر کرده است. این ابزار سعی می کند تا معماری n-tier را ساده تر کند و دو فناوری Silverligt و ASP.NET را به هم نزدیک تر نماید. .NET RIA Services الگویی برای نوشتن منطق برنامه در لایه میانی اپلیکیشن به شما ارائه می کند و دستیابی به داده ها را کنترل می کند. وظیفه هایی مثل اعتبار سنجی داده ها، تشخیص هویت و ارتباط میان سیلورلایت در کلاینت و ASP.NET در لایه میانی را بر عهده دارد.

واضح است که در این مطلب کوتاه نمی توان به بررسی تمام ویژگی های جدید سیلورلایت 3.0 پرداخت. مایکروسافت تمام تلاش خود را می کند تا آینده دنیای نرم افزار را در دست بگیرد و استانداردهای نرم افزارهای آینده را از همین حالا تعیین کند. مایکروسافت قدم های اولیه را خیلی وقت است به درستی برداشته است و در این راه با وجود رقبای بزرگی مثل گوگل، IBM و ادوبی تا به حال موفق بوده است. باید منتظر ماند و دید آیا تلاش مایکروسافت منجر به ظهور انقلابی در دنیای برنامه نویسی و نرم افزار خواهد شد یا خیر.

در مطالب بعدی در مورد ابزارهای عرضه شده برای توسعه اپلیکیشن های سیلورلایت 3.0 و در کل فناوری سیلورلایت بیشتر خواهید خواند. برای اینکه این مطالب را از دست ندهید، مشترک فراسان شوید.

شاید این مطالب هم برای شما خواندنی باشند :

اگر تمايل به دنبال کردن مطالب اين وبلاگ داريد، مي توانيد مشترک فيد فراسان شويد.

چطور مشترک شويم؟

Oslo ; پلت فرم مدل سازی مایکروسافت

توسعه بر مبنای *مدل اغلب اشاره به پروسه توسعه ای دارد که مدل هایی از اپلیکیشن ساخته می شود و داده ها به عنوان مشخصات سیستم در نظر گرفته می شوند. برای استفاده از روش توسعه مبتنی بر مدل بایستی یک پروسه توسعه و پلت فرم نرم افزاری در اختیار داشته باشید که قادر باشد تا به شما امکان استفاده از مدل ها (انواع منطقی داده ها و ارتباط ها) به عنوان هسته توسعه اپلیکیشن و پیاده سازی اجزای نرم افزاری بر مبنای مدل، که پیش نیازهای یک نرم افزار بر مبنای مدل را رعایت می کنند، را بدهد. مدل های تعیین شده در طراحی نرم افزار به هنگام پیاده سازی به بخش های مختلف توسعه نسبت داده می شوند. توسعه بر مبنای مدل با دید انتزاعی سعی در پنهان کردن پیچیدگی ها دارد و بیشتر روی تمرکز بر روی اجزای با اهمیت تاکید می کند.

Oslo نسل بعدی پلت فرم توسعه مایکروسافت

محصول جدید مایکروسافت با کد نام «Oslo» قصد دارد تا توسعه دهندگان را در ساخت نرم افزارهای پیچیده و بزرگ مبتنی بر دیتابیس بوسیله ابزارهای مناسب یاری کند. مدل سازی در اینجا یعنی بیشتر مشخصات و تعریف های نرم افزار با داده ها پیاده سازی شوند به طوری که پلت فرم و شما بتوانید هر چه آسانتر با استفاده از یک کوئری به مقصود اصلی خود برسید. تکنولوژی های مایکروسافت چند وقتی است در این مسیر حرکت می کنند، برای نمونه XAML, .NET metadata attribute, COM type libraries همگی روی نوشتن مشخصات به عنوان داده و اجتناب از کد کردن آن ها در سطوح پایین (مثل دستورات IL در دات نت) تاکید دارند. پلت فرم Oslo میخواهد این راه را ادامه دهد.

Microsoft Oslo

اجزای تشکیل دهنده Oslo

پلت فرم مدل سازی Oslo با استفاده از اجزای زیر موارد بالا را در اختیار شما قرار می دهد :

  • ابزار طراحی بصری با کد نام «Quadrant» که به شما در پروسه طراحی قوانین تجاری اپلیکیشن ها کمک می کند. این ابزار با استفاده از شکلک های گرافیکی فلوچارت مانند به شما در طراحی مدل های یک اپلیکیشن کمک می کند.
  • یک زبان مدل سازی به نام «M» که شما بایستی برای توسعه مدل های خود از آن استفاده کنید. زبان M زبانی اعلانی (Declarative) برای کار کردن با داده ها و ساختن مدل هاست. M به برنامه نویسان اجازه می دهد تا ساختار داده های خود را تعریف کنند و کوئری های متناسب با نیاز خود ایجاد کنند.
  • مخزن Oslo که یک دیتابیس SQL Server است و مدل ها را به عنوان اشیاء و نمونه (Instance)های مدل ها را به عنوان سطرهای یک جدول (Table) برای پیاده سازی شمای آن، در SQL Server ذخیره می کند. مدل ها و نمونه هایی از مدل ها به صورت بصری یا با استفاده از M یا هر API دسترسی به SQL دیگری (مثل ADO.NET) ایجاد می شوند.

در هر صورتی که شما داده های مدل ها را ایجاد کنید یا تغییر دهید (با استفاده از ابزار بصری، استفاده از M یا هر API دسترسی به SQL)، تمام اطلاعات مدل سازی در یک دیتابیس رابطه ای (Ralational Database) که به آن Oslo Repository گفته می شود، در هنگام اجرا (Runtime) در دسترس اند.

شرکت مایکروسافت فعلاً قصد ارائه Oslo را به عنوان بخشی از ویندوز یا دات نت فریم ورک ندارد. این شرکت نسخه CTP پلت فرم مدل سازی Oslo را برای دانلود عمومی روی سایت خود قرار داده است که می توانید از اینجا SDK آن را دریافت کنید. مدل سازی چند وقتی است در کانون توجه مایکروسافت قرار گرفته و آنچه مسلم است در آینده ای نه چندان دور در مورد Oslo بیشتر خواهیم شنید.

ویدئوی بررسی Oslo

در ویدئوی زیر Paul Vick که چندی قبل در تیم طراحی زبان Visual Basic مایکروسافت همکاری میکرده است، و حالا بر روی زبان مدل سازی M و پلت فرم Oslo کار می کند، در مورد Oslo اطلاعات خوبی به شما خواهد داد. در این ویدئو آقای Vick در مورد پلت فرم Oslo و اهداف آن، زبان مدل سازی M، ابزار Quadrant و مخزن رابطه ای Oslo صحبت می کند. توصیه می کنم برای تکمیل این مطلب ویدئوی زیر را حتماً مشاهده کنید.


*مدل : در معنای عام، مدل نمایش انتزاعی از یک آیتم یا مفهوم است (مانند یک ماشین یا یک ساختمان). به طور مثال یک آرشیتکت ساختمان ابتدا مدل ساختمانی که قرار است بسازد را روی کاغد پیاده سازی می کند و نیازی به استفاده از بیل و کلنگ در ابتدای کار ندارد. در دنیای نرم افزار هم Model برای همین منظور به کار می رود، یعنی مدل سازی مشخصات نرم افزار قبل از پیاده سازی آن ها.

سایت رسمی Oslo

برای تکمیل مطلب و مشاهده مثال عملی می توانید مطالب آموزشی آقای وحید نصیری در مورد Oslo و زبان M را در اینجا مطالعه کنید.

تفاوت میان HyperLink و LinkButton در ASP.NET

برای برنامه نویسان ASP.NET
در ASP.NET شما چندین راه برای فرستادن کاربر به یک صفحه جدید در پیش روی خود دارید. دو تا از کنترل هایی که می توانید برای این کار استفاده کنید عبارتند از HyperLink و LinkButton. هر دوی این کنترل ها قابلیت فرستادن کاربر به یک صفحه جدید را دارند و به اصطلاح عمل Redirecting را انجام می دهند. مهمترین تفاوتی که این دو کنترل در عمل دارند، این است که LinkButton یک PostBack به سرور ارسال می کند اما HyperLink مانند تگ Anchor در HTML فقط یک درخواست به مرورگر کاربر می فرستد. LinkButton دقیقاً شبیه یک Button معمولی عمل می کند اما شکل ظاهری آن مثل یک Hyperlink معمولی است.

از آنجا که LinkButton یک PostBack به سرور می فرستد، شما می توانید کارهای مختلفی را با آن انجام دهید. مثل پر کردن یک DataSet یا ست کردن یک متغیر Session. تفاوت مهم دیگری که این دو کنترل با هم دارند این است که کنترل HyperLink رویدادی به نام OnClick ندارد و تنها کاری که می تواند انجام دهد، Redirect کردن کاربر به آدرسی است که در مشخصه NavigateURL برای آن مشخص کرده اید.

asp_linkbutton_hyperlink

چه موقع از HyperLink و چه موقع از LinkButton استفاده کنیم؟

مواقعی که احتیاج دارید یک PostBack به سرور بفرستید (احتیاج به پردازش تحت سرور دارید) و با داده های صفحه وب کار کنید از LinkButton استفاده کنید و مواقعی که می خواهید فقط کاربر را به یک آدرس دیگر بفرستید از کنترل HyperLink استفاده کنید.

البته به نظرم بهتره به جای این دو کنترل به راحتی از دستور Response.Redirect استفاده کنید.

farasun.wordpress.com

Subcribe to Farasun feedمشترک فراسان شويد

farasun.wordpress.com

مطالب مرتبط :

پ.ن 1 : درسته که من در این وبلاگ تا به حال به صورت مستقیم در مورد ASP.NET ننوشته بودم، اما این دلیل نمیشه که بلد نباشم و ننویسم در این مورد. یکی از دوستان از من تقاضا کردند، منم از این به بعد می نویسم. در ضمن من ASP.NET تدریس می کنم 😉

پ.ن 2 : اگر به مباحث ASP.NET خیلی علاقه دارید و مطالب من برای شما خیلی ابتدایی است، پیشنهاد می کنم  وبلاگ آقای عارف کریمی و وبلاگ آقای نصیری را از دست ندهید.

پ.ن 3 : برای اینکه بفهمید پیج رنک وبلاگتون در گوگل چنده، می تونید از این سایت بهره ببرید. این سایت ابزارهایی همچون نمایش دهنده پیج رنک هم در اختیارتون قرار میده.

LINQ چیست؟

مایکروسافت پس از عرضه دات نت فریم ورک 2 کار بر روی نسخه 3 آن را شروع کرده بود.  هنگام معرفی دات نت فریم ورک 3، مایکروسافت فناوری جدیدی را به نام LINQ معرفی کرد تا یکی از بزرگترین مشکلات برنامه نویسان را حل نماید. این فناوری جدید با هدف تحول در نحوه دستیابی به داده ها و اطلاعات بدون در نظر گرفتن نوع منبع آن ها بوجود آمده است.

LINQ (تلفظ می شود «لینک») مخفف Language INtegrated Query یکی از اجزای پلتفرم برنامه نویسی دات نت شرکت مایکروسافت است که قدرت کار با داده های مختلف را به زبانی شبیه زبان SQL به توسعه دهندگان می دهد. LINQ در 19 نوامبر 2007 به عنوان قسمتی از دات نت فریم ورک 3.5 عرضه شد.

منطق و دستورات لینک شبیه به زبان SQL است با این تفاوت که به تنهایی کابردی ندارد. شما باید از زبان لینک در کنار یکی از زبان های دات نت استفاده کنید تا به مقصود خود برسید در صورتی که زبان SQL یک زبان مستقل برای کار با داده هاست. اگر برنامه نویس باشید می دانید که برای دستیابی به داده های موجود در یک بانک اطلاعاتی علاوه بر استفاده از فناوری های دستیابی به داده همچون ADO باید از زبان SQL نیز استفاده کنید. مشکلی که برنامه نویسان قبل از ارائه لینک با آن مواجه بودند این بود که لایه دسترسی به داده ها از روش و منظقی متفاوت از لایه های دیگر عمل می کند. مثلاً در نظر بگیرید در یک برنامه مبتنی بر بانک اطلاعاتی برنامه نویس باید داده ها را از یک بانک اطلاعاتی با استفاده از دستورات SQL بخواند و سپس با منطق زبان برنامه نویسی آن ها را به لایه نمایش بفرستد. این عدم سازگاری لایه های نرم افزاری مشکلات زیادی به همراه می آورد. امروزه برنامه نویسان بر اساس مدل «شیء گرا» کدهای خود را می نویسند. واژه هایی همچون کلاس، شیء، متد و وراثت برای برنامه نویسان آشناست و آن ها هر روز در پروژه هایشان از آن ها استفاده می کنند. در این میان یکی از مشکلات برنامه نویسان شیء گرا، عدم شیء گرایی پایگاه های داده و داده های XML است. پروژه LINQ برای اضافه کردن قابلیت شیء گرایی به زبان SQL و در نتیجه پایگاه های داده و داده های XML بوجود آمد.

LINQ Structure
LINQ Structure

شرکت مایکروسافت برای غلبه بر مشکلات ذکر شده زبانی را طراحی نمود که در حال حاضر در دات نت فریم ورک 3.5 از آن استفاده می شود و همراه با ویژوال استادیو 2008 عرضه شده است. تمام سعی مایکروسافت بر این بوده که قواعد (Syntax) زبان لینک شبیه به زبان SQL باشد تا برنامه نویسان مجبور نباشند برای یادگیری آن وقت بگذارند. اگر برنامه نویس باشید می دانید که کوئری های زبان SQL را در یک زبان برنامه نویسی باید به صورت رشته ای (String) بنویسید و این بدین معنی است که در این صورت کوئری ها قابلیت اشکال زدایی (Debugging) نخواهند داشت. در این روش اشکال زدایی دستورات SQL بسیار مشکل خواهد بود و بعضی وقت ها واقعاً دردسر ساز خواهد شد. این را هم می دانید که دستورات SQL که به صورت رشته نوشته می شوند به همراه دیگر دستورات برنامه کامپایل نمی شوند و فقط به صورت ریسورس های رشته ای ذخیره می شوند. حالا در نظر داشته باشید که با لینک می توانید مشکلات بالا را برطرف کنید و کوئری های SQL را اشکال زدایی کنید. بدین ترتیب برنامه نویسان دات نت می توانند در هر یک از زبان های مورد حمایت دات نت همچون ویژوال بیسیک و سی شارپ از فناوری LINQ استفاده کنند و از مزایایی مثل خطایابی، IntelliSense و قدرت ویژوال استادیو استفاده کنید. به یاد داشته باشید که LINQ فقط برای داده های موجود در بانک های اطلاعاتی مورد استفاده قرار نمی گیرد بلکه صرف نظر از منبع داده ها LINQ قادر است با داده های آرایه های مختلف، کلاس ها، اشیای مختلف و فایل های XML مورد استفاده قرار گیرد.

پروژه LINQ در مایکروسافت | LINQ در ویکی پدیا

farasun.wordpress.com

Subcribe to Farasun feedمشترک فراسان شويد

farasun.wordpress.com

مطالب مربتط :

قبل از یادگیری Silverlight به چه مهارت هایی نیاز دارید؟

این سئوال برای خیلی از برنامه نویسانی که قصد شروع یادگیری سیلورلایت را دارند پیش می آید. قبل ازاینکه شروع به یادگیری سیلورلایت کنیم باید چه مهارت هایی داشته باشیم؟ آیا برای یادگیری سیلورلایت باید یک برنامه نویس حرفه ای ASP.NET باشیم؟ نیازی به یادگیری JavaScript یا XML خواهیم داشت؟ در واقع پیش نیازهای یادگیری سیلورلایت چه چیزهایی است؟

سئوال بسیار خوبی است! به صورت ساده جواب این سئوال معلوم است. شما برای یادگیری سیلورلایت به هیچ مهارت خاصی نیاز ندارید. علاقه و کمی پشتکار تمام چیزی است که شما لازم خواهید داشت. در واقع کاملاً معقول و امکان پذیر است که شما سیلورلایت را به عنوان اولین تجربه برنامه نویسی خود انتخاب کنید… اما پروسه یادگیری شما کمی طولانی تر و دردناک تر خواهد شد!!!

Silverlight

یادگیری سیلورلایت برای برنامه نویسان دات نت بسیار راحت تر از سایر افراد است. به شما توصیه می کنم اگر قصد یادگیری سیلورلایت را دارید، ابتدا کمی در مورد معماری دات نت مطالعه کنید و سپس یکی از زبان های برنامه نویسی دات نت مثل سی شارپ یا VB را یاد بگیرید. نگران نباشید! نیازی نیست در این قسمت به یک حرفه ای تبدیل شوید. به طور معمول یک ماه کافیست تا شما تبدیل به یک برنامه نویس آماتور دات نت شوید.

خب حالا که یک برنامه نویس دات نت شدید! بهتر است آشنایی مختصری هم با مفاهیم زیر داشته باشید :

  • HTML : زبان نشانه گذاری صفحات وب. یادگیری HTML بسیار آسان تر از آن چیزی است که فکر می کنید.
  • JavaScript : حداقل مفاهیم پایه ای این زبان را یاد بگیرید.
  • DHTML : نیازی نست حرفه ای شوید، فقط مفاهیم آن را بدانید.
  • مفاهیم پایه برنامه نویسی (مثل دستورات شرطی، حلقه ها، رویدادگرایی و …)

موارد بالا را به راحتی می توانید با خواندن چند کتاب کوچک یا مقالات وب سایت های مختلف یاد بگیرید. شاید الان این سئوال برای شما پیش بیاید که «پس ASP.NET چی؟ نباید آن را یاد بگیریم؟». برای جواب به این سئوال موارد زیر به شما کمک خواهد کرد :

  • ASP.NET : تا وقتی نخواهید دو تکنولوژی سیلورلایت و ASP.NET را با هم ادغام کنید نیازی به آن ندارید. اما برای مبدل شدن به یک توسعه دهنده وب حرفه ای احتیاج زیادی به ASP.NET خواهید داشت.
  • XML : تا نیازی بهش پیدا نکنید، لازم نیست. اما یکی از نیازهای اساسی مبدل شدن به یک متخصص و حرفه ابست.

نکته مهم دیگر، یادگیری و استفاده از XAML است. XAML زبان نشانه گذاری سیلورلایت است و بسیار بسیار شبیه به XML. ولی من اعتقاد دارم که بدون یادگیری XML شما به راحتی XAML را بدون هیچ مشکلی یاد خواهید گرفت. برای یادگیری XAML می توانید از منابع آنلاین، فایل راهنمای آن یا کتاب های مختلف کمک بگیرید.

همان طور که قبلاً گفتم، برای یادگیری یک تکنولوژی جدید، مشاهده و یادگیری مثال های کاربردی و عملی بهترین گزینه اند. اگر از اینترنت پر سرعت بهره می برید، ویدئوهای آموزشی سیلورلایت را از دست ندهید.

وب سایت اختصاصی آموزش Silverlight

farasun.wordpress.com

Subcribe to Farasun feedمشترک فراسان شويد

farasun.wordpress.com

مطالب مرتبط :