به جز وب، این مشکل در چت باتها هم مرسوم است. یادمه یک بات برای پروموشن و دریافت تخفیف یک شرکت ایرانی نوشته بودیم. اما چون race condition رو توش درست هندل نکرده بودیم، بعضی از تینیجرها یک روشی رو یاد گرفته بودند که اینترنت گوشی شون رو قطع میکردند، دهها بار روی دکمه دریافت تخفیف (inline button) کلیک میکردند، بعد اینترنت رو که وصل میکردند، تلگرام همه درخواستها رو یکجا (در کسری از ثانیه) میفرستاد به webhook ما و ممکن بود چندتا کد تخفیف، برای کاربر ارسال بشه.
ممنون بابت آموزشهای خوبتون. کامپایلر از این قسمت کد ایراد آرگومان میگرفت
private async Task OnConfirmClicked() { ShowModal = false; await OnConfirm.InvokeAsync(); } private async Task OnCancelClicked() { ShowModal = false; await OnCancel.InvokeAsync(); }
که با تصحیح آن به روشی که فرموده بودید برطرف شد.
private async Task OnConfirmClicked(MouseEventArgs e) { ShowModal = false; await OnConfirm.InvokeAsync(e); } private async Task OnCancelClicked(MouseEventArgs e) { ShowModal = false; await OnCancel.InvokeAsync(e); }
آیا راه حلی برای فراخوانی متدهای غیر استاتیک #C از طریق کدهای جاوااسکریپتی در یک فایل js وجود دارد؟ برای مثال API گوگل مپ جزییات یک آدرس درخواست شده را به یک فایل js برمیگرداند، از چه روشی میتوان این مقدار را به کامپوننت برای پردازش و ذخیره ارسال کرد؟
کامپوننتی که کار پردازش نتیجه API را انجام میدهد باید خروجی خود را بصورت یک EventCallBack به والد خود برای ذخیره ارسال کند، از این جهت متدها استاتیک نیستند. آیا از روش غیر استاتیک که معرفی کردید برای این سناریو میشود استفاده کرد یا روش دیگری وجود دارد؟
ممنون.
با عرض سلام و تشکر
1. در پروژه برای کلاس Product و Category، مثالی برای اعمال CRUD در سطح کنترلر ارائه نشده، یا من پیدا نکردم؟ یا چون در بحث Identity نبوده تکمیل نشده این قسمت.
در این پروژه آیا برای انجام عملیات CRUD، به روشی که در پروژه «اعتبار سنجی مبتنی بر Jwt در ASP.net Core 2.0 بدون استفاده از سیستم Identity» معرفی کردین عمل کنم ؟
2. تفاوت طراحی این دو پروژه در قسمتهای تزریق وابستگی، و دقیقا انجام عملیات CRUD در کنترلرهای سطح پروژه وب، چیست ؟
- بله. مفهوم یک سیستم «مرکزی» همین هست. نمونهاش اکتیو دایرکتوری در دومینهای سرورهای ویندوزی است که کار مدیریت کاربران و سطوح دسترسی آنها را یک یا چند نفر کارمند تمام وقت به نام مدیر شبکه انجام میدهد و این تعاریف به صورت مجزایی در کلاینتهای متصل، انجام نمیشوند. در این سری در انتهای آن روشی برای ثبت اطلاعات کاربران در بانک اطلاعاتی پیشنهاد شده. علاوه بر آن چند پیاده سازی کنندهی سورس باز مدیریت IDP هم معرفی شدهاند.
- در اینجا هر کلاینت ASP.NET Core هم میتواند سطوح دسترسی سفارشی و پیچیدهتر خاص خودش را بر اساس ترکیب Claims و نقشهای دریافتی از IDP، تعریف و تنظیم کند.
الان دو روش برای کار با BundlerMinifier وجود دارد:
- روش اول: همان روشی است که در این مطلب بحث شده و هنوز هم کار میکند:
<DotNetCliToolReference Include="BundlerMinifier.Core" Version="2.6.362" />
<Target Name="PrecompileScript" BeforeTargets="BeforeBuild"> <Exec Command="dotnet bundle" /> </Target>
dotnet add package BuildBundlerMinifier
در کل هر دو مرتبط به یک مخزن کد بوده و اساسا یکی هستند.
سلام؛ مرتب سازی روی ستون genre.name انجام نمیشود. روشی را که با سوال کردن در استک اورفلو به آن رسیدم، این چنین کدی بود:
const sortBy = ({ order = 'asc', path }) => order === 'asc' ? (a, b) => ((a, b) => a > b || -(a < b))(getValue(a, path), getValue(b, path)) : (a, b) => ((a, b) => b > a || -(b < a))(getValue(a, path), getValue(b, path)), getValue = (object, keys) => keys.split('.').reduce((o, k) => o[k], object); filteredMovies = filteredMovies.sort(sortBy({path:sortColumn.path,order:sortColumn.order}));
یک نکتهی تکمیلی
کتابخانهی « DNTScanner.Core » امکان کار با اسکنر را در برنامههای NET 4x. و همچنین NET Core. ویندوزی میسر میکند. روشی که در آن مورد استفاده قرار گرفته، مشکلات مطرح شدهی در نظرات مطلب جاری را مانند عدم امکان استفادهی از آن، در سرویسهای پسزمینه را ندارد؛ از این جهت که برای دسترسی به اسکنر، هیچ نوع UI ای را نمایش نمیدهد و تمام تنظیمات آن با کدنویسی است.
مثالها
- روش استفاده از آن در برنامههای کنسول
- روش استفادهی از آن در یک برنامهی وب ASP.NET Core که قسمت اسکنر آن به صورت یک کلاینت کنسول تهیه شدهاست و ارتباط بین این دو از طریق SignalR.Core برقرار میشود.
کتابخانهی « DNTScanner.Core » امکان کار با اسکنر را در برنامههای NET 4x. و همچنین NET Core. ویندوزی میسر میکند. روشی که در آن مورد استفاده قرار گرفته، مشکلات مطرح شدهی در نظرات مطلب جاری را مانند عدم امکان استفادهی از آن، در سرویسهای پسزمینه را ندارد؛ از این جهت که برای دسترسی به اسکنر، هیچ نوع UI ای را نمایش نمیدهد و تمام تنظیمات آن با کدنویسی است.
مثالها
- روش استفاده از آن در برنامههای کنسول
- روش استفادهی از آن در یک برنامهی وب ASP.NET Core که قسمت اسکنر آن به صورت یک کلاینت کنسول تهیه شدهاست و ارتباط بین این دو از طریق SignalR.Core برقرار میشود.
من توسط کد زیر ردیفی تک ستونی به جدول اصلی اضافه کرده ام:
MainTableEvents(events => { events.MainTableAdded(args => { var grid = new PdfGrid(1) { WidthPercentage = 90 }; grid.AddSimpleRow((d, p) => { p.RunDirection = PdfRunDirection.RightToLeft; p.HorizontalAlignment = HorizontalAlignment.Justified; p.ShowBorder = true; d.Value = form.Ideas; // I want to convert HTML to PDF p.PdfFont = args.PdfFont; p.CellPadding = 5f; });
دلیل اصلی که در این مطلب گفته شده اما دومین دلیل اینکه کمتر کسی از jquery استفاده میکنه این روزها اینه که:
اگر در برنامتون قرار نیست از فریم ورک خاصی برای جاوااسکریپت استفاده کنید مشکلی نداره استفاده از jquery ولی فرض کنید در حال استفاده از vue یا react یا ... هستید , در چنین شرایطی نیازی به دسترسی مستقیم به DOM وجود ندارد چون این فریم ورکها قرار هست این مسائل رو هندل کنند. در چنین سناریویی استفاه از jquery اشتباه است. اگر هم نیاز بود در شرایطی خاص مستقیم به DOM دسترسی داشته باشید از خود JavaScript میشه کمک گرفت به روشی که آقای نصیری شرح دادند.