26 Ağustos 2014 Salı

WPF-Value Converter Kullanımı

Eğer birbirinden farklı iki tipte property’i binding yapmak istiyorsanız, arada bu iki property’yi birbirlerini anlayacak şekilde haberleştiren bir  yapının olması gerekmektedir. Bu yapıya daValue Converter denilmektedir. Value converter’lar sayesinde farklı tipteki property’leri bind ederek ilgili tip dönüşüm işlemlerini gerçekleştirebiliriz. 

En çok kullanılan value converter’lardan birisi boolean değerleri Visibility değerlerine dönüştürenlerdir. Daha fazla uzatmadan bahsettiğimiz örneği nasıl gerçekleştirebileceğimize bakalım. Öncelikle yapmam gereken bir sınıf oluşturup bu sınıfa System.Windows. Data isim uzayı altında bulunan IValueConverterarayüzünü implemente etmem gerekiyor. Sınıf ismi olarak genelde property isimleri arasına “To” ve sonuna Converter eklenerek yapılıyor. Arayüzü implemente ettiğimde hemen otomatik olarak Convert ve ConvertBack isimli metodlarım geliyor.

{
        public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
        {          
            if (value != null)
            {
                bool boolValue = (bool)value;

                if (boolValue)
                    return Visibility.Visible;
                return Visibility.Hidden;
            }
            return null;
        }

        public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
        {
            throw new NotImplementedException();
        }
    }

Convert metodumda gelen parametreye null kontrolü yaptıktan sonra unboxing yaparak boolean bir değişkene alıyorum. Daha sonra değişkenin değerine göre Visible ya da Hidden olarak geri döndürüyorum.  ConvertBack metodu ise tersine bir dönüşüm yani Visibility’den bool bir değer dönüştürme sağlamaktadır.  Value converter sınıfımızı yazdığımıza göre sıra geldi kullanımına. XAML tarafında kullanabilmek için öncelikle converter’ımıza ulaşabileceğimiz bir namespace oluşturmamız gerekiyor. Daha sonra resource olarak tanımlayıp ilgili data binding işlemlerinde aşağıdaki gibi kullanabiliriz.

<Window x:Class="WPFValueConverter.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:converter="clr-namespace:WPFValueConverter"
        Title="MainWindow" Height="350" Width="525">
    <Window.Resources>
        <converter:BoolToVisibilityConverter x:Key="boolToVisibilityConverter"/>
    </Window.Resources>
        <StackPanel>
            <CheckBox x:Name="cbVisible" Content="IsVisible" IsChecked="True"/>
            <Rectangle Width="200" Height="200" Fill="Red" Visibility="{Binding ElementName=cbVisible,Path=IsChecked,Converter={StaticResource boolToVisibilityConverter}}"/>
        </StackPanel>
</Window>

6 Ağustos 2014 Çarşamba

MVC Validation


Html.ValidationSummary() 


[StringLength(160)]
public string FirstName { get; set; }

[RegularExpression(@"[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}")]
public string Email { get; set; }

[Range(10,25)]
public int Age { get; set; }

public string Password { get; set; }
[Compare("Password")]
public string ConfirmPass { get; set; }



<script src="<%= Url.Content("~/Scripts/jquery-1.5.1.js") %>" type="text/javascript"></script>
<script src="<%= Url.Content("~/Scripts/jquery.validate.js") %>" type="text/javascript"></script>
<script src="<%= Url.Content("~/Scripts/jquery.validate.unobtrusive.js") %>" type="text/javascript"></script> 

16 Temmuz 2014 Çarşamba

WCF - Proxy Authentication Required Hata cözümü

