15 Nisan 2015 Çarşamba

SSL Certificate export- import

Eğer kurulu bir ssl sertifikanız varsa ve bunu bir başka sunucuda kullanmak istiyorsanız; kurulu olan sunucu  üzerinde export edip, ssl sertifikası olmayan sunucuda da import ederek kullanabilirsiniz.
Öncelikle sertifikanın kurulu olduğu sunucu için işlemlerimizi anlatacağım;
(export ssl certificate)
start–> Run–> mmc
File–>Add or Remove Snap-Ins
Açılan pencerede Certificates seçilip ekleme işlemi yapılır.
Gelen ekranda “Computer Account” seçilir, İkinci ekrandna “Local Computer” ve “finish” butonuna tıklanır.
Tamam tuşunuda tıkladıktan sonra sertikamız ilk açtığımız  console ekranına düşer…
Ceritifcates(local computer) –>Personal–>Certificates seçilip sağ alana gelen imzalı *.domain.com sertifikamız üzerina sağ tıklayıp, “All Task”–>  “Export” seçilir.
private key; “yes, ezport private key” seçilir, certificate export wizard; “include all  certificates in certiticate path possible” seçilip import esnasında eşleme için kullanacağınız şifreyi belirleyip, kayıt dizinini seçip ezport işlemini tamamlarız.
Şimdi de sertifikayı kurmak istediğimiz sunucudaki işlemleri anlatacağım;
(import ssl certificate)
export ettiğimiz .pfx uzantılı sertifika dosyamızı bu sunucuya taşıyoruz.
start–> Run–> mmc
File–>Add or Remove Snap-Ins
Açılan pencerede Certificates seçilip ekleme işlemi yapılır.
Gelen ekranda “Computer Account” seçilir, İkinci ekrandna “Local Computer” ve “finish” butonuna tıklanır.
Certificates(Local Computer) altındaki personal klasörüne sağ tıklanır, “All Task” –> “Import”
ve taşıdığımız sertifika dosyası seçilir.
Export ederken girdiğimiz şifre girilerek import işlemine izin verilir.
Certificate store sekmesinde, “automatically select the certificate store based on the type pf certificate” seçilerek  devam edilir.
Artık Sertifikamız bu sunucuda da geçerli.

21 Ekim 2014 Salı

Enum casting

 public enum SocialType
        {
            None=0,
            Facebook=1,
            Twitter=2,
            Instagram=3,
            Google=4
        }
       
        public static byte GetSocialType(string type)
        {
            var test = (SocialType)Enum.Parse(typeof(SocialType), type);
            return (byte)test;
        }

21 Şubat 2014 Cuma

Visual Studio Açmadan cs uzantılı dosyaları çalıştırmak.

Bir c# ile yazdığınız bir console programını Visual Studio açmadan çalıştırabilmek.

public class Program{

public static void Main(){

System.Console.WriteLine("Selam kullanıcı, naber?");
System.Console.ReadKey();
}
}

örnek olarak “Selam kullanıcı, naber?” yazacak bu code çalıştığında console'a, kodu çalıştırabilmek için cmd.exe (kısa yoldan: ctrl+r >>“cmd”>> run)

C:\Windows\Microsoft.NET\Framework\v4.0.30319> csc /t:exe /out:[çıktı] [yazdığınız cs dosyası]


Programınız oluşmuş durumda şuan çalıştırmak için cmd promtpta hangi dizinde olduğunuzun önemi yok aşağıdaki gibi yazmanız yeterli.

C:\>start [çıktı]


14 Şubat 2014 Cuma

ActionFilterAttribute Methods

