Osman KURT

Kendime Not

C# Asp.Net'te URL'yi yeni Pencerede Açmak

Genelde C# ile kodlama yaparken yeni bir web sayfasında yönlendirme yapmak gerektiğinde aşağıdaki kodu kullanırız:

Response.Redirect("www.osmankurt.net");

Ama bu şekilde bir kullanımda sayfa aynı pencerede açılacağı için önceki sayfamız kaybolur. Eğer yeni navigasyon penceresiyle birlikte kaynak sayfasınında çalışmasını istiyorsanız o zaman aşağıdaki biçimde bir kullanım sorununuzu çözecektir.

string navigateURL = "www.osmankurt.net";
string target="_blank";
string windowProperties="status=no, menubar=yes, toolbar=yes";
string scriptText="window.open('"+navigateURL+"','"+target+"','"+windowProperties+"')";

Page.ClientScript.RegisterStartupScript(this.GetType(),"eşsizAnahtar",scriptText ,true);

navigateURL: Açmak istediğiniz sayfanız yolu
target: Açılacak sayfanın pencere biçimini belirler.
windowProperties: Açılacak pencerinin özellikleri (yes=göster / no=gösterme)

Böylece C# code behind sayfasından yeni sayfanın farklı bir pencerede açılmasını sağlayabiliriz.

Sonraki yazılarımda görüşmek üzere;

Osman KURT

Yazılım Geliştirici ve Grafiker

Asp.Net ve URL İşlemleri

Arakadaşlar geçen gün çalıştığım firmada ki çok sevdiğim bir abim kendisinin yöneticisi olduğu bir web sayfasına ait tam 4000 (dort bin) adet sub domain açıcağını söyledi. E tabi sizde takdir edersiniz ki 4000 tane sub domaini açmak her babayiğidin harcı değil yani :). Sağolsun kendisi yardıma bizi layık görmüş bu konu hakkında fikir üretmiş bunların yapılabilirliğini ve yapabilirmiyim diye bana geldi. Bende düşündükleri derya deniz olan bu abimin bazı isteklerinin (baya fazla) yapılabileceğini ve yapabileceğimi söyledim. Tabi kendi işimi aksatmadan :)

Neyse işe ilk olarak bir kolay portal oluşturarak başladım. Sonra bu sub domainlerin google da ilk sıraları zorlaması için portal içine dinamik bir met tag yönetimi yaptım. Bu dinamik meta tag yönetiminin kodlarınıda başka bir yazıda paylaşıcam elbet sizinle. Daha sonra anasayfa kısmında başka bir arkadaşımında yardımıyla asıl web sayfasının veritabanına bağlanarak ordan random bir şekilde 20 adet ürün çektim. Asıl önemli kısım bunları yaparken en kolay en basit ve en kısa zaman da yapmaktı bunun içinde oluşturduğumuz portalın image dosyalarından tutun da css dosyasına kadar olan bütün dosyalarını ana dizinde tuttuk yani açtığımız bütün sub domainler aynı yerden image dosyalarını ve css doayalarını çekiyor. Buda bize çok fazla zaman kazandırdı. Bu olayı yaparken yazılımcı olduğum için bişeyler ürettiğim için gerçekten mutl oldum. Yazılımın tadına vardım. Normalde yaptıığım şey çok küçük bişey ama ortaya bişey koymak gerçekten küçükte olsa bir yazılımcıyı mutlu edebiliyormuş.

Gelelim asıl konuya benim takıldığım bir nokta url yönetimiydi.O da nasıl bişey, açtığımız her subdomainin ismi yaptığımız sitelerde bize lazım olacaktı, metatag'larda kullanmak için. İnternette baya bişey araştırdım. Sonunda buldum. Meğer neler varmış ya :). Şimdi bu bulduğum kod parçacıklarından bazılarını sinle paylaşmak istedim. Çünkü benim dışında sizinde işinize yarayacağına inanıyorum.

Bu işlemlerden bazıları;
 
//root dizini verir.
Response.Write("root dizin : " + HttpContext.Current.Request.Url.Host.ToString());
//sonraki dizinler
Response.Write("sonraki dizin : " + HttpContext.Current.Request.Url.AbsolutePath.ToString());
//Full adres satırı
Response.Write("Full adres : " + HttpContext.Current.Request.Url.AbsoluteUri.ToString());
//Portlu Full adres satırı
Response.Write("Portlu Full adres : " + HttpContext.Current.Request.Url.OriginalString.ToString());
//Portu
Response.Write("Portu : " + HttpContext.Current.Request.Url.Port.ToString());
//Query
Response.Write("Query :" + HttpContext.Current.Request.Url.Query.ToString());
//http
Response.Write("http : " + HttpContext.Current.Request.Url.Scheme.ToString());
QueryString almak için aynı zamanda Request.QueryString["id"] şeklinde bir kullanımda gerçekleştirebiliriz.

Osman KURT
Yazılım Uzmanı