Categories
ASP.NET Microsoft .NET

Code Behind da Client Side Script Çalıştırma – 2

MicrosoftBir önceki kisa ipucumuzda anlattigimiz Client Side çalisan scripti Code Behind`da yazma örnegini biraz daha efektif sekilde yapacagiz. Simdi aspx tarafinda textbox`a yazdigimiz veriyi html tarafinda yazdipimiz bir javascrip fonksiyonu ile alacak ve alert ile ekranda gösterecegiz.

Burda bir dikkat etmemiz gereken konu sadece Javascript ile fonksiyon yazmak ve buna disardan bir parametre almak. Bu fonksyonu da yine RegisterStartupScript ile code behind`da ekrana uyari verdirecegiz.

Dikkat edecegimiz gibi izim javascrip tarafinda yazacagimiz fonksiyon adi MesajYaz ve bu da textbox`a girilen degeri parametre olarak aliyor. ve ekrana yaziyor.

string Mesaj = “<script language=JavaScript>MesajYaz(`”+TextBox1.Text+”`)</script>”;
Page.RegisterStartupScript(“key”, Mesaj);

Javascript fonsksiyonumuz ise su sekildedir. Bununla ilgili küçük bir hatirlatma yapalim. javscript kodumuzu html tarafinda yazdik ve </head> taginin hemen üstünde bulunuyor.

<script language=”javascript”>
function MesajYaz(Mesaj) {

alert(Mesaj);
}
</script>

Categories
ASP.NET Microsoft .NET

Code Behind`da Client Side Script Çalıştırma

MicrosoftUzun zamandan bu yana bişeyler yazamadığımı farkettim ve ufakda olsa bişeyler yazma ihtiyacı hissettim.

Genellikle birçok yazılımcı arkadaşımızın istediği bir konuyu kısaca anlatığ bir örnekl vereceğim. Asp.Net`de code behind tarafında nasıl javascript oluşturulur ve bu nasıl çağrılır? Aslında çok basit ve bununla iligili küçükde olsa bir örnek vereceğim.

Javascript kullanan arkadaşlar mutlaka alert ile ekrana mesajlar yazmışlardır, bunu code behind da yapacağız.

Öncelike mesajımız şu şekilde olsun : Code Behind da Javascript Calistirma ve bunu alert içinde yazacağız. Daha sonra da örneğin ikinci satırında olduğu gibi bunu yani client side scripti code behid tarafında çalıştırmak için sayfaya tanıtıyoruz. Çalıştırdığımızda client side`da yazdığımız Javascript kodunun code alert penceresi karşımıza çıkacaktır.

string Mesaj = “<script language=JavaScript>alert(`Code Behind da Javascript Calistirma`)</script>”;

Page.RegisterStartupScript(“key”, Mesaj);

 

Categories
ASP.NET Microsoft .NET

Asp.Net`de GridView Width`i Sabitlemek

MicrosoftAsp.Net kullanan ve html bilgisi sınırlı olan ve sayfalarına görsellik katmaya çalışan bir çok arkadaş gibi bende GridView komponentini  kullanmakta her zaman zorluk çektim.

Geçen hafta çok fazla görselliğin önemli olmadığı bir projede yine GridView componenti kullanıyorduk fakat bind ettiğimiz data çok uzunsa html yapımızın bozulduğunu gördük. Çok basit gibi algılansada aslında html bilgisinin çok önemli ve çok kolay şekilde öğrenilmeyeceğini düşündüm.

Gridi fixlemek için internette biraz dolaştım ve çok basit bir kod buldum, aslında sadece gridviewin attribute`undaki table`a değer set ediyoruz. Tahmin edebileceğiniz gibi table layout`u fixliyoruz, bu tek satırlık kod aşağıdadır.

GridViewRapor.Attributes.Add(“style”, “table-layout:fixed”);

Categories
C# Microsoft .NET

DexExpres`de Chart Kontrolu

MicrosoftDexExpress`in componentlarının kullanarak kucuk bir grafik ornegi yapacagim.

Öncelike projemize referasn olarak DevExpress.Charts.v8.2.Core , DevExpress.Data.v8.2 ,DevExpress.Utils.v8.2, DevExpress.XtraCharts.v8.2 ve DevExpress.XtraCharts.v8.2.UI componentlarini ekleyecegiz.

Daha sonra aşağıdaki kod bloğunu projene eklersek ;

ChartControl barChart = newChartControl();
Series series1 = newSeries(“”, ViewType.Bar);
series1.Points.Add(
newSeriesPoint(“0”, 20));
series1.Points.Add(
newSeriesPoint(“5”, 12));
series1.Points.Add(
newSeriesPoint(“10”, 32));
series1.Points.Add(
newSeriesPoint(“15”, 24));
series1.Points.Add(
newSeriesPoint(“20”, 18));
barChart.Series.Add(series1);
barChart.Size =
new System.Drawing.Size(400, 300);
panel1.Controls.Add(barChart);
barChart.Location =
newPoint(50, 50);

cok guzel bir grafik cizimi yapmis oluruz.

