24 Ocak 2014 Cuma

REST vs SOAP

Bu iki teknolojinin en temel farklılıkları SOAP’ın veri isteklerini HTTP data kısmında halletmesi. RESTful web servislerinde ise istekler  HTTP header kısmında halledilir. Bunu sağlamak için HTTP protokolunde bulunan POST,PUT,GET,DELETE parametreleri kullanır.  Bu da RESTful web servislerinin en önemli özelliğidir.
Genel olarak farkları ;
·         REST daha az trafik harcar, Platform ve dil (java ile .net haberleşebilir)  bağımsızdır.
·         Veriler REST’te işlenmeden de okunabilirliği yüksek olur.
·         SOAP ‘ta WSDL’den otomatik proxy class oluşturulup , client uygulamaya kolay entegre edilebilir.
·         REST’te client uygulamaya entegre etmek için proxy class yazılması gerekir.
·         SOAP tip korumalıdır. SOAP headerda belirtilen şekilde veri gelir.
·         REST’da veri tanımlaması yoktur.
·         SOAP alt yapısında xml kullanır(JSON veri gömülebilir).
·         REST verileri xml veya JSON olarak gönderebilir.
·         REST, veritabanına uzaktan erişim gibi çalışır. SOAP ise uzaktan metot çağırma(RPC) ilkesine dayanır.
·         REST’i uygulamak için url etkin şekilde kullanılır ve url tasarımı yapılması gerekir.
·         SOAP’ta ise uzaktan metot çağrıma tekniği kullanılır.

REST
SOAP
Dönüş değerini belirleyebildiğimiz için, bu değer çok küçük boyutta olabilir.
Dönüş değeri XML tipinde olduğu için boyutu daha büyük.
Client tarafında cache'lenebilir.
Cient tarafında cache özelliği yok.
Twitter, Facebook ve Google REST kullanıyor.
Google 2006'dan sonra kullanmaktan vazgeçmiş.
Uygulaması ve öğrenmesi çok kolay.
Standartlarını öğrenmesi zor.
Stateless olduğu için scale etmesi kolay.
Scale etmesi zor.
Her MIME tipinde dönüş yapabilir.
Sadece XML döner.
Mobile playformlar için iOS ve Android tarafından destekleniyor.
Mobile platformlarda tüm özellikleriyle desteklenmiyor.
Async desteği yok.
Async desteği var.
Session desteği yok.
Session desteği var.
Standart mesajlaşma sistemi içermediğinden dolayı iletişim hatalarında zorluk çıkarabilir.
Standart mesajlaşma sistemi olduğundan otomatik olarak başarısız bir isteği tekrar deneyebilir.
Kullanıcı doğrulama sistemi zahmetli.
Session desteğiyle birlikte, daha kolay bir kullanıcı doğrulama sistemi var.
Kısıtlı kaynak ve hızlı kod geliştirme için uygun.
Yüksek güvenlik ve büyük data transferleri için uygun.
 

Sql Server Üzerindeki Tüm Veritabanlarında Sorgu Çalıştırmak

Aşağıdaki örnek size yardımcı olacaktır.
Kolay gelsin.

CREATE TABLE ##tempTable
(
      DatabaseName VARCHAR(64),
      ObjectName VARCHAR(128),
      ObjectKind VARCHAR(128)
)
 
EXEC sp_Msforeachdb "USE [?];
      INSERT ##tempTable (DatabaseName, ObjectName, ObjectKind)
      SELECT db_name(), t1.name, t1.xtype
      FROM sysobjects t1"
 
SELECT  *
FROM    ##tempTable
 
DROP TABLE ##tempTable

Angular.js için Ücretsiz Kaynak

AngularJS'ye başlangıç yapmak için güzel bir ücretsiz kaynak: http://www.egghead.io

CLR Fonksiyon DLL'leri Nerede Tutulur?

CLR DLL'ler Sql Server'a yüklendikten sonra dosya olarak değil, veritabanı içerisinde bir obje olarak tutulduğundan dolayı sadece yükleme aşamasında Sql Server'ın görebileceği bir yerde durması yeterli, daha sonra kendisini silebilirsiniz.

Kaynaklar:
CLR in a cluster is no different than in a stand-alone instance. When you create a CLR object in SQL Server, it's in the DB - not the file system. The dll's for CLR assemblies in SQL Server are not loaded from the file-system, but from the database itself.
http://dbaspot.com/ms-sqlserver/218767-implementing-clr-cluster-print.html

When using CLR the placement of the dll is only important while loading the CLR assembly. Once this hace succesfully done you can remove the dll. So even on a cluster it makes no difference if you use a local drive or one of the shared cluster drives.
http://www.sqlservercentral.com/Forums/Topic395782-386-1.aspx#bm395787

