اشتراک‌ها
ایجاد گزارش excel از mvc بااستفاده از EPPlus

بااستفاده از datatable فیلدهای مورد نظر برای گزارش excel را ایجاد می‌کندو میتوانیم روی قالب فایل اکسل تغییرات مورد نظر را اعمال کرده و نمودار‌های مورد نظر را ایجاد کنیم

ایجاد گزارش excel از mvc بااستفاده از EPPlus
نظرات مطالب
T4MVC : یکی از الزامات مدیریت پروژه‌های ASP.NET MVC
در کد فوق که از T4MVC استفاده نشده ولی نحوه تعریف Url شما اشتباه است. قبلا هم در مورد نحوه تعریف صحیح Url در ASP.NET MVC مطلب نوشتم. حتما باید از Url.Action استفاده کنید.
برای اینکه بتونید از Url.Action در اسکریپت‌های خودتون استفاده کنید پایین View جاری یک section به نام مثلا JavaScript درست کنید. در اینجا می‌شود داخل کدهای جاوا اسکریپتی هم از Razor استفاده کرد. سپس این section را در layout در قسمت header صفحه include کنید (در قسمت 14 سری MVC این سایت در مورد این تکنیک کاملا توضیح دادم).

نظرات مطالب
ارتقاء به ASP.NET Core 1.0 - قسمت 18 - کار با ASP.NET Web API
- با توجه به مطلب «ارتقاء به ASP.NET Core 2.0 - معرفی بسته‌ی Microsoft.AspNetCore.All» و وجود Runtime store، هیچ تفاوتی از لحاظ حجم Publish نهایی وجود نخواهد داشت. برای آزمایش AspNetCoreAll و AspNetCoreWebAPIOnly این مثال «AspNetCoreWebAPIOnly.zip» را publish کنید. حجم نهایی یکی است.
- قطعا با فعالسازی ویژگی‌های کمتر، مصرف حافظه و همچنین تنظیمات مرتبط با آن‌ها و یا انتخاب آن‌ها کاهش پیدا می‌کند. یک نمونه‌ی آن در مورد MVC 5.x است که به صورت پیش‌فرض دو موتور پردازش View در آن فعال است. اگر مورد aspx را حذف کنید، سرعت انتخاب Viewهای آن افزایش پیدا می‌کند: «بهبود سرعت نمایش صفحات در ASP.NET MVC با حذف View Engines اضافی»
مطالب
استفاده از HttpGet در ASP.NET MVC، آری یا خیر؟!
در ASP.NET MVC به کمک یک سری فیلتر می‌توان مشخص کرد که یک اکشن متد تنها به درخواست‌هایی از نوع Get پاسخ دهد، دیگری به درخواست‌هایی از نوع Post و الی آخر. عادت متداول من هم برای نمایش معمولی صفحات، استفاده از حالت HttpGet است که در شبکه‌های داخلی بدون مشکل کار می‌کند چون Bot ایی در این شبکه‌ها وجود ندارد و اگر باشد احتمالا یک ویروس است!

[HttpGet]
public ActionResult Index()
{
    return View();
}

اما روی اینترنت وضع فرق می‌کند. برای مثال یک کنترلر Feed ممکن است درخواست‌هایی از نوع Head نیز داشته باشد و یا بعضی از Botها بجای Get جهت دریافت اطلاعات فید، از Post هم استفاده می‌کنند! (مانند فیدبرنر گوگل مطابق لاگ‌های برنامه!) و در این حالت اگر متد رندر کردن یک فید را به HttpGet تنظیم کرده باشیم، مدام با خطای A public action method xyz was not found on controller abc در لاگ‌های خطای برنامه مواجه خواهیم شد.
بنابراین بهتر است که در سایت‌های عمومی، جهت ارائه اطلاعات و صفحات عمومی، از هیچ نوع فیلتری برای محدود کردن یک اکشن متد که کارش صرفا رندر کردن اطلاعات است، استفاده نکنیم. به این ترتیب اگر کسی توسط درخواستی از نوع Head فقط قصد بررسی تغییرات صورت گرفته را داشت و نه دریافت کل فید، بی‌جهت آن‌را محدود نکرده باشیم.
 
نظرات مطالب
معماری لایه بندی نرم افزار #4
شما گفتید:

سلام با تشکر از شما
من نفهمیدم که توی ASP.NET MVC شما چگونه از الگوی MVP استفاده کردین؟
ظاهرا مثال این قسمت هم توی پست وجود نداره، اگر اشتباه می‌کنم لطفا تصحیح بفرمایید. 

با خواندن کامنت شما برداشت کردم شما تصور کردید کدهای پست جاری مربوط به تکنولوژی ASP.NET MVC هست.

به نظر نویسنده هنوز برای MVC و WPF مثال‌ها را ایجاد نکرده و توضیح نداده اند.
اما برای استفاده از این نوع معماری در MVC کار خاصی لازم نیست انجام شود. همانطور که قبلا در مثال‌های آقای نصیری دیده ایم کافی است Service Layer در Controller مدل مناسب را تغذیه کند و برای View فراهم کند.

نظرات مطالب
ASP.NET MVC #22
- در حالت کلی خیر. فقط اگر فایل پایه xyz.resx باشه، فایل‌های بعدی باید xyz.lang.resx باشند.
ضمنا برای این مسایل پوشه‌ی مخصوصی به نام «App_GlobalResources» در ASP.NET وجود دارد، ولی در ASP.NET MVC توصیه نمی‌شود. چون حاصل این فایل‌ها در زمان اجرا توسط موتور ASP.NET کامپایل می‌شوند و یک dll جداگانه را درست می‌کنند که مناسب استفاده در شرایط Unit test نیست (مقادیر نال خواهند بود). بنابراین بهتر است فایل‌های منبع هر View، داخل همان پوشه مربوطه تعریف شود تا بتوان ارتباط منطقی ‌آن‌هارا پیدا کرد و همچنین در این حالت مشکلی با آزمون‌های واحد هم نخواهد بود.
- این روش هم خوبه. چون نهایتا میشه رشته رو توسط Razor خوند و در View یا master page درج کرد.
ضمن اینکه با استفاده از فایل منبع زبان فارسی (xyz.fa.resx)، این راست به چپ سازی حداقل به صفحات زرد خطای ASP.NET به صورت خودکار اعمال می‌شود. یکبار تست کنید، جالب است.