eitaa logo
پروژه ASP.Net Core MVC (وب و سی شارپ)
120 دنبال‌کننده
168 عکس
38 ویدیو
376 فایل
❁﷽❁ آموزش 📖 برنامه نویسی ASP.Net Core MVC (وب و سی شارپ) Admin: @alialirezapanahi برنامه نویسی برنامه نویسی سی شارپ eitaa.com/sisharpapp برنامه نویسی وب eitaa.com/aspdatnet ویراستی virasty.com/alialirezapanahi آپارات aparat.com/alialirezapanahi
مشاهده در ایتا
دانلود
30 در سی شارپ 12، دستور using برای مدیریت منابع و آزاد کردن حافظه به کار می‌رود. این دستور به شما اجازه می‌دهد تا اشیاء را به صورت خودکار پس از استفاده از حافظه پاک کنید. ساختار کلی دستور using به صورت زیر است: using (var resource = new Resource()) { // کدهایی که از resource استفاده می‌کنند } در این مثال، پس از اتمام بلاک using، متد Dispose شیء resource به صورت خودکار فراخوانی می‌شود و حافظه آزاد می‌گردد. همچنین، در سی شارپ 10 و نسخه‌های بعدی، می‌توانید از global using استفاده کنید تا فضاهای نام (namespaces) را به صورت سراسری در کل پروژه تعریف کنید. به عنوان مثال: // در یک فایل جداگانه global using System; global using System.Collections.Generic; این کار باعث می‌شود که نیازی به تعریف مجدد این فضاهای نام در هر فایل نباشد.
31 در سی شارپ، کلمه کلیدی partial به شما اجازه می‌دهد که تعریف یک کلاس، ساختار، یا اینترفیس را در چندین فایل جداگانه تقسیم کنید. این ویژگی به ویژه در پروژه‌های بزرگ و تیم‌های بزرگ برنامه‌نویسی که نیاز به تقسیم وظایف دارند، مفید است. مثال از کلاس partialفرض کنید می‌خواهید یک کلاس به نام Person را در دو فایل جداگانه تعریف کنید: فایل اول (Person1.cs): public partial class Person { public string FirstName { get; set; } } فایل دوم (Person2.cs): public partial class Person { public string LastName { get; set; } } هنگامی که این دو فایل کامپایل می‌شوند، کلاس Person به یک کلاس واحد با دو خاصیت FirstName و LastName تبدیل می‌شود: Person person = new Person { FirstName = "Ehsan", LastName = "Babaei" }; Console.WriteLine($"Full Name: {person.FirstName} {person.LastName}"); // prints "Full Name: Ehsan Babaei" مزایا و معایب کلاس‌های partialمزایا: - تقسیم یک کلاس به چندین فایل، که می‌تواند در پروژه‌های بزرگ مفید باشد. - امکان ترکیب کد تولید شده توسط ابزارها با کد خودتان بدون نیاز به تغییر کد تولید شده. - تسهیل تقسیم وظایف برنامه‌نویسی بین تیم‌های بزرگ. معایب: - ممکن است منجر به کدی شود که خواندن آن دشوار است. - مدیریت کد ممکن است پیچیده‌تر شود، زیرا تغییرات در یک قسمت از کلاس می‌تواند تأثیر غیرمستقیمی بر بخش‌های دیگر داشته باشد.
32 در سی‌شارپ، کلمه کلیدی internal یک سطح دسترسی است که برای انواع (types) و اعضای (members) کلاس‌ها استفاده می‌شود. اعضا یا انواعی که با internal مشخص شده‌اند، فقط در داخل همان اسمبلی (assembly) قابل دسترسی هستند و از خارج از آن اسمبلی قابل مشاهده نیستند. برای مثال: // Assembly1.cs internal class MyClass { internal int myField; internal void MyMethod() { // Method implementation } } در این مثال، کلاس MyClass و اعضای آن فقط در داخل اسمبلی‌ای که این کد در آن قرار دارد، قابل دسترسی هستند. اگر بخواهید از این کلاس یا اعضای آن در اسمبلی دیگری استفاده کنید، با خطا مواجه خواهید شد.
33 در سی‌شارپ، برخی از کلاس‌ها به گونه‌ای طراحی شده‌اند که نمی‌توان از آن‌ها نمونه‌سازی کرد. این کلاس‌ها معمولاً به دلایل زیر به صورت غیرقابل نمونه‌سازی تعریف می‌شوند: 1- کلاس‌های ایستا (Static Classes): این کلاس‌ها فقط شامل اعضای ایستا هستند و نمی‌توان از آن‌ها نمونه‌سازی کرد. به عنوان مثال، کلاس Math در سی‌شارپ یک کلاس ایستا است و شما نمی‌توانید از آن نمونه‌سازی کنید. 2- کلاس‌های انتزاعی (Abstract Classes): این کلاس‌ها برای ایجاد یک پایه برای سایر کلاس‌ها طراحی شده‌اند و نمی‌توان مستقیماً از آن‌ها نمونه‌سازی کرد. شما باید یک کلاس فرزند از کلاس انتزاعی ایجاد کنید و سپس از کلاس فرزند نمونه‌سازی کنید. 3- کلاس‌های دارای سازنده‌های خصوصی (Private Constructors): اگر یک کلاس دارای سازنده‌های خصوصی باشد، نمی‌توان از خارج از کلاس از آن نمونه‌سازی کرد. این روش معمولاً برای پیاده‌سازی الگوهای طراحی مانند Singleton استفاده می‌شود.
34 برای استفاده از کلاس‌هایی که نمی‌توان از آن‌ها نمونه‌سازی کرد، می‌توانید به روش‌های زیر عمل کنید: 1- کلاس‌های ایستا (Static Classes): - این کلاس‌ها معمولاً شامل متدها و ویژگی‌های ایستا هستند که می‌توانید مستقیماً از آن‌ها استفاده کنید. به عنوان مثال، برای استفاده از متد Sqrt در کلاس Math: double result = Math.Sqrt(16); 2- کلاس‌های انتزاعی (Abstract Classes): - ابتدا باید یک کلاس فرزند از کلاس انتزاعی ایجاد کنید و سپس از کلاس فرزند نمونه‌سازی کنید. به عنوان مثال: abstract class Animal { public abstract void MakeSound(); } class Dog : Animal { public override void MakeSound() { Console.WriteLine("Woof!"); } } Dog myDog = new Dog(); myDog.MakeSound(); // Output: Woof! 3- کلاس‌های دارای سازنده‌های خصوصی (Private Constructors): - این کلاس‌ها معمولاً از طریق یک متد ایستا یا یک ویژگی ایستا قابل دسترسی هستند. به عنوان مثال، برای پیاده‌سازی الگوی Singleton: public class Singleton { private static Singleton instance = null; private Singleton() { } public static Singleton Instance { get { if (instance == null) { instance = new Singleton(); } return instance; } } } Singleton singletonInstance = Singleton.Instance;
3.1M حجم رسانه بالاست
مشاهده در ایتا
35 فرض می کنیم مشتری سفارش ساخت برنامه حسابداری تحت ویندوز داده و تیم فنی برای پیاده سازی نرم افزار از دانت فریمورک استفاده می کند بعد از تکمیل، تحویل مشتری می دهد بعد از مدتی مشتری با موفق بودن نرم افزار طبق نیاز بازار، نسخه موبایل را درخواست می کند و تیم فنی طراحی نسخه موبایل از زامارین استفاده می کند در اینجا یک مشکلی به وجود میاد کدهای ui برنامه ویندوز با موبایل فرق می کند و نمی تواند کدهای ویندوز را در زامارین استفده کند ولی کدهای بیزینس همونه، یعنی فرایند های برنامه حسابداری در نسخه ویندوز و موبایل یکیه، مشکل تیم فنی اینه که کدهای مربوط به بیزینس که قبلا برای برنامه تحت ویندوز در دات نت فریمورک نوشته است الان قابل استفاده نیست چون کدی که روی یکی از پیاده سازی های دات نت می نویسد نمی تواند روی بقیه پیاده سازی ها اجرا بشود در این مثال هم نمی تواند کدهایی که برای نسخه ویندوز در دات نت فریمورک نوشته است از همون نسخه موبایل در زامارین استفاده کند و مجبور به همه کدها را از اول در زامارین بنویسد مایکروسافت برای رفع این مشکل دات نت استاندارد را معرفی کرد که یک لایه قرار می گیرد تمام پیاده سازی های دات نت و کدها را در بین این فریم ورک ها به اشتراک می گذارد پس ما اگر برای Class librariy از نوع دانت استاندارد استفاده کنیم می توانیم کدها را بین همه پیاده سازی های دا نت استفاده کنیم و در زمان کد نویسی صرفه جویی کنیم به این نکته دقت کنیم که دات نت استاندارد یک فریمورک نیست و فقط Class librariey که در کنار پروژه ها استفاده کنیم