من کدهای زیر رو در رویداد کلیک یک دکمه نوشتم که کاربر با کلیک دکمه اقدام به ارسال ایمیل به صورت گروهی میکنه.
حالا یکی از کاربرا با این ارور مواجه شده
Unable to store Job: 'DEFAULT.SendJob', because one already exists with this identification.
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: Quartz.ObjectAlreadyExistsException: Unable to store Job: 'DEFAULT.SendJob', because one already exists with this identification.
Source Error:
Line 374: .Build();
Line 375:
Line 376: sched.ScheduleJob(job, trigger);
Line 377:
که البته من متوجه شدم دلیل این به خاطر اینه که هنوز جاب قبلی پایان نیافته کاربر دوباره روی دکمه کلیک میکنه و چون هنوز جاب قبلی اتمام نیافته با این ارور مواجه میشیم. بنابراین من یک دکمه گذاشتم و کدهای زیر رو نوشتم در رویداد کلیک این دکمه
var scheduler = new StdSchedulerFactory().GetScheduler(); scheduler.DeleteJob(new JobKey("SendJob"));
یا اینکه چطور میشه یک جاب که تموم شد به کاربر پیغام بدیم که جاب پایان یافته، در این صورت دیگه کاربر در زمان نامناسب اقدام به ایجاد مجدد جاب نخواهد کرد.
ممنون.
خطا در اجرای پروژه
در اجرای پروژه خطا دارم.
Cannot open database "DecisionDB" requested by the login. The login failed. Login failed for user 'xxxxx'. 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. Line 172: Line 173: foreach (var role in from record in standardRoles Line 174: let role = this.FindByName(record.RoleName) Line 175: where role == null Line 176: select new Role Source File: C:\Users\Majid\Desktop\Decision-master\src\Decision.ServiceLayer\EFServiecs\Users\ApplicationRoleManager.cs Line: 174
<add name="DefaultConnection" connectionString="Data Source=.;Initial Catalog=DecisionDB;Integrated Security = true" providerName="System.Data.SqlClient"/>
درک نقطه بحرانی CSS
Those of you who worked with ASP.NET web forms will recollect that certain server controls such as DropDownList have a property called AutoPostBack. This property when set to true automatically submits the form to the server whenever the selection changes and raises some server side event. In modern web development people prefer to use Ajax over AutoPostBack but at times AutoPostBack is what you might need. To that end this article shows how AutoPostBack can be implemented in ASP.NET Core applications.
- ExtJs چیست؟
- چه زمانی کاربرد دارد؟
- تفاوت آن با سایر فریم ورکهای جاوااسکریپ در چیست؟
پاسخ یک کلمه است: ExtJs. بله درست است در طراحی این CMS تنها از یک فریم ورک جاوااسکریپتی به نام ExtJs استفاده شده است. فریم ورکی که به عقیده بعضیها یک رویا برای توسعه دهندگان وب است و به عقیده سایرین شاید یک کابوس. در این پست قصد دارم به عنوان کسی که با این فریم ورک آشنایی دارم این موضوع را بررسی و مزایا و معایب این فریم ورک را عنوان کنم.
ExtJs یک فریم ورک جاوااسکریپ است بر مبنای Sencha و طراحی شده برای توسعه پروژههای وب در مقیاس بزرگ و به صورت cross-platform . مجوز استفاده از این فریم ورک به صورت GPLv3 است.(یعنی مجاز به استفاده رایگان از فایلهای این فریم ورک هستید به شرطی که قصد استفاده تجاری از پروژه تهیه شده را نداشته باشید! در غیر این صورت باید زحمت خرید نسخه تجاری این فریم ورک را متحمل شوید).
نسخه ای که درباره آن بحث میکنیم نسخه چهار این فریم ورک (ExtJs 4) که بر مبنای ExtJs 3 تولید شده است. تفاوت عمده آن با نسخه قبلی در تکمیل ابزار و کامپوننت هاست و از طرفی نسخه چهار این فریم ورک بر مبنای مدل MVC توسعه داده شده است. یعنی همانند Angular و BackBoneJs میتوانید مفاهیم کنترلر و مدل را به راحتی پیاده سازی کنید.
رویایی به نام ExtJs
اگر بخواهیم این فریم ورک را یک رویا برای توسعه دهندگان وب بنامیم میتوان عناوین زیر را به عنوان مزایا برشمرد:
- در درجه اول قابلیتی که این فریم ورک را متفاوت از سایر فریم ورکهای جاوااسکریپتی میکند
این است که این فریم ورک انبوهی از کامپوننتها و ویجیتهای آماده را به
همراه خود دارد (با کارایی و انعطاف پذیری قابل قبول) و به نوعی شما را بی نیاز از هرگونه مجموعه کامپوننتهای دیگر خواهد
کرد.
- این فریم ورک به خوبی از مباحت OOP پشتیبانی میکند و به این صورت است که یک
سری مفاهیم و مدلهای پایه در این فریم ورک تعبیه شده و به راحتی شما میتوانید مدلهای مورد نظر خود را بر اساس این مفاهیم و مدلهای پایه توسعه
دهید.
- تمام مفاهیم و ابزار لازم جهت درخواستهای Ajax ای و اعتبار سنجی سفارشی و
دستکاری عناصر DOM و... به خوبی در این فریم ورک وجود دارد.
- به دلیل وجود کامپوننتهای یک دست و آماده به راحتی میتوانید امکان تغییر theme را در پروزههای خود بدون کوچکترین زحمت قرار دهید.
- کنترل GridPanel،TreeView ، کنترلهای ورود اطلاعات، کنترل Tab با قابلیت درخواستهای لود صفحات به صورت Ajax و Async با کمترین زحمت در کد نویسی و هم چنین چارتهای بسیار گسترده و متنوع از دیگر مزایای این فریم ورک میتواند باشد.
- ارائه مکانیزمی مناسب برای کار با عملیات داده ای Json. به عنوان نمونه:
Ext.data.JsonP.request({ url: '@url', params: { apiKey: '1234' }, callbackKey: 'myCallbackFn', success: function(){ }, failure: function(){ }, scope: this });
- این فریم ورک ابزارهای جالب و کارآمدی برای توسعه به صورت SPA را داراست.
- کنترلهای داده ای این فریم ورک در هنگام کار با حجم داده بسیار زیاد، فراتر از انتظار عمل میکنند(برای مثال کنترل GridPanel و DataView)
- اگر قصد تولید و توسعه بک پروژه بزرگ درون سازمانی را دارید و سرعت تولید نیز برای شما مهم است ExtJs در این زمینه کمک شایانی به شما خواهد کرد.
- و...
حال با همه این تفاسیر آیا این فریم ورک یک رویا برای هر توسعه دهنده وب خواهد بود؟
به طور قطع نه. با توجه به اصل واقع بینی! همواره به خاطر داشته باشید که
اگر این فریم ورک یک ابزار بی نقص و همه منظوره بود الآن مطمئنا صدها کتاب و
مستندات درباره آن نوشته شده بود و شاید شهرتی بس فراتر از این داشت.
کابوسی به نام ExtJs
- اگر قصد ایجاد یک وب سایت کوچک و جمع و جور را دارید به طوری که مباحث مربوط به SEO نیز برای شما اهمیت دارد تجربه نشان داده است که انتخاب ExtJs میتواند یکی از بزرگترین اشتباهات در طول عمر کاری شما شود.
- ExtJs هیچ گونه کمکی برای تولید و توسعه اپلیکیشنهای موبایل یا پروژههای وب گرافیکی نمیتواند به شما کند.
- اگر سرعت یکی از فاکتور خیلی مهم برای شماست بهتر است به این فریم ورک علاقه نشان ندهید.(کتابخانه آن چیزی در حدود 500KB است! البته با فشرده سازی به 150KB خواهد رسید که باز هم قابل قبول نیست)
- مجوز استفاده برای پروژههای تجاری به صورت رایگان نیست.(^)
- به دلیل وجود ابزارهای متنوع و زیاد؛ زمان یادگیری برای آشنایی و کار کردن با ابزارها، نسبتا طولانی خواهد شد.
- کد نویسی برای استفاده از ابزارهای آن در مقایسه با Jquery و Angular بیشتر خواهد بود(البته این به نوعی مزیت هم است، به دلیل اینکه خوانایی کدها بسیار بالا میرود)
- در طراحی کامپوننتها آن از تگ div در حد غیر قابل قبول استفاده شده است به طوری که Debug صفحات حتی با Firebug هم در بعضی مواقع سخت میشود.
- و...
Ext.Net چیست؟
Ext.Net یک پیاده سازی خاص از فریم ورک ExtJs است که برای توسعه پروژههای Asp.Net Web Forms و Asp.Net MVC طراحی شده است. تفاوت اصلی بین این دو محصول در نوع کدنویسی برای استفاده در پروژههای Asp.Net است. برای مثال در هنگام کار با Ext.Net و پروژههای MVC از آنجا که این محصول سازگاری کامل با موتور Razor دارد به راحتی میتوانید به صورت سینتکس Razor صفحات خود را طراحی کنید.
مثال:
ExtJs
Ext.create('Ext.panel.Panel', { title: 'Fit Layout', width: 500, height: 200, items: { title: 'Inner Panel', html: 'Panel content', bodyPadding: 10, border: true }, renderTo: Ext.getBody() });
Ext.Net
@(X.Panel() .ID("ExpandablePanel") .Title("Panel") .Width(500) .Height(300) .Collapsible(true) .Loader(X.ComponentLoader() .Url(Url.Action("RenderChild")) .Mode(LoadMode.Frame) .DisableCaching(true) .Params(new { containerId = "ExpandablePanel" }) .LoadMask(lm => lm.ShowMask = true) ) .Listeners(l => { l.Expand.Handler = "this.reload();"; l.Collapse.Handler = "this.clearContent();"; }) )
جمع بندی:
با توجه مواردی که ذکر شد میتوان به یک نکته مهم رسید و آن هم این است که هنگام انتخاب ExtJs یا Ext.Net (البته این شامل اکثر ابزارهای توسعه دیگر نیز خواهد شد) حتما شرایط موجود و حاکم برای توسعه محصول را مد نظر داشته باشید که این شرایط شامل محیط اجرای محصول، مدت زمان لازم برای توسعه، سطح دانش نیرویهای توسعه دهنده و ... نیز میباشد.
ASP.NET Web API - قسمت اول
«مزیت واقعی Web API چیست و چه زمانی پروژه ای رو با Web API شروع میکنید ؟»
به علاوه هدف اصلی Web API و یکپارچگی آن با خصوصا MVC (و بعد وب فرمها) در درجه اول توسعه ActionResultهای پیش فرض MVC است (به همین جهت اول اسم آن ASP.NET است و نه مثلا اندروید):
Angular 16 CRUD with .NET 7 Web API using Entity Framework Core - Full Course
📑 Contents:
00:00:00 Video Introduction
00:00:40 Angular and ASP.NET Core Udemy Course Demo
00:03:07 Prerequisites
00:03:37 Setting Up Development Environment
00:15:37 Create ASP.NET Core Web API
00:20:07 Understanding Files and Folder Structure
00:25:37 Understanding REST and HTTP Verbs
00:30:10 Create .NET 6 Web API
00:32:41 Our Project and Domain Models
00:41:16 Installing Nuget Packages For Entity Framework Core
00:43:06 DbContext
00:59:26 Running EF Core Migrations
01:03:26 Create Controllers and Actions
01:23:46 Repository Pattern
01:36:46 Create New Angular Application using Angular CLI
01:50:09 Angular Components
02:13:29 CRUD in Angular and ASP.NET Core Web APIs
02:17:21 Angular Forms
02:26:59 Angular Services
02:38:09 CORS
02:42:09 Unsubscribing