Yazılıma yeni başlayanlar için harika bir rehber olan Basit ASP.NET Otel Rezervasyon Sistemi ve Access Veritabanı kaynak kod projesi, web programlama mantığını kavramak adına önemli bir temel sunmaktadır. Bu çalışmada, ASP.NET otel rezervasyon sistemi süreçlerinin C# diliyle nasıl kurgulandığını ve Access veritabanı entegrasyonunun dinamik olarak nasıl sağlandığını adım adım inceliyoruz. Tamamen açık kaynak kodlu olarak paylaşılan bu otel rezervasyon sistemi kaynak kod ve proje dosyası, özellikle dinamik SQL sorgularını ve web form bileşenlerini öğrenmek isteyen geliştiriciler için hazır bir eğitim materyalidir.
Basit ASP.NET Otel Rezervasyon Sistemi ve Access Veritabanı Mimari İncelemesi
ASP.NET Web Forms mimarisi ile uygulama geliştirmeye başlanılan ilk dönemlerde, pratik kazanmak amacıyla tasarlanan projeler temel mantığı kavramak adına önemli birer basamaktır.
Bu projenin arayüz mimarisinde Master Page yapısı kullanılmamış; tüm görsel yerleşimler doğrudan geleneksel tablolama (Table) yöntemiyle kurgulanmıştır. Günümüz ölçeklenebilir yazılım dünyasında MVC (Model-View-Controller) yapıları çok daha efektif çözümler sunsa da, bu çalışma Web Forms bileşenlerinin ve yerel veritabanı entegrasyonunun temel mantığını kavramak isteyen geliştiriciler için harika bir referanstır.
Topluluk Desteği
Geliştirilen açık kaynak kodlu projeler ve teknik içerikler düzenli olarak topluluk platformumuzda paylaşılmaktadır.
Gruba KatılKaynak Kodları
Projenin tüm kaynak kodlarına, arayüz bileşenlerine ve Access veritabanı dosyasına doğrudan erişin.
Proje Dosyasını İndirSistem Altyapısı ve Teknik Bileşenler
Uygulama, dosya tabanlı ve taşınabilir yapısıyla öne çıkan yerel bir veritabanı altyapısıyla çalışmaktadır:
OleDbConnection Sağlayıcısı
Çekirdek Rezervasyon Motoru Kaynak Kodları
rezervasyon.aspx.cs dosyasının arka plan (Code-Behind) mantığı ve algoritmaları aşağıda listelenmiştir:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using System.Data.OleDb;
namespace Otel
{
public partial class rezervasyon : System.Web.UI.Page
{
int sayac = 1;
protected void Page_Load(object sender, EventArgs e)
{
// Kullanıcının mevcut rezervasyon verilerini yeniler
rezer();
}
protected void DropDownList2_SelectedIndexChanged(object sender, EventArgs e)
{
// Çocuk sayısı değişim tetikleyicisi
}
protected void Calendar1_SelectionChanged(object sender, EventArgs e)
{
// Giriş tarihini TextBox bileşenine aktarır
TextBox1.Text = this.Calendar1.SelectedDate.ToShortDateString();
}
protected void Calendar2_SelectionChanged(object sender, EventArgs e)
{
// Çıkış tarihini TextBox bileşenine aktarır
TextBox2.Text = this.Calendar2.SelectedDate.ToShortDateString();
}
void rezer()
{
ListBox3.Items.Clear();
ListBox3.Items.Add(">>>>> Mevcut Rezervasyonlarınız <<<<
Kod Analizi ve Refaktör Önerileri
1. Güvenlik: SQL Injection Riski
Sorgulardaki string birleştirme metodu ciddi güvenlik açığı üretir. Veritabanı güvenliği için dinamik sorgular yerine kesinlikle OleDbParameter kullanılmalıdır.
2. Algoritma: Ay Değişimlerinde Tarih Sınırı
Gün farkı takvim gününün integer değerinden parse edilmektedir. Bu durum, rezervasyon ayları sarktığında projenin kırılmasına yol açar. Fark hesabı TimeSpan ve gün ilerlemeleri .AddDays() ile yönetilmelidir.
3. Altyapı: Bağlantı Havuzu Yönetimi
Olası runtime hatalarında SQL bağlantısının havuzda açık kalıp sunucuyu şişirmemesi adına bağlantı blokları C# using() yapıları içine alınarak Garbage Collector'a bırakılmalıdır.

