Kayıtlar

c# etiketine sahip yayınlar gösteriliyor

Açılış Sayfalarını web.config Üzerinden Ayarlama

Resim
Hazırladığınız web sitesinin açılış sayfasını, IIS ayarlarına hiç dalamadan dileğinizi gibi değiştirmek mi istiyorsunuz? bu yazı tam size göre. Normalde bir siteyi yayınlamaya başladığınızde ISS'te önceden tanımlanmış dosya adlarını arayarak sitenizi açmak ister. Mesela IIS 7.0'daki default file (varsıyalan belge) tanımları şöyledir: Default.htm Default.asp Index.htm Index.html Iisstart.htm ISS sitenizde yukarıdaki dosyaları sırasıyla tarar ilk önce hangisini bulur ise o sayfası açar. ISS üzerinde kendi sitenize gidip Default Document sekmesinden kendi dosyalarınızıda tanımlayabiliyorsunuz. Örnegin giris.aspx dosyasını açılış sayfası olmasın istiyorsanız, IIS üz...

Non-Serilizable Hatası

Eğer kullandığımız (web)servislerde veya başka bir ihtiyaçtan bir class'ın serilize etmek isteyebilirsin. Bu yüzden ilgili class’ın attribute olarak [ Serializable ] deyip geçiyoruz. Eğer içerisinde class tipinde çok fazla property bulunduran bir entity’niz (yada benzeri bir entity-contract) varsa bu propertyi serileştiremediği için “ blah...blah... is not marked as serializable ” hatası atacaktır. (Hatanın oluşması ayrı bir yazının konusu. Burda kısaca geçtim.) Bu hatanın çözümü şöyledir: Örnek olarak "CRM" isimli bir class'ı aldım. [ NonSerialized ()] private Crm musteri; [ IgnoreDataMember ] public Crm Musteri { get { return musteri; } set { musteri = valu...

MaxMessageSize Hatası ve Çözümü

Resim
Bu yazımın konusu WCF Servis Client üzerinde meydana gelen MaxMessageSize hatasının çözümüne yer vereceğiz. WCF Client üzerinde default olarak gelen 65536 KB'nin üzerinde bir veriyi almaya çalıştığınızda şu hatayı verecektir: The maximum message size quota for incoming messages (65536) has been exceeded. To increase the quota, use the MaxReceivedMessageSize property on the appropriate binding element. Hatanın sizin config ayarlarıyla ilgisi olmayıp, tamamen test client'ında yaşanan bir sıkıntıdır. Hatayı gidermek için WCF Client içinde teklif servisi Expand edip en alttaki Config File ı sağ click edit deyip bindings den default 65536 gelen MaxMessageSize'ı daha büyük bir değer (Ör: 8000000) ile değiştirmek gerekiyor. Servisi yalnızca WCF client dan test ederken bu lazım, ve wcf clientı her çalıştırdığınızda bu ayar maalesef gidiyor, bu yüzden her seferinde tekrar yapmanız gerekiyor. İşte konu hakındaki MSDN linki: Is any way to change WCF Test client conf...

#Region & #Endregion Bloğunu Renklendirme

Resim
Eğer Visual Studio'nun varsayılan renklendirmesinden sıkıldıysanız: Tools>Options>Environment>Fonts and Colors menüsü üzerinden istediğiniz biçimde renkleri değiştirebilirsiniz. #Region bloklarının hangi grup altında bulunduğunu bulmak için biraz zaman harcamak zorunda kaldım. #Region ve #EndRegion bloğunu renklendirmek içinde renklendirme menüsündeki Preprocessor Keyword alt menüsünü kullanabilirsiniz. Anahtar Kelimeler: region bloğunu renklendirmek, change color of region, c#, visual studio, coloring region

C Sharp Yazılım Geliştirme Kodlama Standartı

eğer kendimizce yazılım geliştirirken bazen kafamıza göre takılır kendi standartımızda kodlarımızı yazarız. Ama bir takım içerisinde yazılım geliştirme yapılıyorsa belirli standartlara uymak gerekir. Yoksa takım aynı dili konuşuyor olmaz ve yazılım geliştirme süreci sekteye uğrar. Sizinle aşağıda paylaştığım standartlar genellikle birçok yazılım ekibince kullanılmaktadır. Tip PascalCase camelCase UPPERCASE Açıklama Namespace X ...

ASP.NET ile Çerez (Cookie) Okuma ve Yazma İşlemleri

Sanırım client site veriyi uzun süreli tutmanın en iyi yolu cookie'lerdir. Cookie'ler(çerezler) sayesinde istediğimiz veriyi client(istemci) makinesinde istediğimiz sürede tutabiliriz. ASP.NET içinde kullanımı da oldukça basittir. ASP.NET içerisinde cookie'lerle işlem yapabilmek için "System.Web" kütüphanesinin refere edilmiş olması gerekir. Makineye cookie atmak için: adding cookie value to machine with asp.net c# HttpCookie myCookie = new HttpCookie( "yourCookie" ); //'yourCookie' isimli cookie'nin yaratılması. myCookie.Values[ "visitDate" ] = DateTime.Now.ToString(); //Değer atama işlemi.Birden fazla değer atanabilir. myCookie.Expires = DateTime.Now.AddDays(1); //cookie'nin devre dışı kalacağı tarih. Response.Cookies.Add(myCookie ); //Cookie browser cachesine yazılır Bu şekilde b...

Enumerator'da Verinin Takma Adını Bulmak

Yazılım geliştirken enumeretor'lerin getirdiği faydalardan azami bir ölçüde faydalanmaya çalışırım. Kısaca enumeratorlerin ne işe yaradığından bahsetmek gerekirse; sınırlı sayıda değer içeren değişkenler yaratmamıza olanak sağlarlar. Buradaki değişken değerleri bir grup oluştururlar ve sembolik bir adla temsil edilirler. Enumeratorleri(Numaralandırıcıları) kullanma nedenlerimizden birisi verilere anlamlar yüklekleyerek, program içerisinde kolay okunabilmelerini ve anlaşılabilmelerini sağlamaktır. Bu yazımın konusuda yarattığımız bir enumerator'ün içerisindeki bir veriyi bulmak üzerine olacaktır. Enumerator hem tanımladığımız veriye verdiğimiz alias'ı hemde ve değerini(value) tuttuğu için istediğimiz gibi kullanma şansını veriyor. (Örneğin URL rewrite yaparken verinin adına ihtiyaç duyuyarsanız.) Mesela bütün enumeratorlerimizi bulundurduğumuz Enm isimli bir class'ımız olsun. Bu class içinde de TvKanal isimli enumeratorümüz bulunsun. Aşağıdaki gibi göründü...

"Sys is undefined" Ajax Hatasının Çözümü

Karşılaştığım ilginç bir sorunu "Know How" olsun diye paylaşmak istiyorum. Ajax kullanarak web projemin kodumu geliştirdim. Herşey çok güzel gidiyordu. Sayfa yeniden yüklenmeden amacına uygun çalışıyordu. Sonra kendi kendime dedimki ben birde şu siteye bir URL rewriter çakayım. Böylece URL'deki sanal yolun arama motorları tarafından indekslenmesi sağlarım diye düşündüm. Ama siteye URL rewrite kodunu ekleyince Ajax Panel alanının çalışmadığını farkettim. URL rewrite için ücretisiz olarak dağıtılan Intelligencia'nın ( http://urlrewriter.net ) rewriterını kullandım. URL rewrite yapıyorsanız web config dosyasına müdahale ederek hangi condition lara göre sayfanının yeninden yazılacağını belirlersiniz. Eğer condition larından birisi aşağıdaki gibi ise sayfanız yüklendiğinde javascript hatası verebilir. <rewriter>   <if u...

"Potentially dangerous Request.Form value..." Hatası için Çözümler

Eğer; Server Error in '/ ' Application ... A potentially dangerous Request.Form value was detected... hatası ile karşılaşıyorsanız bunun sebebi kullandığınız HTML bileşenlerinden yine html kodu girilmeye çalışılmasıdır. Bu gerçekten ciddi bir potansiyel tehlikedir. Çünkü html inputlar kullanılarak javascriplertler çalıştırılabilir. Böylece virüslü sitelere yönlendir,veritabanı kullanıyorsanuz Sql injection riskiyle karşı karşıya kalabilirsiniz. Çoğunlukla bu hatayı almanıza ' (tırnak) işareti sebep olur. Bu hatayı engelleminin bir yöntemi tırnak işaretin html kodu eşitini yazmaktır. Bunun için metniniz içerisinde bulunan tırnak işaretlerini replace edebilirisiniz.     txtTextBox1.Text=mystr.Replace("'","&#39;"); Local makinanızda çalışıyorsanız veya güvenilir çalışanlardan oluşan bir intranette çalışıyorsanız size bir yöntem daha tavsiye edebilirim. Bu yöntemde sayfanın güvenlik kontrol yapmasını engelleyeceğiz. Bunun için Asp.Net sayfanız...

C# Asp.Net'te URL'yi yeni Pencerede Açmak

Genelde C# ile kodlama yaparken yeni bir web sayfasında yönlendirme yapmak gerektiğinde aşağıdaki kodu kullanırız: Response.Redirect("www.ekolay.net"); Ama bu şekilde bir kullanımda sayfa aynı pencerede açılacağı için önceki sayfamız kaybolur. Eğer yeni navigasyon penceresiyle birlikte kaynak sayfasınında çalışmasını istiyorsanız o zaman aşağıdaki biçimde bir kullanım sorununuzu çözecektir. string navigateURL = "www.ekolay.net" ; string target = "_blank" ; string windowProperties = "status=no, menubar=yes, toolbar=yes" ; string scriptText= "window.open('"+ navigateURL +"','"+ target +"','"+ windowProperties +"')" ; Page.ClientScript.RegisterStartupScript(this.GetType(), "eşsizAnahtar" ,scriptText ,true); navigateURL : Açma...

Enterprise Library Kullanarak Veritabanından Veri Çekmek

Resim
Eğer bilgisayarınıza Enterprise Library kurduysanız, yaşamınızı kolaylıştıracak özelliklerini de kullanmak isteyeceksenizdir. Bu yazımda EL (Enterprise Library)'yi kullanarak veritabanından veri çekme konusunu ele alacağım. EL'yi kullanabilbek için öncelikle aşağıdaki referanslarımıza eklememiz gerekiyor. Microsoft.Practices.EnterpriseLibrary.Common Microsoft.Practices.EnterpriseLibrary.Data Microsoft.Practices.EnterpriseLibrary.Data.Configuration.Design EL'yi yüklediğimiz zaman, web config dosyasını arayüz aracılığıyla ayarlama (config) opsiyonuna sahip oluruz. Bunun için tek yapmamız gereken web.config dosyasını sağ tıklatıp "Edit Enterprise Library Configuration" seçiyoruz. Karşımıza web.config dosyası üzerinde detaylı global tanımlamarı da y...

SqlReader ile Grid doldurmak

Bu makalemde sık sık ihtiyaç duyduğumuz bir kontrolün çalışmasını ele alacağız. Veri tabanına erişerek stored procedure ile veri ceçekeceğiz. Kodun içerisine SQL cümleciklerini yazmaktansa stored procedure kullanmak daha güvenilir ve hızlı bir metodtur. Örneğimizde bir data gride veritabanımızdan okuduğumuz çalışanların listesini aktaracağız. Bunun için Page_Load eventından gridi dolduracağımız PopulateCalisanlarGrid(10);fonksiyonu çağırıyoruz. Buradaki "10" kaç adet verinin geri döneceğini göstermektedir. protected void Page_Load(object sender, EventArgs e) {    if ( !IsPostBack )    {       PopulateCalisanlarGrid(10);    } } Şimdide fonksiyonumuzu yazalım. "RowCount" değişkeni öncedende belirttiğim gibi stored proceduren geri döndereceği ve...