در این ٤تا پست بحث سر الگوها و مفاهیم موجود در MVC بوده. ایرادی که من به آقای کرامتی گرفتم این بود که در View مستقیما با EF کار نشه چون کار View فقط نمایش اطلاعات هست و اینکه بیاییم html رو با logic قاطی کنیم کار درستی نیست و در این بین Controller حذف نشه که جواب شما این بوده که در Controller اطلاعات رو با استفاده از ViewBag به View بفرستیم.
حالا بحث سر اینکه که چرا در این مورد نباید از ViewBag یا ViewData استفاده بشه و توضیحی که من هم دادم در همین راستا بوده و رعایت Best Practiceهای موجود در MVC بوده است.
اما در مورد مثالی که زده بودین که تویه UI پوشه به نام Component ساخته بشه که شامل کلاسهایی میشه که زیاد استفاده میشن، تا جایی که من میدونم معمولا توی Solution پروژەای به نام Commen یا Infrastructure ساخته میشه که شامل کلاسها و توابعی میشه که توی لایەهای دیگه هم استفاده میشن و نه اینکه مختص در داخل لایە UI باشه. درضمن چه اینکه از این کلاس استاتیک شما و چه اینکه بصورت مستقیم از DbContext در View استفاده بشه ارتباط بین اجزا بصورت Loose coupling نیست و این یک اشکال طراحیه البته هر چند شاید برنامەهای که شما نوشتین به احتمال زیاد بیشتر از یک لایه نبوده و چیزی هم از این مفاهیم نمیدونید(مسخره کردن کار سادەای هست و اینکه در پایان هرجمله یک قهقه بزنم و ٤تا نیش کنایه هم بزنم که کار شایستەای نیست اینجا یک انجمن برای تبادل اطلاعات هست و اگه فکر میکنید من یا بقیه بیسوادیم اشتباه فکر میکنید.)
در مورد ماتریس. یه جوری در مورد ماتریس حرف میزنید که انگار کرنل ویندوز نوشتین. یه سری هم به Tuple بزنید شاید این کار نچندان کوچیک رو براتون کوچیک کرد البته بدهم نیست یک بازنگری در مورد نحوه رابطه بین اجزاتون داشته باشین که مجبور نباشین برای ذخیره اطلاعات همچین موردی از ماتریس که کار نچندان کوچیکیه، استفاده کنین.