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 Ekim 2014 Salı
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ı]
Etiketler:
beginer,
c#,
C# Console,
Visual Studio 2012,
without VS
14 Şubat 2014 Cuma
ActionFilterAttribute Methods
- 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.
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?
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_Simonyi26 Haziran 2013 Çarşamba
LightSwitch
LightSwitch
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.
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ü:
Kaydol:
Kayıtlar (Atom)



