کدهک
1.92K subscribers
1.3K photos
7 videos
1 file
681 links
آموزشگاه تخصصی دات نت

https://codehaks.com

لینکدین :
https://www.linkedin.com/in/codehaks

یوتیوب:
https://www.youtube.com/@codehaksfa

ارتباط با مدیر :
Admin: @codehak
Email: ghods.hakim@hotmail.com
call: 09380146555
Download Telegram
آیا SPA گزینه ی خوبی است ؟

استفاده از Single Page Application ها به تازگی طرفداران زیادی پیدا کرده است. خیلی از برنامه نویسان وب رویای SPA را دارند. اما آیا پیاده سازی سایت ها به روش SPA گزینه ی درستی است ؟

مشکل این است که 80 درصد سایتهای اینترنتی نیازی به چنین ابزاری ندارند. شما اینقدر در یک سایت کار ندارید که نیاز به چرخش مداوم در صفحات آن داشته باشید. پس روانتر کردن فرم ظاهری چندان در کاربر تاثیر ندارد. در کنار اینها کندی بارگذاری اولیه SPA را هم اضافه کنید که کاربر را آزرده میدهد.

اگر هدف شما پیاده سازی یک اتوماسیون اداری تحت وب است که تعداد زیادی کارمند ساعتها در صفحات آن در رفت و آمد هستند SPA خوب است .اما به چه قیمتی ؟

هزینه ی پیاده سازی SPA حداقل دو تا سه برابر سایتهای دیگر است. علاوه بر اینکه وقت بیشتری میطلبد برنامه نویسانی با مهارت بسیار بالا نیاز دارد . این برنامه نویسان ارزان کار نمیکنند. جاوا اسکریپت به خودی خود زبان پیچیده ای است به این پیچیدگی فریم ورکهای SPA را هم اضافه کنید تا در یک کلاف سردرگم گیر کنید.
سرویس تحت وب Outlook مایکروسافت با استفاده از فریم ورک React پیاده شده است. هر چند React تحت پشتیبانی شرکت Facebook می باشد.
https://chrome.google.com/webstore/detail/frameworks/jgghnecdoiloelcogfmgjgcacadpaejf?hl=en

تا حالا کنجکاو شدید که یک سایت با چه ابزاری پیاده شده ؟
این افزونه ی کروم می تواند فریم ورکهای جاوا اسکریپت استفاده شده در یک سایت را نمایش دهد.
ابزار Tag Helper ها در ASP Core جایگزینی برای HTML Helper ها هستند. با استفاده از -asp فعال میشوند و کدهای تمیزتری میسازند.
مسیر اجرای یک برنامه ی ASP Core 2 از متد Main در فایل program.cs شروع میشود. سپس سازنده ی کلاس startup.cs اجرا میشود. در ادامه کدها ConfigureServices و Configure اجرا میشوند.
در فایل startup.cs وجود سازنده ی کلاس و متد ConfigureServices اختیاری است. اما متد Configure حتما باید وجود داشته باشد. در غیر این صورت برنامه اجرا نخواهد شد.
سایت DigiKala در صفحات داخلی از React برای رابط کاربری استفاده میکند.
آشنایی با کد سازی

در بسیاری از موارد کد شما از الگوی یکسانی پیروی میکند. بسیاری از جداول در دیتابیس نیاز به عملیات های CRUD دارند. با توجه به اینکه قالب کلی سایتها یکدست است عملا همه ی صفحات نمایش ، ایجاد ، ویرایش و حذف مشابه هستند. این فرمها فرق میکند اما تفاوت فقط در نام مدلها و فیلدهاست و در ساختار کد نیست.

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

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

مشکل کد ساز این است که هیچکدام خوب نیست مگر آنکه خودتان طراحی کرده باشید. ما معمولا از نام گذاری ها و نوشتار مخصوص به خود در کد نویسی استفاده میکنیم و کد ساز هم باید این موضوع را شامل شود. پس بهترین راه این است که کار با کد سازها را یاد بگیریم.

هدف از برنامه ی کد ساز تولید سریعتر کد است . لازم نیست کد ساز از اصول استاندارد پیروی کند یا بسیار تمیز پیاده شود. تنها کافی است کد مورد نیاز شما را تولید کند. پس نباید وقت زیادی روی آن صرف کنید . به این موضوع توجه کنید که کد ساز تنها یک وسیله است و نه هدف شما.
کد ساز برای قالب پرتال

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

https://github.com/codehaks/CodeGen-Core
قالب پرتال

این قالب به صورت چند لایه و با استفاده از ASP MVC Core 2 پیاده شده است.
https://github.com/codehaks/Portal-Core-Fa

این لایه ها شامل UnitOfWork و Repositiry و Service میشود. برای هر مدلی که به پروژه اضافه میکنید این لایه ها باید پیاده شوند. کد نویسی این لایه ها نسبتا یکسان است و کدهای مشابه زیادی دارد. از این رو برای سرعت بخشیدن به روند کار یک کد ساز با استفاده از T4 ایجاد کردم که فایلهای ریپوزیتوری و سرویس ، ViewModel ها و همچنین کنترلر و ویوی هر قسمت را از روی کلاس Model می سازد.

جهت دانلود کد ساز به آدرس زیر مراجعه کنید
https://github.com/codehaks/CodeGen-Core
روش استفاده از کد ساز

1- ابتدا باید برنامه را دانلود و بیلد کنید
2-مسیر برنامه را در Path در Windows Enviroments اضافه کنید تا همه جا از طریق CMD در دسترس باشد
3- کلاس مدل را ایجاد کنید
4-برنامه را در مسیر فولدر Models با استفاده از دستور gen اجرا کنید.
دقت کنید که ابتدا عبارت gen و بعد نام کلاس مدل و بعد نوع دستور و در انتها Area قرار میگیرد.
مانند gen product go admin

5- انواع دستور :
ایجاد همه ی فایلها به صورت یکجا : go
ایجاد ویود مدل : vm
ایجادسرویس : sr
ایجاد ریپوزیتوری : rp
ایجاد کنترلر : cr
ایجاد ویوها : vi

6- این کد ساز عملیات CRUD را به صورت خودکار پیاده میکند. بعد از پیاده سازی معمولا نیاز به انجام تغییرات کوچک دارید. مثلا ممکن است مدل شما نیاز به عملیات حذف نداشته باشد و میتوانید کدهای آن قسمت را بردارید. همینطور ویو ها ساده طراحی شده اند و شامل همه ی فیلدهای مدل میشوند.

7- هنوز کد ساز بعضی از کارها را انجام نمیدهد. مثلا باید خودتان سرویس را به Dependency Injection اضافه کنید یا مدلها و ویو مدلها را به AutoMapper اضافه کنید. این عملیاتها چندان وقتگیر نیست . امیدوارم در آینده ی نزدیک با استفاده از Roslyn این بخش را هم به پروژه اضافه کنم.
روزلین یا Roslyn کامپایلر جدید #C و VB است که به صورت متن باز پیاده شده و به شما امکان آنالیز کد را از طریق کد میدهد.
مقایسه ای بین HTML Helper های قدیم و Tag Helper های جدید که در ASP Core معرفی شده است.

کدامیک را میپسندید ؟
قابلیت جدید ASP Core 2.0 قسمت Razor Page است که به شما امکان میدهد بدون استفاده از کنترلر روی ویو برنامه نویسی کنید.
معرفی Razor Pages در ASP Core 2.0

ویوهای Razor Page با عبارت page@ در ابتدای صفحه مشخص میشوند و دارای پسوند cshtml هستند. در نگاه اول هیچ فرق اساسی بین ویوهای Razor و Razor Page دیده نمیشود. اما Razor Page ها دارای یک فایل کد پس زمینه هستند.

این فایل با پسوند cshtml.cs همنام با فایل Razor Page است و همراه آن ساخته میشود. این فایل نقش Code Behind را داراست. چیزی شبیه فایل کد مخصوص فرم در WinForm . شما می توانید عملیات های POST یا GET روی ویو را مستقیما در این فایل کد نویسی کنید و دیگر نیاز به کنترلر جدا ندارید.

سیستم Razor Page بخشی از MVC جدید ASP Core است و همزمان در کنار Controller ها قابل استفاده است. یعنی مجبور به استفاده یکی یا دیگری نیستید. اگر نیاز به ارسال پارامتر به ویو داشته باشید می توانید آن را درون Code Behind تعریف کنید و در View مقدار دهی کنید.

امکان استفاده از تزریق وابستگی و کنترل معکوس در Razor Pages وجود دارد و بر خلاف ظاهرش کاملا کاربردی است. به نحوی که شما می توانید بجای استفاده از سیستم MVC همیشگی کل پروژه های خود را با Razor Pages پیاده سازی کنید.

از مزایای اصلی Razor Page یکپارچه سازی کدهای هر قسمت و جمع کردن آنها درون یک فولدر است. در MVC مدلها ، ویوها و کنترلر ها هر کدام در فولدهای خودش قرار میگیرد که مدیریت کد را مشکل میکند.

این قابلیت جدید هنوز در ابتدای راه است و نمی توان گفت جای MVC را به طور کامل می گیرد اما گزینه ای است که برنامه نویسان ASP مدتها به دنبالش بودند.
در ASP Core 2 می توانید ویوها را کامپایل کنید و به فایل اصلی پروژه اضافه کنید. در این حالت پابلیش کردن پروژه ساده تر میشه ولی امکان تغییر فایل های ویو رو بعد از انتشار از دست میدهید.
تکنولوژی Docker یک راه برای انتشار نرم افزار است که کدهای شما را مستقل از نوع سیستم عامل اجرا میکند. راه حل مناسب برای انتشار در انواع هاست می باشد.
دیتابیس SQLite سبک است و بدون نیاز به سرور مرکزی کار میکند. از این رو برای پروژه های کوچک مناسب است.
در این جدول محدودیت های SQLite که در EF Core پشتبانی میشود لیست شده است.
دوره ی آموزشی مبانی برنامه نویسی در ASP Core

تعداد ویدیو ها : 25 قسمت
مدت زمان : یک ساعت و 56 دقیقه
حجم دانلود : 166 مگابایت
کیفیت فایها : 720p
فرمت فایلها : mp4
لینک دانلود : http://codehaks.com
در EF Core برای ایجاد کلیدهای ترکیبی باید از Fluent API استفاده کنید و دیگر Attribute ها قابل استفاده نیستند.