Google Analytics İzleme

24 Ağustos 2012

IIS - Application pool hakkında

IIS 6.0 Application pool
http://www.hakanuzuner.com/index.php/iis-6-0-application-pool-recycle.html

Application Pool Identities
http://learn.iis.net/page.aspx/624/application-pool-identities/

Login failed for user 'IIS APPPOOL\UygulamaAdi yada 'IIS APPPOOL\DefaultAppPool'
http://orhanocal.blogspot.com/2010/01/login-failed-for-user-iis.html

Login failed for user ‘IIS APPPOOLClassic .NET AppPool’
http://blog.igorware.com/login-failed-for-user-iis/

How to Fix Login failed for user 'IIS APPPOOL\ASP.NET v4.0' error in IIS7
http://www.gotknowhow.com/articles/fix-login-failed-for-user-iis-apppool-aspnet-v4-error-iis7

Solve login failed error for IIS APPPOOL\DefaultAppPool
http://blog.dileno.com/archive/200910/solve-login-failed-error-for-iis-apppooldefaultapppool/

23 Ağustos 2012

MVC 3 - Visual Studio 2012'yi yükledikten sonra System.Web.Mvc.ModelClientValidationRule çakışma hatası

Bugün Visual Studio 2012'yi kurdum.
Eski deneme projelerinden birinde eski sürüm Visual Studio 2010 ile açıp, derleme yapınca aşağıdaki gibi hata aldım.


Oluşan hata:

Error 1 The type 'System.Web.Mvc.ModelClientValidationRule' exists in both 'c:\Program Files (x86)\Microsoft ASP.NET\ASP.NET Web Pages\v2.0\Assemblies\System.Web.WebPages.dll' and 'c:\Program Files (x86)\Microsoft ASP.NET\ASP.NET MVC 3\Assemblies\System.Web.Mvc.dll' C:\Users\ishak.kulekci\Desktop\temp7\progressiveenhancement\ProgressiveEnhancement\Models\AccountModels.cs 242 43 ProgressiveEnhancement

Çözüm:
Aşağıdaik MVC 3 dll'lerini projede silip, tekrar referans olarak eklendiğinde sorun düzelmektedir.

System.Web.Helpers
System.Web.Mvc
System.Web.WebPages

UygulamaProjeAdi.csproj dosyasına bakılınca şu görünüyordu:

<ItemGroup>
...
<Reference Include="System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL" />
    <Reference Include="System.Web.WebPages" />
    <Reference Include="System.Web.Helpers" />
...
</ItemGroup>


Güncelleme yaptıktan sonraki görünüm:

<Reference Include="System.Web.Helpers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL" />
    <Reference Include="System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL" />
<Reference Include="System.Web.WebPages, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL" />

Kaynaklar:
http://www.asp.net/whitepapers/mvc4-release-notes#_Toc303253815
http://stackoverflow.com/questions/8512021/build-errors-system-web-mvc-modelclientvalidationrule-conflicts
http://stackoverflow.com/questions/9471263/mvc-4-beta-side-by-side-installation-error


Windows Sürümleri ve Adları


Windows 8 - 15.08.2012


Windows Server 2012 (x64) - 04.09.2012


Microsoft Windows 7 (Enterprise)
Version: 6.1.7601 Service Pack 1 Build 7601
22.07.2009


Microsoft Windows minimum hardware requirements (for x86 versions)
Windows versionProcessorMemoryHard disk
Windows 95[4]25 MHz4 MB~50 MB
Windows 98[5]66 MHz16 MB~200 MB
Windows 2000[6]133 MHz32 MB650 MB
Windows XP[7] (2001)233 MHz64 MB1.5 GB
Windows Vista[8] (2007)800 MHz512 MB15 GB
Windows 7[9] (2009)1 GHz1 GB16 GB
Windows 8[10] (2012)1 GHz1 GB16 GB

Kaynak:
http://en.wikipedia.org/wiki/Software_bloat



22 Ağustos 2012

Eğitim şart mı? BT’de Mesleki Eğitim Üzerine


Mesleki eğitim (professional/vocational training), kurumların sadece İnsan Kaynakları bölümlerinin değil aynı zamanda eğitim alacak kişilerin çalıştığı bölümlerin de sorumluluk alanına giren ve verimli bir şekilde halli hiç de sanıldığı kadar kolay olmayan bir iştir. Bu yazıda verimli bir mesleki eğitimin sahip olması gereken niteliklerinden ve uzunca bir süredir içinde bulunduğum, ülkemizdeki kurumsal Bilişim Teknolojileri (BT) eğitim sektöründen bahsetmek istiyorum.

Her ne kadar İngilizce’deki “education” ve “training” kelimeleri dilimize aynı sözcükle, “eğitim” olarak çevrilse de, aslında ikisi az-çok farklı kavramlardır. Bu konudaki yayınlarda, bu iki kavrama bir de “farkındalık” (awareness) eklenir ve bu üç kavram ile aslında birbirlerini takip eden ama gittikçe daha geniş ve karmaşık hale gelen zihni süreçler ifade edilir. Bu şekilde bir yaklaşımla başladığımızda, farkındalık, kişinin dikkatini çekme, bir olayın, problemin varlığından haberdar etme gibi anlamlar taşır. “Training” ise daha çok, kişiye belli bir işi yapacak şekilde yetkinlik kazandırma ya da onu bir konuda daha verimli hale getirme, olarak tanımlanabilir. “Education” anlamında eğitim ile daha tabi ve zaman yayılmış ve daha karmaşık süreçler kastedilir. Bu anlamda eğitim, kişiye sadece teknik yetkinlik kazandırmaz, o konudaki yaygın bilgi birikimini (body of knowledge) sunar ve eğitimi alan bireyi, konunun sosyal, kişisel vs. boyutları hakkında düşünmeye sevkeder. Karışıklığın önüne geçmek için mesleki eğitim olarak çevrilebilecek olan “training” ya da “professional/vocational training”, çerçevesi çok daha dar olarak belirlenmiş bir konuda, kişilere hızlıca teknik problem çözme kabiliyeti kazandırmayı hedefler. Buna karşılık eğitim ise kişiyi düşünmeye sevkeder ve düşünme için malzemeler sunar. Bu anlamda eğitim, daha çok bir gelişme/geliştirme yani olgunlaşma/olgunlaştırma sürecidir ve bu yüzden de evrimseldir. Dolayısıyla mesleki eğitim daha çok pratik ve uygulamalı olurken, eğitim, hem teorik bilgiyi hem de pratik uygulama becerisini kazandırmayı hedefler. Bu iki kavram arasındaki farkı sanırım en iyi anlatan, Tony Bray’ın “The Training Design Manual” isimli kitabının 35. sayfasında verdiği örnektir. Yazar, kendimizi henüz orta öğretime devam eden bir çocuk sahibi ebeveyn olarak düşünmemizi istiyor ve şu soruyu soruyor: Çocuğunuzun okulda cinsel konularla alakalı “education” mı yoksa “training” mi almasını isterdiniz? Çocuğunuza cinsel “education” yerine cinsel “training” verilmesi durumunda çok farklı tepki vereceğinizi söylüyor yazar. Bu güzel örnek aradaki farkı tamamen açıklıyor.

Biz bu ayrımdan sonra mesleki eğitime odaklanalım ve yazının kalanında eğitim deyince “training”i kastettiğimizi ifade edelim.

Eğitim, kurumlar açısından çok merkezi bir kavram tabiki. İster organizasyon teorileri ve örneğin Öğrenen Organizasyon (Learning Organization) açısından bakın ister Toplam Kalite Yönetimi, TKY (Total Quality Management, TQM) gibi daha sistemli bir noktadan bakın, isterseniz çok daha pratik açıdan bakıp, daha verimli ve üretken çalışanlara sahip olmayı isteyin ya da yeni bir teknolojie geçişten dolayı tamamen zorunluluk olarak görün, eğitim çok önemli. Biz bu gibi durumlarda, genelde gülümseyerek “eğitim şart” deriz; çünkü bu cümle en önemli sloganlarımızdandır.

Uzunca bir süredir BT eğitimleri ile ilgilendiğim ve ciddi miktarda Java ve Yazılım Mühendisliği’nin değişik konularında eğitimler ve eğitim ile ilgili danışmanlıklar verdiğim için (ve dahi ilköğretimde, lisede ve üniversitede, yurt içinde ve dışında eğitim alan çocukların babası da olduğum için, yani eğitime tonla para harcadığım için  gerek “education” gerek ise) “training” anlamında eğitimin pek çok farklı açısıyla ilgileniyorum.

Kurumlar çalışanlarını eğitirler ya da dış eğitim kurumlarından eğitim aldırırlar. Bunu hangi amaçlarla yaparlar? En genelde, şu ya da bu çapta, ama bir şekilde bir “değişim” ihtiyacına cevap olarak eğitim gündeme gelir. En azından değişimle, çalışanın yetkinliklerinde bir değişim hedeflenir. Peki nedir yetkinlik (competence)? Yetkinliğin ne olduğu ile ilgili detay tartışmalara girmeden, konumuz açısından son derece faydalı olan bir tanımından yola çıkarak, teknik eğitimlerin, yetkinlik geliştirmedeki rolüne odaklanabiliriz.

Yetkinlik, kişinin bir konudaki, bilgi, beceri ve davranış ve tutumlarının tamamına verilen isimdir. Yani bir konuda yetkin olmak ya da yetkinlik sahibi olmak, o konuda gerekli teorik bilgiyi bilmek, o konun gerektirdiği yapabilime becerilerine sahip olmak ve bu beceriyi, ihtiyaç olan her noktada yapıcı bir şekilde kullanabilmektir. İngilizce’de knowledge, skill ve attitude/behavior olarak ifade edilir ve genelde KSA olarak kısaltılır. Bu tanım, sosyal ya da psikolojik açıdan çok yeterli olmayabilir, yani örneğin “aşk” konusuna uygulamada çok aydınlatıcı olmayabilir ama bizlerin de içinde bulunduğu teknik konularda güzel bir modeldir. Bilgi/beceri/davranış yani BBD’den oluşan yetkinlik kavramını bir örnekle açıklayalım: Diyelim ki çocuğunuza ya da yeğeninize diş firçalamayı öğretmek istiyorsunuz. Aslında derdiniz sadece “öğretmek” değil, derdiniz, ona bu konuda yetkinlik kazandırmak yani onu diş fırçalamada yetkin hale getirmektir. Nasıl yaparsınız bunu? Öncelikle onunla konuşarak, diş fırçalamanın gerekliliğini ve bu konudaki en temel bilgileri verirsiniz ki bu yetkinliğin “bilgi” kısmına karşılık gelir. Yeterli midir? Tabi ki hayır, çünkü eğittiğiniz kişiye bu konuda bir beceri de kazandırmanız lazımdır. Bunun için onunla birlikte banyoya gider ve ona diş fırçalamada, hem kendiniz yaparak hem de onun yapmasını sağlayarak, bir beceri sağlarsınız. Macunu nasıl sıkacağını, fırçayı dişleri üzerinde nasıl hareket ettireceğini ve sonunda ağzını nasıl çalkalayıp temizleyeceğini hem siz yaparsınız hem de onun bir kere yapmasını sağlarsınız. Dişini bir kere hatasız fırçalayabilen çocuk, bu konudaki gerekli beceriyi de kazanmış demektir. Yeter mi sizce? Yetmez tabi ki. Çünkü önemli olan şey, nihayetinde çocuğun bu beceriyi, hayatına yayması, onu bir alışkanlık haline getirmesi, mesela yatmadan önce ya da yemeklerden sonra dişlerini fırçalamasıdır. Yani, bu beceriyi sürekli bir davranış olarak hayatına yayması ve bunu yaparken de olumlu bir tutum takınmasını beklersiniz. Yani çocuk, dişlerini isteyerek fırçalamalı, bunu temiz bir insan olmanın bir parçası olarak algılamalı vs. Bu da yetkinliğin tutum, motivasyon vb. boyutunu oluşturur.

