türkçe c# püf noktaları.

Monday, April 30, 2007

Windows İletişim Kurumu (WCF)

Windows communication foundation nedir sorunusunun basit cevabı her tür iletişim işimizi halledebilen bi dalgadır.

kişisel olarak foundation kelimesinden huylanırım MFC(Microsoft Foundation Class) den kaynaklanıo uzun zamandır bu .net 3 le gelen şeyleri okumuyordum ama bugün indirdiğim basit bir kod bunu değiştirdi. WCF nedir ne iş yapar okumak durumunda kaldım CodeProject dan okuduğum ve anladıklarım.

bu http veya tcp veya pipe lar ile yaptığımız bütün işleri basitleştirir. cart die bi server onada client yazmamızı sağlar.

ServiceContract bu bizim sunacağımız servisi extern etmemizi.
OperationContract buda dışarı açacağımız fonksiyonu tanıtmamızı sağlar.
DataContract dışarı açacağımız class ı tanımlamamızı
DataMember buda class ın içindeki memberı dışarı açmamızı sağlar.

dışarı derken kastedilen client dır. okuduklarım bu süper teknoloji harika bişey diyip duruyor ama ben hala indirdiğim kodu derleyemedim :)

Sunday, April 29, 2007

log4net e yolunuz düşerse

log4net dökümanları okuyunca çok basit şakır şakır çalışan bir sistemdir tabiiki sıfırdan yazdığınız projelerde ve basit çaplarda. birgün bi kaç projenin ortak iş görmesi bişeylerinde loglanması gerektiğinde işler karışabiliyor. 2 saattir log4net den xml i yanlış yapmışsın hatası alıyorum. halbuki xml hatalı değil tertemiz app.config lan bu.

sonra denedim yine yine yine son 2 saattir alet exception fırlatıo sebebide reflectiondan gelio gibi idi. çünkü

private static readonly ILog log = log4net.LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);

satırından classı algılayamıomuşda patlıomuş gibi hata veriodu çok uzun zaman önce böle salak bi durum yine olmuşdu sebep gayet basit siz bari kasılmayın log4net salakça hatalar vermeye başlarsa onun config satırlarının app.config veya web.configde tepede olması gerekio yoksa cilvelenio çalışmıo.

atasözü:
eşşeğe cilvelen demişler ossurmuş :D

Thursday, April 26, 2007

splashscreen gerekirse atayalım

splashscreen bakınırken Splash Screen e rastlarsınız hmm bu neymişki der indirirsiniz. sonra vs.net 2005 ile açarsınız eski sln den dolayı bi update eder. sonra run edince içinde

Cross-thread operation not valid: Control 'formSplash' accessed from a
thread other than the thread it was created on.

gibi bir exception atar çözümü basit. splashscreen i çağırdığınız formun constructounda
Control.CheckForIllegalCrossThreadCalls = false;
dediğinizde sorun ortadan kalkar.

Tuesday, April 24, 2007

process lerin çalışma pathini değiştirme (process change working directory c#)

parantez içindeki şeyi aradığımda bulamadığım için yazıyorum.

Process nesnesi bizim programımızın dışından başka bir çalıştırılabilir bişeyi çağırmamızı sağlar.

Process myProcess = new Process();
myProcess.StartInfo.WorkingDirectory = Application.StartupPath + @"\biyerler\";
myProcess.StartInfo.FileName = Application.StartupPath + @"\bisey.exet";
myProcess.StartInfo.CreateNoWindow = true;
myProcess.StartInfo.Arguments = "\"arguman\"";
myProcess.Start();

en temizinden bi işlemi başlatmamızı sağlar. ben bat dosyası çağırdığım için workingdirectory gerekiodu. daha basit bir biçimde kontrolsüz çalıştırmak istersekde

System.Diagnostics.Process.Start("bisey.exe");

diyebiliriz.