31 Mart 2012 Cumartesi

DynamicObject in C# 4.0


using System;
using System.Collections.Generic;
using System.Dynamic;
using System.Linq;
using System.Linq.Expressions;
using System.Text;

namespace ConsoleApplication1 {
   class DynamicTest : DynamicObject {
      public override bool TryInvokeMember(
            InvokeMemberBinder binder, object[] args,
            out object result) {
         var paramList = new Dictionary<string, object>();
         int i = 0;
         foreach ( object obj in args ) {
            string name = binder.CallInfo.ArgumentNames.Count > i ?
               binder.CallInfo.ArgumentNames[i] : ("param" + i);
            paramList.Add(name, obj);
            i++;
         }
         WriteCall(binder.Name, paramList);
         result = null;
         return true;
      }

      public void WriteCall(string name, Dictionary<string, object> paramList) {
         Console.WriteLine("Executing: {0}", name);
         foreach ( string key in paramList.Keys ) {
            Console.WriteLine("\t{0}: {1}", key, paramList[key]);
         }
      }
   }
   class Program {
      static void Main(string[] args) {
         dynamic cl = new DynamicTest();
         cl.MyMethodCall(count:12, value: "this is a string");
      }
   }
}



Kaynak : http://winterdom.com/2009/05/dynamicobject-in-c-40

23 Mart 2012 Cuma

Efsane CEO’nun arkasında bıraktığı 10 liderlik sırrı



Efsane CEO’nun arkasında bıraktığı 10 liderlik sırrı

Apple’ı devrimci teknolojilerle dünyanın en büyük şirketi yapan efsane CEO Jobs’un liderlik sırlarını, kendi ağzından biyografisini yazan Walter Isaacson 10 maddede derledi


20 Mart 2012 Salı

C# (CSharp) ile Kayıt Defteri (Registry) İşlemleri

C# (csharp)  da kayıt defterinden kayıt okuma (read value from Registry), kayıt defterindeki kaydı güncelleme (change value to Registry), kayıt defterine yeni kayıt yazma (write value to Registry), kayıt defterindeki kaydı silme (delete value from Registry), kayıt defterine yeni anahtar oluşturma (create key to Registry) ve kayıt defterindeki anahtarı silme (delete key from Registry) işlemlerinin nasıl gerçekleştirildiğini örneklerle sizlere aktarmaya çalışacağım.

12 Mart 2012 Pazartesi

Web Service'lerinde Güvenlik 1

Giriş

Şirketiniz bayilik sistemi ile çalışıyor ve siz Türkiye üzerinde bulunan bayi ağınızın merkezdeki stok bilgilerini görüntüleyebilmesi ve siparişlerini geçebilmelerini sağlayan Web Service uygulaması geliştirdiniz. Ancak Web Service üzerinden dağıttığınız bu bilgiler gizli ve adresi bilen – veya bulan – herkesin bu Web Servisi kullanmasını istemiyorsunuz. O halde Web Service ini kullanan istemcinin kendini tanıtması gerekiyor. Yazımızın konusu Web Service’lerinde güvenliği sağlamak.

WSE 3.0 Security

Web servisinize ulaşan bir mesajın acaba bir saldırımı yoksa gerçekten bir istemci mesajı mı olduğunu nasıl kontrol edersiniz? Peki, mesajın güvenliğini sağladığınızı varsayalım acaba istemci kullanıcının yetkisi dışında bir veriye talepte bulunmadığından emin olabilir misiniz?

XML Web Servis ve Soap Header Üzerinden Authorization

Bugun bir xml web servis üzerinden Soap header ı kullanarak güvenliği sağlayabileceğimiz ( kullanıcı adı ve şifre isteyerek ) bir uygulama yapmak istiyorum.Öncelikle bir web servis uygulaması vede uygulamamı test edeceğim console uygulamasını solution a ekliyorum.

Asp.Net Web Servislerinde Güvenlik

