استفاده از Castle ActiveRecord در پروژه های تحت وب

در سری آموزشی Castle ActiveRecord با یک پروژه مثال تحت ویندوز پیش رفتیم و همانطور که مشاهده کردید نکته خاصی در مورد نوع پروژه که تحت ویندوز بود وجود نداشت. اما استفاده از یک ORM در پروژه های تحت وب به علت ماهیت خاص وب، استراتژی خاصی را نیز می طلبد. در یک پروژه تحت وب، ممکن است کاربران زیادی وجود داشته باشند که هر کدام درخواست هایی را برای برنامه ما می فرستند که اکثر این درخواست ها مربوط به دسترسی به داده ها باشند.

ساده ترین روش برای استفاده از Castle ActiveRecord در یک برنامه تحت وب اضافه کردن خاصیت isWeb=»true» در بخش کانفیگ CAR در فایل web.config است. این کار باعث می شود تا CAR مجبور به استفاده از استراتژی متفاوتی برای نگهداری نمونه های Sessionهای NHibernate بکار بگیرد. در اینجا قصد نوشتن توضیحات اضافه را ندارم، بهتر است نمونه کانفیگ ActiveRecord برای یک برنامه تحت وب را مشاهده کنید :

<activerecord
 isWeb="true"
 isDebug="true"
 threadinfotype="Castle.ActiveRecord.Framework.Scopes.HybridWebThreadScopeInfo, Castle.ActiveRecord">
 <config>
 <add key="connection.driver_class"
 value="NHibernate.Driver.SqlClientDriver"/>
 <add key="dialect"
 value="NHibernate.Dialect.MsSql2008Dialect"/>
 <add key="connection.provider"
 value="NHibernate.Connection.DriverConnectionProvider"/>
 <add key="connection.connection_string"
 value="Data Source=.\SQLEXPRESS;Initial Catalog=RegisterUsers;Integrated Security=True;Pooling=False"/>
 <add key="proxyfactory.factory_class"
 value="NHibernate.ByteCode.Castle.ProxyFactoryFactory, NHibernate.ByteCode.Castle"/>
 <add key="SessionScopeWebModule"
 value="Castle.ActiveRecord.Framework.SessionScopeWebModule"
 name="SessionScopeWebModule"
 type="Castle.ActiveRecord.Framework.SessionScopeWebModule"/>
 </config>
 </activerecord>
 

برای اینکه بتوانیم از الگوی Session per Request استفاده کنیم (همانطور که برای NHibernate پیاده سازی می کنند) باید یک کلاس با کدهای زیر به پروژه خودمان اضافه کنیم :

public class SessionModule : HttpApplication
{
 public SessionModule()
 {
 BeginRequest += new EventHandler(OnBeginRequest);
 EndRequest += new EventHandler(OnEndRequest);
 }

 protected void Application_Start(Object sender, EventArgs e)
 {
 BeginRequest += new EventHandler(OnBeginRequest);
 EndRequest += new EventHandler(OnEndRequest);
 }

 public void OnBeginRequest(object sender, EventArgs e)
 {
 HttpContext.Current.Items.Add("ar.sessionscope", new SessionScope());
 }

 public void OnEndRequest(object sender, EventArgs e)
 {
 try
 {
 SessionScope scope = HttpContext.Current.Items["ar.sessionscope"] as SessionScope;

 if (scope != null)
 {
 scope.Dispose();
 }
 }
 catch (Exception ex)
 {
 HttpContext.Current.Trace.Warn("Error", "EndRequest: " + ex.Message, ex);
 }
 }
}

و البته خطوط زیر را به بخش system.web فایل web.config اضافه کنیم :

<httpModules>
 <add name="ar.sessionscope"
 type="Castle.ActiveRecord.Framework.SessionScopeWebModule, Castle.ActiveRecord"/>
</httpModules>

هنوز کارمان تمام نشده. باید ActiveRecord را در فقط برای اولین اجرای برنامه راه اندازی کنیم. اگر یادتان باشد در یک برنامه تحت ویندوز، راه اندازه اولیه ActiveRecord را در هنگام اجرای برنامه در متد main فایل Program.cs می نوشتیم. در یک برنامه تحت وب این کار را باید در Application_Start انجام دهیم. این متد در یک برنامه تحت وب فقط یکبار و در زمان اجرای اولیه صدا زده می شود و بهترین مکان برای راه اندازی اولیه فریم ورک ActiveRecord است. این متد زمانی که یک فایل Global.asax به پروژه خود اضافه می کنید ایجاد می شود. بدنه این متد برای راه اندازی اولیه ActiveRecord چیزی شبیه کدهای زیر می تواند باشد :

