Category Archives: ASP.Net

Web uygulamalarında Mobile Cihaz Kontrolü

Geçtiğimiz günlerde jQuery ve Mobil Web Uygulamaları internet seminerinde, mobile web uygulamalarını nasıl geliştirebileceğimizi incelemeye çalışmıştık. Yapılan bu çalışmadan sonrasında Yazgelistir forumunda  Mobil telefon tespit ve yönlendirmebaşlığı altında, konu ile ilgili bir soru sorulmuştu. Bu yazımda söz konusu problemi nasıl çözebileceğimiz inceleyeceğiz.

Problem çözüm için yeni bir solution oluşturalım. Oluşturmuş olduğumuz solution ‘na ASP.Net WebForm(uygulamanın kolay anlaşılması açısından ASP.Net WebForm kullanacağız.) ve Class Library projeleri oluşturalım. Class Library projesi içerisine IsMobileWeb isimli bir sınıf ekleyelim. Eklemiş olduğumuz sınıfı, Web uygulamasından istem yapan cihazın Mobile olup/olmadığını kontrol edecektir.

 namespace IsMobileDevices.MobileWebLib
{
using System.Web;
    public class IsMobileWeb
{
public static bool IsMobileBrowser()
{
///Geçerli HttpContext nesnesini aldık.
HttpContext context = HttpContext.Current;///HttpContext nesnesi üzerinde bulunan fonksiyon kullanımı
///Bazen çalışmıyor.
if (context.Request.Browser.IsMobileDevice)
{
return true;
}///Uygulamadan isteme yapaman cihazın HTTP_X_WAP_PROFILE
///Header bilgisini kontrolü yapılıyor.
if (context.Request.ServerVariables[“HTTP_X_WAP_PROFILE”] != null)
{
return true;
}

///Web isteminde HTTP_ACCEPT header var olup/olmadığı
///kontrol ediliyor.
///Eğer söz konusu header var ise wap olup/olmadığını
///kontrol ediyor.
if (context.Request.ServerVariables[“HTTP_ACCEPT”] != null &&
context.Request.ServerVariables[“HTTP_ACCEPT”]
.ToLower().Contains(“wap”))
{
return true;
}

///Son olarak HTTP_USER_AGENT header bilgisi kontrol ediliyor.
if (context.Request.ServerVariables[“HTTP_USER_AGENT”] != null)
{
///Piyasada bulunan bilinen ve kullanıcıların tükettiği
///tüm mobile cihazlar, dizi oluşturuyoruz.
string[] mobiles = new[]
{
“midp”, “j2me”, “avant”, “docomo”,
“novarra”, “palmos”, “palmsource”,
“240×320”, “opwv”, “chtml”,
“pda”, “windows ce”, “mmp/”,
“blackberry”, “mib/”, “symbian”,
“wireless”, “nokia”, “hand”, “mobi”,
“phone”, “cdm”, “up.b”, “audio”,
“SIE-“, “SEC-“, “samsung”, “HTC”,
“mot-“, “mitsu”, “sagem”, “sony”
, “alcatel”, “lg”, “eric”, “vx”,
“NEC”, “philips”, “mmm”, “xx”,
“panasonic”, “sharp”, “wap”, “sch”,
“rover”, “pocket”, “benq”, “java”,
“pt”, “pg”, “vox”, “amoi”,
“bird”, “compal”, “kg”, “voda”,
“sany”, “kdd”, “dbt”, “sendo”,
“sgh”, “gradi”, “jb”, “dddi”,
“moto”, “iphone”
};

foreach (string s in mobiles)
{
///Hazırladığımız dizi kullanarak HTTP_USER_AGENT
///header içerisinde bizim olabileceğini
///düşündüümüz mobile cihazları
///kontrol ediliyor.
if (context.Request.ServerVariables[“HTTP_USER_AGENT”]
.ToLower().Contains(s.ToLower()))
{
return true;
}
}
}

///Eğer bu noktaya kadar true dönemdi ise, Web istemi
///Mobile cihaz dışında istem yapılmıştır.
return false;
}
}
}

Web uygulamamıza mobile istemleri denetleyecek olan sınıfı oluşturduk. Hazırlamış olduğumuzu sınıfı, uygulama içerisine dahil ederek uygulamamız denetleyelim. Söz konusu denetim işlemini Web uygulamamızın “Session_Start”  olayında gerçekleştireceğiz.

global-mobile-web