Şimdi de isterseniz BBD anlamındaki yetkinliği, örneğin bir programcının birim testi (unit test) yetkinliği açısından açıklayalım. Programcıya, daha kaliteli kod yazabilmesinin birim testi yapmaktan nasıl geçtiğinin açıklanması ve programcının bu konuda ikna edilmesi, kullanılan teknolojiye göre birim testinin bileşenlerinin varsa araçlarının, test kodunun yazımının, etiketlerinin (tag) ve örneğin konfigürasyonun, derleme ve çalışma zamanlarının, yani tüm sürecin bileşenleriyle sistematik olarak açıklanması, bilgilendirme sürecini oluşturur. Bu sırada eğer bu yetkinlik teknik bir eğitimle kazandırılıyorsa, eğitmen, muhtemelen “Selam” gibi basit bir kod parçasından başlayarak birkaç farklı karmaşıklıktaki kod için kendi örneklerini çalıştırır ve benzer şekilde sınıftaki katılımcıların da bunu yapmalarını ister. Bu örneklerle katılımcılar yetkinliğin bilgi kısmını halledip yavaş yavaş beceri kısmına doğru ilerlerler. Sonrasında eğitmen, örneklere benzer uygulamaları, katılımcıların kendilerinin yapmasını ister. Yetkinliğin karmaşıklık seviyesine göre bu, bazen sınıfça, eğitmenin önderliğinde yapılır ve katılımcılar önce taklit ederler ve sonrasında kendileri, eğitmeni takip etmeden kendi uygulamalarını gerçekleştirirler. Böylece her katılımcı birim testi için gerekli beceriyi en az bir defa sınfta göstermiş olur. Peki, bir programcının kaliteli kod yazabilmesi için yeterli midir bu yetkinlik? Kesinlike hayır. Programcı, her yazdığı kod için birim testini uygulamalı, bu konuda yapıcı bir tutum geliştirmeli, mesela etrafına da yaymalı vs. ki bu konuda bir davranış ve alışkanlık geliştirmiş olsun.

Şimdi soru şu: Yetkinlik kazandırmak amacıyla çalışanlarımıza aldırdığımız eğitimden ne bekliyoruz? Yani bir eğitimden, örneğin, başka bir programlama dilinde tecrübeli programcıları, Java ile nesne-merkezli programlama yetkinliklerini kazandırmak amacıyla göndereceğimiz bir eğitimden, yukarıda detaylandırdığımız BBD anlamında ne bekliyoruz? Benim acizane cevabım şu: Hiç bir fikrimiz yok  Bu güne kadar, BT eğitimlerinde ne İK bölümlerinin ne de teknik bölümlerin, böyle bir eğitimden ne beklediklerini analitik ve rasyonel bir çerçevede açıklayabildiklerine malesef şahit olamadım. Genelde IK birimlerinin de olduğu eğitim ihtiyaç analizi toplantılarında, yukarıdaki BBD cinsinden açıklamayı ben yapıyorum  Bırakın yatırımın geri dönüşü (ROI) gibi teknik ve çok daha karmaşık ölçümleri, eğitimden gelen kişiden, eğitim sonrasında ne isteyebileceğimizi, istediğimiz şeyi ne kadar sürede ve ne kalitede yapacağını bile tahmin etmekten çok uzakız. Komik ama gerçek bu  Bir kurum, çalışanlarını eğitime gönderir de, eğitimden döndüklerinde ne durumda olacaklarını bilmez mi? Örneğin 5 günlük bir “Java’ya Giriş” isimli eğitimden sonra BBD anlamında bir programcının ne durumda olacağını bilmez mi? Bilmiyorsa, en azından bilene, mesela bana sormaz mı? Ya da sormadan anlattığımda ona göre davranmaz mı? Cevap, hiçbirini yapmaz. Sonra da “Eğitim Şart”ı dilimize pelesenk yaparız. Gıcığım ben bu slogana zaten. Sadece slogan cünkü, içi boş, lafı güzaf malesef. Neden böyle diyorum? Çünkü, ister kelli felli o kurumsal (!) BT kurumlarının ya da devasa BT bölümlerinin olsun ister ufak yazılım evlerinin olsun, eğitim ihtiyaçlarında hep aynı sıkıntıyı çekiyorum. Bir örnekle açıklayayım ama sıkı durun: Cok sık bir şekilde örneğin Cobol ya da Oracle Forms gibi yapılarla senelerini harcamış, bazen benden daha yaşlı programcılara 3 ya da 4 günde Java ile nesne-merkezli programlama öğretmem bekleniyor  Yani, Java’nın nasıl tanım tabanlı (specification-based) ve açık yapıda bir dil olduğundan başlayarak (ki burası çok önemlidir çünkü Java kültürünün çok temel bir parçasıdır ve genelde farklı programlama kültüründen gelenlerin anlamakta zorlandıkları ve bu yüzden de “Hangi Java’yı öğreteceksiniz” şeklinde sorular sordukları bir alandır bu), söz dizimi ve anahtar kelimelerini, kontrol yapılarını ve sonra gelen, pek çok programlama kültürüne göre Java’nın en ayırt edici yönünün ele alındığı sınıf ve nesne yapıları, sonrasında kalıtım, çok şekillilik, soyut yapılar ve arayüzler ve sonrasında sıra dışı durumlar ile temel Java yapılarının halledilip, üzerine torbalar, giriş-çıkış, kanallar ve JDBC’nin ele alınması ve bu konularda bir yetkinlik oluşturmak için 3 olmadı 4 gün, nasıl?  Ve bu konuları gören katılımcıların, bir projede yer almaları, kendilerine verilen programlama görevlerini yerine getirmeleri yani “yetkin” olmaları bekleniyor. Sonra da herkes birbirine soruyor, proje neden gecikti? Ya da Java’nın adı çıkıyor, “Java çok zor” ya da “Java’da kod geliştirmek çok yavaş”  Şaka gibi…