VideoConverter.js

Ffmpeg kütüphanesini Javascript'e çevirip, video çevirme ve kesme işlerini javascript ile halletmişler. Enteresan bir proje.

http://github.com/bgrins/videoconverter.js

MVC Teknolojileri

ASP.NET MVC View Engine
Uygulamamızda geliştirdiğimiz önyüzün (.aspx, .cshtml) dosyalarını yorumlar. Varsayılan olarak Razor geliyo fakat MVC ile .aspx dosyalarını kullanmak mümkün bunun için varsayılan viewengine olarak WebFormViewEngine seçilmesi gerekiyor ama önerilmiyor. Kendi viewengine kodunuzu yazarak .isoft uzantılı bir dosyanın web’te nasıl görüntüleneceğini belirtebilirsiniz.
1.       System.Web.Razor
CSS Framework
Uygulamamızdaki önyüzü geliştirirken, görselin standart olması ve hızlı bir şekilde geliştirilebilmesi için kullandığımız CSS kütüphaneleri bu kategoride. Şu anlık popüler olan kütüphane Twitter’daki çalışanlar tarafından geliştirilen Bootstrap. Bunun yanında bir kaç alternatif daha var fakat bunlar genellikle Bootstrap altyapısını kullanıyorlar.
1.       Bootstrap
2.       Pixelkit
ORM (Object-Relational Mapping)
Uygulamamızda iş katmanı ile veri katmanı arasındaki bağlantıları yapmak ve bu katmanı projeden soyutlamak amaçlı kullanabileceğimiz yapılara ORM diyoruz. ORM’lerin avantajları arasında katmanların birbirinden ayrılmasını kolaylaştırması, tekrar eden kodu minimuma indirmesi, kolay kullanılması ve kendi içinde yaptığı cache mekanizmaları var. Bu kategoride iki tane önemli oyuncu var.
1.       Entity Framework
2.       NHibernate
Javascript Framework for Data
Uygulamamızda iş katmanı ile sunum katmanı arasındaki bağlantıları kurmak ve network trafiğini minimuma indirip önyüzdeki veri işleme zorluğunu azaltmak için kullandığımız kütüphaneler bu kategoride yer alıyor. Özellikle RESTfull servislerle çalışan websiteleri üzerinde önemli bir yer tutuyorlar.
1.       AngularJS
2.       BackboneJS
3.       KnockoutJS
4.       EmberJS
Javascript Frameworks
Javascript ile uzun bir şekilde yapacağımız işleri bizim için kısaltan kullanışlı frameworkler.
1.       jQuery
2.       MooTools
3.       Underscore.js
Log Framework
Uygulamamızdaki kayıt tutma işini bizler için yapan, bu işi kolaylaştıran kütüphaneler.
1.       NLog
2.       log4net
Client Side Programming Languages
Aslında bu kategorinin adı tam doğru olmasa da kullanıcı tarafında javascript uygulamalar geliştirmek için yardımcı programlama dillerine ya da sadece scriptlere ihtiyacımız oluyor. Bunun sebebi javascript ile düzgün bir class yapısının oluşturulmasının zor olması. Bu kategoride de kısıtlı alternatifimiz var.
1.       TypeScript
2.       Dart
3.       CoffeeScript
UI Tools
Önyüz geliştirirken kullanılabilecek hazır tablolar, raporlar gibi MVC’nin bize sunmadığı hazır kontroller sunan firmalar.
1.       Telerik
2.       DevExpress
3.       Infragistics
Client-Server Frameworks
Aslında gerçek zamanlı uygulamalar yazmak istediğinizde kullanmanız gereken bu kütüphanelere en bilindik örnek nodejs. Nodejs’yi ne zaman kullanmanız gerektiğiyle ilgili en sade tanım: Aynı anda çok fazla sayıda ve çok az CPU kullanan istekleri karşılamak için kullanabilirsiniz. Sohbet programı, online oyunlar gibi çözümlerde kullanılabilir.
1.       node.js
Test Frameworks
Projemizde yazdığımız kodları test etmek için aşağıdaki kütüphaneleri kullanabiliriz.
1.       NUnit
2.       NCrunch

Windows 2012 için .Net 3.5 Kurulumu Sırasında Hata Alınması

Windows Server 2012'ye .NET 3.5 kurulumu nun hata vermesi durumunda aşağıdaki komut çalıştırılırsa hatayı düzeltip düzgün bir şekilde kurulumu tamamlayabiliyor.

dism.exe /online /enable-feature /all /featurename:NetFX3 /Source:KAYNAK_KLASOR