Oncelikle Chart kontrolu olustururuz ve daha sonrada buna ekleyecegimiz grafikteki serileri olusturmaliyiz ve olusturulan bu seriyi chart kontrolumuze ekleriz, daha sonra ekrandaki olusturacagimiz panelde bu grafigi gosterecegiz , tabiki bu grafigin kodlarda da goruldugu gibi size ve location degerlerini set ediyoruz.

Categories
Microsoft .NET WCF

WCF’e Giriş

MicrosoftWCF ile müşteri oluşturabileceğimiz ve oluşturulan müşterileri de görebileceğimiz bir proje yapacağız. 

Öncelikle Visual Studio Ide`si ile WCFMusteri isminde WCF altinda bulunan projelerden WCF Service Library oluşturacağız. Daha sonra projemize bir interface ekliyoruz ve ismini de IMusteri koyuyoruz. Burda dikkat etmemiz gereken bir konu bu interface`in attribute özelliğinin ServiceContract olduğunu bildiriyoruz.

Daha sonra MusteriCreate ve MusteriGetir isimli 2 metod yazıyor ve bunların da OperationContract olduğunu belirtiyoruz.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.ServiceModel;

namespace WCFMusteri
{
[ServiceContract]
public interface IMusteri
{
[OperationContract]
void MusteriCreate(Musteri Must);

[OperationContract]
List<Musteri> MusteriGetir();
}
}

Projemizde interface`de kullandığım Musteri classını oluşturacağım ve bu classda müşteri ile ilgili bilgilerimiz olacak. Dikkat etmemiz gereken konulardan biri  müşteri classımız WCF üzerinden taşınacağı için bu classımızın attribute`unun DataContract olduğunu ve bunun içindeki propertylerinde DataMember Attribute`larına sahip olduğunu belirteceğiz. Bunu yapmazsak client bunu göremeyecektir. Classımızda da müşteri numarası , müşteriimizin ismi ve TC Kimlik numarası olacak.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Runtime.Serialization;

namespace WCFMusteri
{
[DataContract]
public class Musteri
{
[DataMember]
public string MusteriNo;

[DataMember]
public string MusteriIsim;

[DataMember]
public string TCKImlikNo;

}
}

Şimdide esas classımız olan MusteriOlustur  isimli classı oluşturacağız , bu service de IMusteri isimli interface`den türeyecektir.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace WCFMusteri
{
public class MusteriOlustur : IMusteri
{
private static List<Musteri> mst = new List<Musteri>();

public void MusteriCreate(Musteri Must)
{
mst.Add(Must);
}

public List<Musteri> MusteriGetir()
{
return mst;
}
}
}

Kodlarımızı yazdık , şimdi test işlemlerimizi yapacağız.  Kodumuzu build ettikten sonra app.config`e gelip sağ tıkladıpımızda Edit WCF Configuration gelecektir, buna tıklarsak aşağıdaki ekran karşımıza gelecektir ve burda bazı konfigürasyonlar yapmak durumundayız.

Öncelike WCFMusteri.MusteriOlustur servisinde name kısmında oluşturacağımız service ismi yazmalı ve bunun içinde yazdığımız sonrasında build ettiğimiz porjemizin debug klasorunden dll ismini seçeçeğiz.

Ayrıca Endpoint oluşturabilmeliyiz ve httpbindig`i seçiyoruz. Httpbindign daha önce web service geliştirdiysek 80. porttan http üzerinden yayın yapan binding mekanizmasıdır.

Projemizi çalıştırdığımızda WCF Test Client karşımıza gelecektir. Aşağıda da görüldüğü gibi MusteriCreate ile iki adet müşteri oluşturdum ve daha sonrada MusteriGetir medtodu ile de oluşturduğum müşterileri görüyorum.

Burda WCF ile basit i bir örnek yaptık ve konfigürasyonlardan nerdeyse çok az bahsettik ve sadece işlemlerimiz yaptık. Bundan sonraki makalelerimizde de WCF ile ilgili geliştirmeler yapacağız , bu geliştirmelerde daha çok konfigürasyonlar ile ilgileneceğiz.

Categories
C# Microsoft .NET

Split Metodu

MicrosoftC# ile string ifadeleri birbirinden ayırmaya yarayan çok kullanışlı bir metoddan bahsedeceğim. Aslında Java`da kullanılan Strıng Tokenizer`ı biraz andırması sebebi daha önce Java ile yapmış olduğum bir örneğin text olarak aynısını ekrana yazıp örneği anlatacağım, daha önceki Java örneğini görmek için tıklayınız.

“Erkan Sezer Filenet P8 Platformunda Calisiyor” gibir bir textimiz olsun ve boşluk karakterlerini referans alarak bu değerleri string parse işlemleri yapmadan ekrana tek tek yazdıracağım fakat burda küçük bir ayrıntıya dikkat etmemiz gerekiyor. Referans olarak boşluk karakterini aldik.

Kod bloğumuz aşağıdaki gibidir, her zamanki gibi değerleri ayrı ayrı MessageBox ile ekrana yazıyorum.

string text = “Erkan Sezer Filenet P8 Platformunda Calisiyor”;
for (int i = 0; i < text.Split(` `).Length; i++)
{
MessageBox.Show(text.Split(` `)[i]);
}

Sizinde görmüş olduğunuz gibi text değişkenini split metodu ile ve metodda da boşluk karakterini referasn olarak ekrana ayrı ayrı yazdırmaktayım.

Categories
.NET Framework Microsoft .NET

Garbage Collector

MicrosoftGarbage Collector .NET `in bize sunmuş olduğu bir üye olup,  sistemi devamli dinleyerek sistemin kullanmadığı nesneleri siler.

GC.Collect metodu ile Garbage Collector`u manuel olarak çağırırız fakat burda dikkatli olmamız gerekmektedir. Ayrıca bunun devreye girmesi için farklı bir metodu da çağırabiliriz , burda bu metoddan bahsedeceğiz ve bunun kullanımını göstererek kullanılan memory farkını göstereceğiz.

Öncelikle GetTotalMemory metodu bizden boolean bir değer ister biz bunu true olarak gönderirsek Garbage Collector devreye girer ama false gönderirsekde devreye girmemesini sağlarız. Biz burda önce false gönderecek kullanılan memory oranını ölçeceğiz ve daha sonra true değeri ile Garbage Collector`ü devreye alarak tekrar memory ölçerek bize kazandırdıklarını göreceğiz.

Kod bloğumuz aşağıdaki gibidir ve ölçülen ilk memory değeri 836492 `dir. Garbage Collector`ü call ettiğimizde ise yani nesneleri temizlediğimizde ise bu değer :  125346 olmaktadır.

long deger = GC.GetTotalMemory(false);
MessageBox.Show(deger.ToString());
long deger2 = GC.GetTotalMemory(true);
MessageBox.Show(deger2.ToString());

Fakat ilk başta belirttiğim gibi Garbage Collector kullanmak biraz sorun yaratabilir bundan dolayi bu konuda dikkatli davranmamız gerekmektedir.

Categories
.NET Framework Microsoft .NET

Visual Studio 2010 Add Reference

MicrosoftVisual Studio 2010 çıktığı günden bu yana bunlarla ilgili makaleler , ipuçları vs görmekteyiz ve bunları sizler gibi bende inceliyorum. Tabi birçok diyemesekde yeni özellikler , IDE ilew gelen kullanım kolaylıkları mevcut.

Fakat benim en çok hoşuma giden ise: Visual Studio `da projelere referans eklerken Add Reference dediğimizde bizi çok fazla bekletmesiydi ve daha önceki versiyonlarda bu problem her zaman mevcuttu. 2010 ile gelen Visual Studio`da bu problemin çmzülmesi çok güzel olmuş.

Aslında bütün referanlar , COM objeleri , Projeler vs çok hızlı gelmiyor (yine de önceki versiyonlara göre çok hızlı) sadece kısım kısım gelmesi bizim öok daha hızlı geliyor gibi düşünmemizi sağlıyor ama yine de dediğim gibi bu işlem çok iyi olmuş.

Categories
ASP.NET Microsoft .NET

Random Sayı

MicrosoftAsp.Net veya C# ile random bir değer üretmenin nasıl olduğuna bakacağız. Aslında işlem çok basit ama dikkat etmemiz gereken konu: ramdom bir değer üretildikten sonra bir sonra üretilen değer ile bunun aynı olabileceğini düşünmeliyiz ve bunu programlarımızda biz kontrol etmeliyiz.

Random olarak aşağıdaki gibi bir değer üretebilirz ve bunuda kod bloğunda gördüğünüz gibi ekranda MessageBox ile gösteriyorum. Dah alttaki kod bloğunda ise : iki değerarasında bir ramdom sayı üretiyorum.

Random rnd = new Random();

MessageBox.Show(rnd.Next().ToString());

Random rndSinirli = new Random();

MessageBox.Show(rndSinirli.Next(1, 10).ToString());

Categories
ASP.NET Microsoft .NET

Asp.Net ile IP Adresi

MicrosoftWeb sayfamizi gelen kullanicilarin IP adreslerinin gosterildigini bircok sayfada gormussunuzdur. Islem aslinca cok basit;Server variablesle ile yapiyoruz bunu ve dikkat edersek bize gelen request icin yapilacak bir islem bu. Yani kod aynen su sekildi.

Request.ServerVariables[“REMOTE_ADDR”] ve bunu da sayfamiza yazdirmak icin Response.Write(Request.ServerVariables[“REMOTE_ADDR”]); kodunu kullanabiliriz. Gordugunuz gibi basit bir islem fakat kullanici sisteme proxy ile geliryorsa ne yapmamiz gerekiyor. Onu icinde yine Server variables degerini kullaniyoruz ve bunun da ornegi asagidaki gibi.

Response.Write(Request.ServerVariables[“HTTP_X_FORWARDED_FOR”]); Bu sekilde proxy ile gelenlerin IP adreslerini de gorebiliyoruz.