Peki, yukarıdaki konuları kapsayan bir eğitim, ne kadar sürede nasıl bir yetkinlik kazandırabilir? Bu konularla ilgili gerekli bilgi için rahatlıkla 5 güne ihtiyaç vardır. Eğer eğitimde bilgiden beceriye de geçmek istiyorsak ki tabi olan budur, katılımcıların, eğitmenin bilgilendirirken verdiği örneklere benzer örnekleri yapmaları gereklidir ve bu durumda böyle bir eğitim rahatlıkla 10 güne çıkar. Burada dikkat çekilmesi gereken şey, böyle bir eğitimde beceriyi her konuda kazanmanın mümkün olmadığıdır. Sınıfta katılımcıların ne kadar kendi uygulamalarını yapabileceklerini belrileyen en temel şeylerden birisi, sınıfın mevcududur örneğin. Katılımcıların hangi konularda kendi uygulamalarını yapacakları, hangi konularda eğitmenin örnekleriyle yetinip, örneğin eğitim sonrası kendi gayretleriyle beceri kazanmaya yönelik olarak kendi uygulamalarını yapacaklarını belirlemek çok önemlidir.  Ama kesin olan şey şudur ki, 10 günlük böyle bir eğitimde bile katılımcılar, eğitmenin örneklerinin çok iyimser bir tahminle, yaklaşık 3′te birinde kendi uygulamalarını yapabilmektedirler. Burada şunu atlamamalıyız: İster bilgi tarafı ister beceri tarafı olsun, aslolan anlamadır, yani katılımcının anlamasıdır ve katılımcının örnek uygulamayı yapmış olması bile onun konunun her yönünü anladığını göstermez, çünkü burada “training” anlamında bir eğitimden bahsediyoruz. Yani örneğin neden “Java’da mesela kanal yapısı böyle kurgulanmış da .NET’deki gibi şöyle kurgulanmamış” sorusu nefis bir tartışma konusu olmakla birlikte, “training” anlamında bir eğitimin konusu olamaz. Bu olsa olsa, Programlama Dilleri isimli bir master dersinin konusu olabilir ki bu da zaten “education” anlamında bir eğitimle halledilir.

Davranışa gelirsek, sınıf içi eğitimle, yetkinliğin, davranış kısmını kazandırmanın mümkün olmadığını ifade etmek gerekir. Yani sınıf içi eğitim, davranış kazandırmaz, bu çok açık. Peki davranış, tutum nasıl kazandırılır? Tabi ki eğitimin bir parçası olarak ama sınıf eğitiminden sonra yapılacak bir workshop ile davranış kazandırmaya başlarsınız. Yani alınan eğitime uygun içerikte, örneğin 5 günlük bir sürede yapılacak küçük bir proje çalışması ile katılımcılar, bilgilerini kullanma imkanı bulurlar, becerilerini geliştirirler, eksik kalan becerileri tamamlarlar ve davranış olarak da, özellikle eğitmenin liderliğinde, gerek taklit gerek ise tartışma yoluyla davranış geliştirmeye başlarlar, becerilerini her durumda ve hızlıca nasıl yerine getireceklerini öğrenirler. Bu tipik usta-çıraklık ilişkisidir. Ve teknik yetkinlikler ancak ve ancak bu şekilde elde edilirler. Usta-çırak ilişkisine girebilmek için gerekli altyapı ise sınıf eğitimiyle verilir. Bu anlamda sınıf eğitimi bilgi-beceri yoğun, workshop ise beceri-davranış yoğun yapılardır.

Eğitim ile ilgili kitaplarda otoriteler, eğitim hayat döngüsünden bahsederken workshopı da muhakkak dahil ederler. Bunun sebebi de sınıf eğitimiyle, bilgi ve bir miktar beceriye elde edilen kişilerden, projelerin gerektirdiği davranışı göstermeyi beklemenin haksızlık ve yanlış olduğu gerçeğidir. Ülkemizde workshop alışkanlığı çok ama çok azdır. Ben çok az müşterime bunu kabul ettirebiliyorum. Çoğu zaman yukarıda bahsettiğim 10 günlük eğitimi bile 3-4 güne sığdırmam istendiğinden, tabi olarak ben de 10 gün eğitim ve üzerine 5 gün workshop, dolayısıyla 15 gün diyemiyorum. 200 bin TL’lik bir mala birisinin 10 bin veririm demesi gibi bir durum bu   Workshopı yapmamak için en sık söylenen sebep, “zaman yok”tur. Halbuki projenin gecikmesinin en temel sebeplerindendir yetkinlik eksiği. Bir diğer argüman da, “katılımcılar zaten eğitimden sonra projeye girecekler ve orada kod yazacaklar”dır. Bu da farkedileceği gibi, workshopın ne anlama geldiğini anlamamaktan kaynaklanan bir argümandır. Workshopta yazılan kod, gerçek kod değildir ama projede yazılan kod gerçek koddur. Yani söylenen şey, tatbikat yapmadan askerlerin doğrudan savaşa girip gerçek mermileri kullanmaları ya da Tıp öğrencilerinin, ameliyat yapan hocalarını izlemeden doğrudan ameliyata girmesidir. Sonra neden hasta öldü demenin bir anlamı yok bence