protected void Application_Start(object sender, EventArgs e)
{
 IConfigurationSource configSource = ConfigurationManager.GetSection("activerecord")
 as IConfigurationSource;
 ActiveRecordStarter.Initialize(typeof(User).Assembly, configSource);
}

برای درک بهتر مطلب می توانید پروژه مثال این مطلب را از اینجا دریافت کنید.

استفاده از jQuery UI Dialog در ASP.NET

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

خوشبختانه کتابخانه jQuery UI دارای یک کامپوننت Dialog مناسب برای استفاده در محیط وب است که با تمامی مرورگرهای مدرن سازگاری کامل دارد و به علت اینکه بر روی کتابخانه jQuery کار می کند در تمام پلت فرم های توسعه وب قابل استفاده است.

برای استفاده از این Dialog در یک صفحه ASP.NET باید کتابخانه های jQuery و jQuery UI را دانلود کنید و در صفحه مورد نظر خود به آن ها ارجاع اسکریپتی بدهید. در این مطلب یک مثال ساده در مورد استفاده از jQuery UI Dialog  را توضیح خواهیم داد. پروژه مثال این مطلب را از اینجا دریافت کنید. قصد ندارم تمام کدهای نوشته شده در این پروژه مثال را توضیح بدهم، فقط نکات مهم مربوط به موضوع بحث را خواهید خواند. خواندن سورس کد و مشاهده مثال بهتر از توضیحات متنی به شما کمک می کند.

پس از دانلود و اجرای پروژه، با یک صفحه ساده مواجه خواهید شد که یک دکمه با عنوان Set Values در آن وجود دارد. با کلیک کردن بر روی این دکمه یک دیالوگ jQuery شبیه به تصویر زیر خواهید داشت :

jQuery UI Dialog Exampleدکمه Cancel دیالوگ را می بندد و دکمه OK برچسب های روی صفحه را با مقادیر تکست باکس ها هماهنگ می کند. jQuery UI Dialog در حالت معمول بعد از تگ form در ASP.NET رندر می شود که این باعث می شود تا دکمه های موجود در دیالوگ هیچ Post Backی به صفحه نداشته باشند که البته این مشکل به راحتی حل می شود. برای اینکه دکمه های موجود در دیالوگ بدون رفرش شدن صفحه کار خود را انجام بدهند، محتویات دیالوگ را درون یک UpdatePanel قرار می دهیم. مهمترین کدهایی که در مورد آن ها بحث می کنیم، کدهای جاوا اسکریپت زیر هستند :

<script type="text/javascript">
 $(document).ready(function () {
 $('#divValues').dialog({
 autoOpen: false,
 draggable: true,
 maxHeight: 440,
 width: 400,
 modal: true,
 title: "Enter values",
 open: function (type, data) {
 $(this).parent().appendTo("form");
 }
 });
 });

 function openDialog(id) {
 $('#' + id).dialog("open");
 }

 function closeDialog(id) {
 $('#' + id).dialog("close");
 }

 </script>

در واقع این کدهای بالا هستند که دیالوگ jQuery را می سازند و آن را باز و بسته می کنند. علامت $ که در ابتدای کد بکار رفته نشان دهنده این است که در حال استفاده از توابع کتابخانه jQuery هستیم. تابع اول دیالوگ را با خصوصیات مشخص شده مقدار دهی می کند. لیست کامل این خصوصیات را می توانید اینجا مشاهده کنید و بر اساس نیاز خود تغییر دهید. بعد از اجرای برنامه، تا زمانی که تابع openDialog صدا زده نشود، دیالوگ ما هم نشان داده نخواهد شد و در واقع jQuery آن را از دید کاربر مخفی نگه خواهد داشت. محتویات یک دیالوگ باید در یک div قرار بگیرند که نام آن باید برای dialog مشخص شود. نکته ای که شما به عنوان یک برنامه نویس ASP.NET در این مورد باید بدانید این است که حتماً UpdatePanel دیالوگ را داخل این div قرار دهید تا کدهایتان به درستی کار کند.

ویژگی خوب کتابخانه jQuery UI سبک بودن و سازگار بودن با اکثر مرورگرهای مدرن امروزی است. برای تغییر ظاهر دیالوگ هم دست شما بسیار باز است و می توانید از تم های آماده jQuery UI استفاده کنید و یا حتی استایل خود را برای آن بسازید.

دریافت پروژه مثال

اهمیت jQuery برای برنامه نویسان ASP.NET

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

jQuery چیست و چه فرقی با Java Script دارد؟

JQuery - a new kind on java script libraryjQuery یک فریم ورک سریع و سبک به زبان جاوا اسکریپت است که از CSS3 و اکثر مرورگرهای حال حاضر به صورت کامل پشتیبانی می کند و بسیاری از کارها را که با جاوا اسکریپت به سختی و با نوشتن کدهای فراوان باید انجام داد را به راحتی و با نوشتن کد کمتر می توان انجام داد. جاوا اسکریپت یک زبان اسکریپت نویسی سمت کلاینت است و jQuery یکی از فریم ورک های محبوب برای این زبان است.

jQuery چه ربطی به برنامه نویسان ASP.NET دارد؟

مایکروسافت در حال حاضر به صورت رسمی از jQuery پشتیبانی می کند و پروژه های ASP.NET MVC که در ویژوال استادیو 2010 می سازید، به صورت پیش فرض از jQuery استفاده می کنند. این پشتیبانی رسمی دلیل بسیار محکمی است برای ما برنامه نویسان تکنولوژی های مایکروسافت که به یادگیری jQuery بپردازیم. اما دلایل مهم دیگری نیز وجود دارد. یادگیری و استفاده از jQuery نسبت به کارهایی که برای شما انجام می دهد، آسان است. با تمام مرورگرهای محبوب حال حاضر مثل IE, Firefox, Chrome, Opera, Safari سازگاری کامل دارد. شما کدهای خود را یکبار می نویسید و دیگر نگران نوع مرورگر کاربر برای اجرای این کدها نخواهید بود. با استفاده از jQuery می توانید به راحتی تمام عناصر صفحه را پس از رندر شدن تغییر دهید. انجام اعمال AJAX با استفاده از این فریم ورک امکان پذیر است و معمولاً کارایی بهتری نسبت به ASP.NET AJAX دارد.

از کجا شروع کنیم؟

هرچند jQuery به صورت پیش فرض در پروژه های ویژوال استادیو 2010 پیدا می شود اما شما می توانید آخرین نسخه jQuery را از سایت رسمی اش دانلود کنید. در همین سایت، برای شروع می توانید مستندات jQuery را بخوانید. Rick Strahl در اینجا مطلب آموزشی مناسبی در مورد استفاده از jQuery در ASP.NET نوشته که برای شروع مطلب خوبی است. در کدپلس هم می توانید پروژه های زیادی پیدا کنید که استفاده از jQuery در ASP.NET را آسان تر کرده اند. اگر در سایت های دانلود eBook به دنبال کتاب jQuery for ASP.NET Developers بگردید، کتاب خوبی است برای شروع.

نرم افزارهای وبلاگ نویسی اوپن سورس در ASP.NET

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

BlogEngine.NET

BlogEngine.NET logoمعروف ترین و پایدارترین ابزار وبلاگ نویسی کد باز ASP.NET است که پیچیدگی کمی دارد، راحت نصب و سفارشی می شود و از آخرین ویژگی های پلت فرم دات نت بهره می برد. BlogEngine.NET تمام ویژگی های یک پلت فرم وبلاگ نویسی مدرن را دارد. از تکنولوژی AJAX برای نشان دادن کامنت ها و اسکرین شات Trackbackها استفاده می کند و از Gravatar، coComments، Google Sitemap، تگ های XFN، ابر تگ ها و دیگر ویژگی های وب 2.0 پشتیبانی کامل می کند. BlogEngine.NET دارای یک سیستم نظر دهی انعطاف پذیر و پیشرفته است و با استفاده از AJAX امکان Live Commenting را به خوانندگان شما می دهد. چند نویسنده به طور هزمان می توانند در یک وبلاگ در موضوعات مختلف بنویسند. خوانندگان وبلاگ با ابزار جستجوی BlogEngine.NET براحتی می توانند مطلب مورد نظرشان را پیدا کنند. با داشتن مهارت کمی در زمینه ASP.NET و HTML می توانید Themeهای زیبایی برای آن بسازید. سیستم مدیریت نظرات خوبی دارد و در آخرین نسخه آن یک سیستم Anti Spam قدرتمند نیز به آن اضافه شده است. BlogEngine.NET برای نصب نیازی به دیتابیس ندارد و اطلاعات وبلاگ شما را در فایل های XML ذخیره می کند، اما اگر ترجیح می دهید که داده های وبلاگ خود را در یک دیتابیس ذخیره کنید، BlogEngine.NET شما را نا امید نمی کند و قادر است اطلاعات یک وبلاگ را در دیتابیس های استاندارد مثل SQL Server ، MySQL و SQLite ذخیره کند.

دریافت | نصب بوسیله WPI

dasBlog

DasBlogdasBlog بر روی ASP.NET 2.0 و با زبان سی شارپ ساخته شده است. سیستم نظر دهی مناسبی دارد و از Trackback ، Gravatar و Ping پشتیبانی می کند. سیستم مدیریت ساده ای دارد و صفحات کم حجمی را برای خوانندگان شما ایجاد می کند. هم اکنون dasBlog به همراه 24 Theme منتشر می شود و آپدیت های منظمی دارد. از Live Commenting و Gravatar پشتیبانی می کند و قادر به استفاده از پلاگین Akismet موجود در وردپرس برای شناسایی کامنت های اسپم است. شما به عنوان نویسنده وبلاگ می توانید از Word و LiveWriter برای نوشتن مطالب خود در dasBlog بهره ببرید. برای نصب dasBlog نیازی به دیتابیس ندارید. dasBlog اطلاعات وبلاگ شما را در فایل های XML نگه داری می کند. از Google Sitemap و سرویس CoComment نیز پشتیبانی می کند و سازگاری خوبی با مرورگرهای موبایل دارد. اگر به دنبال یک پلت فرم وبلاگ نویسی ساده، کم حجم و رایگان می گردید، dasBlog می تواند بهترین انتخاب شما باشد.

دریافت | نصب بوسیله WPI

Subtext

Subtext logoیکی از قدیمی ترین پروژه های کدباز پلت فرم ASP.NET است که به عنوان یک Fork از ابزار وبلاگ نویسی ساده TEXT ایجاد شد و توسط Phill Haack یکی از کارمندان مایکروسافت ادامه پیدا کرد. نصب و استفاده از آن ساده است و شما را درگیر پیچیدگی های زیادی نمی کند. از Trackback ، Pingback و Live Commenting پشتیبانی می کند. Subtext بر روی سادگی در استفاده، زیبایی و کاربردی بودن تمرکز دارد. اگر به دنبال یک پلت فرم وبلاگ نویسی ساده و در عین حال قدرتمند می گردید، Subtext برای شماست.  با یکبار نصب شما می توانید چند وبلاگ داشته باشید و آن ها را یکجا مدیریت کنید. از OpenID، BlogML و اکثر ویژگی های وب 2.0 پشتیبانی می کند و برای نصب آن نیاز به یک دیتابیس SQL Server خواهید داشت. MySpace برای وب سایت چینی خود از Subtext برای مدیریت وبلاگ هایش استفاده می کند.

دریافت | نصب بوسیله WPI

Oxite

oxite logoOxite برای خیلی ها نام جدیدی است. Oxite بر روی ASP.NET MVC توسعه می یابد و از آخرین تکنولوژی های پلت فرم دات نت و استانداردهای وب استفاده می کند. شرکت مایکروسافت این ابزار را برای وب سایت MIX Online خود توسعه داد و در حالا به صورت اوپن سورس در اختیار همه قرار دارد. همین که نام مایکروسافت به عنوان توسعه دهنده Oxite آورده شده کافی است تا به قدرت و انعطاف پذیری این نرم افزار وبلاگ نویسی اطمینان پیدا کنید و به آینده آن امیدوار باشید. از ویژگی های Oxite می توان به پشتیبانی از Trackback، Pingback، Sitemap، MetaWeblog API و RSS برای تمام موجودیت ها اشاره کرد. به دلیل استفاده از ASP.NET MVC برای توسعه Oxite، صفحات تولید شده به مراتب کم حجم تر و SEO Friendlyتر هستند. Oxite نیاز به یک دیتابیس SQL Server نسخه 2005 به بالا برای ذخیره داده های وبلاگ شما دارد و با یک بار نصب قادر به ایجاد و مدیریت چندین وبلاگ است. در حال حاضر Oxite یک محصول کامل شده نیست و استفاده از آن به افراد غیر برنامه نویس و نا آشنا با ASP.NET توصیه نمی شود اما می توان آینده خوبی را برای آن متصور بود. یک نسخه آنلاین و عملی از Oxite را می توانید اینجا مشاهده کنید.

دریافت

AtomSite
AtomSite logo AtomSite یک پلت فرم حرفه ای برای وبلاگ نویسی است که بر روی ASP.NET MVC توسعه داده شده است. به علت ماژولار بودن این ابزار، سفارشی سازی آن بسیار آسان است. AtomSite تمام ویژگی هایی که از یک نرم افزار پیشرفته وبلاگ نویسی انتظار دارید را در خود جای داده است. از فید، Widget، Theme، Gravatar، Pingback، Trackback و OpenID پشتیبانی می کند و قادر است با یک بار نصب، وبلاگ های متعددی را مدیریت کند. به علت استفاده از ASP.NET MVC به عنوان پلت فرم توسعه، کارایی بالایی دارد و از نظر SEO قوی است.

دریافت | نصب بوسیله WPI

Mayando
Mayando-Logoاگر به دنبال یک نرم افزار Photo Blogging سبک و کار راه انداز می گردید، Mayando می تواند جوابگوی تمام نیازهای شما باشید. Mayando با استفاده از ASP.NET MVC نوشته شده و از  ویژگی های آن می توان به ساختن صفحات، فرم تماس، فرم نظرات، تگ ها، گالری ها و پشتیبانی از فید، فلیکر و زبان های مختلف (در حال حاضر فقط انگلیسی و آلمانی اما به راحتی می توان زبان جدید به آن اضافه کرد) اشاره نمود. نصب آن به لطف Web Platform Installer آسان است و شما می توانید یک دمو از Mayando را در اینجا مشاهده کنید.

دریافت | نصب بوسیله WPI

farasun.wordpress.com

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

مزیت های ASP.NET MVC نسبت به ASP.NET WebForms

ASP.NET MVC یک فریم ورک کاملاً جدید برای ساختن اپلیکیشن های ASP.NET است که با هدف جداسازی شفاف لایه های برنامه و قابلیت تست پذیری بالا بوجود آمده است. برنامه نویسان دات نت با استفاده از ASP.NET MVC می توانند رفتار Stateless وب را درک کنند و بر روی کدهای HTML خروجی صفحات خود کنترل کامل داشته باشند. در فریم ورک ASP.NET MVC بر خلاف ASP.NET WebFroms آدرس های صفحات وب سایت به فایل های فیزیکی aspx وابسته نیستند. در این مطلب اشاره ای کوتاه خواهیم داشت به مزیت های کلی ASP.NET MVC نسبت به ASP.NET WebForms :

1) Separation of Concern : فریم ورک ASP.NET MVC شما را مجبور می کند تا یک جداسازی شفاف از قسمت های مهم اپلیکیشن خود داشته باشید. شما باید کدهای مربوط به دسترسی به داده ها را در قسمت Model و کدهای مربوط به رابط کاربری را در قسمت View بنویسید و برای ایجاد ارتباط میان این دو لایه از Controllerها استفاده کنید. با این جداسازی شفاف، پیچیدگی های پروژه کمتر شده و نگهداری پروژه در درازمدت و انجام تغییرات بر روی آن آسان تر می شود.

2) کنترل کامل بر روی HTML خروجی : با استفاده از ASP.NET MVC شما می توانید درخواست های کاربر را پردازش کنید و خروجی مناسب HTML را به مرورگر بفرستید. کدهای HTML خروجی شما کاملاً تمیز هستند و از کدهای عجیب و غریبی که ASP.NET WebForms برای شما ایجاد می کند خبری نیست!

3) ایجاد URLهای RESTful : با کامپوننت های URL Mapping در این فریم ورک می توانید URLهایی بدون پسوند، واضح و قابل جستجو بسازید. این URLها از قوانین نام گذاری REST پشتیبانی می کنند و از نظر SEO در موتورهای جستجوگر امتیاز خوبی می گیرند.

4) قابلیت تست پذیری : یکی از اهداف مهم طراحی فریم ورک ASP.NET MVC قابلیت تست پذیری بوده است. به علت جدا سازی شفاف میان کدهای منطق برنامه و کدهای مربوط به رابط کاربری، تست کردن اجزای مختلف وب اپلیکیشن های ASP.NET MVC آسان است. ASP.NET MVC با تمام فریم ورک های Testing که برای دات نت ساخته شده اند کار می کند.

5) عدم استفاده از PostBack و ViewState : در ASP.NET MVC خبری از فرم های تحت سرور (یا همان runat=»server» معروف) نیست. شما رویدادی به نام PostBack ندارید و حالت کنترل های شما با استفاده از ViewState حفظ نخواهد شد! این یک مزیت است زیرا باعث ایجاد خروجی واضح تر و صفحات سبک تر می شود.

6) آسان تر کردن کار تیمی : به علت جداسازی واضح میان قسمت های مختلف پروژه و قابلیت تست آسان، کار کردن به صورت تیمی را آسان تر می کند. هر یک از اعضای تیم بر اساس نوع تخصص خودشان می توانند قسمت هایی از پروژه (Model یا View) را طراحی کنند و با استفاده از Controllerها ارتباط میان لایه ها را بسازند.

7) اجبار در کدنویسی مبتنی بر الگوی طراحی : ASP.NET MVC توسعه دهندگان را مجبور به رعایت الگوی طراحی MVC می کند. این اجبار باعث ایجاد یک وب اپلیکیشن با ساختار استاندارد می شود که نگهداری و توسعه آن در دراز مدت آسان خواهد بود.

8 ) کدباز بودن : سورس کد فریم ورک ASP.NET MVC با مجوز Ms-pl که یک مجوز اوپن سورس از شرکت مایکروسافت است، منتشر می شود. کدباز بودن این فریم ورک باعث شده تا شرکت مایکروسافت فیدبک های دقیق تر و سودمندتری از جامعه توسعه دهندگان ASP.NET دریافت کند ودر نتیجه باعث پیشرفت سریعتر آن شده است.

9) سرعت بیشتر در بارگذاری صفحات : همانطور که اشاره شده، با حذف کنترل های تحت سرور، PostBack و ViewState که باعث ایجاد کدهای اضافی جاوا اسکریپت می شود، سرعت لود صفحات وب در ASP.NET MVC به مراتب بیشتر از وب فرم هاست.

farasun.wordpress.com

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

farasun.wordpress.com

WebMatrix توسعه وب را آسان تر می کند

مایکروسافت به تازگی ابزار جدیدی برای توسعه دهندگان وب به نام WebMatrix ارائه کرده است که سفارشی کردن وب اپلیکیشن های موجود یا ساخت یک وب سایت جدید را با امکانات خوب و راه حل های ساده، آسان می کند. این ابزار سبک به افراد کمک می کند تا به راحتی برنامه نویسی با ASP.NET را شروع کنند و خیلی زود در آن پیشرفت کنند. WebMatrix شامل ابزارهای مهم مایکروسافت برای توسعه وب  است. این ابزارها شامل :

  • IIS Developer Express : یک وب سرور سبک و رایگان که با تمام نسخه های ویندوز و نسخه کامل IIS سازگار است.
  • ASP.NET : یک فریم ورک رایگان شامل کلاس های پایه برای توسعه وب.
  • SQL Server Compact : یک نسخه embedded و بسیار سبک و رایگان از SQL Server که بر اساس فایل کار می کند.
  • Razor Syntax : یک View Engine جدید و ساده برای ASP.NET که کدهای سمت سرور سی شارپ یا ویژوال بیسیک را با کدهای HTML ترکیب می کند (مانند  PHP) و یادگیری آن ساده و لذت بخش است.

وب ماتریکس

WebMatrix با استفاده از تکنولوژی های بالا، یک محیط مجتمع ساده و در عین حال قدرتمند برای ساخت وب سایت های داینامیک و مطابق با استاندرادهای جدید به ساده ترین شکل ممکن در اختیار کاربر خود قرار می دهد. شما با وب ماتریکس می توانید یک وب اپلیکیشن اوپن سورس مثل BlogEngine.NET را انتخاب کنید، آن را بر اساس نیاز خود سفارشی کنید و به راحتی آن را بر روی هاست خود پابلیش کنید. پروسه استفاده از وب اپلیکیشن های اوپن سورس در اینترنت با WebMatrix بسیار آسان خواهد بود. شما با وب ماتریکس حتی قادر به انتخاب CMSهای نوشته شده با PHP مثل وردپرس، جوملا و Drupal نیز هستید و حتی می توانید آن ها را با ابزارهای موجود در وب ماتریکس توسعه داده و از همانجا بر روی هاست خود پابلیش کنید.

برای شروع شما می توانید WebMatrix را از اینجا دانلود کنید. اگر دات نت فریم ورک 4.0 را نصب نداشته باشید، کمی حجم دانلود وب ماتریکس بالا خواهد بود، در غیر این صورت با دانلود 15 تا 20 مگابایت WebMatrix را در اختیار خواهید داشت. پس از اجرای آن با یک محیط ساده مواجه خواهید شد که فقط 4 انتخاب را پیش روی شما می گذارد. می توانید یک سایت جدید خالی ایجاد کنید یا از وب اپلیکیشن های موجود در گالری مایکروسافت برای شروع استفاده کنید. هر طور که شروع کنید، وب ماتریکس به شما اجازه مدیریت بر صفحات سایت و تغییر آن ها، مدیریت بر فایل های وب سایت، مدیریت بر دیتابیس سایت و در نهایت پابلیش سایت بر روی سرور را می دهد.

Microsoft Web Gallery

همانطور که اشاره شد، شما در وب ماتریکس می توانید از سینتاکس Razor برای نوشتن کدهای سی شارپ و ویژوال بیسیک در میان کدهای HTML بهر ببرید. یادگیری سینتاکس Razor خیلی آسان است. شما کدهای خود را با یک علامت @ آغاز می کنید و بلاک کد خود را در سی شارپ با { و } محصور می کنید. هر جا که از علامت @ استفاده کنید یعنی می خواهید یک کد سمت سرور را بنویسید. از متغیرها بدون تعیین نوع آن ها استفاده می کنید، سپس ASP.NET خودش بهترین تصمیم را برای تعیین نوع متغیر بر اساس مقداری که درون آن ذخیره می شود خواهد گرفت. صفحاتی که دارای کد Razor هستند دارای پسوندهای مخصوص cshtml یا vbhtml خواهند بود. سینتاکس Razor تمام قدرت ASP.NET را با قواعدی آسان تر در اختیار مبتدیان قرار می دهد، اما حرفه ای ها نیز می توانند به بهترین شکل برای بالا بردن کارایی خود از آن استفاده کنند. یک کد بسیار ساده با سینتاکس Razor را ببینید :


<html>
<head>
<title>Razor Syntax Sample</title>
</head>
<body>

@{
var message = «Hello World.»;
var today = DateTime.Now.ToString();
}

<p>Message : @message</p>
<p>Today is : @today</p>
</body>
</html>

اینطور که پیداست مایکروسافت راه درستی را انتخاب کرده و باید منتظر تکنولوژی های جدیدتر و بهترش در زمینه توسعه وب باشیم. اینکه نظر مایکروسافت در این چند سال اخیر نسبت به نرم افزارهای اوپن سورس تغییرات مثبت زیادی داشته خیلی خوب و سازنده است. مایکروسافت نیز اهمیت استفاده از وب اپلیکیشن های اوپن سورس را در توسعه وب به خوبی می داند و به همین دلیل Microsoft Web Gallery را راه اندازی کرده و توسعه دهندگان را به جای باز تولید اپلیکیشن های تکراری به استفاده و توسعه وب اپلیکیشن های اوپن سورس موجود تشویق می کند. Web Platform Installer و WebMatrix دو ابزار مهم مایکروسافت در زمینه توسعه وب هستند که به صورت توکار از وب اپلیکیشن های اوپن سورس پشتیبانی می کنند و قادرند آن ها را دانلود، تنظیم و پابلیش کنند. تکنولوژی های تحت وب هرچه بازتر باشند بیشتر مورد تایید و مورد اعتماد توسعه دهندگان وب خواهند بود، این را مایکروسافت به خوبی می داند. بدون شک در آینده ای نه چندان دور از WebMatrix و Razor Syntax بیشتر خواهیم شنید.

منابع بیشتر در مورد WebMatrix

استفاده از MySQL در دات نت فریم ورک

بانک اطلاعاتی اوپن سورس MySql را می توان یکی از محبوب ترین و پر استفاده ترین نرم افزارهای بانک اطلاعاتی مورد استفاده در وب دانست. به علت سادگی، قدرت و هزینه پایین این بانک اطلاعاتی، سر و کله اش را می توانید در تمام پکیج های هاستینگ پیدا کنید. خیلی وقت ها ممکن است در یک پکیج هاستینگ ویندوزی نتوانید از SQL Server به عنوان دیتابیس استفاده کنید، یا محدودیت هایی برای آن وجود داشته باشد، اما همیشه و به راحتی می توانید از دیتابیس های MySql استفاده کنید. استفاده از بانک اطلاعاتی MySql در کنار ASP.NET می تواند هزینه و زمان توسعه شما را کاهش بدهد و به نظر من دردسرهای شما را کمتر کند!

دات نت فریم ورک به صورت توکار از MySql پشتیبانی نمی کند و فراهم کننده پیش فرضی  برای کار با آن ارائه نمی کند. شما باید برای استفاده از MySql در دات نت از کتابخانه ای که خود MySql در اختیار برنامه نویسان قرار داده استفاده کنید. استفاده از MySql به لطف این کتابخانه دقیقاً مشابه استفاده از SQL Server یا Access است. ابتدا از اینجا کانکتور MySQL برای دات نت فریم ورک را دریافت کنید. متاسفانه اگر ایران هستید نمی توانید از وب سایت رسمی MySQL فایلی دریافت کنید! دوستان داخل ایران از این لینک برای دریافت این کتابخانه استفاده کنند.

