Pages

İpucu!<HealthMonitorying >

<healthMonitoring Enabled=”True ”> web.config de bu ayarı yaparak tüm unhandled exception lar için eventlog ayarlarını yapmış olursunuz.EventMapping,Providers ve rules tanımlamanız gerekiyor. Aşağıda iki örneği var bu ayarların.

image 

Bazı durumlarda bu ayarlara <BufferModes> ve <profiles> tagları da eklenebilir.

Not:System.Web.Management.BufferedWebEventProvider satırını unutmayın.

C# ile ekran görüntüsü alma

Merhabalar Şimdi C# ile ekran görüntüsü almak için neler gerekli aşağıda onu inceleyelim.


//Graphichs nesnesi oluştur.
Graphics Grf;
//bitmap tipinde bir nesne oluştur. ve özelliklerini ayarla(boyutları ve formatı)
Bitmap Ekran = new Bitmap(Screen.PrimaryScreen.Bounds.Width, Screen.PrimaryScreen.Bounds.Height, PixelFormat.Format32bppPArgb);
//Grafik nesnemize bitmwp tipininde olacağını söylüyoruz.
Grf = Graphics.FromImage(Ekran);
//Ekran görüntüsünün kpyasını alıyoruz.
Grf.CopyFromScreen(Screen.PrimaryScreen.Bounds.X, Screen.PrimaryScreen.Bounds.Y, 0, 0, Screen.PrimaryScreen.Bounds.Size, CopyPixelOperation.SourceCopy);
//Görüntüyü istediğimiz bir yere kaydediyoruz.
Ekran.Save("C:\\İbrahim.jpg", System.Drawing.Imaging.ImageFormat.Jpeg);

C# Excel Grafik işlemleri ve Formüller

Bir önceki makalede C# ile excel e yazmak tan bahsetmiştik.Muhtemelen sadece yazmak yetmeyecek, yazdığımız metni biçimlendirmek isteyeceğiz. Excel’de renk atamak için System.Drawing.Color kullanılmaz bunun yerine renk önce tam sayıya dönüştürülmelidir. Bunun için rengi kırmızı tonu 65536, yeşil tonu 256 ile çarpılır ve mavi tonu ile toplanır. Bunun için basit bir fonksiyon kullanabiliriz

Color color;
color.B*256*256 + color.G*256 + color.R;

temel Font özlekkiklerini değiştirmek istiyorsak;
Range Bolge;
Bolge.Font.Name = "Courier New";
Bolge.Font.Italic = 1;
Bolge.Font.Size = 22f;
Bolge.Font.Bold = 1;

Metni hizalamak için;

Bolge.VerticalAlignment = XlVAlign.xlVAlignCenter;
Bolge.HorizontalAlignment = XlHAlign.xlHAlignCenter;

 

image

sayfada Grafik oluşturmak istersek.
aşağıdaki kodları yazmız gerekiyor.
ApplicationClass ve Workbook nesnelerimizi oluşturduktan sonraAşağıdaki kodu yazıyoruz.(ApplicationClass ve Workbook nesne örnekleri önceki makalemde var )


Worksheet Sayfa=(Worksheet)Calisma.Worksheets[1];Chart grafik1 = (Chart)ExcelVeri.Charts.Add(Missing, Missing, Missing, Missing);
            object Hucre_1 = Sayfa.Cells[1, 1];
            object Hucre_2 = Sayfa.Cells[1, 7];
            Range Alan = Sayfa.get_Range(Hucre_1, Hucre_2);
            grafik1.SetSourceData(Alan, XlRowCol.xlRows);
            grafik1.ChartType = XlChartType.xlPie;
            grafik1.Location(XlChartLocation.xlLocationAsObject, Sayfa.Name);

image excel sayfamıza eklediğimiz grafik.

C# Excel Veri yazma

C# ile excel programına erişirken Microsoft.Office.Interop.Excel; clasından faydalanıcaz.
şimdi bu sınıfın sağladığı bir kaç nesneden faydalanıyoruz.

  • Workbook: Microsoft Excel çalışma kitabını temsil eder.
  • Worksheet: Çalışma kitabı içindeki çalışma sayfalarını temsil eder
  • Range: Bir çalışma sayfasında bir veya daha fazla hücrenin oluşturduğu alanı temsil eder.

Şimdi gelelim excele veri yazma olayına ;Gerekli açıklamalar kod içinde yazmaktadır.

Not: Aşağıdaki kodda dikkat etmemiz gereken bir özellik var worksheet[1] diyerek ilk sayfayı aldık. Worksheet[0] demiyoruz. burda indexler 1 den başlar . o yazarsak program hata verecektir.

Not2: object Hücre1 = Sayfa.Cells[i, j]; burada Cells içinde i ve j de 1 den başlar 0 dan değil.

image

image İşte Excel dosyamız açılıyor ve içine yazılanlar.

Aşağıda ise Excel Dosyamızı kaydetmek için yazılmış kod parçası yine gerekli açıklmalar üstünde yazılmıştır.

image

 

 

.

SqlBulkCopy ile veri taşıma(Excel to SqlServer )

Merhaba arkadaşalar.Excel de bulunan verileri sqlservere taşıma ihtiyacı duyabiliriz bazı projelerde.Bu iş için SqlBulkCopy sınıfını kullanacağız ve verileri aktaracağız.SqlBulkCopy sınıfı, bir veri kaynağından SQL Server veritabanına veri transfer etmek istediğimizde; işimizi oldukça kolaylaştırır

 image image Şimdi Öncelikle verileri alacağımız excel dosyasını oluşturalım.ID,Kadi,Sifre Alanları nı oluşturalım ve birkaç veri girelim.
