Filed under: Yazılım
Ocak 14th, 2009
KOD:
MailMessage mail = new MailMessage();
public void MailSend(string body, string subject, string strTO)
{
mail = new MailMessage();
mail.To.Add(strTO);
mail.Subject = subject;
mail.From = new MailAddress("from@from.com");
mail.Body = body;
SmtpClient smtp = new SmtpClient("smtp.server.address");
smtp.UseDefaultCredentials = true;
try
{
smtp.Send(mail);
}
catch (Exception ex)
{
//Error
}
}
Tags: .NeT, Mail, vs.net
Posted in .NeT 2008 | No Comments »
Aralık 28th, 2008
GAC Util de bulunan DLL’lerinizi assembly klasörünüzden başka bir klasöre çıkarmak, başka bir makinaya taşımak veya kopyalamak, normal klasörlerdeki benzer işlemlere nazaran çok daha zordur. Herhangi bir dll in üzerine sağ tıklarsanız şekildeki gibi bir ekranla karşılaşırsınız.

assembly
şekilde de görüldüğü üzere istediğiniz işlemleri bulamayabilirsiniz. CTRL+c ve CTRL+x i denediğinizi görür gibi oluyorum. Fakat bu işlem de işinize yaramayacaktır. Assembly klasörünü başka bir makinaya komple kopyalarsanız, bu işlemle de sadece o makinanın dll lerini kopyalamış olursunuz. Uzun lafın kısası bu iş kolayca olmuyor
Uzun Yol ile :
- Bir adet command prompt açın,
- c:\\Windows\Assembly\GAC veya c:\\Windows\Assembly\GAC_MSIL klasörlerinden birinde istediğiniz DLL dosyasını bulun
- Örneğin xyz.dll dosyasını, Gac_MSIL klasöründe bulduk. c:\\Windows\Assembly\GAC_MSIL\xyz\ dizinine gidin, Buradaki xyz dizini, dll adıyla birebir aynıdır.
- Daha sonra aşağıdaki şekildeki gibi xyz.dll dosyası Assembly klasöründe bulunur ve dosyanın özelliklerine gidilir.

- Yukarıdaki şekilde altı çizili versiyon ve public key token bilgilerindeki “versiyon__publickeytoken” şeklindeki bir alt klasöre geçilir. Resimdeki DLL için örnek verecek olursak klasör adı : 10.0.4504.0__31bf3856ad364e35 olacaktır.
- Son olarak da bu klasör içerisinde “copy xyz.dll c:\xyz.dll” komutula dosyamızı istediğimiz yere kopyalayabiliriz.
Gözünüz korktu di mi
Düşünün bunlardan en az 200 tanesinin yedeğini almak istediğinizi,
Çözüm Kısa yolumuz :
- Basit olarak hazırladığım şu kodu kullanabilirsiniz :
FileStream fs = new FileStream("c:\\dllisimleri.txt", FileMode.Open, FileAccess.Read);
StreamReader sr = new StreamReader(fs);
string arguments;
string read = sr.ReadLine().Trim();
string read1 = sr.ReadLine().Trim();
while (read != null)
{
Console.WriteLine(read);
try
{
File.Copy("c:\\\\WINDOWS\\assembly\\Gac_MSIL\\" + read + "\\"+read1+"\\" + read + ".DLL", "C:\\\\DLL\\" + read + ".dll");
read = sr.ReadLine().Trim();
read1 = sr.ReadLine().Trim();
}
catch (Exception ex)
{
break;
}
}
- dllisimleri.txt dosyasının içeriğini de aşağıdaki gibi yaparsanız, istediğiniz dosyaları hemen alabilirsiniz;
xyz1
1.0.0.0__916a267ef328a0b9
xyz2
1.0.0.0__b715a15ad90d37db
xyz3
1.0.0.0__f4df43ff1813a7d4
xyz4
1.0.0.0__71e9bce111e9429c
buradaki xyz, kopyalamak istediğiniz dll dosyalarının ismi (.dll olmadan),
1.0.0.0__916a267ef328a0b9 bilgilerini de yukarıda anlattığım gibi hazırlayabilirsiniz.
- Başka bir kolaylık olarak Gac_MSIL klasörüne girdiğinizde dir /p, komutuyla command prompt dan tüm isimleri tarayabilirsiniz. Bu sayede tek tek kopyalamak zorunda kalmaz, rahatınıza bakarsınız…
Tags: command prompt, GAC, Global Assembly Cache, vs.net
Posted in .NeT 2008, Sharepoint | 2 Comments »
Aralık 16th, 2008
Veritabanına kayıt eklerken, bazı dış mahlukatlar tarafından saldırıya uğramak istemiyorsanız (SQL Injection), ekleme yaptığınız değerleri bir kontrolden geçirmenizde fayda var. En kolay yol olarak da size HTMLEncode metodunu önerebilirim. Kullanımı
string veri= HttpUtility.HtmlEncode(TextBox1.Text);
şeklindedir ve ilgili saldırılardan uzak yaşam sürmenizi sağlayacaktır.
Tags: .NeT, HtmlEncode
Posted in .NeT 2008 | No Comments »
Aralık 16th, 2008
Makinenin iç IP’sini almak için;
HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"];
ya da ;
HttpContext.Current.Request.UserHostAddress;
Makinenin dış IP’sini almak için ise;
HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"];
komutlarını kullanabilirsiniz.
Tags: .NeT, IP
Posted in .NeT 2008 | 2 Comments »
Aralık 15th, 2008
Eğer Kullandığınız TextBox’ ın propertieslerinden türünü MultiLine yaparsanız, İlgili TextBox’ın MaxLength kontrolü artık çalışmayacaktır.
Çözüm olarak bir adet RegularExpressionValidator kullanabilirsiniz. ControlToValidate özelliğini ilgili TextBox’a ayarlayın.
Expression olarak da ;
^[\s\S]{0,200}$
yazarsanız, MAX özelliğini 200′e ayarlamış olursunuz. Bu ifadedeki 200 sayısını istediğiniz bir sayıyla değiştirerek maximum karakter sayısını belirleyebilirsiniz.
Tags: .NeT, Regular Expression
Posted in .NeT 2008 | No Comments »
Aralık 13th, 2008
BizTalk 2009 Beta hakkında güzel bir yazı…
Tags: BizTalk, BizTalk Server
Posted in BizTalk | No Comments »
Aralık 12th, 2008
Kullanmakta olduğunuz DropDownList’lerde mutlaka bir seçimin yapılmasını istiyorsanız, yapmanız gerekenler;
Öncelikle TextBox’lardaki gibi RequiredFieldValidator’u basitçe kullanırsanız, maalesef benim yaptığım gibi, güzelcene “lan nie olmuo bu” diye afallarsınız
Bu durumda bizim kullanmamız gereken RequiredFieldValidator’un “InitialValue” özelliği…
Şekilli olarak basitçe anlatmam gerekirse;
- İlk önce şekildeki gibi bir ekran hazırladım ben, sizin mutlaka buna benzer bir görüntünüz mevcuttur zaten elinizde