این فراهم کننده از معماری ADO.NET پیروی می کند و به همین علت اگر قبلاً با کامپوننت های ADO.NET مثلاً برای برقراری ارتباط با یک دیتابیس SQL Server استفاده کرده باشید، در اینجا مشکلی نخواهید داشت. به عنوان یک مثال ساده قصد داریم جدول tblUsers را بر روی دیتابیسی به نام Sample بسازیم. ابتدا یک پروژه تحت وب (یا تحت ویندوز، فرقی نمی کند) بسازید و فایلی را که دانلود کردید را به ارجاع های پروژه خود اضافه کنید (با کلیک راست روی نام پروژه در Solution Explorer ، انتخاب Add Reference و انتخاب فایل MySql.dll)  سپس فضای نام MySql.Data.MySqlClient را using کنید و سپس کدهای زیر را در جای مناسب قرار دهید.

string ConnectionString = "server=localhost; userid=root;password=;pooling=yes;Database=Sample;charset=utf8";
using (MySqlConnection connection = new MySqlConnection(ConnectionString))
{
connection.Open();
using (MySqlCommand command = new MySqlCommand())
{
command.Connection = connection;
command.CommandText = "CREATE TABLE tblUsers (Uid INT AUTO_INCREMENT, Uname VARCHAR(100) NOT NULL, " +
"Pwd VARCHAR(100) NOT NULL, PRIMARY KEY(Uid)) CHARACTER SET utf8 COLLATE utf8_persian_ci;";
command.ExecuteNonQuery();
}
}

همانطور که در این مثال مشاهده می کنید در کانکشن استرینگ MySql فوق نام سرور، نام کاربری، رمز عبور و نام دیتابیس تعیین شده اند که شما باید به جای آن ها اطلاعات مربوط به خود را قرار دهید. برای اجرای یک دستور SQL بر روی سرور MySql شما نیاز به یک آبجکت MySqlConnection دارید که با تعیین یک رشته اتصال و فراخوانی متد Open به دیتابیس Sample موجود بر روی localhost وصل می شود. سپس با ایجاد یک آبجکت MySqlCommand و تعیین دستور SQL ساخت جدول tblUsers و اجرای متد ExecuteNonQuery به مقصود خود می رسید.

حالا می خواهیم روالی بنویسم تا عملیات ثبت نام کاربران در سایت را انجام دهد. این روال با گرفتن نام کاربری و رمز عبور اقدام به ایجاد رکورد کاربر در جدول tblUsers می کند.

public void InsertUser(string Username, string Password)
{
using (MySqlConnection connection = new MySqlConnection(ConnectionString))
{
connection.Open();
using (MySqlCommand command = new MySqlCommand())
{
command.Connection = connection;
command.CommandText = "INSERT INTO tblUsers (Uname, Pwd) VALUES (?Uname, ?Pwd)";
command.Parameters.AddWithValue("?Uname", Username);
command.Parameters.AddWithValue("?Pwd", Password);
command.ExecuteNonQuery();
}
}
}

همانطور که مشاهده می کنید اگر کار با کلاس های استاندارد ADO.NET مثل SqlCommand را بلد باشید در استفاده از MySQL هیچ مشکلی نخواهید داشت. تنها فرق MySQL با SQL Server در اینجا این است که برای مشخص کردن پارامترها به جای علامت @ باید از علامت ? استفاده کنید. من کد درج رکورد به یک دیتابیس MySql را نوشتم، شما کدهای Update و Delete را بنویسید!

این کتابخانه شامل کلاس های MySqlDataReader و MySqlDataAdapter نیز هست که شما می توانید از آن ها مثل دیگر کلاس های پیش فرض ADO.NET استفاده کنید و اعمال Data Binding و نمایش اطلاعات در یک GridView را به راحتی و با روش های آشنا انجام دهید. به طور مثال برای نشان دادن محتویات جدول tblUsers در یک GridView می توانید از کدی شبیه به کد زیر کمک بگیرید :

DataSet ds = new DataSet();
MySqlDataAdapter dataAdapter = new MySqlDataAdapter("SELECT * FROM tblUsers", connection);
dataAdapter.Fill(ds);
GridView1.DataSource = ds;

همانطور که مشاهده می کنید استفاده از دیتابیس های MySql به لطف معماری ADO.NET هیچ فرقی با دیگر دیتابیس های پشتیبانی شده توسط دات نت ندارد.

farasun.wordpress.com

پ.ن 1 : علت تاخیر زیاد در انتشار مطلب جدید فیلتر شدن کل وردپرس.کام و امتحانات دانشگاه بود. تنبلی را نیز به این دلایل اضافه کنید!

پ.ن 2 : سایت ها یا وبلاگ های دیگری که به نام «فراسان» فعالیت می کنند به بنده و این وبلاگ هیچ ارتباطی ندارند! من سه سال پیش این نام را کاملاً از ذهنم بیرون کشیدم و از هیچ جایی کپی نکردم! فقط این وبلاگ و این سایت با نام «فراسان»  به من مربوط هستند.