arşiv

0, 2016 için arşiv

YAGNI: You ain’t gonna need it

Pazar, 25 Eyl 2016 yorum yok

YAGNI (Buna ihtiyacın olmayacak)

Eğer bir API yazmıyorsanız ileride şuna da ihtiyacım olur diyerek hayali kodlar üretmeyin. Bu kodlar test süreçlerini de düşünürsek size tahmininizden fazla zaman kaybettirecektir. Ayrıca programınız olması gerekenden daha karmaşık hale gelecektir. Bundan dolayı gerçekten ihtiyacınız olana dek programınıza yeni özellikler eklemeyin.

Kaynak: http://fehmicansaglam.net/temel-programlama-ilkeleri/
Categories: Genel Tags:

DRY: Don’t Repeat Yourself

Pazar, 25 Eyl 2016 yorum yok

DRY (Kendizi tekrar etmeyin)

Eğer aynı kodu ikiden fazla yerde tekrarlıyorsanız durup bir düşünün. Mümkünse tekrar eden kodları içeren fonksiyonlar/metotlar oluşturun ve başkalarının da kolayca kullanabilmesi için bu fonksiyonları/metotları uygun şekilde belgelendirin.

Categories: Genel Tags:

Online Pdf, Excel v.s. Download

Çarşamba, 21 Eyl 2016 yorum yok
<html>
<head>
	<meta http-equiv="content-type" content="text/html; charset=UTF-8">
	<meta name="robots" content="noindex, nofollow">
	<meta name="googlebot" content="noindex, nofollow">
	<script type="text/javascript" src="http://code.jquery.com/jquery-2.1.3.js"></script>
	<link rel="stylesheet" type="text/css" href="/css/result-light.css">
	<script type="text/javascript" src="http://www.cloudformatter.com/Resources/Pages/CSS2Pdf/Script/xepOnline.jqPlugin.js"></script>
	<style type="text/css"></style>
	<title>@cloudformatter template</title>
</head>
<body>
  <div id="buttons">
	  <button onclick="return xepOnline.Formatter.Format('JSFiddle', {render:'download'})">PDF</button>
	  <button onclick="return xepOnline.Formatter.Format('JSFiddle', {render:'download', mimeType:'application/postscript'})">Postscript</button>
	  <button onclick="return xepOnline.Formatter.Format('JSFiddle', {render:'download', mimeType:'application/vnd.ms-xpsdocument'})">XPS</button>
	  <button onclick="return xepOnline.Formatter.Format('JSFiddle', {render:'embed', mimeType:'image/svg+xml'})">SVG</button>
	  <button onclick="return xepOnline.Formatter.Format('JSFiddle', {render:'embed', mimeType:'image/png'})">PNG @120dpi</button>
	  <button onclick="return xepOnline.Formatter.Format('JSFiddle', {render:'embed', mimeType:'image/jpg', resolution:'60'})">JPG @60dpi</button>
	  <button onclick="return xepOnline.Formatter.Format('JSFiddle', {render:'embed', mimeType:'image/gif', resolution:'30'})">GIF @30dpi</button>
  </div>
	<hr>
	<div id="JSFiddle">
		<!-- Insert your document here -->
		<header style="display:none;margin-top:20px;"><p>Add your header</p></header>     
		<footer style="display:none"><p>Add your header</p></footer>  
		<h1>Create a Document Here</h1>
	 </div>
</body>
</html>

http://www.cloudformatter.com/

Categories: JavaScript, jQuery Tags: ,

sealed Keyword’ü Nedir? Ne İşe Yarar?

Perşembe, 08 Eyl 2016 yorum yok

sealed keywordü bir class ve metod modifier(niteleyici)dır. Eğer bir class sealed komutuyla işaretlenmişse o classtan kalıtım yapılamaz. Yani o class başka bir sınıfın base classı olamaz. Ayriyetten bir metod sealed komutuyla işaretleniyorsa o metodtan türetilen sınıfların ilgili metodu override etmeleri önlenir.

C#'ta sealed Keyword'ü

Kaynak: http://www.gencayyildiz.com/blog/cta-sealed-keywordu/

Categories: C# Tags:

MVC’de A Potentially Dangerous Request.Form Value Was Detected From The Client Hatas

Çarşamba, 07 Eyl 2016 yorum yok
[ValidateInput(false)]

 

Categories: MVC Tags:

MVC içindeki filtreler

Çarşamba, 07 Eyl 2016 yorum yok

Filter

 Interface

 Default Implementation


 Authorization Filter  IAuthorizationFilter AuthorizeAttribute
 Action Filter  IActionFilter ActionFilterAttribute
 Result Filter  IResultFilter ActionFilterAttribute
 Exception Filter  IExceptionFilter HandleErrorAttribute