- Daha sonra, ilgili RequiredFieldValidatorumuzun “InitialValue” Özelliğini, DropDownList’ imizin 0. itemının value’sına eşitliyoruz. Bu sayede kontrolümüz default değerin ne olduğunu anlayabilecek ve bu değer değişmemişse seçilmediğine dair bir uyarı verecektir. Aşağıdaki şekilde gerekli properties ayarı ve kaynak kodu bulabilirsiniz.


Kaynak Kod Ekran Görüntüsü:
Kaynak Kod :
ASPX Dosyası :
<%@ Page Language=”C#” AutoEventWireup=”true” CodeBehind=”Default.aspx.cs” Inherits=”WebApplication1._Default” %>
<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN” “http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd”>
<html xmlns=”http://www.w3.org/1999/xhtml”>
<head runat=”server”>
<title>Untitled Page</title>
</head>
<body>
<form id=”form1″ runat=”server”>
<div>
<asp:DropDownList ID=”DropDownList1″ runat=”server”>
<asp:ListItem Selected=”True” Text=”-Seçiniz-” Value=”SECILMEDI”></asp:ListItem>
<asp:ListItem Text=”seç 1″ Value=”SEC1″></asp:ListItem>
<asp:ListItem Text=”seç 2″ Value=”SEC2″></asp:ListItem>
</asp:DropDownList>
<asp:RequiredFieldValidator ID=”RequiredFieldValidator1″ runat=”server”
ControlToValidate=”DropDownList1″ ErrorMessage=”Lütfen Seçim Yapın…”
InitialValue=”SECILMEDI”></asp:RequiredFieldValidator>
<br />
<br />
<asp:Button ID=”Button1″ runat=”server” Text=”Button” />
</div>
</form>
</body>
</html>
Son olarak sayfayı test edersek,

şeklinde uyarımızı alabiliriz…
Tags: .NeT, DropDownList, RequiredFieldValidator
Posted in .NeT 2008 | No Comments »
Aralık 9th, 2008
“Bana arkadaşını söyle sana kim olduğunu söyliyeyim” derler ya,
“Bana .NeT settings lerini söyle sana kim olduğunu söyliyeyim” derim
.Net de kullandığım font tipi : Consolos
.NeT theme : the Dark Side of Visual Studio
ilgili linklerden gerekli kurulumları gerçekleştirebilirsiniz. Kurulumlar sonrasında .NeT görünümünüz aşağıdaki gibi olacaktır;

Tags: .NeT, Font, Theme
Posted in .NeT 2008, Bilgisayar | No Comments »
Aralık 9th, 2008
.Net üzerinde şekildeki gibi kod geliştiriyorken,

ALT + Left SHIFT + ENTER tuşlarıyla, kod ekranını full screen yapabilirsiniz.

Tags: .NeT, vs.net
Posted in .NeT 2008, Bilgisayar | No Comments »
Aralık 2nd, 2008
Normalde kod yazarken, belirli bir kısmı taramak istediğimizde, doğal olarak aşağıdaki gibi seçilecektir,

Ama “Alt” tuşuna basılı tutarak aşağıdaki gibi, blok olarak seçim gerçekleştirebilirsiniz.

Tags: .NeT, Block Selection, blok seçim, vs.net
Posted in .NeT 2008, Bilgisayar | Yorumlar Kapalı