ActionFilterAttributes Methods:
Filtre bir attribute oluşturmak için ActionFilterAttribute sınıfından bir Attribute türetmeniz gerekiyor.
ActionFilterAttribute sınıfının 2 methodu bunuyor duruma göre override edilmesi gereken bunlar:
-OnActionExecuted()
-OnActionExecuting()
OnActionExecuted:
Attribute’ün kullanıldığı methodaki eylemler gerçekleştikten sonra çağrılır. Bu method çağrılırken HttpActionExecutedContext(Actionları temsil eden http çalıştırıldı context’tidir.) türünde bir parametre alır.
public virtual void OnActionExecuted(HttpActionExecutedContext actionExecutedContext)
OnActionExecuting:
public virtual void OnActionExecuting(HttpActionContext actionContext)
Action gerçekleştireceği eylemleri gerçekleştirmeden önce çağrılır.
HttpActionContext türünde bir actionContext nesnesi alır. Bu nesne Çalışmakta olan Action’ın bilgilerini barındırır.
Bu Class’la tanışmam ve kullandığım yerler:
İlk olarak karşılaştığım sorunu anlatayım Internet Explorerde yaptığım facebook uygulamalarının çalışabilmesi için kullanmam gereken P3P ile ilgili bunu htmlde her sayfaya eklemem gerekiyordu bunun yerine bunu nasıl daha hızlı ve effective yapabilirim diye ataştırırken aşağıdaki örneği buldum.
using System.Web;
/// <summary>
/// Privacy Preferences Project (P3P) serve a compact policy (a “p3p” HTTP header) for all requests
/// P3P provides a standard way for Web sites to communicate about their practices around the collection,
/// use, and distribution of personal information. It’s a machine-readable privacy policy that can be
/// automatically fetched and viewed by users, and it can be tailored to fit your company’s specific policies.
/// </summary>
/// <remarks>
/// More info http://www.oreillynet.com/lpt/a/1554
/// </remarks>
using System.Web.Mvc;
public class P3PAttribute : ActionFilterAttribute
{
/// <summary>
/// On Action Executing add a compact policy “p3p” HTTP header
/// </summary>
/// <param name=“filterContext”></param>
public override void OnActionExecuting(ActionExecutingContextfilterContext)
{
HttpContext.Current.Response.AddHeader(“p3p”“CP=\”IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT\”");
base.OnActionExecuting(filterContext);
}
}
Daha sonra bu login olup olmadığımı kontrol edebileceğim bir filtre yazabilir miyim diye düşündüm login olduktan sonra görüntülemem gereken sayfaların ActionResult’lardan önce gerekli attribute’ü yazmam yetti.
using SosyalUrun.Core;
using System.Web;
using System.Web.Mvc;
namespace SosyalUrun.Management.Helper
{
public classADMINAttribute:ActionFilterAttribute
{
public override void OnActionExecuting(ActionExecutingContextfilterContext)
{
if (SessionHelper.GetSession(SessionHelper.AdminSession==null)
{
HttpContext.Current.Response.Redirect(“/Manage/”);
}
base.OnActionExecuting(filterContext);
}
}
}
Attribute kullanımı:
i- Controller’ınız içindeki bütün ActionResultlar için geçerli olsun istiyorsanız aşağıdaki şekiliyle kullanabilirsiniz.
[P3P]
public class PageController : Controller
{
}
ii-Controller içindeki Belli ActionResultlar için geçerli olsun istiyorsanız aşağıdaki gibi de kullanabilirsiniz.
public classPageController : Controller
{
[P3P]
public ActionResult Index()
{
return View();
}
}

22 Ağustos 2013 Perşembe

insufficient memory to continue the execution of the program. (mscorlib)

SQL serverda açtığınız Database'de 50 MB'dan büyük bir script çalıştırmak istediğinizde alacağınız hata tam olarak başlıktaki gibidir. Bu hatanın çözümü de oldukça basit:

Developer Command Prompt VS 'yi açarak scriptinizi çalıştırmalısınız.

osql -S <SQL Server IP/Name> -d <DB Name> -E -i <sql script file path>

Please configure as below:
 -S ServerAdı/ServerIp
 -d Database Adı

Eğer ki bunu uzak bir makinede yapmanız gerekiyorsa kullanıcı adı ve şifresinizi de yazmalısınız. O zaman da aşağıdaki şekliyle kullanabilirsiniz:

sqlcmd -S <SQL Server IP/Adı> -d <Database Adı> -U <Kullanıcı Adı> -P <Şifre> -i <Dosyanın Path>

Hani lazım olursa diye diğer sqlcmd komutlarıda aşağıdaki gibidir.

sqlcmd 
   -a packet_size
   -A (dedicated administrator connection)
   -b (terminate batch job if there is an error)
   -c batch_terminator
   -C (trust the server certificate)
   -d db_name
   -e (echo input)
   -E (use trusted connection)
   -f codepage | i:codepage[,o:codepage] | o:codepage[,i:codepage]
   -h rows_per_header
   -H workstation_name
   -i input_file
   -I (enable quoted identifiers)
   -k[1 | 2] (remove or replace control characters)
   -K application_intent
   -l login_timeout
   -L[c] (list servers, optional clean output)
   -m error_level
   -M multisubnet_failover
   -N (encrypt connection)
   -o output_file
   -p[1] (print statistics, optional colon format)
   -P password
   -q "cmdline query"
   -Q "cmdline query" (and exit)
   -r[0 | 1] (msgs to stderr)
   -R (use client regional settings)
   -s col_separator
   -S [protocol:]server[\instance_name][,port]
   -t query_timeout
   -u (unicode output file)
   -U login_id
   -v var = "value"
   -V error_severity_level
   -w column_width
   -W (remove trailing spaces)
   -x (disable variable substitution)
   -X[1] (disable commands, startup script, environment variables and optional exit)
   -y variable_length_type_display_width
   -Y fixed_length_type_display_width
   -z new_password 
   -Z new_password (and exit)

