19 Temmuz 2012 Perşembe

app.config dosyasını dinamik olarak yaratma / güncelleme

Bir yazılım geliştirdiniz ve sürekli güncellemeler yayınlıyorsunuz. İşin kötü tarafı sadece EXE yi güncellemekle iş bitmiyor, onla birlikte app.config ( yani EXE Dosyasının Config Dosyası ) da göncellenmesi gerekebilir. Böyle bir durumda Hem exe yi hemde Exe.Config dosyasını yayınlamanız gerekecek. 

Bunu daha kolayı , EXE otomatik olarak Exe.Config dosyasını güncelleye bilir. Bunun için yapmanız gereken;
Resource.resx içinde bir String yaratın ve o stringin value bölümüne projeniz içinde bulunan app.config içeriğini kopyalayın.

Daha sonra projenizin Program.cs Kısmına şu eklentiyi yapın ;

static void Main()
        {           
            String _app = Properties.Resources.app; // app Resource içindeki Stringimizin adı

            System.IO.TextWriter _dosya = new System.IO.StreamWriter("CRM.exe.config"); // EXEnizin Config Dosyası Adı
            _dosya.Write(_app);
            _dosya.Close();

            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.Run(new RibbonForm1());
        }

Böylece Exe her açılışta otomatik olarak config dosyasını güncelleyecektir. Config dosyasını yayınlamaya gerek kalmadan kendiniz güncellemiş olacaksınız.

12 Ocak 2012 Perşembe

WebUserControl Altından Default.aspx deki Kodu Çağırma

Selamlar tüm aspx kullanıcıları WebUserControlle işleri olmuştur. WebUserControl içine yerleştirdiğiniz bir butonun CodeBihend ile AnaSayfa içindeki bir Fonksiyonun nasıl çağrılacağını göstereceğim.
Default.aspx için codebehind foksuyonumuz;
public void ShowSepetBilgisi()
{
DataTable _tablo = (DataTable)Session["KULLANICISEPETI"];
lbSepetBilgisi.Text = "Şuan sepetinizde " + _tablo.Rows.Count.ToString() + " ürün bulunmakta.";
lbSepetBilgisi.Text += "ALPER";
}

WebUserControl içindeki Butonumuzun code-behind fonksiyonu ;
protected void ImageButton1_Click(object sender, ImageClickEventArgs e)
{
DataTable _tablo = (DataTable)Session["KULLANICISEPETI"];
DataRow _row = _tablo.NewRow();
_row["urunid"] = lbUrunID.Text;
_row["adet"] = ddlAdet.SelectedValue;
_tablo.Rows.Add(_row);
Session["KULLANICISEPETI"] = _tablo;
ddlAdet.SelectedIndex = 0;

this.Page.GetType().InvokeMember("ShowSepetBilgisi",
System.Reflection.BindingFlags.InvokeMethod, null, this.Page, new object[] {});
}

Burada gördüğünüz ;
this.Page.GetType().InvokeMember("ShowSepetBilgisi",
System.Reflection.BindingFlags.InvokeMethod, null, this.Page, new object[] {});


komutuyla Parent Page ( Default.aspx ) deki ShowSepetBilgisi fonksiyonumuzu Çağırabiliriz.

Mutlu Kodlar!