Authorization : Diğer filtreler ve Action metodlardan önce çalışmaktadır.Controller ya da Controller içindeki Action metoda erişim kısıtlamak için kullanılır.
Exception : Hata durumlarında çalışan filtredir.
Action : Herhangi bir Controller sınıfında bulunan Action metottan önce ya da sonra çalışır.
Result : Action Result çalıştırılmadan önce ya da çalıştırıldıktan sonra çalışır.

 

Categories: MVC Tags:

MVC Get Attributes

Çarşamba, 07 Eyl 2016 yorum yok
Assembly assembly = Assembly.GetExecutingAssembly();
IEnumerable<Type> types = assembly.GetTypes()
	.Where(
		type =>
			typeof(Controller).IsAssignableFrom(type) &&
			type.Name.Replace("Controller", "") == controllerName)
	.OrderBy(x => x.Name);

foreach (Type cls in types)
{                
	HelpAttribute helpAttribute = Attribute.GetCustomAttribute(cls, typeof(HelpAttribute)) as HelpAttribute;
	url = helpAttribute != null ? helpAttribute.Url : string.Empty;
	........
}

 

Categories: C#, MVC, Reflection Tags: , ,

MVC Get – Controllers, Actions, Attributes and Return Types – 2

Çarşamba, 07 Eyl 2016 yorum yok
Assembly assembly = Assembly.LoadFrom(sAssemblyFileName)
IEnumerable<Type> types = assembly.GetTypes().Where(type => typeof(Controller).IsAssignableFrom(type)).OrderBy(x => x.Name);
foreach (Type cls in types)
{
      list.Add(cls.Name.Replace("Controller", ""));
      IEnumerable<MemberInfo> memberInfo = cls.GetMethods(BindingFlags.Instance | BindingFlags.DeclaredOnly | BindingFlags.Public).Where(m => !m.GetCustomAttributes(typeof(System.Runtime.CompilerServices.CompilerGeneratedAttribute), true).Any()).OrderBy(x => x.Name);
      foreach (MemberInfo method in memberInfo)
      {
           if (method.ReflectedType.IsPublic && !method.IsDefined(typeof(NonActionAttribute)))
           {
                  list.Add("\t" + method.Name.ToString());
           }
      }
}

 

Categories: C#, MVC, Reflection Tags: , ,

MVC Get – Controllers, Actions, Attributes and Return Types

Çarşamba, 07 Eyl 2016 yorum yok
Assembly asm = Assembly.GetAssembly(typeof(MyWebDll.MvcApplication));

var controlleractionlist = asm.GetTypes()
        .Where(type=> typeof(System.Web.Mvc.Controller).IsAssignableFrom(type))
        .SelectMany(type => type.GetMethods(BindingFlags.Instance | BindingFlags.DeclaredOnly | BindingFlags.Public))
        .Where(m => !m.GetCustomAttributes(typeof( System.Runtime.CompilerServices.CompilerGeneratedAttribute), true).Any())
        .Select(x => new {Controller = x.DeclaringType.Name, Action = x.Name, ReturnType = x.ReturnType.Name, Attributes = String.Join(",", x.GetCustomAttributes().Select(a => a.GetType().Name.Replace("Attribute",""))) })
        .OrderBy(x=>x.Controller).ThenBy(x => x.Action).ToList();

 

Categories: C#, MVC, Reflection Tags: , ,

c# Mapping Class

Çarşamba, 07 Eyl 2016 yorum yok
public static class TypeExtensions
{
	public static void MapTo<T, S>(this S source, T target)
	{
		Type sourceType = source.GetType();
		Type targetType = target.GetType();

		var sourceProperties = sourceType.GetProperties();
		var targetProperties = targetType.GetProperties();

		for (int i = 0; i < sourceProperties.Length; i++)
		{
			var currentProperty = sourceProperties[i];
			var targetProperty = targetProperties
				.FirstOrDefault(p => p.Name == currentProperty.Name);
			if (targetProperty != null)
				targetProperty.SetValue(target, currentProperty.GetValue(source, null), null);
		}

	}
 
}

 

Categories: C# Tags:

FileSaver.js

Pazar, 04 Eyl 2016 yorum yok
<script src="FileSaver.js"></script>
var blob = new Blob(["Hello, world!"], {type: "text/plain;charset=utf-8"});
saveAs(blob, "hello world.txt");

Detaylı bilgi ve örneklere https://github.com/eligrey/FileSaver.js sayfasından ulaşabilirsiniz.

Categories: JavaScript Tags:

Javascript base64encode(input)

