ASP.NET MVC 2 یک قدم به جلوتر!

همانطور که ممکنه خبر داشته باشید نسخه کاندیدای انتشار ASP.NET MVC 2 برای دریافت عموم منتشر شده است. این طور که به نظر می آید این آخرین نسخه  ای است که قبل از نسخه اصلی منتشر می شود. نسخه کاندیدای انتشار ASP.NET MVC نسخه 2 برای ویژوال استادیو 2008 سرویس یک 1 از اینجا قابل دریافت است. این نسخه می تواند در کنار نسخه یک ASP.NET MVC نصب شود و هیچ اختلالی نیز ایجاد نخواهد کرد. همانطور که از یک نسخه کاندیدای انتشار یا RC انتظار می رود، بیشتر تمرکز تیم ASP.NET MVC بر روی رفع باگ ها و بهبود ویژگی های موجود بوده است. در کل تیم توسعه ASP.NET MVC چیزهای جدید زیادی به این نسخه اضافه نکرده است. باید منتظر ماند و دید در نسخه نهایی چه تغییراتی حاصل خواهد شد.

مهمترین بهبودی که در این نسخه شاهد هستیم مربوط به اعتبار سنجی طرف کلاینت یا Client Validation است. به طور مثال اسکریپت های اعتبارسنجی برای جلوگیری از تداخل با دیگر کتابخانه های آیجکسی در فایل های جداگانه ی جاوا اسکریپت قرار می گیرند. این اسکریپت های اعتبارسنجی از Globalization نیز پشتیبانی می کنند. متد Html.ValidationSummary نیز مدل دیگری از نمایش خطاهای اعتبارسنجی را ارائه خواهد کرد.

از زمانی که فریم ورک ASP.NET MVC از طرف مایکروسافت ارائه شده، توسعه دهندگانی که از ASP.NET WebForms استفاده می کردند بر سر دوراهی قرار گرفتند. هر چند از ابتدا هم ASP.NET MVC برای از بین بردن وب فرم ها بوجود نیامده بود اما اکنون با پیشرفت ASP.NET MVC برخی ها بر این باورند که در آینده ای نه چندان دور وب فرم ها نیز مانند ASP کلاسیک از بین خواهد رفت و ASP.NET MVC جایگزین آن خواهد شد. نظر شما چیست!؟

اگر می خواهید پروژه هایی که با ASP.NET MVC نسخه یک نوشته اید را به نسخه 2 ارتقاع دهید می توانید ادامه مطلب را بخوانید!

نحوه آپگرید کردن یک پروژه ASP.NET MVC از نسخه یک به نسخه 2 :
1- ابتدا پیشنهاد می شود یک نسخه بک آپ از پروژه فعلی خود بگیرید!

2- فایل پروژه را (فایلی با پسوند csproj یا vbproj) با یک ویرایشگر متنی باز کنید و قسمت ProjectTypeGuide را پیدا کنید. مقدار این عنصر را به {F85E285D-A4E0-4152-9332-AB1D724D3325} تغییر دهید. حالا باید شبیه به چنین عبارتی باشد :

x<ProjectTypeGuids>{F85E285D-A4E0-4152-9332-AB1D724D3325};{349c5851-65df-11da-9384-00065b846f21};{fae04ec0-301f-11d3-bf4b-00c04f79efbc}</ProjectTypeGuids>x

3- در پوشه ریشه وب اپلیکیشن خود، فایل Web.config را باز کنید و به دنبال System.Web.Mvc, Version=1.0.0.0 بگردید و عدد «1» را به «2» تبدیل کنید.

4- مرحله قبل را برای فایل Web.config موجود در پوشه Views پروژه خود انجام دهید.
5- پروژه خود را با ویژوال استادیو باز کنید، در Solution Explorer قسمت References را باز کنید و ارجاع به اسمبلی System.Web.Mvc که اشاره به اسمبلی نسخه یک ASP.NET MVC دارد را حذف کنید. حالا به System.Web.Mvc(v2.0.0.0) ارجاع دهید.

6- عناصر زیر را در قسمت <configuration> فایل Web.config موجود در دایرکتوری ریشه پروژه خود اضافه کنید :

x<runtime>
<assemblyBinding xmlnsurn:schemas-microsoft-com:asm.v1«>
<dependentAssembly>
<assemblyIdentity nameSystem.Web.Mvc»
publicKeyToken31bf3856ad364e35«/>
<bindingRedirect oldVersion1.0.0.0» newVersion2.0.0.0«/>
</dependentAssembly>
</assemblyBinding>
</runtime>x

7- یک اپلیکیشن ASP.NET MVC 2 بسازید و فایل های موجود در فولدر Scripts این پروژه را به فولدر Scripts موجود در اپلیکیشن خود اضافه کنید.

farasun.wordpress.com

پ.ن : ممکن است به علت امتحانات و برخی مشغله ها اینجا کمتر به روز شود.

<ProjectTypeGuids>{F85E285D-A4E0-4152-9332-AB1D724D3325};{349c5851-65df-11da-9384-00065b846f21};{fae04ec0-301f-11d3-bf4b-00c04f79efbc}</ProjectTypeGuids>

راه های دسترسی به داده در دات نت فریم ورک!

در اکثر برنامه های کامپیوتری نیاز به ذخیره و بازیابی داده ها وجود دارد. داده هایی که بدون آن ها سیستم نرم افزاری ما معنایی ندارد. برنامه نویسان معمولاً راه های مختلفی برای این کار سراغ دارند. کسانی که با دات نت فریم ورک برنامه نویسی می کنند راه های مختلفی برای دسترسی به داده ها دارند. در این مطلب با تکنولوژی های مایکروسافت برای این کار آشنا خواهیم شد و سه ORM معروف دنیای دات نت را معرفی خواهیم کرد. مایکروسافت انتخاب های زیادی برای دسترسی به داده ها به برنامه نویسان دات نت می دهد که شما باید با بررسی آن ها و با توجه به نیازهای خودتان یکی از آن ها را انتخاب کنید.

ADO.NET

ADO.NET مجموعه ای از کامپوننت هاست که برنامه نویسان می توانند از آن ها برای برقراری ارتباط با دیتابیس های مختلف استفاده کنند. ADO.NET بخشی از کتابخانه کلاس های پایه دات نت فریم ورک است که توسط مایکروسافت توسعه داده می شود. برنامه نویسان به صورت گسترده از این تکنولوژی برای دسترسی و دستکاری داده های ذخیره شده در یک دیتابیس رابطه ای استفاده می کنند. ADO.NET می تواند با اکثر دیتابیس های موجود کار کند، هر چند به صورت پیش فرض در دات نت فریم ورک فقط فراهم کننده های SQL Server، OleDb و Odbc وجود دارد، افراد و شرکت های دیگر فراهم کننده های دیتابیس های دیگر را برای دات نت ایجاد کرده اند.

برای هر Provider کامپوننت هایی وجود دارند که برنامه نویس با استفاده از آن ها به مقصودش می رسد. به طور مثال برای استفاده از SQL Server در روش ADO.NET کامپوننت هایی مانند SQLConnection و SQLCommand وجود دارد که با استفاده از آن ها می توانید یک دستور SQL را روی داده های موجود در یک دیتابیس SQL Server اجرا کنید. با SQLConnection به دیتابیس موجود در SQL Server وصل می شویم و با استفاده از یک SQLCommand می توانیم یک عبارت T-SQL را که می تواند دستور INSERT, UPDATE, DELETE یا SELECT باشد یا حتی یک Stored Procedure یا عبارت DDL باشد را برای مقصود خاصی روی دیتابیس اجرا کنیم. چون ADO.NET در مورد سینتاکس دیتابیس چیزی نمی داند، دستورات را به صورت یک رشته ساده به SQLCommand می دهیم و این شیء نیز به صورت مستقیم به دیتابیس دستور می دهد.

string query = "SELECT * FROM tblCustomers";
SqlConnection con = new SqlConnection(cnnString);
SqlCommand command = new SqlCommand(query, con);
con.Open();
SqlDataReader reader = command.ExecuteReader();
while (reader.Read())
{
Response.Write(reader.GetInt32(0) +
reader.GetString(1));
}

نکته ای که باید در مورد ADO.NET بدانید این است که برای استفاده از هر سیستم دیتابیس رابطه ای، مجموعه کامپوننت های جدایی وجود دارد. در مثال بالا از آبجکت های مربوط به SQL Server استفاده کردیم. اگر بخواهید مثلاً از یک دیتابیس اوراکل در برنامه خود استفاده کنید، بایستی از کامپوننت های مربوط به اوراکل استفاده کنید. خوشبختانه تمام این کامپوننت ها بر پایه یک Interface ساخته شده اند، این یعنی شما می توانید با استفاده از کلاس DbProviderFactory برنامه ای بسیازید که با چند نوع دیتابیس مختلف کار کند.

Linq to SQL

مایکروسافت با دات نت فریم ورک 3.0 و 3.5 یک ORM به نام Linq to SQL را به عنوان بخشی از پروژه LINQ خود عرضه کرد. این شرکت مدت ها پیش از آن قول داده بود که یک ORM برای دات نت فریم ورک طراحی کند اما تا نسخه 3.0 دات نت فریم ورک خبری از آن پروژه نشد. Linq to SQL به شما اجازه می دهد که کوئری های LINQ را روی دیتابیس های SQL Server اجرا کنید. علاوه بر این از یک Mapping Framework بهره می برد که به برنامه نویسان اجازه Map کردن جدول های یک دیتابیس را به کلاس ها و بالعکس می دهد. این کار در ویژوال استادیو می تواند به صورت ویژوال یا کدنویسی انجام گیرد. به این صورت که برای هر جدول از دیتابیس یک کلاس تعریف می شود که هر ستون از یک جدول به عنوان یک Property درون آن کلاس تعریف می شود.

نمایی از ابزار طراحی ویژوال Linq to SQL

به مثال زیر توجه کنید :
public class Customer
{
[Column(Name="CustomerID",IsPrimaryKey = true)]
public long ID
{
get { return _ID;}
set { _ID = value;}
}
[Column(Name = "CustomerName")]
public string Name
{
get { return _name; }
set { _name = value; }
}
}

کلاس بالا به جدول tblCustomers که دارای دو ستون CustomerID و CustomerName است Map می شود. قبل از اینکه بخواهید از Linq to SQL استفاده کنید باید این کلاس ها را تعریف کنید. ویژوال استادیو 2008 دارای ابزاری است که به صورت ویژوال به شما امکان Map کردن جدول های یک دیتابیس SQL Server را به کلاس های دات نت می دهد. این ابزار می تواند به صورت اتوماتیک کلاس های مورد نیاز شما را از روی مدل دیتابیس بسازد، و حتی اجازه تغییرات دستی و ایجاد Viewهای مختلف از دیتابیس را به شما می دهد. عملیات Mapping با استفاده از DataContext (که یک رشته اتصال به سرور نیاز دارد) پیاده سازی می شود. سپس شما قادر خواهید بود کوئری های LINQ خود را روی دیتابیس موجود در سرور اجرا کنید، که البته این کوئری ها ابتدا به دستوارت T-SQL متناظر ترجمه و سپس روی دیتابیس مورد نظر اجرا می شوند.

