قبلا و در پستي با عنوان نقشه راه توسعه دهندگان Asp.NET Core که در اين لينک به آن پرداخته شد و همچنان در حال تکميل مي باشد، شروع به انتشار مطالبي پيرامون مباحث زير نموديم.
اما قصد دارم تا ضمن استفاده عملي از مطالب بالا و با طراحي و توليد يک نرم افزار مديريت سرمايه انساني يا همان HR (خيالي)براي تکميل نقشه راهي که در ابتدا به آن اشاره شد استفاده کنم.البته واضح است در اين مسير ما قصد نداريم يک نرم افزار مديريت منابع انساني را بصورت کامل طراحي کنيم، هدف بکار گيري اصول مهندسي نرم افزار و بيان مباحث مرتبط با هر بخش مي باشد و در نهايت تکميل آن به خود شما واگذار خواهد شد.
اما قبل از آغاز پروژه لازم است برخي از مسائل روشن شود و انتخاب هاي صحيحي در مورد آن صورت پذيرد. چرا که انتخاب نادرست ممکن است برای شما هزینه ایجاد مجدد کل وب سایت یا وب اپليکشين را نیز در پی داشته باشد.
اگرچه آنها تقریباً یکسان به نظر می رسند، برنامه های کاربردی وب و وب سایت ها دو قالب متفاوت از محتوای وب هستند. Web Application یک برنامه کاربردی کامل است که می تواند برای اهدافی مانند حسابداری، CRM، مدیریت منابع انسانی، مدیریت پروژه، داشبورد مدیریت و غیره مورد استفاده قرار گیرد. از طرف دیگر یک Web Site مثلا با محتوای آموزشی در مورد یک کسب و کار است.
در نتيجه با توجه به پروژه پيش رو يعني نرم افزار مديريت منابع انساني ما با يک Web Application روبرو خواهيم بود.
قبلا و بصورت مفصل در خصوص انتخاب رابط کاربری وب (Web UI) برای Asp.Net Core در اين لينک صحبت کرديم و گفتيم سه رویکرد کلی برای ایجاد رابط کاربری وب مدرن با ASP.NET Core وجود دارد:
1.برنامه هایی که UI را از سرور ارائه می کنند (SSR) :
2.برنامههایی که UI را روی کلاینت در مرورگر ارائه میکنند(CSR) :
شما همچنین می توانید برنامه های ASP.NET Core را با استفاده از فریم ورک های محبوب جاوا اسکریپت مانند Angular یا React بسازید. ASP.NET Core قالب های پروژه را برای Angular و React ارائه می دهد و می تواند با سایر فریم ورک های جاوا اسکریپت نیز استفاده شود.
3.برنامه های ترکیبی که از هر دو رویکرد ارائه رابط کاربری سرور و کلاینت بهره می برند(Hybrid) :
مزایا و معایبی وجود دارد که باید هنگام رندر UI روی سرور، کلاینت و Hybrid در نظر گرفت.
و در نهايت بر اساس نتيجه گيري صورت پذيرفته شده از آنجائيکه براي پروژه فرضي ما يعني سيستم مديريت سرمايه انساني :
الف) سرعت مهم(بصورت میانگین بیشتر از SSR)
ب) اما سئو مهم نیست (ساخت وب اپلیکشین ها برای اهدافی مانند حسابداری، CRM، مدیریت منابع انسانی، مدیریت پروژه، داشبورد مدیریت و ... )
ج) انتشار بر روی CDN مهم.
د)نمی خواهیم درگیر مشکلات سازگاری UI که در تولید سمت سرور(SSR/SSG) وجود دارد شویم.
در نهايت با در نظر گرفتن عوامل فوق عاقلانه است ما براي برنامه کاربردی وب یا همان Web Application فرضي خود از CSR استفاده کنيم. اما انتخاب مهم و بعدي در اين ارتباط چيست ؟ Blazor يا استفاده از فریمورک های محبوب جاوا اسکریپت مانند Angular یا React !
اگر من مدير پروژه بودم و در يک تيم چند نفره حضور داشتم شايد React را انتخاب مي کردم(صرفا نظر شخصي) اما از آنجائيکه در اين پروژه تيمي وجود ندارد ! نمي خواهم هزينه هاي انتخاب يک فريمورک ديگر مانند React را بپذيرم انتخاب من در اين شرايط Blazor مي باشد.
اگر از قوانین، اصول، الگوها و بهترین شیوه ها پیروی کنید، codebase شما ساده تر و راحت تر نگهداری می شود و در نتیجه می تواند سریعتر تغییر کند.
در نهايت و بر اساس بررسي مزايا و معايب انتخاب ما DDD به عنوان یک الگوی عالی برای سیستم هایی با منطق کسب و کار پیچیده است، سیستم هایی که نیاز به نگهداری و توسعه در آینده دارند.
بیشتر بخوانید : طراحي و توليد نرم افزار HR با Asp.Net Core - قسمت اول
بیشتر بخوانید : نقشه راه توسعه دهندگان Asp.NET Core