Skip to main content

ASP .NET İpuçları

“Oluşan Hatayı Mail İle Kendinize Gönderin”

Çalışan ASP .NET uygulamanızda hata oluştuğu zaman bu hatadan anında haberdar olmak için aşağıdaki kod parçası işinizi görecektir. Bu kodu Global.asax dosyasında Application_Error event’ına yazmalısınız.

protected void Application_Error(Object sender, EventArgs e)
{
Exception ex = Server.GetLastError().GetBaseException();
string err = "Hata Oluştu !"
+ System.Environment.NewLine
+ "Hata: " + Request.Url.ToString()
+ System.Environment.NewLine
+ "Hata Mesajı: " + ex.Message.ToString()
+ System.Environment.NewLine
+ "Stack Trace: " + ex.StackTrace.ToString();

// Server.ClearError();

System.Web.Mail.MailMessage mm = new System.Web.Mail.MailMessage();
mm.To = "mgedik@verivizyon.com";
mm.From = " mgedik@verivizyon.com ";
mm.Subject = "Sistemde Hata !";
mm.Body = err;

try
{
System.Web.Mail.SmtpMail.SmtpServer = "mail.verivizyon.com";
System.Web.Mail.SmtpMail.Send(mm);
}
catch
{
}
}


“TextBox’a Girilen Değerin Rakam Olduğunu Garantileyin”

Bir TextBox nesneniz var ve siz bu alana sadece rakam girilebilmesini istiyorsunuz. O zaman aşağıdaki vbscipt kodu işinize çok yarayacaktır.

[script language="vbscript"]

function ParseInt(StringM)
dim Reg, MatchInt, IntMatch, ParsedString
Set Reg = CreateObject("VBScript.RegExp")
Reg.Global = True
Reg.IgnoreCase = True
Reg.Multiline = True
Reg.Pattern = "\d"
set MatchInt = Reg.Execute(StringM)

for each IntMatch in MatchInt
ParsedString = ParsedString & IntMatch.value
next

ParseInt = ParsedString
end function

‘Bu fonksiyonu şu şekilde çağırabiliriz.
‘(tbSayi nesnesinin “onkeyup” event’ında Validate()’i çağırmalısınız.)

function Validate()
Form1.tbSayi.value = ParseInt(Form1.tbSayi.value)
end function

[/script]


“Komut Satırı Uygulamalarını Gizlice Çalıştırarak Çıktısını Ekrana Yazdırın”

Komut satırı uygulamalarını gizli bir şekilde çalıştırarak, çıktısını web tarayıcısında göstermek gibi bir ihtiyacınız doğarsa ASP .NET size bu konuda da yardımcı oluyor. Belki çıktıyı web tarayıcıda göstermek çok işe yaramayabilir ama bunu bir string değişkenine atayıp, üzerinde biraz çalışarak işinize yarayabilecek verilere erişebilirsiniz.

public string ExecuteApp(string cmd)
{
string result = "";
string output = "";
string errors = "";

// çıktı ve hata mesajları için tempfilecollection oluşturuluyor
System.CodeDom.Compiler.TempFileCollection tf = new System.CodeDom.Compiler.TempFileCollection();

// komut çalıştırılıyor
System.CodeDom.Compiler.Executor.ExecWaitWithCapture(cmd, tf, ref output, ref errors);

// komutun çalışması sonucu dönen içerik okunuyor
System.IO.StreamReader sr = System.IO.File.OpenText(output);
result = sr.ReadToEnd();
sr.Close();

// geçici dosyalar siliniyor
System.IO.File.Delete(output);
System.IO.File.Delete(errors);

return result;
}


Bu metodu şu şekilde çağırabilirsiniz:

Response.Write(ExecuteApp("netstat -a -n"));
Response.Write(ExecuteApp("ipconfig"));


“Sunucu Taraflı Kodunuzda Nesnelerinize Focus’lanın”

Bildiğiniz gibi ASP .NET Code Behind’da istemci taraflı script kodlarımızı çalıştırabilmemize imkan sağlıyor. Bundan faydalanarak yazabileceğimiz basit bir metot ile sunucu taraflı kodumuzda nesnelerimize kolaylıkla konumlanabiliriz.