Teknik eğitimin, ülkemizdeki yapıldığı haliyle, ciddi problemleri var. Örneğin eğitmen kirliliği, içerik kirliliği, bir ihtiyaç analizi yapmadan eğitim satan ya da alan kurumlar, eğitimi mala indirgeyen dershane mantığındaki eğitim kurumları vs. Bunlara daha sonra değiniriz.

Ama şu bir gerçek: Eğitim şart

Kaynak:
http://www.javaturk.org/?p=576

17 Ağustos 2012

.Net ve ASP.Net Teknolojileri Sürüm ve Adları

Toplu Paket Halinde Gelen Teknolojiler:
ASP.NET 5/MVC 6 and .NET Core (aka dnxcore50)
.NET Core framework is a new light weight cross platform version of .NET that will be supported by Microsoft on Windows, Linux, and Mac. MVC 6 is the unification of previous MVC concepts with those of Web API.
DNX: Dotnet Execution Environment


--

ASP.NET MVC:
MVC 5.0 - ASP.NET and Web Tools 2013.1 for Visual Studio 2012 - 13.11.2013 (ASP.NET 4.5, Microsoft .NET Framework 4.5.1)
ASP.NET MVC 5, Web API 2, Scaffolding and Entity Framework 6 to users of Visual Studio 2012 and Visual Studio 2012 Express for Web
http://www.microsoft.com/en-us/download/details.aspx?id=41532


MVC 4.0 - ASP.NET MVC 4 for Visual Studio 2010 SP1 and Visual Web Developer 2010 SP1 - 26.10.2012 - (for .NET 4, ASP.NET 4)  - http://www.microsoft.com/en-us/download/details.aspx?id=30683
Which .NET framework with MVC 4? : http://stackoverflow.com/questions/12088902/which-net-framework-with-mvc-4

MVC 3.1 - ASP.NET MVC 3 Tools Update - 20.09.2011 - ( for .NET 4, ASP.NET 4 )
http://www.microsoft.com/en-us/download/details.aspx?id=1491

MVC 3.0 - ASP.NET MVC 3 RTM - 12.01.2011 - ( for .NET 4, ASP.NET 4 )

---
ADO.NET Entity Framework:
4.1.10715.0 - ADO.NET Entity Framework 4.1 - Update 1 - 22.07.2011 - ( for .NET 4 )
4.1.10331.0 - ADO.NET Entity Framework 4.1 - 08.04.2011 - ( for .NET 4 )

--
Microsoft Visual Studio:

Microsoft Visual Studio 2015 Update 1
21.11.2015
https://www.microsoft.com/en-us/download/details.aspx?id=49989
https://www.visualstudio.com/en-us/news/vs2015-update1-vs.aspx


Visual Studio 2015 and .NET 4.6
10.07.2015
https://www.microsoft.com/en-us/download/details.aspx?id=48143
http://blogs.msdn.com/b/somasegar/archive/2015/07/20/visual-studio-2015-and-net-4-6-available-for-download.aspx
https://www.visualstudio.com/news/vs2015-vs


.NET Framework 4.5.1 Developer Pack Multi-targeting pack for Visual Studio 2012 - 12.10.2013
https://www.microsoft.com/en-us/download/details.aspx?id=40772
.net framework 4.5.1 missing from Visual Studio 2012: http://stackoverflow.com/questions/25553025/net-framework-4-5-1-missing-from-visual-studio-2012

Visual Studio 2012 Update 1 (Visual Studio 2012.1) - Multi-language -
26.11.2012
http://www.c-sharpcorner.com/news/2139/visual-studio-2012-update-1-now-available.aspx

Visual Studio 2012 and .NET 4.5
15.08.2012
http://blogs.msdn.com/b/somasegar/archive/2012/08/15/visual-studio-2012-and-net-4-5-now-available.aspx
http://blogs.msdn.com/b/somasegar/archive/2012/09/12/visual-studio-2012-and-net-4-5-launch.aspx


