in Uncategorized

Visual Studio 2012 – TFS 2012 | Neler Yeni ?

Asp.Net uygulamalarını Visual Studio 12 Rc’den bu yana 12 üzerinde geliştirmekteyim. Direk Rc ile başlayan birliktelik her geçen zaman daha da pekişiyor, 2010 kullanıcılarını önce hızı ve arayüzü vuruyor kalbinden, hiç kimse kullandığı IDE’nin hantal olmasını hatta mümkünse üçüncü parti yazılım kurduğunda yavaşlamasını istemez.  Bir ReSharper, productivity tools, python tools vs bunlar hep 2010’da yavaşlamaya çok ciddi sebep olan uygulamalardı, Microsoft bunların artık yavaşlatmadığını söylesede tamda öyle değil fakat hakkını yememek lazım VS 12 bu konuda epey başarılı. VS 2010 yada 2008’den 12 ortamına balıklama geçenler genelde 12 ile birlikte gelen incelikleri bilmiyorlar ve araştırmaya gerekte duymuyorlar (Çoğunluk .Net geliştiricisi tipi).

Kısa kısa neler yeni, keşfettiklerim;

VS 12 yenilikleri :

– Methodların bağımlılıkları ölçülebiliyor, studio 10’a kadar bağımlılığı normal kabul ediyor.

– Async ve await tam desteklenir hale geldi, önceden async method yazmak zordu, .net 4.5 ile gelen übüyük geliştirmelerden biride bu oldu.  .Net 4.5 ile gelen yenilikler  burada.

– Aspx de yaptığınız değişiklikler örn: textbox’ın label olarak değiştirilmesi gibi yapılan işlemler designer kısmına yansımıyordu ve build olmuyordu. Bu küçük ama miğde bulandıran hata sonunda giderilmiş.

– Artık C# ve VB’den sonra Js, Css, JQuery gibi dillerde VS 12’de ana dil olarak kabul edilmiş ve tam intellicence desteği getirilmiş. Örn: Js kodunda “go to declaration” diyebiliyoruz.

– Css tarafında ciddi geliştirmeler var, yazılan kodun diğer tarayıcılarda da sorunsuz görüntülenmesi adına çeşitli önermelerde bulunuyor, explorer için yazdığınızın webkit’te düzgün görünmesi için bunuda ekleyin diyebiliyor.

– VS 12 içine Page Inspector eklenmiş, studio içinde açılan sayfanın inspector vasıtasıyla incelenmesi harika bir özellik, ekstra gereksinimlerden kurtarıyor.

– NuGet çok önemli hale gelmiş, NuGet nedir diyenler için burada. Python da ki pip yada easy_install.

– Code Analyze aracını kullanarak uygulamanızda ki hataları, yanlış kullanımları bulabiliyorsunuz, sizinde hata kabul ettiğiniz bulguları bug olarak atayabiliyorsunuz, otomatik hata yeri vs gibi detaylı bilgide eklenmiş oluyor.

– Production with IntelliTrace harika bir özellik olmuş, bu konuyu detaylıca burada bulabilirsiniz. Kısaca, canlı ortamda oluşan hataları sistem logluyor ve bunu VS 12’nin açabileceği bir formatta kayıt ediyor, canlıda oluşan hatanın tam olarak neden oluştuğuna dair geliştiriciyi ciddi bir ayıklama işleminden kurtarıcı verileri içeriyor.

– Suspend özelliği eklenmiş, debug yaparken çok can alıcı bir noktaya gelirizde olmaz olur başka bir işe bakmamız gerekir ya, işte o esnada hayat kurtarabilecek bir özellik. Suspend yaptığınız debug işlemine aynı kaldığınız nokradan Resume diyerek devam edebiliyorsunuz. Suspend tuşu nerede ? Suspende “automagically” ünvanını layık görmüşler 🙂

– Architecture Explorer sayesinde yazılım en dış katmandan içe doğru incelenir hale gelmiş, projeye yeni dahil olanların adaptasyonunu hızlandırabilecek bir özellik.

