برای اینکه رفت و برگشت برای هر درخواست به بانک اطلاعاتی در پروژههای بزرگ رو مدیریت بهینه کنیم چکار باید کرد؟ منظورم اینه وقتی تعداد کاربران زیاد باشه و متدهای زیادی هم در پروژه باشه که در هدر همه اونها باید این توکن و دسترسیها چک بشه ممکنه سربار زیادی روی بانک اطلاعاتی داشته باشه. برای مدیریت بهتر این موارد من دو راه تست کرده بودم :
1. توی یک متغیر استاتیک اطلاعات توکنها علاوه بر بانک اطلاعاتی ذخیره بشه و هردو با هم سینک باشند (موردی که خودتون هم اشاره فرموده بودید) بنابراین بیشترین درخواستها برای چک این مقادیر روی یک متغیر استاتیک هست که روی IIS فعال میشه و ممکنه رم زیادی البته بگیره و هر وقت هم IIS ریست شد دوباره اون لیست توکنهای استاتیک از بانک اطلاعاتی فراخوانی میشه و برای درخواستهای بعدی کاربران از اون متغیر استاتیک که لیست توکنها هست رو چک میکنه.
2. راه دوم استفاده از بانک اطلاعاتی هست که رفت و برگشت به بانک اطلاعاتی برای هر درخواست رو زیاد میکنه و ممکنه سربار زیادی داشته باشه
البته من در پروژه از بانک اطلاعاتی مونگو استفاده کردم و این لیست توکنها و کلیه بانک اطلاعاتی کاربران و غیره در اون ذخیره میشه .
سوال اینجاست که برای زمانی که کاربران زیاد و متدهای زیادی داریم که باید چک شوند راه حل بهینه برای انجام این مورد چه راهی هست؟
و اینکه آیا اگه از بانک اطلاعاتی Redis که بر روی رم قرار میگیره برای مدیریت توکنها استفاده کنیم کارایی بهتر میشه یا باز هم همون مشکل قبلی رو داریم؟
Url Routing در ASP.Net WebForms
بازم ممنون. فقط یه سوال دیگه. فرض کنید من یه چیزی به آدرس اصلی صفحه اضافه کردم. حالا میخوام به این آدرس جدید دوباره یه چیز دیگه اضافه کنم. باید چی کار کنم؟ اینجا وقتی یک یا چند تا چک لیست انتخاب میشه یا مثلا چیزی از لیست باکسها انتخاب میشه عبارت مربوطه اش به آدرس اضافه میشه. چطوری این کارو کرده؟ اینجوری که آدرس ثابت نیست و میتونه حالتهای مختلفی داشته باشه! یا مثلا وقتی یک مورد انتخاب شده حذف میشه چطوری عبارت مربوطه اش از وسط آدرس حذف میشه؟!
تهیه گزارشات Crosstab به کمک LINQ - قسمت دوم
نه؛ ما اینجا هم نمیدونیم که مثلا CreateWeeklyReportDataSource چی هست. فقط میدونیم که یک لیست نهایی تهیه و به متد Pivot ارسال شده. شما در این قسمت (در حین تهیه متد CreateWeeklyReportDataSource) فرصت دارید که دیتاسورس مناسبی رو تهیه کنید.
در مورد چک لیست هم به همین صورت. مهم تشکیل List دیتاسورس اولیه است. مابقی توسط متد Pivot مدیریت میشود.
یک مثال جدید LINQPad رو اینجا اضافه کردم که در آن تعداد روزها 30 هست و ضمنا یک شرط Where هم به آن اعمال شده که مثلا کاربر روزهای 10 تا 23 رو به دلخواه انتخاب کرده (و برنامه از اول نمیدونه که چه بازهای مد نظر هست): sample05.linq
هدف اصلی بنده ساخت یک قالب آماده بر اساس مقالاتی که تا الان در سایت جاری مطالعه کردم و با امکان سطح دسترسی داینامیک، بود.همانطور که در مقاله مربوط به چک لیست تهیه یک برنامه Asp.net MVC ، در نکات تکمیلی پیشنهاد شد:
" تهیه قالبهای سفارشی VS.NET و لحاظ موارد فوق در آن جهت استفادههای بعدی نیز وجود دارد"
کاربر سیستمی
نام کاربری :SystemAdmin
کلمه عبور: Admin1234@gmail.com
راه اندازی پروژه
از این مقاله کمک بگیرید و ورژن جدید را از مخزن پروژه دانلود کنید
موارد اضافه شده در ورژن آخر
- بهبود سیستم فیلترینگ و مرتب سازی لیست کاربران
- استفاده از noty به جای toastr
- یکپارچه شده با Asp.net Web Api
- یکپارچه شده با Asp.net SignalR
طراحی یک ماژول IpBlocker در ASP.NET MVC
- Velocity CTP3 ارائه شد.
پروژه سورس بازی است که از بسیاری از ماژولهای جدید دات نت فریم ورک استفاده میکند و نکتهی جالب نگارش جدید آن مهاجرت از MS Ajax به jQuery Ajax است (قسمت اجکس آن کلا از صفر بر اساس jQuery بازنویسی شده است).
- چک لیستی که پیش از برپایی یک وب سایت باید بررسی شود.
- نگارش بتا Ext Core 3.0 ارائه شد.
- یک سری برگههای مرجع لینوکسی!
- دمویی در مورد ویندوز Azure و سرویسهای مبتنی بر آن
checkBoxList جزو کنترلهایی در ASP.Net است که نمیتوان RequiredFieldValidator استاندارد را بر آن اعمال کرد. به عبارتی اگر نیاز بود حداقل یک آیتم چک باکس لیست حتما توسط کاربر انتخاب شود، راه حل آمادهای برای آن وجود ندارد. پیاده سازی اینکار با استفاده از jQuery به سادگی میسر است که در ادامه آنرا مرور خواهیم کرد.
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="CheckBoxListValidator._Default" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<script src="jquery.min.js" type="text/javascript"></script>
<script type="text/javascript">
//<![CDATA[
function CheckItems(sender, args) {
//Get the total nuumber of selected CheckBoxes
var num = jQuery("table#<%=CheckBoxList1.ClientID%> input:checked").length;
args.IsValid = num > 0;
}
//]]>
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:CheckBoxList ID="CheckBoxList1" runat="server">
<asp:ListItem>item1</asp:ListItem>
<asp:ListItem>item2</asp:ListItem>
</asp:CheckBoxList>
<asp:CustomValidator ClientValidationFunction="CheckItems" ID="ValidateIt"
runat="server" ErrorMessage="(*)"> </asp:CustomValidator>
<asp:Button ID="Button1" runat="server" />
</div>
</form>
</body>
</html>
توضیحات:
یک CustomValidator استاندارد را به فرم اضافه کردهایم تا توسط تابعی که به ClientValidationFunction آن معرفی میشود، کار اعتبار سنجی سمت کاربر را انجام دهد. این تابع یا همان CheckItems مثال فوق، امضای استاندارد و آشنایی دارد. اگر تعیین اعتبار صورت گرفته باشد، باید args.IsValid در آن به true تنظیم شود یا بر عکس.
اصل قضیه هم، همین یک سطر کد زیر است:
var num = jQuery("table#<%=CheckBoxList1.ClientID%> input:checked").length;
فعال سازی عملیات CRUD در Kendo UI Grid
- آیا امکانش هست که توی لیست نمایش چندتا فیلد نمایش داده بشه ولی توی ایجاد یه فیلدهای دیگه هم اضافه بشه که نیاز به نمایش در ویو نباشد؟
- آیا امکانش هست یه فیلد که مثلا عکس وقتی که میخوایم یه رکورد جدید بسازیم، جوری سفارشی سازی بشه که عکس دریافت کنه و یا حالا مثلا چک باکس و کمبو باکس.
نمایش دادن عکس توی ویو رو مشکلی نداشتم و با استفاده از template تونستم درست کنم. ولی موقع ویرایش و ایجاد نمیدونم چطوری باید انجام بدم.