Kimi zamanlar şirket içerisinde geliştirdiğimiz uygulamalarda 3rd party web servislerini kullanmak zorunda kalabiliyoruz. Bu servisleri Visual Studio içerisinde Add Service Reference ekranını kullanarak eklemeye çalıştığımızda ise “Proxy Authentication Required” hatası ile karşı karşıya kalabilmekteyiz. Bunun nedeni ise Visual Studio içerisinde bulunan Add Service Reference ekranının default olarak bizim ayarlamış olduğumuz proxy ayarlarını kullanmaması.
Bu sorunun çözümü için ise yapmamız gereken tek şey aşağıdaki konfigürasyonu servis referansını eklemeden önce config dosyasına eklemek.
<system.net>
<defaultProxy useDefaultCredentials=”true” />
</system.net>

7 Temmuz 2014 Pazartesi

Karakter Kodları (HTML)

CharacterDecimal CodeHTMLDescription
&#09;Horizontal tab
&#10;Line feed
&#13;Carriage Return
&#32;Space
!&#33;Exclamation mark
"&#34;&quot;Quotation mark
#&#35;Number sign
$&#36;Dollar sign
%&#37;Percent sign
&&#38;&amp;Ampersand
'&#39;Apostrophe
(&#40;Left parenthesis
)&#41;Right parenthesis
*&#42;Asterisk
+&#43;Plus sign
,&#44;Comma
-&#45;Hyphen
.&#46;Period (fullstop)
/&#47;Solidus (slash)
0&#48;Digit 0
1&#49;Digit 1
2&#50;Digit 2
3&#51;Digit 3
4&#52;Digit 4
5&#53;Digit 5
6&#54;Digit 6
7&#55;Digit 7
8&#56;Digit 8
9&#57;Digit 9
:&#58;Colon
;&#59;Semicolon
<&#60;&lt;Less than
=&#61;Equals sign
>&#62;&gt;Greater than
?&#63;Question mark
@&#64;Commercial at
A&#65;Capital A
B&#66;Capital B
C&#67;Capital C
D&#68;Capital D
E&#69;Capital E
F&#70;Capital F
G&#71;Capital G
H&#72;Capital H
I&#73;Capital I
J&#74;Capital J
K&#75;Capital K
L&#76;Capital L
M&#77;Capital M
N&#78;Capital N
O&#79;Capital O
P&#80;Capital P
Q&#81;Capital Q
R&#82;Capital R
S&#83;Capital S
T&#84;Capital T
U&#85;Capital U
V&#86;Capital V
W&#87;Capital W
X&#88;Capital X
Y&#89;Capital Y
Z&#90;Capital Z
[&#91;Left square bracket
\&#92;Reverse solidus (backslash)
]&#93;Right square bracket
^&#94;Caret
_&#95;Horizontal bar (underscore)
`&#96;Acute accent
a&#97;Small a
b&#98;Small b
c&#99;Small c
d&#100;Small d
e&#101;Small e
f&#102;Small f
g&#103;Small g
h&#104;Small h
i&#105;Small i
j&#106;Small j
k&#107;Small k
l&#108;Small l
m&#109;Small m
n&#110;Small n
o&#111;Small o
p&#112;Small p
q&#113;Small q
r&#114;Small r
s&#115;Small s
t&#116;Small t
u&#117;Small u
v&#118;Small v
w&#119;Small w
x&#120;Small x
y&#121;Small y
z&#122;Small z
{&#123;Left curly brace
|&#124;Vertical bar
}&#125;Right curly brace
~&#126;Tilde
&#160;&nbsp;Non-breaking Space
¡&#161;&iexcl;Inverted exclamation
¢&#162;&cent;Cent sign
£&#163;&pound;Pound sterling
¤&#164;&curren;General currency sign
¥&#165;&yen;Yen sign
¦&#166;&brvbar; or &brkbar;Broken vertical bar
§&#167;&sect;Section sign
¨&#168;&um; or &die;Diæresis / Umlaut
©&#169;&copy;Copyright
ª&#170;&ordf;Feminine ordinal
«&#171;&laquo;Left angle quote, guillemot left
¬&#172;&notNot sign
&#173;&shy;Soft hyphen
®&#174;&reg;Registered trademark
¯&#175;&macr; or &hibar;Macron accent
°&#176;&deg;Degree sign
±&#177;&plusmn;Plus or minus
²&#178;&sup2;Superscript two
³&#179;&sup3;Superscript three
´&#180;&acute;Acute accent
µ&#181;&micro;Micro sign
&#182;&para;Paragraph sign
·&#183;&middot;Middle dot
¸&#184;&cedil;Cedilla
¹&#185;&sup1;Superscript one
º&#186;&ordm;Masculine ordinal
»&#187;&raquo;Right angle quote, guillemot right
¼&#188;&frac14;Fraction one-fourth
½&#189;&frac12;Fraction one-half
¾&#190;&frac34;Fraction three-fourths
¿&#191;&iquest;Inverted question mark
À&#192;&Agrave;Capital A, grave accent
Á&#193;&Aacute;Capital A, acute accent
Â&#194;&Acirc;Capital A, circumflex
Ã&#195;&Atilde;Capital A, tilde
Ä&#196;&Auml;Capital A, diæresis / umlaut
Å&#197;&Aring;Capital A, ring
Æ&#198;&AElig;Capital AE ligature
Ç&#199;&Ccedil;Capital C, cedilla
È&#200;&Egrave;Capital E, grave accent
É&#201;&Eacute;Capital E, acute accent
Ê&#202;&Ecirc;Capital E, circumflex
Ë&#203;&Euml;Capital E, diæresis / umlaut
Ì&#204;&Igrave;Capital I, grave accent
Í&#205;&Iacute;Capital I, acute accent
Î&#206;&Icirc;Capital I, circumflex
Ï&#207;&Iuml;Capital I, diæresis / umlaut
Ğ&#208;&ETH;Capital Eth, Icelandic
Ñ&#209;&Ntilde;Capital N, tilde
Ò&#210;&Ograve;Capital O, grave accent
Ó&#211;&Oacute;Capital O, acute accent
Ô&#212;&Ocirc;Capital O, circumflex
Õ&#213;&Otilde;Capital O, tilde
Ö&#214;&Ouml;Capital O, diæresis / umlaut
×&#215;&times;Multiply sign
Ø&#216;&Oslash;Capital O, slash
Ù&#217;&Ugrave;Capital U, grave accent
Ú&#218;&Uacute;Capital U, acute accent
Û&#219;&Ucirc;Capital U, circumflex
Ü&#220;&Uuml;Capital U, diæresis / umlaut
İ&#221;&Yacute;Capital Y, acute accent
Ş&#222;&THORN;Capital Thorn, Icelandic
ß&#223;&szlig;Small sharp s, German sz
à&#224;&agrave;Small a, grave accent
á&#225;&aacute;Small a, acute accent
â&#226;&acirc;Small a, circumflex
ã&#227;&atilde;Small a, tilde
ä&#228;&auml;Small a, diæresis / umlaut
å&#229;&aring;Small a, ring
æ&#230;&aelig;Small ae ligature
ç&#231;&ccedil;Small c, cedilla
è&#232;&egrave;Small e, grave accent
é&#233;&eacute;Small e, acute accent
ê&#234;&ecirc;Small e, circumflex
ë&#235;&euml;Small e, diæresis / umlaut
ì&#236;&igrave;Small i, grave accent
í&#237;&iacute;Small i, acute accent
î&#238;&icirc;Small i, circumflex
ï&#239;&iuml;Small i, diæresis / umlaut
ğ&#240;&eth;Small eth, Icelandic
ñ&#241;&ntilde;Small n, tilde
ò&#242;&ograve;Small o, grave accent
ó&#243;&oacute;Small o, acute accent
ô&#244;&ocirc;Small o, circumflex
õ&#245;&otilde;Small o, tilde
ö&#246;&ouml;Small o, diæresis / umlaut
÷&#247;&divide;Division sign
ø&#248;&oslash;Small o, slash
ù&#249;&ugrave;Small u, grave accent
ú&#250;&uacute;Small u, acute accent
û&#251;&ucirc;Small u, circumflex
ü&#252;&uuml;Small u, diæresis / umlaut
ı&#253;&yacute;Small y, acute accent
ş&#254;&thorn;Small thorn, Icelandic
ÿ&#255;&yuml;Small y, diæresis / umlaut

JavaScript olaylar (Event) ve açıklamaları

JavaScript olaylar ve açıklamaları

onclickFareyle tıklamayı ifade eder.
ondblclickFareyle çift tıklamayı ifade eder.
onmouseoverFarenin imleciyle üzerine gelmeyi ifade eder.
onmouseoutFarenin imlecini üzerinden çekmeyi ifade eder.
onmousedownFare düğmesine basmayı ifade eder.
onmouseupFare düğmesini bırakmayı ifade eder.
onloadSayfanın yüklenmesini ifade eder.
onunloadSayfanın kapatılmasını ifade eder.
onchangeForm aracının değişmesini ifade eder.
onsubmitForm bilgilerinin gönderilmesini ifade eder.
onresetForm bilgilerinin silinmesini ifade eder.
onselectForm aracının seçilmesini ifade eder.
onblurForm aracının pasif hale geçmesini ifade eder.
onfocusForm aracının aktif hale geçmesini ifade eder.
accesskeyİstenen karakterin girilmesini ifade eder.
tabindexNesnelerin işlem sıralamasını numaralandırır.
onkeydownTuşun basılmasını ifade eder.
onkeyupTuşun salınmasını ifade eder.
onfocusTuşun basılıp salınmasını ifade eder.
Bu olaylar yaratıcı web tasarımcılar için yeterli değildir. Başka olaylar oluşturmak için event (olay) komutlarından yararlanılır. Olay komutlarının önüne event. kodu getirilir. Önemli Not: Bu komutlar sadece IE gözatıcıları tarafından desteklenmektedir.

Sağ Tıklama, Sol Tıklama

Fareyle sağ tıklanıldığında, bir fonksiyon çağırmak için button (düğme) olay komutu kullanılır. event.button şeklinde yazılır ve sol tıklanırsa 1, sağ tıklanırsa 2 değerini alır.


İmlecin Koordinatları

İmlecin sayfadaki konumuna göre kod yazmak isteyebiliriz. İmlecin hangi yatay ve düşey koordinatlarda olduğunu belirlemek için clientX, clientY veya offsetX, offsetY veya x, y olay komutlarından yararlanılır. Kısa bir uygulama yapalım:

Verdiğimiz diğer kodları da siz deneyin, aynı sonuca ulaşacaksınız. Bu kodların hepsi imlecin, pencerenin sol üst köşesine olan yatay ve düşey mesafeyi piksel cinsinden vermektedir. Eğer pencerenin değil de ekranın sol üst köşesine olan yatay ve düşey mesafeyi edinmek istiyorsak, screenX, screenY komutlarını kullanırız.

2 Temmuz 2014 Çarşamba

C# HATA : "credentials" ( The HTTP request is unauthorized with client authentication scheme 'Anonymous'. The authentication header received from the server was )

Web servis bağlantılarında yaşanan credentials hatasının cözümü için config dosyasına bindings alanını aşağıdaki gibi düzenliyoruz.

<bindings>
            <basicHttpBinding>
                <binding name="AccountWsImplPortBinding">
                    <security mode="TransportCredentialOnly">
                        <transport clientCredentialType="Basic" proxyCredentialType="None"
                            realm="" />
                        <message clientCredentialType="UserName" algorithmSuite="Default" />
                    </security>
                </binding>
                <binding name="AccountWsImplPortBinding1" />
            </basicHttpBinding>
        </bindings>

daha sonra client altında bulunan web servis bağlantı alanına  bindingConfiguration="AccountWsImplPortBinding"  binding name bilgisini ekliyoruz.

daha sonra web servisi çalıştırırken kullanıcı adı ve şifre bilgilerini atamasını gerçekleştiriyoruz.

 servis.ClientCredentials.UserName.UserName = "TEST";

 servis.ClientCredentials.UserName.Password = "xxxxxx";