بایگانی

بایگانی برای دسته ی ‘MVC’

استفاده از Quartz.Net برای زمانبندی وظایف در وب سایت ها

Using Quart.net for job sheduler same as cron job

می دانید که وب سایت ها فاقد ابزار زمانبندی برای اجرای تسک ها یا وظایف می باشند. مثلا فرض کنید که می خواهید یک وظیفه تعریف شده مانند ارسال ایمیل یا اس ام اس در یک بازه زمانی یا در زمانهای خاص را انجام دهید. برای این کار چه باید کرد؟

۱- استفاده از task scheduler  ویندوز و برقرای ارتباط آن با وب سایت.

این روش یک ایراد دارد و آن اینست که اگر وب شما روی یک سرور هاستینگ باشد شما اجازه و یا دسترسی تعریف یک task scheduler را روی سرور نخواهید داشت.

۲- کد نویسی شخصی.

این روش نیز بسیار پیچیده است و در صورتی که کد نویسی درست انجام نشده باشد احتمال هدر دادن ریسورها از جمله ram و cpu بسیار بالاست

۳- استفاده از محصولات تولیدی

ما برای آموزش استفاده از محصولات تولیدی را توضیح می دهیم

یکی از محصولات تولیدی در این زمینه Quartz.net می باشد. در واقع quartz یک پروژه برای جاوا می باشد که برای دات نت نیز پیاده سازی شده است و شما از طریق Nuget و از داخل VS به آن دسترسی دارید. متاسفانه وب سایت Quartz.Net تقریبا ( تا این لحظه ای که این مطلب نوشته می شود) فاقد یک مثال عملی و روشن برای VS می باشد، بر همین اساس ممکن است که کسانی که تازه وارد این مقوله شده اند براحتی نتوانند با این ابزار ارتباط برقرار کنند.

مزید بر مشکل فوق بسیاری از رفرنس هائی که در جاهای مختلف اینترنت به آن میشود با آخرین ورژن آن ناسازگاری داشته و حتی تکه کدهائی که در سایت ها وجود دارد ممکن است برای شما مشکل آفرین باشد.

برای همین در زیر بطور خیلی ساده و روشن نحوه استفاده از آن بیان می شود. امید است مورد استفاده قرار گیرد.

۱- داخل پروژه خود و داخل VS از طریق ناگت  Quartz.Net را سرچ کرده و نصب کنید.

۲- در Solution Explorer زیر شاخ عنوان پروژه خود یک دایرکتوری به نام Jobs ایجاد کنید ( اختیاری است)

۳- یک فایل از نوع کلاس را داخل آن ایجاد کنید مثلا SendSMS

4- کدهائی مشابه زیر را در آن واردکنید.

خوب این کلاسی است که Quartz.net آنرا فراخوانی خواهد کرد، و شما می توانید داخل آن بدلخواه کدهای خودتان را بنویسید. مثلا به دیتابیس وصل شده و بر اساس دسترسی به جداول مثلا اس ام اس یا ایمیل بفرستید.

توجه داشته باشید که شما این کلاس را براحتی داخل پروژه MVC می توانید استفاده کنید. اینکه آیا می توان یک Action را نیز فراخوانی کرد هنوز تست نکرده ام. یعنی ارث بری یک کلاس کنترلر از جفت Controller و IJob

5- فایل Global.asax را باز کرده و کدهای زیر را در آن وارد کنید. این همان جائی است که دقیقا تازه وارد ها نمی دانند که باید از همینجا شروع کنند

همین.

ما یکی از پیچیده ترین زمانبندی ها را با استفاده از همین تکنولوژی راه اندازی کردیم.

موفق باشید

 

 

 

 

 

 

 

Categories: MVC Tags:

رفع خطای an open DataReader associated … در کوئری های پشت سر هم در اکشن های mvc با افزودن MARS

خطای زیر زمانی اتفاق می افتد که بخواهید یک کوئری را بر اساس نتایج یک کوئری دیگری بزنید.

برای رفع این خطا لازم است تنطیماتی در connectionstring فایل web.config بدهید. بشکل زیر

در واقع مقدار MultipleActiveResultSetsرابرابر true قرار دهید. اصطلاحا MARS را به ConnectionString اضافه می کنید. البته در خصوص کوئری هائی که مقدار نتایج آن می تواند زیاد باشد باید ملاحظات لازم را بعمل آورد به این معنا که در کوئری های سنگین سیستم احتمالا کند خواهد شد.

Categories: IT, Microsoft, MVC Tags:

متدهای لازم برای نوشتن یک BaseController برای کنترلر های MVC

How to write BaseController for MVC Controller’s

برای نوشتن یک BaseController که می توان سایر Controller های MVC را از آن ارث بری کرد بشکل زیر عمل می کنیم

برای یک بیس کنترلر حداقل دو تا متد باید override (تحریف، فکر کنم یکی از معانی درستش این باشد) شود. اگر متد

ذکر نشود ExecuteCore صدا زده نمی شود.

چون BaseController یا بعبارتی ExecuteCore قبل از همه کنترلر ها صدا زده می شوند، بنابر این شاید محل مناسبی مثلاب برای نگهداری کوکی Cookie تغییر زبان ها یا کالچرها Culture ها باشد. و یا حتی می توان فیلتر های  Authorization Filter  را اینجا پیداه سازی کرد.

هرچند بعضی ها مخالف ایجاد BaseController ها هستند و معتقدند نیازی به ایجاد آنها نیست.

 

 

Categories: IT, Microsoft, MVC Tags:

چگونه می توان یک فیلتر ActionFilter در MVC نوشت و آنرا رجیستر یا ثبت کرد؟

How to write or implement an ActionFilter in MVC and register it.

فرض بر MVC4 یا MVC 4 می باشد

بطور کلی چهار نوع فیلتر داریم که عبارت اند از

IAuthorizationFilter

IActionFilter

IResultFilter

IExceptionFilter

در اینجا یک مورد از ActionFilter را پیاده سازی می کنیم

فرض کنید بخواهید ابتدای هر صفحه تولید شده عبارت Buuu را درج کنید

یک کلاس مثلا در فولدر Filters با نام MyActionFilter.cs ایجاد می کنیم و کدهای زیر را عینا در آن وارد می کنیم

سپس از داخل فولدر App_Start فایل FilterConfig.cs را بشکل زیر تغییر دهید

اگر پروژه را اجرا کنید در ابتدا و انتهای سورس کد فایل خروج Buuu را خواهید دید.

Categories: IT, Microsoft, MVC Tags:

تنظیم web.config برای استفاده از simplemembership در mvc4

همچنانکه می دانید mvc4 بصورت پیش فرض از simplemembership برای مدیریت account استفاده می کند. برای اینکه بتوان از این provider استفاده کرد حتما لازم است که web.config برای آن تنظیم شود

فایل web.config را باز کنید و موارد زیر را در آن اضافه کنید

با افزودن کد های فوق حتی موقعی که می خواهید از طریق متد seed اکانتی را به دیتابیس اضافه کنید و دیتابیس را آپدیت کنید خطای زیر را دریافت نخواهید کرد.

The Role Manager feature has not been enabled.

 

Categories: Code First, IT, Microsoft, MVC Tags:

آفلاین کردن وب سایت دات نتی بمنظور بروز رسانی توسط App_Offline.htm

یکی از بهترین راه ها برای آفلاین کردن یک وب سایت با دات نت استفاده از فایل App_Offline.htm می باشد. مایکروسافت با پشتیبانی از این فایل به شما امکان می دهد تا با کپی آن در روت سایت خودتان سایت را آفلاین کنید تا بتوایند دیتابیس یا محتوای سایت را بروز رسانی نمایید.

کافی است متن مناسبی داخل آن درج کنید و آن را در روت کپی کنید، و بعد از اتمام کار آنرا حذف نمایید.

البته روش های برنامه نویسی نیز برای این کار وجود دارد که مثلا از طریق کنترل پنل ادمین سایت می توان سایت را Down یا اصطلاحا آفلاین کرد. امیدوارم در پست های بعدی به این منظور بپردازم.

نمونه پیشنهادی برای فایل مذکور را در کدهای پایین می بینید

 

Categories: IT, Microsoft, MVC Tags:

نحوه نگاشت یا Mapp یک مدل(جدول) یا بطور کلی یک آبجکت به یک ویو مدل یا آبجکت

۱۱ خرداد ۱۳۹۲ ۲ دیدگاه

How to mapping or convert a model to a view model

برای نگاشت، مپ یا کانورت یک مدل به یک ویو مدل به شکل زیر عمل می کنیم.

ابتدا دستور زیر را در global.asax وارد می کنیم

سپس از فولدر Model داخل فایل AutoMapperWebConfiguration.cs دستورات زیر را می نویسیم

توجه داشته باشید که باید حتما automapper.dll را به رفرنس ها وارد کرده باشید. برای این کار می توانید از منو های VS آنرا بصورت آنلاین دریافت و در پروژه اعمال نمایید

Tools > Library Package Manager > Manage NuGet Packages for solution

و سپس بصورت Online، Automapper را سرچ کنید و بعد از پیدا کردن Install کنید.

و در ادامه

سپس در صورت نیاز به استفاده از آنها داخل یک Action مثلا Details می نویسیم

 

Categories: Code First, Microsoft, MVC Tags:

تعریف یک مسیر در MVC

How to define a route in MVC

تعریف یک روت با داشتن حداقل دو پارامتر:

فقط باید توجه داشته باشید که مسیر تعریف شده فوق حتما قبل از مسیر تعریف شده Default قرار بگیرد

 

Categories: Microsoft, MVC Tags:

ارسال چندین پارامتر به یک اکشن

Passing multiple parameters to an action

می دانیم که متد ارسال یک پارامتر به یک اکشن از یک کنترلر بشکل زیر است

در شکل فوق فقط یک پارامتر به اکشن ارسال شده است. اگر بخواهیم پارامترهای زیادی را به یک اکشن ارسال کنیم چه باید کرد. برای این کار چندین روش وجود دارد که دو تا از آنها را بیان می کنیم

۱- نگهداری مقادیر در Html.hidden:  فرض کنید مقادیر نام و نام خانوادگی را می خواهیم به یک اکشن بفرستیم در view می نویسیم

2- تعریف یک روت با داشتن دو پارامتر فوق:

فقط باید توجه داشته باشید که مسیر تعریف شده فوق حتما قبل از مسیر تعریف شده Default قرار بگیرد

 

Categories: Microsoft, MVC Tags:

نحوه درج ورژن اتوماتیک در پائین صفحه Automatic build versioning in footer

۲۴ اردیبهشت ۱۳۹۲ بدون دیدگاه

برای درج ورژن اتوماتیک در پایین صفحه موارد زیر باید انجام گیرد.

۱- درج تابع زیر در global.asax.cs

2- درج خط زیر در AssemblyInfo.cs

3- درج خط زیر در view یا layout

Categories: Microsoft, MVC Tags:
IP Blocking Protection is enabled by IP Address Blocker from LionScripts.com.