اشتراکها
- برای ایجاد بانک اطلاعاتی از روی کلاسها و مدلهای برنامه، نیاز به ()context.Database.Migrate خواهید داشت.
- ضمنا مایکروسافت روش «db first» را خیلی وقت هست که کنار گذاشته؛ از زمان ارائهی «Entity framework code-first». آگاهی از تاریخچهی تغییرات علم و فناوریها، سردرگمی شما را برای انتخاب آنها کمتر میکند.
نظرات مطالب
ASP.NET MVC #21
- AJAX اختراع خود مایکروسافت هست و اولین بار در برنامه Microsoft Outlook Web Access از آن استفاده شد (بنابراین مرورگرهای آن اولین مرورگرهایی هستند که از AJAX پشتیبانی کردهاند).
- متد JSON.stringify از IE 8 به بعد به صورت توکار پشتیبانی میشود. برای مرورگرهای قدیمیتر از فایل json2.js استفاده کنید.
- متد JSON.stringify از IE 8 به بعد به صورت توکار پشتیبانی میشود. برای مرورگرهای قدیمیتر از فایل json2.js استفاده کنید.
ممنون.
البته فکر کنم که در ASP.NET4.0 میشه کاری کرد که هیچوقت برنامه (وبسایت) از حافظه خارج نشه.
در کل ایده مترو (و ایده های جدید مایکروسافت) نشون میده که یه خبرایی هست تو اون شرکت. ملت دارن یه کارایی می کنند.
البته فکر کنم که در ASP.NET4.0 میشه کاری کرد که هیچوقت برنامه (وبسایت) از حافظه خارج نشه.
در کل ایده مترو (و ایده های جدید مایکروسافت) نشون میده که یه خبرایی هست تو اون شرکت. ملت دارن یه کارایی می کنند.
- 15 نکته کاربردی حین کار با JavaScript در ASP.NET | weblogs.asp.net
- اسکرام در ۱۰ دقیقه! | cl.ly
- ترجمه کتاب CLR via C# 3rd Ed به فارسی | clrviacsharp.ir
- نحوه طراحی زبانهای برنامه نویسی در مایکروسافت | channel9.msdn.com
مقدمه
OData قراردادی برای دسترسی به دادهها است که مایکروسافت آن را تحت مجوز Microsoft Open Specification Promise منتشر کرده است. این قرارداد استاندارد CRUD ایی را برای دسترسی به منبع داده از طریق وب سایت طراحی نموده است که از JDBC و ODBC سادهتر بوده و محدودیت ارتباط فقط با پایگاه دادههای SQL ایی را ندارد.
OData از روی Atom Publishing Protocol و JSON ساخته شده و از مدل REST برای همه در خواستهای خود استفاده مینماید. OData در واقع یک راه مشترک برای هر نوع کلاینت برای دسترسی به هر نوع داده ای است.
OData چهار قسمت اصلی دارد:
- OData data model که یک راه عمومی برای مدیریت و توصیف دادهها را فراهم مینماید
- OData protocol که به کلاینت اجازه ایجاد درخواست و پاسخ از سرویس دهنده OData را میدهد.
- OData client libraries که امکان ساخت سادهتر نرم افزارها برای دسترسی به دادهها با قرارداد OData را میدهد.
- OData service سرویس دهنده و امکان دسترسی به دادهها را فراهم میسازد.
از مزیتهای OData می توان به موارد زیر اشاره نمود:
- ساده و انعطاف پذیر
- سورس باز بودن
- امکان استفاده در سیستمهای با دادههای رابطه ای و غیر رابطه ای
- امکان استفاده از دادهها با منابع ای که آدرس پذیر هستند یعنی دسترسی از طریق Url
- امکان دسترسی هر نوع گیرنده ای به داده ها
- امکان نمایش خروجی با فرمت Json یا Xml
- ...
کتابخانههای کار بار OData:
کتابخانههای بسیاری برای odata نوشته شده است که امکان استفاده آن را در اکثر زبانها مهیا میسازد.
اما بهترین کتابخانه WCF Data Services است که از سوی مایکروسافت ارائه شده و در اکثر تکنولوژیها و محصولات خود قابلیت استفاده را دارد. WCF Data Services با پیاده سازی قرارداد OData ، توسعه دهندگان را از سطح پایین این قرارداد رهایی ساخته و به راحتی میتوانند از ساختار شی گرا برنامه خود، در سرویس دهی با OData استفاده نمایند.
کاربردهای OData:
OData یک قرارداد سرویس دهی بر روی وب است که به هر نوع گیرنده که امکان دسترسی به وب را داشته باشد، امکان سرویس دهی دارد. به همین خاطر در اکثر برنامههای تحت وب یا نرم افرارهای موبایل که میخواهیم اطلاعاتی را مابین سرویس دهنده و گیرنده ردوبدل کنیم حتی زمانیکه platformهای مختلفی در کار باشند OData بهترین گزینه است.
در مطالب بعدی با پیاده سازی مثالهای با استفاده از WCF Data Services بیشتر با OData آشنا خواهید شد. در این اینجا هدف آشنایی اولیه با Odata و کاربردهای آن بود که امیدوارم مفید واقع شده باشد.
در یک نگاه کلی، ASP.NET Web API OData بر روی ASP.NET Web API سوار شده است و مزیتهای پایه آن را به صورت کامل دارد، شامل Routing، داشتن Action Filterها، احراز هویت و ... همچنین استاندارد OData بر روی استاندارد Rest سوار شده است و مزیتهای پایه ای آن را دارا میباشد. اما در کنار اینها OData ویژگی هایی دارد، مانند batch request که در پستهای بعدی توضیح خواهم داد. و همچنین با داشتن Metadata و استفاده از یک OData Client که در JavaScript | C# | Objective-C و ... کتاب خانههای مختلفی برای آنها وجود دارد، شما میتوانید به سادگی Proxy سمت کلاینت رو Generate کرده و متدها را فراخوانی کنید. همچنین سازگاری استاندارد دیتا گرید ها، کمبو باکسها و کنترلهای گوناگون از فریم ورکهای مختلف از دیگر ویژگیهای OData است. بخاطر مبتنی بر Rest بودن Web API OData امکان فراخوانی آن با jQuery نیز وجود دارد؛ اما استفاده از OData Clientها میتواند سادگی کار را به شدت بالا ببرد. سازگاری با Owin و امکان اجرای آن بر روی ASP.NET Core نیز از دیگر موارد مهمی است که باید به آن اشاره کنم. در ضمن این استاندارد محدود به مایکروسافت نبوده و در سایر زبانها و پلتفرمها نیز شناخته شده میباشد. برای مثال امکان نوشتن یک OData Server در جاوا یا جاوا اسکریپت نیز وجود دارد.
در این سلسله مقالات قصد دارم چندین مطلب راجع به افزایش سرعت نرم افزارهای تحت وب مطرح نمایم. این مطالب هرچند بسیار مختصر میباشند ولی در کارایی و سرعت برنامههای شما در آینده تاثیر خواهند داشت.
این دو خط یعنی خداحافظ Web Forms Engine...
البته همانطور که حتما دوستان مطلع هستند امکان گسترش Engineهای فوق توسط ارث بری از کلاس BuildManagerViewEngine جهت ایجاد Engineهای دیگر همیشه محیا است. در این صورت میتوانید تنها انجین سفارشی مورد نظر خود را لود کرده و از لود دیگر انجینها پرهیز کنید.
1.کش کردن همیشه آخرین حربه میباشد
این مهم است که بخشهای مختلف سایت شما در سطوح مختلف کش شوند (ASP.NET, Kernel, Server, Proxy Server, Browser ,...) ولی این موضوع باید همیشه آخرین حربه و نکته ای باشد که آن را در مورد سایت خود اعمال میکنید.
یعنی همیشه مطمئن شوید ابتدا تمامی نکات مربوط به افزایش کارایی در برنامه خود را رعایت کرده اید، سپس اقدام به کش دادهها در سطوح مختلف نمایید. توجه کنید کش کردن دادهها و صفحات میتواند مشکلات را برای شما به عنوان یک برنامه نویس یا تست کننده برنامه پنهان کند و به شما اطمینان دهد که همه چیز خوب کار میکند در حالی که این چنین نیست!
البته ذکر این نکته هم بی فایده نیست که کش کردن همه چیز بعضی مواقع دشمن برنامه شما محسوب میشود! هیچ وقت یادم نمیرود، در پورتال داخلی یک شرکت که در وقت استراحت به کارکنان اجازه مطالعه روزنامههای روز را میداد (به صورت آفلاین)، این نکته در بالای صفحه آورده شده بود: «لطفا برای به روز رساندن صفحات روزنامهها از کلید Ctrl+F5 استفاده نمایید». این موضوع یعنی بحث کشینگ در برنامه آن پرتال در سطح فاجعه میباشد! حالا فرض کنید این مشکل در فرم ورود و یا مرور اطلاعات یک برنامه به وجود آید...
2.حذف View Engineهای غیر ضروری
به عنوان یک برنامه نویس ASP.NET MVC، یابد اطلاع داشته باشید که CLR به صورت خودکار View Engineهای Razor و Web Forms را لود میکند. این موضوع به این دلیل است که اطلاعی از نحوه برنامه نویسی شما ندارد. اگر شما فقط از یکی از این دو View Engine استفاده میکنید،لطفا دیگری را غیر فعال کنید! فعال بودن هر دوی آنها یعنی اتلاف وقت گرانبهای CPU سرور شما برای رندر کردن تمامی صفحات شما توسط دو انجین! ایتدا viewهای شما با Web Forms Engine رندر شده سپس نتیجه به Razor Engine منتقل شده و مجدد توسط این انجین رندر میشود. این موضوع در سایتهای با تعداد کاربر بالا یعنی فاجعه!
برای حل این مشکل کافی است خطوط زیر را در فایل Global.asax و در رویداد بخش Application_Start وارد نمایید:
ViewEngines.Engines.Clear(); ViewEngines.Engines.Add(new RazorViewEngine());
قبل از استفاده از این کد، اطمینان حاصل کنید کل برنامه شما توسط Razor تهیه شده است وگرنه بنده هیچ مسئولیتی در رابطه با فریادهای کارفرمای شما متقبل نمیشوم!
صد البته برای حذف Razor Engine و استفاده از Web Form Engine میتوان از کد زیر در همان موقعیت فوق استفاده کرد:
ViewEngines.Engines.Clear(); ViewEngines.Engines.Add(new WebFormViewEngine());
3. استفاده از فایلهای PDB مایکروسافت برای دیباگ و یا پروفایل کردن DLLهای دیگران
دیباگ یا پروفایل کردن برنامه ها، DLL ها، اسمبلیها و منابعی از برنامه که شما آن را خود ننوشته اید (سورس آنها در دسترس شما نمیباشد) همیشه یکی از سختترین مراحل کار میباشد. جهت کمک به دیباگرها یا پروفایلرها، نیاز است فایلهای PDB مرتبط با DLLها را در اختیار آنها قرار دهید تا به بهترین نتیجه دسترسی پیدا کنید. این فایلها محتوی نام توابع، شماره خطوط برنامه و metadataهای دیگر برنامه اصلی قبل از optimize شدن توسط کامپایلر یا JIT میباشد. خوب حالا اگر نیاز شد این کار را در رابطه با DLLها و کلاسهای پایه Microsoft.NET انجام دهیم چه کار کنیم؟
خیلی ساده! خود Microsoft سروری جهت این موضوع تدارک دیده که فایلهای PDB را جهت دیباگ کردن در اختیار تیمهای برنامه نویسی قرار میدهد.کافی است از منوی Tools گزینه Options را انتخاب، سپس به بخش Debugging و به بخش Symbols بروید و گزینه Microsoft Symbol Servers as your source for Symbols را انتخاب کنید. برای اطمینان از اینکه هر مرتبه که برنامه را دیباگ میکنید مجبور به دانلود این فایلها نشوید، فراموش نکنید پوشه ای را جهت کش این فایلها ایجاد و آدرس آن را در بخش Cache symbols in this directory همین صفحه وارد نمایید.
این امکان در Visual Studio 2010, 2012 در دسترس میباشد.
نظرات اشتراکها
کتابخانهی HtmlSanitizer
HtmlCleaner فقط کار تمیز کردن جاوا اسکریپت را انجام میدهد.
نظرات اشتراکها
چه زبان برنامه نویسیای را در ایران برای یادگیری انتخاب کنم؟
این آمار به نظر شما قابل استناد؟
جاوا اسکریپت جایی توی آمار نداشته!!