2010 SP1 - Microsoft Visual Studio 2010 Service Pack 1 - 03.03.2011 - ( for all editions of Visual Studio 2010 (Express, Professional, Premium, Ultimate, Test Professional )
2010 - Microsoft Visual Studio 2010 Professional - 12.04.2010

--
Microsoft .NET Framework:

4.5 - Microsoft .NET Framework 4.5 - 9.10.2012 - http://www.microsoft.com/en-us/download/details.aspx?id=30653
4.0 - 4.0.30319.1 - Microsoft .NET Framework 4 - 12.04.2010 - (dotnetfx40)
3.5 SP1 - Microsoft .NET Framework 3.5 Service Pack 1 - 18.11.2008 - (dotnetfx35)
3.5 - 3.5.21022.8 - Microsoft .NET Framework 3.5 - 20.11.2007 - (dotNetFx35)
3.0 - 3.0.4506.30 - Microsoft .NET Framework 3.0 - 21.11.2006 - (dotnetfx3)
2.0 SP2 -  - Microsoft .NET Framework 2.0 Service Pack 2 - 16.01.2009 - (NetFx20SP2)
2.0 SP1 -  - Microsoft .NET Framework 2.0 Service Pack 1 - 19.11.2007 - (NetFx20SP1)
2.0 - 2.0.50727.42 - Microsoft .NET Framework 2.0 - 2005-11-07
1.1 - 1.1.4322.573 - Microsoft .NET Framework 1.1 - 2003-04-24
1.0 - 1.0.3705.0 - Microsoft .NET Framework 1.0 - 2002-02-13


Kaynaklar:
.NET Framework
http://en.wikipedia.org/wiki/.NET_Framework




İş Hayatı - IT’de nitelikli işgücü krizi ve çözümü

Webrazzi'de yayınlanan "IT’de nitelikli işgücü krizi ve çözümü" yazısına ilginç ve anlamlı yorumlar yapıldı ve yapılıyor. Kesinlikle sektörümüzü analiz etmeye yarayacaklar yorumlar var :)

IT’de nitelikli işgücü krizi ve çözümü
http://www.webrazzi.com/2012/08/16/itde-nitelikli-isgucu-krizi-ve-cozumu/


15 Ağustos 2012

SharePoint Sürümleri ve Adları


SharePoint Server 2013

15.0.4420.1017 - SharePoint Server 2013 - RTM - 24.10.2012 - https://msdn.microsoft.com/en-us/subscriptions/securedownloads/hh442898.aspx#searchTerm=&ProductFamilyId=492&Languages=en&PageSize=10&PageIndex=0

SharePoint Designer 2013 - RTM - 30.10.2012 - http://www.microsoft.com/en-us/download/details.aspx?id=35491





SharePoint Server 2010

... - SharePoint 2010 - Service Pack 2 - 16.07.2013 - http://blogs.technet.com/b/office_sustained_engineering/archive/2013/07/16/office-2010-and-sharepoint-2010-service-pack-2-availability.aspx

14.0.6029.1000 - SharePoint Server 2010 - Service Pack 1 - June 24, 2011
14.0.4762.1000 - SharePoint Server 2010 - RTM - May 2010


SharePoint Foundation 2010

14.0.6029.1000 - SharePoint Foundation 2010 - Service Pack 1 -
14.0.4762.1000 - SharePoint Foundation 2010 - RTM -

MOSS 2007


12.0.6608.1000 - MOSS2007 - Service Pack 3 - October 24th, 2011
12.0.6421.1000 - MOSS 2007 - Service Pack 2  - April 21, 2009
12.0.6219.1000 - MOSS 2007 - SP1 - December 11, 2007
12.0.4518.1016 - MOSS 2007 - RTM -

Windows SharePoint Services 3.0

12.0.6608.1000 - WSS 3.0 - Service Pack 3 - October 24th, 2011
12.0.6421.1000 - WSS 3.0 - Service Pack 2 - April 21, 2009
12.0.6219.1000 - WSS 3.0 - SP1 - December 11, 2007
12.0.4518.1016 - WSS 3.0 - RTM -


SharePoint Versions
http://www.todd-carter.com/sharepoint-versions/
SharePoint 2010 Versions
https://www.nothingbutsharepoint.com/sites/devwiki/SP2010Admin/Pages/SharePoint%202010%20Versions.aspx
SharePoint 2010 Version Numbers & Downloads
http://www.justgeeking.net/blog/?p=97
Microsoft SharePoint
http://en.wikipedia.org/wiki/Microsoft_SharePoint
How to determine the installed SharePoint version
http://insomniacgeek.com/how-to-determine-the-installed-sharepoint-version/
SharePoint 2010 Build Numbers
http://www.toddklindt.com/blog/Lists/Posts/Post.aspx?ID=224
Compare SharePoint Editions
http://sharepoint.microsoft.com/en-us/buy/pages/editions-comparison.aspx





Sql Server Sürümleri ve Adları



11.0.2100.60 - SQL Server 2012 - RTM - March, 2011

10.50.2500 - SQL Server 2008 R2 - SP1 - July, 2011
10.5.1600 - SQL Server 2008 R2 - RTM - April, 2010


10.00.5500 - SQL Server 2008 - SP3 - October, 2011
10.00.4000 - SQL Server 2008 - SP2 - September, 2010
10.00.2531 - SQL Server 2008 - SP1 - April, 2009
10.00.1600 - SQL Server 2008 - RTM - August 2008

9.00.5000 - SQL Server 2005 - SP4 - December 2010
9.00.4035 - SQL Server 2005 - SP3 - November, 2008
9.00.3042 - SQL Server 2005 - SP2 - March, 2007
9.00.2047 - SQL Server 2005 - SP1 - April, 2006
9.00.1399 - SQL Server 2005 - RTM - January, 2006



Microsoft SQL Server Version List
http://sqlserverbuilds.blogspot.com.tr/


SQL Server Version History
http://blogs.msdn.com/b/pamitt/p/sql_version_history.aspx

How to determine the version and edition of SQL Server and its components
http://support.microsoft.com/kb/321185

Microsoft SQL Server
http://en.wikipedia.org/wiki/Microsoft_SQL_Server


13 Ağustos 2012

Asp.net web form - istemci tarafında disabled yapılan input değerleri asp.net sunucu tarafına taşınmıyor

Jquery ile client tarafında bir textbox'ın value bilgisine yeni değer atayıp sonra disabled yaptım.
Ancak server side tarafında bu textbox'ın text değeri boş geldi.
Bundan dolayı input textbox'ını disabled yapmak yerine readonly yapmak gerekmektedir.

Hata veren örnek kod:

<script type="text/javascript" language="javascript">

        $(document).ready(
            function () {
                fnSetPrivateCourseName();
                $("#<%=cbDidNotGoToCourse.ClientID%>").click(function () {
                    fnSetPrivateCourseName();
                });
            }
        );

        function fnSetPrivateCourseName() {

            if ($("#<%=cbDidNotGoToCourse.ClientID%>")[0].checked) {
                $("#<%=txtPrivateCourseName.ClientID%>").val("Hayır, dershaneye gitmedim");
                $("#<%=txtPrivateCourseName.ClientID%>").attr("disabled", "disabled");
                //$("#<%=txtPrivateCourseName.ClientID%>").attr("readonly", "readonly");
            }
            else {
                $("#<%=txtPrivateCourseName.ClientID%>").val("");
                $("#<%=txtPrivateCourseName.ClientID%>").removeAttr("disabled");
                //$("#<%=txtPrivateCourseName.ClientID%>").removeAttr("readonly");
            }
        }

    </script>

disabled yapmak yerine readonly yapmak gerekmektedir.

Kaynak:
http://stackoverflow.com/questions/7059589/jquery-submit-change-input-value-before-post

Güncelleme: 15.11.2012

Temel html form mimarisine göre Disabled yapılan input değerleri html formundan submit edilmemektedir.

Disabled <input> elements in a form will not be submitted.


HTML <input> disabled Attribute
http://www.w3schools.com/tags/att_input_disabled.asp


JavaScript: Preventing Double Form Submission
http://www.the-art-of-web.com/javascript/doublesubmit/


Attributes for <INPUT ...>
DISABLED
READONLY
http://www.htmlcodetutorial.com/forms/_INPUT_DISABLED.html





mvc 3 - ASP.NET MVC Error Handling Flowchart



Kaynak:
http://www.compiledthoughts.com/2012/02/aspnet-mvc-error-handling-flowchart.html


12 Ağustos 2012

İş Hayatı - Şirketler iş mülakatını stres testi sanıyor


İş mülakatları sırasında bazı insan kaynakları çalışanlarının yargılayıcı ifadeler kullanması tepki çekiyor. GlobalCv Yönetim Kurulu Üyesi Ertan Kirik, mülakatı yapan kişinin sinir bozucu jest ve mimikleri nedeniyle adayların başarısız bir görüşme gerçekleştirdiğini belirterek, "Bir başka hata da adayın sabah aranıp öğlen görüşmeye çağrılması." dedi.
İş hayatına adım atmanın önemli unsurlarından iş mülakatını Türkiye'de şirketler çoğu zaman stres testi olarak algılıyor. İnsan kaynakları çalışanlarının ya da işe alan pozisyondaki kişilerin görüşme sırasında yargılayıcı ifadeler kullanması birçok zaman teknik bilgi ve yeterlilik arayışının önüne geçiyor. Mülakatı yapanın tepeden bakma eğilimi, sinir bozucu jest ve mimikler ise karşısında zaten heyecanla duran adayların başarısız bir görüşme gerçekleştirmesine sebep oluyor. Bu şekilde yapılan iş görüşmelerinin etik bir davranış olmadığı konusunda uyaran uzmanlar, yöneticilerin gelen adaylara karşı nezaketli olması durumunda potansiyellerini daha rahat ölçebileceğini söylüyor. Sağlıklı işe alım sürecinin en önemli etkeninin profesyonel bir iş görüşmesi olduğuna dikkat çeken GlobalCv Yönetim Kurulu üyelerinden Ertan Kirik, açık arayıcı olmak yerine tanımaya yönelik önyargısız sorular sorulmasını tavsiye ediyor.

Uzmanlar mülakat teknikleri arasında yeri olan stres mülakat tekniğinin adaydan karşılaşabileceği stresli durumlarda nasıl tepki vereceğini görmek konusunda bilgi almak için kullanıldığını belirtiyor. Ama Türkiye'de çoğu zaman bilinçsiz uygulanan bu tekniğin adayların sahip olduğu potansiyeli görmesine engel olduğuna dikkat çekiliyor. Kirik'e göre en çok yapılan hatalardan biri de görüşme saatlerine uyulmaması. "Adaylar zamanında çağrılmıyor. Ya da sabah aranıp öğlen gel deniliyor. Ya da İstanbul gibi bir şehrin bir ucundan diğer ucuna bir saatte gelmesi bekleniyor. Gelemeyince de görüşmeyi iptal ediyor." diyen Kirik, Türkiye'nin insan kaynakları konusunda geride olduğu değerlendirmesini yaptı.

Türkiye'de yaşanan yaygın problemlerden biri de iş yaşamı ile dünya görüşlerinin karıştırılması. İşverenlerin personel ararken memleket, dış görünüş gibi değerlendirmeler yaptığını söyleyen Kirik, "Avrupa ülkelerinde çalışan ve işverenin işe bakışı tamamen sonuç odaklı. Bizdeki gibi değil, çok daha profesyonel." dedi. Kirik, firmaların düştüğü en önemli yanlışlardan birini de, "Patron ve diğer yöneticiler kariyerinde ilerleyen bir çalışan için 'Bu bizim evin danasıdır, öküzü olmaz.' fikrinde. Bu kendini geliştirmeye açık bir çalışanı sınırlayabilecek bir tutum." şeklinde açıkladı. Firmalarda staja aldıklarına dosya getir götür işi yapan kişiler olarak baktıklarını, aynı kişiyi ilerde müdür pozisyonunda benimseyemediklerini kaydetti.

Gerçek staj mutlaka yapılmalı

Üniversite öğrencilerinin birçoğunun naylon diye tabir edilen sahte staj yapma yoluna başvurduğunu belirten Kirik, "Para ya da yemek vermiyor gibi ufak tefek şeyler yüzünden stajlar ihmal ediliyor. Biz diyoruz ki özellikle iyi firmaları seçin, getir götür de yapsa oraya girip kendini kabul ettirsin." dedi. Türkiye'de işe alımlarda kişisel ilişkilere çok önem verildiğini hatırlatan Kirik, hedeflenen yerlerle çeşitli sebeplerle aşinalık kazandıracak ilişkiler geliştirilmesini tavsiye ediyor. İş başvurularında iyi bir özgeçmiş (CV) hazırlamanın da profesyonel iş hayatında çok önemli olduğunu vurgulayan Kirik, "CV kişinin vitrinidir. Yapabilenler bir ajansa hazırlatabilir. En azından internette yer alan hazır şablonlardan yararlanılmalı." tavsiyesinde bulundu.

Alıntıdır.

06 Ağustos 2012

mvc 3 ve jquery - Object doesn't support property or method 'split' hatası

MVC 3 Razor projesinde bir formda TinyMCE kullandım. Kaydetme işlemi yaptığımda jquery.validate.min javascript dosyasında
Microsoft JScript runtime error: Object doesn't support property or method 'split' 
şeklinde hata veriyordu. Bunun nedeni TinyMCE'nin kullandığı jQuery eklentisiymiş.

split metod hatası veren TinyMCE nuget versiyonu:

TinyMCE 3.4.7
TinyMCE.jQuery 3.4.7

26.07.2012 tarihinde yeni 3.5.6 sürümü çıkarılmış, indirdim sorun düzeldi.

Kaynaklar:
https://github.com/jzaefferer/jquery-validation/issues/457
http://stackoverflow.com/questions/10981120/jquery-validate-js-javascript-error





ef - The result of a query cannot be enumerated more than once. hatası

Entity framework'de sorgu sonucu birden fazla kez çağrılamamaktadır. Yoksa şu şekilde hata vermektedir:
The result of a query cannot be enumerated more than once.
Sql sonucunu yeni bir değişkende saklayıp, yeni değişken üzerinde işlem yapılmalıdır.

Hata veren örnek kod:


var record = dbContext.ExecuteStoreQuery<SISStudentDeptType>(sqlQuery, sqlParameters);
                if (record.Count() > 0)
                {
                    result = record.Single();
                }


Yukarıda record.Count() ve record.Single() ile iki kere çağrım yapılmakta.

Doğru yazılmış örnek kod:


var record = dbContext.ExecuteStoreQuery<SISStudentDeptType>(sqlQuery, sqlParameters);
                List<SISStudentDeptType> recordList = record.ToList();
                if (recordList.Count > 0)
                {
                    result = recordList[0];
                }



Kaynak:
http://forum.ceturk.com/showthread.php/21670-linqtosql-de-quot-The-query-results-cannot-be-enumerated-more-than-once-quot-hatas%C4%B1

01 Ağustos 2012

Artık Hotmail.com yok, Outlook.com var


Microsoft, adıyla özdeşleşen ve yıllardır kullanıcılara hizmet sunduğu Hotmail.com e-posta servisini Outlook.com olarak değiştirdi.
Dün akşam gerçekleşen yenilikle birlikte Microsoft, uzun bir süredir Hotmail.com adresi üzerinden sunduğu e-posta servisini Outlook.com'a taşıdı. Ancak bu değişiklik sadece bir isim değişiminden ibaret değil. Outlook.com baştan aşağı yenilenmiş bir e-posta deneyimi ile birlikte geldi.
Microsoft, tablet ve masaüstü bilgisayarları tek merkezde toplayan Windows 8'in tanıtımından önce yeni bir adım attı. Microsoft'un popüler e-posta servisi Hotmail yerini Outlook.com'a bırakıyor.

Outlook, Hotmail'in yeniden tasarlanmış hali değil, tamamen sıfırdan oluşturulmuş yeni bir e-posta servisi. Şimdilik Hotmail.com'dan tamamen bağımsız olarak çalışacak bu servis ile Microsoft, Hotmail'in kötü ünvanını silmeyi amaçlıyor.Hotmail kullanıcıları tüm bilgileriyle yeni sisteme otomatikman aktarılacak. Hotmail.com ise yeni yıla kadar kapatılacak.

Outlook, Hotmail'e göre daha sade ve çok daha şık bir arayüze sahip. Hotmail kullanıcıların en büyük derdi olan reklamlar ise Outlook'da karşımıza çıkmıyor. Microsoft, daha önce reklamların yer aldığı bu alanı değerlendirme yoluna gitmiş, sağ taraftaki menüden Facebook, Twitter gibi servislere direk erişim sağlamak mümkün.

Yeni servisin bir diğer özelliği ise tümleşik Skype desteği olacak. Şu an için hazır olmasa da Skype kısa bir süre içinde Outlook'a dahil edilecek.

Microsoft'un bu yeni servisinden hemen yararlanmaya başlayabilirsiniz. İsterseniz Outlook.com adresine giderek yeni bir hesap oluşturun, isterseniz daha önceki Hotmail hesabınızı Outlook'a geçirin. Yeni servisin kapasitesi sınırsız olarak belirtilmiş, tabi Microsoft bu alanı spam e-posta için kullanmaya kalkışanların önüne bir engel koyacaktır mutlaka. Eğer ilk defa Microsoft hesabı alıyorsanız, SkyDrive'dan 7 GB'lık ücretsiz depolama alanı da sizleri bekliyor.

Siz de 'outlook.com' uzantılı bir e-posta adresine sahip olmak istiyorsanız BURAYA TIKLAYIN