Posts Tagged :

mezo

Binary representation of floating-point numbers 1024 420 mezo

Binary representation of floating-point numbers

Have you ever considered the process by which computers store floating-point numbers such as 3.1416 (­ŁŁ┐) or 9.109 ├Ś 10Ôü╗┬│┬╣ (the mass of the electron in kg) in the memory which is limited by a finite number of ones and zeroes (aka bits)?

For integers (i.e., 17). It appears to be fairly straightforward. Assume we have 16 bits (2 bytes) to store the number. We can store integers between 0 and 65535 in 16 bits:

(0000000000000000) = (0)

(0000000000010001)Ôéé =
    (1 ├Ś 2Ôü┤) +
    (0 ├Ś 2┬│) +
    (0 ├Ś 2┬▓) +
    (0 ├Ś 2┬╣) +
    (1 ├Ś 2Ôü░) = (17)ÔéüÔéÇ

(1111111111111111)Ôéé =
    (1 ├Ś 2┬╣ÔüÁ) +
    (1 ├Ś 2┬╣Ôü┤) +
    (1 ├Ś 2┬╣┬│) +
    (1 ├Ś 2┬╣┬▓) +
    (1 ├Ś 2┬╣┬╣) +
    (1 ├Ś 2┬╣Ôü░) +
    (1 ├Ś 2Ôü╣) +
    (1 ├Ś 2ÔüŞ) +
    (1 ├Ś 2ÔüĚ) +
    (1 ├Ś 2ÔüÂ) +
    (1 ├Ś 2ÔüÁ) +
    (1 ├Ś 2Ôü┤) +
    (1 ├Ś 2┬│) +
    (1 ├Ś 2┬▓) +
    (1 ├Ś 2┬╣) +
    (1 ├Ś 2Ôü░) = (65535)ÔéüÔéÇ

On the off chance that we really want a marked number we might utilize two’s supplement and shift the scope of [0, 65535] towards the negative numbers. For this situation, our 16 pieces would address the numbers in a scope of [-32768, +32767].

As you would have seen, this approach will not permit you to address the numbers like – 27.15625 (numbers after the decimal point are simply being disregarded).

However, we’re not the initial ones who have seen this issue. Around Ôëł36 years ago a few brilliant people conquered this limit by presenting the IEEE 754 norm for floating-point arithmetic.

The IEEE 754 standard portrays the way (the framework) of utilizing those 16 bits (or 32, or 64 bits) to store the numbers of wider range, including the small floating numbers (smaller than 1 and closer to 0).

To get the thought behind the standard we could review the logical documentation – an approach to communicating numbers that are excessively huge or excessively little (for the most part would bring about a long string of digits) to be helpfully written in decimal structure.

As you might see from the picture, the number portrayal may be parted into three sections:

sign
division (otherwise known as significant) – the important digits (the significance, the payload) of the number
example – controls how far and in which direction to move the decimal point in the fraction
The base part we might preclude simply by settling on what it will be equivalent to. For our situation, we’ll involve 2 as a base.

Rather than utilizing every one of the 16 bits (or 32 bits, or 64 bits) to store the fraction of the number, we might share the bits and store a sign, type, and portion simultaneously. Contingent upon the numbers of bits that we will use to store the number we end up with the accompanying parts:

Floating-point formatTotal bitsSign bitsExponent bitsFraction bitsBase
Half-precision1615102
Single-precision3218232
Double-precision64111522

With this approach, the number of bits for the fraction has been reduced (i.e. for the 16-bits number it was reduced from 16 bits to 10 bits). It means that the fraction might take a narrower range of values now (losing some precision). However, since we also have an exponent part, it will actually increase the ultimate number range and also allow us to describe the numbers between 0 and 1 (if the exponent is negative).

For example, a signed 32-bit integer variable has a maximum value of 2┬│┬╣ Ôłĺ 1 = 2,147,483,647, whereas an IEEE 754 32-bit base-2 floating-point variable has a maximum value of Ôëł 3.4028235 ├Ś 10┬│ÔüŞ.

To make it possible to have a negative exponent, the IEEE 754 standard uses the biased exponent. The idea is simple – subtract the bias from the exponent value to make it negative. For example, if the exponent has 5 bits, it might take the values from the range of [0, 31] (all values are positive here). But if we subtract the value of 15 from it, the range will be [-15, 16]. The number 15 is called bias, and it is being calculated by the following formula:

exponent_bias = 2 ^ (kÔłĺ1) Ôłĺ 1

k - number of exponent bits

I’ve tried to describe the logic behind the converting of floating-point numbers from a binary format back to the decimal format on the image below. Hopefully, it will give you a better understanding of how the IEEE 754 standard works. The 16-bits number is being used here for simplicity, but the same approach works for 32-bits and 64-bits numbers as well.

Checkout the interactive version of this diagram to play around with setting bits on and off, and seeing how it would influence the final result

Here is the number ranges that different floating-point formats support:

Floating-point formatExp minExp maxRangeMin positive
Half-precisionÔłĺ14+15┬▒65,5046.10 ├Ś 10Ôü╗ÔüÁ
Single-precisionÔłĺ126+127┬▒3.4028235 ├Ś 10┬│ÔüŞ1.18 ├Ś 10Ôü╗┬│ÔüŞ

Be aware that this is by no means a complete and sufficient overview of the IEEE 754 standard. It is rather a simplified and basic overview. Several corner cases were omitted in the examples above for simplicity of presentation (i.e. -0-Ôł×+Ôł× and NaN (not a number) values)

Code examples

In the javascript-algorithms repository, I’ve added a source code of binary-to-decimal converters that were used in the interactive example above.

Below you may find an example of how to get the binary representation of the floating-point numbers in JavaScript. JavaScript is a pretty high-level language, and the example might be too verbose and not as straightforward as in lower-level languages, but still it is something you may experiment with directly in the browser:

See the Pen bitsToFloat.js by mzekiosmancik (@mzekiosmancik) on CodePen.

References

You might also want to check out the following resources to get a deeper understanding of the binary representation of floating-point numbers:

Javascript Algoritmalar─▒ – Bubble Sort 230 300 mezo

Javascript Algoritmalar─▒ – Bubble Sort

Bubble Sort okullarda ├Â─čretilen ilk algoritmad─▒r diyebiliriz. Bu algoritma verim olarak en verimsiz s─▒ralama algoritmas─▒d─▒r ancak yap─▒sal olarak anla┼č─▒lmas─▒ en kolay─▒d─▒r. Buradaki temel fikir s─▒ralanacak dizi i├žindeki elemanlar─▒n kar┼č─▒la┼čt─▒r─▒lmas─▒d─▒r. Her seferinde 2 eleman kar┼č─▒la┼čt─▒r─▒l─▒r ve sonras─▒nda yerleri de─či┼čmeden ├Ânce do─čru s─▒radalarm─▒ diye emin olur. Basit olarak :┬á
*Ilk eleman ile ikinciyi kar┼č─▒la┼čt─▒r─▒r
*E─čer ilk eleman ikinci elemandan sonra gelmeliyse yerlerini de─či┼čtirir
*Sonra ├╝├ž├╝nc├╝ eleman ile ikiyi kar┼č─▒la┼čt─▒r─▒r┬á
*E─čer┬á ikinci eleman , ├╝├ž├╝nc├╝ elemandan sonra gelecekse yerlerini de─či┼čtirir ve bu i┼člem dizinin son eleman─▒na kadar devam eder.┬á
A┼ča─č─▒daki resim anlatt─▒─č─▒m ┼ču mant─▒─č─▒ anlaman─▒za yard─▒mc─▒ olacakt─▒r.┬á

Flowchart:

├ľrnek Kod:

See the Pen Bubble Sort by mzekiosmancik (@mzekiosmancik) on CodePen.

Javascript Algoritmalar─▒ – Binary Search 386 878 mezo

Javascript Algoritmalar─▒ – Binary Search

Binary search s─▒ral─▒ bir dizi i├žinde arad─▒─č─▒m─▒z de─čeri bulabilmek i├žin ├žok verimli bir algoritmad─▒r.┬á Verilen s─▒ral─▒ diziyi tekrar tekrar 2 ye b├Âlerek aramaya devam eder sonunda arad─▒─č─▒ de─čerin index numaras─▒n─▒ bulana kadar. Binary search kullan─▒m─▒ i├žin bir ├Ârnek verecek olursak , diyelim ki Google Maps ile ├žal─▒┼č─▒yorsunuz ve kullan─▒c─▒dan ald─▒─č─▒n─▒z bir mekan ismini DB den gelen s─▒ral─▒ listenizden bulup o mekan─▒n koordinatlar─▒n─▒ al─▒p haritada gostermek istiyorsunuz bunun i├žin en verimli arama algoritmas─▒ Binary Search olacakt─▒r. Nedenini a├ž─▒klayacak olursak linear arama da algoritma t├╝m listeyi bastan sona gezer ve bulmaya ├žal─▒┼č─▒rd─▒ bu da binlerce mekan bilgisi i├žinden bir isim bulabilmek i├žin tek tek bastan sona hepsini incelemesi gerekti─či anlam─▒na geliyor hem uzun hemde yorucu bir i┼člem ancak binary search ile bu binlerce mekan─▒ tek tek kontrol etmek zorunda de─čiliz.

─░nsanlara bir algoritmay─▒ anlat─▒rken baz─▒ k├╝├ž├╝k detaylar─▒ s├Âylemeye gerek yoktur ├Ârne─čin bir kek yap─▒lmas─▒n─▒ istedi─čimizde buzdolab─▒n─▒ nas─▒l a├žmas─▒ gerekti─čini yada yumurtalar─▒ dolaptan ├ž─▒kar─▒p nas─▒l k─▒rmalar─▒ gerekti─čini s├Âylememize gerek kalmaz insan bu gibi k├╝├ž├╝k detaylar─▒ kendisi tamamlayarak kek yapma i┼člemini tamamlayabilirler ancak bilgisayarda bu gibi k├╝├ž├╝k detaylar┬á bilgisayar taraf─▒ndan tamamlanamaz t├╝m detaylar─▒n bilgisayara tan─▒mlanmas─▒ gerekir.

Programlama boyutunda algoritmalar─▒ uygulayabilmek i├žin algoritman─▒n t├╝m detaylar─▒n─▒ bilmek gerekiyor. Problem i├žin girdiler nedir ? ├ç─▒kt─▒s─▒ nedir ? Hangi de─či┼čkenler tan─▒mlanmal─▒ ? Bu de─či┼čkenler ne t├╝rde olmal─▒? Bir d├Âng├╝ olmal─▒ m─▒ ne gibi ko┼čullarda olmal─▒ gibi detaylar.

Hadi bu kadar bo┼č yapt─▒ktan sonra ┼ču binary search e dikkatlide g├Âz atal─▒m. Buradaki ana fikir belirtti─čimiz say─▒y─▒ bulabilmek i├žin belirli aral─▒klar─▒ takip etmek. Diyelim ki bir tahmin oyunu oynuyoruz ve bu tahmin oyununda akl─▒m─▒zdan 1 ile 100 aras─▒nda bir say─▒ tutuyoruz. Ard─▒ndan siz de bana tahminimizi s├Âyl├╝yorsunuz ve 25 diyorsunuz ve ben size Yukar─▒ diyorum. Ard─▒ndan siz 81 diyorsunuz bende size A┼ča─č─▒ diyorum. ┼×imdi biliyorsunuz ki say─▒ art─▒k k─▒rm─▒z─▒ ile i┼čaretledi─čimiz 26 ile 80 aral─▒─č─▒nda yani 25 ten k├╝├ž├╝k ve 81 den b├╝y├╝k say─▒lar─▒n hepsini elemi┼č olduk.

Her seferinde tahmininiz e─čer do─čru de─čilse kalan aral─▒ktaki say─▒lar─▒ belli tahmin edilebilir bir aral─▒─ča b├Âlerek devam ediyor. ├ť├ž├╝nc├╝ tahmininde53 diyorsunuz ve bende A┼ča─č─▒ diyorum yine ne yapm─▒┼č olduk 26-80 aral─▒─č─▒ndaki say─▒y─▒ tekrar b├Âlm├╝┼č olduk┬á

Do─čru say─▒y─▒ bulana kadar b├Âyle s├╝r├╝p giden ama sonunda say─▒y─▒ buldu─čumuz bir oyun gibi ├žal─▒┼č─▒r Binary Search.

─░┼člem s─▒ras─▒ yazacak olursak

1-Min = 1 ve Max = n

2-Max ve Min say─▒ aral─▒─č─▒nda bir integer bir de─čer tut

3-E─čer say─▒y─▒ bulduysan ├ž─▒k. Do─čru tahmin

4-E─čer tutulan say─▒dan d├╝┼č├╝k ise Min de─či┼čkenine tahmin edilen say─▒ya 1 ekleyip atama i┼člemini ger├žekle┼čtir.

5-E─čer tahmin edilen say─▒ tutulandan b├╝y├╝k ise o zaman Max de─čerini tahmin edilenden 1 ├ž─▒kar─▒p atama i┼člemini ger├žekle┼čtir.

6-2 numaral─▒ i┼čleme geri d├Ân.

See the Pen Binary Search by mzekiosmancik (@mzekiosmancik) on CodePen.

Javascript Algoritmalar─▒ – Merge Sort 625 598 mezo

Javascript Algoritmalar─▒ – Merge Sort

B─▒r baska s─▒ralama tekni─či ile birlikteyiz inkilizcesi Merge Sort t├╝rk├žesi birle┼čtirme kayna┼čt─▒rma s─▒ralamas─▒ olan bu algoritma 2 diziyi al─▒p k├╝├ž├╝kten b├╝y├╝─če s─▒ralamak ├╝zerine kurulmu┼čtur.

A┼ča─č─▒daki animasyondan da anlayaca─č─▒n─▒z ├╝zere 2 dizi al─▒n─▒yor daha sonra bunlar─▒ n kadar alt dizilere b├Âlerek bu alt listeleri kar┼č─▒la┼čt─▒r─▒larak results dizisine ekleme yaparak s─▒ral─▒yor.
Animasyon :

Flowchart :

├ľrnek Kod :

See the Pen Merge Sort by mzekiosmancik (@mzekiosmancik) on CodePen.

Javascript Algoritmalari – Quick Sort 453 593 mezo

Javascript Algoritmalari – Quick Sort

Merhaba arkada┼člar baz─▒ ald─▒─č─▒m notlar─▒ sizlerle paylasmak istiyorum bunlar javascript┬á ile temel algoritma sorular─▒ ve y├Ântemleri olarak nitelendirece─čimiz k├╝├ž├╝k yaz─▒lar olacak.
H─▒zl─▒ s─▒ralama
H─▒zl─▒ s─▒ralama bir dizi i├žindeki elemanlar─▒ herhangi bir ili┼čki kural─▒ koymadan d├╝md├╝z k├╝├ž├╝kten b├╝y├╝─če s─▒ralamam─▒za yarayan bir algoritma hadi bakal─▒m nas─▒l bir ┼čeymi┼č…

Bu s─▒ralama ├Ânce diziden bir ilk eleman─▒ pivot olarak belirler ve onun etraf─▒nda s─▒ralama yapmaya ba┼člar. K├╝├ž├╝kse left dizisine b├╝y├╝kse right dizisine. Yani pivot eleman her zaman ortada kal─▒cak ┼čekilde ,ondan b├╝y├╝k ve k├╝c├╝kleri s─▒ralar. Dikkat edecek olursan─▒z fonksiyonun sonunda s─▒ralanm─▒┼č olan diziyi d├Ând├╝r├╝rken left ve right dizileri i├žinde ayn─▒ metodu ca─č─▒rarak yani onlar─▒ da bir daha s─▒ralamaya koyarak geri d├Ând├╝r├╝yoruz.
S─▒ralama Animasyonu :
Sorting quicksort animation

FlowChart :

├ľrnek Kod :

See the Pen Quick Sort by mzekiosmancik (@mzekiosmancik) on CodePen.

C# – DataTable ─░├žindeki Verilerin S─▒ralar─▒n─▒ Ters ├çevirmek 150 150 mezo

C# – DataTable ─░├žindeki Verilerin S─▒ralar─▒n─▒ Ters ├çevirmek

Merhaba arkada┼člar
Her yaz─▒l─▒mc─▒n─▒n korkulu r├╝yas─▒ olan test uzman─▒ arkada┼člar─▒mdan biri olan Bill bir hata kayd─▒ a├žm─▒┼č ve demi┼č ki ┼ču ┼ču sayfada ki listelenen verilerin s─▒ralamalar─▒ yanl─▒┼č ters olmas─▒ laz─▒m demi┼č. Bende ufak bir ara┼čt─▒rma sonucu bir metod olu┼čturarak bu problemi ├ž├Âzd├╝m ve pratik bir bilgi olmas─▒ a├ž─▒s─▒ndan sizlerle payla┼čmak istedim.
─░┼čte o kodlar ­čÖé

[codebox 1]

Bilgiyle Kal─▒n
M.Zeki OSMANCIK

AngularJS – Services 333 302 mezo

AngularJS – Services

Merhaba arkada┼člar
AngularJS de servisler hem kodlar─▒n kolay okunmas─▒ hemde test edilmesini kolayla┼čt─▒ran javascr─▒pt dosyalar─▒d─▒r. Servisler genelde kod i├žersinde kullanac─▒─č─▒m─▒z baz─▒ methodlar i├žin yazabiliriz. ├ľrne─čin bir hesaplama yapmas─▒ gereken bir methodu servis olarak olu┼čturup Controller ├╝zerinde birden fazla yerde kolayca kullan─▒kmas─▒n─▒ m├╝mk├╝n k─▒labiliriz. AngularJS servis ve factory yi kullanarak Separation of Concerns konseptini desteklemektedir.
Peki Separation Concerns nedir ? Bir yaz─▒l─▒m─▒ olu┼čturan kodlar─▒n katmanlara ayr─▒lmas─▒d─▒r. Web sitemizin veritaban─▒ndan bir veri al─▒p bize sunmas─▒ i├žin gerekli olan her bir i┼člemi ayr─▒ ayr─▒ konumland─▒rmak da diyebiliriz ; veri taban─▒na ba─članan kod ayr─▒ , onu al─▒p i┼čleyen kod ayr─▒ , son olarak web sayfas─▒ ├╝zerinde g├Âsteren kod ayr─▒ yerlerde katmanlar halinde yaz─▒l─▒r ki bu katmanlar─▒ okumas─▒ hata tespiti yada test kodlar─▒m─▒z─▒n ├žal─▒┼čmas─▒ kolayla┼čs─▒n. Bu konsepte en uygun ├Ârnek MVC Design Pattern dir.
Konumuza geri d├Ânecek olursak AngularJS ile olu┼čturulan bir projede servis i├ž i┼člevlerin birden fazla controller ├╝zerinden ├ža─č─▒r─▒labilmesi i├žin olu┼čturaca─č─▒m─▒z klasik javascript metotlar─▒d─▒r.
Hemen k─▒sa bir ├Ârnekle merak─▒m─▒z─▒ dindirip. ├ľrne─či inceledikten sonra hemen Factory yaz─▒s─▒n─▒da okursan─▒z sizlere ├žok katk─▒s─▒ olaca─č─▒n─▒ umuyorum.

Umar─▒m Yararl─▒ Olur.
Bilgiyle Kal─▒n.
M.Zeki OSMANCIK

Raspberry Pi 3 Nedir ? 1024 647 mezo

Raspberry Pi 3 Nedir ?

Merhaba arkada┼člar

pi_3Raspberry Pi ARM i┼člemcili kredi tart─▒ b├╝y├╝kl├╝─č├╝nde bir bilgisayar olarak kar┼č─▒m─▒za 4 sene once ├ž─▒km─▒┼čt─▒. ├ľnceki s├╝r├╝mlerinde bluetooth ve wireless ba─člant─▒lar i├žin USB donglelar kullanmak zorunda kalsakda 4. senesinde ├ž─▒kard─▒klar─▒ Raspberry Pi 3’de bu ├Âzellikleride kart ├╝zerine entegre ederek bizlere daha fazla USB portu b─▒rakm─▒┼č ­čÖé
RaspberryP─▒ bir d├╝┼č├╝k ├Âzellikli bir masa├╝st├╝ bilgisayard─▒r yani klavye mouse ve ekran─▒n─▒z─▒ ba─člayarak temel s├Âzc├╝k i┼čleme i┼člemleri HD videolar d├╝┼č├╝k ├Âzellik gerektilren oyunlar oynanabilir. Ayn─▒ zamanda GPIO pinleri sayesinde kapsamli bir kontrol kapasitesine sahip oluyorsunuz.

GPIO ile kucuk motorlar ledler kameralar ├že┼čitli sens├Ârler vb bir ├žok cevre birimini kullanabilir kontrol edebilirsiniz. Yap─▒labilecekler hayal g├╝c├╝n├╝zle s─▒n─▒rl─▒ ­čÖé

 

Peki Yeni Raspberry Pi 3 uzerinde neler var ?

Asagidaki resimde de gorebileceginiz uzere

4 Port USB 2 , Ethernet LAN giri┼či , ses c─▒k─▒┼č─▒ (HDMI ├╝zerinden de ses alabilirsiniz ) , CSI Kamera portu , HDMI Portu , Harddisk gibi kulland─▒─č─▒m─▒z Micro SD kart giri┼či , daha ├Ânce daha az say─▒da olan suan say─▒s─▒ 40 Pine ├ž─▒kar─▒lm─▒┼č GPIO paneli , entegre Bluetooth ve Wireless LAN , 1 GB Ram , 1.2 GHz i┼člemci mevcut.  Ilk bilgisayarimi hat─▒rl─▒yorumda Raspberry ondan ├žok ├žok ├žok daha h─▒zl─▒ ­čśÇ

Pi3+Breakout+Feb+29+2016

 

─░lk etapta akl─▒n─▒za sadece basit bir bilgisayar resmi canland─▒rd─▒─č─▒ icin kapasitesini bilemeyebilip “Peki bu cihazla ne yapabiliriz?” diyebilirsiniz bu sorunuzun cevabi icinde s├╝rekli takip etti─čim bir Youtube kanal─▒ olan Geek Life in tatl─▒ hatunu Luria Petrucci ‘nin en Cool 10 projeyi tan─▒tt─▒─č─▒ videoyuda payla┼č─▒yorum.

Umar─▒m yararl─▒ olur.

Bilgiyle Kal─▒n.

M.Zeki OSMANCIK

AngularJS – Dinamik De─či┼čken 980 400 mezo

AngularJS – Dinamik De─či┼čken

Merhaba arkada┼člar
Bildi─činiz gibi AngularJS de html ile js dosyas─▒ aras─▒ndaki ba─č─▒ scope ile sa─čl─▒yorduk. Yani controller ├╝zerinde tan─▒mlad─▒─č─▒m─▒z b─▒r scope nesnesini html ├╝zerinde {{}} veya ng-bind ile ├ža─č─▒rabiliyoruz. Bahsetti─čimiz de─či┼čkenler sabit tan─▒mlan─▒p g├Âr├╝nt├╝lenenler. Bir de JS taraf─▒nda tan─▒mlayabildi─čimiz de─či┼čkenler var ki bu yaz─▒m─▒z─▒n konusuda budur zaten ­čÖé

Hemen HTML kodlar─▒m─▒z─▒ yerlestirelim
[codebox 1]

ve Controller kodlar─▒m─▒z
[codebox 2]

Burada tan─▒mlad─▒─č─▒m─▒z $scope.dynamicVariable = {}; objemiz i├žersine istenilen miktarda de─či┼čken tan─▒mlanabilir ve HTML taraf─▒ndan da {{dynamicVariable[company.CompanyID]}} ┼čeklinde kullanabiliyoruz.

ve AngularJS ile dinamik de─či┼čkenimiz hay─▒rl─▒ olsun ­čÖé Bu da ornegimiz.

Umar─▒m Yararl─▒ Olur
Bilgiyle Kal─▒n
M.Zeki OSMANCIK

AngularJS – Basit Search Filter 1024 789 mezo

AngularJS – Basit Search Filter

Merhaba arkada┼člar
Bu kez de AngularJS ile ├žooooooook ama ├žok basit ┼čekilde listeledi─čimiz nesneler ├╝zerinde bir Text input ile nas─▒l arama yapabiliriz sorusunun cevab─▒n─▒ 2 sat─▒rda bir fiddle’da payla┼čmak istiyorum.

Bu datay─▒ AngularJS ile Controller i├žersinde┬áolu┼čtural─▒m┬áve bir $scope de─čiskeni i├žersine┬á┼ču ┼čekli tan─▒mlamam─▒z gerekiyor .
[codebox 2]

ve her zaman oldu─ču gibi HTML kodlar─▒m─▒z─▒ bir olu┼čtural─▒m ve listeme i┼člemini ger├žekle┼čtirelim.
[codebox 1]

Bu asamadan sonra JSON nesnemizin i├žersindeki elemanlar─▒n ekran─▒m─▒za listelendi─čini g├Ârebileceksiniz.

─░┼č arama k─▒sm─▒na geldi─činde ise HTML de de ┼ču ┼čekli bir de─či┼čiklik yapmam─▒z gerekmekte.

[codebox 3]

Burada kulland─▒─č─▒m─▒z FILTER bizim listeledi─čimiz JSON nesnesi ya da array i├žersinde input ├╝zerine tan─▒mlad─▒─č─▒m─▒z ng-model yard─▒m─▒ ile filtreleme yap─▒p $scope.companyList ad─▒nda ki objeye atama yapar b├Âylelikle siz de listeye abc yazd─▒─č─▒n─▒zda listedeki abc yi bularak $scope.companyList nesnesine atamas─▒n─▒ yaparak bizlere g├Âsterir ­čÖé

Benim yorumlamam bu kadar ­čÖé
Iste bu kadar bas─▒t ­čÖé
├ľrnek kodu Fiddle’dan inceleyebilirsiniz.

Umar─▒m Yararl─▒ Olur
Bilgiyle Kal─▒n.
M.Zeki OSMANCIK

Unity – Kurulum ve IDE 1024 457 mezo

Unity – Kurulum ve IDE

Merhaba arkada┼člar

Unity ile oyun yazmaya merak sard─▒m bu aralar hobi olsun diye i┼čin ustas─▒ Tolga Ka├žar ve biz ├Â─črencileri Ahmet Kayar ve ben birlikte ├Â─čle aralar─▒m─▒z─▒ Unity ├Â─črenerek de─čerlendirmeye ba┼člad─▒k. ­čÖé  ─░lk i┼č olarak nas─▒l kurulum yapars─▒n─▒z diye anlatmak istedim hemen arkas─▒ndan da IDE ├╝zerindeki pencerelerden bahsedece─čim.

Unity ‘de “merhaba d├╝nya” falan yapmayacagim bu yaz─▒mda sadece Unity nedir ,ne yapar, nerden kuracagiz actigimizda gelen ekranlar nedir kisaca ve basitce bunlardan bahsedecegim oncelikle Unity biz developerlara sunulmus 3d veya 2d oyun programlama sa─člayan ├žok eyi ,├žok da g├╝zel eyi bir IDE. ­čÖé Oyun programlama ile ilgili hi├ž bir fikriniz yoksa ┼ču soru kafalarda belirebilir ben 3 boyutlu ├žizim bilmiyorum nasil olacak ? Dert etmeyin haz─▒r, bele┼č veya ├╝cretli yada ├╝cretli ama bele┼č assetler yani 3 boyutlu yada 2 boyutlu cizimler nesneler internette mevcut ­čśë ├çizim olayini hallettik peki ya kod olayi derseniz onuda C# ile hallediyoruz ­čÖé
Evet cok geyik yapmadan kuruluma gecelim artik ­čśë Ilk olarak unity3d  sitesine giriyoruz ve GET UNITY butonuna t─▒klayarak installer dosyas─▒n─▒ PC ye indiriyoruz ve kuruluma ge├žiyoruz ­čÖé

Unity-setup1

Download bittiyse s─▒ra ile kurulum islerine gecebiiriz. Kurulumda dikkat edilecek isaretlenecek onemli bir configurasyon yok o yuzden resimleri arka arkaya koyuyorum

Unity-setup2

Unity-setup3

Unity-setup4

Unity-setup5

Unity-setup6

Kurulumu yaptik programimizi actik heyecanliyiz ­čśë gelelim Unity yi a├ž─▒p ilk etapda cikan ekranda neler var gordugumuz seyler neler onlara bakal─▒m:

Unity-setup7

Unity-setup9

unity5

 

Hieracrhy : Bu listede oyun nesnelerimiz yer alir karakter yerler gokler gorup gorebilecegimiz hersey burada yer alir ilk etapda zaten bir kamera nesnesinin eklenmiz oldugunu gorebiliyoruz.

Inspector : adiindanda anlasilacagi gibi oyun nesnelerimizin pzelliklerini gorebildigimiz ve editleyebilgimiz penceredir kendisi ­čśë u ity i actiginizda sol tarafta hicbirsey gorunmuyorsa kamera nesnesine tikladigimizda bu kameranin ozelliklerini gorebiliriz.

Scene : orta kisimda bulunan bu yer bizim sahnemiz oyunumuzu bu sahne uzerinde goruntuleyip nesneleri burada yerlestiriyor olacagiz. Ilk bakildiginda kamerani. Sahne uzerine yerlesmis oldugunu gorebiliriz

Asagidaki pencere . Bu pencerede projemiz icersinde bulunan resimler spritelar materialler , script dosyalari kisaca proje icerigi yer alir.

Evet bu yazida bu kadar unity i kurduk ve pencereleri tanidk bir sonraki yazida 2 boyutlu bir oyuna baslayacagiz birlikte tabi cok hizli ilerlemeden ­čÖé tek makalede bi mario beklemeyin ­čśë ayrica projemizide yine size duyuruyor olacagiz ­čśë

┼×imdilik bu kadar ­čÖé

Umar─▒m Yararl─▒ Olur

Bilgiyle Kal─▒n

M.Zeki Osmanc─▒k

Windows 10 Klavye K─▒sayollar─▒ 1024 576 mezo

Windows 10 Klavye K─▒sayollar─▒

Merhaba arkada┼člar

Untitled

Windows 10 Pro Technical Preview son halini ald─▒ art─▒k d├╝n ak┼čam gelen sa─člam bir update ile s├╝rekli ┼čekil de─či┼čtiren Windows 10 stabil halini ald─▒ art─▒k diye umuyoruz ­čÖé Herneyse ben k─▒sayollardan bahsetmek istiyorum hemen k─▒saca ­čÖé Windows 10 da Linux ve MacOs ta bulunan multiDesktop ├Âzelli─či falan gelmi┼č ­čÖé Bunlar i├žinde k─▒sayol tu┼člar─▒n─▒ sizlerle payla┼čmak istedim ­čÖé

Pencereleri sa─ča sola yap─▒┼čt─▒rmak i├žin ┬á: Windows key + Sa─č yada Sol Yukar─▒ tu┼ču pencereyi full screen yapar A┼ča─č─▒ tu┼čuda full screnden normal pencere boyutu tekrar basarsan─▒zda simge boyutunda k├╝├ž├╝lt├╝r.

Penceler aras─▒ ge├ži┼č i├žin : Alt + Tab ÔÇô Bu bildi─čimiz Alt Tab

Task view: Windows + Tab ÔÇô Bu tu┼čla hem pencereler aras─▒ ge├ži┼č hemde desktoplar aras─▒ ge├ži┼č yapmak i├žin bir ekran a├ž─▒l─▒yor.

Yeni bir Desktop olu┼čturmak i├žin ┬á: Windows key + Ctrl + D

A├ž─▒k olan Desktop u kapamak i├žin┬á: Windows key + Ctrl + F4

Bu Desktoplar aras─▒ ge├ži┼č yapabilmek i├žin┬á┬á: Windows key + Ctrl + Sa─č yada Sol

 

Umar─▒m yararl─▒ olur

Bilgiyle Kal─▒n

M.Zeki OSMANCIK

 

 

Whatsapp PC ye Geldi :) 880 695 mezo

Whatsapp PC ye Geldi :)

Merhaba arkada┼člar

Art─▒k PC ba┼č─▒ndayken telefondan Whatsapp tan yaz─▒┼čma derdine son !!!!!┬áWhatsApp web versiyonunu a├ž─▒klad─▒ kullan─▒ma a├žt─▒ bile ­čśÇ Bende denedikten sonra hemen yazay─▒m dedim ­čÖé ┬áKulanmak i├žin ne yapmak gerek ­čÖé Android i┼čletim sistemli telefonunuzdan WhatsApp taki men├╝y├╝ a├ž─▒yorsunuz ve kar┼č─▒n─▒za bir WhatsApp Web se├žene─či geliyor a├žt─▒─č─▒n─▒zda bir kamera ├ž─▒k─▒yor kod mod bi┼či diyor ne olaki la bu derken hemen web.whatsapp.com adresine giriyorsunuz ve kar┼č─▒n─▒za sayfa ├ž─▒k─▒nca kafada ┼čim┼čekler ├žak─▒yor ­čśÇ neden kod istedi─čini anl─▒yoruz telefonumuzla kodu okutur okutmaz TA DAAAAAAAAA ­čśÇ WhatsApp art─▒k webde ­čśÇ klavyeden yaz yazabildi─čin kadar ­čśÇ

10947710_10153678930762366_181967451_n,whatsappweb

Web WhatsApp ├╝zerinden resim ├žekebiliyor yada mevcut resimleri g├Ânderebiliyorsunuz ve ses kayd─▒ yollayabiliyorsunuz ­čśë

Biz resim yollaman─▒n denemesini yapt─▒k bile i┼čte oda a┼ča─č─▒da g├Âzlerimizden ne kadar sevindi─čimiz belli oluyordur heralde ­čśŤ ­čśÇ

Untitled picture

Haydi Hepimize Hay─▒rl─▒ Olsun ­čśÇ

 

Bilgiyle Kal─▒n

M.Zeki Osmanc─▒k

Proje Geli┼čtirme S├╝re├žleri – V Model 1024 704 mezo

Proje Geli┼čtirme S├╝re├žleri – V Model

Merhaba arkada┼člar

Yeni bir g├╝n yeni bir Proje Geli┼čtirme S├╝reci olan V Model ile kar┼č─▒n─▒zday─▒m ­čÖé

Daha ├Ânce ki yaz─▒larda Waterfall ve Agile y├Ântemlerinden bahsetmi┼čtik. V model biraz Waterfall metoduna benzer. Yani Waterfallda oldu─ču gibi t├╝m analiz ve d├Âk├╝mantasyonun en ba┼čta yap─▒lmas─▒ ve bitirilmesi ihtiya├žlar─▒n kesinle┼čtirilmesi gerekiyor. Verification and Validation olarak bilinen ve V Model olarak k─▒salt─▒lan bu metotda Waterfall dan farkl─▒ olarak analiz ve ihtiya├žlar kesinle┼čtikten sonra yaz─▒l─▒m geli┼čtirmeye┬ába┼člamadan ├Ânce bir test plan─▒ olu┼čturulmal─▒d─▒r. Bu modelin yaz─▒l─▒m ve test d├Âng├╝leri ├žizildi─činde V harfi ortaya ├ž─▒kar ­čśÇ ┬áWalla ├ž─▒kar ­čśÇ a┼ča─č─▒daki resmi inceleyebiliriz ­čśÇ

V-Model

 

Resimde g├Âr├╝ld├╝─č├╝ gibi V harfi ├ž─▒k─▒yormu┼č ­čÖé resim ├╝zerinden bahsetmek gerekirse burada process s─▒ras─▒ olarak sol taraftan sa─č tarafa gidiliyor. ├ľncelikle Analizlerimiz ├ž─▒k─▒yor sonra Fonksiyonel ├Âzellikler belirleniyor sonra Dizayn a┼čamas─▒ndan ge├žiyor bu analizler ve Programc─▒lar─▒n anlayabilece─či ┼čekle getiriliyor en ortada kocaman yazd─▒─č─▒ gibi program─▒ kodluyoruz sonra unit testi unutmuyoruz onlars─▒z olmaz ­čśÇ unit testten sonra entegrasyon testi sonra sistem testi sonra kullan─▒c─▒ kabulu ve kapan─▒┼č ­čśÇ

Burada V harfininde bir ├Âzelli─či var asl─▒nda ┼čimdi her maddenin hemen kar┼č─▒l─▒─č─▒nda bir madde mevcut soldan sa─ča do─čru giderken kodlama a┼čamas─▒ndan sonra sa─č tarafta bulunan a┼čamalardan birinde bir sakatl─▒k bir eksik efendime s├Âyleyeyim bir istek arzu gelirse bu hemen kar┼č─▒s─▒ndaki a┼čamaya atlar yine resimde g├Âr├╝ld├╝─č├╝ gibi.

Yani User Acceptence a┼čamas─▒na gelmi┼č bir yaz─▒l─▒mda kullan─▒c─▒ bu ├╝r├╝n├╝ kabul etmezseeee ­čśÇ en ba┼ča d├Ân├╝yoruz ­čśÇ tekrar analiz tekrar falan falan falan ­čśÇ Sil ba┼čtan olmasada istenilen yeni ├Âzellik ile alakal─▒ t├╝m processler i├žin tekrar bir d├Âng├╝ tekrar bir i┼č tekrar bir ├žal─▒┼čma gerekiyor ­čÖé

V model ├žokda zor de─čil de─čilmi ­čÖé resim zaten a├ž─▒kl─▒yor…

Umar─▒m yararl─▒ olur

Bilgiyle Kal─▒n

M.Zeki OSMANCIK

 

Kanban Ne Ola ki ? 508 212 mezo

Kanban Ne Ola ki ?

Merhaba arkada┼člar

Proje geli┼čtirme s├╝re├žleri ve bu s├╝re├žlerde kullan─▒lan metotlar vs ile ilgili k├╝├ž├╝k bilgiler vermeye tam gaz devam ediyorum ­čśÇ S─▒rada Kanban var

Kanban, tam zaman─▒nda ├ťretim ortam─▒nda malzeme hareketlerinin kontrol├╝ amac─▒yla kullan─▒lan bir ├žizelgeleme yakla┼č─▒m─▒d─▒r. Toyota’n─▒n ├╝retim verimlili─čini art─▒rmak amac─▒yla Taiichi Ohno taraf─▒ndan geli┼čtirilmi┼čtir. Y├Ântem 1953’ten bu yana kullan─▒lmaktad─▒r. Asl─▒nda japoncada g├Ârsel i┼čaret veya kart anlam─▒na gelir. ├ťretimin tam zaman─▒nda ger├žekle┼čmesi konusunda ba┼čar─▒l─▒ bir metotdur. T├╝m olaylar─▒ g├Ârselle┼čtirir ve ├╝retim s├╝recini b├╝y├╝k resimde g├Ârme imkan─▒ sa─člar.

Toyotada kullan─▒lmaya ba┼člad─▒─č─▒na g├Âre k├╝├ž├╝k bir tahminle biraz hayalg├╝c├╝ ile bu sistemin asl─▒nda nas─▒l ├žal─▒┼čt─▒─č─▒n─▒ hayal etmek ├žok da zor de─čil. Bir ├╝retim hatt─▒ mevcut ve bu ├╝retim hatt─▒ ├╝zerinde ├╝r├╝n baz─▒ i┼člemlere tabi tutuluyor ve en son olarak bir ├╝r├╝n yani araba ortaya ├ž─▒k─▒yor. ├ľrneklemek gerekirse bir band ├╝zerinde ├Ânce araban─▒n iskeletine par├žalar s─▒ra ile tak─▒l─▒yor kap─▒lar , ├že┼čitli aksamlar , motoru ,camlar─▒, i├ž aksesuarlar─▒ gibi bu s─▒ra ile giden i┼člemlerde bir aksilik olmamas─▒ ├Ânemli bunun i├žinde s├╝re ve malzeme kontrol├╝ ├Ânemli ­čśë Kanban t├╝m bu i┼člemleri g├Ârselle┼čtirip takibi kolayla┼čt─▒r─▒yor ­čśë

Sen ne anlat─▒yorsun de─či┼čik ­čśÇ Toyota kullan─▒yorda bizdemi araba ├╝retece─čiz ? ┬ádiyebilirsiniz ­čśÇ demeyin ├ž├╝nk├╝ Kanban olay─▒n─▒n yaz─▒l─▒mada uyarlanmas─▒ ├žok da zor de─čil. Adamlar yapm─▒┼č 2004 y─▒l─▒nda bu Kanban felsefesini yani g├Ârselle┼čtirme i┼čini yaz─▒l─▒mada uyarlay─▒p bir metodoloji haline getirmi┼čler.

├ľzet olarak bahsetmek gerekirse Kanban metodu mevcut s├╝recinizde hemen bir de─či┼čikli─če gitmenizi zorunlu k─▒lmamas─▒ ├Ânemli avantajlar─▒ndan bir tanesi. Zamanla yaz─▒l─▒m─▒n veya s├╝recin evrimle┼čece─čini ├Âng├Âr├╝r.

Yani Kanban Yaz─▒l─▒m Geli┼čtirme S├╝reci veya Proje Y├Ânetimi diye bir ┼čey yoktur. Kanban bir s├╝re├ž de─čildir, s├╝rekli ak─▒┼č─▒ te┼čvik eden, hafif siklet bir metodtur.

Kanban, temelde 4 temel prensibi kullan─▒r:

  • Ne biliyorsan onunla ba┼čla,
  • Art─▒r─▒msal ve evrimsel de─či┼čimi takip etmeyi kabul et,
  • Mevcut s├╝rece, rollere, sorumluluklara ve ├╝nvanlara sayg─▒ g├Âster.
  • T├╝m seviyelerde liderli─či te┼čvik et

Bu prensipler akabinde KanbanÔÇÖ─▒n 5 ana ├Âzelli─čide ┼č├Âyle ├Âzetlenebilir┬á:

  • ─░┼č ak─▒┼č─▒n─▒ g├Ârselle┼čtirir
  • Ayn─▒ anda yap─▒lan i┼čleri s─▒n─▒rland─▒r─▒r
  • Ak─▒┼č─▒ y├Ânetmeyi ve ├Âl├žmeyi kolayla┼čt─▒r─▒r
  • S├╝re├ž ilkelerini belirgin k─▒lar
  • ─░┼čbirli─či yaparak iyile┼čtirmeyi sa─člar

Bu s├╝re├žte belli ad─▒mlarda yap─▒lan i┼č di─čer ad─▒mlarda yap─▒lan i┼člerden daha ├žabuk sonu├žlanabilir. Bir ad─▒m─▒n ├ž─▒kt─▒s─▒ di─čer bir ad─▒m─▒n girdisidir. Zaman─▒nda t├╝ketilemeyen g├Ârevler o ad─▒mda bir birikime neden olacakt─▒r. Kanbanda her bir ad─▒mda e┼č zamanl─▒ yap─▒lacak i┼člerin say─▒s─▒na bir s─▒n─▒r getirilmesi s├╝recin darbo─čazlar─▒n─▒n azalmas─▒na imkan tan─▒r. Bir ├╝retkenlik yarat─▒l─▒p arkadan gelmekte olan i┼čler i├žin bir yer a├žar. S─▒n─▒rlama getirilmemesi durumunda bir s├╝recin belli bir ad─▒m─▒nda ├žok i┼č yap─▒l─▒yor olmas─▒na ra─čmen biten bir i┼č olmayacakt─▒r. Sonu├ž olarak tak─▒m ne kadar ├žok ├žal─▒┼č─▒rsa ├žal─▒┼čs─▒n o zamana kadar bir de─čer ├╝retememi┼č olacakt─▒r.

├ľrnek olarak bir Web sayfas─▒ yap─▒yorsan─▒z bu a┼čamada tasar─▒m i├žin 1┬áki┼či , programlama i├žin 2 ki┼či oldu─čunu varsayarsak kodlamada ger├žekle┼čecek bir gecikme tasar─▒mdan ├ž─▒kan i┼čler bitip ,development a┼čamas─▒na gelen i┼čleri ├žo─čaltacak ve bu a┼čamada developer arkada┼člar zorlanacak belki de yeni bir developer ihtiyac─▒ do─čacak . Ama bu i┼čler s─▒n─▒rland─▒r─▒l─▒rsa bu dar bo─čaz yada i┼člerin belli a┼čamalarda artmas─▒ durumu desek daha do─čru olur biraz daha aza indirgenmi┼č olur. Ayr─▒ca Kanban ile b├╝y├╝k resim g├Âr├╝ld├╝─č├╝nden , resimde bu problemin y├Âneticiler taraf─▒ndan g├Âr├╝nt├╝lenmesi ┬á├žal─▒┼čanlar a├ž─▒s─▒ndan da ├Ânemli ve rahatlat─▒c─▒ bir ├Âzellik.

KanbanÔÇÖda g├Ârselle┼čtirme De─čer Ak─▒┼č diyagramlar─▒ ile ve kanban tahtas─▒ ile sa─članabilir. De─čer ak─▒┼č diyagramlar─▒ mevcut durumun, gelecekteki sistemin anla┼č─▒lmas─▒ ve israf─▒n ├Ânlenmesi i├žin kullan─▒l─▒r.
Kanban Tahtas─▒ ahanda a┼ča─č─▒daki gibi┬ábir┼čeydir.

kanban-movement

Resimde g├Âr├╝ld├╝─č├╝ gibi i┼čler belli ba┼čl─▒klarla ayr─▒l─▒r her i┼č bitti─činde bir sonraki a┼čamaya ge├žer ve bitirilirler.

Kanban ile kendi ki┼čisel i┼člerinizi bile takip etmek kolay ­čśë bunun i├žin internet ortam─▒nda kullan─▒lan baz─▒ uygulamalarda mevcut. ­čśë

Umar─▒m Yararl─▒ Olur

Bilgiyle Kal─▒n

M. Zeki OSMANCIK

C# ile Powerpoint Sunumu Haz─▒rlamak 554 382 mezo

C# ile Powerpoint Sunumu Haz─▒rlamak

Merhaba arkada┼člar
Uzun s├╝reden beri bir makale yazmaya vakit bulam─▒yorum ama yava┼č yava┼č geri d├Ân├╝yorum. Bu yaz─▒da sizlere zevkli k├╝├ž├╝k bir ├Ârnek g├Âstermek istiyorum. ­čśÇ C# ├╝zerinden program yard─▒m─▒ ile PowerPoint sunumu haz─▒rlaman─▒n nas─▒l oldu─ču ile ilgili ba┼člang─▒├žta ├žok i┼činize yarayacak bir kod par├žas─▒
Bunun i├žin ├Âncelikle bir windows Forms projesi a├žal─▒m ve 1 tane Buton ekleyelim ­čÖé Projemiz i├žersine Referans olarak 2 ├Ânemli k├╝t├╝phane eklememiz gerekiyor. Sa─ča t─▒klay─▒p “Add Reference” dedikten sonra “COM” sekmesi i├žersinde bulunan microsoft graph 15.0 object library ve microsoft PowerPoint 15.0 object library k├╝t├╝phanelerini se├žip ekleyelim.
Art─▒k gerisi ├žok kolay ­čÖé i┼čte bundan sonra i┼či yapacak olan kod par├žas─▒

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using Microsoft.Office.Interop.PowerPoint;
using Microsoft.Office.Core;

namespace testToCreatePttFileFromImages
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

private void button1_Click(object sender, EventArgs e)
{
string pictureFileName = “C:\\picToVideo\\2.jpg”;

Microsoft.Office.Interop.PowerPoint.Application pptApplication = new Microsoft.Office.Interop.PowerPoint.Application();

Microsoft.Office.Interop.PowerPoint.Slides slides;
Microsoft.Office.Interop.PowerPoint._Slide slide;
Microsoft.Office.Interop.PowerPoint.TextRange objText;

// Create the Presentation File
Presentation pptPresentation = pptApplication.Presentations.Add(MsoTriState.msoTrue);

Microsoft.Office.Interop.PowerPoint.CustomLayout customLayout = pptPresentation.SlideMaster.CustomLayouts[Microsoft.Office.Interop.PowerPoint.PpSlideLayout.ppLayoutText];

// Create new Slide
slides = pptPresentation.Slides;
slide = slides.AddSlide(1, customLayout);

// Add title
objText = slide.Shapes[1].TextFrame.TextRange;
objText.Text = “The Header Of The Presentation”;
objText.Font.Name = “Arial”;
objText.Font.Size = 32;

//objText = slide.Shapes[2].TextFrame.TextRange;
//objText.Text = “this text come after the heading with bullet”;

Microsoft.Office.Interop.PowerPoint.Shape shape = slide.Shapes[2];
slide.Shapes.AddPicture(pictureFileName, Microsoft.Office.Core.MsoTriState.msoFalse, Microsoft.Office.Core.MsoTriState.msoTrue, shape.Left, shape.Top, shape.Width, shape.Height);

//slide.NotesPage.Shapes[2].TextFrame.TextRange.Text = “the text is for the notes to specific page”;

pptPresentation.SaveAs(@”c:\picToVideo\fppt.pptx”, Microsoft.Office.Interop.PowerPoint.PpSaveAsFileType.ppSaveAsDefault, MsoTriState.msoTrue);
pptPresentation.Close();
pptApplication.Quit();

}
}
}

Java – AES Algoritmas─▒ ile Encryption ve Decryption 691 618 mezo

Java – AES Algoritmas─▒ ile Encryption ve Decryption

Merhaba arkada┼člar

Bu yaz─▒mda sizlere AES algoritmas─▒ kullarak nas─▒l Encryption i┼člemi yapabilirsiniz en basit haliyle anlatmak istiyorum. Eclipse i a├žt─▒k yeni bir Java projesi olusturduk sonras─▒nda 2 adet class’─▒ projemiz i├žersine ekledik isimleri TEST.java┬á ve ENCRYPT.java.

Ama├ž asl─▒nda Encrypt.java class ─▒n─▒ ba┼čka projelerde de kullan─▒lacak ┼čekilde dizayn etmek ­čśë

Encrypt class ─▒ i├žersine a┼ča─č─▒daki kodlar─▒ ekleyeceksiniz. ­čÖé

import java.security.*;
import javax.crypto.*;
import javax.crypto.spec.SecretKeySpec;
import sun.misc.*;
public class encrypt {

	private static final String ALGO = "AES";
	private static final byte[] keyValue =  new byte[] 
        { 'M', 'e', 'Z', 'O', 'b', 'l', 'o','g', 's', 'B', 'e','s', 't', 'K', 'e', 'y' };

	public static String encrypt(String Data) throws Exception {
		Key key = generateKey();
		Cipher c = Cipher.getInstance(ALGO);
		c.init(Cipher.ENCRYPT_MODE, key);
		byte[] encVal = c.doFinal(Data.getBytes());
		String encryptedValue = new BASE64Encoder().encode(encVal);
		return encryptedValue;
	}
	public static String decrypt(String encryptedData) throws Exception {
		Key key = generateKey();
		Cipher c = Cipher.getInstance(ALGO);
		c.init(Cipher.DECRYPT_MODE, key);
		byte[] decordedValue = new BASE64Decoder().decodeBuffer(encryptedData);
		byte[] decValue = c.doFinal(decordedValue);
		String decryptedValue = new String(decValue);
		return decryptedValue;
	}
	private static Key generateKey() throws Exception {
		Key key = new SecretKeySpec(keyValue, ALGO);
		return key;
	}
}

Ard─▒ndan test.java yani ├žal─▒┼čt─▒r─▒lacak olan class ─▒m─▒z i├žersinde main metodu bulunduran class i├žersinede a┼ča─č─▒daki kodlar─▒ ekliyorsunuz. Encrypt class─▒ i├žersinde olu┼čturdu─čumuz metotlar─▒ ├ža─č─▒r─▒yoruz.

public class test {
	public static void main(String[] args) {
		String password = "Hello Word ─░t's MEZO Blog";
		String passwordEnc;
		String passwordDec;
		try {
			passwordEnc = encrypt.encrypt(password);
			passwordDec = encrypt.decrypt(encrypt.encrypt(password));

			System.out.println("Plain Text : " + password);
			System.out.println("Encrypted Text : " + passwordEnc);
			System.out.println("Decrypted Text : " + passwordDec);
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
}

Ve i┼člemimiz bitti i┼čte bu kadard─▒ ­čÖé┬á art─▒k Run As Java Application diyerek ├žal─▒┼čt─▒r─▒yor a┼ča─č─▒daki ├ž─▒kt─▒m─▒z─▒ al─▒yoruz.

 

Programımızın Çıktısı
Encrypt edilecek Text : Hello World It’s MEZO Blog
Encrypt edilmi┼č Text : 2loMo4Zhrtsbqg/4NOk1MpYp1uVbXkDwUNZKnons30o=
Decrypt edilmi┼č Text : Hello World It’s MEZO Blog

 

Umar─▒m Yararl─▒ Olmu┼čtur

Bilgiyle Kal─▒n

M.Zeki OSMANCIK

─░lk Bilgisayar… 436 308 mezo

─░lk Bilgisayar…

 

Merhaba arkada┼člar

Internette dolan─▒rken ilk bilgisayar resimleri denk geldi sizlerlede payla┼čmak istedim ­čÖé┬á ­čśŤ ortalama 120 m2 bir alan i├žersinde a┼ča─č─▒daki ablalar─▒n kablolar─▒ soketlere sokup ├ž─▒karmas─▒yla i┼člem yap─▒yormu┼č.:D hatta bu DEBUG olay─▒da bu bilgisayar─▒n soketlerinden birinin i├žersindeki bir b├Âce─čin bulunmas─▒ ile ├ž├Âz├╝len sorun ard─▒ndan ├ž─▒km─▒┼č… ­čśÇ

ilk-bilgisayarlari-gorunce-sasiracaksiniz_bda2

 

ilk-bilgisayarlari-gorunce-sasiracaksiniz_f412

ilk-bilgisayarlari-gorunce-sasiracaksiniz_1b3f

ilk-bilgisayarlari-gorunce-sasiracaksiniz_3291

ilk-bilgisayarlari-gorunce-sasiracaksiniz_4109

ilk-bilgisayarlari-gorunce-sasiracaksiniz_3268

 

JSP MasterPage Sayfas─▒ Nas─▒l Yap─▒l─▒r? 299 299 mezo

JSP MasterPage Sayfas─▒ Nas─▒l Yap─▒l─▒r?

Merhaba arkada┼člar

JSP ile u─čra┼čmaya devam ederken ASP.Net in k─▒ymetini biraz daha iyi anlamaya ba┼čl─▒yorum ve sizlerede anlatmaya devam ediyorum.

Ba┼čl─▒ktanda anla┼č─▒laca─č─▒ gibi JSP web sayfalar─▒nda ASP.Net de bulunan masterpage gibi bir ┼čablon olu┼čturup o ┼čablon ├╝zerinde nas─▒l i┼člem yapar─▒z biraz bahsedelim ­čÖé

Arkada┼člar JSP sayfalar─▒na ekleyebilece─činiz bir Masterpage yap─▒s─▒ YOK !!! Maalesef ki yok…

Peki nap─▒yoruz o kadar ba┼čl─▒k a├žt─▒k bari bir yol yordam g├Âsterelim de─čilmi ­čśŤ ┬áDiyelim ki a┼ča─č─▒daki giib bir yap─▒m─▒z var ve bunun b├╝t├╝n sayfalar i├žin ┼čablon olmas─▒n─▒ istiyoruz.

layout

Hemen kendimize Header.jsp ad─▒nda bir dosya olu┼čturup bu dosya i├žersine istedi─činiz header da bulunmas─▒ gereken kodlar─▒ yerle┼čtiriyorsunuz ├Ârne─čin ┬áa┼ča─č─▒daki kodlar gibi ­čÖé
[codebox 1]
Sonra hemen devam ediyoruz Footer.jsp ad─▒nda bir dosya daha ekleyip i├žersine istenilen HTML kodlar─▒n─▒ yaz─▒yorsunuz. Gerekiyorsa LeftMenu.jsp ad─▒nda bir jsp dosyas─▒ daha ekleyip sonra index.jsp yani anasayfam─▒za geliyoruz ┼čimdi bunlar─▒ index.jsp i├žine tek tek ekleyip dosya ├╝zerinden kullan─▒lmas─▒n─▒ sa─člayaca─č─▒z. PHP gibi yani. ­čÖé ┬áA┼ča─č─▒daki gibi sayfalar─▒n i├žersine tek tek <jsp:include page=ÔÇŁheader.jspÔÇŁ/> tag─▒n─▒ kullanarak istedi─čimiz alanlar─▒n farkl─▒ sayfalar ├╝zerinden tek bir sayfada g├Âsterilmesi i┼člemini ger├žekle┼čtirebiliyoruz.

[codebox 2]

─░┼čte b├Âyle ­čÖé Masterpage kadar g├╝zel olmasada bu da bir y├Ântem ­čÖé

Umar─▒m Yararl─▒ Olur. ­čśÇ

Bilgiyle Kal─▒n

M.Zeki Osmanc─▒k

 

Java JSP Projesi Olu┼čturmak 452 302 mezo

Java JSP Projesi Olu┼čturmak

Merhaba arkada┼člar

─░┼čim gere─či biraz Java ile u─čra┼čmam gerekti─činden Java ile alakal─▒ yaz─▒larda payla┼čmaya ba┼člayaca─č─▒m sizlerle. Bu yaz─▒da sizlere JSP projesi nas─▒l olu┼čturulur ├žal─▒┼čt─▒r─▒l─▒r resimlerle anlatmak istiyorum.

├ľnce Eclipse laz─▒m bize hemen Eclipse i indirebilece─čimiz linke ┬ágidiyoruz ve download ediyoruz ­čÖé

01

Zip dosyas─▒n─▒n i├žindeki eclipse klas├Âr├╝n├╝ ├ž─▒kar─▒n.

02

Exe sinden Eclipse i ├žal─▒┼čt─▒r─▒n

04

Bir workspace belirleyin ki Eclipse projelerinizin hepsini oraya kaydetsin ­čśë

005

Eclipse a├ž─▒ld─▒─č─▒na g├Âre ┼čimdi proje a├ž─▒p i┼čimize bakabiliriz ­čÖé ┬á┼×imdi File men├╝s├╝nden “New” o sekmeden de “Other” se├žene─čini se├žiyoruz (yada Ctrl+N k─▒sayoluda i┼čimizi g├Âr├╝r)

06

Yeni Proje penceresinde Dynamic Web Project ┬áse├žmemiz gerekiyor e─čer bu projeyi g├Âremiyorsan─▒z k├Ât├╝ haber yanl─▒┼č Eclipse versiyonunu indirmi┼čsiniz demektir ­čÖé hemen JAVA EE versiyonunu indirmeniz gerekiyor ­čÖé

07

─░lk JSP projesi oldu─ču i├žin Eclipse TomCat ile ilgili bir┼čey kurmuyor yada olu┼čturmuyor o y├╝zden Target ┬áRunTime bo┼č geliyor. Aktif etmemiz gerekiyor. ­čśë

08

New Runtime butonuna t─▒klad─▒─č─▒n─▒zda dikkat etmemiz gereken k├╝├ž├╝k bir tik var. Create a new local server i i┼čaretlemeyin┬á

09

Tomcat i indirip kurmu┼č oldu─čunuzu farzederek devam ediyorum ­čÖé kurmad─▒ysan─▒z hemen kurun hemen ­čÖé

TomCat i nereye kurmu┼čsan─▒z bir ├Ânceki pencereden se├žti─činiz versiyonun nerede kurulu oldu─čunu g├Âstermeniz gerekiyor ­čśë

10

Bu i┼člemden sonra art─▒k ┬áNew Dynamic Web Project k─▒sm─▒nda g├Âr├╝nt├╝lenmeyen Target Runtime da TomCat bir se├ženek olarak g├Âr├╝nt├╝lenecek.

11

Art─▒k Finish butonu ile birlikte projemizi g├Âr├╝nt├╝leyebiliriz ­čśë

12

 

Projemiz bombo┼č bizi kar┼č─▒l─▒yor ve bundan sonras─▒nda sayfalar─▒m─▒z─▒ eklememiz gerekiyor hemen WebContent ┬áklas├Âr├╝ ├╝zerine sa─č t─▒k New ile bir JSP dosyas─▒ eklememiz gerekiyor ­čÖé

13

14

 

Ana sayfa olmas─▒n─▒ istiyoruz o halde index ismini kullanmal─▒y─▒z ­čśë Bu pencerede nereye eklenece─čini se├žip ard─▒ndan ismini belirledikten sonra Finish ┬ábutonuna basm─▒yorsunuz. Next ile devam ediyoruz.

15

New JSP File(html) se├žiyoruz ┬áve Finish ile JSP dosyam─▒z─▒ olu┼čturmu┼č oluyoruz ­čśë┬á┬áindex.jsp vatana millete hay─▒rl─▒ olsun ­čśë

16

Sayfam a├ž─▒ld─▒─č─▒na g├Âre nas─▒l ├žal─▒┼čt─▒─č─▒ ile ilgili bir bilgi olaca─č─▒ndan ├žok basit ┼čekilde nas─▒l ├žal─▒┼čt─▒─č─▒n─▒ g├Âstereyim.

17Tamamd─▒r ├žok basit bir toplama i┼člemi ile nas─▒l kod yazaca─č─▒m─▒z─▒ g├Ârm├╝┼č olduk ­čśÇ ┬á┼×imdi ├žal─▒┼čt─▒rma vakti geldi bakal─▒m nas─▒l g├Âr├╝n├╝yor ­čÖé

18

├çal─▒┼čt─▒r butonuna bast─▒ktan sonra Run As penceresi ├╝zerinden “Run on Server” se├žilerek OK butonu ile devam ediyoruz.

19

Localde kendi makinam─▒z ├╝zerinde yeni bir TomCat server olu┼čturuyoruz.

20

Projemiz olu┼čturdu─čumuz TomCat server ├╝zerinde build edilmeye ba┼člayacak ve index.jsp dosyam─▒z bilgisayar─▒m─▒zdaki Eclipse ├╝zerinde g├Âr├╝nt├╝lenmeye ba┼člayacak. Yazd─▒─č─▒m─▒z koda g├Âre ekranda 4 g├Âr├╝yorsak dinamik bir web sayfas─▒na ilk ad─▒m─▒ att─▒k demektir. ­čÖé

21

┼×imdi browser ├╝zerindede g├Âr├╝nt├╝leyelim ve toplama i┼člemimizin sonucunu g├Ârelim ­čśë

22

Browserdaki kaynak kodlara bakarsak buradada sadece 4 oldu─čunu yazd─▒─č─▒m─▒z kodlar─▒n g├Âr├╝nt├╝lenmedi─čini g├Âr├╝yoruz ­čśë

24

Son olarak server i durdurarak i┼člemimize son veriyoruz ­čÖé

25

Hay─▒rl─▒ ve u─čurlu olsun ilk JSP uygulamam─▒z─▒ yapm─▒┼č olduk ­čÖé

Umar─▒m yararl─▒ olur

Bilgiyle Kal─▒n

M.Zeki Osmanc─▒k

 

 

Training – ASP.NET MVC 4 Application Development 376 292 mezo

Training – ASP.NET MVC 4 Application Development

Hello my fellow Padawans  

I found this complete set of ASP.Net MVC 4 training and i thought that it will be so useful for everyone. Its from pluralsight but you don’t need to login or sign up to web site. I watched all of it and I really like style of Scott Allen. Here’s the content of this training.

77-asp-net-mvc-4-codingcluster-745669
  • Introduction
  • Web Installer
  • The Tools
  • New Project
  • Modules, Views, Controller
  • Making Changes
  • Unit Testing
  • JavaScript and CSS
  • Summary

Click Here for watch Videos 

Stay with force

Mezo

Kolon Ad─▒n─▒ Tablolarda Aramak 150 150 mezo

Kolon Ad─▒n─▒ Tablolarda Aramak

Merhaba arkada┼člar
Uzun zamand─▒r bir konu anlatm─▒yorum ancak hatalar ve d├╝zeltilmeleri ile ilgili yaz─▒lar payla┼č─▒yorum en k─▒sa zamanda bir ka├ž g├╝zel konu ile kar┼č─▒n─▒zda olaca─č─▒m ­čÖé
Sizlere bahsetmek istedi─čim k─▒sa konum SQL de Kolon Ad─▒n─▒ Tablolarda Aramak: Diyelim ki database i├žersinde sadece kolon ad─▒n─▒ biliyorsunuz veya kolon ad─▒n─▒n i├žinden bir kelime hat─▒rl─▒yorsunuz hangi tabloda merak ediyorsunuz i┼čte size g├╝zel bir sorgu ­čÖé Bu sorgu ile kolon ad─▒na g├Âre tablo aramas─▒ yapabilirsiniz. ─░┼čte o sorgu ­čÖé

select TABLE_CATALOG, TABLE_SCHEMA, TABLE_NAME, COLUMN_NAME
from INFORMATION_SCHEMA.COLUMNS
where COLUMN_NAME like '%aranacak_kelime%'
and TABLE_CATALOG='Database_Adi'

Umar─▒m yararl─▒ olur
Bilgiyle Kal─▒n
M.Zeki OSMANCIK

Cannot use the special principal ÔÇśsaÔÇÖ. Microsoft SQL Server, Error: 15405 Hatas─▒ 622 197 mezo

Cannot use the special principal ÔÇśsaÔÇÖ. Microsoft SQL Server, Error: 15405 Hatas─▒

Merhaba gen├žler ­čÖé

Hemen size s─▒cak s─▒cak bilgi payla┼čay─▒m.

MS SQL server m─▒ kullan─▒yorsunuz ? ┬áVeritabanlar─▒n─▒z─▒ ba┼čka bir yerden restore veya attach mi yapt─▒n─▒z ? ┬áLogin kullan─▒c─▒ SA nin db yetkilerini vermek mi istiyorsunuz ama ba┼čaram─▒yormusunuz ? ─░┼čte do─čru adrestesiniz ­čśÇ

Konumuz┬áCannot use the special principal ÔÇśsaÔÇÖ. Microsoft SQL Server, Error: 15405 Hatas─▒ ­čÖé ┬á5 dk ├Ânce beni deli eden ama ├ž├Âz├╝m├╝ basit bir problemden bahsedece─čim ┼čimdi.

Veritabanlar─▒n─▒ restore ettikten sonra SA kullan─▒c─▒s─▒na dbowner yetkisi vermek istedi─čimde kar┼č─▒ma b├Âyle bir hata ├ž─▒kt─▒

Hatam─▒z─▒n g├Âr├╝nt├╝s├╝ ┼č├Âyle g├╝zel bir hata :

Untitled picture

Bu hatay─▒ al─▒yorsan─▒z hi├ž u─čra┼čmay─▒n arkada┼člar hemen New Query hangi DB ile i┼člem yapacaksan─▒z se├žin ve ┼ču kodu ├žal─▒┼čt─▒r─▒n olsun bitsin ­čÖé

 

exec sp_changedbowner 'sa','true'

 

Umar─▒m Yararl─▒ Olur

Bilgiyle Kal─▒n ­čÖé

M.Zeki Osmanc─▒k

 

The type initializer Hatas─▒… 611 193 mezo

The type initializer Hatas─▒…

Merhaba arkada┼člar
Sql Server 2008 i kald─▒r─▒p tekrar kurmak zorunda kald─▒m. ancak bunu yapt─▒─č─▒mda kar┼č─▒ma bir hata ├ž─▒kt─▒. Sizlerle payla┼čmak istedim hata ┼č├Âyle

vVkwW
Error >

TITLE: Microsoft SQL Server Management Studio
ÔÇöÔÇöÔÇöÔÇöÔÇöÔÇöÔÇöÔÇöÔÇöÔÇö

The type initializer for ÔÇśMicrosoft.SqlServer.Management.Dmf.PolicyStoreÔÇÖ threw an exception. (Microsoft.SqlServer.Dmf)

ÔÇöÔÇöÔÇöÔÇöÔÇöÔÇöÔÇöÔÇöÔÇöÔÇö
ADDITIONAL INFORMATION:

Could not load file or assembly ÔÇśMicrosoft.SqlServer.Diagnostics.STrace, Version=10.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91ÔÇ▓ or one of its dependencies. The system cannot find the file specified. (Microsoft.SqlServer.Dmf)

ÔÇöÔÇöÔÇöÔÇöÔÇöÔÇöÔÇöÔÇöÔÇöÔÇö
Internette ara┼čt─▒r─▒nca gerekli gereksiz herkes bir ┼čeyler s├Âylemi┼č yok onu y├╝kle yok Visual Studio yu kald─▒r kur yok onu ekle kald─▒r gibi gibi. Bunlardan baz─▒lar─▒n─▒ deneyip vakit kaybettikten sonra bir ┼čey denemek geldi i├žimden bir ses dediki REPAIR et ye─čen dedi.
├çal─▒┼čt─▒rd─▒m SQL Server Setup ─▒ ve Repair ettim ve sorun ├ž├Âz├╝ld├╝ ­čÖé

Umar─▒m faydal─▒ olur
Bilgiyle Kal─▒n
M.Zeki Osmanc─▒k

String Char Dizisidir! 920 300 mezo

String Char Dizisidir!

Merhaba arkada┼člar
├çal─▒┼čt─▒─č─▒m ┼čirkette bulunmu┼č oldu─čum proje i├žin Senior yani 2 3 y─▒l deneyimi olan developer arkada┼člar ar─▒yoruz ve bunun ile ilgili m├╝d├╝r├╝m m├╝lakat g├Âr├╝┼čmelerine benimde girmemi rica etti bende seve seve kabul ettim. M├╝lakatta gelen arkada┼člara neler yapt─▒─č─▒n─▒ sordu─čumuzda herkes g├╝zel g├╝zel anlat─▒yor yapt─▒klar─▒n─▒ i┼č g├Âr├╝┼čmesinde g├Âze girmek i├žin hepimizin yapt─▒─č─▒ gibi her┼čeyi anlat─▒yor anlatmaya gayret ediyor. Ancak

Dikkatimi ├žeken bir konu var ki i┼čte oda bu yaz─▒y─▒ sizlerle payla┼čmak isteyi┼čimin as─▒l sebebi : Senior olarak al─▒nacak ve daha ├Ânce bir ├žok projede g├Ârev alm─▒┼č olan arkada┼člar ├žok ├žok ├žok basit bir sorudan elendiklerinin veya olumsuz bir not ald─▒klar─▒n─▒n fark─▒nda de─čiller.┬áString bir de─či┼čken i├žindeki karakterlerin say─▒lmas─▒ ve i┼člem yap─▒lmas─▒ ile ilgili bir sorumuz var ve burada herkese hi├žbir string metot vs kullanmay─▒n diye de uyar─▒yoruz tahmin etti─činiz gibi basit k├╝├ž├╝k bir algoritma sorusu.
Ne var bunda diyebilirsiniz i┼čte konu bu zaten ­čÖé arkada┼člar─▒n hi├ž biri string bir char dizisidir deyip bu ┼čekilde foreach ile veya for ile kodunu ka─č─▒da d├Âkmeye ba┼člamad─▒. Herkes bir ipucu verilmesini bekliyor yada farkl─▒ yollarla bir array e ├ževirme i┼čine giriyor.Halbuki ismini yazarken bile asl─▒nda bir karakter dizisi kulland─▒─č─▒n─▒n fark─▒nda bile de─čil.
K├╝├ž├╝k ayr─▒nt─▒lar veya bilgiler hayat kurtar─▒r yada iyi yerlere getirebilir.

Unutmayın  String bir Char dizisidir.

Umar─▒m Yararl─▒ Olur ve bunu okuyan arkada┼člar m├╝lakatlarda ba┼čvurduklar─▒ g├╝zel i┼č yerlerine sevdikleri i┼čleri yapmak ├╝zere girebilirler.

Bilgiyle kal─▒n

M.Zeki Osmanc─▒k

SOLID OOP Prensipleri 511 409 mezo

SOLID OOP Prensipleri

Merhaba arkada┼člar
Bu yaz─▒mda sizlerle OOP yazarken dikkat etmemiz gereken OOP yi ger├žek anlam─▒yla programlar─▒m─▒za veya web sitelerimize uygulama a┼čamas─▒nda nelere dikkat etmeliyiz bu konyu i┼čleyen SOLID OOP Prensipleri┬áile ilgili k├╝├ž├╝k bir bilgilendirme yapaca─č─▒m
OOP yi herkes bilir az ├žok anlat─▒r veya basit y├Ântemlerle uygular yada uygulad─▒─č─▒n─▒ sanar. Halbuki OOP programlama yaparken bir tak─▒m prensipler uygulanmal─▒d─▒r. Bu prensiplerin ba┼č harflerinden olu┼čan bir keyword var elimizde. SOLID
Solid 5 ayr─▒ prensibin birle┼čmi┼č halidir ve OOP yaparken uygulamam─▒z gereken kurallardan bahsederler. Hadi bakal─▒m bu akrosti┼č ┼čiir tad─▒ndaki prensipler neymi┼č g├Ârelim:
1- Single Responsibility Principle
2- Open/Closed Principle
3- LiskovÔÇÖs Substitution Principle
4- Interface Sergregation Principle
5- Dependency Inversion Principle
─░lk madde ile ba┼člayal─▒m k├╝├ž├╝k a├ž─▒klamalar yapmaya.
1. Single Responsibility Principle : Bu prensibe g├Âre bir metot, s─▒n─▒f,nesne vb. yap─▒lar─▒n yanl─▒zca bir tane g├Ârevi olur. Bir metot, s─▒n─▒f,nesne vb. de─či┼čtirmek i├žin yanl─▒zca bir sebebimiz olmal─▒d─▒r. Birden fazla nedenimiz varsa bir yanl─▒┼čl─▒k var ve bu prensibe uymuyoruz anlam─▒na gelir. Ama├ž her metot, s─▒n─▒f,nesne vb. yap─▒ya tek bir g├Ârev tek bir sorumluluk y├╝klemektir.
2. Open/Closed Principle : Yazm─▒┼č oldu─čunuz metot, s─▒n─▒f,nesne vb. yap─▒lar geli┼čtirmeye a├ž─▒k ancak de─či┼čtirmeye kapal─▒ olmal─▒d─▒r. Bu ne demektir peki: yazm─▒┼č oldu─čunuz kod asla de─či┼čtirilmemelidir yanl─▒zca ├╝zerine eklemeler yap─▒lmal─▒d─▒r. Kodlar─▒m─▒z─▒ yazarken bu ┼čekilde dizayn etmeliyiz.
3. LiskovÔÇÖs Substutions Principle : Bu prensibe g├Âre alt s─▒n─▒flardan elde etti─činiz bir nesne ile ├╝st s─▒n─▒ftan elde edilen nesne yer de─či┼čtirirse bu de─či┼čim kesinlikle ve kesinlikle ayn─▒ davran─▒┼ča sahip olmal─▒d─▒r. Yani ├Ârnekleyecek olursak OOP anlat─▒rken hep bahsetti─čimiz bir ├Ârnek olan CANLI s─▒n─▒f─▒m─▒z olsun ve bu CANLI ad─▒ndaki s─▒n─▒f─▒m─▒z INSAN ve HAVYAN adl─▒ iki s─▒n─▒fa kal─▒t─▒m vermi┼č olsun. Bu prensipte anlat─▒lmaya ├žal─▒┼č─▒lan ┼čey e─čer ben bir i┼člemde CANLI s─▒n─▒f─▒n─▒ kullan─▒yorsam ve i┼člemlerim ba┼čar─▒l─▒ oluyorsa INSAN veya HAYVAN s─▒n─▒f─▒ndan ald─▒─č─▒m ├Ârnekler ilede ayn─▒ i┼člemleri ba┼čar─▒l─▒ olarak ger├žekle┼čtirebilmeliyim i├žersinde bunu engelleyecek ba┼čka metot, s─▒n─▒f,nesne vb. yap─▒lar bulunmamal─▒ demek istiyor.
4. Interface Sergregation Principle : Prensip olarak ayn─▒ ├Âzelliklere sahip olan s─▒n─▒flar─▒ tek bir interface de toplamak sonradan o s─▒n─▒flar─▒n hepsinde kesin olarak kullan─▒lmayacak olan ba┼čka metot, s─▒n─▒f,nesne vb. yap─▒lar─▒ bu interface i├žersine eklemek do─čru de─čildir. Ilk ba┼čta belki bir ├ž├Âz├╝m olabilir ama prensip olarak yanl─▒┼čt─▒r. ├ç├Âz├╝m ise interface ÔÇśleri par├žalamakt─▒r. Kesin olarak kullan─▒lacak olan ortak metot, s─▒n─▒f,nesne vb. yap─▒lar─▒ ayr─▒ ayr─▒ interface ler i├žersinde toplayarak s─▒n─▒flara implement etmektir.
5. Dependency Inversion Principle : Somut s─▒n─▒flara olan ba─č─▒ml─▒l─▒─č─▒ soyut s─▒n─▒flar veya interface ler ile ortadan kald─▒rmakt─▒r. Yani bir servis s─▒n─▒f─▒m─▒z var ve bu servis s─▒n─▒f─▒ DB i┼člemleri ile ilgili i┼člemler ger├žekle┼čtiriyor. Ba┼čka bir A s─▒n─▒f─▒ ├╝zerinden bu Servis s─▒n─▒f─▒na ba─č kurup i┼člemlerimizi ger├žekle┼čtirirken ├╝retti─čimiz A s─▒n─▒f─▒m─▒z i├žersinde servis s─▒n─▒f─▒n─▒n bir ├žok ├Ârne─či al─▒nacak ve bir ├žok yerde kullan─▒labilecek ve kodlar─▒m─▒z─▒ de─či┼čtirirken ba─čl─▒ olan k─▒s─▒mlarda de─či┼čecek yada servis s─▒n─▒f─▒nda yap─▒lan bir de─či┼čiklik bizim servisi kullanan A s─▒n─▒f─▒m─▒zdada de─či┼čikliklere sebep olacak . Ama├ž bu ba─č─▒ml─▒l─▒─č─▒ ortadan kald─▒rmak ve daha g├╝zel bir kod ortam─▒ sa─člamak.
Bu prensiplerde kod yazmak zorunlu olarak yapman─▒z gereken bir ┼čey de─čil ama bu ┼čekilde yazman─▒n tek bir amac─▒ var daha az hata daha g├╝zel kodlar ­čśÇ
Bilgiyle Kal─▒n
M.Zeki Osmanc─▒k

Ejderha M─▒zra─č─▒ – Efsaneler ├╝├žlemesi 270 385 mezo

Ejderha M─▒zra─č─▒ – Efsaneler ├╝├žlemesi

Merhaba arkada┼člar

Bir arkada┼č─▒m─▒n uzun ─▒srarlar─▒na dayanamayarak Ejderha M─▒zra─č─▒ serisine ba┼čl─▒yorum. Ufak bir ara┼čt─▒rma yapt─▒m sizlerle payla┼čmak isterim ­čÖé

Ejderha M─▒zra─č─▒ Destan─▒ Margaret Weis ve Tracy Hickman taraf─▒ndan yaz─▒lm─▒┼č kitap serisidir. Seri asl─▒nda arabayla i┼č g├Âr├╝┼čmelerine giderken Laura ve Tracy Hickman taraf─▒ndan yarat─▒lm─▒┼čt─▒r. Serinin orijinal dili olan ─░ngilizcede bas─▒lm─▒┼č 190’dan fazla kitab─▒ vard─▒r. Ejderha M─▒zra─č─▒ d├╝nyas─▒n─▒n as─▒l yarat─▒c─▒lar─▒ Margaret Weis ve Tracy Hickman olsa da bir├žok yazar yarat─▒lan d├╝nyaya ve kurallar─▒na sad─▒k kal─▒p onlar─▒ kullanarak Ejderha M─▒zra─č─▒ d├╝nyas─▒yla ilgili pek ├žok kitap yazm─▒┼čt─▒r. ├ľyle ki serinin kitaplar─▒n─▒n b├╝y├╝k bir k─▒sm─▒n─▒n yazarlar─▒ farkl─▒d─▒r. Aslen ├╝├ž kitap olup, sonradan karakter derinle┼čtirmeleri, yan hik├óyeler, ge├žmi┼č ve gelecek eklemeleriyle b├╝y├╝m├╝┼č ve b├╝y├╝meye devam etmektedir.┬áKitaplar─▒n ├žo─ču Krynn adl─▒ d├╝nyan─▒n Ansalon adl─▒ k─▒tas─▒nda ge├žer. Ansalon’un kuzey-do─čusunda yer alan Taladas k─▒tas─▒ az olsa bile hik├óyelerde kullan─▒lm─▒┼čt─▒r. Adlatum k─▒tas─▒nda ge├žen bir hik├óye hen├╝z yaz─▒lmam─▒┼čt─▒r.
T├╝rk├žeye ilk olarak Ankira daha sonra Arkabah├že Yay─▒nc─▒l─▒k ve son olarak da Laika Yay─▒nc─▒l─▒k taraf─▒ndan ├ževrilmi┼čtir.
─░lk yaz─▒lan Ejderha M─▒zra─č─▒ kitaplar─▒, birinci nesil karakterlerin ├ž─▒kt─▒─č─▒ yolculuk ve maceralar─▒n─▒ i├žeren, G├╝z Alaca Karanl─▒─č─▒n─▒n Ejderhalar─▒, K─▒┼č Gecesi Ejderhalar─▒ ve ─░lkbahar ┼×afa─č─▒ Ejderhalar─▒ adl─▒ ├╝├ž kitapl─▒k seridir. Kurgu ilk olarak Margaret Weis ve Tracy Hickman’─▒n da i├žinde bulundu─ču masa├╝st├╝ rol yapma oyunundan yarat─▒lm─▒┼čt─▒r. Margeret Weis’in oyundaki karakteri Raistlin Majere’dir.

T├╝m kitaplar─▒ bulamad─▒m ancak bulursam bu yaz─▒y─▒ g├╝ncelleyerek PDF format─▒nda bu kitaplar─▒ sizlerle payla┼čaca─č─▒m. ┼×imdilik elimde Efsaneler ├╝├žlemesi serisi bulunuyor. ─░yi okumalar diliyorum

ikizlerin-sava┼č─▒

─░kizlerin Sava┼č─▒ indirmek i├žin t─▒klay─▒n┬á

ikizlerin zaman─▒

─░kizlerin Zaman─▒ indirmek i├žin t─▒klay─▒n

ikizlerins─▒nav─▒

─░kizlerin S─▒nav─▒ ┬áindirmek i├žin t─▒klay─▒n

Umar─▒m Yararl─▒ Olur

Bilgiyle Kal─▒n

M.Zeki Osmanc─▒k

 

Design Patterns (Tasar─▒m Deseni) Nedir ? 1024 777 mezo

Design Patterns (Tasar─▒m Deseni) Nedir ?

Merhaba arkada┼člar
Konumuz Design Pattern ­čÖé Biliyorum bir ├žok ki┼či bu konu hakk─▒nda bir┼čeyler yazm─▒┼čt─▒r ancak birde ben yazay─▒m dedim. Benim blogumda neden design pattern yok ben neden yazm─▒yorum dedim ­čÖé ve i┼čte Design Pattern…
Design Pattern genel olarak yaz─▒l─▒m tasar─▒m─▒ s├╝recinde s├╝rekli kar┼č─▒la┼č─▒lan problemlere ├ž├Âz├╝mler ├╝reten haz─▒r kal─▒plard─▒r. ─░stenilen herhangi bir yere yerle┼čtirildi─činde ├žal─▒┼čan haz─▒r tasar─▒mlar de─čildirler. ─░┼čin asl─▒ problemler i├žin bulunan ├ž├Âz├╝mlere yap─▒lan a├ž─▒klamalard─▒r
OOP(Object Oriented Programming) prensipleri do─črultusunda olu┼čturulan s─▒n─▒flar─▒n ba┼čka s─▒n─▒flara ba─č─▒ml─▒l─▒─č─▒n─▒n en aza indirgenmesi beklenir. Bu durum esnek bir yap─▒y─▒ beraberinde getirir ve yaz─▒l─▒m─▒n kalitesi artar. ─░leride gerekecek geli┼čtirmelere daha m├╝sait bir yap─▒ sa─člam─▒┼č olur. Bu yap─▒, yaz─▒l─▒mc─▒ya ve o yaz─▒l─▒mc─▒dan sonra gelecek yaz─▒l─▒mc─▒ya zamandan ve i┼č g├╝c├╝nden ciddi manada tasarruf sa─člar.
Tasar─▒m ┼čablonlar─▒ a┼ča─č─▒da yer alan ortak ├Âzelliklere sahiptir:

  • Edinilen tecr├╝beler sonunda ortaya ├ž─▒km─▒┼člard─▒r.
  • Amerikan─▒n tekrar tekrar ke┼čfedilmesini engeller ­čśÇ .
  • Tekrar kullan─▒labilir kal─▒plard─▒r.
  • Ortak kullan─▒larak daha b├╝y├╝k problemlerin ├ž├Âz├╝lmesine katk─▒ sa─člarlar.
  • Devaml─▒ geli┼čtirilerek, genel bir ├ž├Âz├╝m olmalar─▒ i├žin ├žaba sarfedilir.

Tasar─▒m ┼čablonlar─▒ de─či┼čik kategorilere ayr─▒l─▒r. Bunlar:

  • Olu┼čturucu tasar─▒m ┼čablonlar─▒ (creational patterns)
  • Yap─▒sal tasar─▒m ┼čablonlar─▒ (structual patterns)
  • Davran─▒┼čsal tasar─▒m ┼čablonlar (behavioral patterns)

Olu┼čturucular

  • Abstract Factory
  • Builder
  • Factory Method
  • Prototype
  • Singleton

Yap─▒sal

  • Adapter
  • Bridge
  • Facade
  • Decorator
  • Composite
  • Flyweight
  • Proxy

Davran─▒┼čsal

  • Command
  • Memento
  • Strategy
  • Iterator
  • State
  • Chain Of Responsibility
  • Mediator
  • Observer
  • Template Method
  • Visitor

Bu desenlerin yanl─▒zca ├žok ├žok basit a├ž─▒klamas─▒. Yukarda sayd─▒─č─▒m desenleri tek tek a├ž─▒klamay─▒ planl─▒yorum ­čÖé Zaman bulduk├ža yaz─▒yor olaca─č─▒m. Sizlerde beni bekliyor olun ­čśÇ
Bilgiyle Kal─▒n ­čśë
M.Zeki Osmanc─▒k

The Real Reasons YouÔÇÖre Unhappy at Work 375 375 mezo

The Real Reasons YouÔÇÖre Unhappy at Work

You hate your boss. Your coworkers give you the cold shoulder. Your to-do list is either painfully boring or terrifyingly long. These sound like valid reasons to hate your job. But in truth, theyÔÇÖre only the surface cause of your misery. Dig deeper, and youÔÇÖll discover underlying reasons youÔÇÖre unhappy at work that are, fortunately, fixable.
ÔÇťThe ÔÇśI hate my job because (fill in the blank)ÔÇÖ usually exists because too much time has passed where the ÔÇśblankÔÇÖ has gone unattended to,ÔÇŁ says human resources expert Tiffani Murray. ÔÇťOr other circumstances make the ÔÇśblankÔÇÖ appear bigger than it ought to be. Stepping back, assessing where you want to be in your job and career and digging deeper into the hatred is the way to find resolution and determine a next step.ÔÇŁ
Keep reading for eight reasons you might be unhappy at workÔÇôand how to solve them.

What You Say: ÔÇťIÔÇÖm Bored at WorkÔÇŁ

The_Real_Reasons_YouÔÇÖre_Unhappy-17d30a97363ddfcf4ddd4086a886fb95
The Real Reason: Your efforts have been unrecognized.
The Symptoms: You feel unmotivated. You seek out diversions to real work, such as updating social media or shopping a flash sale.
The Solution: Seek out feedback.
If youÔÇÖre bored at work, it could be because youÔÇÖve been doing the same thing for too long and youÔÇÖre ready for a change. Or it could be that you feel no matter how hard you work, you never get that ÔÇťatta girl!ÔÇŁ you deserve. If either is the case, seeking out feedback from your boss is a way to end this morale killer.
ÔÇťA lot of times, a supervisor is not aware that someone is looking to move up the ladder,ÔÇŁ Murray says. ÔÇťIf you donÔÇÖt say anything, and you appear to be doing your job well, the thought usually is, ÔÇśLetÔÇÖs keep that person in that job.ÔÇÖ You have to take the initiative and let your boss know, ÔÇśI want more opportunities to learn more things.ÔÇÖÔÇŁ
So, the next time you submit that big project and get zero feedback in return, donÔÇÖt let it discourage you. Instead, ask your boss what she thought of it, and ask her for something more challenging next time around.

What You Say: ÔÇťThe Hours are Too LongÔÇŁ
The Real Reason: YouÔÇÖre overloaded with responsibilities but are afraid to push back and say, ÔÇťNo, I canÔÇÖt take on more.ÔÇŁ
The Symptoms: YouÔÇÖre the first in and/or the last to leave, and even when youÔÇÖre not at work you have a Pavlovian response to the ÔÇťdingÔÇŁ from your smartphone.
The Solution: Talk to your boss about suggestions on ways to better organize and prioritize your workload.
ÔÇťSome people donÔÇÖt know how to say ÔÇśnoÔÇÖ to added responsibilities, and with the way the economy has been thereÔÇÖs been a lot of fear around saying ÔÇśno,ÔÇÖÔÇŁ says Murray. ÔÇťBut now that the economy is turning around, tell your boss you need to discuss your workload and get better ideas on how to organize it.ÔÇŁ
Ideally, having this conversation will open your bossÔÇÖ eyes to exactly how much you have to get done–and how impossible that is within a 40-hour workweek. Also, she might give you guidance on what to prioritize and what deadlines can be spaced out a bit more. This can give you some much-needed breathing room (and some recognition from a supervisor who might not have realized how much youÔÇÖve been working).

What You Say: ÔÇťI Hate My Co-workersÔÇŁ
The_Real_Reasons_YouÔÇÖre_Unhappy-8e10051a986eb8f983038520cf91d789The Real Reason: The problem might not be the people but rather the culture of the organization.
The Symptoms: You feel ganged up on or left out, or you find yourself arguing–a lot.
The Solution: If the culture isnÔÇÖt the right match for you, you should consider moving on.
If the workplace culture doesnÔÇÖt mesh with your personality, odds are the people there wonÔÇÖt either. For example, if the business feeds on competition amongst coworkers, and youÔÇÖre not a competitive type, youÔÇÖre going to chafe at that type of energy. And thatÔÇÖs going to make you hate the guy whoÔÇÖs constantly trying to one-up you, even if in doing so heÔÇÖs just getting his job done.
If leaving the job isnÔÇÖt feasible, figure out how to make the environment less stressful. If there are people you particularly abhor, make sure you take your lunch an hour after or before they do. Or request a desk change. And think about the end game. ÔÇťFocus on your work and your goals,ÔÇŁ says Murray. ÔÇťGive yourself an 18-24 month time limit. During that time, strive for a promotion and get it. Then, start looking for your next job.ÔÇŁ
Before doing something that drastic, realize that work friends often only last as long as youÔÇÖre at that job. Focus instead on strengthening your friendships outside of the office.

What You Say: ÔÇťIÔÇÖm Underpaid.ÔÇŁ
The Real Reason: You feel stifled and unfulfilled.
The Symptoms: SimpleÔÇôyou look at your paycheck and grumble.
The Solution: Find out what opportunities exist for you not only to get promoted to a higher-paying job, but to contribute more to growing the company.
Making a lot of money definitely makes life easier. You pay your bills, you even have a little left over for the fun stuff. But if you hang your work happiness on that biweekly paycheck, youÔÇÖre giving short shrift to what happens every other day of the week. You have to show up, you have to perform, and, ideally, you have to feel satisfied by the work you do. If you feel fulfilled professionally and are given the license to be creative and develop new ideas on the job, you will get satisfaction that goes beyond the paycheck.
ÔÇťPeople want to be heard,ÔÇŁ says Sandy Mazur, division president at Spherion Staffing Services. ÔÇťBase salary is a way of attracting someone to a company. But if you look at what makes people stay in their jobs, base pay takes a backseat to how well they can advance their careers. People also want to know their opinion matters. Then you take more ownership of the job.ÔÇŁ
Ask your boss for ways you can contribute more to the team. Give her ideas on how processes could be done more efficiently. Have an idea for a new product? Take a deep breath and pitch it. When your paycheck isnÔÇÖt your only payoff at work, youÔÇÖre bound to feel more fulfilled.

What You Say: ÔÇťI Feel Trapped in this JobÔÇŁ
The Real Reason: You are bored and unchallenged by your job, yet quitting is not an option.
The Symptoms: You dread Mondays and the days feel incredibly long.
The Solution: Find inspiration in places outside of work.
One in four workers rates his job satisfaction as fair or poor, according to Spherion’s Emerging Workforce Study. ThatÔÇÖs a lot of bored employees. ÔÇťWhen you spend so much time doing boring things, it affects other parts of your life,ÔÇŁ says Nicole Williams, LinkedInÔÇÖs Career Expert and author of ÔÇťGirl on Top.ÔÇŁ ÔÇťYou feel really tired, not because you are tired, but because you canÔÇÖt get out of the rut.ÔÇŁ
To motivate yourself, find a mentor or go to a career-related conference that will remind you of why you chose your profession in the first place. Or become a mentor yourself. Sometimes motivating someone else can have the benefit of motivating you as well, Williams says.
If that doesnÔÇÖt work, stop trying to find your inspiration at work. ÔÇťPhysically challenge yourself,ÔÇŁ says Williams. ÔÇťTake a walk. Go for a run. Or find something else you are interested in and do that. When you get involved in something you are interested in, your workday can feel less boring.ÔÇŁ
To solve the ÔÇťtrappedÔÇŁ feeling on the job, ask yourself when was the last time you took on an assignment that truly scared you. If itÔÇÖs been a while, have a conversation with your supervisor about taking on extra responsibility. Trying something new at work can be equally liberating.

What You Say: ÔÇťI Hate My BossÔÇŁ
The_Real_Reasons_YouÔÇÖre_Unhappy-c9bfdcd74e077caa5416cc3217900f7fThe Real Reason: Your boss doesnÔÇÖt fully recognize your efforts causing you to feel unappreciated and resentful.
The Symptoms: When his name is in your inbox or you hear his voice coming down the hall, you cringe.
The Solution: Ask your boss for feedback on your performance, and give him some feedback on his.
If someone is constantly telling you what to do but never giving you any recognition for your efforts, yeah, itÔÇÖs easy to hate that guy. The same is true if his or her management style is contrary to your personality. If your boss uses yelling and name-calling to get results, and thatÔÇÖs not what motivates you, you will learn to dread those weekly staff meetings.
But hatred can be diffused by communication, says Williams. ÔÇťA lot of times bosses donÔÇÖt recognize that what they are doing is causing problems,ÔÇŁ she says. For example, if your boss is a screamer Williams advises you tell her, ÔÇťI know you must be frustrated, and I know itÔÇÖs a hard job, but IÔÇÖm going to perform better if you donÔÇÖt scream at me.ÔÇŁ One of WilliamsÔÇÖ clients tried this approach and was successful. ÔÇťThe boss said, ÔÇśI didnÔÇÖt realize I was raising my voice to that degree.ÔÇÖ There was surprisingly receptive feedback to that conversation. And often, negative boss behavior is bully behavior. Once theyÔÇÖre called out on it, they usually go and pick on someone else.ÔÇŁ

What You Say: ÔÇťI Chose the Wrong CareerÔÇŁ
The Real Reason: YouÔÇÖve given up on your dreams.
The Symptoms: Feeling discontented and as if work is something you have to do, not something you could ever enjoy.
The Solution: Pursue your dream outside the office.
Maybe you chose the career your parents wanted for you, rather than the one you wanted. Or you did all the hard work to get the necessary training and degrees only to realize that you hate the work you now have to do. Either way, youÔÇÖre no longer chasing your dream, and that can leave you discouraged.
ÔÇťWomen rationalize by saying, ÔÇśI should relocate for this job. I need the salary to support my family. I spent six years in school for this.ÔÇÖ TheyÔÇÖre talking about what they should do and have to do, instead of living from their authentic self,ÔÇŁ says Career Expert Cornelia Shipley. ÔÇťSolving this involves reconnecting to your dream in some way.ÔÇŁ
Maybe you wanted to be a ballerina but your parents encouraged you to get your MBA instead. S,o start taking dance classes again, teach dance or join the board at your local dance company. Maybe you became a doctor because you wanted to help the poor, but your student loans quickly led you to a different path. Volunteer at a clinic in a low-income neighborhood.
ÔÇťAsk yourself, ÔÇśWhat is the truth behind my dream today, and how do I incorporate that dream into my life?ÔÇÖÔÇŁ Shipley says. ÔÇťIf you connect the dots, you will get to the truth of┬áwhat it is you truly want to do.ÔÇŁ

What You Say: ÔÇťIÔÇÖve Hit the CeilingÔÇŁ
The_Real_Reasons_YouÔÇÖre_Unhappy-01ba4562048b38dc4f18e6f38352870aThe Real Reason: YouÔÇÖve given up control of your career to someone else.
The Symptoms: You feel powerless over your career and donÔÇÖt see a way out of the job youÔÇÖre in.
The Solution: Communicate where you want to be and ask for help getting there.
YouÔÇÖve been walking into the same cubicle for five years, doing the same work, barely getting cost-of-living raises, and you donÔÇÖt see a way that things will change. Maybe your company is small and has very little opportunities for advancement or youÔÇÖve looked for other jobs but nothing has panned out. And so you work, watch the clock and have stopped planning for the future. If so, youÔÇÖre not alone: only 28 percent of employees are satisfied with their current growth and earnings potential, according to data from Spherion’s Emerging Workforce Study.
Instead of puttering along in neutral, you need to create a new path for yourself. DonÔÇÖt wait for your boss to suddenly notice you. Instead, ÔÇťYou have to decide which job you want and go after it,ÔÇŁ says Shipley. Approach your boss about what opportunities there are for your advancement. Talk to human resources about job openings in other departments that might suit you. Get the extra schooling or training that will help make you more attractive to employers. But most of all, take control of your own career.
ÔÇťIf you put your boss in charge of making things happen for you, you will be disappointed,ÔÇŁ says Shipley.

 

link

Samsung Galaxy Note 2 Root ─░┼člemi 455 466 mezo

Samsung Galaxy Note 2 Root ─░┼člemi

Merhaba arkada┼člar

Samsung Galaxy Note 2 telefon ald─▒m ve al─▒┼čkanl─▒k olarak kulland─▒─č─▒m baz─▒ uygulamalar─▒n ROOT i┼člemi yap─▒lmadan kullan─▒lamad─▒─č─▒ i├žin yerimde duramad─▒m Galaxy Note 2 yi root i┼člemine tabi tuttum. Sizlerlede payla┼čay─▒m dedim ­čÖé

├ľncelikle ┬ás├Âylemek isterim ki telefonunuzun ┼čarj─▒ full olmal─▒d─▒r. Bu┬áy├╝kleme┬ái┼člemi herhangi bir ┼čekilde yar─▒m kal─▒rsa┬átelefonunuz┬átekrardan a├ž─▒lmayabilir. Herhangi bir sorunda ┬áwww.mzekiosmancik.com sorumlu de─čildir. Sorumlulu─čun tamamen kendinize ait oldu─čunu bilerek kuruluma ba┼člamal─▒s─▒n─▒z.

İlk olarak ODIN programını buradan indiriyorsunuz. Ardından Root dosyasını buradan indiriyorsunuz.

Bu iki dosyay─▒ indirdikten sonra Galaxy Note 2 telefonumuzu Download Mode ‘ da a├ž─▒yorsunuz.

DSC00031

 

 
NOT:┬áBunun i├žin telefon kapal─▒yken G├╝├ž + Ses K─▒sma + Menu tu┼člar─▒na ayn─▒ anda basmal─▒s─▒n─▒z. Bu tu┼člara bast─▒ktan sonra kar┼č─▒n─▒za bir menu gelecektir Ses A├žma tu┼čuna basarsan─▒z bir android resmi sizi kar┼č─▒lar ve telefonunuzun y├╝klemelere haz─▒r oldu─čunu g├Âsterir. Yandaki resimde Download Mode da telefonunuzun ekran─▒n─▒n nas─▒l g├Âr├╝nece─čini g├Ârebilirsiniz.
 

 

 

Telefonumuzu Download Mode da a├žt─▒ktan sonra s─▒ra geldi ODIN program─▒n─▒ ├žal─▒┼čt─▒rmaya ­čÖé ODIN i ├žal─▒┼čt─▒r─▒p telefonumuzu kablomuzla bilgisayara ba─člad─▒─č─▒m─▒zda ┼č├Âyle bir ekran kar┼č─▒m─▒zda olmal─▒.

odin1

 

Added yaz─▒s─▒n─▒ g├Ârd├╝ysek s─▒ra geldi ROOT dosyas─▒n─▒ eklemeye. ─░ndirmi┼č oldu─čunuz root dosyas─▒n─▒ PDA butonuna basarak se├žin sonra kar┼č─▒n─▒za ┼č├Âyle bir ekran gelecek.

odin2

 

Art─▒k haz─▒rs─▒n─▒z ­čÖé ┼×imdi START butonuna t─▒klayarak i┼člemi ba┼člat─▒n. Kurulum s├╝rd├╝kten sonra SUCCES yaz─▒s─▒n─▒ g├Ârd├╝─č├╝n├╝zde telefonunuz yeniden ba┼člayacak ve belki bir soru sorabilir size recovery ile alakal─▒ bu soruyada ses a├žma kapama tu┼člar─▒yla y├Ânlendirme yap─▒p YES se├žtikten sonra…

Veeee Galaxy Note 2 telefonunuz art─▒k ROOT i┼člemi tamamlanm─▒┼č ve yeni ├Âzelliklerinin sizin taraf─▒ndan ke┼čfedilmesini bekliyor olacak ­čÖé

Umar─▒m yararl─▒ olur

Bilgiyle Kal─▒n

M.Zeki OSMANCIK

LDF Olmadan Database Olu┼čturmak 512 512 mezo

LDF Olmadan Database Olu┼čturmak

Merhaba arkada┼člar
Sabah─▒n k├Âr├╝nde kar┼č─▒ma ├ž─▒kan ilgin├ž bir konuyu sizlerle payla┼čmak istiyorum. LDF dosyas─▒ olmadan database olu┼čturabilir miyiz ? Cevab─▒m─▒z evet
Neden b├Âyle bir┼čey isteyelim ki demeyin isteyen istiyor ­čśÇ
─░┼čte gerekli scrip ­čśÇ

Umar─▒m Yararl─▒ Olur
Bilgiyle Kal─▒n
M.Zeki OSMANCIK

C# Dynamic Nesnesi 350 106 mezo

C# Dynamic Nesnesi

Merhaba arkada┼člar
Bu yaz─▒mda C# daki yeni bir keyword’ den bahsetmek istiyorum DYNAMIC.
Dynamic keyword u C# 4.0 ile birlikte 2010 da gelen bir keyword. Bu keyword Dynamic Language Runtime (DLR) yi y├Ânetir DLR dedi─čimiz olay t─▒pk─▒ CLR (Common Language Runtime) gibi ├žal─▒┼čan bir yap─▒d─▒r. Dynamic bir nesne Dynamic tipindeki classlar─▒n y├Ânetiminin nas─▒l y├Ânetilece─čini belirler. T─▒pk─▒ CLR de oldu─ču gibi tamamen runtime da derlenir ve ├žal─▒┼č─▒rlar.

Diyelim ki iki farkl─▒ class olu┼čturmak istiyoruz ancak i├žersinde ayn─▒ isimden 2 metot olacak daha sonra s├Âz konusu Dynamic s─▒n─▒fdan bir instance al─▒yorsunuz. Dynamic nesne ile ayn─▒ isimdeki ancak farkl─▒ classlar i├žersindeki metotlar─▒ ├ža─č─▒rabiliyorsunuz.

Bir de ├Ârne─če g├Âz atal─▒m ­čśÇ

├ľrnek

├ç─▒kt─▒ da ┼×├Âyle oluyor ┼čekil ├Ârnek 1 A ­čśÇ

output

Database’de bulunan tablo say─▒s─▒ bulma 750 374 mezo

Database’de bulunan tablo say─▒s─▒ bulma

Merhaba gen├žler ­čÖé
Veritaban─▒ndaki tablo say─▒s─▒ n─▒ ├Â─črenmek i├žin a┼ča─č─▒daki sorguyu ├žal─▒┼čt─▒rabilirsiniz ­čśë


Umar─▒m yararl─▒ olur
Bilgiyle Kal─▒n
M.Zeki Osmanc─▒k

DataTable ‘dan List e D├Ân├╝┼čt├╝rme 342 204 mezo

DataTable ‘dan List e D├Ân├╝┼čt├╝rme

Merhaba arkada┼člar

Bu yaz─▒da sizlere DataTable ile gelen veriyi List<T> olarak geri d├Ând├╝rmek istersek bu d├Ân├╝┼čt├╝rmeyi LambdaExpressions /LINQ ile nas─▒l yapabiliriz ondan bahsetmek istiyorum.

Umar─▒m Yararl─▒ Olur
Bilgiyle Kal─▒n
M.Zeki Osmanc─▒k

Command Prompt Telnet Hatas─▒ 672 315 mezo

Command Prompt Telnet Hatas─▒

Merhaba arkada┼člar

Baz─▒ durumlarda ┬átelnet kullanmak isteyebilirsiniz ancak Command Prompt ta telnet komutu yazd─▒─č─▒n─▒zda ┼č├Âyle bir hata ile kar┼č─▒la┼čabilirsiniz┬á‘telnet’ is not recognized as an internal or external command,operable program or batch file. ┬áE─čer b├Âyle bir hata ile kar┼č─▒la┼č─▒rsan─▒z ─░lk yapman─▒z gereken Telnet Client y├╝kl├╝ m├╝ ona bakman─▒z gerekiyor y├╝kl├╝ de─čilse┬áyapman─▒z gereken ┼čey ┼ču ┬áDenetim Masas─▒ -> Program Ekle Kald─▒r -> Windows ├ľzellikleri Ekle ┬ásayfas─▒n─▒ a├ž─▒p Telnet Client ├Âzelli─čini y├╝klemeniz yeterli olacakt─▒r. Y├╝kl├╝ ama ayn─▒ hatay─▒ al─▒yorsan─▒z o zaman ba┼čka bir ├ž├Âz├╝m olarak ┬áCommand ┬áPrompt ta “Windows dizinine girerek yada Windows / System32 dizinine girerek bu dizin i├žersinde telnet i ├žal─▒┼čt─▒rmay─▒ deneyebilirsiniz.

Untitled picture

Umar─▒m Yararl─▒ Olur

Bilgiyle Kal─▒n

M.Zeki Osmanc─▒k

 

 

Windows 8 G├╝venli Mod da Nas─▒l A├ž─▒l─▒r? 500 277 mezo

Windows 8 G├╝venli Mod da Nas─▒l A├ž─▒l─▒r?

Merhaba arkada┼člar

Bilgisayar─▒m─▒z─▒ bazen g├╝venli modda a├žmak isteyebilirsiniz belki bir vir├╝s belki bir program─▒ kald─▒rmak i├žin olabilir. ┬áNormalde Windows 7 ve daha ├Âncesinde bilgisayar a├ž─▒l─▒rken F8 tu┼čuna basarak a┼ča─č─▒daki resimdeki ekran ile bu i┼člemi ger├žekle┼čtirebilirdik.

SafeModeF8

 

Windows 8 G├╝venli Mod e ge├žince bu i┼č biraz daha farkl─▒ olmu┼č ­čÖé Biraz ara┼čt─▒rma ile bulabildim. Windows 8 de Bilgisayar─▒n─▒z─▒ g├╝venli modda a├žabilmek i├žin “Geli┼čmi┼č Ba┼člatma Se├ženekleri” ni Ayarlar b├Âl├╝m├╝nde a┼ča─č─▒daki resimdeki gibi araman─▒z ve bulman─▒z gerekiyor.

guvenli-mod

 

Geli┼čmi┼č Ba┼člatma Se├ženeklerini a├žt─▒ktan sonra “Genel” sekmesi alt─▒nda en altta bulunan geli┼čmi┼č ba┼člang─▒├ž se├žene─čini se├žmelisiniz.

guvenli-mod-2

┼×imdi yeniden ba┼člat buton bast─▒─č─▒n─▒zda bilgisayar─▒n─▒z yeniden ba┼člayacak size bir men├╝ ├ž─▒karacak burada say─▒ veya F tu┼člar─▒yla birini se├žmenizi isteyecektir.

4 tu┼čuyla G├╝venli ModÔÇÖu,
5 tu┼čuyla A─č deste─či ile G├╝venli ModÔÇÖu,
6 tu┼čuyla ilse Komut ─░stemi ile G├╝venli ModÔÇÖu ba┼člat─▒yoruz

Umar─▒m Yararl─▒ Olur

Bilgiyle Kal─▒n

M.Zeki Osmanc─▒k

 

 

 

Service ‘IISADMIN’ (IISADMIN)failed to start Hatas─▒n─▒n Giderilmesi 671 389 mezo

Service ‘IISADMIN’ (IISADMIN)failed to start Hatas─▒n─▒n Giderilmesi

Merhaba arkada┼člar
Bu yaz─▒mda ba┼č─▒ma gelen 3 g├╝n beni u─čra┼čt─▒ran bir hata ile kar┼č─▒n─▒zday─▒m ­čÖé 3 g├╝n u─čra┼č─▒lmayacak bir hata asl─▒nda ama yanl─▒┼č tarafa focus olunca mecburen bu y├Ânde ara┼čt─▒ma yap─▒p sonuca ula┼čamad─▒m ancak sonunda buldum ­čÖé
Herkesin s─▒k kulland─▒─č─▒ bir al─▒┼čveri┼č sitesinin projesi i├žin g├Ârevlendirildim ve bilgisayar─▒ma ├Ânce Commerce Server 2007 kurup daha sonra Commerce Server 2009 a y├╝kseltmem gerekiyordu. Commerce Server 2007 kurarken bir uyar─▒ veriyor bu uyar─▒ ┼č├Âyle : “Service ‘IISADMIN’ (IISADMIN)failed to start”. Verify that you have sufficient privileges to start system services”. Bu hatay─▒ Ignore se├žene─či ile ge├žebiliyoruz. Ge├žmeyin sak─▒n┬á!!!­čśÇ
E─čer bu hatay─▒ Ignore ile ge├žerseniz Commerce Server 2009 kurulurken Fatal Error hatas─▒ al─▒p bu hata genel bir hata ├ž├Âz├╝m arad─▒─č─▒n─▒zda bir ├žok alakas─▒z kaynak ├ž─▒k─▒yor. ─░┼čte bu Fatal Error e odakland─▒─č─▒m i├žin 3 g├╝n u─čra┼čt─▒m ­čÖé
Ancak as─▒l sorun ISSADMIN hatas─▒ bunu ├ž├Âzmemiz gerekiyormus┬áasl─▒nda ­čÖé ┼×imdi nas─▒l ├ž├Âzd├╝─č├╝m├╝ anlatay─▒m.

Commerce Server i├žin IIS kurulmas─▒ ┼čart bunu Program Ekle Kald─▒r dan Windows ├ľzelliklerinden ekleyebilirsiniz. Sadece Internet Information Service i i┼čaretleyip devam ederseniz (benim gibi) ISSADMIN hatas─▒n─▒ al─▒rs─▒n─▒z ­čśÇ Bu hatay─▒ almamak i├žin IIS kurarken alt─▒ndaki se├ženeklerde yer alan IIS 6 Management Compatibility Pack da i┼čaretli olmal─▒ b├Âylelikle┬áCommerce Server kurulurken ├ž─▒kan IISADMIN hatas─▒n─▒ ve dolay─▒s─▒ ile Commerce Server 2009 da ki Fatal Error u de engellemi┼č oluyorsunuz ­čÖé
Umar─▒m Yararl─▒ Olur
Bilgiyle Kal─▒n
M.Zeki OSMANCIK

HttpCookie Nedir ? 279 180 mezo

HttpCookie Nedir ?

Merhaba arkada┼člar
HttpCookie yap─▒s─▒ndan ├Ânce ├žok temel bilgi olarak Cookie nedir ondan bahsedelim ­čÖé
Cookie Nedir?
Bir web sayfas─▒ sunucusunun sizin bilgisayar─▒n─▒z─▒n hard diskine yerle┼čtirdi─či ufak bir text dosyas─▒d─▒r. Yani, o web sitesinin bir sonraki ziyarette sizi tan─▒mas─▒ i├žin ge├žerli bir bilgidir. Bu text dosyas─▒ bir komut dosyas─▒ olmad─▒─č─▒ gibi, vir├╝s de de─čildir. Size ├Âzel bir tan─▒mlamad─▒r ve sadece bu kodu tan─▒mlayan web sunucusu taraf─▒ndan okunabilir.CookieÔÇÖnin amac─▒; sizin o siteyi yeniden ziyaret etti─činizi web sunucuya bildirmekten ibarettir.

HttpCookie Nedir?
Asp.Net ile yapt─▒─č─▒m─▒z sitelerimizde Cookie olu┼čturmak i├žin kulland─▒─č─▒m─▒z bir class t─▒r. Cookie nin y├Ânetimini HttpRequest ve HttpResponse class ile ger├žekle┼čtirilir.
HttpCookie yi olu┼čturmak i├žin

HttpCookie MyCookie = new HttpCookie("Cerezim");

Instance al─▒nd─▒ktan sonra i├žersindeki property leride ┼ču ┼čekilde k─▒saca a├ž─▒klayabiliriz.
Domain: Cookie nin etki alan─▒n─▒ ayarlamak i├žin kullan─▒l─▒r.
Expires: Cookie nin ge├žerlilik s├╝resini ayarlamak i├žin kullan─▒l─▒r DateTime tipinde de─čer al─▒r.
HasKeys: Cookie i├žersinde alt anahtarlar olup olmad─▒─č─▒n─▒ kontrol etmek i├žin kullan─▒l─▒r.
HttpOnly: Cookie ye client taraf─▒ndan javascript kodlar─▒ taraf─▒ndan ula┼č─▒labilir olmas─▒n─▒ sa─člayan bir property dir.
Item: HttpCookie.Values ├Âzelli─či i├žin bir k─▒sayoldur. Bu ├Âzellik Active Server Pages (ASP) nin ├Ânceki s├╝r├╝mleriyle uyumluluk sa─člamak i├žin kullan─▒l─▒r.
Name: Cookie ye bir isim verir veya cookie ismini okuyabilidi─čimiz property.
Path: Cookie nin sanal adresini atay─▒p okuyabildi─čimiz property
Secure:SSL uzerinden kullanilacak olan cookie ler ile ilgili guvenlik degerlerinin atandigi property dir.HTTPS uzerinden kullanilabilir
Value:Cookie i├žersine yerle┼čtirilecek olan de─čeri atamak i├žin kullan─▒l─▒r.
Values: Cookie i├žersine birden fazla de─čer atayabilmek i├žin kullan─▒l─▒r.

Cookie tan─▒mlayabilmek i├žin HttpCookie s─▒n─▒f─▒ndan bir ├Ârnek al─▒p ┼ču ┼čekilde kullanabiliriz.

HttpCookie MyCookie = new HttpCookie("Cerezim");
MyCookie = Request.Cookies.Get("Cerezim");
if(MyCookie!=null)
{
Response.Write(MyCookie.Value);
}

Simdilik bu kadar daha sonraki yazilarda ayrintili sekilde nasil cookie tanimlayip kullanabiliriz ornek proje ile destekleyip gosterecegim.
Umarim yararli olur
Bilgiyle Kalin
M.Zeki OSMANCIK

Kararl─▒ Olmak ! 1024 680 mezo

Kararl─▒ Olmak !

Bir i┼či ba┼čarabilmenin en ├Ânemli kural─▒d─▒r o i┼či yapabilece─čine inanmak, kararl─▒ ve istekli olmak. Zor durumda kald─▒─č─▒nda farkl─▒ alternatifler ├╝retebilmek, ba┼čar─▒s─▒zl─▒k kar┼č─▒s─▒nda y─▒lmadan m├╝cadele etmek, hedefe y├Ânelik Success-Kiden gerekli ad─▒mlardand─▒r. Bir ┼čeye karar verdi─činizde ├╝retirsiniz.Karar vermek dibi g├Âr├╝nmeyen zifiri karanl─▒k karars─▒zl─▒k ├žukurundan kurtulu┼čtur.Bir k├Ârd├╝─č├╝m haline gelmi┼č sarmaldan aniden ├Âzg├╝r olmakt─▒r. Ancak ├Âncelikle bir karar verebilmek i├žin ├Âzg├╝r irade g├╝c├╝ ve cesaret gereklidir. Karar vermek ki┼čiyi yeni bir yola koyar ve bu yol yeni y├╝kler getirir. Bu karar─▒n arkas─▒nda durabilecek g├╝ce sahipseniz yola koyulabilirsiniz. Aksi halde arkas─▒nda duramayaca─č─▒n─▒z kararlar yolda size yeti┼čip ezip ge├žecektir.
─░lk ├Ânce neye ula┼čmak istedi─čimize, sonra da bu iste─čimize nas─▒l ula┼čaca─č─▒m─▒za karar vermek zorunday─▒zd─▒r. Bu noktada karar vermenin g├╝c├╝ ├žok b├╝y├╝kt├╝r. Uygulan─▒rsa etkisi ile ya┼čam─▒ ba┼čtanba┼ča de─či┼čtirir. Karar verdi─či an insan, hayata kar┼č─▒ kendini g├╝├žl├╝ ve yenilenmi┼č hisseder.

Karar vermek ├žo─čunlukla bir ├ž─▒kmazdan ├ž─▒k─▒┼č yolu bulabilmek i├žindir. Karar alan ald─▒─č─▒ karar─▒ ya┼čam─▒na yans─▒t─▒rken “Ke┼čke ┼č├Âyle yapsayd─▒m, ┼čunu da d├╝┼č├╝nseydim, ┼čuna da ay─▒p oldu, vs… ” gibi ku┼čkuya d├╝┼čme, pi┼čmanl─▒k, duraksama ve kaybolu┼člardan kendini uzak tutabilme yetisine de sahip olmal─▒d─▒r.

Karar almak, uygulamaya g├Âre nispeten daha kolayd─▒r. Zira insano─člu al─▒┼čkanl─▒klar─▒ndan kolay kolay kopmak istemez.

Uygulamaya ge├žen bir kararda d├Ân├╝┼č yoktur. Yol tek ┼čerittir. Kendine sayg─▒s─▒n─▒ t├╝mden yitirmemesi i├žin bu yola koyulmu┼čtur art─▒k. Denildi─či gibi: “Karar vermek, bir ┼čeyleri kaybetmeden ger├žekle┼čemeyen eylemdir.”

“Karar almak”, ├žo─čunlukla bireyin hayat─▒na belli prensip ve kurallar perspektifinden yeni bir bak─▒┼č a├ž─▒s─▒ ile bakmas─▒ anlam─▒nda kullan─▒l─▒r. “Karar vermek” ise ki┼činin hayat─▒nda ├žok ├Ânemli bir se├žim yapmak ve hayat─▒n─▒n gidi┼čini de─či┼čtirmek zorunda kalmas─▒ anlam─▒ndad─▒r.
Hayat ├Âyle basite al─▒nacak bir oyun de─čildi. Oyunun kurallar─▒n─▒ bilmen ve ona g├Âre oynaman gerekiyordu. Ama ├žo─ču zaman oyunun kurallar─▒n─▒ bilmek yetmiyordu. ├çok daha ├Ânemli olan ba┼čka bir ┼čey vard─▒. Kendini bilmek… Ne istedi─čini ama ger├žekten en ├žok ne istedi─čini, neyin seni mutlu edece─čini ve kim oldu─čunu, neler yapabilece─čini bilmek zorundayd─▒n. Se├žmek, karar vermek zorundayd─▒n. Ancak o zaman do─čru kararlar veriyor ve mutlu bir hayata sahip oluyordun. Ve kararlar birer kibritti. Ya kendini yak─▒yordun ya da ─▒s─▒t─▒yordun…”

Denilir ki: “Ya┼čam haritalar─▒n─▒ izlerken, hedeflerinize ula┼čmaya ├žal─▒┼č─▒rken, akl─▒m─▒z d├╝men, duygular─▒m─▒z yak─▒tt─▒r. Ak─▒l ve mant─▒k ├Ânderli─činde, vicdanlar─▒n─▒ da kullananlar hedeflerine ula┼č─▒rlar.” Ama├ž duygular─▒ k├Âreltmek de─čil, onlar─▒ y├Ânetmektir.

Bir sorun, o durumu d├╝zeltmeye haz─▒r oluncaya kadar kar┼č─▒m─▒zda durur. Neyin yan─▒nda, neyin kar┼č─▒s─▒nda oldu─ču bilinen ger├žek insanlar, karar vermenin g├╝c├╝n├╝ de bilmektedirler. Onlar, en zor durumda yalpalasalar bile yollar─▒na devam ederler. Karar vermenin bu b├╝y├╝k g├╝c├╝n├╝ kullan─▒rlar, asla arada kalmaz ve sorunun bir par├žas─▒ olmamak i├žin gerekti─činde en ac─▒ verici kararlar─▒ dahi almaktan bir an bile ├žekinmezler.

Bir├žok insan─▒n, hayatlar─▒nda ba┼čar─▒s─▒zl─▒─ča u─čramalar─▒, akla uygun davranabilme ├Âzg├╝rl├╝─č├╝n├╝n ellerinde bulundu─čunu g├Ârememelerinden, se├žmenin gereklili─činin fark─▒na vard─▒klar─▒ zaman da art─▒k karar vermek i├žin zaman─▒n ge├žmi┼č olmas─▒ndand─▒r.

Karar vermek zordur,ama bir o kadar da canland─▒r─▒c─▒d─▒r.

Ya ya┼čam─▒n─▒za renk kat─▒n,

Ya da ├Âmr├╝n├╝z├╝ ke┼čkelerle ge├žirip, arada kal─▒n…

Se├žim yapmak, omuzlar─▒n─▒za y├╝klenen bir y├╝kt├╝r ba┼čta…

Sonra s─▒rt─▒n─▒za y├╝kledi─činiz yerden derinizi y─▒rt─▒p a├žan ve sizi u├žuran kanatlard─▒r…

Yenili─če a├ž─▒lan kap─▒d─▒r…

Ya┼čad─▒─č─▒n─▒n fark─▒na varmakt─▒r…

D├╝┼č├╝n├╝n├╝z ve…

Karar verecekseniz ┼čimdi verin…

Se├žim yapacaksan─▒z ┼čimdi yap─▒n…

Yola koyulacaksan─▒z, d├Ânmemek ├╝zere ilk ad─▒m─▒n─▒z─▒ at─▒n…

Karar Vermek ─░le ─░lgili G├╝zel S├Âzler

“Cesaret insan─▒ zafere, karars─▒zl─▒k ve korkakl─▒k ise ├Âl├╝me g├Ât├╝r├╝r.” YAVUZ SULTAN SEL─░M

Ak─▒ll─▒ ki┼čiler kararlar─▒n─▒ aceleyle de─čil, d├╝┼č├╝n├╝p ta┼č─▒narak verirler. JEREMY TAYLOR

Ba┼člamadan ├Ânce iyi d├╝┼č├╝n; ama bir kere ba┼člay─▒nca hemen bitirmeye bak. SALLUST

Bilgi insan─▒ ku┼čkudan, iyilik ac─▒ ├žekmekten, kararl─▒ olmak da korkudan kurtar─▒r. KONF├ť├çY├ťS

Bir giri┼čimde bulunacaksan─▒z, karars─▒zl─▒k kap─▒lar─▒n─▒ kapat─▒n. NIETZSCHE

Bir insan hakk─▒nda verdi─či cevaplardan ├žok, sordu─ču sorularla daha iyi karara var─▒rs─▒n.VOLTAIRE

Bir konu hakk─▒nda karar vermeden ├Ânce ba┼čkalar─▒n─▒n da ├Â─č├╝tlerine kulak vermek gerekir.DALE CARNEGIE

├çok boyutlu olaylarda ani kararlar vermek aptall─▒ktan ba┼čka bir ┼čey de─čildir. MONTAIGNE

Felaket i├žinde karar verebilmek yar─▒ kurtulu┼čtur. PESTALOZZI

G├╝ne┼či sa─č elime, ayÔÇÖ─▒ sol elime verseniz dahi, davamdan vazge├žmem. HZ MUHAMMED (sav)

G├╝zelli─či anlamak i├žin bir kere bakmak yeter ama, bir karara varmak i├žin ├žok d├╝┼č├╝nmek gerekir. EMILE ZOLA

Karar verebilen ac─▒y─▒ yener. GOETHE

Kararlar ├žo─čunlukla saatlerimize benzerler, hi├ž birimizinki birbirine uymaz, ama gene de kendimizinkine g├╝veniriz. POPE

Kararl─▒l─▒k keskin bir b─▒├ža─ča benzer, keskin ve d├╝zg├╝n keser. Karars─▒zl─▒k ise k├Âr bir b─▒├žak gibidir, kesti─či her ┼čeyi par├žalar ve y─▒rtar. JAN ME KEITHEN

Karars─▒zl─▒k en b├╝y├╝k hastal─▒kt─▒r. GOETHE

Karars─▒zl─▒k ve gecikme ba┼čar─▒s─▒zl─▒─č─▒n iki ├Ânemli sebebidir. GALILEO

Karars─▒zl─▒k, esef ve pi┼čmanl─▒klar─▒m─▒z─▒n biricik sebebidir. DESCARTES

Kendi kendine karar veremeyenin ahlaki sorumlulu─ču da olmaz. ARISTO

K─▒zg─▒n oldu─čum zamanlarda karar vermem. WINSTON CHURCHILL

Ku┼čku ve karars─▒zl─▒k, insan─▒n geli┼čmesini engeller. IGNAZIO SILONE

K├╝├ž├╝k hatalar─▒ fazla dikkate alma, yoksa ├Ânemli kararlar─▒ almakta g├╝├žl├╝k ├žekersin. WILHELM JORDAN

Olaylar sonu├žlanmadan kesin bir karara varmak do─čru olmaz. DALE CARNEGIE

Uzun d├╝┼č├╝nmek insana, ├žok kez f─▒rsat ka├ž─▒rt─▒r. PUBLILILUS CYRUS

Vaktinden ├Ânce al─▒nan kararlar─▒n sonu yoktur. OSCAR WILDE

Ya ba┼člamamal─▒, ya bitirmeliÔÇŽ OVIDIUS

Yapmak istedi─čin ┼čey i├žin d├╝┼č├╝nerek karar ver, verdi─čin karar─▒ da mutlaka yap. BENJAMIN FRANKLIN

C# ve PHP 3DESCrypto 691 618 mezo

C# ve PHP 3DESCrypto

Merhaba arkada┼člar
Bu kez sizlere ┼čifreleme y├Ântemi olan 3DES(Triple Data Encryption Algorithm diye ge├žer ancak DES k─▒saltmas─▒ Data Encryption Standard dan gelmektedir.) ┼čifreleme y├Ânteminin kodlar─▒n─▒ vermek istiyorum belki bu yaz─▒ya daha sonra ayr─▒nt─▒l─▒ ┼čekilde bunun ne oldu─ču ile ilgilide bir┼čeyler ekleyebilirim. ­čÖé PHP ve C# i├žin kodlar─▒ a┼ča─č─▒da sizlerle payla┼č─▒yorum
PHP

function encrypt($string) {
//Key
$key = "xxxxxxxx";

//Encryption
$cipher_alg = MCRYPT_TRIPLEDES;

$iv = mcrypt_create_iv(mcrypt_get_iv_size($cipher_alg,MCRYPT_MODE_ECB), MCRYPT_RAND);

$encrypted_string = mcrypt_encrypt($cipher_alg, $key, $string, MCRYPT_MODE_ECB, $iv);
return base64_encode($encrypted_string);
return $encrypted_string;
}

function decrypt($string) {
$string = base64_decode($string);

//key
$key = "xxxxxxxx";

$cipher_alg = MCRYPT_TRIPLEDES;

$iv = mcrypt_create_iv(mcrypt_get_iv_size($cipher_alg,MCRYPT_MODE_ECB), MCRYPT_RAND);

$decrypted_string = mcrypt_decrypt($cipher_alg, $key, $string, MCRYPT_MODE_ECB, $iv);
return trim($decrypted_string);
}

C# encryption:

using System;
using System.Security.Cryptography;
using System.Text;

public class Crypto3DES
{
public Crypto3DES()
{

}

private System.Text.Encoding encoding;

public string Key
{
get
{
return "xxxxxxxx";
}
}

public System.Text.Encoding Encoding
{
get
{
if( encoding == null )
{
encoding = System.Text.Encoding.UTF8;
}
return encoding;
}

set
{
encoding = value;
}
}

public string Encrypt3DES( string strString )
{
DESCryptoServiceProvider DES = new DESCryptoServiceProvider();

DES.Key = Encoding.GetBytes( this.Key );
DES.Mode = CipherMode.ECB;
DES.Padding = PaddingMode.Zeros;

ICryptoTransform DESEncrypt = DES.CreateEncryptor();

byte[] Buffer = encoding.GetBytes(strString);

return Convert.ToBase64String(DESEncrypt.TransformFinalBlock(Buffer, 0, Buffer.Length));
}

public string Decrypt3DES( string strString )
{
DESCryptoServiceProvider DES = new DESCryptoServiceProvider ();

DES.Key = Encoding.UTF8.GetBytes( this.Key );
DES.Mode = CipherMode.ECB;
DES.Padding = PaddingMode.Zeros;
ICryptoTransform DESDecrypt = DES.CreateDecryptor();

byte[] Buffer = Convert.FromBase64String(strString);
return UTF8Encoding.UTF8.GetString( DESDecrypt.TransformFinalBlock(Buffer, 0, Buffer.Length) );
}
}

Umar─▒m Yararl─▒ Olur
Bilgiyle Kal─▒n
M.Zeki Osmanc─▒k

PHP MyAdmin Import Dosya Boyutu Hatas─▒ 320 220 mezo

PHP MyAdmin Import Dosya Boyutu Hatas─▒

Merhaba arkada┼člar
Sizlere biraz ├Ânce kar┼č─▒la┼čt─▒─č─▒m bir sorunun ├ž├Âz├╝m├╝n├╝ payla┼čmak istiyorum. kendi bilgisayar─▒ma Wamp server kurdum ve var olan bir veritaban─▒n─▒n script dosyas─▒n─▒ y├╝klemeye ├žal─▒┼čt─▒m ancak bir hata ile kar┼č─▒la┼čt─▒m.

Ald─▒─č─▒m hata :No data was received to import. Either no file name was submitted, or the file size exceeded the maximum size permitted by your PHP configuration. See FAQ 1.16.

Y├╝klenen dosyan─▒n boyutunun b├╝y├╝k oldu─ču ile alakal─▒ bir hata. ├ç├Âz├╝m├╝ ise ├žok basit php.ini dosyan─▒z─▒ a├ž─▒yorsunuz ve i├žersinde upload_max_filesize = 2M┬áyazar 2 yerine 128 yaz─▒n ve kaydedip kapatt─▒ktan sonra php servislerini yeniden ba┼člat─▒n tekrar denedi─činiz de boyutu b├╝y├╝k olan script dosyas─▒ ba┼čar─▒yla import edilecektir. ­čÖé

Umar─▒m faydal─▒ olur.

Bilgiyle Kal─▒n

M.Zeki Osmanc─▒k

ASP.Net T├╝rk├že Karakter Sorunu 962 192 mezo

ASP.Net T├╝rk├že Karakter Sorunu

Merhaba arkada┼člar

ASP.Net t├╝rk├že karakter sorunu┬áile ilgili k├╝├ž├╝k bir bilgi vermek isterim ­čÖé E─čer asp.net sayfan─▒zda t├╝rk├že karakter sorunu ya┼č─▒yorsan─▒z A┼ča─č─▒daki kodu “webconfig” sayfan─▒zdaki “<system.web>” tag─▒ alt─▒na┬áyap─▒┼čt─▒rman─▒z yeterli olacakt─▒r… ­čśë


 

Bilgiyle Kal─▒n ­čśë

M.Zeki Osmanc─▒k

.Net i├žin Facebook SDK 400 400 mezo

.Net i├žin Facebook SDK

Facebook i├žin bir masa├╝st├╝, mobil, web veya windows 8 projesi geli┼čtirmek isteyenler topla┼č─▒n bakal─▒m buraya ­čÖé
Facebook i├žin .Net SDK si yay─▒nland─▒. Nas─▒l bir uygulamay─▒ facebook ile entegre ederim bu SDK yi nas─▒l kullan─▒r─▒m diyenler i├žin payla┼č─▒yoruz ­čÖé
Kolay gelsin…

Facebook SDK y─▒ indirin ├Â─črenin ­čÖé

http://facebooksdk.net/

Regex ifadelerinizi online olarak test edin 800 533 mezo

Regex ifadelerinizi online olarak test edin

Yazd─▒─č─▒n regex ifadeleriniz online olarak test etmek i├žin http://www.regextester.com/ adresini kullanabilirsiniz. “Test on text” b├Âl├╝m├╝ne yazd─▒─č─▒n─▒z string e─čer “type regex” ile e┼čle┼čmiyorsa “result” b├Âl├╝m├╝nde “No match” e┼čle┼čiyorsa “macthes (x)” sonucu olacakt─▒r.

┼×ifre alanlar─▒ i├žin regex ifadesi 150 150 mezo

┼×ifre alanlar─▒ i├žin regex ifadesi

// c# kodu oldu─ču i├žin \ karakteri \ olarak yaz─▒lm─▒┼čt─▒r, ba┼čka programlama dillerinde "\" ifadesini "\" ile de─či┼čtirin
^(?=.*[^a-zA-Z])(?=.*[0-9])(?=.*[a-z])(?=.*[A-Z])(?=.*[-!$%^&*()_+|~=`{}\[\]:\";'<>?,.\/])\S{8,30}$
// ┼čifrenin en az 8 karakter olmas─▒n─▒ 1 k├╝├ž├╝k, 1 b├╝y├╝k harf, 1 rakam ve 1 sembolden olu┼čmas─▒n─▒ zorunlu tutar.
^(?=.*[^a-zA-Z])(?=.*[0-9])(?=.*[a-z])(?=.*[A-Z])\S{8,30}$
//bu ifadede ise sembol zorunlu─ču yok.
MS SQL i├žerisindeki b├╝y├╝k miktarda veriler aras─▒nda sayfalamay─▒ h─▒zl─▒ bir ┼čekilde yapmak 150 150 mezo

MS SQL i├žerisindeki b├╝y├╝k miktarda veriler aras─▒nda sayfalamay─▒ h─▒zl─▒ bir ┼čekilde yapmak

CREATE PROCEDURE dbo.GetProductsPaged
(
    @startRowIndex int,
    @maximumRows int
)
AS
    SELECT     ProductID, ProductName, SupplierID, CategoryID, QuantityPerUnit,
               UnitPrice, UnitsInStock, UnitsOnOrder, ReorderLevel, Discontinued,
               CategoryName, SupplierName
FROM
   (
       SELECT ProductID, ProductName, SupplierID, CategoryID, QuantityPerUnit,
              UnitPrice, UnitsInStock, UnitsOnOrder, ReorderLevel, Discontinued,
              (SELECT CategoryName
               FROM Categories
               WHERE Categories.CategoryID = Products.CategoryID) AS CategoryName,
              (SELECT CompanyName
               FROM Suppliers
               WHERE Suppliers.SupplierID = Products.SupplierID) AS SupplierName,
              ROW_NUMBER() OVER (ORDER BY ProductName) AS RowRank
        FROM Products
    ) AS ProductsWithRowNumbers
WHERE RowRank > @startRowIndex AND RowRank <= (@startRowIndex + @maximumRows)

MS SQL’de sat─▒r numaras─▒n─▒ alma 150 150 mezo

MS SQL’de sat─▒r numaras─▒n─▒ alma

SELECT * FROM (
  SELECT
    ROW_NUMBER() OVER (ORDER BY id ASC) AS rownumber,
    id, ilceAdi
  FROM Ilce
) AS foo
WHERE rownumber = 5

JavaScript Saya├ž

JavaScript Saya├ž Div i├žerisinde a├ž─▒lan bir ileti┼čim formunun 2 saniye sonra kaybolmas─▒ i├žin haz─▒rlanm─▒┼čt─▒r. jQuery'nin slideUp kapanma efekti kullan─▒lm─▒┼čt─▒r.

function closeForm(){
  setTimeout('$("#contactForm").slideUp("slow")', 2000);
}

JavaScript Saya├ž 150 150 mezo
iPhone MKMap ile Haritada yerimizi buluyoruz :) 365 718 mezo

iPhone MKMap ile Haritada yerimizi buluyoruz :)

Merhaba arkada┼člar

Uzun bir aradan sonra tekrar bir makale yazma f─▒rsat─▒ buldum sonunda. Bu yaz─▒mda iPhone programlamada harita kontrol├╝n├╝n kullan─▒m─▒ndan bahsetmek istiyorum. ├çok ├žok basit manada iphone uygulamas─▒ ├╝zerine nas─▒l harita ekleriz bu haritada nas─▒l yerimizi i┼čaretleriz konusunu a├ž─▒klayal─▒m ­čÖé

─░lk ├Ânce XCode ├╝zerinde bir proje a├ž─▒yoruz ve bo┼č formumuzun ├╝zerine MKMapView kontrol├╝ yerle┼čtiriyoruz.

Screen Shot 2013-05-01 at 4.10.05 PM

 

MapView kontrol├╝n├╝n ├žal─▒┼čabilmesi i├žin framework eklememiz gerekmekte bu ekleme i┼čleminide ┼ču ┼čekilde yapabiliriz : proje dosyalar─▒ ├╝zerinde bulunan Frameworks klas├Âr├╝ alt─▒ndaki herhangi bir nesnenin ├╝zerine sa─č click ile Finder ├╝zerinde g├Âsterdikten sonra a├ž─▒lan pencere ├╝zerinde bulunan klas├Ârlerin i├žinde MapKit.framework klas├Âr├╝n├╝ bulup oldu─ču gibi s├╝r├╝kleyip projemiz i├žersinde bulunan Frameworks klas├Âr├╝ ├╝zerine b─▒rak─▒yoruz.

Screen Shot 2013-05-01 at 4.13.18 PM

 

ve MapKit.framework projemiz ├╝zerine ekleninde a┼ča─č─▒daki gibi Frameworks klas├Âr├╝ i├žersinde bize g├Âz k─▒rp─▒yorsa tamamd─▒r art─▒k devam edebiliriz.

 

 

Screen Shot 2013-05-01 at 4.13.46 PM

Kod olarak ├žok fazla bir┼čey yazmayaca─č─▒z sadece basit tan─▒mlamalar ve basit bir property atamas─▒ o kadar. ┬áTan─▒mlama yapabilmek i├žin .h dosyas─▒ i├žersine a┼ča─č─▒daki gibi bir tan─▒mlama ve property tan─▒mlamas─▒ yap─▒yoruz ve .m dosyas─▒na ge├žiyoruz.

Screen Shot 2013-05-01 at 4.33.50 PM

.m dosyas─▒ i├žersindede @syntesize komutu ile bu .m dosyas─▒ i├žinde .h dosyas─▒nda tan─▒mlad─▒─č─▒m─▒z mapview property sini kullanaca─č─▒m─▒z─▒ s├Âyl├╝yoruz. Uygulama ├žal─▒┼čt─▒ktan sonra hemen i┼člemin ger├žekle┼čece─či alan ViewDidLoad event idir. bu event i├žersinede showsUserLocation=YES komutu yazd─▒ktan sonra i┼člemimiz tamamlan─▒yor.

Screen Shot 2013-05-01 at 4.15.04 PM

 

Art─▒k proje ├žal─▒┼čt─▒─č─▒nda nerde oldu─čunuzu g├Ârebilirsiniz. XCode ├╝zerinde derleme yapt─▒─č─▒n─▒zda tam olarak yerinizi g├Âstermeyebilir yada alakas─▒z bir yer g├Âsterebilir ancak cihaz ├╝zerinde ├žal─▒┼čt─▒rd─▒─č─▒n─▒zda sorun kalm─▒yor.

Peki bu cihaz ├╝zerinde ├žal─▒┼čm─▒yor nas─▒l yapacaz derseniz oda ba┼čka bir yaz─▒da anlataca─č─▒m ayr─▒ bir dert ┬á­čÖé

Screen Shot 2013-05-01 at 4.29.28 PM

 

┼×imdilik bu kadar

Umar─▒m yararl─▒ olur

Bilgiyle Kal─▒n ­čśë

M.Zeki Osmanc─▒k

Samsung Galaxy S4 ÔÇÖe ├ľzel Oyun Konsolu 400 266 mezo

Samsung Galaxy S4 ÔÇÖe ├ľzel Oyun Konsolu

Ge├žti─čimiz g├╝nlerde tan─▒t─▒lan Samsung Galaxy S4 ÔÇÖe ├Âzel oyun kolu ile birlikte geliyor. Firma bu oyun kolu ile mobil oyunculukta bir devrim yaratacak gibi g├Âr├╝n├╝yor
EngadgetÔÇÖ─▒n haberine g├Âre┬áSamsung, Galaxy┬áserisi i├žin bir Gamepadprototipi┬áhaz─▒r.┬áSamsung┬ácihazlar─▒na┬á├Âzel┬áolarak┬átasarlanan┬ábu oyun kolu,┬áilk┬ábak─▒┼čta Xbox 360 kontrol├╝n├╝ and─▒r─▒yor. ├ťzerinde 2 Analog ve D-Pad bulunuyor.┬áBluetooth┬á├╝zerinden Samsung cihazlarla ba─člant─▒ kurabilen bu┬áGamepad┬áiki AAA pil ile ├žal─▒┼č─▒yor.

sammm

Mobil┬áoyunculu─čun yayg─▒nla┼čt─▒─č─▒ bu┬ád├Ânemde,┬áSamsung┬áfirmas─▒ Gamepad ile rakiplerinin ├Ân├╝ne ge├žecek gibi g├Âz├╝k├╝yor.

Microsoft CRM Online Dil Desteklerinin Ayarlanmas─▒ 703 405 mezo

Microsoft CRM Online Dil Desteklerinin Ayarlanmas─▒

CRM de Dil Desteklerinin Ayarlanmas─▒

CRM ├╝zerinde kullan─▒lacak olan dillerin ayarlanabilmesi i├žin . CRM de bulunan Ayarlar k─▒sm─▒nda ki Y├Ânetim se├žene─či ├╝zerindeki Diller linkine t─▒kland─▒ktan sonra ├ž─▒kan listede kullan─▒c─▒lar─▒n kullanabilecekleri dillerin i┼čaretlenip kapat─▒lmas─▒ gerekmektedir. b├Âylelikle birden fazla dil deste─či CRM ├╝zerine eklenmi┼č olur
52bc47048c6014599257494618c492ae

 

Umar─▒m Yararl─▒ Olur

Bilgiyle Kal─▒n

M.Zeki Osmanc─▒k

 

Mac OS Print Screen 500 360 mezo

Mac OS Print Screen

Mac de print screen tu┼ču bulunmuyor bunun yerine bir ka├ž tu┼ča ayn─▒ anda bas─▒p ekran g├Âr├╝nt├╝s├╝ alman─▒z m├╝mk├╝n. ­čÖé ─░┼čte o tu┼člar :

1.Basit olarak t├╝m ekran─▒n g├Âr├╝nt├╝s├╝n├╝ alabilmek i├žin :

Apple Ôîś + Shift + 3 tu┼člar─▒na ayn─▒ anda bas─▒yorsunuz ve masa├╝st├╝nde resim dosyan─▒z─▒ g├Âr├╝yorsunuz ­čÖé Masa├╝st├╝ne ya resim dosyas─▒n─▒ atar yada Picture_ ad─▒nda bir klas├Âr a├ž─▒p i├žersine bu resmi kaydeder.

2. Se├žti─činiz bir alan─▒n g├Âr├╝nt├╝s├╝n├╝ kaydetmek i├žin :

Apple Ôîś + Shift + 4 tu┼člar─▒na ayn─▒ anda bas─▒yorsunuz mouse ekran g├Âr├╝nt├╝s├╝ almaya haz─▒r oldu─čunu g├Âsteriyor se├žimi yapt─▒ktan sonra masa├╝st├╝ne se├žti─činiz alan─▒n g├Âr├╝nt├╝s├╝n├╝ kaydediyor

3 . Se├žilen pencerenin g├Âr├╝nt├╝s├╝n├╝ kaydedebilmek i├žin :

Apple Ôîś + Shift + 4 tu┼člar─▒na ayn─▒ anda bas─▒yorsunuz ve mouse i┼čareti ┬á+ ┼čeklinde de─či┼čiyor. ┬ásonra space tu┼čuna bs─▒yorsunuz mouse kamera ┼čeklinde de─či┼čiyor istedi─činiz pencerenin ├╝zerine bir kez t─▒kl─▒yorsunuz ve o pencerenin resmini yine masa├╝st├╝ne kaydediyor.

 

Nas─▒l ├žok basit de─čilmi ­čÖé

Umar─▒m yararl─▒ olur

Bilgiyle kal─▒n

M.Zeki Osmanc─▒k

PHP’ de WCF Servis ├çal─▒┼čt─▒rmak 800 421 mezo

PHP’ de WCF Servis ├çal─▒┼čt─▒rmak

Merhaba arkada┼člar

WCF Servisi yazd─▒k yay─▒nlad─▒k. C# taraf─▒nda nas─▒l kullanmam─▒z gerekti─či zaten basit olarak servisin ├╝zerindeki ├Ârnek k─▒sm─▒nda yaz─▒yor. Bu yaz─▒da .Net de yazd─▒─č─▒m─▒z bir metodun farkl─▒ bir platform olan PHP taraf─▒nda nas─▒l kullanaca─č─▒m─▒z─▒ k─▒saca g├Âstermek istiyorum. ┬á├ľncelikle kodlara ge├žmeden ├Ânce belirtmeliyim ki server ├╝zerinde SOAPCLIENT kurulu olmal─▒ e─čer kurulu olmazsa WCF servisi kullanamazs─▒n─▒z.

WCF Servis taraf─▒nda a┼ča─č─▒daki gibi bir metot yazd─▒m

    public string AddAccount(string yetkiliAd,string yetkiliSoyad,string firmaAdi,string firmaAdresi){

return string.Format(“You entered: {0}”, yetkiliAd+yetkiliSoyad+firmaAdi+firmaAdresi);

}

┼×imdi gelelim PHP kodlar─▒na basit olarak kodlar ┼č├Âyle:

// SOAP client WCF servis e ba─članmam─▒z─▒ sa─člayan bir class ve WCF servis ├╝zerindeki metotlar─▒n ├žal─▒┼čt─▒r─▒lmas─▒n─▒ sa─člar.
$wsdl = ‘http://servisadresi/ServisKlasoru/Service.svc?wsdl’;
$soapClient = new SoapClient($wsdl, array(‘cache_wsdl’ => 0));// Yaz─▒lan WCF servis ├╝zerinde AddAccount ad─▒nda bir metot var ve onun i├žersine parametreleri g├Ânderiyoruz.
$AccountParameter = new stdClass();
$AccountParameter->yetkiliAd = addslashes($this->ucwords_tr($_POST[Ad]));
$AccountParameter->yetkiliSoyad = addslashes($this->ucwords_tr($_POST[Soyad]));
$AccountParameter->firmaAdi = addslashes($this->ucwords_tr($_POST[FirmaUnvan]));
$AccountParameter->firmaAdres = addslashes($this->ucwords_tr($_POST[FirmaAdres]));
try
{
// ve WCF servis ├╝zerindeki AddAccount metodunu ├žal─▒┼čt─▒r─▒m sonucu bir de─či┼čkene aktar─▒yor.
$result = $soapClient->AddAccount($AccountParameter);
}
catch (SoapFault $fault)
{
//echo “Fault code: {$fault->faultcode}” . NEWLINE;
//echo “Fault string: {$fault->faultstring}” . NEWLINE;
if ($soapClient != null)
{
$soapClient = null;
}
exit();
}
$soapClient = null;

//echo ”

\n”;

//print_r($result);

//echo ”

\n”;

//echo “Return value: {$result->AddAccountResult}” . NEWLINE;

Umar─▒m yararl─▒ olmu┼čtur ­čśë

Bilgiyle Kal─▒n

M.Zeki Osmanc─▒k

WCF Service IIS Ayarlar─▒ 1024 575 mezo

WCF Service IIS Ayarlar─▒

Merhaba arkada┼člar

Bir ├Ânceki yaz─▒da┬áWCF servisin ne oldu─ču ile alakal─▒ bilgi vermi┼čtim ┼čimdi ise yazd─▒─č─▒m─▒z bir servisin IIS ├╝zerinde nas─▒l yay─▒nlanaca─č─▒ ├╝zerinde dural─▒m. ├ľncelikle yay─▒n yapaca─č─▒m─▒z server ├╝zerinde IIS y├╝kl├╝ olmas─▒ gerekmekte. IIS ├╝zerinden baz─▒ ayarlar yapaca─č─▒z ve dosyalar─▒m─▒z─▒ yerle┼čtirip yay─▒na ba┼člayaca─č─▒z.

Dosyalar demi┼čken WCF Service projesini yaz─▒p tamamlad─▒ktan sonra projeyi Publish etmemiz gerekiyor. Publish i┼člemi servisi yay─▒na haz─▒rlamak anlam─▒na geliyor ve yapmas─▒da ├žok basit sadece projeniz ├╝zerinde sa─č click sonra publish se├žmeniz yeterli.

┼×imdi server ├╝zerinde IIS Y├Âneticisini a├ž─▒yoruz.

1

 

Daha sonra kullanaca─č─▒m─▒z Framework versiyonunda bir Application Pool ekliyoruz

2

 

Bizim servisimiz .Net Framework 4.0 kulland─▒─č─▒ i├žin uygulama havuzumuz Framework 4.0 se├žip olu┼čturuyoruz.

3

Bu uygulama havuzu i├žersinede bir web sitesi ekliyoruz ki yay─▒nlayaca─č─▒m─▒z servisimizi i├žersine yerle┼čtirebilelim ­čÖé
4

 

Bu websitesinin yay─▒nlanaca─č─▒ fiziksel adresi se├žmemiz gerekiyor.

5

6

 

 

7

 

Web sitesini ekledikten sonra ve fiziksel yolunu belirttikten sonra ekledi─čimiz web sitesine bir Application (uygulama) ekliyoruz.

8

 

Uygulamam─▒z i├žinde ayn─▒ ┼čekilde bir fiziksel yol se├žtikten sonra yay─▒na haz─▒r─▒z.

9

 

Art─▒k servisimiz yay─▒na haz─▒r tek yapmam─▒z gereken server in adresini yazmak ve belirtti─čimiz servisin klas├Âr ad─▒ ve dosya ad─▒n─▒ yaz─▒p servisimizi g├Âr├╝nt├╝lemek ­čśë

http://serveradres veya ip adresi/ServisKlasoru/Service.svc

Untitled picture

 

Umar─▒m yararl─▒ olur

Bilgiyle Kal─▒n

M.Zeki Osmanc─▒k

WCF Service Nedir? 448 274 mezo

WCF Service Nedir?

Merhaba arkada┼člar

WCF Service nedir konusu ├╝zerinde bir ka├ž basit a├ž─▒klama yapmak istiyorum. Bilindi─či gibi microsoft bug├╝ne kadar da─č─▒t─▒k uygulamalar─▒n─▒n (Distrubuted Applications) geli┼čtirilebilmesi i├žin┬á┬á.Net Remoting,┬áXML Web Servisleri, MSMQ,COM+ gibi sistemleri geli┼čtirmi┼čtir. ┬áWCF Service de temel olarak bu sistemlerin hepsinin yeteneklerine sahip ve tam SOA (Service Oriented Architecture – Servis Y├Ânelimli Mimari) deste├╝, sa─člayan g├╝├žl├╝ bir Framework API si olarak a├ž─▒klanabilir.

WCF iki ├Ânemli ├Âzellik ile birlikte kar┼č─▒m─▒za ├ž─▒kmakta: bunlardan birincisi Microsoft taraf─▒ndaki servislerin farkl─▒ platformlar taraf─▒ndan ele al─▒nabilmesidir (Interoperability) . B├Âylece karma┼č─▒k .Net tiplerini ├Âzel olarak Java ,Com gibi modelleri destekleyen platformlara da─č─▒tabiliriz. Bu y├╝zdende Linuz ,Unix gibi sistemler servislerimizin birer t├╝keticisi olabilirler.

─░kinci ├Âzellik ise Windows k─▒sm─▒nda yap─▒lan da─č─▒t─▒k modeller aras─▒nda var olacak olan entegrasyonlar─▒n─▒n tek bir ├žat─▒ alt─▒nda toplanabilmesidir. Bu ├Âzellik d─▒┼č─▒nda WCF Service ┬á, CLR tiplerini birer servis olarak sunabilmemizi ve servisleri birer CLR tipi olarak kullanabilmemizi sa─člayan bir mimari sunmaktad─▒r.

WCF Service ‘e ayn─▒ makine i├žinde ayn─▒ process te yer alan farkl─▒ bir Application Domain┬á├╝zerinden ,ayn─▒ makinede yer alan farkl─▒ bir process i├žindeki farkl─▒ Application Domain ├╝zerinden┬á, farkl─▒ bir makinedeki process i├žinde yer alan Application Domain┬á├╝zerinden ula┼čabiliriz.┬áClient’ lar hangi Application Domain ├╝zerinde olursa olsunlar servis ile olan ileti┼čimlerini proxy nesnesi ├╝zerinden sa─člamak zorundad─▒rlar.

─░ngilizce kaynaklarda WCF Service ‘in ABC sinden s─▒k├ža bahsedilmektedir. Bu ABC nedir alfabemi diye sorarsan─▒z de─čil ­čśÇ ABC Addresses Bindings Contracts anlam─▒na gelen ve WCF in ├žekirde─činde yer alan ├Ânemli kavramlard─▒r.

Addresses : Bulunan her servis benzersiz bir adrese sahip olmal─▒d─▒r ├ľzellikle bir servis adresi servisin teri ta┼č─▒ma protokol├╝ bilgilerinden olu┼čmal─▒d─▒r. Servis yeri derken kastetmeye ├žal─▒┼čt─▒─č─▒m ┼čeyler asl─▒nda : Bilgisayar ad─▒, site ad─▒ i network , ileti┼čim portu, pipe queue, URI adlar─▒ ve kesin bir path adresi ┬á olarak s─▒ralanabilir. Burada kullan─▒lan ta┼č─▒ma protokolleri ise HTTP , TCP, P2P , IPC , MSMQ olarak soralanabilir.

Contracts :┬áBir servisin ne i┼č yapt─▒─č─▒n─▒ bilmek ├Ânemlidir. ├ľzellikle client’ lar─▒n ihtiya├ž duydu─ču proxy s─▒n─▒flar─▒n─▒n yaz─▒lmas─▒nda ├Ânemli bir konudur. Bu sebeple WCF Service ├╝zerinde t├╝m servisler d─▒┼č ortama bir Contract sunmaktad─▒r. Genel manada 4 tane contract tipi vard─▒r. bunlar

Service Contract : Serviste hangi operasyonlar─▒n var oldu─ču ile alakal─▒ s├Âzle┼čmedir.

Data Contract :Servislerden client ‘lara giden ve client ‘ lardan servise gelen veri tiplerini tan─▒mlayan s├Âzle┼čmedir. Int String gibi bilinen tipler i├žin bu s├Âzle┼čmeler Implicit yani bilin├žsiz olarak haz─▒rlan─▒r. Ancak karma┼č─▒k tiplerde ve kendi olu┼čturdu─čumuz tiplerde Explicit olarak tan─▒mlanmalar─▒ gerekir. Bu sayede Java vb platformlara kendi tan─▒mlad─▒─č─▒m─▒z s─▒n─▒f─▒ o platformlar─▒n anlayaca─č─▒ ┼čekilde sunmu┼č oluyoruz.

┬áFault Contract : Servis taraf─▒ndan hangi hatalar─▒n f─▒rlat─▒labilece─čini ve┬ábu servisi kullanan client a bu hatalar─▒n nas─▒l aktar─▒laca─č─▒n─▒ tan─▒mlayan s├Âzle┼čmedir.

Message Contract : Servislerin mesajlar─▒ ile ileti┼čimini sa─člayan s├Âzle┼čmedir.

Bindings :Bindings temek olarak servisleri ile nas─▒l ileti┼čim kurulaca─č─▒n─▒ tan─▒mlamak i├žin kullan─▒l─▒rlar. Bir bindings tip ┬átransport type , protocok ve data encoding bilgilerini bildirir. Bu bilgiler asl─▒nda servis y├Ânelimli mimari modelde kullan─▒labilecek olan senaryolar d├╝┼č├╝n├╝lerek olu┼čturulurlar bu y├╝zdende WCF bu ├Ânceden bilinen senaryolar─▒ kullanabilmek i├žin gerekli ba─člay─▒c─▒ tipleri ├Ânceden bildirmi┼čtir bunlar :

 

Binding Tipi KonfigurasyonElementi Ta┼č─▒ma ├çe┼čidi(Transport Type) Veri ├ç├Âz├╝mlemesi(Data Encoding) PlatformDeste─či

(Interoperability)

BasicHttpBinding <basicHttpBinding> HTTP / HTTPS Text Var
NetTcpBinding <netTcpBinding> TCP Binary Yok
NetPeerTcpBinding <netPeerTcpBinding> P2P Binary Yok
NetNamedPipeBinding <netNamedPipeBinding> IPC Binary Yok
WSHttpBinding <wsHttpBinding> HTTP/HTTPS Text/MTOM Var
WSFederationBinding <wsFederationHttpBinding> HTTP/HTTPS Text/MTOM Var
NetMsmqBinding <netMsmqBinding> MSMQ Binary Yok
MsmqIntegrationBinding <msmqIntegrationBinding> MSMQ Binary Var
WSDualHttpBinding <wsDualHttpBinding> HTTP Text/MTOM Var

Buradaki tiplerden hangisini se├žece─čimiz, geli┼čtirece─čimiz SOA (Service Oriented Architecture) modelindeki ihtiya├žlar─▒m─▒z do─črultusunda belirlenebilirler.

┼×imdi isterseniz bir WCF Service projesi a├žarak inceleyelim.

WCF Service projesi a├žt─▒─č─▒m─▒zda bizi kar┼č─▒layan ├Ânemli 3 dosya vard─▒r bunlar IService.cs ,Service.cs ,web.config dosyalar─▒d─▒r bu dosyalarda neler var bir bakal─▒m.

IService.cs

Bu interface servis i├žersinde kullan─▒lacak olan metotlar─▒ property leri ve bunlar─▒n contractlar─▒n─▒n belirtildi─či dosyad─▒r ­čśë

using System;using System.Collections.Generic;

using System.Linq;

using System.Runtime.Serialization;

using System.ServiceModel;

using System.ServiceModel.Web;

using System.Text;

namespace WcfService1

{

// NOTE: You can use the “Rename” command on the “Refactor” menu to change the interface name “IService1” in both code and config file together.

[ServiceContract]

public interface IService1

{

[OperationContract]

string GetData(int value);

[OperationContract]

CompositeType GetDataUsingDataContract(CompositeType composite);

// TODO: Add your service operations here

}

// Use a data contract as illustrated in the sample below to add composite types to service operations.

[DataContract]

public class CompositeType

{

bool boolValue = true;

string stringValue = “Hello “;

[DataMember]

public bool BoolValue

{

get { return boolValue; }

set { boolValue = value; }

}

[DataMember]

public string StringValue

{

get { return stringValue; }

set { stringValue = value; }

}

}

}

 

 

Service.cs

Service.cs ise i┼člemlerimizin IService.cs dosyas─▒ndaki gibi tan─▒mlanm─▒┼č olan metotlar i├žersine yazaca─č─▒m─▒z dosyam─▒zd─▒r.

using System;using System.Collections.Generic;

using System.Linq;

using System.Runtime.Serialization;

using System.ServiceModel;

using System.ServiceModel.Web;

using System.Text;

namespace WcfService1

{

// NOTE: You can use the “Rename” command on the “Refactor” menu to change the class name “Service1” in code, svc and config file together.

// NOTE: In order to launch WCF Test Client for testing this service, please select Service1.svc or Service1.svc.cs at the Solution Explorer and start debugging.

public class Service1 : IService1

{

public string GetData(int value)

{

return string.Format(“You entered: {0}”, value);

}

public CompositeType GetDataUsingDataContract(CompositeType composite)

{

if (composite == null)

{

throw new ArgumentNullException(“composite”);

}

if (composite.BoolValue)

{

composite.StringValue += “Suffix”;

}

return composite;

}

}

}

 

Web.config

<?xml version=”1.0″?><configuration>

<system.web>

<compilation debug=”true” targetFramework=”4.0″ />

</system.web>

<system.serviceModel>

<behaviors>

<serviceBehaviors>

<behavior>

<!– To avoid disclosing metadata information, set the value below to false before deployment –>

<serviceMetadata httpGetEnabled=”true”/>

<!– To receive exception details in faults for debugging purposes, set the value below to true.┬á Set to false before deployment to avoid disclosing exception information –>

<serviceDebug includeExceptionDetailInFaults=”false”/>

</behavior>

</serviceBehaviors>

</behaviors>

<serviceHostingEnvironment multipleSiteBindingsEnabled=”true” />

</system.serviceModel>

<system.webServer>

<modules runAllManagedModulesForAllRequests=”true”/>

<!–

To browse web app root directory during debugging, set the value below to true.

Set to false before deployment to avoid disclosing web app folder information.

–>

<directoryBrowse enabled=”true”/>

</system.webServer>

</configuration>

 

Umar─▒m yararl─▒ olur.

Bilgiyle Kal─▒n

M.Zeki Osmanc─▒k

 

Samsung Galaxy S2 Android 4.1.2 Jelly Bean Kurulumu 500 343 mezo

Samsung Galaxy S2 Android 4.1.2 Jelly Bean Kurulumu

Merhaba arkada┼člar

Samsung Galaxy S2 cihaz─▒n─▒za Android 4.1.2 Jelly Bean i┼čletim sistemini nas─▒l kurars─▒n─▒z bunu ad─▒m ad─▒m anlatmak istiyorum.

├ľncelikle en ba┼čtan s├Âylemek isterim ki bu┬áy├╝kleme┬ái┼člemi yar─▒m kal─▒rsa┬átelefonunuz┬átekrardan a├ž─▒lmayabilir. Herhangi bir sorunda ben ve www.mzekiosmancik.com sorumlu de─čildir. tamamen kendi iradenizle kuruluma ba┼člamal─▒s─▒n─▒z.
├ľzellikle┬áorjinal┬áyaz─▒l─▒m┬áoldu─ču i├žin┬átelefonunuzu┬ágarantiden ├ž─▒karmaz onu s├Âylemekte fayda var.Y├╝kleme┬ái┼člemini yapman─▒z i├žin herhangi bir root veya kernel y├╝klemesine ihtiyac─▒n─▒z yok.

┼×imdi ad─▒m ad─▒m kurulumu yapal─▒m.

1) Odin dosyas─▒n─▒ buradan indirip dosyay─▒ zipten ├ž─▒kar─▒n.

2) I9100XXLSJ_I9100OXXLS1_OXX dosyas─▒n─▒ buradan indirip dosyay─▒ zipten ├ž─▒kar─▒n.
3) Odin’i ├žal─▒┼čt─▒r─▒n
4) Samsung Galaxy S2 cihaz─▒n─▒z─▒ “Download Modu”na getirmeniz gerekiyor bunun i├žin A├žma Kapama + Home (Men├╝) + Ses k─▒sma tu┼člar─▒na ayn─▒ anda uzunca bas─▒n
5) Galaxy S2 cihaz─▒n─▒z─▒ USB kablosu ile bilgisayar─▒n─▒za ba─člay─▒n
6) Odin cihaz─▒n─▒z─▒ tan─▒mlayana kadar bekleyin. Odin ekran─▒ndaki de─či┼čikli─či g├Âreceksiniz.
7) S─▒ra geliyor Odin’ e girilecek olan i├žeri─či siteme tan─▒tmaya. S─▒ras─▒yla PDA, PHONE ve CSC ba┼čl─▒klar─▒na ilgili dosyalar─▒ se├žiyorsunuz.

PDA =  CODE_I9100XXLSJ.tar
PHONE =  MODEM_I9100XXLS6.tar
CSC =  CSC_HOME_OXX_I9100OXXLS1.tar

Resimde g├Âr├╝len ekran─▒ elde ettiyseniz y├╝klemeye haz─▒rs─▒n─▒z demektir ­čśÇ hadi ba┼člayal─▒m….
galaxys2

9) Start tu┼čuna bas─▒n
10) Odin ekran─▒ ├╝zerinde PASS yaz─▒s─▒n─▒ g├Ârd├╝─č├╝m├╝zde art─▒k jelly bean kullan─▒ma haz─▒r demektir.
11) T├╝m i┼člemler tamamland─▒ktan sonra Samsung Galaxy S2’nin y├╝kleme i┼člemlerini tamamlamas─▒n─▒ beklememiz gerekiyor biraz sab─▒rl─▒ olmal─▒y─▒z ├ž├╝nk├╝ bu i┼člem yakla┼č─▒k 5 dakika s├╝rebilir.

Daha sonra Samsung Galaxy S2 telefonunuzda Jelly Bean kolayl─▒─č─▒n─▒ ya┼čayabilirsiniz.

Kolay Gelsin ­čÖé

Bilgiyle Kal─▒n

M.Zeki Osmanc─▒k

 

Iphone Programming – AlertView (MessageBox) 385 717 mezo

Iphone Programming – AlertView (MessageBox)

Iphone Programming – AlertView

Merhaba arkada┼člar

IOS programlama konusundada baz─▒ k├╝├ž├╝k bilgiler vermek isterim sizlere. Basit ├Ârnek ile ba┼člamak en do─črusu dye d├╝┼č├╝nd├╝m ve sizlere genel ad─▒yla MessageBox olarak ge├žen yap─▒ olan AlertView ile Merhaba d├╝nya yazd─▒rarak IOS programlama d├╝nyas─▒na giri┼č yapman─▒z─▒ sa─člamak isterim ­čÖé

├ľncelikle Xcode ├╝zerinde yeni bir proje olu┼čturuyoruz.

6e794d81fe89343045753f0b44e06317

 

4666c6d2cf74864798b9eda0eb2604fd

 

Projemizi a├žt─▒ktan sonra verdi─čimiz isimde .xib ┬á.h .m dosyalar─▒ bizleri kar┼č─▒layacak. Bu dosyalar ne anlama geliyor peki ? xib bizim uygulamam─▒z─▒n tasar─▒m─▒n─▒n bulundu─ču g├Âsterildi─či dosyad─▒r, ┬á.h dosyas─▒ temel de─či┼čken control event ve metotlar─▒n tan─▒mlanmas─▒ gereken dosyad─▒r. ┬á.m dosyas─▒da as─▒l i┼č yapan dosyad─▒r m dosyas─▒nda h dosyas─▒ i├žersine yapt─▒─č─▒─▒z tan─▒mlamalar─▒ yapabilir event leri kullanabiliriz.

iphone programming alertview 3

├ľnce tasar─▒m dosyas─▒ olan xib dosyas─▒ ├╝zerine bir button kontrol├╝ at─▒p daha sonra h dosyas─▒na tan─▒mlamam─▒z─▒ yapt─▒ktan sonra art─▒k kod yazmaya haz─▒r─▒z. ┬ám dosyas─▒n─▒ a├ž─▒p AlertView kodlar─▒m─▒z─▒ yazmaya ba┼člayabiliriz.

iphone programming alertview 1

Art─▒k IOS d├╝nyas─▒na merhaba deme zaman─▒ geldi ­čśÇ projemizi ├žal─▒┼čt─▒r─▒p Iphone Simulator ├╝ ├žal─▒┼čt─▒r─▒p bak─▒yoruz ne yapm─▒┼č─▒z acaba diye ­čśÇ

iphone programming alertview 1

 

Umar─▒m yararl─▒ olur

Bilgi sizlerle olsun ­čśë

M.Zeki Osmanc─▒k

E-Book Gallery for Microsoft Technologies 100 100 mezo

E-Book Gallery for Microsoft Technologies

If you want to learn about Microsoft technologies you can use ┬áE-Book Gallery for Microsoft Technologies┬á­čÖé

Click Here…

I hope that is helpful

May the knowledge be with you

M.Zeki Osmanc─▒k

Windows 8 Store App _ Youtube Video on Media Element 935 593 mezo

Windows 8 Store App _ Youtube Video on Media Element

Hi everyone

I want to show you to how to play a youtube video on Windows 8 Store App┬áMedia Element control. We have to use 3th part references called ÔÇťMyToolKitÔÇŁ. MyToolKit is have a class named Youtube. That class help us to geting video and play on our control.┬á You can take a look in here http://mytoolkit.codeplex.com/ .

In this site they said that if you want to use this class the NuGet Package is recomended.

Ok lets start and play any video on Windows 8 Store App

First of all we have to install MyToolKit on our project. Open NuGet Package Manager from Tools->Library Package Manager -> Manage Nuget Packages for Solution

Select Online and searh MyToolKit

Thats our package we find it. We have to click on Install button and select assembly which one will use this.

MyToolKit references will add on our project after select an assembly and click OK button.  That was the diffucult side. Lets check out the simple side of our project.

I added a MediaElement control on my StoreApp xaml page and give a name property…

<Pagex:Class=”youtube.MainPage”xmlns=”http://schemas.microsoft.com/winfx/2006/xaml/presentation”

xmlns:x=”http://schemas.microsoft.com/winfx/2006/xaml”

xmlns:local=”using:youtube”

xmlns:d=”http://schemas.microsoft.com/expression/blend/2008″

xmlns:mc=”http://schemas.openxmlformats.org/markup-compatibility/2006″

mc:Ignorable=”d”>

<Grid Background=”{StaticResource ApplicationPageBackgroundThemeBrush}”>

<MediaElement Name=”mediaYoutube” HorizontalAlignment=”Left” Height=”522″

Margin=”152,201,0,0″ VerticalAlignment=”Top” Width=”1111″/>

<Button Name=”btnPlay” Content=”Play” HorizontalAlignment=”Left” Margin=”904,71,0,0″

VerticalAlignment=”Top”/>

<TextBox Name=”txtYoutubeID” HorizontalAlignment=”Left” Margin=”529,77,0,0″

TextWrapping=”Wrap” Text=”TextBox” VerticalAlignment=”Top” Width=”370″/>

</Grid>

</Page>

 

 

Last thing we have to do write a little code on btnPlay_Click event

private async void btnPlay_Click(object sender, RoutedEventArgs e){var url = await YouTube.GetVideoUriAsync(txtYoutubeID.Text, YouTubeQuality.Quality480P);

mediaYoutube.Source = url.Uri;

}

 

Thats it. Now we have to select a youtube video and get the video id then play on our project then watch the video.

if youtube link is http://www.youtube.com/watch?v=hNpQpjyc9C8 . this videos ID is going to be ÔÇťhNpQpjyc9C8ÔÇŁ . If we write it to our textbox we can watch this video on our Windows Store App.

Like this.

You can download the source code in here http://sdrv.ms/YfrMdG

I hope that is helpful

May the knowledge be with you

M.Zeki Osmanc─▒k

Visual Studio 2012 Update 1 Now Available 474 642 mezo

Visual Studio 2012 Update 1 Now Available

S. Somasegar today announced the availability of Visual Studio 2012 Update 1.

He said that this update is so important for developers because┬áthis isnÔÇÖt just about bug fixes, though it contains quite a few of those to measurably address issues reported through Connect, UserVoice, and Windows Error Reporting.┬á This is also delivers a wealth of new functionality into Visual Studio 2012.┬á The new functionality in Update 1 primarily spans four areas of investment: Windows development, SharePoint development, agile teams, and continuous quality.

You can download Visual Studio Update 1 in ┬áhere (see “Visual Studio 2012 Update 1” under the “Additional software” section)

I hope that is helpful

May the knowledge be with you

M.Zeki Osmanc─▒k

Windows 8 Store Apps Using Localization 935 590 mezo

Windows 8 Store Apps Using Localization

Hi Friends
In this article i want to explain about localization on Windows Store Apps. If you built an application and want to make this application world wide, you have to add multi-language in your application.
So lets start the sample about using localization on Windows Store Applications.
First of all we need to add *.resw files to project. This file is string resource files and we need to add resw file for every language.

I added 3 *.resw file in my project for English German and Turkish languages in different folders with same name.

Then i modifying my *.resw files for every language:
Resources.resw file in ÔÇŁenÔÇŁ folder

Resources.resw file in ÔÇŁgrÔÇŁ folder

Resources.resw file in ÔÇŁtrÔÇŁ folder

In my MainPage.xaml page i place 1 combobox 3 TextBlock and 2 Textbox.

 

<Pagex:Class=”localizationsample.MainPage”xmlns=”http://schemas.microsoft.com/winfx/2006/xaml/presentation”

xmlns:x=”http://schemas.microsoft.com/winfx/2006/xaml”

xmlns:local=”using:localizationsample”

xmlns:d=”http://schemas.microsoft.com/expression/blend/2008″

xmlns:mc=”http://schemas.openxmlformats.org/markup-compatibility/2006″

mc:Ignorable=”d”>

 

<Grid Background=”{StaticResource ApplicationPageBackgroundThemeBrush}”>

<TextBlock Name=”txtUserName” HorizontalAlignment=”Left” Margin=”316,304,0,0″ TextWrapping=”Wrap” Text=”User Name” VerticalAlignment=”Top” FontSize=”36″/>

<TextBlock Name=”txtPassword” HorizontalAlignment=”Left” Margin=”316,353,0,0″ TextWrapping=”Wrap” Text=”Password” VerticalAlignment=”Top” FontSize=”36″/>

<ComboBox Name=”cmbLanguage” HorizontalAlignment=”Left” Margin=”591,38,0,0″ VerticalAlignment=”Top” Width=”205″ SelectionChanged=”ComboBox_SelectionChanged_1″/>

<TextBlock HorizontalAlignment=”Left” Margin=”381,38,0,0″ TextWrapping=”Wrap” Text=”Choose Language” VerticalAlignment=”Top” FontSize=”22″/>

<TextBox HorizontalAlignment=”Left” Margin=”553,304,0,0″ TextWrapping=”Wrap” VerticalAlignment=”Top” Width=”333″/>

<TextBox HorizontalAlignment=”Left” Margin=”553,353,0,0″ TextWrapping=”Wrap” VerticalAlignment=”Top” Width=”333″/>

 

</Grid>

</Page>

 

 

 

Write very simple code for add items in combobox.

cmbLanguage.Items.Add(“en”);cmbLanguage.Items.Add(“tr”);cmbLanguage.Items.Add(“gr”);

When you select a language on combobox ,language file will change. For doing this process we must write some code on combobox selectionChanged event.

var context = new ResourceContext();var selectedLanguage = cmbLanguage.SelectedItem;if (selectedLanguage != null){var lang = new List<string>();lang.Add(selectedLanguage.ToString());

context.Languages = lang;

var resourceStringMap = ResourceManager.Current.MainResourceMap.GetSubtree(“Resources”);

this.txtUserName.Text = resourceStringMap.GetValue(“string1”, context).ValueAsString;

this.txtPassword.Text = resourceStringMap.GetValue(“string2”,context).ValueAsString;

}

ResourceContext reads the *.resw files. If we read our language files we can read ids of contents and call them where ever we want.

Our language changer is ready just test.

I hope that is helpful

May the knowledge be with you

M.Zeki Osmanc─▒k

Linq To SQL _ Insert Update Delete 570 571 mezo

Linq To SQL _ Insert Update Delete

Merhaba arkada┼člar

Bir ├Ânce ki makalede sizlere LinqToSql ile nas─▒l Select sorgular─▒ ├žal─▒┼čt─▒rabilece─činiz ile ilgili baz─▒ bilgiler vermi┼čtim. Bu sefer ise Insert Update ve Delete i┼člemleri ile ilgili baz─▒ bilgiler vermek istiyorum. Projemiz i├žersine dbml dosyas─▒n─▒ ekledi─čimizi varsayarak devam etmek istiyorum. Daha ├Ânceki ├Ârnekteki form tasar─▒m─▒na ek olarak sadece 3 Button 2 Textbox ve Label nesnelerini ekleyip bu tasar─▒m ├╝zerinden devam edece─čim.

Insert

Insert i┼člemini ger├žekle┼čtirebilmek i├žin Kaydet butonumuzun Click olay─▒ i├žersine sadece ┼ču kodlar─▒ yazmam─▒z yeterli olacakt─▒r.

NorthwindDataContext db = new NorthwindDataContext();
Category eklenecek = new Category();
eklenecek.CategoryName = TextBox1.Text;
eklenecek.Description = TextBox2.Text;
db.Categories.InsertOnSubmit(eklenecek);
db.SubmitChanges();
Doldur();

Bu i┼člemde bir dataContext ├Ârne─či olu┼čturduktan sonra Northwind ├╝zerine insert i┼člemi i├žin gerekli olan alanlar─▒ belirtti─čimiz Category tipindeki nesneyi doldurup bu nesneyi t├╝m bilgileri ile birlikte kaydetmesini s├Âyl├╝yoruz.

G├╝ncelleme ve silme i┼člemlerinden ├Ânce ufak bir noktaya de─činmek san─▒r─▒m yerinde olacakt─▒r. SQL sorgular─▒nda yapt─▒─č─▒m─▒z gibi bizim burada mutlaka bir ID vermemiz gerekiyor yani g├╝ncellemek istedi─čimiz verinin kesin adresini yolunu belirtmeliyiz. Biliyorsunuz ki SQL kodlar─▒ ile Update veya Delete komutlar─▒ yazd─▒─č─▒n─▒zda ÔÇťWhereÔÇŁ ile ID sini belirtmezseniz t├╝m kay─▒tlar i├žin g├╝ncelleme veya silme i┼člemini ger├žekle┼čtirir. Bu y├╝zden ├Ânce nas─▒l ID belirtiriz ona bakal─▒m.┬á ID yazan yere 3 5 yazmayaca─č─▒z tabi ki. DataGridView ├╝zerinden bir veri se├žip onu yerle┼čtirdi─čimiz Textbox ve Label lar ├╝zerine yazd─▒rd─▒ktan sonra i┼člemlerimize devam edece─čiz.

Kay─▒t Se├žme ─░┼člemi

Bunun i├žin DataGridView ├╝zerine listeledi─čimiz kay─▒tlardan herhangi bir tanesine ├žift t─▒klad─▒─č─▒m─▒zda i┼čin ger├žekle┼čmesi i├žin CellContentDoubleClick olay─▒ i┼čimizi g├Ârebilir ve i├žersine yazmam─▒z gereken kodlar ise ┼čunlar:

Bu ad─▒mdan sonra art─▒k listelenen kay─▒tlar aras─▒ndan birine ├žift t─▒klad─▒─č─▒m─▒zda t├╝m bilgileri text ve label nesnelerine yaz─▒lacak bizde g├╝ncelleme veya silme yaparken bu bilgilerden yararlanabiliriz.

NorthwindDataContext db = new NorthwindDataContext();
Category secilecek = db.Categories.FirstOrDefault(x => x.CategoryID == 
Convert.ToInt32(dataGridView1.CurrentRow.Cells[0].Value.ToString()));
lblID.Text = secilecek.CategoryID;
txtName.Text = secilecek.CategoryName;
txtDesc.Text = secilecek.Description;

Update

G├╝ncelle butonumuzun Click olay─▒na ise ┼ču kodlar─▒ eklememiz yeterli :

NorthwindDataContext db = new NorthwindDataContext();
Category guncellenen = db.Categories.FirstOrDefault(x=>x.CategoryID ==Convert.ToInt32(lblID.Text));
guncellenen.CategoryName = txtName.Text;
guncellenen.Description = txtDesc.Text;
db.SubmitChanges();
Doldur();

Burada daha ├Ânce se├žip bir label ├╝zerine yazd─▒rd─▒─č─▒m─▒z ID yi kullanarak TextBox lar ├╝zerindeki g├╝ncel verileri al─▒p update i┼člemini ger├žekle┼čtiriyoruz.

Ayn─▒ ┼čekilde delete i┼člemi i├žinde yazmam─▒z gereken kodlar ├žok basit ┼č├Âyle ki :

NorthwindDataContext db = new NorthwindDataContext();
Category silinen = db.Categories.FirstOrDefault(x => x.CategoryID == int.Parse(lblID.Text));
db.Categories.DeleteOnSubmit(silinen);
db.SubmitChanges();
Doldur();

Birde burada her i┼člemden sonra kulland─▒─č─▒m─▒z datagridview i├žersine bilgileri dolduran Doldur metodu var onuda sizlerle payla┼čay─▒m.

db = new NorthwindDataContext();
var sonuc = from x in db.Categories
select new
{
x.CategoryID,
x.CategoryName,
x.Description
};
dataGridView1.DataSource = sonuc;

Bu kodlar─▒ butonlar─▒m─▒z─▒n Click olaylar─▒na yazd─▒ktan sonra herhangi bir hataya kar┼č─▒ ├Ânlem almad─▒─č─▒m─▒z i├žin i┼člem s─▒ram─▒z ┼č├Âyle olmal─▒ ├Âncelikle form a├ž─▒lacak ve kay─▒tlar─▒m─▒z s─▒ralanacak , ard─▒ndan bir kay─▒t eklemek i├žin textboxlar doldurularak Kaydet butonuna bas─▒lacak ve Doldur metodu ile kay─▒tlar yeniden datagridview ├╝zerinde g├Âr├╝nt├╝lenecek ard─▒ndan bir kayda ├žift t─▒klayarak bilgilerini text ve label ├╝zerine yazd─▒raca─č─▒z ve G├╝ncelle butonu ile g├╝ncelleme ve Sil butonu ile se├žilen kayd─▒n silinme i┼člemlerini ger├žekle┼čtirece─čiz.

Umar─▒m yararl─▒ olur

Bilgiyle Kal─▒n

M.Zeki Osmanc─▒k

 

LinqToSQL _ Select 992 608 mezo

LinqToSQL _ Select

Merhaba arkada┼člar bu yaz─▒m─▒zda sizlere LinqToSQL nesnesini en basit ┼čekilde nas─▒l kullan─▒r─▒z bunu g├Âstermek istiyorum. ├ľncelikle LinqToSQL nesnesini kullanabilmek i├žin ilk yapmam─▒z gereken ┼čey projemiz i├žersine bu nesneyi eklemektir.

Bu nesneyi ekledi─čimizde ve Server Explorer ├╝zerinde ekliyece─čimiz bir veritaban─▒ varsa buradan tablolar─▒ s├╝r├╝kleyip b─▒rakt─▒─č─▒m─▒zda kendisi otomatik olarak bu tablolar ile alakal─▒ baz─▒ class lar─▒ olu┼čturur bize sadece kullanmak kal─▒r ­čśë

Bu i┼člemi tamamlad─▒ktan sonra geldi s─▒ra kod yazma i┼člemine acaba bu LinqToSQL den nas─▒l veri ├žekip form ├╝zerindeki nesnelerde g├Âsterebiliriz.

Select sorgusu nas─▒l yap─▒l─▒r ?

Select i┼člemini farkl─▒ ┼čekillerde yapabilirsiniz bunun bir ka├ž farkl─▒ yolu mevcut. Hepsinde ayn─▒ sonucu al─▒r─▒z yani ÔÇťSELECT * FROM CATEGORIES ÔÇŁ sorgusunun sonucunu al─▒r─▒z ­čśë

NorthwindDataContext db = new NorthwindDataContext();var sonuc = from x in db.Categoriesselect x;dataGridView1.DataSource = sonuc;

 

NorthwindDataContext db = new NorthwindDataContext();var sonuc = from x in db.GetTable<Category>()select x;dataGridView1.DataSource = sonuc;

 

NorthwindDataContext db = new NorthwindDataContext();dataGridView1.DataSource =  db.GetTable<Category>();

Select sorgusuna Where kriteri ekleme i┼člemi ?

Select sorgusune Where kriterini eklemek i├žin yani ÔÇťSELECT * FROM CATEGORIES WHERE CATEGORYID = 1ÔÇŁ sorgusunun LinqToSQL de yaz─▒lmas─▒ i┼člemide ┼ču ┼čekillerde olabilir.

NorthwindDataContext db = new NorthwindDataContext();var sonuc = from x in db.Categorieswhere x.CategoryID ==1select x;dataGridView1.DataSource = sonuc;

 

NorthwindDataContext db = new NorthwindDataContext();var sonuc = from x in db.GetTable<Category>()where x.CategoryName.StartsWith(“B”)select x;dataGridView1.DataSource = sonuc;

Gelen sorguyu listeleme i┼člemi yani Order By anahtar kelimesinin yapt─▒─č─▒ i┼či nas─▒l yapaca─č─▒z ┼čimdi k─▒sa bir kodla bunu g├Ârelim ­čśë

┬á┬á┬á┬á┬á┬á NorthwindDataContext db = new NorthwindDataContext();var sonuc = from x in db.GetTable<Category>()where x.CategoryName.StartsWith(“B”)orderby x.CategoryID ascendingselect x;dataGridView1.DataSource = sonuc;

 

┬á┬á┬á┬á┬á┬á NorthwindDataContext db = new NorthwindDataContext();var sonuc = from x in db.Categorieswhere x.CategoryName.StartsWith(“B”)orderby x.CategoryID descendingselect x;dataGridView1.DataSource = sonuc;

 

Bu kodlar sadece select i├žin kullanabilece─čimiz basit kodlar. Bir sonraki yaz─▒da Inner Join, Left, Right Join gibi yap─▒lar─▒n nas─▒l kullan─▒labilece─čine bakaca─č─▒z.

Umar─▒m Yararl─▒ Olur

Bilgiyle Kal─▒n.

M.Zeki Osmanc─▒k

Windows 8 Metro App _ ListView 955 577 mezo

Windows 8 Metro App _ ListView

Merhaba arkada┼člar

Metro uygulamalardaki data nesnelerinden biri olan ListView nesnesini k─▒sa ve basit├že tan─▒tmak istiyorum. ListView basit bir listbox gibi ├žal─▒┼č─▒r. ─░├žersine List veya DataTable tipinde nesneler verebilmek m├╝mk├╝n. ├çok ├žok basit bir ├Ârnek ile bu nesnenin nas─▒l ├žal─▒┼čt─▒─č─▒na dair bir ├Ârnek yaparak bakal─▒m… ├ľncelikle formumunuzun ├╝zerine bir ListView nesnesi atarak ├Âzelliklerini belirliyoruz. Formun ├╝zerindeki g├Âr├╝n├╝m├╝.


┬áXAML kodunda ListView g├Âr├╝n├╝m├╝.

┬áFormumuz ├╝zerine bir listview ekledikten sonra i├žersindeki elemanlar─▒n nas─▒l g├Âr├╝nece─či ile alakal─▒ bir┬á i┼člem yapabiliriz d├╝md├╝z b─▒rak─▒p i├žersinde default olarak bir nesne g├Âr├╝nt├╝lenmesini sa─člayabiliriz. ┼×imdi ├žok basit olarak string tipinde bir liste doldurup listview in ItemSource ├Âzeli─či ile bu listview i nas─▒l doldurabilece─čimizi g├Ârelim.

├ľncelikle bir liste doldural─▒m.

List<string> liste = new List<string>();liste.Add(“Deneme 1 “);liste.Add(“Deneme 2 “);liste.Add(“Deneme 3 “);liste.Add(“Deneme 4 “);

Ard─▒ndan sadece tek bir sat─▒r kod ile yan─▒ ListView in ItemsSource ├Âzelli─čine atama yaparak nas─▒l bir g├Âr├╝nt├╝ elde ediyoruz g├Ârelim .

lstListe.ItemsSource = liste;

Bu atamay─▒ yapt─▒ktan sonra s─▒ra geldi projeyi ├žal─▒┼čt─▒rmaya bakal─▒m nas─▒l bir g├Âr├╝nt├╝ elde ediyoruz.


En basit manada ListView nesnesinin kullan─▒m─▒┬á bu ┼čekilde oluyor.

Umar─▒m yararl─▒ olur….

Bilgiyle Kal─▒n… ­čśë

M.Zeki Osmanc─▒k

Merhaba Windows 8 Metro Style Apps 1024 652 mezo

Merhaba Windows 8 Metro Style Apps

Merhaba arkada┼člar

Bu yaz─▒mda sizlere beklenen i┼čletim sistemi Windows 8 ile birlikte gelen ve kullanmas─▒ ├žok keyifli olan Metro Application ile alakal─▒ bir ba┼člang─▒├ž yaz─▒s─▒ sunaca─č─▒m.

Bilindi─či gibi┬á Windows┬á 8 daha ├žok tablet pc ler i├žin ideal bir i┼čletim sistemi olarak┬á tasarland─▒─č─▒ndan┬á dokunmatik ekrana uygun olan ve tam ekran─▒ kaplaya uygulamalar yani Metro Style uygulamalar geli┼čtirilmeye ba┼čland─▒.

.Net 4.5 ile birlikte gelen Metro Style uygulamalar ger├žektende kullan─▒m─▒ kolay g├Ârseli ba┼čar─▒l─▒ uygulamalar oldu─čundan ileride Windows tabletlerde ve mobil cihazlarda yayg─▒nla┼čt─▒─č─▒nda kullan─▒m kolayl─▒─č─▒ nedeniyle tercihleri kendi ├╝zerine ├žekebilir.

Metro Style Uygulamalar tam ekran ├žal─▒┼čan , ├žal─▒┼č─▒lan cihaza ve dokunmatik ihtiya├žlar─▒na g├Âre ayarlanabilen uygulamalar olarak tan─▒mlanabilir.

Metro Style Uygulamalar sadece anlatt─▒klar─▒m─▒z kadarm─▒ peki derseniz cevab─▒m─▒z hay─▒r olacakt─▒r,├ž├╝nk├╝ metro style uygulamalar arka tarafta suspend modunda ├žal─▒┼č─▒rlar ve b├Âylelikle pil ve performans─▒ etkilememi┼č olurlar ayn─▒ zamanda 3 ┼čekilde ├žal─▒┼čabilme imkanlar─▒da mevcut Full Screen ,Snap Up ve Filled ÔÇś d─▒r…

┼×imdi sizlere Visual Studio 2012 de .Net Framework ile birlikte Metro Style bir uygulamaya nas─▒l merhaba deriz bir bakal─▒m.

├ľncelikle proje a├žarken kar┼č─▒m─▒za Windows Metro Style┬á ad─▒nda bir proje grubu geliyor ve bu grup i├žersinde Metro Style bir uygulama geli┼čtirebilmek i├žin gerekli olan nesneler mevcut.

Dilerseniz bo┼č bir sayfa dilerseniz haz─▒r referans olarak kullan─▒labilecek k├╝├ž├╝k haz─▒r projelerde eklenmi┼č a├ž─▒p kullanmaya ba┼člayabilece─čimiz projeler i├žersine .

Blank App projesi a├ž─▒ld─▒─č─▒nda kar┼č─▒m─▒za gelecek olan bo┼č siyah zeminli bir sayfa ve alt k─▒s─▒mda XAML kodlar─▒ olacakt─▒r. Bu sayfa t─▒pk─▒ Windows Forms uygulamalar─▒ndaki Form gibi tek farkl─▒ XAML kodlar─▒ ile dizayn edilmesi.

Yeni bir proje a├žt─▒m ve ├╝zerine Windows Forms uygulamalar─▒nda a┼čina oldu─čumuz Label kontrol├╝n├╝n XAML versiyonu olan TextBlock kontrol├╝n├╝ sayfan─▒n ortas─▒na b─▒rakt─▒m. Properties penceresinden text ve font ├Âzelliklerini ayarlayarak ilk uygulamam─▒n nas─▒l g├Âr├╝nece─či ile ilgili bir fikir sahibi olabilece─čim art─▒k. E─čer Windows 8 kullanmaya ba┼člam─▒┼čsan─▒z bu projeyi kendi makinan─▒z ├╝zerinde rahat├ža ├žal─▒┼čt─▒rabilirsiniz. ÔÇťYa Windows 7 kullan─▒yorsak?ÔÇŁ diye sormay─▒n denemedim ­čśÇ Ondada muhtemelen simulatoru kullan─▒yorsunuz…

Uygulamay─▒ ├žal─▒┼čt─▒racak olan Run butonuna geldi─čimizde burada Local Machine, Simulator ad─▒nda se├ženekler var bunlardan biri t─▒pk─▒ Windows Phone 7 uygulamalar─▒nda oldu─ču gibi bir tablet simulator u a├žar ve uygulamalar─▒m─▒z─▒ orada ├žal─▒┼čt─▒r─▒r. Bu simulator a┼ča─č─▒daki resim gibi bir ┼čey ­čÖé

Ard─▒ndan simulator ├žal─▒┼čt─▒─č─▒na g├Âre benim uygulamam─▒da g├Âsterecektir birde ona bakal─▒m nas─▒l bir ┼čey olmu┼č benim sayfan─▒n g├Âbe─čine yerle┼čtirdi─čim TextBlock.

Windows 8 Metro App uygulamas─▒na ilk ad─▒m─▒ atm─▒┼č bulunuyoruz hay─▒rl─▒ olsun.

Bu konuyla alakal─▒ daha pek ├žok makale ├žok yak─▒nda….

Bilgiyle Kal─▒n…

M.Zeki Osmanc─▒k

 

 

S─▒n─▒rs─▒z A─ča├ž Yap─▒s─▒ ve Treeview Kullan─▒m─▒ 563 595 mezo

S─▒n─▒rs─▒z A─ča├ž Yap─▒s─▒ ve Treeview Kullan─▒m─▒

Merhaba arkada┼člar

Bu yaz─▒mda ├žok├ža bahsedilen ├žok├ža kullan─▒lacak olan bir kontrol yap─▒s─▒ ve bunun database den gelen verilerle nas─▒l ├žal─▒┼čt─▒─č─▒n─▒ g├Âstermek isterim sizlereÔÇŽ

Bahsetti─čimiz kontrol├╝m├╝z Treeview denilen bir nesne bu nesne bizlere a─ča├ž yap─▒s─▒ bulunan bilgileri rahatl─▒kla ve tek ekranda g├Ârmemizde bizlere kolayl─▒k sa─člayan bir kontrol peki ama nas─▒l bu kontrole bir┼čeyler ekler kullan─▒labilir hale getirebilirizÔÇŽ

├ľncelikle bir DB ye ve tabloya ihtiyac─▒m var s─▒ras─▒ gelmi┼čken birde SQL tablosunda s─▒n─▒rs─▒z a─ča├ž yap─▒s─▒ndan bahsetmeden olmaz heralde.┬á ┼×ekildeki gibi bir veritaban─▒ olu┼čturdumÔÇŽ

 

Buradaki mant─▒k asl─▒nda basit e─čer bir kay─▒t root kay─▒tsa yani k├Âk kay─▒tsa o zaman AltKategoriID si NULL olmal─▒d─▒r. E─čer girdi─čimiz kategori ba┼čka bir kategori alt─▒nda duruyorsa o halde hangi kategori ├╝st ise AltKategoriID sine o kayd─▒n ID de─čerini girmeliyiz. Zaten resimdeki birbirine ba─čl─▒ yap─▒da bunu temsil eder. Birde girdi─čimiz verileri inceleyin bakal─▒m nas─▒l bir┼čey varm─▒┼č ­čśÇ

Burada Elektronik root yani ana kategori Bilgisayar onun alt─▒nda bulundu─ču i├žin Bilgisayar kayd─▒n─▒n AltKategoriID si Elektronik kayd─▒n─▒n ID sine e┼čit Bilgisayar─▒n alt─▒nda olanlarda Bilgisayar kayd─▒n─▒n ID sine sahip olacakt─▒r b├Âylelikle alt alta uzay─▒p giden s─▒n─▒rs─▒z bir a─ča├ž yap─▒s─▒na sahip olabiliriz.

Peki tablomuz tamam verilerimizide girdik e hani Treeview┬á derseniz onuda ┼č├Âyle ├Âzetleyelim

Yeni bir Windows formuma Treeview ve button nesnemi yerle┼čtirdim

Ardından button nesnesinin Click olayına gelerek dedim ki  :

DataRelation baglanti;private void btnListele_Click(object sender, EventArgs e){SqlConnection cnn = new SqlConnection(“Data Source = .; Initial Catalog = Deneme; User = sa; Password = 1234567?;”);SqlDataAdapter adp = new SqlDataAdapter(“Select * From Kategoriler”,cnn);DataSet ds = new DataSet();

adp.Fill(ds,”Kategoriler”);

 

baglanti = new DataRelation(“baglan”,ds.Tables[“Kategoriler”].Columns[“KategoriID”],

ds.Tables[“Kategoriler”].Columns[“AltKategoriID”]);

 

ds.Relations.Add(baglanti);

 

foreach (DataRow dr in ds.Tables[“Kategoriler”].Rows)

{

if (dr[“AltKategoriID”] == DBNull.Value)

{

TreeNode root = new TreeNode(dr[“KategoriAdi”].ToString());

root.Tag = dr[“KategoriID”];

tvAgac.Nodes.Add(root);

AltKategorileriGetir(dr,root);

}

}

tvAgac.ExpandAll();

}

 


Kodlara bakacak olursak klasik bir ADO.net ile verilerimi al─▒p bir DATASET e eklemi┼čim biliyorsunuzki DATASET nesnesi i├žine birden

fazla DATATABLE nesnesi bar─▒nd─▒rabilen bir nesne yani sanal veritaban─▒ gibide d├╝┼č├╝nebiliriz asl─▒nda. Peki database de ba─člant─▒lar olurda bunda olmazm─▒ ? Olmam─▒ tabikide olur bu ba─člant─▒y─▒da DATARELATION nesnesi sa─člar i┼čte tam burada bende verilerimi ├žektikten sonra i├žindeki hangi veri ile hangi verinin e┼čle┼čece─či yani hangisinin ana ID hangisinin ona ba─čl─▒ olan Altkategori oldu─čunu belirtip ba─člant─▒m─▒ tamamlad─▒m. Ard─▒ndan bir foreach ile Dataset i├žersine att─▒─č─▒m Datatable i├žindeki sat─▒rlar─▒ tek tek almaya ba┼člad─▒m ve bu foreach i├žersinde sadece AltKategorisi NULL olanlar─▒ ald─▒m yani Root olan k├Âk olan kay─▒tlar─▒ ald─▒m ve Treeview nesneme ekledim.

Peki bunun alt─▒nda bi┼či yokmu ? Alt─▒ndakini hatta onun alt─▒ndaki kay─▒tlar─▒ nas─▒l alaca─č─▒z derseniz ondada bir metotun yard─▒m─▒n─▒ isteyip o metodu kendi i├žersinde ├ža─č─▒rarak i┼čimizi ├ž├Âzece─čizÔÇŽ

 

private void AltKategorileriGetir(DataRow dr,TreeNode pNode){foreach(DataRow row in dr.GetChildRows(baglanti)){TreeNode childNode = new TreeNode(row[“KategoriAdi”].ToString());childNode.Tag = row[“KategoriID”];pNode.Nodes.Add(childNode);

AltKategorileriGetir(row,childNode);

}

}

 

Bu metodu ├žal─▒┼čt─▒r─▒rkende biraz once kontrol etti─čimiz root kayd─▒ ve olu┼čturulan TreeNode nesnesini parametre olarak yollad─▒ktan sonra olu┼čturdu─čumuz ba─člant─▒ nesnesi ile Altkategorideki de─čerleri kontrol ediyoruz ve varsa yine TreeNode olu┼čturup mevcut Node alt─▒na ekliyoruz. Vee sonra kategori ve alt─▒ndaki elemanlar─▒ tek tek kar┼č─▒ma geliyor

Umar─▒m yararl─▒ olur

G├Âr├╝┼čmek ├ťzere

M.Zeki Osmanc─▒k

 

GDI 2 _ Grafik Çizimi 426 487 mezo

GDI 2 _ Grafik Çizimi

Merhaba arkada┼člar

GDI ile ilgili ├Ânceki yaz─▒m─▒zda neyin nas─▒l kullan─▒laca─č─▒n─▒ g├Ârm├╝┼čt├╝k bu sefer bu GDI metotlar─▒n─▒ kullanarak nas─▒l hesaplamalar yapar─▒z. Se├žim sonu├žlar─▒nda hep g├Âr├╝r├╝z bir pasta dilimi ├╝zerinde partilerin oylar─▒ g├Âr├╝n├╝r ve y├╝zde olarak pasta grafikde bir dilim kaplarlar . Bakal─▒m bizim partilerden hangisi ne kadar oyla pastan─▒n neresinde duracak ???

├ľncelikle WindowsForm uygulamam─▒z ├╝zerine 2 TextBox 1 Button ve 1 PictureBox at─▒yoruz.

Bu g├Âr├╝nt├╝y├╝ elde ettikten sonra yapmam─▒z gerek pek de bir┼čey kalmad─▒ asl─▒nda sadece kod blo─čunu a├ž─▒p yazmak kal─▒yor ­čśÇ

string[] partiler = new string[10];int[] oylar = new int[10];int siraNo, toplamOy;

├ľncelikle yukardaki gibi de─čerlerimi tutaca─č─▒m dizilerimi ┬áve hesaplama yapabilmek i├žinse de─či┼čkenlerimi GLOBAL olarak tan─▒mlad─▒m.

Daha sonra buton i├žersinde de─čerlerimi al─▒p bunlar─▒ grafiksel olarak picturebox i├žersine ├žizdirece─čim.

├ľncelikle 10 elemanl─▒ bir dizi olu┼čturdu─čum i├žin dizinin boyutundan ├žok eleman girilmesin diye bir kontrol yap─▒yorum. Ard─▒ndan oylar i├žersine de─čer eklerken int de─čerlerin girildi─činden emin oluyorum…

┬á┬á┬á┬á┬á┬á┬á┬á┬á┬á┬á if (siraNo == 10){MessageBox.Show(“10 partiden fazla olamaz???”);return;}try

{

oylar[siraNo] = int.Parse(textBox2.Text);

}

catch (Exception)

{

MessageBox.Show(“Oylarda Hata Var”);

return;

}

 

Hem partiler hemde oylar ayn─▒ indeks numaralar─▒na yazd─▒r─▒lacak .

            partiler[siraNo] = textBox1.Text;toplamOy += oylar[siraNo];siraNo++;Graphics grp = this.pictureBox1.CreateGraphics();grp.Clear(pictureBox1.BackColor);

Random rnd = new Random();

int i, basAci=0,yayAci ,boy=0;

Color renk;

HatchBrush firca;

Toplam oy say─▒s─▒n─▒ hesapl─▒yoruz. ┬áArd─▒ndan nesnelerimizi tan─▒ml─▒yoruz. ┬áPicturebox ├╝zerine ├žizim yapabilmek i├žin Graphics nesnesi olu┼čturuyoruz. Picturebox da ne varsa siliyoruz. Color de─či┼čkeni ve desenli ├žizim i├žin HatchBrush nesnesi olu┼čturuyoruz.

Index numaras─▒na g├Âre t├╝m dizi i├žersindeki elemanlar─▒ al─▒p grafiksel olarak ├žizebilmek i├žin bir for d├Âng├╝s├╝ olu┼čturuyoruz.

            for (i = 0; i <= siraNo-1; i++){yayAci = 360 * oylar[i] / toplamOy;renk = Color.FromArgb(rnd.Next(255), rnd.Next(255), rnd.Next(255));firca = new HatchBrush((HatchStyle)rnd.Next(50), renk);grp.FillPie(firca,0,80,200,200,basAci,yayAci);

 

grp.DrawString(“% ” + boy.ToString(), new Font(“Tahoma”, 8, FontStyle.Bold), Brushes.Black, 5, 80 + i * 20);

grp.FillRectangle(firca, 260, 80 + i * 20, 18, 18);

 

grp.DrawString(partiler[i] + ” = ” + oylar[i].ToString(), new Font(“Tahoma”, 8, FontStyle.Bold), Brushes.Black, 290, 80 + i * 20);

basAci += yayAci;

}

 

├çizdirece─čimiz FillPie nesnesinin ka├ž derecelik bir a├ž─▒ ile ├žizilece─čini hesaplamak i├žin yay _aci de─či┼čkenini kullanaca─č─▒z. ┬áRandom renk elde edebilmek i├žin Color.FromArgb metodunu kullanarak rastgele renk de─čerlerini veriyoruz. HatchBrush ├╝zerindede random olarak desen gelebilmesi i├žin gerekli tan─▒mlamay─▒ yap─▒yoruz. Ard─▒ndan k├╝├ž├╝k bir kare rengin hangi partiye ait oldu─čunu g├Âstermek i├žin hemen yan─▒nada partinin ad─▒ ve oy say─▒s─▒┬á yazd─▒rd─▒ktan sonra en son tan─▒mlad─▒─č─▒m ba┼člang─▒├ž a├ž─▒s─▒ bas_Aci de─či┼čkenini ├žizdi─čim ┼čeklin yay_Aci de─čeri kadar artt─▒r─▒p yeni ├žizilecek olan pie i├žin ba┼člang─▒├ž konumunu belirliyoruz.

Ve son olarak kar┼č─▒m─▒za ├ž─▒kan g├Âr├╝nt├╝ :

B├Âylelikle Graphics nesnesindeki de─čerlerin nas─▒l i┼čimize yarayaca─č─▒ biraz daha kafam─▒zda oturmu┼č olur umar─▒m…

G├Âr├╝┼čmek ├ťzere.

M.Zeki OSMANCIK

GDI 401 376 mezo

GDI

Merhaba arkada┼člar

GDI┬á = Graphical Design Interface┬á ile ilgili ufak bir bilgi vermek istiyorum sizlere. GDI, Windows uygulamalar─▒ ├╝zerinde ├žizim i┼člemleri ger├žekle┼čtirmemize olanak tan─▒yan s─▒n─▒flard─▒r.

Bu s─▒n─▒flar ile Windows formlar ├╝zerine veya print nesneleri ile ka─č─▒t ├╝zerine baz─▒ ├žizimler yapabilmemiz m├╝mk├╝n.

├ľncelikle bir ├žizim yapabilmek i├žin de ilk gereken bir ka─č─▒t yada ├žizim yap─▒lacak aland─▒r ├Âncelikle bunu belirtmemiz gerekiyor

Form ├╝zerine ├žizim yapabilmek i├žin:Graphics grp = this.CreateGraphics();

 

PictureBox ├╝zerine ├žizim yapabilmek i├žin:

Graphics grp = pictureBox1.CreateGraphics();

 

├çizim alan─▒m─▒z─▒ olu┼čturduktan sonra ile form veya picturebox ├╝zerine ne ├žizdirece─čimizi se├žmemiz gerekiyor ama bunu se├žmeden ├Âncede ├žizmek i├žin gerekli olan kalem veya i├ži dolu bir ┼čekil ├žizeceksek f─▒r├ža gerekiyor. Bunu da ┼ču ┼čekilde tan─▒mlayabiliriz;

Pen kalem = new Pen(Color.Blue);kalem.Width = 5;

 

Brush firca = new SolidBrush(Color.Red) ;

 

Bu ┼čekilde tan─▒mlad─▒─č─▒m─▒zda kalem ve fircanin ├Âzelliklerini de─či┼čtirebilir durumda oluyoruz. Kalemin kal─▒nl─▒─č─▒ vs gibi ├Âzelliklerini ayarlayabiliyoruz. Ya bunlara ihtiyac─▒m─▒z yoksa bunlarla u─čra┼čmadan nas─▒l yapar─▒z derseniz onun ├ž├Âz├╝m├╝de ┼ču ┼čekilde…

Pens.Blue 

Brushes.Red

 

Hemen belirteyim bu ┼čekilde kullan─▒m tek ba┼č─▒na m├╝mk├╝n olmuyor ancak gerekli kodlar i├žersinde bu ┼čekilde kullanabilirsiniz biraz a┼ča─č─▒da bunun ├Ârneklerini g├Âreceksiniz zaten ­čśë

├çizim alan─▒ tamam kalem tamam fir├ža tamam eee ne kald─▒ geriye ??? Sadece ├žizmek kald─▒ ­čśë

├çizim yapabilmek i├žinde ilk ba┼čta ├Ârne─čini (instance) ald─▒─č─▒m─▒z Graphics nesnesini kullanaca─č─▒z. Ve i├žersindeki ├žizim metotlar─▒ ile form ├╝zerine ┼čekiller ├žizece─čiz….

grp.DrawLine(Pen nesnesi, X1, Y1, X2, Y2);grp.DrawLine(kalem, 50, 50, 150, 50);

Formun ├╝zerine Line ├žizerken verilen koordinatlar 2 tane x ve y noktalar─▒d─▒r bu iki noktay─▒ belirtiriz ve DrawLine metodu bizim yerimize bu iki noktay─▒ birle┼čtirir ve ┼čekildeki gibi bir g├Âr├╝nt├╝ ortaya ├ž─▒kar.

Birde Dikd├Ârtgen Yuvarlak bi┼čiler ├žizelim.

grp.DrawEllipse(Pen nesnesi, X, Y, Geni┼člik, Y├╝kseklik);grp.DrawEllipse(kalem, 100, 100, 100, 100);

 

grp.DrawRectangle(Pen nesnesi, X, Y, Geni┼člik, Y├╝kseklik);

grp.DrawRectangle(Pens.Blue, 200, 100, 100, 100);

 

Bu ┼čekilleri ├žizerkende gerekli olan veriler ├Ânce bir kalem sonra X ve Y noktas─▒ ard─▒ndan ├žizilecek olan ┼čeklin y├╝kseklik ve geni┼člik bilgileridir.

Son olarak Pie yani kekden bahsetmek istiyorum ­čśÇ evet sizi keklemiyorum pasta grafik olarak adland─▒rd─▒m─▒z ┼čekli nas─▒l ├žizeriz ona bakal─▒m…

grp.DrawPie(Pen nesnesi, X, Y, Geni┼člik,Y├╝kseklik , Ba┼člang─▒├ž A├ž─▒s─▒, Yay A├ž─▒s─▒); 

grp.DrawPie(kalem, 50, 200, 100, 100, 0, 270);

┼×imdi birde bunlar─▒n i├ži dolu olanlar─▒ nas─▒l yaz─▒l─▒yor aralar─▒nda ne fark var g├Ârelim ­čśë

grp.FillEllipse(firca, 100, 100, 100, 100);grp.FillRectangle(firca, 200, 100, 100, 100);

grp.FillPie(Brushes.Purple, 50, 200, 100, 100, 0, 270);

 

 

 

GDI nesnesi sadece bu i┼čemi yarar diyebilirsiniz ­čśÇ Bu sadece ba┼člang─▒├ž bir sonraki yaz─▒da GDI nin as─▒l nas─▒l kullan─▒labildi─čini g├Ârece─čiz ­čśë

G├Âr├╝┼čmek ├ťzere…

 

 

JavaScript XmlHttpRequest 657 588 mezo

JavaScript XmlHttpRequest

Merhaba arkada┼člar bu yaz─▒mda sizlere Javascript ile yap─▒labilen ├žok yararl─▒ bir o kadar performansl─▒ hep g├Âr├╝p acaba nas─▒l dedi─čimiz bir yap─▒y─▒ anlatmaya ├žal─▒┼čaca─č─▒m…
XML HTTP REQUEST Javascript ile herhangi bir server’a http request yapman─▒za olanak veren guzel bir objedir. Gelen cevab─▒ parse edip sayfadaki bazi ├Â─čeleri de─čistirebilir ve sayfa refresh olmadan bir cok ┼čey yapilabilir. Yani i┼čin k─▒sas─▒ Postback olmadan bilgileri ├žekebilme i┼člemini ger├žekle┼čtirmemize yard─▒mc─▒ oluyor. ├ľrnek olarak Google da yazd─▒─č─▒m─▒z bir harf tamamlanarak ├Âneriler halinde geliyor. Sayfan─▒n yenilendi─čini g├Ârm├╝yoruz sadece ├Ânerilerin belirdi─či g├Âzlemleniyor ama bu verilerde bir veritaban─▒ndan geliyor o derece h─▒zl─▒ ­čśë


Bu teknolojiyi Internet Explorer, Mozilla Firefox,Opera ve Safari destekliyor.Xml Http Request ─░nternet Explorer ÔÇśda ActiveX Control , Firefox ÔÇśta ise DOM (Document Object Model)ÔÇÖ in bizzat par├žasidir. Internet Explorer 7ÔÇÖ den itibaren native olarak desteklenmektedir. Bu sayede de artik ActiveX ÔÇśi kapatilmis browserlarda dahi calisabilmektedir.
Bu yap─▒n─▒n avantajlar─▒n─▒ ┼č├Âyle s─▒ralayabilirim :
ÔÇó En ├Ânemli art─▒s─▒, sayfa yenilenmedi─či i├žin de─či┼čken olmayan di─čer k─▒s─▒mlar─▒n sunucuda yeniden i┼členip sunucuyu yormas─▒ engellenir;
ÔÇó Kullan─▒c─▒da tekrar y├╝klenmedi─činden bant geni┼čli─či bo┼ča harcanmaz, ayn─▒ zamanda kullan─▒c─▒ taraf─▒nda sayfalarda daha h─▒zl─▒ i┼člem yap─▒l─▒r.
ÔÇó Sayfay─▒ yenilenmeden i├žeri─čimizi al─▒yor olmam─▒z, web uygulamam─▒za bir masa├╝st├╝ uygulama g├Âr├╝n├╝m├╝ katar.
ÔÇó Web uygulamalar─▒n─▒n tek s─▒k─▒nt─▒s─▒, h─▒zl─▒ ve pratik ├žal─▒┼čam─▒yor olman─▒zd─▒r. Web yaz─▒l─▒mlar─▒ masa├╝st├╝ndeki yaz─▒l─▒mlar gibi pratik kullan─▒lan ┼čeyler olmal─▒d─▒r
ÔÇó XMLHttpRequest asl─▒nda javascript ile sunulmu┼č bir kolayl─▒kt─▒r. Web sitesinin e┼č zamanl─▒ olarak arka planda ├žal─▒┼čan olaylar─▒n─▒ takip eder. XML CSS ve javascript ile sonucun an─▒nda g├Âr├╝lmesini sa─člar.
ÔÇó XMLHttpRequest istemci taraf─▒nda (Client Side) ├žal─▒┼č─▒r. Birden fazla asenkron web sayfas─▒na postback ve yenileme yapmadan istekte bulunabilir ve gelen cevaplar─▒ istekte bulunanlara iletir.

ONREADYSTATECHANGE
Sunucuya bir istek g├Ânderilmesinden sonra, sunucudan d├Ânen veriyi alabilecek bir i┼čleve ihtiyac─▒m─▒z var. onreadystatechange ├Âzelli─či sunucunun yan─▒t─▒n─▒ i┼čleyecek olan fonksiyonu tutar.
A┼ča─č─▒daki kod hem bo┼č bir fonksiyon tan─▒mlar hemde onreadystatechange ├Âzelli─čini ayarlar

xmlHttp.onreadystatechange=function(){ // Buraya kod yazaca─č─▒z}

 

READYSTATE ├ľZELL─░─×─░
Sunucu yan─▒t─▒n─▒n durumunu tutar. readyState her de─či┼čti─činde onreadystatechange fonksiyonu ├žal─▒┼čt─▒r─▒l─▒r. Sunucudan gelen yan─▒t─▒n tamamland─▒─č─▒n─▒ (veriyi alabilece─čimiz durumu) kontrol etmek i├žin onreadystatechange i┼člevimize bir If ifadesi ekleyece─čiz:

xmlHttp.onreadystatechange=function(){ if(xmlHttp.readyState==4)

{ // Veriyi sunucu yan─▒t─▒ndan al }
}

 

RESPONSETEXT ├ľZELL─░─×─░
Sunucudan gelen veri responseText ├Âzelli─či ile al─▒nabilir.
Kodumuzda “time” form de─či┼čkenimizin de─čerini responseText de─čerine e┼čitleyece─čiz:

xmlHttp.onreadystatechange=function(){

if(xmlHttp.readyState==4)

{

document.myForm.time.value=xmlHttp.responseText;

}
}

XMLHttpRequest nesnesini etkin ┼čekilde kullanman─▒n 2 yolu mevcut:

Send the Request
Bu y├Ântem bir XMLHttpRequest nesnesi yarat─▒p olaylar─▒ dinlemesi i├žin atamakt─▒r.
Basit olarak bir xhr nesnesi yarat─▒yoruz:

var xhr = new XMLHttpRequest();

Daha sonra olu┼čturdu─čumuz nesneyi onreadystatechange ile olaylar─▒ dinlemesi i├žin g├Ârevlendirmek:

xhr.onreadystatechange = myCallback;

Ard─▒ndan open() metodunu ├ža─č─▒r─▒yoruz.

xhr.open(‘GET’, ‘somefile.txt’, true);

ilk parametre HTTPRequest tipini belirler (GET,POST,HEAD,……) Get ve Post en s─▒k kullan─▒lanlard─▒r. Get deyimini istekle birlikte ├žok fazla data g├Ândermemiz gerekmiyorsa kullan─▒r─▒z. Bunun aksi durumlarda POST kullan─▒r─▒z.
─░kinci parametre bizim istekte bulundu─čumuz URL dir. ├ľrnekte belirtilen bir text dosyas─▒d─▒r sayfam─▒zla ayn─▒ adres i├žerisinde bulunur.
Son parametremizde iste─čin boolean de─čerdir iste─čin e┼č zamanl─▒ olmamas─▒ durumunu true veya false de─čer ile belirler.
Son ad─▒m olarak iste─či g├Ândermektir.

xhr.send(”);

Send() metodu istekle birlikte herhangi bir datay─▒da i├žerebilir. Get ile g├Ânderilen isteklerde bu bo┼č bir stringdir ├ž├╝nk├╝ data URL olarak belirtti─čimiz dosya yada adrestedir. POST ile g├Ânderilen isteklerde bir query string mevcuttur key=value&key2=value2.
Bu noktada istek g├Ânderilir ve kodlar di─čer bir g├Âreve atanabilir. Callback fonksiyonu iste─čimizim serverdan geri gelmesi ile ├ža─č─▒r─▒l─▒r.

Process the Response
Olay dinleyici cevap geldi─činde uyar─▒r ve kodlar─▒m─▒z gelen cevap ile yararl─▒ i┼čler yapar her gelen cevab─▒ bo┼ča kontrol ve ya i┼čleme sokmak zorunda kalmay─▒z.
Readystatechange olay─▒ ile bir dinleyici yerle┼čtirdik XHR nesnesinin readystate ├Âzelli─čini ├ža─č─▒rd─▒k. Readystatechange olay─▒ ├žal─▒┼čt─▒─č─▒nda her zaman de─či┼čen bir ├Âzelliktir .
Readystate ├Âzelli─či ┼ču de─čerleri takip eder
0ÔÇöuninitialized
1ÔÇöloading
2ÔÇöloaded
3ÔÇöinteractive
4ÔÇöcomplete = istek geri geldi ve i┼člendi.
Readystate ├Âzelli─čini 4 olarak ayarlad─▒─č─▒m─▒zda bunun anlam─▒ istek geri geldi ve i┼čleme girdi demektir. 4 ├Âzelli─či sadece bununlada kalmayarak HTTP istek durum kodlar─▒n─▒da inceler. Olmayan bir URL g├Ânderildi─činde al─▒nadan HTTP istek kodu 404 (Dosya bulunamad─▒) hatas─▒d─▒r.
E─čer d├Ânen durum kodu 200 (ok ) ise bu ge├žerli bir adres bulundu─čunu XHR nesnesinin ├žal─▒┼čabilece─čini belirtir.

function myCallback() {if (xhr.readyState < 4) {

return; // not ready yet

}

if (xhr.status !== 200) {

alert(‘Error!’); // the HTTP status code is not OK

return;

}

// all is fine, do the work

alert(xhr.responseText);

}

├ľnce istekte bulundu─čumuz sayfay─▒ yeni i├žerik olarak alm─▒┼č olaca─č─▒z ve bunu ister sayfada g├Âr├╝nt├╝leyebilir istersekte bir tak─▒m hesaplamalarda kullanabiliriz.

Hadi bununla ilgili bir uygulama yapal─▒m kafalarda nas─▒l ├žal─▒┼č─▒r bu sorusu olmas─▒n ­čśë
XMLHTTP REQUEST y├Ântemiyle databasede bulunan kategorilere ait ├╝r├╝nleri h─▒zl─▒ bir bi├žimde ekranda g├Âr├╝nt├╝leyece─čiz.
├ľncelikle XmlHttpRequest nesnemizi yaratmak i├žin bir function yaz─▒yoruz.

 

Daha sonra olu┼čturdu─čumuz bu nesneye get ile parametre yollayabilece─čimiz ve geri d├Ân├╝┼č sa─člayabilece─čimiz ba┼čka bir function daha yaz─▒yoruz.

Daha sonra Handler ile istekte bulundu─čumuz ├╝r├╝n grubunun kategori id sini birlikte yollayabilece─čimiz ba┼čka bir function daha yaz─▒yoruz.

Sayfam─▒z─▒n CodeBehind k─▒sm─▒ndada Repeater nesnesi ile databasedeki “Categories” tablosundaki kategori isimlerini buton nesneleri ile birlikte olu┼čturuyoruz.

Son olarak sayfam─▒z─▒ g├Âr├╝nt├╝ledi─čimizde hem butonlarla bir se├žim yapabiliyoruz hemde Dropdown men├╝ ile istedi─čimiz Kategoriye ait ├╝r├╝nleri g├Âr├╝nt├╝leyebiliyoruz.
Hi├ž beklemeden sanki masa├╝st├╝ uygulamas─▒ym─▒┼čcas─▒na h─▒zl─▒ ve pratik

Umar─▒m Yararl─▒ olur ­čśë

M.Zeki Osmanc─▒k

Wamp Server ├çal─▒┼čt─▒rmak 243 181 mezo

Wamp Server ├çal─▒┼čt─▒rmak

Merhaba arkada┼člar bu yaz─▒mda ba┼č─▒ma gelen ve ├ž├Âz├╝m├╝n├╝ biraz zaman harcayarak bulabildi─čim bir bilgiyi sizlerinde vakit kaybetmemeniz i├žin payla┼čmak istiyorum.

├ľncelikle Wamp server neden SQL server ve visual studio olan bir bilgisayarsa ├žal─▒┼čmaz bunu cevaplayal─▒m. Sebebi hepsinin ayn─▒ portu dinlemeleridir.┬á SQL server Integration service ve IIS bu portu dinledi─či i├žin wamp server hizmet veremez.

Bu sorunu a┼čabilmek i├žin olaya en ba┼č─▒ndan bir bakal─▒m.

├ľncelikle kurulum nas─▒l oluyor ona bakal─▒mn ├žo─ču yerde var ama ben yinede fazla bilgi g├Âz ├ž─▒kartmaz diyerek ba┼čl─▒yoruz kurmaya…

Kurulurken bizden default bir web browser exe sini belirtmemiz gerekiyor. E─čer Firefox varsa size bu taray─▒c─▒y─▒ varsay─▒lan olarka ayarlamak isteyip istemedi─činizi soracak karar sizin art─▒k…

Kurulum biterken localhost ve domain ismi sorar bunlar orada yazd─▒─č─▒ gibi kalabilir. Tabi buda size kalm─▒┼č bir durum isterseniz de─či┼čtirebilirsinizde.

Ve kurulum tamamland─▒─č─▒nda sa─č altta bu program─▒n ├žal─▒┼čt─▒─č─▒n─▒ fakat turuncu bir renkte yani offline durumda oldu─čunu g├Âr├╝yoruz. Bunun sebebi Sql server i├žersindeki baz─▒ servislerin ve IIS servislerinin dinledikleri portlarla ayn─▒ portlar─▒ kullanmaya ├žal─▒┼čt─▒─č─▒ndan online olam─▒yor. Peki ne yapmak laz─▒m ­čśÇ

Bunun i├žin wamp klas├Âr├╝ ┬ái├žersinde ┬áyani tam olarak┬á C:\wamp\bin\apache\Apache2.2.17\conf adresinde httpd.conf dosyas─▒n─▒ notepad ile a├ž─▒yoruz .

Ard─▒ndan bu dosya i├žersinde ÔÇťListen 80ÔÇŁ yazan sat─▒r─▒ bularak 80 rakam─▒n─▒ herhangi bir rakam yapabilirsiniz. Mesela ben 88 yapt─▒m.

Bu i┼člemden sonra notepad i kaydedip kapat─▒yoruz ve ayarlar─▒n ge├žerli olabilmesi i├žin wamp server ├╝zerinde Restart All Services┬á se├žene─čini se├žerek yeniden ba┼člamas─▒n─▒ sa─čl─▒yoruz.

Sonunda WAMP Server kullan─▒ma haz─▒r .

Tek bir ayr─▒nt─▒ var ├žal─▒┼čt─▒rma i┼člemi i├žersinde sadece port numaras─▒n─▒ belirtmemiz gerekiyor ├ľrne─čin:

http://localhost:88/

http://localhost:88/phpmyadmin/

Umar─▒m yararl─▒ olur.

M.Zeki Osmanc─▒k…

SQL _ Stored Procedure 600 545 mezo

SQL _ Stored Procedure

Merhaba arkada┼člar bu yaz─▒m─▒zda Sql i├žersinde bulunan ve hayat kurtaran Stored Procedure konusuna de─činece─čiz.

Bir amaca ula┼čmak i├žin takip edilen yol ve y├Ântem tan─▒m─▒ndan yola ├ž─▒k─▒larak, bir prosed├╝r herhangi bir i┼člevi yerine getirebilmek i├žin yaz─▒lan kodlar─▒n bir paket i├žersinde tutulmu┼č halidir diyebiliriz.

Stored procedure kullanman─▒n bize sa─člad─▒─č─▒ yararlardan k─▒saca bahsetmek gerekirse :
ÔÇó ├çal─▒┼č─▒rken baz─▒ planlamalar─▒n do─čru olarak yap─▒lmas─▒n─▒ sa─člar ve tekrar tekrar kullan─▒labilir bir yap─▒d─▒r.
ÔÇó ─░├žersine yaz─▒lan sorgulara parametrelendirme ├Âzelli─či katar.
ÔÇó Uygulamalar ┬áaras─▒nda kullan─▒labilir.
ÔÇó G├╝venli data giri┼č ├ž─▒k─▒┼č ve d├╝zenlemesi sa─člar.
ÔÇó Daha az network bandwidth kaynak kullan─▒m─▒ sa─člar.
ÔÇó Job olarak tan─▒mlanabilir ve schedule edilebilir.
ÔÇó Database objelerine daha g├╝venli eri┼čim olana─č─▒ tan─▒r.
Stored procedure bile┼čenleri par├žalara ay─▒r─▒r yani parsing i┼člemi ger├žekle┼čtirir.
Yani ilk olarak ; Veritaban─▒ i├žersinde view table vb. nesnelere g├Ânderme yapan referanslar varsa ge├žerli olup olmad─▒klar─▒n─▒ (nesnenin ve iznin olup olmad─▒─č─▒) kontrol eder.Kontrollerden ge├žen SP nin ad─▒ sysobject tablosuna kodlar─▒ ise syscomments tablosuna kaydedilir.
Bu i┼člemlerle birlikte derleme i┼člemi yap─▒l─▒r. Normalizasyon i┼člemleri olarak da an─▒lan bu i┼člemler sonucunda, a─ča├ž ┼čemas─▒ elde edilir. Bu ┼čema da sysprocedures tablosunda saklan─▒r.
Stored Procedure herhangi bir anda ├ža─čr─▒ld─▒─č─▒nda, ilk kez ├žal─▒┼č─▒yorsa bu i┼člemler ger├žekle┼čtirilir. ─░lk defa ├ža─čr─▒lm─▒yorsa, kontrol, sorgulama a─čac─▒ olu┼čturma i┼člemleri yap─▒lmaz ve olduk├ža h─▒zl─▒ bir ┼čekilde Stored ProcedureÔÇÖ├╝n derlenmi┼č hali├žal─▒┼č─▒r. Bundan dolay─▒ Stored ProcedureÔÇÖler derlenen nesnelerden biri olarak bilinir.

Stored Procedure Olu┼čturmak

CREATE PROC [ EDURE ] prosed├╝r_ad─▒AST-SQL ifadeleri

De─či┼čiklik Yapmak

ALTER PROC [EDURE] prosed├╝r_ad─▒AST-SQL ifadeleri

Bir Stored ProcedureÔÇÖde de─či┼čiklik yapabilmek i├žin ├Ânce kaynak kodunun al─▒nmas─▒ ve bir Query ekran─▒na kopyalan─▒p d├╝zenlenmesi gerekir.

Stored ProcedureÔÇÖ├╝ Silmek

DROP PROC  sahip.prosedür_adı

Var olan bir Stored ProcedureÔÇÖ├╝ silmek i├žin DROP komutunu kullanmak gereklidir.

DROP komutundan sonra Stored ProcedureÔÇÖ├╝n sahibinin ad─▒ ve Stored ProcedureÔÇÖ├╝n ad─▒┬áyaz─▒lmal─▒d─▒r.

De─čer Alan Stored ProcedureÔÇÖler

Stored ProcedureÔÇÖlerin daha etkin kullan─▒labilmesi ve i┼člevsel bir hale gelebilmesi i├žin d─▒┼čar─▒dan de─čer almalar─▒na ihtiya├ž duyulur. Bu nedenle girdi parametreleri (Input Parameter) kullan─▒l─▒r.

De─čer Al─▒p-Veren Stored ProcedureÔÇÖler

De─čer al─▒p-veren stored procedure ler, queryÔÇÖden g├Ânderilen de─čerleri al─▒p istenilen i┼čleme tabi tuttuktan sonra elde edilen sonucu tekrar QueryÔÇÖe g├Ânderen prosed├╝rlerdir. Bui┼člem i├žin OUTPUT parametresi kullan─▒l─▒r.

RETURN Deyimi

Prosed├╝rden tek bir tamsay─▒ de─čer d├Ând├╝rmek i├žin bir ba┼čka se├ženek olarak RETURN┬áifadesi kullan─▒labilir. Bu ┼čekilde OUTPUT parametresini hem prosed├╝r i├žinde hem de┬áprosed├╝r├╝n ├ža─čr─▒ld─▒─č─▒ yerde tan─▒mlamak zorunda kal─▒nmadan do─črudan de─čer d├Ând├╝r├╝lebilir.

Store Procedureler ┬ák─▒saca bu kadar…

Umar─▒m yararl─▒ olur.

Tekrar g├Âr├╝┼čmek ├╝zere…

M.Zeki Osmanc─▒k

XML ile Telefon Defteri Yapal─▒m 3!! 618 381 mezo

XML ile Telefon Defteri Yapal─▒m 3!!

Projemize kald─▒─č─▒m─▒z yerden devam ediyoruz ­čśÇ
Kaydet i┼čleminden farkl─▒ olarak mevcut olan kayd─▒ d├╝zenlemek i├žin d├╝zenleme butonumuzun Click olay─▒na ilgili kodlar─▒ yaz─▒yoruz.

protected void Button2_Click(object sender, EventArgs e){

xmlDoc = new XmlDocument();

xmlDoc.Load(dosya);

XmlNode secilen = xmlDoc.SelectSingleNode(“Kisiler/Kisi[Ad='” + ListBox1.Text + “‘]”);

secilen[“Ad”].InnerText = TextBox1.Text;

secilen[“Soyad”].InnerText = TextBox2.Text;

secilen[“Telefon”].InnerText = TextBox3.Text;

xmlDoc.Save(dosya);

TextBox1.Text = “”;

TextBox2.Text = “”;

TextBox3.Text = “”;

TelefonlariYukle();

}

Farkl─▒ bir i┼člem yapmad─▒k asl─▒nda. XmlNode iled├╝─č├╝m├╝ belirledik ve InnerText ile o d├╝─č├╝m i├žersinde var olan veriyi alm─▒┼č olduk. Yeni de─čerleride yine InnerText ile yerine yazm─▒┼č olduk. B├╝t├╝n i┼člemleri element i├žersindeki d├╝─č├╝mlerdeki bilgiler ile yapt─▒k yeni kay─▒t i├žin yeni d├╝─č├╝mler ekledik mevcut d├╝─č├╝mler ekledik. Silme i┼člemi i├žinde tabiki d├╝─č├╝m silmemiz gerekecek bunun i├žinde Sil butonuna…

protected void Button3_Click(object sender, EventArgs e){

xmlDoc = new XmlDocument();

xmlDoc.Load(dosya);

XmlNode secilen = xmlDoc.SelectSingleNode(“Kisiler/Kisi[Ad='” + ListBox1.Text + “‘]”);

xmlDoc.DocumentElement.RemoveChild(secilen);

xmlDoc.Save(dosya);

TextBox1.Text = “”;

TextBox2.Text = “”;

TextBox3.Text = “”;

TelefonlariYukle();

}

RemoveChild ile ChildNode dedi─čimiz se├žilen d├╝─č├╝m├╝ silme i┼člemini ger├žekle┼čtirebiliyoruz.

Peki 3 temel i┼člemimiz bitti birde bu Xml sayfas─▒ i├žersinde arama yapmak istersek ?

Bunun i├žinde en alt k─▒sma yerle┼čtirdi─čimiz Textbox ve Button ile bu i┼či ├ž├Âzebiliriz . Bu i┼člem i├žinde …

protected void Button4_Click(object sender, EventArgs e){

ListBox1.Items.Clear();

XPathDocument xp = new XPathDocument(dosya);

XPathNavigator xn = xp.CreateNavigator();

string sorgu = “Kisiler/Kisi[Ad='”+TextBox4.Text+”‘]/Ad”;

XPathNodeIterator ni = xn.Select(sorgu);

while (ni.MoveNext())

{

ListBox1.Items.Add(ni.Current.ToString());

}

}

─░┼čte Xml i veritaban─▒ olarak kullanarak yapt─▒─č─▒m─▒z ├žok basit bir telefon defteri ­čśë

G├╝le G├╝le kullan─▒n ­čśÇ

Projeyi ─░ndirebilmek i├žin T─▒klay─▒n!!

Bilgiyle Kal─▒n …

M.Zeki Osmanc─▒k

XML ile Telefon Defteri Yapal─▒m 2!! 675 378 mezo

XML ile Telefon Defteri Yapal─▒m 2!!

Bir ├Ânceki yaz─▒n─▒n devam─▒ olarak bu yaz─▒m─▒zdada projemizi geli┼čtirmeye devam ediyoruz.

Listbox a kay─▒tlar─▒m─▒z─▒ ekledikten sonra listbox ├╝zerinde bir kayd─▒ se├žti─čimizde bilgilerin ilgili textbox lara yaz─▒lmas─▒n─▒ istiyoruz bunun i├žinde Listbox kontrol├╝n├╝n SelectedIndexChanged olay─▒na ilgili kodlar─▒ yaz─▒yoruz.

protected void ListBox1_SelectedIndexChanged(object sender, EventArgs e){xmlDoc = new XmlDocument();

xmlDoc.Load(dosya);

XmlNode secilen = xmlDoc.SelectSingleNode(“Kisiler/Kisi[Ad='” + ListBox1.Text + “‘]”);

TextBox1.Text = secilen[“Ad”].InnerText;

TextBox2.Text = secilen[“Soyad”].InnerText;

TextBox3.Text = secilen[“Telefon”].InnerText;

}

Bu i┼člemden sonra projemizde bir ad─▒m daha atm─▒┼č oluyoruz ve her kayd─▒ se├žti─čimizde o kay─▒tla ilgili t├╝m bilgiler ilgili textboxlara yaz─▒l─▒yor. Bu bize Update i┼čleminde ├žok b├╝y├╝k kolayl─▒k sa─člayacak.

─░lk olarak Kaydet butonunu i┼člevine kavu┼čtural─▒m. Ve buton1 in Click olay─▒na ilgili kodlar─▒ yazal─▒m.

protected void Button1_Click(object sender, EventArgs e){xmlDoc = new XmlDocument();

xmlDoc.Load(dosya);

XmlElement xe = xmlDoc.CreateElement(“Kisi”);

XmlNode ad = xmlDoc.CreateNode(XmlNodeType.Element,”Ad”,””);

XmlNode sAd = xmlDoc.CreateNode(XmlNodeType.Element, “Soyad”, “”);

XmlNode tel = xmlDoc.CreateNode(XmlNodeType.Element, “Telefon”, “”);

XmlAttribute xa = xmlDoc.CreateAttribute(“Tur”);

xa.Value = “Cep”;

tel.Attributes.Append(xa);

ad.InnerText = TextBox1.Text;

sAd.InnerText = TextBox2.Text;

tel.InnerText = TextBox3.Text;

xe.AppendChild(ad);

xe.AppendChild(sAd);

xe.AppendChild(tel);

xmlDoc.DocumentElement.AppendChild(xe);

xmlDoc.Save(dosya);

TextBox1.Text = “”;

TextBox2.Text = “”;

TextBox3.Text = “”;

TelefonlariYukle();

}

XmlElement: Xml dosyas─▒ i├žersinde bulunan bir eleman─▒ temsil eder.

XmlNode: Eleman i├žersindeki her bir d├╝─č├╝m├╝ temsil eder.

XmlAttribute : D├╝─č├╝mlerin sahip oldu─ču ├Âzellikleri temsil eder.

G├Âr├╝ld├╝─č├╝ ├╝zere Xml dosyam─▒z─▒ bir database gibi kullanarak kay─▒tlar─▒ g├Âr├╝nt├╝leyip yeni kay─▒tlar─▒ Xml ├╝zerine yazabiliyoruz.

Bilgiyle Kal─▒n…

M.Zeki Osmanc─▒k

XML ile Telefon Defteri Yapal─▒m !! 410 256 mezo

XML ile Telefon Defteri Yapal─▒m !!

Merhaba arkada┼člar bir ├Ânceki yaz─▒m─▒zda XML nedir nas─▒l kullan─▒l─▒r ile alakal─▒ bilgi vermi┼čtik.Bu yaz─▒m─▒zda sizlerle C# ile Xml ortak yap─▒m─▒ bir proje yapaca─č─▒z. Bu web projemizde Xml dosyas─▒n─▒ bir database gibi kullanarak kay─▒t yapaca─č─▒z, kay─▒t okuyup, silece─čiz.

├ľncelikle resimdeki gibi ┬á4 TextBox , 4 buton, 1 Listbox dan olu┼čan formu tasarl─▒yoruz.

Bu formu tasarlad─▒ktan sonra projemizle birlikte kullanaca─č─▒m─▒z Xml dosyam─▒z─▒ yaratarak i├žersindeki d├╝─č├╝mleri olu┼čturmam─▒z gerekiyor.

Bu xml dosyas─▒ bizim veritaban─▒m─▒z olacak.

Genel haz─▒rl─▒klar─▒ tamamlad─▒ktan sonra kodlama k─▒sm─▒na ge├želim. ─░lk olarak bilmemiz gereken bir nesnemiz var ┬áXMLDocument┬á nesnesi bu nesne xml dosyas─▒n─▒┬á ├Ânbellek ├╝zerinde ├žal─▒┼č─▒labilir hale getirerek i┼čimizi kolayla┼čt─▒r─▒r.├ľnce bu nesneyi global seviyede tan─▒mlayarak ba┼člayal─▒m.

XmlDocument xmlDoc;

Bu nesneden sonra yine t├╝m proje i├žersinde kullanabilecek bir de─či┼čken olan xml dosya yolunu tutaca─č─▒m─▒z bir string de─či┼čken tan─▒mlayarak sayfan─▒n y├╝klenmesi s─▒ras─▒nda bu yolu de─či┼čkene atamal─▒y─▒z.

dosya = Server.MapPath(“Telefon.xml”);

Dosya de─či┼čkenine yolu atad─▒ktan sonra XML dosyam─▒z ├╝zerindeki kay─▒tlar─▒ okuyarak Listbox nesnemiz ├╝zerine yazd─▒racak bir metot yazal─▒m.

void TelefonlariYukle(){ListBox1.Items.Clear();

XPathDocument xp = new XPathDocument(dosya);

XPathNavigator xn = xp.CreateNavigator();

string sorgu = “Kisiler/Kisi/Ad”;

XPathNodeIterator ni = xn.Select(sorgu);

while (ni.MoveNext())

{

ListBox1.Items.Add(ni.Current.ToString());

}

}

XPathDocument : Xpath data modeli kullan─▒lan okuma y├Ântemlerinde Xml dosyalar─▒ndan daha h─▒zl─▒ okuma sa─člar.

XPathNavigator : Verilerin ├╝zerinde bir izleme olu┼čturur ve XML belgesi i├žinde bu izlenecek olanlar─▒ g├Âr├╝nt├╝ler.

XPathNoteIterator:Se├žilen d├╝─č├╝mler ├╝zerinde bir yineleme sa─člar.

Bu i┼člemi yapt─▒ktan sonra listbox nesnesi ├╝zerine Xml dosyas─▒ ├╝zerindeki Ad d├╝─č├╝m├╝ne yaz─▒lm─▒┼č kay─▒tlar tek tek gelecektir.

Bu kadar de─čil devam edecek ­čśë

Bilgiyle Kal─▒n…

M.Zeki Osmanc─▒k

MSSQL Database Terminolojisi 150 150 mezo

MSSQL Database Terminolojisi

Merhaba arkada┼člar bu yaz─▒m─▒zda veritaban─▒ ile alakal─▒ baz─▒ terimleri sizlere a├ž─▒klamaya ├žal─▒┼čaca─č─▒m.

VeriTaban─▒ (Database):Verilerin fiziksel haf─▒zada sakland─▒─č─▒┬á datafiles ve bu verilerin olaylar─▒n─▒n logland─▒─č─▒ log dosyalar─▒ndan olu┼čan en az 2 dosyadan olu┼čan yap─▒lar─▒ SQL Server VeriTaban─▒ (Database) olarak de─čerlendirir.

Schema (┼×ema):Bir veritaban─▒ i├žersinde yarat─▒lan farkl─▒ ┬áschemalar i├žersinde ayn─▒ isimde tablolar ,store procedureler gibi farkl─▒ nesneler yaratabilmek m├╝mk├╝n oluyor b├Âylelikle database i├žersindeki nesneleri gruplara ay─▒rarak ├žal─▒┼čmay─▒ kolayla┼čt─▒rabiliyoruz.

Table (Tablo) :G├╝nl├╝k hayatta kulland─▒─č─▒m─▒z liste mant─▒─č─▒ ile olu┼čturdu─čumuz nesnelerdir.Yani bir s─▒n─▒f listesinden tutun al─▒┼čveri┼č listesine kadar t├╝m listeleri tablo olarak tan─▒mlayabiliriz. Teknik olarak bakarsakta sat─▒r ve s├╝tunlardan olu┼čan veri saklayabilen veritaban─▒n─▒n en temel nesnesi diyebiliriz.

ResultSet (Sonu├ž K├╝mesi): Bir se├žme ve listeleme┬á i┼člemi ger├žekle┼čti─činde bazen bir bazen birden fazla tablo kullan─▒larak haz─▒rlanan ve veritaban─▒ ├╝zerinde mevcut olmayan tablolar─▒n hepsi birer sonu├ž k├╝mesidir.

Row (Sat─▒r): Tablo ├╝zerinde mevcut olan her bir kay─▒t bir sat─▒ra denk gelir.

Column(S├╝tun): Tablolarda dikey s├╝tunlar─▒n yanyana gelmesi ile meydana gelmi┼čtir. Bir ├╝r├╝n tablosunu ele alacak olursan her ├╝r├╝n bir sat─▒r bu ├╝r├╝n├╝n her bir bilgiside s├╝tundur.

Field (Alan): Yap─▒land─▒r─▒lm─▒┼č┬á bilginin her bir k─▒sm─▒n─▒ saklamak ├╝zere yap─▒lan tan─▒mlamad─▒r. Bu alan─▒n uzunlu─ču ne kadar olacak harf ise ne kadar harf alabilir, rakam ise ka├ž basamakl─▒ olacak bu t├╝rden sorular─▒ yan─▒tlamak i├žin bir alan tan─▒mlamak ve bu alanada bir veri tipi belirtmemiz gerekir.

Data Type (Veri Tipi): Bilgisayar kay─▒rlar─▒ yap─▒sal olarak tutarken onlar─▒n yap─▒lar─▒ hakk─▒nda fikir sahibi olabilmek i├žin baz─▒ ├Âzellikleri ├Ânceden tan─▒mlanmas─▒ gerekir. ─░┼čte bu ├Âzellikleri belirten tipler veri tipleridir.

Record (Kay─▒t) : Yap─▒land─▒r─▒lm─▒┼č verilerden her birine bir kay─▒t denir.┬á Yani alan bilgileri ile birlikte her bir sat─▒r kay─▒tt─▒r.

Constrait (K─▒s─▒tlay─▒c─▒) : Herhangi bir alan i├žersine girilebilecek bilgileri zorlay─▒c─▒ kurallara denir. Birincil Anahtar K─▒s─▒tlay─▒c─▒ , Tekill K─▒s─▒tlay─▒c─▒ , Default K─▒s─▒tlay─▒c─▒, Yabanc─▒ Anahtar K─▒s─▒tlay─▒c─▒, Kontrol K─▒s─▒tlay─▒c─▒ olmak ├╝zere 5 t├╝r k─▒s─▒tlay─▒c─▒ vard─▒r.

Default┬á : Tabloda bir alana de─čer girilmedi─činde bu alan i├žin standart olarak ├Ânceden bizim belirtti─čimiz bir veri veya verinin ilk giri┼č i┼člemi esnas─▒nda otomatik olarak┬á bu s├╝tuna atanmas─▒.

Rule (Kural):Bir alana girilebilecek verilerin bir kurala ba─čl─▒ olmak ├╝zere girilmeye zorlanmas─▒ i├žin yap─▒lan tan─▒mlamalara denir.

Indexes (─░ndeksler) : Bir ka├ž y├╝z kay─▒ttan olu┼čan bir tablo ├╝st├╝ne kay─▒t arama i┼člemi veritaban─▒ y├Ânetim sistemi i├žin olduk├ža basit bir i┼člemdir ancak bu say─▒ milyonlara ├ž─▒kt─▒─č─▒nda ├že┼čitli kriterlere ba─čl─▒ olarak organize edip s─▒ralayacak bu sayede h─▒zl─▒ eri┼čimi sa─člayacak yap─▒lar vard─▒r. Veriler fiziksel olarak d├╝zenleniyorsa CLUSTERED INDEX (K├╝melenmi┼č), fiziksel olarak d├╝zenlenmiyorsa UNCLUSTERED┬á INDEX(K├╝melenmemi┼č) ad─▒n─▒ al─▒r.

View : Bazen haz─▒rlanan sorgular─▒n veya elde edilen sonu├ž k├╝melerinin bir tablo gibi davranmas─▒ istendi─činde View kullan─▒larak bu sanal tablo olu┼čturulur.

Synonim : View den farkl─▒ olarak tablolar d─▒┼č─▒ndaki store procedureler gibi nesnelerede takma adlar verebilmemizi sa─člar.

Stored Procedure (Kaydedilmi┼č Yordamlar) : SQL kodlar─▒ ├žal─▒┼čt─▒r─▒lmadan ├Ânce veritaban─▒ y├Ânetim sistemi taraf─▒ndan yorumlan─▒r ve derlenir ┬áard─▒ndan ├žal─▒┼čt─▒r─▒lmak istenen kod ├žal─▒┼č─▒r ve sonu├ž k├╝mesi elde edilir. Bu i┼člem s─▒ras─▒ndaki yorumlama ve derleme k─▒sm─▒ veritaban─▒ y├Ânetim sistemine ek bir y├╝k getirir. Bunu h─▒zland─▒rabilmek i├žin derlenmi┼č ve yorumlanm─▒┼č ifadeleri kullanabiliriz. Bu derlenmi┼č ifadeler Stored Procedurelerdir. Genellikle veri eri┼čim katman─▒ olarak kodlan─▒rlar.

Cursor (─░mle├ž) : Veritaban─▒nda bulunan kay─▒tlara sat─▒r sat─▒r eri┼čmek istedi─čimizde bu i┼či bizim yerimize imle├žler halleder. ─░mle├žler genellikle veritaban─▒ ├╝zerindeki verilere ba─▒m yap─▒l─▒rken kullan─▒l─▒rlar.

Trigger (Tetikleyici) : Triggerler veritaban─▒ ├╝zerindeki veriler ile ilgili ekleme, silme , d├╝zenleme gibi i┼člemler yerine veya bu i┼člemlerden sonra otomatik olarak yap─▒lacak olan i┼člemlerin belirtildi─či yap─▒lard─▒r.┬á Veri b├╝t├╝nl├╝─č├╝n├╝ sa─člamak amac─▒yla kullan─▒l─▒rlar.

UDF User Defined Functions (Kullan─▒c─▒ Tan─▒ml─▒ Fonksiyonlar) : UDF ler genellikle karma┼č─▒k i┼člemlerin┬á tek bir sefer fonksiyon olarak kaydedilip daha sonra sadece isimleri ile ├ža─čr─▒labilen bir yap─▒d─▒r. Stored Procedure lerden tek fark─▒ select sorgular─▒ i├žersinde onlar─▒n bir par├žas─▒ gibi kullan─▒labilmeleridir.

User Defined Types┬á (Kullan─▒c─▒ Tan─▒ml─▒ Tipler): SQL server 2005 den itibaren 8K yi a┼čmamak i├žin kendi gereksinimlerimizi┬á giderebilmek i├žin olu┼čturdu─čumuz kendine ├Âzg├╝ metotlar─▒da i├žersinde bulundurabilen tiplerdir.

Umar─▒m yararl─▒ olur

Sonraki yaz─▒larda g├Âr├╝┼čmek ├╝zere …

M.Zeki Osmanc─▒k

TSQL _ Select 387 260 mezo

TSQL _ Select

Merhaba Arkada┼člar . Bu yaz─▒m─▒zda TSQL den bahsetmek istiyorum. ┬áVeritaban─▒ programlar─▒ ile u─čra┼čanlar─▒n yada biz programc─▒lar─▒n s├╝rekli kulland─▒─č─▒ hatta bazen ba┼č belas─▒ olabilen bu SQL neymi┼č ona bakal─▒m.

SQL (Structured Query Language) yani Yap─▒land─▒r─▒lm─▒┼č┬á Sorgulama Dili anlam─▒na gelen veritaban─▒ sorgulama dilidir. SQL, d├╝zeltilmesi veya de─či┼čtirilmesi istenen bilgileri a├ž─▒k├ža belirtmeye izin veren ve yerine getirilebilecek ba┼čl─▒ca i┼člemleri tan─▒mlamam─▒z─▒ sa─člayan bir komut tak─▒m─▒d─▒r

Sql deki kodlar─▒ :

Veri ─░┼čleme Dili – DML (Data Manipulation Language )

Veri Tan─▒mlama Dili ÔÇô DDL (Data Definition Language)

Veri Kontrol Dili ┬á– DCL(Data Control Language)

Olarak gruplayabiliriz.

Bu gruplar i├žersinde hangi kodlar var peki?

Veri ─░┼čleme Dili – DML (Data Manipulation Language )

SQL Veri ─░┼čleme Dili veri girmek, de─či┼čtirmek, silmek ve verileri almak i├žin kullan─▒lan DML komutlar─▒n─▒n t├╝m├╝d├╝r.

SELECT : Veri se├žmek

DELETE : Veri silmek

UPDATE : Veri g├╝ncellemek

INSERT : Veri girmek

Veri Tan─▒mlama Dili ÔÇô DDL (Data Definition Language)

SQL Veri Tan─▒mlama Dili verilerin tutuldu─ču nesneler olan tablolar─▒n yarat─▒lmas─▒n─▒, silinmesini ve baz─▒ temel ├Âzelliklerinin d├╝zenlenmesini sa─člar.

CREATE TABLE : Yeni bir tablo yaratmak

ALTER TABLE : Tabloda de─či┼čiklik yapmak

DROP TABLE : Tabloyu silemek

CREATE INDEX : Tabloda dizin olu┼čturmak

Veri Kontrol Dili ┬á– DCL(Data Control Language)

SQL Veri Kontrol Dili bir veritaban─▒ kullan─▒c─▒s─▒ veya rol├╝ ile ilgili izinlerin d├╝zenlenmesini sa─člar.

GRANT :Kullan─▒c─▒ya yetki vermek

DENY:Kullan─▒c─▒, grup veya rol├╝ herhangi bir eylem i├žin engeller.

REVOKE:Daha atanm─▒┼č olan yetki veya engeli kald─▒r─▒r.

Veritaban─▒nda Arama ─░┼člemleri

Bir veritaban─▒ i├žersindeki bilgilerimiz aras─▒nda belli kriterlere uygun yada bir rapor ┼čeklinde bir arama ger├žekle┼čtirmek istiyorsak ┬ákullanmam─▒z gereken kod┬á Select olmal─▒d─▒r.

Select ifadesi bir tablodan verileri se├žmek i├žin kullan─▒l─▒r. Elde edilen veriler sonu├ž k├╝mesi olarak adland─▒r─▒l─▒r ve yine bir tablo g├Âr├╝nt├╝s├╝ ┼čeklinde g├Âr├╝nt├╝lenir.

S├Âz dizimi:

T├╝m alanlar─▒ g├Âr├╝nt├╝lemek istemedi─čimiz zamanlarda kolon ad─▒ belirterek istenilen bilgiler ├žekilebilir.

SELECT <g├Âr├╝nt├╝lenmek istenen kolonlar> FROM <tablo ad─▒>

T├╝m alanlar─▒ g├Âstermek istedi─čimiz durumlarda kolon ad─▒ yerine * kullan─▒l─▒r.

SELECT * FROM <tablo ad─▒>

┼×imdi birlikte bir ├Ârnek yapal─▒m. Northwind veritaban─▒ i├žersinde bulunan herhangi bir tablonun bilgilerini ├Ânce tablo ismi ile sonra * ile ├ža─č─▒ral─▒m.

Verilerimizi tablo ismi ile yada * simgesiyle hepsini getiriyoruz. S├╝per ama bir sorun var┬á yada sorundan ├žok bir eksik demeliyiz belkide belli kriterlere uyan bilgileri getirmek istedi─čimde ne yapmam gerekir ?

B├Âyle bir durumdada yard─▒m─▒m─▒za WHERE yant├╝mcesi ko┼čuyor. WHERE yant├╝mcesi g├Âr├╝nt├╝lemek istedi─čimiz verileri belirli bir kritere g├Âre se├žebilmemizi sa─člar.

Yaz─▒m─▒

SELECT <s├╝tun ad─▒> FROM <tablo ad─▒> WHERE <ko┼čul(lar)>

Yani WHERE yant├╝mcesi diyor ki bana istedi─čin kriteri s├Âyle NERDE e┼čle┼čen varsa alay─▒n─▒ getireyim sana diyor. Ama bu kriterleri hangi operat├Ârlerle sa─člar─▒z birde onu belirtelimki sadece e┼čittir i┼čaretinden ibaret oldu─ču anla┼č─▒lmas─▒n.

─░┼čte WHERE yant├╝mcesi ile kullanabilece─čimiz┬áoperat├Ârler

Bizde te┼ček├╝r edip bir ├Ârnek yaparak Where yant├╝mcesi istedi─čini veriyoruz.

Bu kez m├╝┼čteriler tablosunday─▒z ve Madrid deki m├╝┼čterilerimizi g├Ârmek istiyoruz.

Nas─▒l Where yant├╝mcesi i┼čini iyi yap─▒yor de─čilmi ­čśÇ

WHERE yant├╝mcesinin┬á operat├Ârlerinden bahsetmi┼čtik orada her┼čey g├╝zel anla┼č─▒l─▒r matematiksel ┼čeyler var ama 2 operat├Âr varki kafa kar─▒┼čt─▒rabilir.┬á LIKE ve BETWEEN┬á bunlar─▒nda nas─▒l kullan─▒ld─▒─č─▒na k─▒saca deyinelim

LIKE

LIKE kelimesi s├╝tundaki de─čerlerin, joker karakterler kullan─▒larak olu┼čturdu─čumuz bir arama ko┼čulu ile kar┼č─▒la┼čt─▒r─▒lmas─▒n─▒ sa─člar.

SELECT <kolon ad─▒> FROM <tablo ad─▒>

WHERE <aranacak s├╝tun> LIKE <kriter>

├ľrnek arama ko┼čullar─▒:

LIKE ÔÇśBR%ÔÇÖ┬á┬á┬á┬á┬á┬á┬á┬á┬á┬á┬á┬á┬á┬á┬á┬á┬á┬á┬á┬á┬á┬á┬á┬á┬á ─░lk iki harfi BR olan t├╝m kay─▒tlar

LIKE ÔÇśBr%ÔÇÖ┬á┬á┬á┬á┬á┬á┬á┬á┬á┬á┬á┬á┬á┬á┬á┬á┬á┬á┬á┬á┬á┬á┬á┬á┬á┬á ─░lk iki harfi Br olan t├╝m kay─▒tlar

LIKE ÔÇś%eenÔÇÖ┬á┬á┬á┬á┬á┬á┬á┬á┬á┬á┬á┬á┬á┬á┬á┬á┬á┬á┬á┬á┬á┬á Son ├╝├ž harfi een olan t├╝m kay─▒tlar

LIKE ÔÇś%en%ÔÇÖ┬á┬á┬á┬á┬á┬á┬á┬á┬á┬á┬á┬á┬á┬á┬á┬á┬á┬á┬á┬á┬á ─░├žerisinde en ifadesi ge├žen t├╝m kay─▒tlar

LIKE ÔÇś_enÔÇÖ┬á┬á┬á┬á┬á┬á┬á┬á┬á┬á┬á┬á┬á┬á┬á┬á┬á┬á┬á┬á┬á┬á┬á┬á┬á┬á Son iki harfi en olan ├╝├ž harften olu┼čan t├╝m kay─▒tlar

LIKE ÔÇś[CK]%ÔÇÖ┬á┬á┬á┬á┬á┬á ┬á┬á┬á┬á┬á┬á┬á┬á┬á┬á┬á┬á┬á┬á┬á C veya K harfleriyle ba┼člayan t├╝m kay─▒tlar

LIKE ÔÇś[S-V]ing┬á┬á┬á ┬á┬á┬á┬á┬á┬á┬á┬á┬á┬á┬á┬á┬á┬á┬á ing ile biten ve ilk harfi S ile V harfleri aras─▒nda olan d├Ârt harfli herhangi kelime

LIKE ÔÇśM[^c]%ÔÇÖ┬á┬á ┬á┬á┬á┬á┬á┬á┬á┬á┬á┬á┬á┬á┬á┬á┬á M ile ba┼člayan ikinci harfi c olmayan t├╝m kay─▒tlar

BETWEEN..AND

BETWEEN … AND operat├Âr├╝ 2 de─čer ile belirtilen aral─▒─č─▒ s─▒nar. Bu de─čerler say─▒, metin veya tarih olabilir.

SELECT <kolon ad─▒> FROM <tablo ad─▒>

WHERE <s├╝tun ad─▒> BETWEEN <de─čer 1> AND <de─čer 2>

Umar─▒m faydal─▒ olmu┼čtur bir ba┼čka yaz─▒da g├Âr├╝┼čmek dile─či ile ….

M.Zeki Osmanc─▒k

SQL _ Views II 253 219 mezo

SQL _ Views II

Bir ├Ânceki yaz─▒m─▒zda View nas─▒l yaz─▒l─▒r ne i┼če yarar bunu ├Â─črenmi┼čtik . Bu yaz─▒m─▒zda ise View i├žersinde yapabilece─čimiz bir tak─▒m i┼člemleri ├Â─črenece─čiz.
Olu┼čturdu─čumuz View yap─▒s─▒ ├╝zerinde de─či┼čiklik yapabilmek i├žin Alter View; Silebilmek i├žin Drop View c├╝mlelerini kullan─▒yoruz.

Encryption:

Encryption c├╝mlesi ┼čifreleme anlam─▒na gelir. T├╝rk├že anlam─▒n─▒nda belirtti─či gibi view in kod i├žeri─čini┬á yani view i olu┼čturdu─čumuz kodlar─▒ g├Âr├╝nt├╝lenemez ┼čekilde ┼čifrelememizi sa─člar. Bu i┼člemi geri almak istersek maalesef ki ba┼čar─▒s─▒z oluyoruz ├ž├╝nk├╝ Decryption gibi bir ├ž├Âz├╝m yok. Encryption kullan─▒lmas─▒ gerekiyorsa mutlaka View in kaynak kodlar─▒n─▒n ba┼čka bir kayna─ča yedeklenmesi ┼čiddetle tavsiye edilir.

With Encryption Yap─▒s─▒

Create View viewAdiWith EncryptionAS

Select Sorgusu

├ľrnek olarak yukardaki gibi bir View olu┼čturdu─čumuzda veritaban─▒ndaki Views klas├Âr├╝ i├žersinden bu yaratt─▒─č─▒m─▒z View i buldu─čumuzda ├╝zerinde bir kilit simgesinin oldu─čunu g├Ârece─čiz ve sa─č t─▒k ile d├╝zenlemeye ├žal─▒┼čt─▒─č─▒m─▒zda ba┼čar─▒s─▒z olaca─č─▒z. Encryption ile kodlar─▒m─▒z─▒ emniyet alm─▒┼č olduk. Daha ├Âncede belirtti─čim gibi bunu tekrar geri d├Ând├╝recek kilidi ├ž├Âzecek bir kod yok.

Olu┼čturulan view lar─▒n i├žeriklerini g├Âr├╝nt├╝lemek i├žin kulland─▒─č─▒m─▒z bir stored procedure var. Sp_helptext . bu SP bize belirtti─čimiz View i├žeri─čini g├Âsterir. ├ľncelikle nas─▒l kullan─▒ld─▒─č─▒na bakal─▒m sonra Encrypt etti─čimiz View i g├Âr├╝nt├╝leyebilirmiyiz ona bakal─▒m.

G├Âr├╝ld├╝─č├╝ gibi normal bir view i├žeri─čini g├Âr├╝nt├╝ledik. ┼×imdide Encrypt edilmi┼č view a bakal─▒m ­čśë

Schemabinding

Encryption kadar olmasada Schemabinding kelimesinin terc├╝mesi zaten bu kodu hangi ama├žlar i├žin kullanabilece─čimizi anlamaya yeterli oluyor. E─čer olu┼čturulacak View i├žersinde Schemabinding kullan─▒l─▒yorsa View i├žersinde kulland─▒─č─▒m─▒z tablolar─▒n s├╝tunlar─▒n─▒ kilitlemi┼č oluruz. View i├žersinde Schemabinding kullan─▒rken hat─▒rlamam─▒z gereken baz─▒ kurallar var.

├ľncelikli kural Schemabinding kullanaca─č─▒m─▒z View i├žersindeki sorgular─▒m─▒zda * i┼čaretini kullanmamak bunun yerine t├╝m g├Âr├╝nt├╝lemek istedi─čimiz s├╝tunlar─▒ tek tek yazmam─▒z gerekiyor. ┬áYazmazsak a┼ča─č─▒daki gibi bir hata ile kar┼č─▒la┼čaca─č─▒z.

Ayr─▒ca belirtece─čimiz tablo isimlerini tabloismi.s├╝tunismi olarak belirtmemiz gerekiyor. Son olarakda tablo ismi ile alakal─▒ olan kural─▒m─▒z var , tablo isminde ise dbo.tabloismi yazmam─▒z gerekiyor ki tam olarak tabloyu ve s├╝tunlar─▒n─▒n yerini garantilemi┼č olal─▒m.

Yukar─▒daki ├Ârnekte ViewÔÇÖde g├Âr├╝nt├╝leyece─čimiz verilerin bulundu─ču tablo ya da tablolardaki s├╝tunlar─▒n yap─▒s─▒nda yap─▒lacak herhangi bir de─či┼čikli─či bu ViewÔÇÖi silmedik├že ya da Schemabinding ├Âzelli─čini ViewÔÇÖimizden kald─▒rmad─▒k├ža yapamayaca─č─▒z. Oldu da b├Âyle bir i┼člemi Schemabinding ├Âzelli─či varken yapmaya kalk─▒┼čt─▒k, SQL bize bu i┼člemin yap─▒lamayaca─č─▒n─▒ belirten bir hata mesaj─▒ verecektir. UrunleriListele isimli View i├žin kulland─▒─č─▒m─▒z dbo.Products tablosundan ProductName s├╝tununu kald─▒rmaya ├žal─▒┼čal─▒m.

WithCheckOption

Son olarakda sizlere View lerin WithcheckOption ├Âzelli─činden bahsetmek istiyorum. ┬áBiliyorsunuz ki View ler i├žersinde tek bir tablo ile i┼člem yapt─▒─č─▒m─▒zda Insert,Update, Delete gibi i┼člemleri yapabiliyoruz. ─░┼čte bu i┼člemleri yapabildi─čimiz view ler i├žersinde baz─▒ k─▒s─▒tlama yapabilmek i├žin WithCheckOption ├Âzelli─čini kullan─▒r─▒z. Yeni bir view ile bu ├Âzelli─či inceleyelim.

Bu ┼čekilde tek tablo ├╝zerinde ve Where kelimesi ile kriter belirtilerek olu┼čturdu─čumuz View ├╝zerine insert i┼člemi yapmaya kalkt─▒─č─▒m─▒zda hata ile kar┼č─▒la┼č─▒yoruz.

Umar─▒m yararl─▒ olmu┼čtur sonraki yaz─▒larda g├Âr├╝┼čmek ├╝zere.

C# _ Methods 329 374 mezo

C# _ Methods


Merhaba arkada┼člar programlar─▒ yazarken ├žo─ču kez bir i┼člemi birden fazla yerde yapmam─▒z gerekebilir.┬á Bu da her seferinde ayn─▒ kodu yazmak anlam─▒na geliyor ve buda bize hem zaman kayb─▒┬á hemde kod kar─▒┼č─▒kl─▒─č─▒na neden olacakt─▒r. Peki buna ├ž├Âz├╝m olarak yapaca─č─▒m─▒z i┼člemle alakal─▒ koda bir isim versek ve kullanmak istedi─čimiz yerde o kadar kodu tekrar tekrar yazmay─▒p sadece ismiyle ├ža─č─▒rsak nas─▒l olur ? Bence s├╝per olur ­čśÇ

Metotlar i┼čte bu i┼člemi yaparlar bir isimle ├ža─č─▒r─▒larak i├žersindeki i┼člemleri tek sat─▒rda ├ža─č─▒rabilmemizi sa─člar. Metotlar─▒ bir i┼čci olarak d├╝┼č├╝nebiliriz biz ona ne i┼č yapmas─▒ gerekti─čini s├Âyleriz ve ismini s├Âyledi─čimizde o i┼č yap─▒l─▒r.

├ľrnek olarak bir ├Â─črenci takip program─▒ yapt─▒─č─▒m─▒z─▒ d├╝┼č├╝nelim. Bu program i├žin ilk ├Ânce d├╝┼č├╝n├╝lmesi gereken form ├ľ─črenci Kay─▒t formudur ve bu form basit olarak a┼ča─č─▒daki gibi bi g├Âr├╝nt├╝ye sahip olacakt─▒r.

En basit i┼člemi d├╝┼č├╝necek olursak doldurulmu┼č olan textBox lar─▒n temizlenmesini istiyorum ve bunun i├žin form i├žersine bir Temizle butonu yerle┼čtiriyorum ve bu butonda b├╝t├╝n butonlar─▒ temizliyorum.

private void btnTemizle_Click(object sender, EventArgs e){

txtAd.Clear();

txtSoyad.Clear();

txtTcNo.Clear();

txtDogumYeri.Clear();

txtVeliAd.Clear();

txtVeliSoyad.Clear();

txtTelefon.Clear();

}

├çal─▒┼čt─▒rd─▒─č─▒mda kodlar─▒m─▒n ├žal─▒┼čt─▒─č─▒n─▒ g├Âr├╝yorum t├╝m alanlar temizleniyor ;).┬á Buraya kadar bir sorunumuz yok. Peki Kaydet butonuma bast─▒─č─▒mda kaydetme i┼člemleri tamamland─▒ktan sonra kullan─▒c─▒n─▒n yeni kay─▒t ekleyebilece─činide hesaba kat─▒p kaydetme i┼čleminden sonrada textBoxlar─▒ temizlememiz gerekiyor. Ayn─▒ kodlar─▒ tekrar yazarsak sorun kalmaz ama sadece bu kadarla kalmasak ve bu formda 2 den fazla yerde textBoxlar─▒ temizlemek istesek her seferinde bu kodlar─▒ tekrar tekrarm─▒ yaz─▒caz ? Diyelimki yazd─▒k program ├žal─▒┼č─▒yor. Daha sonra okul y├Ânetimi bizden 2 textbox daha koymam─▒z─▒ istedi. Biz yazd─▒─č─▒m─▒z Clear kodlar─▒na 2 sat─▒r daha eklememiz gerekicek ama bir ├žok yerde kulland─▒─č─▒m─▒z i├žin bir tanesini bile unutsak s─▒k─▒nt─▒ ├ž─▒kacakt─▒r. Bu kodlar─▒ merkezi bir yerde toplasak ve ihtiyac─▒m─▒z oldu─čunda sadece ismi ile ├ža─č─▒rsak nas─▒l olur ? ­čśë

Metotda de─či┼čiklik yapt─▒─č─▒m─▒zda t├╝m farkl─▒ yerlerde kulland─▒─č─▒m─▒z kodlarda de─či┼čecektir. Gelin nas─▒l yap─▒yoruz bu i┼člemi g├Ârelim . Bir Metot tan─▒mlayarak ayn─▒ i┼člemi birden fazla yerde yapal─▒m ­čśë

Void MetotAdi()

{

Yap─▒lacak i┼člem

}

private void btnTemizle_Click(object sender, EventArgs e){

Temizle();

}

private void btnKaydet_Click(object sender, EventArgs e)

{

Temizle();

}

private void Temizle()

{

txtAd.Clear();

txtSoyad.Clear();

txtTcNo.Clear();

txtDogumYeri.Clear();

txtVeliAd.Clear();

txtVeliSoyad.Clear();

txtTelefon.Clear();

}

G├Âr├╝ld├╝─č├╝ gibi tek bir metodu yani i┼č├žimi sadece ad─▒n─▒ ├ža─č─▒rarak i┼čimi yapt─▒rabiliyorum. ­čśë

Void metotlar ├Ârnekteki gibi sadece i├žersinde tan─▒mlanan i┼či yapar. Geriye bir de─čer d├Ând├╝rmezler.

Metot i├žersinde yap─▒lan i┼člem sonucu geriye bir de─čer d├Ând├╝rmek istiyorsak geriye d├Ânen de─čer tipinde bir metot olu┼čturmam─▒z gerekir. Yani i┼č├žimize i┼čini yap ama bana yapt─▒─č─▒na dair bilgi getir diyoruz. J

├ľrnek olarak iki say─▒y─▒ toplayarak sonucu geri deger olarak d├Ând├╝ren bir metot yazal─▒m.

private void btnTopla_Click(object sender, EventArgs e){

MessageBox.Show(Topla().ToString());

}

int Topla()

{

int sayi1 = 5;

int sayi2 = 6;

int sonuc = sayi1 + sayi2;

return sonuc;

}

G├Ârd├╝─č├╝m├╝z gibi i├žeride yap─▒lan i┼člemin sonucu metodun tipinde olmak zorunda.

Birde i├žeriye de─čer g├Ânderebildi─čimiz metot tipleri varki buda metot ÔÇô i┼č├ži metaforunu tamamlayan unsurlardan biz i┼č├žimizin eline malzemeleri veriyoruz ona sadece o malzemelerle ona s├Âylenmi┼č olan i┼či yapmak kal─▒yor. Ve yine bize bu malzemelerle yapt─▒─č─▒ i┼čin sonucunu d├Ânmek zorunda.

private void btnTopla_Click(object sender, EventArgs e){

MessageBox.Show(Topla(5,6).ToString());

}

int Topla(int sayi1 , int sayi2)

{

int sonuc = sayi1 + sayi2;

return sonuc;

}

Ne kadar kolay de─čilmi ? ­čśë

Bir sonraki yaz─▒m─▒zda g├Âr├╝┼čmek ├╝zere.


C# _ Diziler _ Foreach D├Âng├╝s├╝ 595 199 mezo

C# _ Diziler _ Foreach D├Âng├╝s├╝


Merhaba arkada┼člar bu yaz─▒m─▒zda da dizileri anlamaya ├žal─▒┼čaca─č─▒z.┬á Bu yaz─▒ sonunda dzi nedir , nas─▒l tan─▒mlan─▒r dizilerdeki boyut dizilerin metotlar─▒ ve foreach d├Âng├╝s├╝ ile alakal─▒ bilgi sahibi olacaks─▒n─▒z.

Daha ├Ânce de─či┼čkenler ile ilgili bir yaz─▒m─▒z vard─▒. Hat─▒rlarsak de─či┼čkenler program i├žersinde bize ge├ži├ži s├╝re gerekli olan de─čerleri tutabildi─čimiz yap─▒lard─▒ ├Ârne─čin int sayi = 5; diyerek 5 say─▒s─▒n─▒ sayi de─či┼čkeninde tutabiliyordum. Peki bu sayi de─či┼čkeninde birden fazla de─čer tutmam gerekirse bunu ger├žekle┼čtirebilirmiyim ? Cevap de─či┼čkenlerle hay─▒r ama Dizilerle evet.

Sizinde anlayaca─č─▒n─▒z gibi dizi de─či┼čkenleri, ayn─▒ tipte bir├žok veriyi bir arada tutmay─▒ sa─člar. Benzer i┼člemlerde kullan─▒lan de─či┼čkenler bir dizi alt─▒nda listelenebilir. Yani ben sayi de─či┼čkenimi dizi olarak tan─▒mlarsam o zaman birden fazla de─čeri i├žersinde tutabilirim.

Dizilerin tan─▒m─▒n─▒ yapt─▒ktan sonra gelin bu dizi nas─▒l bir┼čeymi┼č nas─▒l yaz─▒l─▒rm─▒┼č ona bir g├Âz atal─▒m.┬á Dizi tan─▒mlar─▒ veritiplerinin yan─▒nda [] simgeleri ile yap─▒l─▒r.

<veri tipi> [] dizi ismi = new <veri tipi> [dizi eleman say─▒s─▒]
String[] isimler;─░nt[] sayilar;

Float[] paralar;

Byte[] yaslar;

Dizilerin ka├ž eleman i├žerece─či, dizi tan─▒mlan─▒rken ya da daha sonra belirtilebilir. ┼×u ┼čekilde tan─▒mlanabilirler:

int[] sayilar = {3, 8, 2, 6};

int[] sayilar = new int[6]{4, 2, 5, 6, 7, 0};

int[] sayilar = new int[5];

Dizilerin indis numaralar─▒ 0 dan ba┼člar ve devam eder. Orne─čin isimleri tutaca─č─▒m─▒z bir dizi tan─▒mlad─▒k:

string[] isimler = new string[4];

de─čerlerini atarken yapaca─č─▒m─▒z i┼člem ┼ču olacakt─▒r.

─░simler[0]=ÔÇŁZekiÔÇŁ;

─░simler[1]=ÔÇŁ YudumÔÇŁ;

─░simler[2]=ÔÇŁAliÔÇŁ;

─░simler[3]=ÔÇŁ OrhanÔÇŁ;

K├╝├ž├╝k bir dizi uygulamas─▒ yapal─▒m. Bir dizi ve elemanlar─▒n─▒ tan─▒mlayarak ListBox i├žersinde bu de─čeri g├Âsterelim.

─░┼čte bu kadar kolay bir de─či┼čken tan─▒mlar gibi fakat i├žersinde birden fazla de─čer ta┼č─▒yabilen bir de─či┼čken gibi d├╝┼č├╝nebiliriz.

Peki birden fazla boyuta sahip diziler tan─▒mlamak m├╝mk├╝nm├╝ ?┬á Yani tan─▒mlad─▒─č─▒m─▒z dizinin 1 eleman─▒da birka├ž de─čere sahip olsa …

Diziler tek boyutlu oldu─ču gibi, birka├ž boyutlu diziler de tan─▒mlanabilir. ┬á├ľrne─čin :

int [,] matris = new int[5,6];

Bu diziyi tan─▒mlad─▒─č─▒m─▒zda ├Ânce 5 elemanl─▒ bir dizi ard─▒ndan bu dizinin her eleman─▒ i├žinde 6 elemanl─▒k bir dizi tan─▒mlam─▒┼č oluruz.┬á Yani 2 boyut olu┼čturmu┼č oluruz.

Bu dizide bir boyut daha olsayd─▒, o boyutun her eleman─▒ i├žin di─čer boyutlardaki 30 eleman bulunacakt─▒. ├çok boyutlu dizilerin eleman say─▒lar─▒ boyutlar─▒ndaki eleman say─▒lar─▒n─▒ ├žarparak hesaplanabilir.

int [,,,,] dizi = new int[boyut1,boyut2,boyut3,… ,boyutn];

Dizilerin boyutlar─▒nada g├Âz att─▒ktan sonra gelin isterseniz bir ka├ž metodunada bakal─▒m.

Dizilerin Metotlar─▒

Array.Resize();

Resize metodu mevcut dizimizin eleman say─▒s─▒n─▒ istedi─čimiz kadar artt─▒r─▒r. Bir ├Ârnekle bakal─▒m bu olaya bir form ├╝zerinde listbox textbox ve butonumuz olsun ve textbox a yazd─▒─č─▒m─▒z de─čer string bir diziye ve listbox a eklensin istiyorum. ─░lk etapta ne kadar de─čer girilece─čini bilemiyece─čimizden ├Ânce 1 elemanl─▒ bir dizi tan─▒ml─▒yorum ve her eleman eklendi─činde dizi boyutunu artt─▒r─▒yorum.

Array.Clear();

Dizimiz i├žersindeki de─čerleri temizlemek isteyebiliriz i┼čte bu gibi durumlarda Array.Clear kullan─▒yoruz. Biraz ├Ânce yapt─▒─č─▒m─▒z proje ├╝zerinde ufak de─či┼čikliklerle Clear metodunu inceleyelim.

Foreach D├Âng├╝s├╝

Daha ├Ânceki yaz─▒m─▒zda bahsetti─čimiz d├Âng├╝ler aras─▒nda bir tane daha vard─▒ ama ona bu konunun sonunda de─činmek daha mant─▒kl─▒ sanki.

Foreach d├Âng├╝m├╝z bir dizi veya kolaksiyonun her eleman─▒ i├žin yap─▒s─▒ndaki kodlar─▒ ├žal─▒┼čt─▒ran bir d├Âng├╝d├╝r.

foreach (<tip de─či┼čkeni > in <koleksiyon> ){

Yap─▒lacak i┼člemler

}

Bilgiyle Kal─▒n…
M.Zeki Osmanc─▒k

C# | OOP Terminolojisi 150 150 mezo

C# | OOP Terminolojisi



Access Modifier : Bir tipe veya tipin ├╝yelerine eri┼čimi s─▒n─▒rlayan private, protected, internal, public gibi kelimelerdir.

Accessible Member : Verilen tip taraf─▒ndan ula┼č─▒labilen ├╝yedir. Bir tip ile eri┼čilebilen bir ├╝ye ba┼čka bir ├╝ye taraf─▒ndan eri┼čilebilir olmayabilir.

Accessor : Bir ├Âzellik (Property) ile ili┼čkilendirilmi┼č ├ľzel (private) veri alan─▒ (data field) ├╝yenin de─čerini alan veya ayarlayan metodlard─▒r. Okunur-Yaz─▒l─▒r ├Âzellikler get ve set eri┼čimcilerine sahipken salt okunur ├Âzellikler sadece get eri┼čimcisine sahiptirler.

Anonymous Method : Bir delegeye parametre olarak ge├žilirilen bir kod blo─čudur.

Base Class : T├╝retilmi┼č s─▒n─▒f (Derived Class) taraf─▒ndan miras al─▒nan s─▒n─▒ft─▒r (Inherited Class).

Call Stack : ├çal─▒┼čt─▒rma zaman─▒nda (runtime) program─▒n ba┼č─▒ndan ba┼člayarak ├žal─▒┼čt─▒r─▒lacak ifadeye kadar olan yap─▒lan metod ├ža─čr─▒lar─▒n─▒n dizisidir.

Class : Nesneyi tan─▒mlayan, nesneye ┼čablon olu┼čturan veri tipidir. S─▒n─▒flar veri ve veriyi etkileyen metodlardan her ikisini de i├žerebilirler.

Constructor: Bir s─▒n─▒f veya yap─▒ ├╝zerinde bulunan ve o tipteki nesneleri olu┼čturan ├Âzel metodlard─▒r.

Delegate : Bir metodu referans eden bir tiptir. Bir delege metoda atand─▒─č─▒nda tam olarak o metod gibi davran─▒r.

Derived Class : Ba┼čka bir taban s─▒n─▒f─▒n davran─▒┼č─▒na ve verisine eri┼čmek, geli┼čtirmek veya de─či┼čtirmek i├žin miras y├Ântemini kullanan s─▒n─▒ft─▒r.

Destructor : ├ľrne─čin sistem taraf─▒ndan sonland─▒r─▒lmas─▒n─▒ haz─▒rlayan, s─▒n─▒f veya yap─▒ ├╝zerindeki ├Âzel bir metodtur.

Event : Bir de─či┼čikli─čin bilgilendirmelerini g├Ânderen s─▒n─▒f veya yap─▒ ├╝yesidir.

Field: S─▒n─▒f─▒n ya da yap─▒n─▒n do─črudan eri┼čilen veri ├╝yesidir.

Generics : Jenerikler, bir s─▒n─▒f ya da metodun bir tip parametresi ile tan─▒mlanabilmesine olanak sa─člarlar. ─░stemci kodu tipin ├Ârne─čini yarat─▒rken parametre olarak tan─▒mlanan tipi belirli bir tipte de─či┼čken olarak tan─▒mlar. B├Âyle parametrenin hangi tipte oldu─ču tan─▒mland─▒─č─▒ndan s─▒n─▒f ya da metodta o tip olarak kullan─▒labilir.

IDE (Integrated Development Environment) : Derleyici, debug edici, kod d├╝zenleyici ve tasar─▒m ara├žlar─▒ gibi ├že┼čitli geli┼čtirme ara├žlar─▒ i├žin birle┼čtirilmi┼č bir aray├╝z sa─člayan uygulamalard─▒r.

Immutable Type : ├ľrnek yarat─▒ld─▒ktan sonra, ├Ârne─činin veri, alan ve ├Âzellikleri de─či┼čmeyen tiplerdir. De─čer tiplerinin ├žo─ču b├Âyle tiplerdir.

Inaccessible Member : Belirtilen bir tip taraf─▒ndan eri┼čilemeyen bir ├╝yedir. Bir tipe Eri┼čilmez bir ├╝yenin ba┼čka bir tipe de eri┼čilmez olmas─▒ gerekti─čine dair bir zorunluluk yoktur.

Inheritance : C#, Miras almay─▒ destekler. Yani bir s─▒n─▒f (class) taban s─▒n─▒f (base class) olarak adland─▒r─▒lan s─▒n─▒ftan t├╝retilir ve ayn─▒ metod ve ├Âzellikleri miras al─▒r. Bunu s─▒n─▒fa T├╝retilmi┼č S─▒n─▒f (Derived Class) denir.

Interface : Sadece public metod, olay ve delegelere ait imzalar─▒ i├žeren bir tiptir. Aray├╝z├╝ miras alan bir nesne aray├╝zde imzalar─▒ tan─▒mlanan t├╝m metod, olaylar─▒ geli┼čtirmek zorundad─▒r. S─▒n─▒flar veya Yap─▒lar (Structs) herhangi bir say─▒da aray├╝zden miras alabilirler…

Iterator : ├ľteleyici, bir s─▒n─▒f─▒n i├žerdi─či bir koleksiyon veya diziyi (array) s─▒n─▒f kullan─▒c─▒lar─▒n─▒n foreach ile kullanabilmesine olanak sa─člar.

Member : Bir s─▒n─▒f (class) ya da yap─▒ (struct) ├╝zerinde tan─▒mlana alan (field), ├Âzellik (property), metod (method) veya olaylara (events) o s─▒n─▒f─▒n ├╝yeleri (class members) denir.

Method: Bir s─▒n─▒f (class) ya da yap─▒ (struct) i├žin davran─▒┼č─▒ sa─člayan isimlendirilmi┼č kod blo─čudur.

Mutable Type : ├ľrnek yarat─▒ld─▒ktan sonra, ├Ârne─činin veri, alan ve ├Âzellikleri de─či┼čtirilebilen tiplerdir. Referans tiplerinin ├žo─ču b├Âyle tiplerdir.

Nested Type : Di─čer bir tipi tan─▒m─▒n─▒n i├žinde tan─▒mlanm─▒┼č tiptir.

Object : S─▒n─▒f ├Ârne─čidir (instance). Bir nesne bellekte bulunur ve verisi ve bu veriler ├╝zerinde etkisi olan metodlar─▒ vard─▒r.

Property : ├ľzellikler, eri┼čimcileri arac─▒l─▒─č─▒ ile bir veri ├╝yesine ula┼čt─▒r─▒rlar.

Refactoring :
Bilgisayar terminolojisinde bilgisayar yaz─▒l─▒m─▒n─▒n ├ž─▒kt─▒lar─▒n─▒ ve i┼člevlerini de─či┼čtirmeden i├ž yap─▒s─▒n─▒n yeniden d├╝zenlenerek uygulaman─▒n geli┼čtirilmesi, iyile┼čtirilmesi demektir. K─▒saca ├Ânceden girilmi┼č kodun tekrar kullan─▒lmas─▒ diyebiliriz. Visual Studio C# d├╝zenleyicisi ak─▒ll─▒ca kodunuzu tekrar bi├žimlendirebilir. Mesela i┼čaretledi─činiz bir kod blo─čunu bir hamleyle bir metoda d├Ân├╝┼čt├╝rebilirsiniz.

Reference Type : Bir veri tipidir. Referans tipi olarak tan─▒mlanan bir de─či┼čken verinin depoland─▒─č─▒ konumu i┼čaret eder.

Static : Statik olarak tan─▒mlanan bir s─▒n─▒f ya da metod “new” anahtar kelimesi ile ilklendirilmeden varolabilir.
├ľrne─čin Main() statik bir metoddur.

Struct : Tipik olarak baz─▒ mant─▒ksal ili┼čkileri olan de─či┼čkenler i├žermesi i├žin kullan─▒lan birle┼čik veri tipidir. Yap─▒lar ayn─▒ zamanda metodlar ve olaylar i├žerebilirler. Miras almay─▒ desteklemezken aray├╝z kullan─▒m─▒n─▒ desteklerler. S─▒n─▒flar referans tipiyken, yap─▒lar de─čer tipidir.

Value Type : ├ľbek (Heap) ├╝zerine yerle┼čtirilen referans tiplerine kar┼č─▒n y─▒─č─▒n (stack) ├╝zerine yerle┼čtirilen veri tipidir. Yap─▒ ve null de─čer alabilen (Nullable) tiplerin de oldu─ču gibi N├╝merik tipleri de i├žeren Yerle┼čik (built-in) tiplerin hepsi de─čer tipleridir. S─▒n─▒f tipi ve string tipi referans tipleridir.

kaynak: http://msdn2.microsoft.com/en-us/library/ms173231.aspx

Bilgiyle Kal─▒n…
M.Zeki Osmanc─▒k

C# _ D├Âng├╝ler _ For & While 490 448 mezo

C# _ D├Âng├╝ler _ For & While


Merhaba arkada┼člar bu yaz─▒m─▒zda C# programlama i├žersinde bulunan d├Âng├╝leri sizlere anlatmaya ├žal─▒┼čaca─č─▒m. Bu yaz─▒n─▒n sonunda ardarda i┼člemleri nas─▒l k─▒sa yolla yapabilirsiniz, for d├Âng├╝s├╝ ve while d├Âng├╝s├╝ ile ilgili bilgi sahibi olacaks─▒n─▒z. Haydi ba┼člayal─▒m… ­čśÇ
D├Âng├╝ler programlar─▒m─▒zda ardarda yada s─▒ral─▒ ┼čekilde yapt─▒raca─č─▒m─▒z i┼člemleri i├žin kullan─▒l─▒r. Fazla kod ,zaman kayb─▒ ve performans a├ž─▒s─▒ndan yarar sa─člarlar. Diyelim ki ├Â─črenci kayd─▒ yapabilece─čimiz bir windows form tasarl─▒yoruz ve bu windows formu ├╝zerinde combobox nesnemiz yer almakta y─▒l k─▒sm─▒n─▒n yanl─▒┼č yaz─▒lmas─▒n─▒ engellemek i├žin biz girerek ki┼činin sadece se├žme i┼člevini yerine getirmek istiyoruz. ─░lk akl─▒m─▒za gelen ComboBox nesnemizin items ├Âzelli─či ├╝zerinden t├╝m bilgileri girmek oldu de─čilmi ?

─░ster items ├Âzelli─činden doldural─▒m istersek kod ile doldural─▒m yinede bu i┼člem bize inan─▒lmaz vakit kayb─▒na neden olacakt─▒r. Peki bir kolay yolu yokmu bu i┼či yapman─▒n tabi ki var. D├Âng├╝ler bu konuda bizlere yard─▒mc─▒ oluyorlar. ┬á┬áYukar─▒da bahsetti─čimiz i┼člem i├žin sadece d├Âng├╝ kullanmam─▒z yetecektir.

For D├Âng├╝s├╝

for (ba┼člang─▒├ž; ko┼čul;art─▒m){

Yap─▒lacak i┼čler;

}

Belirtilen ba┼člang─▒├ž de─čerinden itibaren ko┼čul sa─članana kadar i├žine yaz─▒lan kod par├žas─▒n─▒ ├žal─▒┼čt─▒r─▒r ve bize s─▒ral─▒ i┼člemlerimizi h─▒zl─▒ca yapmam─▒z─▒ sa─člar. Buna g├Âre yukardaki i┼člemimiz nas─▒l oluyor g├Ârelim.

Ne kadar kolay de─čilmi ? ­čśÇ

Peki bu for d├Âng├╝s├╝ i├žersinde bir erken ge├ži┼č sa─člamak istersek o zaman ne yapmal─▒y─▒z?

for (int i = 1950; i < 2010; i++){

if (i == 1965)

{

continue;

}

comboBox1.Items.Add(i.ToString());

}

Biraz ├Ânce ki doldurma i┼člemi s─▒ras─▒nda bir ko┼čul sa─član─▒yorsa o ko┼čulun sa─čland─▒─č─▒ de─čeri atlayarak d├Âng├╝ devam eder. Yani burada i 1965 oldu─čunda o sat─▒rdaki i┼člemi atlayacak ve 1966 dan devam edecek

Continue ile olu┼čan i┼člemi anlad─▒ysak birde ko┼čul sa─čland─▒─č─▒nda d├Âng├╝ i┼člemine son veren bir kodumuz daha var :

Break

for (int i = 1950; i < 2010; i++){

if (i == 1965)

{

break;

}

comboBox1.Items.Add(i.ToString());

}

MessageBox.Show(“D├Âng├╝ Sonland─▒r─▒ld─▒.”);

Yine ayn─▒ i┼člem i├žin break i┼člemi yap─▒ld─▒─č─▒ zaman ko┼čul sa─član─▒yorsa d├Âng├╝den ├ž─▒karak sadece 1965 e kadar olan say─▒lar─▒ ComboBox nesnesi ├╝zerine ekler.

Return

Bir d├Âng├╝n├╝n sonundaki erken ge├ži┼či sa─člar ko┼čul sa─članm─▒yorsa hi├ž bir i┼člem yapmadan ├ž─▒kar.

for (int i = 1950; i < 2010; i++){

if (i == 1965)

{

return;

}

comboBox1.Items.Add(i.ToString());

}

MessageBox.Show(“D├Âng├╝ Sonland─▒r─▒ld─▒.”);

While D├Âng├╝s├╝

Bir ba┼čka d├Âng├╝ t├╝r├╝ olan while bir ko┼čul sa─član─▒yorken d├Ânmeye devam eden d├Âng├╝ ├že┼čididir. Ko┼čul false ise d├Âng├╝ sona erer.

while(ko┼čul){

Yap─▒lacak i┼čler;

}

Ayn─▒ ├Ârne─čimizi While ile yapt─▒─č─▒m─▒zda bu kez biraz syntax de─či┼čiyor ama yapt─▒─č─▒m─▒z i┼člem ayn─▒.

Ko┼čulumuz sa─čland─▒─č─▒ s├╝rece yani i 2010 dan k├╝├ž├╝k oldu─ču s├╝rece i┼člemimizi s├╝rd├╝rd├╝ ve yine ayn─▒ ├Ârne─čimizdeki Combobox itemlerini ekledik.

While i en g├╝zel anlatan ├Ârnek belkide E┼č┼ček Sudan Gelinceye Kadar Dayak Yemek deyimi.

Hadi gelin bu ├Ârne─či yapal─▒m ­čśÇ

Do While D├Âng├╝s├╝

Di─čer d├Âng├╝lerden fark─▒ ko┼čul sonda kontrol edilir. Buda d├Âng├╝n├╝n en az 1 kere ├žal─▒┼čaca─č─▒ anlam─▒na gelir.

Do{

Yap─▒lacak i┼čler;

} while (ko┼čul);

Bilgiyle Kal─▒n…
M.Zeki Osmanc─▒k

ASP.Net _ Data Cache 1024 608 mezo

ASP.Net _ Data Cache


Merhaba arkada┼člar bir ├Ânceki yaz─▒m─▒zda sayfam─▒z─▒ bir b├╝t├╝n olarak nas─▒l┬á cache leyebilece─čimizi g├Ârd├╝k . Bu yaz─▒m─▒zda ise senaryomuz farkl─▒ . Bir e-ticaret sitemizin oldu─čunu varsayal─▒m ve bu sayfa ├╝zerinde birden fazla alan bulunmakta kategoriler, markalar, yeni ├╝r├╝nler , indirimli ├╝r├╝nler gibi ayr─▒ ayr─▒ ama hepsi veritaban─▒ndan gelen veriler bulunmakta. Bu sayfam─▒z─▒ b├╝t├╝n olarak cache e koydu─čumuzda ├╝r├╝nlerde indirimli ├╝r├╝nler gibi s├╝rekli de─či┼čebilirli─či bulunan alanlarda ayn─▒ cache i├žersinde bulunaca─č─▒ndan de─či┼čiklikler kullan─▒c─▒lara yans─▒mayacakt─▒r. Peki nas─▒l olacak bu i┼č ?
Biz sayfam─▒z i├žersinde de─či┼čmeyecek alanlar─▒m─▒z─▒n oldu─čunu biliyoruz ├Ârne─čin kategoriler markalar gibi alanlar bunlar kolay kolay de─či┼čmez yada g├╝ncellenmez. Sayfay─▒ komple cache i┼člemine almaktansa sadece bu alanlar─▒n dolduruldu─ču DataTable nesnesini cache i┼člemine alsak yani sadece sayfada istedi─čimiz alanlar─▒ cache i┼člemine dahil etsek┬á s├╝per olmaz m─▒ ? T─▒pk─▒ a┼ča─č─▒daki resimdeki alanlar gibi.

─░┼čte bu i┼člemide data cache ile yapabiliriz kullan─▒m─▒ OutputCache den biraz farkl─▒ ama eminimki seveceksiniz.┬á Bu i┼člem i├žin DataTable d├Ând├╝ren bir property┬á e ihtiyac─▒m olacak bu property i├žersinde bilgileri al─▒p cache i┼člemine dahil edece─čiz.

Property ÔÇśmiz haz─▒r art─▒k i├žersine bir Datable g├Ânderdi─čimizde i├žersinde cache i┼člemini yaparak tekrar cache lenmi┼č datatable d├Ând├╝recek.┬á Bu property i haz─▒rlad─▒ktan sonra i┼čimiz ├žok kolay sadece en basit olarak datalar─▒m─▒z─▒ veritaban─▒ndan ├žekmek kal─▒yor.

Datam─▒z─▒ ├žekerken bir noktaya dikkatinizi ├žekmek istiyorum ├Âncelikle MyData bo┼čmu diye kontrol ettikten sonra ba─člant─▒m─▒z─▒ kurup sorgumuzu yollay─▒p verilerimizi al─▒yoruz ve Datatable ile kar┼č─▒lad─▒─č─▒m─▒z verilerimizi MyData ya at─▒yoruz. Ard─▒ndan Repeater nesnemizin DataSource ÔÇś una MyData y─▒ verdi─čimizde cachelenmi┼č veri nesnemizin veri kayna─č─▒ olarak belirleniyor ve belirtilen s├╝re i├žerisinde┬á bu veriler di─čer alanlar─▒ etkilemeyecek ┼čekilde cache i┼člemine dahil edilmi┼č oluyor. Fakat bu i┼člemi uygulad─▒─č─▒m─▒zda ┬áe─čer veritaban─▒nda de─či┼čiklik olursa ve belirtti─čimiz cache s├╝resi bitmeden sayfaya istekte bulunursak g├Âr├╝n├╝rde bilgiler hi├ž g├╝ncellenmiyormu┼č gibi g├Âr├╝necek ├ž├╝nk├╝ MyData i├žersinde veriyi cache i┼člemine dahil ederken kulland─▒─č─▒m─▒z Cache.NoAbsoluteExpriration deyimi cache s├╝resinde kayma yapar.

Yani cache s├╝remizi 30 dakika olarak d├╝┼č├╝n├╝rsek ilk sayfa i├žin istekte bulunuldu─čunda datam─▒z cache lenecek daha sonra 30 dakika hi├ž istek olmazsa veritaban─▒ndan yeni verileri ├žekerek yeni bir cache olu┼čturacak. Peki ya bu 30 dakika dolmadan 15. Ci dakikada bir istekte bulunulursa o zaman ne oluyor ? o zamanda ÔÇťslidingÔÇŁ yani kaydirma i┼člemi yap─▒larak istekte bulunuldu─ču dakikaya bir 30 dakika daha ekleyerek cache s├╝resini uzat─▒yor.┬á Yani 12:00 da istekte bulunulan sayfada cache yenileme s├╝resi 12:30 oalcakt─▒r fakat 12:15 de┬á tekrar bir istekte bulunuldu─čunda cache in yenilenme s├╝resi 12:45 olarak de─či┼čecektir.

Bu y├Ântemden ba┼čka y├Ântemlerde var. ┬áBiz MyData i├žersine datatable g├Ânderdi─čimizde i├žerdeki i┼člemler s─▒ras─▒nda e─čer NoAbsoulateExpiration de─čilde NoSlidingExpiration kullan─▒rsak bu kez bizim sayfa isteklerimizi dikkate┬á almadan sadece belirtti─čimiz cache s├╝resinin bitmesini bekleyecek ve s├╝re bitiminde cache i┼člemini yeniler.

B├Âylelikle sayfam─▒z i├žersinde belirtti─čimiz ├╝zere birden┬á fazla database ile ilgili b├Âl├╝m olsada biz sadece Kategoriler b├Âl├╝m├╝n├╝ yada sadece markalar b├Âl├╝m├╝n├╝ Cache i┼člemine dahil etmi┼č olaca─č─▒z bu bilgi i├žin tekrar tekrar DB ye ba─članmak zorunda kalmayaca─č─▒z.

Umar─▒m yararl─▒ olur. G├Âr├╝┼čmek ├╝zere.

Bilgiyle Kal─▒n…
M. Zeki Osmanc─▒k

ASP.Net _ Output Cache 469 492 mezo

ASP.Net _ Output Cache


Merhaba Arkada┼člar
Bu yaz─▒mda sizlere ASP.Net ile dinamik web siteleri yaparken performans─▒ etkileyecek bir yap─▒dan bahsetmek istiyorum. Genellikle bu tip web sayfalar─▒nda veriler veritaban─▒ndan ├žekilir. Bir sayfada, her seferinde veritaban─▒na ba─članmak ve ├Âzellikle farkl─▒ tablolardan veri ├žekiyorsak, performans─▒ ├Ânemli derecede etkiler .Herseferinde veritaban─▒na gidip farkl─▒ tablolar─▒ bulup verileri web sayfas─▒ ├╝zerine ├žekmek sayfay─▒ yava┼člat─▒r kullan─▒c─▒y─▒ usand─▒r─▒r. Yava┼č bir web kullan─▒c─▒ ├╝zerinde negatif bir etki yarat─▒r. Bunun i├žin ne yapmak gerekiyor peki ?
Sayfalar─▒m─▒zda bulunan verinin g├╝ncellenme s─▒kl─▒─č─▒na g├Âre belirli bir s├╝re t├╝m verileri Cache i┼člemine tabi tutsak ve kullan─▒c─▒ sayfay─▒ ├ža─č─▒rd─▒─č─▒nda her seferinde veritaban─▒na ba─članmaktansa cache te var olan veriyi g├Âstersek ├žok daha performansl─▒ olmazm─▒ ? Belirtilen s├╝re bitti─činde ise 1 sefer gidip veritaban─▒ndan bilgileri al─▒p tekrar cache i├žersine doldurdu─čumuzda tad─▒ndan yenmez . ­čśÇ
Peki sayfam─▒z─▒ Cache dedi─čimiz yap─▒ i├žersine almak i├žin ne yapmak gerekiyor ?

Yapmam─▒z gereken sadece aspx sayfam─▒z─▒n ilk sat─▒rlar─▒na yukardaki yap─▒ gibi
<%@ OutputCache Duration=”30″ VaryByParam=”none” %> kodunu eklemek olacak b├Âylelikle sayfam─▒z outputcache ile komple cache i┼člemine tabi olacak ve Duration k─▒sm─▒nda belirtti─čimiz saniye cinsinden s├╝re kadar cache de kalacak. Sizde bir sayfa ├╝zerine basit├že veritaban─▒ndan veri ├žekerek bu i┼člemi uygulay─▒n ve veritaban─▒n─▒ g├╝ncelledikten sonra sayfan─▒z─▒da g├╝ncelleyin verdi─činiz Duration s├╝resi boyunca s├╝rekli g├╝ncellemeden ├Ânceki bilgiler gelecek.Duration s├╝resi bittikten sonra tekrar veritaban─▒na ba─članarak tekrar bir cache yapacakt─▒r. Bunu sizin de yapman─▒z─▒ istedim ├ž├╝nk├╝ etkisini mutlaka g├Ârmelisiniz.

Senaryomuz ┼ču olsun : Diyelimki biraz ├Ânce belirtti─čim sayfan─▒z ├╝zerine ├žekti─činiz bilgi ├╝r├╝n kategorileri olsun. Bu kategoriler hangi s─▒kl─▒kla g├╝ncellenir? Ancak yeni bir ├╝r├╝n grubu geldi─činde de─čilmi ? Buna g├Âre sayfa ├╝zerinde┬á s├╝rekli veritaban─▒na ba─član─▒p g├╝ncel kategori bilgileri ile d├Ânmesinin bir anlam─▒ olmaz. Bu sayfay─▒ 1┬á g├╝nl├╝k cache i┼člemine ald─▒─č─▒m─▒zda ilk kullan─▒c─▒ sayfay─▒ a├žt─▒─č─▒nda veriler cache at─▒lacak daha sonra t├╝m g├╝n veritaban─▒na ba─članmayacak SqlServer i├žin ne kadar rahatlat─▒c─▒ de─čilmi ?J

Kategorilerin oldu─ču sayfay─▒ cache e att─▒k ├žok g├╝zel!┬á Birde bu kategorilere t─▒klad─▒─č─▒mzda o kategoriye ait olan ├╝r├╝nleri g├Âsteren bir ┬á├ťr├╝nler sayfam─▒z olsa ve QueryString ile gelen kategoriID si ne g├Âre ├╝r├╝nleri g├Âsterse ve bu ├╝r├╝nler sayfas─▒n─▒da Cache atmak istesek ayn─▒ i┼člemi uygulasak ????

Belirtti─čimiz s├╝re i├žersinde hangi kategoriye t─▒klarsak t─▒klayal─▒m hep ayn─▒ kategoriye ait ├╝r├╝nler g├Âr├╝lecektir.

Bu sorunuda <%@ OutputCache Duration=”30″ VaryByParam=”CatID” %>┬á kodu i├žersinde belirtti─čimiz VarybyParam de─čeri ile d├╝zenleyebiliyoruz. Bu de─čer bize cache i┼čleminin hangi parametrelere g├Âre yap─▒laca─č─▒n─▒ belirtti─čimiz bir de─čer. Buna g├Âre VaryByParam de─čerine querystring deki kategoriID sini ta┼č─▒yan parametreyi verirsem kategoriler sayfas─▒nda kategorilerden hangisine t─▒klarsam t─▒klayay─▒m di─čer sayfadaki cache i┼člemi o kategoriID sine g├Âre d├╝zenlenerek bize farkl─▒ kategorilerdeki ├╝r├╝nlerinde g├Âr├╝nt├╝lenmesini sa─člayacakt─▒r.

Her zaman kategori bilgisini farkl─▒ sayfadan g├Ândermeyebiliriz. Bir sayfa i├žersinde bir dropdownlist i├žersine listelenmi┼č kategori bilgileri ilede ayn─▒ sayfa ├╝zerinde ilgili ├╝r├╝nleri listeledi─čimizi varsayarsak. Ayn─▒┬á y├Ântemle yapmaya kalkarsak yine sorun ├ž─▒kacakt─▒r ├ž├╝nk├╝ burada parametre olarak querystring kullanm─▒yoruz bir kontrol kullan─▒yoruz. Bu kez ise VaryByParam yerine VaryByControl kullan─▒yoruz. ┬á<%@ OutputCache Duration=”30″ VaryByControl=”DropDownList1″ %>

Parametrenin hangi de─čere g├Âre cache i┼člemine girece─čini de─čeri nereden alaca─č─▒n─▒ belirtmi┼č oluyoruz. B├Âylece ayn─▒ sayfa i├žersinde bulunan controllerin durumuna g├Ârede cache i┼člemini ┼čekillendirmi┼č oluyoruz.

Gelin biraz i┼čin i├žine , i┼čin dibine , i┼čin alt─▒nda yatan koca ayzberge (iceberg) ┬ábakal─▒m ­čśÇ

OutputCacheModule ASP.Net i├žersinde bir HTTP Modul olarak implement olmu┼čtur ve ┬áSystem.Web.Caching namespace i i├žersinde yer al─▒r. Bu mod├╝l sayfa i├žersindeki isteklerin ya┼čam alan─▒ i├žersinde ┬áger├žekle┼čecek olan olaylar─▒ dinler ve ilgili bir olay(event) ├žal─▒┼č─▒rsa harekete ge├žer.HTTPModule ┬áOutputCacheModuleÔÇÖ e , ┬áResolveRequestCache ve UpdateRequestCache olaylar─▒ ile katk─▒da bulunur.┬á ResolveRequestCache olay─▒ tetiklendi─činde, modul gelen iste─čin sonucunda d├Ânecek olan sayfan─▒n outputcache dahilinde olup olmad─▒─č─▒na karar verir. E─čer cache i┼člemi varsa cache version bilgisi d├Âner,cache bilgisi yoksa sayfa normal render edilir. ┬áGeriye d├Ânen cache bilgisine g├Âre UpdateCacheModule ├žal─▒┼č─▒r. Bu mod├╝l ├žal─▒┼čt─▒─č─▒ zaman ise render edilen sayfa cache i┼člemine al─▒n─▒r.

A┼ča─č─▒daki diagram outputcachemod├╝l├╝n├╝n ├žal─▒┼čmas─▒yla ilgili bir fikir verecektir.

Ba┼čka yaz─▒larda tekrar g├Âr├╝┼čmek ├╝zere

Bilgiyle Kal─▒n…
M.Zeki Osmanc─▒k

 

C# _ Karar Yap─▒lar─▒ _ If-Else & Switch 522 236 mezo

C# _ Karar Yap─▒lar─▒ _ If-Else & Switch


Ger├žek hayatta bizlerin baz─▒ kararlar almak zorunda kald─▒─č─▒m─▒z gibi program─▒m─▒zada karar alma yetene─čini kazand─▒rabiliriz ├ž─▒kabilecek t├╝m sonu├žlar─▒ de─čerlendirerek ilgili i┼člemi yapabilecek duruma gelebilir. K─▒sacas─▒ program─▒m─▒za d├╝┼č├╝nme yetene─či kazand─▒rabiliriz.

If ÔÇô Else Karar Yap─▒s─▒

If..Else deyimi bir Boolean ifadeyi degerlendirerek program denetimi belirtilen deyim gruplar─▒na ge├žirir. Basit bir ├Ârnek olarak tatile ├ž─▒kmak istiyorsunuz ve mevcut paran─▒z 500 lira. Afirmas─▒nda┬á 1 haftal─▒k tatil 900 lira┬á┬á ,Bfirmas─▒nda 850 lira ,Cfirmas─▒nda 450 lira ,Dfirmas─▒ndada 300 lira bu 4 firma aras─▒nda se├žim yapmak gerekirse ilk iki firmay─▒ eledik bile. C ve D firmalar─▒ aras─▒ndaki se├žimimizede orada yapaca─č─▒m─▒z harcamalar─▒ g├Âz ├Ân├╝nde bulundurarak de─čerlendirecek olursak en uygun D firmas─▒ olaca─č─▒na karar veririz. ─░f yap─▒lar─▒da bu ┼čekilde ├žal─▒┼č─▒r. ─░f karar bloglar─▒ a┼ča─č─▒da belirtilen formatta yaz─▒l─▒r.

Bir ├žok program ve web sitesinde g├Ârd├╝─č├╝m├╝z kullan─▒c─▒ ad─▒ ve ┼čifrenin do─čru oldu─čuna karar verdi─čimiz basit bir program yazal─▒m.

Swicth ÔÇô Case

Mant─▒k olarak “if else” ko┼čul yap─▒s─▒na benzer. Kendisine g├Ânderilen parametreyi de─čerlendirir ve ona g├Âre ayr─▒lan kod blo─čunu ├žal─▒┼čt─▒r─▒r. Yani eleme yaparak parametrenin sahip oldu─ču de─čeri ile e┼čitlenen kod blo─čunu ├žal─▒┼čt─▒r─▒r.

switch(de─či┼čken)

{

case kosul1:

//kodlar bu panele gelecek

break;

case kosul2:

//kodlar bu panele gelecek

break;

case kosuln:

//kodlar bu panele gelecek

break;

default:

//e─čer hi├ž bir ko┼čul desteklenmiyorsa bu ko┼čul ger├žekle┼čecek

break;

}

Bilgisayar─▒m─▒z─▒n saatini kontrol ederek g├╝n├╝n ├že┼čitli zamanlar─▒nda bize kar┼č─▒lama mesaj─▒ ├ž─▒kartan bir uygulama yazal─▒m

Bilgiyle Kal─▒n…
M.Zeki Osmanc─▒k

Algoritma 503 345 mezo

Algoritma


Algoritma Nedir?

Algoritmalar bir i┼čin nas─▒l yap─▒ld─▒─č─▒n─▒ ad─▒m ad─▒m hangi etaplardan ge├žerek ger├žekle┼čece─čini g├Âsteren bir ├žal─▒┼čma plan─▒d─▒r asl─▒nda. Algoritmalar┬á programlama dili de─čildir┬á sadece programlama dillerine klavuz g├Ârevi g├Âren bir y├Ântem dizisidir.Algoritmalar yaz─▒l─▒ ┼čekilde olabilece─či gibi semboller dizilimi ilede┬á kar┼č─▒m─▒za ├ž─▒kabilirler.

Algoritmalardaki y├Ântemler s─▒ras─▒

  • Veri Giri┼či
  • ─░┼člem
  • Kararlar

Veri Giri┼či : Yap─▒lan uygulamalar─▒n runtime k─▒sm─▒nda kullan─▒c─▒ taraf─▒ndan girilecek olan verilerdir.

Kararlar: Karar ve kontrol yap─▒lar─▒ algoritman─▒n ak─▒┼č─▒n─▒ y├Ânlendiren ├Ânemli kavramlard─▒r. Girilen veya i┼člem sonucu elde edilen veriler kontrol edilerek algoritma istenilen yere y├Ânlendirilir.

─░┼člem: Algoritmada belirtilen kararlar ve girilen veriler ile hangi i┼člemlerin ger├žekle┼čece─čini belirti─čimiz y├Ântemlerdir.

├ľzellikleri

  • Girdi: S─▒f─▒r veya daha fazla de─čer d─▒┼čar─▒dan verilmeli.
  • ├ç─▒kt─▒: En az─▒ndan bir de─čer ├╝retilmeli.
  • A├ž─▒kl─▒k: Her i┼člem (komut) a├ž─▒k olmal─▒ ve farkl─▒ anlamlar i├žermemeli.
  • Sonluluk: Her t├╝rl├╝ olas─▒l─▒k i├žin algoritma sonlu ad─▒mda bitmeli.
  • Etkinlik: Her komut ki┼činin kalem ve ka─č─▒t ile y├╝r├╝tebilece─či kadar basit olmal─▒d─▒r.

Ak─▒┼č Diagramlar─▒

Bu diagramlar daha anla┼č─▒l─▒r bir┬á yap─▒ya sahip olmalar─▒ i├žin baz─▒ semboller ile belirtilen algoritma y├Ântemidir.Ak─▒┼č diagramlar─▒ farkl─▒ semboller yard─▒m─▒ ile haz─▒rlan─▒rlar┼čekilleri itibari ile anla┼č─▒lmas─▒ kolay problem ├ž├Âz├╝m├╝nde

yard─▒mc─▒ bir y├Ântemdir. ┼×imdi baz─▒ diagram ┼čekillerini tan─▒yal─▒m ve bir i┼člemin algoritmas─▒n─▒ ├žizelim.

├çay Demleme ─░┼čleminin Algoritmas─▒

ÔÇó┬á┬á┬á┬á┬á Kullan─▒c─▒dan su verilmesi beklenir.

ÔÇó┬á┬á┬á┬á┬á Suyu ─▒s─▒tma i┼člemi yap─▒l─▒r

ÔÇó┬á┬á┬á┬á┬á Suyun kaynad─▒─č─▒ kontrol edilir. Kaynamam─▒┼čsa ─▒s─▒tmaya devam eder

ÔÇó┬á┬á┬á┬á┬á Demli─če ├žay konulur.

ÔÇó┬á┬á┬á┬á┬á Kullan─▒c─▒dan al─▒nan demleme bilgisi ile ┼čimdiki zaman toplan─▒r ve s├╝re bulunur .

ÔÇó┬á┬á┬á┬á┬á ┼×imdiki zaman k├╝├ž├╝kse ├žay demlenmeye devam eder.

ÔÇó┬á┬á┬á┬á┬á ├çay─▒n demlendi─či mesajla bildirilir.

├çay Demleme ─░┼člemi Algoritma Diagram─▒

Bilgiyle Kal─▒n…
M.Zeki Osmanc─▒k

C# _ Hatalar ve Giderilmeleri _ Try-Catch 353 238 mezo

C# _ Hatalar ve Giderilmeleri _ Try-Catch


Hata Nedir ?

Programc─▒lar veya program─▒ kullanacak olan ┬áson kullan─▒c─▒lar kimi zaman baz─▒ kullan─▒m yada mant─▒ksal hatalar yapabilirler. Bu hatalar g├Âzden ka├žabilen mant─▒ksal hatalar olabilir son kullan─▒c─▒n─▒n program─▒ kullanmas─▒ s─▒ras─▒nda veya test a┼čamas─▒nda kar┼č─▒m─▒za ├ž─▒kabilir. ─░┼čte bu hatalar─▒n giderilmesi hata ├ž─▒kt─▒─č─▒ anda i┼člem kod blo─čunu terk etmesi i├žin i┼člemlerimizi try blo─ču i├žersinde yaz─▒yoruz bu blog i├žersinde bir hata meydana geldi─činde catch blo─ču ile hata durumunda ne gibi bir i┼člem yapaca─č─▒m─▒z─▒ belirtiyoruz.

Hatan─▒n Yakalama

├ľrnek olarak i┼č yerimizde ├žal─▒┼čan sar─▒┼č─▒n bir sekreterimiz i├žin 2 say─▒y─▒ toplamas─▒ i├žin ├žok basit bir hesap makinesi yazm─▒┼č olal─▒m. Sekreterimiz bu hesap makinesini kullan─▒rken say─▒sal de─čerler kullanmak zorunda. Peki say─▒sal olmayan bir de─čer girdi─činde program─▒n tepkisi ne olacakt─▒r ?

Bu sorunu program i├žersinde hata kontrol├╝ yaparak ├ž├Âzebiliriz. E─čer i┼člem blo─čumuzda hata olu┼čursa hata yakalanacak i┼člemden ├ž─▒kacak ve hata durumunda ne yapmas─▒n─▒ istemi┼čsek onu yapacak.

Finally

Birde programlar─▒m─▒zda hata olsun yada olmas─▒n ├žal─▒┼čmas─▒n─▒ istedi─čimiz baz─▒ kodlar yap─▒lmas─▒n─▒ istedi─čimiz i┼člemler olacakt─▒r. Bunlar hata ├ž─▒kmas─▒ durumunda bile ├žal─▒┼čacak olan kod bloklar─▒d─▒r. Finally blogu i├žersinde yer alan kodlar her ne hata olursa olsun ├žal─▒┼čacakt─▒r.

Bilgiyle Kal─▒n…
M.Zeki Osmanc─▒k

C# _ De─či┼čkenler ve Veri Tipleri 507 316 mezo

C# _ De─či┼čkenler ve Veri Tipleri


Merhaba arkada┼člar bu yaz─▒mda sizlere de─či┼čkenler denilen yap─▒lar─▒ anlatmaya ├žal─▒┼čaca─č─▒m. Haydi ba┼člayal─▒m ­čśë

De─či┼čken nedir nas─▒l tan─▒mlan─▒r?
Bir program ├žal─▒┼čt─▒r─▒rken t├╝m veriler ge├žici olarak haf─▒zada tutulur. De─či┼čkenler bu verilerin isimlendirilmesi i┼člemidir. De─či┼čken mant─▒─č─▒ g├╝nl├╝k ya┼čamdada ├žok kullan─▒lan bir mant─▒kt─▒r asl─▒nda. Akl─▒m─▒zdan iki say─▒ tutmam─▒z istendi─činde ve bu say─▒larla alakal─▒ i┼člem yapmam─▒z istendi─činde asl─▒nda isimlendirecek olursak sayi1 ve sayi2 olarak o say─▒lar─▒ akl─▒m─▒zda tutuyoruz. ─░┼čte bu sayi1 ve sayi2 sadece o an ge├ži├ži bir s├╝re i├žinde i┼člem yapmam─▒z i├žin kafam─▒zda ├╝retti─čimiz de─či┼čkenlerdir. Programlamadada ge├ži├ži olarak veri tutmak istedi─čimizde de─či┼čkenleri kullan─▒r─▒z.
<veri tipi> <de─či┼čken ad─▒>; ┼čeklinde tan─▒mlan─▒rlar.
string isim;
int rakam;
Tan─▒mlama Kurallar─▒
ÔÇóTan─▒mlanan de─či┼čkenlerin tipleri de─či┼čken isminden ├Ânce belirtilir.
ÔÇóDe─či┼čken isimlerini belirlerken baz─▒ noktalara dikkat etmek gerekir. Bo┼čluk, nokta, soru i┼čareti, noktal─▒ virg├╝l, ├žift t─▒rnak, tek t─▒rnak, aritmetik┬á operat├Ârler, kar┼č─▒la┼čt─▒rma ve atama operat├Ârleri, parantezler kullan─▒lamaz.
ÔÇó Say─▒ ile ba┼člayamaz.
ÔÇóVisual C#.NET dilinde tan─▒ml─▒ anahtar kelimeler kullan─▒lamaz.
ÔÇóDe─či┼čken isimlerinde T├╝rk├že karakter kullan─▒l─▒rsa, farkl─▒ dil se├ženekli i┼čletim sistemlerinde ├žal─▒┼čma an─▒nda hata ├╝retecektir.

Veri Tipleri

De─či┼čkenler program i├žinde, tuttuklar─▒ verilere ula┼čmak i├žin kullan─▒l─▒r. Ancak de─či┼čkenlere ula┼čmak, tan─▒mland─▒klar─▒ yerde veya alt┬á bloklarda m├╝mk├╝nd├╝r. Bu kavrama de─či┼čkenlerin kapsam alan─▒ (Scope) denir.
Kapsam alan─▒ d─▒┼č─▒ndaki bir yerden de─či┼čkene ula┼č─▒lamaz.

Veri tipi, de─či┼čkenlerin tuttuklar─▒ de─čerlerin t├╝r├╝n├╝ ve bellekte tutulacak boyutunu tan─▒mlar. De─či┼čkenleri veri tipleri ile tan─▒mlarken verinin┬á boyutuna g├Âre bir veri tipi se├žilmelidir. ─░ki tip veri tipi mevcuttur De─čer Tipleri (Value Type)┬á ve Referans Tipleri (Reference Type)

De─čer Tipleri (Value Type)

De─čer tipleri veriyi direk olarak bellek b├Âlgesinden al─▒rlar

Referans Tipleri (Reference Type)