private void Page_Load(object sender, System.EventArgs e)
{
if(! IsPostBack) this.SetFocus(TextBox1);
}

private void SetFocus(System.Web.UI.Control ctrl)
{
string s = "[script language = Javascript]";
s += "document.getElementById('" + ctrl.ID + "').focus();";
s += "[/script]";

Page.RegisterStartupScript("Focus", s);
}

private void Button1_Click(object sender, System.EventArgs e)
{
SetFocus(TextBox2);
}

Comments

Popular posts from this blog

Oracle Forms ile Web Servislerine Erişim

Geçtiğimiz günlerde çalıştığım şirket, başka bir yazılım şirketine teknolojik destek vermek için beni görevlendirdi. Oracle Forms Developer kullanılarak geliştirilmiş bir hastane otomasyonun bazı web servislerini kullanması gerekiyordu. 3-4 günlük bir çalışmanın ardından görevimi başarıyla tamamladım çok şükür. Yalnız gerçekten bu çok kolay olmadı. Çünkü Oracle Forms direkt olarak web servislerine erişmek için bir teknoloji barındırmıyordu bünyesinde. Yaptığım araştırmalar sonucunda Oracle Forms'un Java class'larını import edip, kullanabildiğini gördüm. İşte bu durumda problemi çözmüş olduğumu hissettim. Ama yinede beni bekliyen engeller vardı. Bundan emindim çünkü hiç bilmediğim bir ortamda bilmediğim kodları yazacaktım. Ayrıca java konusunda bilgi sahibi olsamda çok tecrübeli değildim ve uzun zamandır java ile ilgilenmemiştim. Ve düşündüğüm gibi birçok problem çıktı karşıma. Ama yinede bu problemleri tek tek aşıp çözüme gitmeyi başardım. Bir Murphy kanunu: "Eğer çıkması ...

FreeMind: Özgür Yazılım Dünyasından Zihin Özgürleştirme Hareketi

Bu geleneksel bir yazı değildir. İnsan zihni, bilişsel bilim, zihin haritaları, psikoloji, beyin fırtınası, bilgi temsilleri, yazılım geliştirme, epistemoloji, metafizik, karmaşıklıkla başa çıkmak, Java ve özgür yazılımın faydaları ilginizi çekiyorsa buyrun okuyun. Üç Yıl Önce Türkiye´de Bir Yer Aralık 2002. Soğuk ve yağmurlu bir gün. Dostum Kıvılcım Hindistan ile Harbiye´de buluşuyor ve Askeri Müze´ye, inet-tr '02 etkinliğine gidiyoruz. İlk girdiğimiz salondaki masada tanıdık ve yabancı yüzler bir arada. Tanıdık yüz: Görkem Çetin. İlk kez karşılaştığımız adam ise Eran Sezgin. Görkem Çetin panel konusuna dair kısa bir konuşma yaptıktan sonra sözü Eran Sezgin´e bırakıyor ve bir sunum fırtınası başlıyor. Kim bu adam? Bir asker. Aynı zamanda bir programcı. Donanmadan. Bir deniz aşığı. Özgür yazılımdan bahsediyor. Beni şaşırtan ise bunlardan hiçbiri değil. Karşımda bir sunum fırtınası var! Hayır, PowerPoint ya da OpenOffice.org veya ona benzer bir programla yapılmış, bol efektli, sesl...

Random number generation using C++ TR1

Random number generation using C++ TR1 Overview This article explains how to use the random number generation facilities in C++ using the TR1 (C++ Standards Committee Technical Report 1 ) extensions. We will cover basic uniform random number generation as well as generating samples from common probability distributions: Bernoulli, binomial, exponential, gamma, geometric, normal, and Poisson. We will point out a few things to watch out for with specific distributions such as parameterization conventions. Finally we will indicate how to generate from probability distributions not directly supported in the TR1 such as Cauchy, chi-squared, and Student t. Support for TR1 extensions in Visual Studio 2008 is added as a feature pack . Other implementations include the Boost and Dinkumware . GCC added experimental support for C++ TR1 in version 4.3. The code samples in this article use fully qualified namespaces for clarity. You could make your code easier to read by adding a few using stat...