Not: Söz konusu durumda ASP.Net MVC uygulamasında da kullanabilmektedir. Web uygulamaların “Session_Start”  olayı uygulamaya yapılan istemin başlangıcında kullanıcının uygulama oturum nesnesini oluşması aşamasıdır. Aynı şekilde ASP.Net MVC üzerinde de kullanıldığında routing değişiminde istediğiniz Web alanına yönlendirebilirsiniz.

Hazırlamış olduğumuzu uygulama örneği ve bundan sonra yayınlayacağım yazılarımda kullanacağım örnek uygulamaları sizlerin daha kolay ulaşmanız adına bitbucket üzerinde bir repository oluşturdum.

Bu yazımda ASP.Net ile geliştirdiğimiz uygulamalarda yapılan mobile istemleri nasıl anlayabileceğimiz incelemeye çalıştık.

Kaynak

http://www.codeproject.com

jQuery ile ASP.NET Uygulamaları Geliştirme Internet Semineri Notları

Geçtiğimiz günlerde gerçekleştirmiş olduğum jQuery ile ASP.NET Uygulamaları Geliştirme internet seminerinde ASP.Net uygulamalarında JQuery kullanımı ve kolaylıklarından bahsetmeye çalışmıştım. Bu yazımla internet seminerinde kullananmış olduğum sunumu sizler ile paylaşmaktayım.

JQuery, Web tabanlı uygulamamalarında JavaScript kod yazımını en makul hale getiren bir araçtır. Eğer Web uygulaması geliştiriyor ya da bu konuda kendinizi geliştirmek istiyorsanız, eğitim listenize JQuery de koymayı unutmayın.

 

jQuery ve Mobil Web Uygulamaları Internet Semineri Notları

Geçtiğimiz tarihlerde gerçekleştirmiş olduğum jQuery ve Mobil Web Uygulamaları internet Seminerinde Mobile Web konusunu incelemeye çalıştık. Seminerinde ASP.Net MVC ve JQuery araçlarını kullanarak Mobile Web uygulamaları konusunda bilgiler vermeye çalıştık.

İçerisinde bulunduğumuz Mobile Çılgınlık diyebileceğimiz dönemde, Web geliştiricisi olarak Mobile Web uygulamaları geliştirebilmekteyiz. Mobile Web uygulamaları sayesinde, internet ortamında kullanan mobile cihazlar ile sunmak istediğimiz ürün ya da bilgileri her yerden erişebiliriz. (Dünya’ ya her yerden ulaş… )

 

EnableEventValidation=”true” sorunu

bugün 2 saat zaman kaybına  neden olan hatayı ve çözümünü sizinle paylaşmak istiyorum.

Invalid postback or callback argument.  Event validation is enabled using <pages enableEventValidation=”true”/> in configuration or <%@ Page EnableEventValidation=”true” %> in a page.  For security purposes, this feature verifies that arguments to postback or callback events originate from the server control that originally rendered them.  If the data is valid and expected, use the ClientScriptManager.RegisterForEventValidation method in order to register the postback or callback data for validation.

internete gördüğüm kadar ile kılasik asp uygulamalarında da bu hata bulunmaktaymış.

Çözüm:

<%@ Page EnableEventValidation=”false” %>

Sayfanın page direktiflerine gelerek enableEventValidation özelliğini false yapmak. Bu tarihe kadar başka bir çözümünü bulamadım.

C# ile Code-behind daki JavaScript code Tetikleme

Merhaba arkadaşlar bu yazımda çok farklı konudan bahsetmek istiyorum. Asp.net programcılarım Code-behinde da yazmış oldukları javascript metodlarını c# ya da vb.net ile tetiklemek istemektedir. İşte bu yazımda bunu nasıl yapabileceğimizden bahsetmek istiyorum.

Şimdi ilk olarak bir Asp.net çalışması açalım ve aşağıdaki gibi bir tasarım yapalım.

image

Yukarındaki tasarımı oluşturduysak diğer aşamaya geçelim ve javascript metodumuzu yazalım.

image

Şimdi butonun click olayına girelim ve JavaScript metodunuzu çağıralım.

image

Yukarıda yazmış olduğunuz metodun yapısına bakalım.

Page.RegisterStartupScript ( “benzersiz anahtar adı”, “script”);

image

Görmüş olduğunuz gibi basit bir şekilde JavaScript kodu çağıdır. Söyle düşünelim ajax bir javaScript yaklaşımı olduğuna bakılırsa, bu metod bizim işimiz çok kolaylık sağlayacaktır.