– Dahili Mockup aracı gelmiş, bir çok şirket ücretli mockup araçları kullanır, müşteriye yada geliştiriciye bunlar üzerinden ilerleyerek geliştirimin sağlıklı ilerlemesini sağlar, VS 12 ile ekstra araca gereksiniminiz kalmıyor ve PowerPoint yüklü her makinada oluşturulan mockup’ı açabiliyorsunuz.

– Microsoft Test Manager 2012’ye Exploratory Testing özelliği eklenmiş. Kısaca; önce test ediceğiniz projeyi tfs’ten seçiyorsunuz, testi başlatıyorsunuz ve test yapıcağınız uygulamayı gezmeye başlıyorsunuz, bu sırada test manager sizin her adımınızı detaylıca kayır ediyor, sizin bul buldugunuz noktada “create bug” diyerek bug kaydı açabiliyorsunuz. Sıradan bir kayıda göre, aldığınız ekran görüntüsü, yaptığınız işlemler, izlediğiniz adımlar otomatik bug kaydına ekleniyor ve geliştiricinin önüne sağlam bir rapor gelmiş oluyor. Geliştirici açısından güzel bir yenilik.

– Coded UI Test özelliği bence dikkate değer bir özellik. Birçoğumuzun yazdığı ve kullandığımız Unit Testlerin Arayüzden yapılan versiyonu gibi düşünebiliriz. File – New  – Project – Test – Coded UI Test diyerek oluşturabiliyoruz testi. Örneğin üyelik formu düşünelim, Coded UI testi başlattıktan sonra, üye olmaya çalışıyoruz bu esnada aslında test yapmış oluyoruz. yaptığımız bu testi kayıt altına alıyor ve bunu istediğimiz kadar random veriylede besleyerek arka arkaya yaptırabiliyoruz. Test Manager 12 ile birlikte projelerimiz için oluşturacağınız Coded UI testlerini her build sonrasında çalıştırarık, uygulamanızın her geliştirim sonrasında ki stabilitesini ölçebilirsiniz, bence değerli kısmıda burası.

– Code Clone Analyze, bir diğer güzel bir özellik olan klon kod yakalama&analiz etme özelliği. Büyük projelerde daha doğrusu birden çok yazılımcının birazda kopuk çalıştığı durumlarda karşılaşılabilecek bir durumdur benzer methodları yazmak (aynı işi yapanlar). Bu araç sayesinde bir birine tam eşleşenler ve yakın eşleşenler diye size projenizde ki kodların analizini sunuyor, bulguları refactor için tfs vasıtasıyla atayabiliyorsunuz ve daha bir sürü özellik.

– VS Ultimate özelliği ile birlikte Load Testing geliyor. Bu özellik 2010 Ultimate içerisinde de bulunuyordu fakat çok yol kat etmiş, gerçek bir stres aracı haline gelmiş diyebiliriz. Burada önemli noktaya değinmek lazım; VS içinde gelen stres aracının amacı özellikle asp.net projelerini test etmek, raporlamak ve analiz etmek asla Hp LoadRunner vs uygulamalar ile karşılaştırılmamalı. LoadTesting çok uzun ve bence derin bir konu olduğundan bunu ayrı bir makale ile anlatacağım.

TFS 2012 ile birlikte yeni gelen özelliklerden bazıları ise;

– TeamExplorer vasıtaylı tüm platformlardan Tfs kullanımı sağlanıyor, Eclipse plug-in’i sanırım çıkmış.

– 12 öncesinde workspace olarak sadece server var idi, artık local‘i de eklemişler nihayet. Bu sayede offline modda çalışmak çok kolaylaştı, önceden tfs’e bağlı olmadan çalışmak delirmek için bire bir idi.

– Hala baseline muhabbeti geliştirilmemiş, changeset’ten baseline yapın gibi mantık devam ediyor sanırım.

– ALM yönetimce iyileştirmeler ve daha fazla senkronizasyon sağlanmış, buralar yönetim tarafını ilgilendiriyor. Bakınız fazlası için burada.

 

Tüm bu yeniliklerin Brian Keller (buradan) tarafından notlarını buradan indirebilirsiniz (okumalısınız!). Yine Brian tarafından paylaşılan bu özellikleri kolayca test edebilmeniz için hazırlanmış sanal makineler mevcut onlarıda buradan indirebilirsiniz.