Cumartesi, 03 Eyl 2016 yorum yok
function base64encode(input) {
	var keyStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
	var output = "";
	var chr1, chr2, chr3, enc1, enc2, enc3, enc4;
	var i = 0;
	input = utf8Encode(input);
	while (i < input.length) {
	  chr1 = input.charCodeAt(i++);
	  chr2 = input.charCodeAt(i++);
	  chr3 = input.charCodeAt(i++);
	  enc1 = chr1 >> 2;
	  enc2 = ((chr1 & 3) << 4) | (chr2 >> 4);
	  enc3 = ((chr2 & 15) << 2) | (chr3 >> 6);
	  enc4 = chr3 & 63;
	  if (isNaN(chr2)) {
		enc3 = enc4 = 64;
	  } else if (isNaN(chr3)) {
		enc4 = 64;
	  }
	  output = output +
			  keyStr.charAt(enc1) + keyStr.charAt(enc2) +
			  keyStr.charAt(enc3) + keyStr.charAt(enc4);
	}
	return output;
}
function utf8Encode(string) {
	string = string.replace(/\x0d\x0a/g, "\x0a");
	var utftext = "";
	for (var n = 0; n < string.length; n++) {
	  var c = string.charCodeAt(n);
	  if (c < 128) {
		utftext += String.fromCharCode(c);
	  }
	  else if ((c > 127) && (c < 2048)) {
		utftext += String.fromCharCode((c >> 6) | 192);
		utftext += String.fromCharCode((c & 63) | 128);
	  }
	  else {
		utftext += String.fromCharCode((c >> 12) | 224);
		utftext += String.fromCharCode(((c >> 6) & 63) | 128);
		utftext += String.fromCharCode((c & 63) | 128);
	  }
	}
	return utftext;
}

 

Categories: JavaScript Tags:

html2canvas

Cumartesi, 03 Eyl 2016 yorum yok

Ekrandaki verilerin "screenshots" almak için kullanılır.

http://html2canvas.hertzen.com/

Categories: JavaScript, jQuery Tags: ,

Export HTML Table to CSV TXT JSON XML SQL XLS DOC PNG PDF

Cumartesi, 03 Eyl 2016 yorum yok

Installation

To save the generated export files on client side, include:

<script type="text/javascript" src="libs/FileSaver/FileSaver.min.js"></script>

To export the table as a PDF file the following includes are required:

<script type="text/javascript" src="libs/jsPDF/jspdf.min.js"></script>
<script type="text/javascript" src="libs/jsPDF-AutoTable/jspdf.plugin.autotable.js"></script>

To export the table in PNG format, you need to include:

<script type="text/javascript" src="libs/html2canvas/html2canvas.min.js"></script>

To generate the export file in the desired format, finally include:

<script type="text/javascript" src="tableExport.min.js"></script>

Please keep this include order.

https://github.com/hhurz/tableExport.jquery.plugin

 

Categories: JavaScript, jQuery Tags: ,

Class To Html Table

Cuma, 02 Eyl 2016 yorum yok

List<T> olan bir veriyi html çıktı olarak hazırlama…

 

devamını oku…

Categories: C#, Reflection Tags: ,

Xml veriyi Class’a Atama

Cuma, 02 Eyl 2016 yorum yok
public static T SetXmlDataToViewModel&amp;lt;T&amp;gt;(T oViewModel, string xmlData)
{
	if (string.IsNullOrEmpty(xmlData))
	{
		return oViewModel;
	}

	XDocument dataXmlDoc = XDocument.Parse(xmlData);

	foreach (var prop in typeof(T).GetProperties())
	{
		if (dataXmlDoc.Descendants().SingleOrDefault(p =&amp;gt; p.Name.LocalName == prop.Name) != null)
			prop.SetValue(oViewModel, Convert.ChangeType(dataXmlDoc.Descendants().SingleOrDefault(p =&amp;gt; p.Name.LocalName == prop.Name).Value, prop.PropertyType));
	}

	return oViewModel;
}

 

Categories: C#, Reflection Tags: ,

ASP.NET Core 1.0 ve ASP.NET’in Geleceği

Perşembe, 01 Eyl 2016 yorum yok

ASP.NET Core yakın zamana kadar ASP.NET 5 ismiyle anılıyordu. Geçtiğimiz haftalarda yayınlanan resmi bir yazı ile artık ASP.NET 5 yerine ASP.NET Core olarak isimlendirileceği belirtildi.

http://devnot.com/2016/asp-net-core-1-0-ve-asp-netin-gelecegi/

https://yazilimda.com/2016/04/asp-net-core-1-0-neler-sunuyor/

https://www.microsoft.com/net/core#windows

 

Categories: Asp.NET Core Tags: