ASP.NET Core هو إطار عمل مفتوح المصدر من تطوير Microsoft، يُستخدم لبناء تطبيقات الويب الحديثة، API، وتطبيقات الهاتف المحمول عبر الإنترنت. يتميز ASP.NET Core بالسرعة العالية، والأداء الممتاز، والتوسع، بالإضافة إلى أنه متعدد الأنظمة، مما يعني أنه يمكن تشغيله على Windows، Linux، و macOS.
لماذا نستخدم ASP.NET Core؟
- أداء ممتاز:
يتميز ASP.NET Core بأداء عالٍ جدًا مقارنة بأطر العمل الأخرى. يتم تحسينه باستمرار لزيادة السرعة وتحسين استجابة التطبيقات. - المرونة في نشر التطبيقات:
يمكن نشر ASP.NET Core على أي خادم ويب، سواء كان IIS أو Nginx أو Apache أو حتى على Cloud platforms مثل Azure. - دعم متعدد الأنظمة (Cross-platform):
ASP.NET Core يمكن تشغيله على أنظمة تشغيل مختلفة مثل Windows، Linux، و macOS، وهو مناسب للمطورين الذين يعملون عبر منصات متعددة. - دعم API المتقدم:
ASP.NET Core يجعل بناء تطبيقات RESTful APIs أمرًا سهلاً وسريعًا بفضل الإعدادات المدمجة والتكامل مع Entity Framework Core لإدارة البيانات. - قابلية التوسع (Scalability):
ASP.NET Core يدعم بناء تطبيقات قابلة للتوسع، مما يتيح لك إنشاء تطبيقات كبيرة تعمل بكفاءة على الخوادم متعددة دون مشاكل. - المجتمع والدعم:
باعتباره جزءًا من .NET Foundation، ASP.NET Core يحتوي على مجتمع كبير من المطورين، ودعماً قوياً من Microsoft.
مفاهيم أساسية في ASP.NET Core
1. المشاريع وأنواع التطبيقات
ASP.NET Core يمكن استخدامه لبناء أنواع متعددة من التطبيقات:
- Web applications: بناء تطبيقات ويب ديناميكية.
- RESTful APIs: بناء واجهات API للتفاعل مع التطبيقات الأخرى.
- Blazor: تطبيقات ويب تفاعلية باستخدام C# بدلاً من JavaScript.
- Microservices: بناء تطبيقات صغيرة ومستقلة يمكن نشرها بشكل منفصل.
2. مفهوم الـ Middleware
في ASP.NET Core، يُعتبر الـ Middleware جزءًا أساسيًا من المعالجة داخل التطبيق. هو عبارة عن سلسلة من المكونات التي تُستخدم لمعالجة طلبات HTTP واستجابتها. يمكن أن يكون الـ Middleware مسؤولا عن وظائف مثل:
- التوثيق (Authentication).
- التصريح (Authorization).
- التخزين المؤقت (Caching).
- التسجيل (Logging).
- التعامل مع الأخطاء (Error Handling).
مثال:
public class Startup
{
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage(); // معالجة الأخطاء في الوضع التطويري
}
else
{
app.UseExceptionHandler("/Home/Error"); // معالجة الأخطاء في الوضع الإنتاجي
app.UseHsts(); // تحسين الأمان
}
app.UseHttpsRedirection();
app.UseStaticFiles(); // تحميل الملفات الثابتة
app.UseRouting();
app.UseEndpoints(endpoints =>
{
endpoints.MapControllerRoute(
name: "default",
pattern: "{controller=Home}/{action=Index}/{id?}");
});
}
}
في هذا المثال، يتم استخدام الـ Middleware لمعالجة الأخطاء، إعادة توجيه HTTPS، وتحميل الملفات الثابتة.
3. الـ Controllers and Actions
في ASP.NET Core، يتم استخدام Controllers للتعامل مع طلبات HTTP من العميل. داخل الـ Controller، يُمكنك تعريف Actions التي تُنفذ الإجراءات بناءً على نوع الطلب (مثل GET، POST، PUT، DELETE).
مثال:
public class HomeController : Controller
{
public IActionResult Index()
{
return View(); // عرض الصفحة الرئيسية
}
[HttpPost]
public IActionResult SubmitForm(string name)
{
// معالجة البيانات المرسلة من النموذج
return Content($"تم إرسال النموذج بواسطة {name}");
}
}
هنا، لدينا Controller اسمه HomeController يحتوي على Action اسمها Index التي تعرض الصفحة الرئيسية، و Action أخرى تستخدم POST لمعالجة البيانات المرسلة.
4. العمل مع الـ Views (صفحات الـ HTML)
يُستخدم Razor لكتابة Views في ASP.NET Core. Razor هو محرك عرض (View Engine) يتيح لك دمج C# مع HTML بسهولة.
مثال:
@{
ViewData["Title"] = "Home Page";
}
<h2>@ViewData["Title"]</h2>
<p>مرحبًا بك في الصفحة الرئيسية!</p>
هنا، نستخدم Razor لعرض عنوان الصفحة داخل HTML.
5. العمل مع الـ Models (النماذج)
Models تُستخدم لتمثيل البيانات في التطبيق. عادة ما تحتوي Models على الخصائص التي تمثل بيانات المستخدم، مثل بيانات النموذج أو الكائنات المُسترجعة من قاعدة البيانات.
مثال:
public class Person
{
public string Name { get; set; }
public int Age { get; set; }
}
هنا، لدينا Model اسمه Person يحتوي على خاصيتين: Name و Age.
6. التفاعل مع الـ Database باستخدام Entity Framework Core
Entity Framework Core (EF Core) هو ORM (Object-Relational Mapper) في ASP.NET Core الذي يساعدك في التعامل مع قواعد البيانات. يمكنك استخدامه لإنشاء واسترجاع البيانات من قاعدة البيانات دون الحاجة لكتابة استعلامات SQL معقدة.
مثال على تعريف DbContext في EF Core:
public class ApplicationDbContext : DbContext
{
public DbSet<Person> People { get; set; } // تعريف جدول في قاعدة البيانات
}
ثم في Startup.cs، يمكنك تكوين EF Core للعمل مع قاعدة البيانات:
public void ConfigureServices(IServiceCollection services)
{
services.AddDbContext<ApplicationDbContext>(options =>
options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")));
}
7. التوثيق والمصادقة (Authentication and Authorization)
ASP.NET Core يوفر طرق متعددة للتوثيق (Authentication) والتفويض (Authorization) للتحقق من هوية المستخدم ومنحه صلاحيات للوصول إلى أجزاء معينة من التطبيق.
- Authentication: يُستخدم للتحقق من هوية المستخدم (مثل تسجيل الدخول باستخدام البريد الإلكتروني وكلمة المرور).
- Authorization: يُستخدم لتحديد ما إذا كان المستخدم لديه الصلاحية للوصول إلى مورد معين.
مثال على التوثيق:
services.AddAuthentication(CookieAuthenticationDefaults.AuthenticationScheme)
.AddCookie(options =>
{
options.LoginPath = "/Account/Login";
});
8. إنشاء RESTful APIs
ASP.NET Core ممتاز لبناء APIs باستخدام REST. باستخدام Controllers و Actions، يمكنك بناء واجهات API تُستخدم في التطبيقات التي تحتاج إلى التواصل مع الخوادم أو التطبيقات الأخرى.
مثال على API Controller:
[Route("api/[controller]")]
[ApiController]
public class PeopleController : ControllerBase
{
private readonly ApplicationDbContext _context;
public PeopleController(ApplicationDbContext context)
{
_context = context;
}
[HttpGet]
public IEnumerable<Person> Get()
{
return _context.People.ToList();
}
[HttpPost]
public IActionResult Post([FromBody] Person person)
{
if (ModelState.IsValid)
{
_context.People.Add(person);
_context.SaveChanges();
return CreatedAtAction(nameof(Get), new { id = person.Id }, person);
}
return BadRequest(ModelState);
}
}
هنا، لدينا API Controller يقوم بإرجاع جميع الأشخاص في قاعدة البيانات عندما يتم إرسال طلب GET، ويضيف شخص جديد إلى قاعدة البيانات باستخدام POST.
الخاتمة
ASP.NET Core هو إطار قوي لبناء تطبيقات الويب الحديثة والمتحركة. بفضل قدرته على دعم Web Applications و APIs، ودعمه للتطوير على منصات متعددة مثل Windows و Linux و macOS، يُعتبر ASP.NET Core خيارًا رائعًا للمطورين. من خلال Controllers، Views، Models، و Entity Framework Core، يمكنك بناء تطبيقات ويب متكاملة بسهولة ومرونة.
اترك تعليقاً