Web servisleri parametrik yapıları, ajax teknolojisi ile iç içe olması ve model tiplerimizi javascript’e aktarabilmesi ile web projelerinin vazgeçilmez unsurlarıdır.
Bir önceki yazımızda bahsettiğimiz Pagemethod’ların birçok dezavantajına karşılık web servisleri her zaman paramatrik yapısı ve birçok özelliği ile tercih edilebilir durumdadır. Fakat bu noktada güvenlik gibi bir unsura değinmeden edemeyeceğiz çünkü yazımızın konusu :)
Web servislerinde güvenliği sağlamak için aşağıdaki güvenlik önlemlerini geliştireceğimiz sisteme göre tercih edebiliriz.

HttpWebRequest Sınıfıyla Web Servislerini Çağırmak

Web servislerini projelerimize eklerken servislerin adreslerini Visual Studionun web servisi ile ilgili tool’una yazarak ilgili web servisini referans olarak projelerimize ekleyebiliyoruz. Fakat proje ilerleyişinde bazen durumlar istediğimiz doğrultuda gelişmeyebiliyor. Örneğin web servisinin bulunduğu sunucuya erişim sadece projenin production sunucusundan yapılıyor. Bu durumda Visual Studio web servis toolunu kullanarak bu servisi projemize dahil edemiyoruz. Fakat bu servislere SOAP paketleri halinde, çalışma anında WebRequest sınıfını kullanarak projemizden ulaşabiliriz.

ASP.NET AJAX İle WebMethod Kullanımı

Herkese merhaba. Crema’da yazılım geliştirme uzmanı olarak çalışıyorum. Bu blogda ASP.Net ve Web teknolojileri ile ilgili hile ve ipuçlarını sizinle paylaşacağım. Bu ipuçlarını sosyal hayatınızda denemeyin veya uygulamayın @D

SQL Server 2005+ Üzerinde CLR Assembly Entegrasyonu

Veritabanı bağımlı sistemler geliştirirken bazen performans için bazen de güvenlik için keşke şu metodu Sql Server üzerinden çağırabilseydim dediğimiz zamanlar olur. Örneğin; bir masaüstü uygulaması geliştirilirken genel geçer yöntem, uygulamaların istemci, veri tabanının da bir sunucu şeklinde tasarlanmasıdır. Böyle bir durumda ayrıca bir sunucu uygulaması yazma maliyetinden kurtulmuş olunur, veri tabanı sunucusunun da istemci sunucusu olarak kullanılması sağlanmış olur. Ancak bu sunucunun kabiliyetleri veri tabanı sunucusunun kabiliyetleri ile sınırlı olacaktır.

CSS Ve JS Içinden Kaynak Dosyaları Dinamik Olarak Çağırmak

Web projemizi geliştirirken local sunucumuzda “http://musterisitesi/” olarak tanımlamış olalım ve müşteri yayın ortamı örneğin “http://www.musterisitesi.com/site2010/v2/” olsun. Sayfalarımızda ve özellikle CSS dosyalarında birçok kez kaynak dosya yolu belirtmişizdir.

10 Mart 2012 Cumartesi

Adım Adım WCF-5 (IIS TCP Hosting)

Kısa bir aradan sonra yeni makaleyle WCF dünyasını incelemeye devam ediyoruz. Bu makalemizde bir WCF servisini TCP protokolü üzerinden yayınlayacağız,

Adım Adım WCF-4 (örnek)

Herkese merhabalar, “Adım Adım WCF” makaleler dizimize bıraktığımız yerden devam ediyoruz. Şuana kadar yaptıklarımızı toparlamak gerekirse;
-End Point tanımlama
-Servis yazma kuralları
-Servisi Host etme şekillleri
şeklinde ilerledik. Ve WCF in neden kullanmamız gerektiğini inceledik. Bu makalede ise artık gerçek bir WCF örneğini hep beraber inceleyeceğiz.

Adım Adım WCF-3(Hosting)

Herkese tekrar merhabalar;
“Adım Adım WCF” makaleler serimize tüm hızıyla devam ediyoruz. Bu makalemize WCF in temel taşlarından olan “Hosting” konusuna değineceğiz.
Bir Web Servis geliştirildiğinde karşılaşılan zorluklardan biride, servisimizi bir web sunucusu içerisinde yalnızca http ya da wshttp protokolleriyle kullanabiliyor olma zorunluluğuydu. Fakat WCF sayesinde artık böyle bir zorunluluk yok. Servislerimizi istediğimiz protokollerle, istediğimiz şekilde, sunabilme imkanı artık kolayca kullanılabilir durumda.
Aslına bakarsanız, WCF in anlamı ve  neden WCF öğrenmeliyim sorusunun cevabı da burada gizli. İstenilen protokolle, aynı servisimizi istediğimiz encoding kullanarak yayınlayabilme! İşin özü budur!

