Asp.Net

Asp.Net Pre-compiler 1.6

Microsoft Asp.Net’in en güzel özelliklerinden biri de yayınlanmadan önce derlenebiliyor olmasıdır. Bu sayede sitenizin kaynak kodları hem ftp’ye erişimi olan diğer kişilerce görüntülenemez/çalınamaz hem de web siteniz MSIL’ye derlendiğinden daha hızlı çalışır.

Yazdığımız bu program aslında Visual  Studio’da bulunan Build » Publish Web Site ile aynı görevi görüyor. Fakat taşınabilir ve çalışabilmesi için bilgisayarınızda sadece .Net Framework’ün yüklü olması yeterli.

Asp.Net Pre-compiler

Asp.Net Pre-compiler / Asp.Net Ön-derleyici

Programı kullanmak için öncelikle kodlamada kullandığınız Framework versiyonunu seçiyorsunuz. Sonra örneğin wwwroot klasörünüzde bulunan web sitenizin kaynak kodlarını source (kaynak) olarak gösteriyorsunuz. Destination (hedef) olarak ise herhangi bir boş klasör seçmeniz gerekir veya oluşturulabilecek bir klasör ismi de yazabiliyorsunuz. Open destination folder after compile (derleme sonunda hedef klasörü aç)’ı derleme esnasında da işaretleyebilirsiniz.

Compile (derle) butonuna bastıktan sonra kod bolluğunuza bağlı olarak 5-10 saniye içinde derleme tamamlanacaktır. Hedef klasörümüzde oluşan dosyalar bizim web sitemizin kök dizinine atmamız gereken dosyalardır. Bunların içindeki en önemlisi ise bin klasörü ve web.config dosyası. Bunlar sitenizin asp.net özel dosyalarının kodlarını içerir. O nedenle web sitenizin aspx kodlarında yapacağınız bir değişiklikten sonra derlemeden sonra oluşan bin klasörünü güncellemeniz yeterli olacaktır (diğer dosyaların güncellenmediğini varsayarsak).

Herhangi bir sorunuz olursa çekinmeden sorabilirsiniz.
Programı kaynak kodlarıyla birlikte şuradan indirebilirsiniz (VS2010 projesidir, exe için bin/Debug klasörüne bakın).

C# ile metin sıralamalarını değiştirme

Veritabanından çektiğim kategori navigasyonu için tekrardan veritabanı işlemleri yapmamak adına pratik bir fonksiyon yazayım dedim. Fonksiyon Ürünler » Çikolatalar » Alpella gibi bir metinsel ifadeyi Alpella « Çikolatalar « Ürünler şekline çevirmekte kullanılabilir. Stackoverflow’da sorduğum soruya daha kısa alternatif ise Linq sınıfını kullanan bir kod tavsiye edildi. Onu da altta veriyorum.


public static string ReverseString(string input, string separator, string outSeparator)
{
string result = String.Empty;
string[] temp = Regex.Split(input, separator, RegexOptions.IgnoreCase);
Array.Reverse(temp);
for (int i = 0; i < temp.Length; i++)
{
result += temp[i] + " " + outSeparator + " ";
}
return result;
}

Not: System.Text.RegularExpressions sınıfını kullanır.

Stackoverflow alternatifi:


public static string ReverseString(string input, string separator, string outSeparator)
{
return String.Join(" " + outSeparator + " ", input.Split(new[] { " " + separator + " " }, StringSplitOptions.RemoveEmptyEntries).Reverse().ToArray());
}

Not: System.Linq sınıfını kullanır.

Ayrıca stackoverflow tavsiyelerine göre fonksiyonu StringBuilder ile kullanmak uzun metinsel ifadelerde performans sağlayacaktır:


public static string ReverseString(string input, string separator, string outSeparator)
{
StringBuilder result = new StringBuilder();
string[] temp = Regex.Split(input, separator, RegexOptions.IgnoreCase);
Array.Reverse(temp);
for (int i = 0; i < temp.Length; i++)
{
result.Append(temp[i] + " " + outSeparator + " ");
}
return result.ToString();
}

SQL Server bağlantı zaman aşımı süresi doldu hatası

Asp.Net’te açılan bağlantıların kapatılmamasından oluşan hatayı bağlantı açmadan önce aşağıdaki iki seçenekten biri ile düzeltebilirsiniz. Bağlantı havuzunu temizlemek için bu satırı

  • SqlConnection.ClearPool( SqlConnectionObject );
  • SqlConnection.ClearAllPools();

Dikkat etmeniz gereken şey bu satırı kullanmanız halinde nerede kullandığınıza bağlı olarak geçerli bağlantıların da sonlandırılabilme tehlikesidir. En zararsız kullanım için bağlantıyı açarken ilk önce normal olarak açmaya denemeli ve hata oluşması halinde havuzları temizlemelisiniz.

Tam hata:

Zaman aşımı süresi doldu. Havuza bağlantı elde edilemeden zaman aşımı süresi doldu. Bu, tüm havuz bağlantıları kullanıldığı ve en büyük havuz boyutuna erişildiği için oluşmuş olabilir.

İlgili bağlantılar:

Button click event runs twice in Asp.net

I had encountered with this problem twice. Solution of the problem is simple:

If your aspx page has AutoEventWireup = “true” property and the button has onclick = “Upload_Click” property and at the same time the procedure has Handles Upload.Click that will cause code run twice when the button is clicked.

Solution: Set AutoEventWireup = “false” and remove onclick property from the button or leave AutoEventWireup = “true” and remove Handles Upload.Click from the related event’s procedure.

Asp.net’te buton tıklama olayı iki defa çalışıyor

Bu problemle iki defa karşılaşmıştım. Sorunun çozümü gayet basit:

Eğer aspx sayfanızda AutoEventWireup=”true” olarak belirtilmişse se butonunuzda onclick=”Upload_Click” yordamını çağırma varsa ve aynı zamanda Upload_Click yordamında da Handles Upload.Click eki varsa bu butonunuza iki defa basılmış gibi bir sonuç verecektir.

Çözüm: AutoEventWireup=”false” yapıp onclick özelliğini silin ya da AutoEventWireup=”true” iken ilgili yordamdaki Handles Upload.Click olayını silin.

1 2  Scroll to top