   -? (usage)

3 Temmuz 2013 Çarşamba

Programlama da Notasyonlar

Programlama da Notasyonlar 

Notasyon Nedir?

Kodlama yaparken notasyonlar programların daha anlaşılır olmasını sağlayan ve kodun okunulabilirlini arttıran yazım şekilleridir. Aynı zamanda programlara genel bir standart da kazandırır.

Macar Notasyonu (Hungarian Notation)

Önce değişkeni türü arkasından değişkenin işlevine göre isimlenirilme yöntemidir.

Örnek olarak:
TextBox txtkullaniciadi
double drakam

Deve Notasyonu (Camel Notation)

Değişken isimlendirilirken ilk kelime küçük harfle başlar ve ardından gelen bütün kelimeler büyük harfle başlar. Javascript/jQuery de varsıyılan dil olduğu söyleniyor.
Perl programlama diliyle yaygınlaşan bu notasyon, Medya çalışmaları ve dilbilgidi ayrıca Oxford İngilizce sözlük uygulamalarında kullanılan notasyonun esas adı “Media Capitals” dır.

Örnek olarak:
TextBox txtKullaniciAdi
int telefonNumarasi

Paskal Notasyonu (Pascal Notation)

Genellikle C# dilinde varsayılan notasyon olan pascal notasyonunun kuralı değişken isimlendirilirken kullanılan bütün kelimelerin büyük harfle başlaması gerekmektedir.

Örnek olarak:
TextBox, DropDownList,
GetUserInformation()
int UserId
double UsersLikePercents


Altıçizili Notasyonu (Underscore Notation)

Bu notasyonda değişkenler tanımlanırken küçük harfle başlar ve birden çok kelimeden oluşuyorsa değişken ismi, kelimeler arasına “_” konur.

Örnek olarak:
int user_age
string content_title

Büyük Harf Notasyonu (Uppercase Notation)

İsminden de anladığımız gibi değişken tanımlarken bütün harfleri büyük harf yaparız.

String CONTENT
int USERAGE

Charles Simonyi




Uzaya giden 2. macar aynı zamanda Charles Simonyi Microsoft'un “Yazılım Grubu Başkanı” olarak Microsoft Office Uygulamalarının yaratılmasında önemli rol oynamış bir Macar-Amerikan Yazılımcıdır.


Yaşamı:
Simonyi Budapeşte, Macaristan'da, Budapeşte Teknik Üniversitesi'nde elektrik mühendisliği profesörü olan Simonyi Károly'in oğlu olarak doğdu. Lisedeyken gözlemci olarak bir bilgisayar laboratuarında Sovyet Ural II adlı anabilgisayarı üzerinde çalışmıştır. O sırda bilgisayarlara karşı bir ilgisi oluşmuş ve laboratuardaki mühendislerden programlamayı öğrenmiştir. Zamanla okulu bırakıp derleyiciler yazmayı öğrendi ve bunlardan birini bir devlet dairesine satmıştır. Yine kendi yaptığı bir derleyiciyi Danimarkalı ticari bir heyetin üyelerine de sunmuştur.
1966 yılında Denmark's A/S Regnecentralen adlı bir şirket tarafından işe alınmıştır.1968 de Amerika Birleşik Devletleri Kaliforniya Üniversitesi'ne gitmiş ve Matematik ve İstatistik Mühendisliği'ni bitirmiştir.
Sonra Lisansüstü çalışması için Stanford Üniversitesi'ne gitmiş ve Xerox PARC tarafından işe alınıp en verimli döneminde Alan Kay, Butler Lampson ve Robert Metcalfe gibi Xerox Alto'nun geliştiricileri ile birlikte çalışmıştır.Lampson ile birlikte ilk WYSIWYG belge hazırlama programını geliştirerek 1974 yılında faaliyete geçmiştir. 1977'de “Meta programming” ismini verdiği bir yazılım proje yönetimi tekniği ile ilgili bir tez ile Stanford'dan doktorasını aldı. 1981 yılına kadar PARC'da kaldı.


Microsoft:
Metcalfe'nin önerisi ile doğrudan Bill Gates ile Microsoft’ta çalışmaya başladı. Firmada en karlı ürünler olan Word ve Excel'in geliştirilmesinde önemli rol aldı. Özellikle de Excel Tablo Sistemleri'nde (Multiplan, Spreadsheet, Electronic Paper). Simonyi bu sistemleri “Gelir Bombası” olarak görüyordu. Bu strateji ile taşınabilir dosya sistemlerini oluşturmuş oldu. Bu sistemin MS-Dos sisteminde uygulanmasında sorunlar yaşansada sistemin geliştirilmesine devam edildi. Projenin geliştirilmesinde olumsuzluklar yaşatan bu durumdan rahatsız olan Simonyi, Xerox ta öğrendiği Nesne Tabanlı Programlama tekniklerini Microsoft'a tanıttı. Değişkenlerin isimlendirilmesini hedefleyen bir yöntem olan Macar Notasyonu'nu geliştirmiştir. Aslında bu sistem doktora tezinin standartlarıydı. Macar Notasyonu Microsoft'a oldukça yaygın şekilde kullanılmıştır.
Devamı için : http://tr.wikipedia.org/wiki/Charles_Simonyi


26 Haziran 2013 Çarşamba

LightSwitch

LightSwitch



Bu yazıda uzun kodlama süreçlerini kısaltan bir Microsoft ürünü olan LightSwitch'den söz edeceğiz.

Küçük veri giriş uygulamaları için çok kullanışlı olan bu yöntem, gerçekten kullanıcı-deneğimi yüksek, çekirdeği çok-katmanlı mimari üzerine oturtulmuş iş uygulamaları geliştirmemize imkan veriyor.




Lightswitch beta-1 'in genel anatomisi

Sunum Katmanı:
LightSwitch'de sunum katmanı olduğu gibi silverlight 4 üzerinde kuruludur. Bu nedenle kullanıcı arayüzleri oldukça zengindir. Sunum katmanı otomatik olarak istediğiniz amaç için oluşturulur. Ayrıca değişik temalarla sunum katmanını geliştirebilirsiniz.
Mantıksal Katman:
Bu katman iş mantığının yürütüldüğü katmandır. Validasyonların bir kısmnı, kullanıcıdan alınan verilerinin işlenerek veri tabanına işlenmesi işlemleri bu katmanda yer alır. Bileşenlerin arasında Silverlight uygulkamasını barındıran ASP.NET, veri modellerini içeren Entity Framework ve model ile veritabanı arasında veri alış verişini sağlayan WCF RIA servisleri bulunur.
Veri Katmanı:
Veri katmanı, veri tabanıyla iletişimin sağlandığı katmandır.

LightSwitch kullanılarak bir proje oluşturma
Visual Studio'yu açarak yeni proje diyoruz ya da File=>New Project ardından sol menuden LightSwitch'i seçerek yeni bir LightSwitch projesi açıyoruz.



Uygulamanın hangi dilde olacağına karar verdikten sonra projeyi oluşturduktan sonra karşımıza çıkan ekran bize sadece 2 seçenek sunuyor bu iki seçeneği ya yeni bir tablo oluşturacağız ya da Data Source'a bir external ekleyeceğiz.
DataSource dosyasının önemi:

Data Source dediğimiz dosya bizim veri katmanı diye anlattığımız katman olup burda veri tabanı bağlantımınızı yaparız.