Adım Adım WCF-2 (Contract)

Herkese Merhaba;
“Adım Adım WCF” makaleler dizimizin 2. makalesi ile WCF i incelemeye devam ediyoruz. İlk makalemizde WCF in olmazsa olmazı “ABC” üçlemesinden Adress ve Binding i açıklamıştık. Bu makalemizde ise Contract üzerine eğileceğiz.
Contract :  Servisin ne iş yaptığını hangi fonksiyonelikleri olduğunu dış ortama anlatan WCF özelliğidir. Contract çeşitleri genel anlamda 4 çeşittir. Bunlar :
  • Service Contract: Servis ile yarattığımız operasyonları tanımlaya yarar.
  • Data Contract : Verileri tanımlamamıza yarar.
  • Fault Contract: Servis tarafından hata tanımlamaya yarar.
  • Message Contract: Servisler ile mesajlar arasında iletişim kurmaya yarar.

Adım Adım WCF-1

Herkese merhabalar;
“Adım Adım WCF” makaleler dizimizde Microsoft un yeni servis yönelimli mimarisi wcf i sıfırdan incelemeye başlayıp, adım adım uzman yaklaşımlara doğru ilerleyeceğiz. Öncelikle “neyi inceliyoruz”, “neden wcf” sorularına ışık tutarak başlayalım.

WCF Nedir?

Microsoft un şimdiye kadarki dağıtık mimari uygulamalarını incelediğimizde karşımız şöyle kabarık bir liste çıkıyor:
WCF
  • ASP.NET Web Services (ASMX)
  • Web Services Enhancements (WSE)
  • Messaging (MSMQ)
  • .NET Enterprise Services (ES)
  • .NET Remoting
tüm bu uygulamar ayrı ayrı, bir bütünlük olmaksızın host edilip, herbiri için farklı işlemler, farklı yaklaşımlar gerekiyordu. WCF tüm bu yapıların biraraya getirilmesini ve optimum çözüm sunarak ,standartları olan, güvevli SOA uygulamalarına imkan kılıyor.

WCF temelinde servis üç adımda geliştirilir.
1. Servis yaratılır.(Creating)
2. Servise bir adres bağlanır ve host edilir. (Hosting)
3. Client tarafından eklenerek kullanılır.(Consuming)
Yukarıdaki üç adımı uygulayarak örnek bir servis geliştirmeye ileriki makalelerde başlayacağız fakat öncesinde WCF i incelemeye devam edelim.

WCF ve ABC??

wcfabc
.Bir servis en az bir tane endpoint e sahiptir. Endpointler servisin iletişimini sağlayan ve iletişim kurallarını belirleyen yapılardır. Client tarafında bir tane, sunucu tarafında ise n tane olabilir. Bunun anlamı n tane farklı iletişim yolu. Endpointlerin niteliklerini belirleyende işte başlıkta belirttiğimiz ABC. Peki ama nedir bu ABC ne işe yarar?
Address
Her web uygulamasının bir adresi olduğu gibi WCF servisimizinde bir adresi olmalı. WCF aşağıdaki protokolleri kullanarak servis çalıştırmaya imkan verir.:
  • HTTP (http:// yada https:// )
  • TCP (net.tcp :// )
  • Peer 2 Peer (net.p2p://)
  • IPC (Inter-Process Communication over named pipes)(net.pipe://)
  • MSMQ (net.msmq://)

Bindings
Binding servisin erişebilirliği ile ilgilenir. Servise dış dünyanın hangi kurallar ile bağlanabileceğini belirler.
wcfarchitecture[7]
Bir binding tipi:
1.Protocol : İstenilen herhangi protokol
2.Encoder : text/xml için HTTP binding, binary xml için TCP binding olabilir
3.Transport: HTTP, TCP, NamedPipes ya da MSMQ.
ile kurallar belirler.
Contract
Contract, client ın servis ile yapabileceği işlemleri ifade eder.
WCF dünyasına WCF in genel yapısını ve temel kurallarını inceleyerek başladık. Bir sonraki makalemizde, Contract konusunu biraz daha detaylandırıp, bir contract örneği ile wcf kodlamaya da başlamış olacağız. Bir sonraki makalede görüşmek üzere.

Kaynak: http://simsekonur.blogspot.com/2009/03/adm-adm-wcf-1.html

Programsal Olarak WCF Hizmeti Oluşturma

  Bir önceki makalemle birlikte Windows Communication Foundation’ın (WCF) detaylarını sizlerle paylaşacağım seriye başlamış ve giriş düzeyindeki bilgiler ile basit bir hizmet oluşturarak uygulamamız üzerinden bu hizmeti istemcilerimize sunmuştuk. Üstelik hizmetimiz oluştururken de minimum düzeyde kod yazmış ve yapılandırma işlerimizi tamamen app.config dosyası üzerinden gerçekleştirmiştik. Pek çok WCF senaryosunda bu şekilde statik olarak yapılandırılmış hizmetler biz yazılım geliştiricilerin işini görse de, benim gibi tüm sürece hakim olmak isteyen bir insansanız ya da dinamik olarak WCF hizmetleri sunmanızı gerektiren iş mantıklarınız bulunuyorsa şüphesiz ki elinizi biraz koda bulaştırmanız gerekecektir.

WCF’e Giriş

   .Net framework 3.0 ile hayatımızın bir parçası olan Windows Communication Foundation (WCF) hakkında yazmayı düşündüğün makalelerden bu ilkinde öncelikle birlikte WCF hizmetlerine ısınmamızı hedefliyorum, hedefim sizleri fazla da yormadan kolayca nasıl bir WCF hizmeti oluşturabileceğinizi paylaşmak.

7 Mart 2012 Çarşamba

10 başlıkta kentsel dönüşüm

Yasa son dönemeçte, yakında yıkım başlayacak. Ancak yasanın tam anlaşılmaması vatandaşı tedirgin ediyor.
Ülke genelinde 10 milyon konutun yıkılmasını kolaylaştıracak olan yasa taslağı tamamlanıp Meclis İnceleme Komisyonu'na ulaştırıldı. Komisyon incelemelerini tamamladıktan sonra tasarıyı milletvekillerinin onayını almak için meclise gönderecek. Tasarının meclisin onayını almasından sonra ülke genelinde önceden tespitleri yapılmış risk arz eden binaların yıkımı ve güçlendirilmesi için start verilecek.

Linq aracılılığıyla basit bir DRY (don't repeat yourself) yöntemi


Programlama dünyasında aynı veya benzer amacı taşıyan kod bloklarının uygulamanızın farklı yerlerinde defalarca yer alması istenen bir durum değildir (don't repeat yourself).

3 Mart 2012 Cumartesi

web.config controls add

Uygulama geliştirirken kendinize ait basecontroller yazmışsınızdır ve hangi sayfada kullanacaksınız mutlaka sayfa bu kontrolleri register etmeniz gerekir. Yada AjaxControlToolKit’i kullanıyorsunuzdur ve yine hangi sayfa kullanacak iseniz yine bu dll i sayfada register etmeniz gerekir. Tabi bu tanımlamayı web.config üzerinde yapmamış iseniz. Her sayfada register etmek yerine web.config te Pages nod ‘unda bir kere register eder iseniz uygulamanıza eklediğiniz her sayfada artık ekli olarak gelecektir. Bunun için web.configte aşağıdaki düzeltmeyi yapmanız gerekmektedir.

2 Mart 2012 Cuma

Visual Studio Ve IIS Olmadan Asp.Net Projesi Çalıştırma

Son günlerde google`ın web ile ilgili kaynaklarını gezerken ilginç bir program gibi birşey buldum. Aslında program denemez ama çok güzel birşey. Bu program ile iis ve visual studio olmayan bir bilgisayarda asp.net projesini çalıştırabiliyoruz. Duyunca hemen denedim ve gayet hoşuma gitti. Ayrıca visual studio kadar yavaşta değil. Visaul studio`nun uzunca sürede açtığı siteyi çok kısa sürede açabiliyor. 
Şimdi ise nasıl kullanıldığını anlatayım.
Öncelikle buradan kullanmamız gereken programı indiriyoruz. Yaklaşık 850 kb boyutunda küçük bir program. Ayrıca bu program hakkında google`ın kendi sayfasından da bilgi alabilirsiniz.

İndirtikten sonra ise çalıştırmak istediğiniz asp.net projesinin dizinine bu simgeyi atıp çalıştırıyoruz. Çalıştırdıktan sonra sağ alt köşede tıpkı visaul studio`da web projesi çalıştırdığımız gibi bir simge çıkıyor.
visual_Studio_iis_olmadan_site_calistirmaBu simge üzerinde sağa tıkladığımızda tıpkı resimdeki gibi bir ekran çıkıyor ve buradan çalıştırmak istediğimiz browserı seçip projemizi çalıştırıyoruz. 
Ununtmamalıyız ki programı çalıştırırken, açmak istediğimiz web projesi dizinine atıp çalıştırmamız gerekir. Kısacası program bulunduğu dizindeki web projesini açıyor. Eğer bulunduğu ortamda web dosyası olmadan çalıştırırsak program uyarı veriyor ve çalışmıyor. 
Artık iis ve visual studio olmadan istediğimiz bilgisayarda rahatlıkla web projelerimizi açabiliriz.
İyi Çalışmalar!





Kaynak: http://mehmetduran.com/Blog.aspx/Makale/Visual-Studio-ve-IIS-Olmadan-Asp-net-Projesi-Calistirma/39

1 Mart 2012 Perşembe

Bedava Microsoft Flight indirmeye sunuldu!

Microsoft'un PC'ye özel uçuş simülasyonu oyunu Microsoft Flight, indirmeye sunuldu. 29 Şubat'ta yayınlanması beklenen ücretsiz oyun, birkaç saat erken olarak hizmete açıldı ve Xbox.com'un PC bölümünden indirilebiliyor.

Oyunu yükleyebilmek için öncelikle Games for Windows Live istemci yazılımını yüklemeniz gerekiyor. Bunu yaptıktan sonra 1.43GBboyutundaki oyunu indirebiliyor ve ICON A5 adlı deneysel uçakla (yukarıdaki) Hawaii adasının üzerinde uçabiliyor, bir takım görevleri yerine getirebiliyorsunuz.

Oyunda farklı uçakları belirli bir ücret karşılığında satın alabiliyorsunuz. İkinci Dünya Savaşı uçağı P-51 Mustang 7.99 dolar karşılığında indirilebilirken, tek pervaneli The Maule M-7-260C'yi 14.99 dolar karşılığında edinebiliyorsunuz. "Hawaiian Adventure Pack" adındaki paket için ise 19.99 doları gözden çıkarmanız gerekiyor. Önümüzdeki aylarda oyuna daha fazla indirilebilir içerik (DLC) eklenmesi bekleniyor.


Kaynak: http://www.chip.com.tr/konu/bedava-microsoft-flight-indirmeye-sunuldu_32292.html

Juice ui

Juice UI is an open-source collection of WebForms components that brings jQuery UI Widgets to your project with ease

http://juiceui.com/

En iyi jQuery Grid bileşenleri

Her projede verilerin ekrana tablo şeklinde döküldüğü sayfalar vardır. Bu tablolara (datagrid) özellikler eklemek son kullanıcı açısında hayata inanılmaz kolaylaştırır. Peki tablolara eklenebilecek olan bu özellikler neler olabilir ?

Jquery için Veri Tablosu Eklentileri (Datagrid Plugins)


Üzerinde çalıştığım bir proje sayesinde JQuery kütüphanesi ile epeyce bir haşır neşir oldum, bu sıralar. Pek yakında kendi yazdığım pull-down menu yapısını da Eskiz Defteri’nde paylaşıyor olacağım. Ama öncesinde sizler için derlediğim JQuery kütüphanesi ile yazılmış veri tablosu (data-grid) eklentileri. Arayüz tasarımı yapan hele hele yönetim panelleri tasarlayacak olan herkesin okumasında yarar var.