NOT: burda üç Stunu Seçip Sol üstte ki alana ExcelVeri yazarak tablo adımızı belirlemiş oluyoruz.

Hemen Arkasından Sqlserver de tablomuzu oluşturalım ve Tablomuzu da buradaki gibi yapılandıralım. 

Hemen Arkasından kodumuzu yazmadan önce
using System.Data.OleDb;
using System.Data.SqlClient;
Satırlarını ekleyelim kodumuza.

Şimdi Programımız çalıştıralım ve

image

SqlServerdimize  Exceldeki  verilerini yerleştirmiş olduk.
Şimdi Kodumuzu Görelim.Gerekli tüm açıklamalar kodumuzun üstünde yazılı.

image

Asp.NET Cookies(Çerez) Okuma yazma işlemi

Merhabalar, Cookilerin başlıca kullanım amacı clientta veri tutmaktır.Peki neden client ta veri tutalım yada nerelerde cookie kullanırız?
Sitemize kullanıcı bağlandığında kullanıcı hakkında almak istediğimiz bazı verileri herseferinde kullanıcıya sormamamak için.Örneğin: sitelerin login sayfalarında beni hatırla kısmı vardır. İşte burda bizim o kullanıcıyı hatırlamamız cookilerin yardımı ile olur.client da kullanıcı adı şifre vb.. bilgileri depolar, kullanıcı tekrar bağlandığında bu cookie leri okururz. bu sayede kullanıcıya tekrar adını ve şifresini sormaya gerek duymayız.

NOT:ASP.NET içerisinde cookie'lerle işlem yapabilmek için "System.Web" kütüphanesinin eklenmiş olması gerekir

Şimdi Önce cookie mizi oluşturalım.

// Cookie oluştur.
HttpCookie BizimCookie= new HttpCookie("ibrahim");   
// Formdan Gelen Bilgileri Anahtarlara Yaz.
BizimCookie["kullanici_adi"] = TextBox1.Text;    
// Cookienin Bitiş Süresi.
BizimCookie.Expires = DateTime.Now.AddDays(15);   
// Cookieyi Kaydet
Response.Cookies.Add(BizimCookie); 

Not:Cookileri web browserimizin cache ine atar.
Şimdi Daha önceden oluşturduğumuz cookie yi okuyalım

// Cookieyi Al.
HttpCookie CookieOku = Request.Cookies["ibrahim"];   
// Cookiedeki Değerlerle Formu Doldur.   
Label1.Text = CookieOku["kullanici_adi"];  
 

İpucu! Ajax Triggers kullanımı.

Bazen updatepanel içindeki objeleri dışarıdan tetiklemek isteriz.Aşağıdaki kod ile update panel içine yerleştirilen bir objenin updatepanel dışından tetiklenmesini sağlar.Bunun için Trigerr kullanılır.

<Triggers>
<asp:AsyncPostBackTrigger ControlID="Button1" />
</Triggers>

Burak Selim Şenyurt Almanac 2008

Merhaba Arkadaşlar Burak Hocamdan;

Almanac 2008 ile Burak Selim Şenyurt(MVP) tarafından yayımlanmış makalelerin tamamına, PDF formatında ulaşabilmeniz mümkündür.

http://www.bsenyurt.com/makale/almanac2008.rar

AJAX Extension kurulu olmayan sunucuda ASP.NET AJAX projesi çalıştırmak

 

Son zamanlarda gerek mail yoluyla, gerek yakın çevremden en fazla aldığım sorulardan ve sorunlardan biri de, yapılan bir ASP.NET AJAX projesinin bir sunucuya atıldığında çalışmamasıydı. Bildiğiniz gibi ASP.NET AJAX tam sürümü ile birlikte artık Global Assembly Cache'e atılan dll kütüphaneleri üzerinde çalışmaya başladı.(Yani artık Bin dizini içerisine referans olarak dll dosyaları eklenmiyor) Sorunu çözebilmek için bloglardan ve forumlardan biraz araştırma yaptım ama ilgili bir konu bulamadım. Birkaç denemeden sonra (sanırım) sorunu çözdüm. Yapılması gereken işlemler şunlar:
1- Öncelikli olarak ASP.NET AJAX projenize Bin dizini açın ve buraya referans olarak System.Web.Extensions.dll ve System.Web.Extensions.Design.dll dosyalarını ekleyin. Bu dll kütüphanelerini C:\Program Files\Microsoft ASP.NET\ASP.NET 2.0 AJAX Extensions\v1.0.61025 dizininden elde edebilirsiniz.
2- Uygulamanızın web.config dosyasında bazı değişiklikler yapmanız gerekecek. Buradaki bazı tanımlamalardaki type ifadeleri içerisinde yer alan System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 kısımlarındaki Version=1.0.61025.0, Culture=neutral, PublicKeyToken= 31bf3856ad364e35 ifadelerini kaldırmanız gerekecektir. Bu kısımlar, zaten dll dosyalarının Global Assembly Cache'den okunmasını sağlayan açıklamalardır. Bu şekilde artık uygulama GAC'daki dll dosyalarını değil, Bin dizinindeki dll dosyalarını kullanacaktır. (Bu işlemi Find-Replace ile kolayca yapabilirsiniz.)

3- Son olarak uygulamanın bulunduğu dizini virtual directory (sanal dizin) olarak tanımlamak gerekecek.

Not:Uğur UMUTLUOĞLU’nun bloğundan alıntıdır.