5 Aralık 2014 Cuma

C# Masa üstüne kısayıl oluşturma

using IWshRuntimeLibrary;

private void CreateShortcut()
{
  object shDesktop = (object)"Desktop";
  WshShell shell = new WshShell();
  string shortcutAddress = (string)shell.SpecialFolders.Item(ref shDesktop) + @"\Notepad.lnk";
  IWshShortcut shortcut = (IWshShortcut)shell.CreateShortcut(shortcutAddress);
  shortcut.Description = "New shortcut for a Notepad";
  shortcut.Hotkey = "Ctrl+Shift+N";
  shortcut.TargetPath = Environment.GetFolderPath(Environment.SpecialFolders.System) + @"\notepad.exe";
  shortcut.Save();
}

17 Kasım 2014 Pazartesi

Temel Fotoğraf Çekim Teknikleri


1. İlk kez kullanacağınız hafıza kartını kullanmadan önce mutlaka formatlayın. Bu işlemi yapmadan kullanırsanız çektiğiniz fotoğraflar kaybolabilir.
2. Çekim yapmaya çıkmadan önce bir poz deneme çekimi yapın. Herhangi bir şey eksik yada problemliyse bu yolla tesbit edip düzeltebilirsiniz.
3. Bazı digital fotoğraf makineleri preview özelliklidir, çekilen fotoğrafı OK tuşuna bastıktan sonra hafızaya kaydeder. Buna dikkat etmezseniz fotoğraflarınız kaydolmaz.
4. Amacınıza göre çekim kalitesini değiştirerek belleği verimli kullanınız.Eğer web sitesi tasarımı veya e-posta eki için çekim yapıyorsanız Economy ayarını, fotoğraf baskısı için çekim yapıyorsanız Best ayarını, Arşivlemek için çekim yapıyorsanız Normal ayarını kullanabilirisiniz.
5. Menü ayarlarıyla oynayıp kameranın ayarlarını içinden çıkılamayacak kadar bozduysanız, setup menüsünden reset fonksiyonunu kullanarak makinenizi fabrika çıkış ayarlarına getirebilirisiniz.
6. LCD parlaklık ayarınızı güneşli ortamlarda yükseltiniz. Karanlık ortamlarda parlaklığı düşürerek bataryayı tasarruflu kullanabilirsiniz.
7. Bataryadan tasarruf etmek için makinenizi kapalı tutarsanız açana kadar çekebileceğiniz fotoğrafları kaçırabilirsiniz. Bu gibi durumlarda makine açık LCD kapalı konumda tutularak vizörden çekim yapılmalıdır.
8. Kameranızı açık unutup bataryanın tamamen boşalmasını önlemek için setup menüsündeki Auto power off fonksiyonu devreye sokulmalıdır.
9. Çekimlerinizde digital zoom özelliğini mümkün olduğu kadar kullanmayınız. Digital zoom çekim kalitesini düşürmektedir. Dilerseniz daha sonra bilgisayarda görüntüyü büyütüp digital zoom elde edebilirsiniz.
10. Kamera vizörü yanında kırmızı veya yeşil yanan ışıklar vardır bunlar kameranın netleme işleminin, otomatik ayarlarının veya flaşının hazır olup olmadığını gösterir. Eğer kırmızı yanıyorsa çekim yapmayıp yeşil yanana kadar beklenmelidir.
11. Net fotoğraflar çekmek ve titremelerden etkilenmemek için yüksek enstantane değerleri ile çekim yapınız. Çoğu makinede bu değer 1/50 değerine ayarlıdır. 1/125 ideal bir değer olabilir.
12. Işığın az olduğu koşullarda Enstantane ve Diyafram değerini düşürünüz. Makinenizde ISO ayarlama özelliği varsa ISO değerini biraz yükseltiniz, çok fazla yükseltmek görüntü kirliliğine neden olabilir. Makineyi titretmemek için dirseğinizi vücudunuza dayayabilir, kapı pencere pervazlarına dayanabilir, masa, kitap gibi nesneleri sehpa niyetine kullanabilirsiniz.
13. Flaşınızın kaç metreye kadar aydınlattığını bilirseniz doğru pozlama yaparsınız. Kullanım kitapçığının özellikler bölümünden Flash Guide Number (GN) değerini öğrenip, bu değeri kullandığınız diyafram değeri (f) ile bölerseniz flaşınızın kaç metreyi aydınlatabildiğini öğrenirsiniz. Örnek: GN değeri 10 olan bir makine ile 1.8 diyafram değeri ile 10/1.8=5.5metre uzaklığa kadar flaşlı çekim yapabilirsiniz.
14. Karanlık ortamlarda flaş kullandığınızda gözler kırmızı çıkar. Bunun nedeni göz bebeğinin karanlıkta büyümesidir ve flaşın gözün arka tarafındaki ağ tabakasını aydınlatmasıdır. Bunu önlemek için flash menüsünden Red Eye Reduction fonksiyonunu aktif hale getiriniz. Bu fonksiyon aktive edildiğinde LCD de göze benzeyen bir sembol görünecektir. Kırmızı göz engelleme aktifken deklanşöre basıldığında flaş önce birkaç kez çakacak ardından çekim yapılacaktır. Bunun amacı çekim öncesi göz bebeğini küçültmektir. İlk flaş çaktığında çekim yapıldı zannedip pozisyonunuzu bozmayınız.
15. Bazı durumlarda ışık az ama ortam güzeldir. Flaş ortamın bütün büyüsünü bozabilir. böyle durumlarda flaşı iptal ederek çekim yapınız. Birde flaşlı deneme yapılabilir. Güzel olmayan poz daha sonra silinir.
16. Portre çekimlerinde çekilecek kişinin arkasında güneş varsa yüzlerin karanlık çıkmaması için mutlaka flaşı kullanınız.
17. Gece çekimlerinde flaşı kullanırken makinenizi gece moduna getiriniz. Örneğin arkada ışıl ışıl bir manzara önde arkadaşınız ve karanlık bir gece. Doğrudan flaşla çekerseniz arkadaki manzara fotoğrafta yer almaz. Flaş kullanmazsanız şimdide arkadaşınız fotoğrafta yer almaz. Makine gece moduna getirildiğinde perdeyi arkadaki manzarayı pozlayacak kadar açık tutar kapanmadan hemen önce flaş çakarak sizi de manzaranın içine dahil eder. Bu teknikleri denemeyi alışkanlık haline getiriniz.
18. Kar ve Kum gibi açık rengin neredeyse tüm kadrajı doldurduğu durumlarda otomatik ışık ölçümü hata yapar. Bunu telafi etmek ve çekmek istediğiniz konuların kara lekeler olarak değil de gerçek renklerle görünmesini istiyorsanız, bir iki stop pozlama telafisi yapınız. Yani +/- şeklinde gördüğünüz EV ayarını duruma göre +1 yada +1.5 yapınız.
19. İnsan ve Çevre konulu bir fotoğraf çekiminde kişilere mümkün olduğu kadar çok yaklaşınız. Kişileri kareye bit kadar yerleştirip tüm binayı çekerseniz, kimin kim olduğu anlaşılmayacak, anlamsız bir fotoğraf olacaktır. Önce kişileri binanın önünde çekip ardından binayı tek başına çekerseniz ve albümde bu iki fotoğrafı yan yana koyarsanız kişilerin o bina önünde olduğu anlaşılacaktır.
20. Güneşin tam tepede olduğu saatlerde çiğ bir ışık olduğu için bu saatlerde çekilen fotoğraflar sanıldığı gibi güzel olmayacaktır. Sabah ve Öğleden sonra gibi ışığın yatay olduğu saatler çekim için daha uygundur.
21. İnsanları şirin göstermek için yukardan fotoğraf çekiniz. Bu boyların kısa görünmesine neden olsa da yüzleri şirin gösterir. Bir insanı büyük ve şişman göstermek için aşağıdan çekebilirsiniz bunu bayanlarda denemeyiniz.

28 Ekim 2014 Salı

C# Entity db Update işlemi

Metod 1:
var original = db.Users.Find(updatedUser.UserId);

if (original != null)
{
    original.BusinessEntityId = updatedUser.BusinessEntityId;
    original.Email = updatedUser.Email;
    original.EmployeeId = updatedUser.EmployeeId;
    original.Forename = updatedUser.Forename;
    original.Surname = updatedUser.Surname;
    original.Telephone = updatedUser.Telephone;
    original.Title = updatedUser.Title;
    original.Fax = updatedUser.Fax;
    original.ASPNetUserId = updatedUser.ASPNetUserId;
    db.SaveChanges();
}    

Metod 2:

var original = db.Users.Find(updatedUser.UserId);

if (original != null)
{
    db.Entry(original).CurrentValues.SetValues(updatedUser);
    db.SaveChanges();
}
Metod 3 

db.Users.Attach(updatedUser);
db.Entry(updatedUser).State = EntityState.Modified;
db.SaveChanges();


Alternatif :
(from x in dataBase.Customers
         where x.Name == "Test"
         selext x).ToList().ForEach(xx => x.Name="New Name");


24 Ekim 2014 Cuma

java cache sıfırlama

/util/cache-manager?cacheCommand=EVICT_ALL_CACHE

23 Ekim 2014 Perşembe

sqlplus ve C# ile oracle db baglantı

sqlplus system@"(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=xxx.xxx.xxx.xxx)(PORT=1521))(CONNECT_DATA=(SID=xxxxxxxx)))"


C# Oracle DB Baglantı :


         
OracleConnection con = new OracleConnection();

  //using connection string attributes to connect to Oracle Database

con.ConnectionString = "User Id=SIS_SW;Password=xxx;Data Source="
+ "(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)"
+ "(HOST=xxxx)(PORT=1521))(CONNECT_DATA="
+ "(SERVICE_NAME=xxxx)))";

con.Open();

                // Close and Dispose OracleConnection object
             
 con.Close();
 con.Dispose();

             

16 Eylül 2014 Salı

C# Arşiv dosyalarının dışarı aktarılması

using System;
using System.IO;
using System.IO.Compression;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            string zipPath = @"c:\example\start.zip";
            string extractPath = @"c:\example\extract";

            using (ZipArchive archive = ZipFile.OpenRead(zipPath))
            {
                foreach (ZipArchiveEntry entry in archive.Entries)
                {
                    if (entry.FullName.EndsWith(".txt", StringComparison.OrdinalIgnoreCase))
                    {
                        entry.ExtractToFile(Path.Combine(extractPath, entry.FullName));
                    }
                }
            } 
        }
    }
}

5 Eylül 2014 Cuma

WPF Enum, Binding

public IEnumerable<string> EnumCol { get; set; }

var enum_names = Enum.GetNames(typeof(YourEnumTypeHere));
EnumCol = enum_names ;

<ListBox ItemsSource="{Binding EnumCol}"></ListBox>

28 Ağustos 2014 Perşembe

cmd komutları ile eski tarihli kayıtların silinmesi

forfiles -p "d:\Yeni" -s -m *.* -d -9 -c "cmd /c del @path"


-d  komutundan sonra gelen -9 ibaresi ile klasörde bulunan ve oluşturulma tarihi 9 günden eski dosyaları sillen komut satırı

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