Entity Framework

Entity Framework یک فریم ورک ORM برای دات نت فریم ورک است که نسخه یک آن به همراه دات نت فریم ورک 3.5 سرویس پک 1 عرضه شد اما مورد استقبال توسعه دهندگان قرار نگرفت. نسخه 2 این فریم ورک به صورت بتا به عنوان بخشی از ویژوال استادیو 2010 قابل دسترس است. ADO.NET Entity Framework نام اصلی این فریم ورک است و جزئی از تکنولوژی ADO.NET است.

ابزار طراحی Entity Framework در ویژوال استادیو

ابزار طراحی Entity Framework در ویژوال استادیو

Entity Framework مدل رابطه ای موجود در یک دیتابیس را به مدل مفهمومی تبدیل می کند و آن را به اپلیکیشن ما تحویل می دهد. در مدل رابطه ای عناصر ترکیبی از جداول هستند، به همراه کلید های اصلی و خارجی که جدول ها را به هم مرتبط می سازند. برعکس آن، انواع موجودیت ها مدل مفهومی داده را تعریف می کنند. انواع موجودیت  اجتماعی از چند فیلد است (هر فیلد به یک ستون از دیتابیس Map می شود) و می تواند شامل اطلاعات از چند جدول فیزیکی باشد. انواع موجودیت می توانند به هم مرتبط باشند، مستقل از ارتباطاتی که در مدل فیزیکی دارند. شمای منطقی و نگاشت (mapping) آن به شمای فیزیکی به عنوان یک Entity Data Model یا EDM نمایش داده می شوند که مشخصات EDM در یک فایل XML ذخیره می شود. Entity Framework از EDM برای انجام عملیات نگاشت و دادن قابلیت کار با موجودیت ها به اپلیکیشن استفاده می کند. Entity Framework اطلاعات مورد نیاز هر موجودیت را با Join کردن چندین جدول از مدل فیزیکی (دیتابیس) بدست می آورد. هنگامی که اطلاعات یک موجودیت آپدیت می شود، Entity Framework بررسی می کند که داده ها مربوط به کدام یک از جدول های موجود در دیتابیس هستند، سپس آن ها را با دستور SQL مناسب آپدیت می کند.

هر چند Entity Framework و Linq to SQL بسیار شبیه به هم به نظر می رسند، هر دو ابزارهایی برای طراحی گرافیکی و ویزاردی برای نگاشت یک دیتابیس به مدل شیء گرا دارند و هر دو می توانند از کوئری های LINQ برای مقصود خاصی استفاده کنند، اما با هم تفاوت هایی هم دارند. بیان تفاوت های این دو در این مطلب جایی ندارد.

NHibernate

نمی توان در مورد ORMها در دات نت صحبت کرد اما نام NHiernate را ذکر نکرد. NH یک فریم ورک ORM اوپن سورس برای دات نت فریم ورک است که از روی پروژه موفق Hibernate جاوا وارد دنیای دات نت شد. توضیحات بیشتر در مورد NHibernate توضیحات اضافی است، زیرا این فریم ورک هم وظیفه ORMهای دیگر را انجام می دهد. اکثر برنامه نویسانی که از NH برای نگاشت استفاده می کنند، ابتدا کلاس های خود را تعریف می کنند و سپس با استفاده از یک فایل XML آن ها را به جدول های دیتابیس Map می کنند. Linq to SQL و Entity Framework برخلاف NHibernate از روش Model-first یا مبتنی در دیتابیس استفاده می کنند، به این معنی که هر دو ORM تصور می کنند شما دیتابیسی در اختیار دارید که می خواهید آن به تعدادی آبجکت Map کنید.

در مورد Nhibernate بیش از این صحبت نمی کنم، آقای وحید نصیری در اینجا به صورت کامل در مورد این ORM محبوب نوشته است.

farasun.wordpress.com

انتخاب از میان روش های بالا به عهده خود شماست. در این مطلب کوتاه نمی توان به بررسی تمام زوایا و تفاوت های میان آن ها پرداخت. در مطالب آینده سعی میکنم در مورد نحوه استفاده از هر کدام یک مثال عملی بزنم (البته به جز NHibernate).

اینترنت اکسپلورر 9 به دنبال رقیبان است

چهارشنبه هفته پیش در کنفرانس PDC، مایکروسافت در مورد نسخه جدید مرورگر خود Internet Explorer 9 جزئیاتی را شرح داد. البته این توضیحات بیشتر مربوط به توسعه دهندگان بود تا کاربران نهایی، اما با نتیجه گیری از آن می توان آینده خوبی را برای این مرورگر تصور نمود.