  • DataSource'a sağ tıklayarak Add Data Source diyerek gelen ekrandan Database bağlantını yapabiliriz.
  • DataSource'a sağ tıkladığımızda Add table dersek de kendi tablolarımızı ekleyebiliriz.

Oluşturduğumuz bu projeye veritabanını ekledikten sonra Datasource'un içince Connection açılan DB'nin tablolarını görmüş oluyoruz. Bu tablolardan herhangi birine çift tıkladığımızda karşımıza gelen ekran aşağıdaki gibi olup bu ekran bize tablonun özelliklerini gösteriyor. Tablonun üst kısmındaki menüde:

-Relationship: tablolar arasında ilişki ekleyebilmek için
-ComputedProperty: yeni bir kolon ve özellik ekleyebilmek için
-Query : özel bir duruma uygun verileri alabilmeyi düzenlemek için.
-Screen :Sunum katmanını oluşturmak ve düzenlemek içindir.

Sceen:
Bu bölümde karşılaşacağımız ekran aşağıdaki gibidir . Bu ekranda

  • Tamplate seçmemizi sağlar.
  • Tablo seçmemizi sağlıyor
Screenleri düzenlemek için onlara çift tıklamamız yeterli. Burada TextBox otomatik olarak oluşturulmuş input türlerini aşağıdaki gibi değiştirebiliyoruz. Örnek olarak Password kolonunun özelliklerindeki Control type'ı Custom control olarak ayarladıktan sonra custom control bölümünden türü belirleyerek düzenleyebiliyoruz.


Oluşturulan bu basit admin panelleri Debug ederken silverlight kullanıldığı için küçük bir pencere olarak olduğunu görebiliyoruz ancak.publish ederken kullanacağımız alanı seçebiliyoruz aşağıdaki gibi:
LightSwitch'de yapılmış bir projenin destop görüntüsü: