atVSG

0011001000110100

وحید امیری مطلق

توسعه دهنده وب و موبایل

انتشار وب اپ ساخته شده با ASP.NET Core با وب سرور Apache


ASP.NET Core + Apache

نسخه جدید فرم ورک Microsoft ASP.NET با عنوان ASP.NET Core یک فریم ورک ماژولار و منبع باز برای ساخت Web App و انواع Web API استفاده میشه. از بزرگترین مزیت های این نسخه، استفاده اون از NET Core هست که باعث میشه بتونید علاوه بر ویندوز، روی انواع توزیع های لینوکس و macOS هم برنامه ها رو اجرا کنید و از تمام مزیت هایی که دارن از جمله مصرف کمتر منابع و وب سرور قوی و محبوب nginx بهره مند بشید.

مسلما مثل همیشه امکان میزبانی ASP.NET Core روی وب سرور IIS که مخصوص ویندوزه هست ولی به دلایل زیادی از IIS خوشم نمیاد و ترجیح میدم از Apache استفاده کنم. مهم ترین دلایل من برای این کار اینه که تجربه ی مناسبی با Apache دارم و بدون اتلاف وقت میتونم تموم اون ها رو برای ASP.NET Core پیاده کنم و از طرفی همون طور که همه دنیا میدونن، Apache یک نرم افزار Cross Platform هستش که به معنی اینه که Apache رو روی هر سیستم عاملی اجرا کنید، دقیقا همین کار هایی که برای تنظیم Apache روی مثلا لینوکس انجام میدید رو بتونید با کمترین تغییر ممکن روی ویندوز هم پیاده کنید و این به شما این اجازه رو میده که به راحتی و در صورت نیاز، بتونید برنامه خودتون رو به یک سرور با یک سیستم عامل کاملا متفاوت منتقل کنید. همچنین این معنیه که میتونید چندین سایت با تکنولوژی های کاملا متفاوت رو کنار هم و بدون کوچکترین مشکلی روی یک سرور و یک وب سرور هاست کنید!



لوپ بی نهایت با PartialView در ASP.NET MVC5


یک مشکل واقعا آزار دهنده موقع استفاده از PartialView ها در ASP.NET MVC وقتی اتفاق میفته که کدتون مثل حالت زیر باشه:

        public PartialViewResult _SomePartialView()
        {
           // do something
            return View();
        }

در کد بالا شما وارد یک لوپ بی نهایت میشید. نه تنها یک پیغام درست و حسابی برای خطای در کدتون نمیگیرید، بلکه با اجرای این کد IIS کلا کرش میکنه! لازم نیست بگم که Intellisense هم در پیدا کردن خطا هیچ کمکی به شما نمیکنه.

اما اشکال کجاست؟؟؟

در این متود ما اعلام کردیم که میخواهیم یک PartialViewResult برگردونیم ولی در قسمت return داریم یک View برمیگردونیم. برای برطرف کردن این مشکل کافیه قسمت return رو به شکل زیر بنویسید:

return PartialView();

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


آپلود عکس در TinyMCE از طریق ASP.NET MVC 5


asp.net-mvc-tinymce

آپلود عکس از طریق یک  WYSWIYG HTML editor مثل TinyMCE یا CKEditor یک کار خیلی رایج و ضروریه ولی متاسفانه با جستجوی در اینترنت نمیتونید روشی جدید و متناسب با ASP.NET MVC رو که با TinyMCE 4 کار کنه پیدا کنید. البته یک یا دو افزونه ی پولی برای TinyMCE 4 وجود داره ولی راه رایگان نه. (لااقل من پیدا نکردم!)

به همین جهت خودم دست به کار شدم و با روشی که در ادامه توضیح میدم تونستم آپلود عکس رو از طریق ASP.NET MVC5 برای TinyMCE 4.x انجام بدم.