اعضای تیم IE شروع به کار روی نسخه جدید این مرورگر کرده اند، در حالی که نسخه 8 این مرورگر با قابلیت های جدیدی که ارائه میکرد نتوانست جای خود را میان کاربران اینترنت پیدا کند. این موضوع دلایل زیادی دارد. یکی از مهمترین دلایل عدم استفاده کاربران اینترنت از این مرورگر، سرعت پایین تر آن نسبت به سایر مرورگر هاست. این که مرورگرهای کروم و فایرفاکس از IE سریع تر هستند را خود مایکروسافت هم قبول دارد. از دید طراحان وب مهمترین مشکل IE پشتیبانی نکردن از برخی استانداردهای وب است. وقتی که مرورگرهای فایرفاکس، کروم و اپرا از HTML 5 و CSS 3 پشتیبانی می کنند اما IE 8 این کار را نمی کند، باعث آزردگی خاطر طراحان وب می شود. مشکل بعدی IE کارایی پایین در اجرای کدهای جاوا اسکریپت است. تمام سایت های وب 2.0 از جمله Gmail و Facebook از مقداری زیادی کدهای جاوا اسکریپت استفاده می کنند، که باعث می شود کاربران پاسخ های سریعتری از سرور دریافت کنند. IE با کارایی کم در این زمینه از رقبای خود بسیار عقب است.

شرکت مایکروسافت و اعضای تیم IE خیلی بهتر از من و شما به این مشکلات واقف هستند. به همین خاطر برنامه ریزی هایی برای IE 9 دارند تا هم کاربران نهایی و هم طراحان و توسعه دهندگان وب را راضی کنند.

سرعت

مهمترین هدف مایکروسافت برای ارائه نسخه 9 مرورگرش، تسریع در بارگذاری صفحات وب است. این شامل تسریع در رندر کردن صفحات وب با استفاده از قابلیت های سخت افزاری مثل کارت گرافیک و بهبود کارایی کدهای جاوا اسکریپت می شود. هرچند بهبود کارایی کدهای جاوا اسکریپت معیار دقیقی برای تسریع بارگذاری صفحات وب نیست اما به دلیل استفاده وب اپلیکیشن ها از جاوا اسکریپت و فراگیر شدن آن در وب سایت های مبتنی بر وب 2.0 آیتم بسیار مهمی هم برای کاربران نهایی و هم برای توسعه دهندگان وب است. IE 7 و IE 8 در زمینه کارایی جاوا اسکریپت خیلی عقب تر از رقیبان خود هستند. تیم IE در وبلاگ خود گرافی را منتشر کرده که کارایی جاوا اسکریپت در مرورگرهای مختلف را نمایش می دهد. در این گراف که در زیر مشاهده می کنید، IE 9 با فاصله کمی عقب تر از رقیبان خود کارایی جاوا اسکریپت را افزایش داده است.

کارایی اجرای جاوا اسکریپت در مرورگرهای مختلف

همانطور که مشاهده می کنید هنوز هم IE 9 نتوانسته در این زمینه رقیبان خودش را شکست بدهد. البته باید تا ارائه نسخه نهایی این مرورگر صبر کرد و بعد نظر داد. هر چند موزیلا و گوگل در این مدت بیکار نخواهند نشست و حتماً کارایی مرورگر خودشان را افزایش خواهند داد.

پشتیبانی از استانداردهای وب

در سال های اخیر مرورگر اینترنت اکسپلورر به جز دردسر و مشکل برای طراحان و توسعه دهندگان وب، چیز دیگری به ارمغان نیاورده است. مایکروسافت در این نسخه قول داده است که از HTML 5 و CSS 3 به طور کامل پشتیبانی کند. این در حالی است که مرورگرهای کروم و فایرفاکس در آخرین نسخه خود از HTML 5 و CSS 3 به طور کامل پشتیبانی می کنند. این خبر بسیار خوبی برای طراحان وب است که بالاخره مایکروسافت قصد اضافه کردن پشتیبانی کامل از استانداردهای وب را دارد. البته زیاد هم به این قضیه خوش بین نباشید! در حال حاضر IE 9 از اکثر قابلیت های CSS 3 پشتیبانی می کند اما در زمینه HTML 5 پیشرفت کندی دارد. بحث های زیادی برای پشتیبانی از HTML 5 در مرورگر IE 9 وجود دارد، زیرا مایکروسافت هنوز در این زمینه مصمم نیست. به هر حال این قضیه ممکن است باعث شکست IE در مقابل رقیبانی مثل گوگل کروم که از استانداردهای HTML 5 پیروی می کند، شود.

استفاده کمتر از CPU

در اینترنت اکسپلورر 9 وظیفه رندر کردن گرافیک ها و متن های موجود در یک صفحه وب به جای اینکه بر دوش CPU باشد بر دوش کارت گرافیک خواهد بود. این یعنی استفاده کمتر از CPU وقتی که کاربر در حال مشاهده صفحاتی با گرافیگ های غنی و متن های با کیفیت است. IE برای این کار از DirectX استفاده می کند. این یعنی رندر کردن سریعتر صفحات وب، مخصوصاً در کامپیوترهای با کارت گرافیک قوی.

farasun.wordpress.com

به هر حال چه از IE خوشمان بیاید و چه خوشمان نیاید، این مرورگر سهم عمده بازار مرورگرهای وب را در اختیار دارد. چون روی هر PC جدیدی نصب است و کاربران تازه وارد، اینترنت را با این مرورگر می شناسند. اکثر کارشناسان و کاربران حرفه ای وب اعتقاد دارند که Internet Explorer مرورگر مناسب و استانداردی نیست. مایکروسافت با عرضه نسخه بعدی مرورگرش وارد عرصه تازه ای از رقابت با مرورگرهای پرقدرت فایرفاکس و کروم می شود. این رقابت در آخر به نفع کاربران تموم خواهد شد، زیرا هر کدام از طرفین سعی می کنند مروگری بهتر، سریع تر، امن تر و سازگار با استانداردهای روز وب را عرضه کنند. باید منتظر ماند و دید که آیا IE 9 می تواند شکست های قبلی مایکروسافت را جبران کند!؟ نظر شما چیست؟

ساخت روبات به روش مایکروسافت!

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

Microsoft Robotics Developer Studio یا به اختصار MRDS مجموعه کاملی از ابزارهای نرم افزاری تحت ویندوز برای کنترل و شبیه سازی انواع محتلف روبات است. از این مجوعه نرم افزاری می توان در ساخت روبات های آکادمیک و حتی تجاری کمک گرفت. MRDS در ساخت نرم افزارهای مبتنی بر سرویس برای انواع مختلف سخت افزار کاربرد دارد.

MRDS بیشتر از یک نرم افزار برای بازی با روبات هاست. تقریباً دو سال پیش واحد تحقیقات مایکروسافت راه حلی برای ساخت روبات ها و کنترل آن ها در محیط ویندوز ارائه نمود، که هم اکنون به یکی از بسترهای موفق و مناسب برای توسعه انواع روبات ها تبدیل شده است. یکی از مهمترین نکات مربوط به نرم افزارهای روباتیک این است که کدی که نوشته اید در محیط شبیه سازی و محیط واقعی به یک صورت عمل کند، یعنی بدون دستکاری کد روبات شما همانطور که در محیط شبیه سازی شده کار می کرده است در محیط واقعی نیز کار کند، که MRDS به خوبی این نکته را پیاده سازی کرده است. شما روبات خود را با استفاده از ابزارهای بصری (Visual) مدل می کنید و کدهای آن را می نویسید، سپس در محیط 3بعدی رفتار روبات را شبیه سازی می کنید، آن را تست و عیب یابی می کنید و در نهایت در محیط واقعی پیاده سازی اش می کنید.

شبیه سازی در MRDS

مهمترین ویژگی های MRDS به شرح زیر است :

زبان برنامه نویسی ویژوال یا Visual Programming Language یک محیط توسعه گرافیکی است که با دیاگرام های مختلف رفتار ربات را تعیین می کند. کاربر می تواند به صورت گرافیکی با ربات خود تعامل داشته باشد. یک سرویس یا یک فعالیت به صورت یک بلاک که دارای ورودی و خروجی است نشان داده می شود. کاربر فقط باید این بلاک ها را از کاتالوگ انتخاب و آن را به دیاگرام خود اضافه نماید. اتصال میان این بلاک ها بوسیله ماوس کشیده می شوند و جزئیاتی مانند نحوه عملیات و مقادیر ارسالی مشخص می شوند. VPL می تواند از روی سرویس های موجود در دیاگرام که توسط کاربر ایجاد شده اند، کد مربوطه را تولید کند. با VPL حتی افرادی که تا به حال یک خط برنامه ننوشته اند نیز می توانند ربات بسازند!

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

محیط شبیه سازی 3بعدی MRDS به شما اجازه می دهد که رفتار ربات را در یک جهان مجازی که شامل قوانین پیشرفته فیزیکی است، شبیه سازی کنید.

دستیابی آسان و سریع به سنسورها و فعال کننده های ربات

پشتیبانی از زبان های برنامه نویسی سی شارپ، ویژوال بیسیک و IronPython به برنامه نویسان دات نت اجازه می دهد که با استفاده از تجربه ها و مهارت های قبلی خود برای ربات ها برنامه های پیشرفته بنویسند.

اجزای MRDS

  • Concurrency and Coordination Runtime یا CCR یک کتابخانه دات نت فریم ورک است که از پردازش غیر همزمان (آسنکرون) پشتیبانی می کند. استفاده از پردازش آسنکرون برای ساخت یک روبات بسیار مهم است، زیرا سنسورها ممکن است به صورت همزمان داده ها را ارسال و دریافت کنند.
  • Decentralized Software Services یا DSS یک ران تایم مبتنی بر سرویس بسیار سبک است که از مدل REST برای ارتباط استفاده می کند.
  • Visual Programming Language یا VPL (که در بالا در مورد آن مفصل توضیح داده شد) یک زبان گرافیکی است که رفتار یک روبات را به صورت دیاگرام مدل می کند.
  • Visual Simulation Environment یا VSE که محیطی برای شبیه سازی روبات ساخته شده توسط MRDS است. شما می توانید در این محیط مجازی رفتارهای روبات خود را در شرایط مختلف مشاهده کنید.

چگونه شروع کنیم

robotMRDS در سه نسخه Express، Standard و آکادمیک عرضه می شود. نسخه Express همانطور که از نامش پیداست رایگان است اما بعضی از قابلیت های نسخه استاندارد را ندارد و برای کاربردهای حرفه ای مناسب نیست. نسخه استاندارد پولی است و برای کاربدهای حرفه ای است. نسخه آکادمیک تمام ویژگی های نسخه استاندارد را داراست و برای دانشجویان رایگان است. پیش نیاز نصب MRDS یک کارت گرافیکی مناسب با پشتیبانی از Pixel Shader و Vertex Shader است. همچنین DirectX 9.0 باید روی ویندوز شما نصب باشد. به این صفحه از وب سایت مایکروسافت بروید و نسخه ای از MRDS را دانلود کنید. آن را نصب کنید. اگر ویژوال استادیو روی سیستم شما نصب باشد، تمپلیت های MRDS به صورت خودکار روی آن نیز نصب می شوند.

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

farasun.wordpress.com

راه حل غیر مایکروسافتی : اگر از مایکروسافت به هر دلیلی خوشتان نمیاد یا از این محصولش به خاطر کپی رایت و این حرفا نمی توانید استفاده کنید، من نرم افزار Simbad که یک نرم افزار اوپن سورس و رایگان  مبتنی بر جاواست را پیشنهاد میکنم.

Vote on iDevCenter

ویژوال استادیو 2010 بتا 2 آمد!

ویژوال استادیو 2010 و دات نت فریم ورک 4.0 پیشرفت زیادی کرده اند و قابلیت های بسیار بسیار زیادی به آن ها اضافه شده است به طوریکه در آینده ای نه چندان دور توسعه برنامه های تحت ویندوزو وب را تحت تاثیر قرار خواهند داد. توسعه برنامه های مبتنی بر ویندوز با WinForms جدید و همچنین  نسخه جدید WPF انجام خواهد شد. ASP.NET نسخه 4.0 نیز دارای بهبودها و ویژگی های جدیدی است که توسعه وب را لذت بخش تر و حرفه ای تر از قبل خواهد کرد. Silverlight جایگاه خود را کم کم در توسعه وب مستحکم می کند و آینده خوبی برایش پیش بینی می شود. توسعه راهکارهای Sharepoint و Office با ویژوال استادیو 2010 پیشرفت قابل توجهی داشته و به محاسبات ابری یا Cloud Computing در این نسخه توجه بیشتری شده است.

ویژوال استادیو 2010

ویژوال استادیو 2010 بتا 2 دارای بهبودهای بسیار خوبی در هسته IDE، ویرایشگر کد، زبان های برنامه نویسی، ابزارهای تست و طراحی برنامه است. نصب ویژوال استادیو 2010 راحت تر از قبل انجام می گیرد و می تواند در کنار ویژوال استادیو 2008 نصب شود و بدون هیچ مشکلی کار کند. شما می توانید ویژوال استادیو 2010 بتا 2 را روی کامپیوتری که در حال حاضر ویژوال استادیو 2008 دارد، نصب کنید، بدون اینکه مشکلی برایتان پیش بیاید.

ظاهر این نسخه کاملاً با استفاده از WPF ساخته شده و بسیار زیباست (+) لوگوی ویژوال استادیو در این نسخه تغییر یافته و مدرن تر شده، هر چند من شخصاً لوگوی قبلی ویژوال استادیو را بیشتر می پسندم.

وگوهای قدیمی و جدید ویژوال استادیو

Team Foundation Server در تمام نسخه های ویژوال استادیو 2010 وجود دارد. تیم های کوچک می توانند از TFS برای کنترل سورس، باگ ترکینگ و اتوماسیون Build پروژه هایشان در ویژوال استادیو 2010 استفاده نمایند. نسخه بیسیک TFS به راحتی بر روی کامپیوترهای سرور و کلاینت قابل نصب و استفاده است.

از نسخه بتای 1 ویژوال استادیو 2010، می توانستید با ابزارهای Windows Azure کار کنید اما حالا و با نسخه بتای 2 آسان تر می توانید توسعه برنامه های Windows Azure را شروع کنید. این یعنی تجربه لذت بخش استفاده از «محاسبات ابری» با دات نت و ویژوال استادیو!

در این نسخه نیز مانند نسخه 2008 می توانید نسخه فریم ورک خود را تغییر دهید. این امکان بسیار کاربردی ومفید است، به طور مثال شما می توانید از ویژوال استادیو 2010 برای توسعه برنامه های مبتنی بر دات نت فریم ورک 2.0 یا 3.5 استفاده کنید.

پیمایش کد در ویرایشگر کد با قابلیت های ویژوال استادیو 2010 بسیار آسان تر شده (+) و Intellisense در این نسخه دستخوش تغییرات و بهبود شده است. (+)

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

ویژوال استادیو 2010 بتا 2 را دانلود کنید

برای دریافت ویژوال استادیو 2010 به اینجا بروید. از 21 اکتبر (29م مهر) دریافت برای عموم آزاد است!البته مشترکان MSDN دو روز زودتر از بقیه می توانستند این نسخه را دریافت کنند.

منابع بیشتر برای آشنایی با دات نت فریم ورک 4.0

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

در آخر می توانید برای کسب اطلاعات بیشتر وبلاگ ScottGu را بخوانید که ایشون یک سری پست در مورد ویژگی های جدید این نسخه نوشته اند و در آینده هم خواهند نوشت.خواندن وبلاگ Scott Hanselman نیز توصیه می شود.

برای اطلاع از به روز رسانی این وبلاگ، مشترک فید فراسان شوید! چطور مشترک شویم!

ASP.NET MVC; ساخت صفحات وب بدون فرم های وب!

اگر برای توسعه وب اپلیکیشن ها از ASP.NET استفاده می کنید و با نام MVC آشنایی ندارید، پس در حال حاضر از وب فرم ها در ASP.NET استفاده می کنید. اگر نمی دانید منظور از وب فرم ها (WebForms) چیست، این مطلب را بخوانید. شرکت مایکروسافت علاوه بر وب فرم ها، فریم ورک دیگری به نام ASP.NET MVC برای ایجاد وب اپلیکیشن ها در ASP.NET در اختیار توسعه دهندگان وب قرار داده است. این فریم ورک جدید، رایگان و کدباز است و روشی متفاوت از وب فرم ها برای توسعه صفحات وب به توسعه دهندگان ASP.NET ارائه می کند. در این مطلب به معرفی فریم ورک قدرتمند ASP.NET MVC می پردازم.

ASP.NET MVC فریم ورک قدرتمندی برای ایجاد اپلیکیشن های تحت وب است که از الگوی MVC استفاده می کند و توسط مایکروسافت به صورت اوپن سورس توسعه داده می شود. MVC یک الگوی طراحی و مخفف کلمات Model-View-Controller است. فریم ورک ASP.NET MVC الگوی طراحی MVC را در پلت فرم وب اپلیکیشن مایکروسافت یعنی ASP.NET پیاده سازی می کند. این فریم ورک اولین بار در دسامبر 2007 و با یک نسخه CTP توسط مایکروسافت معرفی شد. در مارس 2009 نسخه 1 پایدار آن عرضه شد و یک ماه بعد یعنی در آپریل 2009 شرکت مایکروسافت سورس کد فریم ورک ASP.NET MVC را تحت مجوز MS-PL منتشر نمود.

MVC چیست!؟

mvc

مفهوم کلیدی این فریم ورک همان سه حرف آخر آن یعنی MVC است. پس کمی در مورد آن توضیح می دهم. همانطور که گفتم، MVC یک الگوی طراحی است که همانطور که از نامش پیداست، یک پروژه نرم افزاری را به سه قسمت منطقی Model, View و Controller تقسیم می کند. شاید شما در حال حاضر با معماری 3 لایه نرم افزاری آشنا باشید. اگر اینطور است، شما مشکلی در درک الگوی طراحی MVC نخواهید داشت. MVC مفهوم جدیدی نیست، خیلی وقت است که در جاوا، رابی، PHP و بسیاری پلت فرم های دیگر از این الگو برای طراحی نرم افزار استفاده می شده است. اما خب برای توسعه دهندگان ASP.NET تازه است. سه قسمت اصلی الگوی MVC :

  • Model : مدل قسمتی از یک اپلیکیشن است که وظایف سنگین دسترسی به داده ها، پیاده سازی منطق و موجودیت ها را بر عهده دارد. به طور معمول یک مدل وظیفه Map کردن جداول اطلاعاتی یک دیتابیس را به کلاس های شیء گرا و برعکس را بر عهده می گیرد. احتمالاً شما همین الان هم در پروژه های خود، مدل را پیاده سازی می کنید و به آن لایه دسترسی به داده می گویید! Model باید طوری پیاده سازی شود که به هیچ وجه به رابط کاربری وابستگی نداشته باشد.
  • View : احتمالاً کاربرد View را حدس زده اید! رابط کاربری همان View است. در واقع بخشی که یک کاربر نهایی با آن تعامل خواهد داشت و اطلاعات را نمایش می دهد، View نام دارد. همانطور که رابط کاربری برای Model هیچ اهمیتی ندارد، اینکه چطور داده ها اعتبارسنجی یا ذخیره می شوند یا منطق اپلیکیشن شما چطور پیاده سازی شده است، برای View مهم نیست.
  • Controller : فضای خالی میان Model و View را Controller پر می کند. از آنجا که Model و View هیچ ارتباطی با هم ندارند و برای یکدیگر هیچ اهمیتی قائل نیستند، Controller داده ها را از Model به View برای نمایش به کاربر انتقال می دهد. کنترلرها تصمیم می گیرند که اطلاعاتی که شما وارد کرده اید را به کجا برسانند و همینطور چه چیزی را باید در خروجی مشاهده کنید. در واقع کنترل کننده و هماهنگ کننده میان Model و View است.

فقط به این نکته توجه داشته باشید که در یک اپلیکیشن MVC کامپوننت View فقط جهت نمایش خروجی به کاربر مورد استفاده قرار می گیرد و این Controller است که ورودی ها را از کاربر می گیرد و به آن ها پاسخ می دهد.

چرا از ASP.NET MVC استفاده کنیم؟

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

یکی از مزایای مهم استفاده از متدولوژِی ASP.NET MVC این است که شما را مجبور می کند تا یک جداسازی شفاف میان اجزای برنامه خود ایجاد کنید. این کار باعث می شود که توسعه پروژه در دراز مدت و آزمایش آن به آسانی انجام گیرد. الگوی MVC به شما کمک می کند تا بتوانید از Test Driven Development یا TDD در پروژه خود استفاده کنید. شما را قادر می سازد تا از تست واحد یا Unit Test استفاده کنید. به طور مثال شما می توانید عملکرد یک Controller را بدون اینکه روی ASP.NET اجرا شود، بررسی کنید که این کار عملیات تست واحد را سرعت می بخشد. برای انجام تست، می توانید از هر فریم ورک تست واحدی مثل NUnit استفاده کنید.

URLهای ایجاد شده در یک پروژه مبتنی بر فریم ورک ASP.NET MVC بسیار بسیار واضح هستند و البته برای موتورهای جستجوگر دوستانه (SEO Friendly) هستند. این کار را کامپوننت URL Mapping فریم ورک ASP.NET MVC برای شما انجام می دهد. URLهایی که نیازی به داشتن پسوند aspx یا هر پسوند دیگری ندارند و به آسانی از قوانین SEO و الگوهای نام گذاری REST پشتیبانی می کنند.

نکته ای که شما را خوشحال خواهد کرد این است که فریم ورک ASP.NET MVC از بسیاری از امکاناتی که در حال حاضر در ASP.NET هستند مثل MasterPage, Data Binding, Form/Windows Authorization, Membership/Roles, Data Caching, Session/Profile state management, Health Monitoring پشتیبانی کامل می کند.

