اشتراکها
یک سری افزونه و متد الحاقی برای کار با Full text search توسط EF
ASP.NET Web API 2 بهمراه یک سری قابلیت جدید جالب منتشر شده است. در این پست 5 قابلیت برتر از این قابلیتهای جدید را بررسی میکنیم.
این رویکرد routing مزایای خود را دارد. از جلمه اینکه تمام مسیرها در یک مکان واحد تعریف میشوند، اما تنها برای الگوهایی مشخص. مثلا پشتیبانی از nested routing روی یک کنترلر مشکل میشود.
1. Attribute Routing
در کنار سیستم routing فعلی، ASP.NET Web API 2 حالا از Attribute Routing هم پشتیبانی میکند. در مورد سیستم routing فعلی، میتوانیم قالبهای متعددی برای routing بنویسیم. هنگامی که یک درخواست به سرور میرسد، کنترلر مناسب انتخاب شده و اکشن متد مناسب فراخوانی میشود.
در لیست زیر قالب پیش فرض routing در Web API را مشاهده میکنید.
Config.Routes.MapHttpRoute( name: "DefaultApi", routeTemplate: "api/{Controller}/{id}", defaults: new { id = RouteParameter.Optional } );
در ASP.NET Web API 2 به سادگی میتوانیم الگوی URI ذکرد شده را پشتیبانی کنیم. لیست زیر نمونه ای از یک الگوی URI با AttributeRouting را نشان میدهد.
URI Pattern --> books/1/authors [Route("books/{bookId}/authors")] public IEnumerable<Author> GetAuthorByBook(int bookId) { ..... }
2. CORS - Cross Origin Resource Sharing
بصورت نرمال، مرورگرها اجازه درخواستهای cross-domain را نمیدهند، که بخاطر same-origin policy است. خوب، (CORS (Cross Origin Resource Sharing چیست؟
CORS یک مکانیزم است که به صفحات وب این را اجازه میدهد تا یک درخواست آژاکسی (Ajax Request) به دامنه ای دیگر ارسال کنند. دامنه ای به غیر از دامنه ای که صفحه وب را رندر کرده است. CORS با استانداردهای W3C سازگار است و حالا ASP.NET Web API در نسخه 2 خود از آن پشتیبانی میکند.
3. OWIN (Open Web Interface for .NET) self-hosting
ASP.NET Web API 2 بهمراه یک پکیج عرضه میشود، که Microsoft.AspNet.WebApi.OwinSelfHost نام دارد.
طبق گفته وب سایت http://owin.org :
OWIN یک اینترفیس استاندارد بین سرورهای دات نت و اپلیکیشنهای وب تعریف میکند. هدف این اینترفیس جداسازی (decoupling) سرور و اپلیکیشن است. تشویق به توسعه ماژولهای ساده برای توسعه اپلیکیشنهای وب دات نت. و بعنوان یک استاندارد باز (open standard) اکوسیستم نرم افزارهای متن باز را تحریک کند تا ابزار توسعه اپلیکیشنهای وب دات نت توسعه یابند.
بنابراین طبق گفتههای بالا، OWIN گزینه ای ایده آل برای میزبانی اپلیکیشنهای وب روی پروسس هایی به غیر از پروسس IIS است. پیاده سازیهای دیگری از OWIN نیز وجود دارند، مانند Giacomo، Kayak,Firefly و غیره. اما Katana گزینه توصیه شده برای سرورهای مایکروسافت و فریم ورکهای Web API است.
4. IHttpActionResult
در کنار دو روش موجود فعلی برای ساختن response اکشن متدها در کنترلر ها، ASP.NET Web API 2 حالا از مدل جدیدی هم پشتیبانی میکند.
IHttpResponseMessage یک اینترفیس است که بعنوان یک فاکتوری (factory) برای HttpResponseMessage کار میکند. این روش بسیار قدرتمند است بدلیل اینکه web api را گسترش میدهد. با استفاده از این رویکرد، میتوانیم response هایی با هر نوع دلخواه بسازیم.
برای اطلاعات بیشتر به how to serve HTML with IHTTPActionResult مراجعه کنید.
5. Web API OData
پروتکل (OData (Open Data Protocol در واقع یک پروتکل وب برای کوئری گرفتن و بروز رسانی دادهها است. ASP.NET Web API 2 پشتیبانی از expand, $select$ و value$ را اضافه کرده است. با استفاده از این امکانات، میتوانیم نحوه معرفی پاسخ سرور را کنترل کنیم، یعنی representation دریافتی از سرور را میتوانید سفارشی کنید.
- expand$: بصورت نرمال، هنگام کوئری گرفتن از یک کالکشن OData، پاسخ سرور موجودیتهای مرتبط (related entities) را شامل نمیشود. با استفاده از expand$ میتوانیم موجودیتهای مرتبط را بصورت inline در پاسخ سرور دریافت کنیم.
- select$: از این متد برای انتخاب چند خاصیت بخصوص از پاسخ سرور استفاده میشود، بجای آنکه تمام خاصیتها بارگذاری شوند.
- value$: با این متد مقدار خام (raw) فیلدها را بدست میآورید، بجای دریافت آنها در فرمت OData.
چند مقاله خوب دیگر
اشتراکها
بررسی بهبودهای کارآیی در NET 7.
TL;DR: .NET 7 is fast. Really fast. A thousand performance-impacting PRs went into runtime and core libraries this release, never mind all the improvements in ASP.NET Core and Windows Forms and Entity Framework and beyond. It’s the fastest .NET ever. If your manager asks you why your project should upgrade to .NET 7, you can say “in addition to all the new functionality in the release, .NET 7 is super fast.”
نظرات مطالب
بارگذاری یک یوزرکنترل با استفاده از جیکوئری
سلام آقای نصیری
زمانی که یک دکمه یا کنترلی که postback ایجاد می کند را استفاده می کنم به خطای زیر بر می خورم
The state information is invalid for this page and might be corrupted.
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.
Exception Details: System.Web.HttpException: The state information is invalid for this page and might be corrupted.
لطفا راهنمایی کنید با تشکر
زمانی که یک دکمه یا کنترلی که postback ایجاد می کند را استفاده می کنم به خطای زیر بر می خورم
The state information is invalid for this page and might be corrupted.
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.
Exception Details: System.Web.HttpException: The state information is invalid for this page and might be corrupted.
لطفا راهنمایی کنید با تشکر
اشتراکها
دوره آموزشی - مقدمه ای بر Angular 2
- Secure Boot در ویندوز 8 می تواند مانع بوت لینوکس شود | azadrah.net
- راهنمای نصب ASP.NET MVC 4 Developer Preview | mojtabasahraei.blogfa.com
- F# 3.0 Developer Preview Now Available! | blogs.msdn.com
- Happy 20th Birthday Visual Basic! | blogs.msdn.com
- Hibernate Mapping Cheat Sheet | ndpsoftware.com
- Kinect SDK For PC - VB Samples available. | blogs.msdn.com
- Micro-framework v4.2 Support for Visual Basic | blogs.msdn.com
- New Async Programming Videos | blogs.msdn.com
- Temperature Monitoring using VB.Net, Micro-framework and a Netduino | blogs.msdn.com
- Touch Input for IE10 and Metro style Apps | blogs.msdn.com
- VB Support for the XNA platform | blogs.msdn.com
- GC بهبود یافته در دات نت 4 و نیم | channel9.msdn.com
- GPU debugging در نگارش بعدی ویژوال استودیو | www.danielmoth.com
- آشنایی با closures در زبانهای برنامه نویسی مختلف | ajlopez.wordpress.com
- امکان استفاده از تواناییهای WinRT در یک برنامه غیرمترو هم میسر است | www.wintellect.com
- آنالیز ویندوز 8 و WinRT آن | stevesmithblog.com
- آیا سبک مترو میتواند در زمینهی تولید برنامههای تجاری موفق باشد؟ | neverindoubtnet.blogspot.com
- پروژه Juneau و نگارش بعدی ویژوال استودیو | sqlblog.com
- چابک سواری و نگارش بعدی ویژوال استودیو | blogs.msdn.com
- چه قسمتهایی از دات نت فریم ورک در یک برنامه سبک مترو قابل استفاده است؟ | www.wintellect.com
- سوئیچ مدام بین حالت مترو و حالت کلاسیک ویندوز 8 برای خیلیها خوشایند نیست | blog.galasoft.ch
- کار با دادهها در ASP.NET Web Forms 4.5 | damianedwards.wordpress.com
- لیستی از برنامههای مرتبط با پردازش متن زبان فارسی | groups.google.com
- نگارش آزمایشی پاور شل سه | blogs.microsoft.co.il
- نگارش جدید YUICompressor منتشر شد | yuicompressor.codeplex.com
This web app allows you to create a visual representation of your BenchmarkDotNet console results. You can conveniently copy the generated chart to your clipboard, save it as a PNG image, or share it through a URL.