1. اکثر کنترلهای ASP.NET WebForm قابلیت bind به DataSet را دارد. اگر از آنها در این مدل استفاده نمایید کار صفحه بندی به عهده کنترل+DataSet میافتد.
2. صفحه بندی مجازی یعنی شما به کنترل میگویید کل اطلاعات شما مثلا 51 صفحه است، الان صفحه 4 را نمایش میدهی این هم اطلاعات صفحه 4. بعد وقتی کاربر بر روی گزینه صفحه بعد کلیک کرد، به کنترل میگویید کل اطلاعات 51 صفحه است، الان صفحه 5 را نمایش میدهی و این هم اطلاعات آن.
برای مثال میتوانی به این مثال در DataTables مراجعه کنید
بازخوردهای پروژهها
آموزش استفاده از JQuery, Ajax, Javascript در برنامه های ASP.NET MVC
سری آموزش ASP.NET MVC یکی از بهترین آموزشهای فارسی حال حاضر هستش و کاربران استقبال زیادی از این سری آموزشی کردند.
ای کاش مطالب بیشتری را به نحوه استفاده از JQuery, Javascript, JSON, ... در برنامههای MVC، اختصاص میدادید. مثلاً ثبت و ویرایش یا حذف اطلاعات از یک Table در View تماماً با استفاده از موارد ذکر شده.
ممنون.
پس از نصب SDK جدید NET Core 2.1. و ایجاد یک برنامهی جدید بر اساس آن توسط دستور«dotnet new mvc» و سپس اجرای آن به کمک دستور «dotnet run»، تصویر جدیدی مشاهده میشود:
در نگارشهای قبلی، پس از اجرای برنامه، صرفا یک سطر زیر نمایش داده میشد:
اما اکنون تبدیل شدهاست به دو سطر که اولی HTTPS است و دومی HTTP معمولی:
یعنی برنامه بر روی دو پورت 5000 و یا 5001 قابل دسترسی است. در این حال اگر سعی کنیم برنامه را بر روی پورت 5000 که HTTP معمولی است اجرا کنیم، بلافاصله به خطای امن نبودن دسترسی به سایت و اجرای خودکار برنامه بر روی پورت 5001 خواهیم رسید:
علت هدایت خودکار به آدرس HTTPS، به تغییرات فایل آغازین برنامه بر میگردد:
در اینجا علاوه بر UseHsts ، تنظیم UseHttpsRedirection نیز به صورت پیشفرض قرار داده شدهاند که سبب ارتقاء و همچنین هدایت خودکار به آدرس HTTPS برنامه میشوند. توضیحات بیشتری در مورد Hsts: «فعالسازی HSTS در ASP.NET Core» که با میان افزار جدید و توکار Hsts جایگزین میشود.
اگر خواستید این شمارهی پورت را تغییر دهید، میتوانید به صورت زیر عمل کنید:
میان افزار جدید UseHsts به مرورگرها فرمان میدهد که این سایت را در حالت HTTPS مرور کنند. البته همانطور که مشاهده میکنید این مورد فقط برای حالت ارائهی نهایی تنظیم شدهاست و نه حالت استفادهی از برنامه در حالت localhost. جزئیات این میانافزار را به صورت زیر نیز میتوان تنظیم کرد و یا تغییر داد:
اما چرا برنامه در حالت HTTPS قابل مشاهده نیست؟
پس از نصب SDK نگارش جدید NET Core.، یک مجوز SSL توسعه نیز به سیستم عامل اضافه میشود:
برای مشاهدهی این مجوز، دستور certmgr.msc را در قسمت run ویندوز وارد کرده و enter کنید:
این مجوز پیش فرض در قسمت «Personal/Certificates» با نام «ASP.NET Core HTTPS development certificate» قابل مشاهدهاست که در حقیقت یک Self Signed Certificate است و به صورت پیش فرض توسط سیستم معتبر و قابل اطمینان شناخته نمیشود.
برای اعلام قابل اطمینان بودن این مجوز به سیستم، در همین کنسول مدیریت مجوزها، بر روی این مجوز کلیک راست کرده و آنرا کپی کنید. سپس آنرا در مسیر «Trusted Root Certification Authorities/Certificates» قرار دهید (paste کنید).
در این حالت صفحه دیالوگ فوق ظاهر میشود. آنرا تائید کنید تا این مجوز توسعه، به قسمت مجوزهای امن و معتبر سیستم اضافه شود.
روش دوم انجام اینکار، استفاده از دستور زیر است:
دستور اول برنامهی dotnet-dev-certs را نصب میکند و دستور دوم آنرا اجرا کرده و توسط پرچم trust، همان کار کپی و paste ذکر شدهی در قسمت قبلی را به صورت خودکار انجام خواهد داد. هرچند صفحهی تائید این نقل و انتقال در اینجا نیز ظاهر میشود.
پس از اینکار اگر مرورگر را ریفرش کنید، باز هم همان خطای قبلی نمایش داده میشود. برای رفع این مشکل باید یکبار مرورگر را کاملا بسته و مجددا اجرا کنید تا مجوز جدید را دریافت کند:
تنظیمات مخصوص IIS Express برای اجرای برنامههای ASP.NET Core 2.1
دستور «dotnet run» از IIS برای اجرا استفاده نمیکند و مبتنی بر وب سرور Kestrel است. تنظیمات IIS و IIS Express از فایل Properties\launchSettings.json خوانده میشوند که اینبار به صورت زیر تغییر کردهاست:
در اینجا تنظیمات مربوط به sslPort و همچنین ASPNETCORE_HTTPS_PORT نیز اضافه شدهاند که IIS Express از آنها استفاده میکند.
در نگارشهای قبلی، پس از اجرای برنامه، صرفا یک سطر زیر نمایش داده میشد:
Now listening on: http://localhost:5000
Now listening on: https://localhost:5001 Now listening on: http://localhost:5000
علت هدایت خودکار به آدرس HTTPS، به تغییرات فایل آغازین برنامه بر میگردد:
public void Configure(IApplicationBuilder app, IHostingEnvironment env) { if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); } else { app.UseExceptionHandler("/Home/Error"); app.UseHsts(); } app.UseHttpsRedirection();
اگر خواستید این شمارهی پورت را تغییر دهید، میتوانید به صورت زیر عمل کنید:
services.AddHttpsRedirection(options => options.HttpsPort = 5002);
services.AddHsts(options => { options.MaxAge = TimeSpan.FromDays(100); options.IncludeSubDomains = true; options.Preload = true; });
اما چرا برنامه در حالت HTTPS قابل مشاهده نیست؟
پس از نصب SDK نگارش جدید NET Core.، یک مجوز SSL توسعه نیز به سیستم عامل اضافه میشود:
ASP.NET Core ------------ Successfully installed the ASP.NET Core HTTPS Development Certificate.
برای مشاهدهی این مجوز، دستور certmgr.msc را در قسمت run ویندوز وارد کرده و enter کنید:
این مجوز پیش فرض در قسمت «Personal/Certificates» با نام «ASP.NET Core HTTPS development certificate» قابل مشاهدهاست که در حقیقت یک Self Signed Certificate است و به صورت پیش فرض توسط سیستم معتبر و قابل اطمینان شناخته نمیشود.
برای اعلام قابل اطمینان بودن این مجوز به سیستم، در همین کنسول مدیریت مجوزها، بر روی این مجوز کلیک راست کرده و آنرا کپی کنید. سپس آنرا در مسیر «Trusted Root Certification Authorities/Certificates» قرار دهید (paste کنید).
در این حالت صفحه دیالوگ فوق ظاهر میشود. آنرا تائید کنید تا این مجوز توسعه، به قسمت مجوزهای امن و معتبر سیستم اضافه شود.
روش دوم انجام اینکار، استفاده از دستور زیر است:
dotnet install tool dotnet-dev-certs -g --version 2.1.0-preview1-final dotnet dev-certs https --trust
پس از اینکار اگر مرورگر را ریفرش کنید، باز هم همان خطای قبلی نمایش داده میشود. برای رفع این مشکل باید یکبار مرورگر را کاملا بسته و مجددا اجرا کنید تا مجوز جدید را دریافت کند:
تنظیمات مخصوص IIS Express برای اجرای برنامههای ASP.NET Core 2.1
دستور «dotnet run» از IIS برای اجرا استفاده نمیکند و مبتنی بر وب سرور Kestrel است. تنظیمات IIS و IIS Express از فایل Properties\launchSettings.json خوانده میشوند که اینبار به صورت زیر تغییر کردهاست:
{ "iisSettings": { "windowsAuthentication": false, "anonymousAuthentication": true, "iisExpress": { "applicationUrl": "http://localhost:4929", "sslPort": 44313 } }, "profiles": { "IIS Express": { "commandName": "IISExpress", "launchBrowser": true, "environmentVariables": { "ASPNETCORE_ENVIRONMENT": "Development", "ASPNETCORE_HTTPS_PORT": "44313" } }, "TestWebApp": { "commandName": "Project", "launchBrowser": true, "environmentVariables": { "ASPNETCORE_ENVIRONMENT": "Development", "ASPNETCORE_URLS": "https://localhost:5001;http://localhost:5000" } } } }
مطلقا از IoC Containers ثالث در اینجا استفاده نمیکنم. هیچ نیازی نیست و IoC Container خود آن به خوبی برای اکثر کارها پاسخگو است. در ابتدای کار کسانیکه به ASP.NET Core مهاجرت میکنند، چون هنوز حال و هوای MVC 5 را دارند، به دنبال IoC Containers ثالث هستند ... اما واقعا در اینجا در اکثر موارد نیازی به آنها ندارید. «کتابخانههای کمکی جهت ساده سازی ثبت تنظیمات اولیهی IoC Container توکار NET Core.» هم راه حلی هستند برای پیاده سازی امکانات مشابه، اما بدون استفاده از کتابخانههای ثالث IoC.
یک نکته: بارگذاری مجدد اطلاعات فایل config در ASP.NET Core 1.1
تنظیم reloadOnChange به true ایی که در متن عنوان شد، فقط با IConfigurationRoot و دیکشنری آن کار میکند. اگر از تنظیمات strongly typed استفاده کنید، این گزینه بر روی آن تاثیری نخواهد داشت. در نگارش 1.1، اینترفیس جدیدی را به نام IOptionsSnapshot معرفی کردهاند که به تغییرات فایل کانفیگ واکنش نشان میدهد. بنابراین تنها کاری را که باید انجام دهید، جایگزین کردن <>IOptions با <>IOptionsSnapshot است. سایر تنظیمات صورت گرفته یکی است و تفاوتی نمیکند.
تنظیم reloadOnChange به true ایی که در متن عنوان شد، فقط با IConfigurationRoot و دیکشنری آن کار میکند. اگر از تنظیمات strongly typed استفاده کنید، این گزینه بر روی آن تاثیری نخواهد داشت. در نگارش 1.1، اینترفیس جدیدی را به نام IOptionsSnapshot معرفی کردهاند که به تغییرات فایل کانفیگ واکنش نشان میدهد. بنابراین تنها کاری را که باید انجام دهید، جایگزین کردن <>IOptions با <>IOptionsSnapshot است. سایر تنظیمات صورت گرفته یکی است و تفاوتی نمیکند.
I was pleasantly surprised by how easy it was to setup and install ASP.NET Core 2.1 on Linux. I did it for the first time in 15 minutes with no previous experience with .NET Core on Linux. I did it the second time, in production, in 5 minutes by following these instructions.
In this article, I show you how to install the .NET Core runtime on CentOS, how to get a sample ASP.NET Core project running on Kestrel as a service for reliability, and how to configure both the code and the firewall to enable remote access. Finally, I discuss what I would do differently for actual production usage.
اشتراکها