نکته ای هم که ممکن است شما را اذیت کند این است که در فریم ورک ASP.NET MVC از برنامه نویسی مبتنی بر رویداد خبری نیست و همچنین نمی توانید از Post Back برای تعامل دوباره با سرور استفاده کنید. ASP.NET MVC برخلاف وب فرم ها که به صورت خودکار و با استفاده از ViewState حالت یک صفحه وب را به صورت مصنوعی حفظ می کنند، از مدل طبیعی بی حالت (=Stateless) وب پیروی می کند. البته این موضوع آنقدرها هم بد نیست چون باعث حذف ViewState می شود و حذف ViewState هم به معنی صفحات سبک تر و در نتیجه لود شدن سریعتر صفحات وب است.

برای شروع ASP.NET MVC به چه چیزهایی احتیاج دارید!؟

منابع این مطلب :

farasun.wordpress.com

برای باخبر شدن از مطالب آینده این وبلاگ مشترک فید فراسان شوید!

farasun.wordpress.com

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

بررسی دات نت 4.0 – ویژوال بیسیک 2010

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

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

Auto Implemented-Properties

این ویژگی راه سریعی برای نوشتن خصوصیات کلاس هاست. دیگر لازم نیست برای هر یک از Propertyهایی که می خواهید بنویسید، ابتدا یک فیلد Private تعریف کنید و سپس قسمت های Get و Set مروبط به آن را بنویسید، با استفاده از این ویژگی، کامپایلر ویژوال بیسیک به صورت اتوماتیک فیلد خصوصی را به صورت مخفی ایجاد می کند. برای ایجاد یک خصوصیت با پیاده سازی خودکار تنها کافیست خط عنوان Property را بنویسید. کامپایلر یک فیلد مخفی با اضافه کردن یک _ به نام Property که نوشته اید، ایجاد می کند. به طور مثال اگر مشخصته ای به نام Name را به این صورت می نویسید، کامپایلر ویژوال بیسیک فیلدی به نام _Name برای آن در نظر می گیرد. در این صورت باید توجه داشته باشید که دیگر نمی توانید شناسه _Name را در این کلاس به کار ببرید. در صورت به کار بردن چنین شناسه ای با خطای کامپایلر مواجه خواهید شد. این ویژگی اولین بار در نسخه 3.0 سی شارپ با عنوان «خصوصیات اتوماتیک» معرفی شده بود.

برای مثال در نسخه قبل ویژوال بیسیک، برای تعریف یک مشخصه که قرار است یک مقدار را بدون بررسی در خود ذخیره کند باید خطوط زیر را می نوشتیم :
Private _name As String
Public Property Name As String
Get
Return _name
End Get
Set(ByVal value As String)
_name = value
End Set
End Property

حال با استفاده از ویژگی Auto implemented-Properties با نوشتن فقط یک خط، مشخصه بالا را ایجاد می کنید :

Public Property Name As String

تغییرات ویژوال بیسیک 2010

Implicit Line Continuation

همانطور که می دانید، هر عبارت ویژوال بیسیک باید در یک خط تایپ شود. این محدودیت هایی بوجود می آورد. مثلاً در مواقعی که یک عبارت یک خط خیلی طولانی می شود، یا برای بالا بردن خوانایی برنامه، بایستی یک عبارت یک خطی به چند خط شکسته شود. تا به حال برای این کار در جایی که می خواستیم عبارت را به چند خط بشکنیم یک _ قرار می دادیم و ادامه عبارت را در خط بعدی می نوشتیم. در نسخه جدید ویژوال بیسیک می توانید به راحتی و بدون استفاده از _ عبارات را به چندین خط بشکنید، که البته این هم شرایطی دارد. به طور مثال می توانید پس از علامت کاما (,) یا یک پرانتز عبارت را به چند خط بشکنید. همچنین این کار پس از علامت } و علایم انتصاب مانند = نیز می تواند انجام گیرد. اطلاعات بیشتر…

Collection Initializers

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

Dim months As New List(Of String) From {"Farvardin", "Ordibehesht", "Khordad"}

عبارات Lambdaی چند خطی

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

تعیین نسخه زبان ویژوال بیسیک برای کامپایلر

پارامتر جدیدی به خط دستور کامپایلر ویژوال بیسیک اضافه شده است که می توانید با آن به کامپایلر بگویید که فقط نحو (Syntax) نسخه خاضی از ویژوال بیسیک را بپذیرد. x/langversion:x این اختیار جدید است که می توانید به جای x از اعداد 9، 9.0 یا 10 استفاده کنید.

ایجاد از استفاده! (Generate from Usage)

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

Highlighting Referemces

با استفاده از این ویژگی شما می توانید با کلیک کردن روی یک شناسه، تمام خطوطی را که این شناسه در آن ها بکار رفته است را برجسته کنید. سپس با کلیدهای ترکیبی Ctrl+Shift+Down و Ctrl+Shift+Up در میان آن ها حرکت کنید.

farasun.wordpress.com

ویژوال بیسیک 2010 دارای ویژگی های دیگری همچون پشتیبانی از اشیای پویا نیز هست که ما در این مطلب به آن ها نپرداختیم. سه ویژگی آخری که در این مطلب به آن ها اشاره شد، بیشتر مربوط به محیط توسعه هستند تا ویژگی خود زبان، و این ویژگی ها میان زبان های ویژوال بیسیک 2010 و سی شارپ 4.0 مشترک هستند.

farasun.wordpress.com

برای پیگیری مطلب این وبلاگ، مشترک فید فراسان شوید! نمی دانید فید چیست! اینجا را بخوانید.