Cuma, Kasım 12, 2010

WSDL.exe ile Web Service Proxy Class yaratma


C:\Program Files\Microsoft SDKs\Windows\v7.0A\bin

tarzı biryerlerde bulabileceğiniz wsdl.exe kullanarak proxy class ınızı yaratabilir ve daha sonrasında servername i parametrik hale getirebilirsiniz.

wsdl /language:CS /out:SampleProxyClass.cs http://localhost/WSVirtualDir/Service.asmx?WSDL

Farklı options parametreleri de mevcut.

Perşembe, Ekim 07, 2010

Tek vuruşta Solution Explorer daki tüm açılır nesneleri Collapsed durumuna getirebilirmisiniz? Bu işkenceden bedavaya kurtulun!



Visual Studio solution açıldığında explorer da tüm nesnelerin açık durumda gelmesi bende bir süredir karın ağrısına sebep oluyordu. Microsoftun böyle bariz şeyleri pakete koymamasını da anlamak mümkün değil. Buna kesin ve etkili çözümü bulduğumda buraya not geçmeyi unutmuşum. Birkaç değerli abimizin scriptlerinden derlenerek hazırlanan hicaz makamındaki "Collapse Solution Explorer" adlı toolbar butonu eserini icra edeceğiz :p


Tools -> Macros -> Macro Explorer açıyoruz.
"My Macros" sağ tık new module diyip Collapse ismini verdiğimiz modul içeriğine aşağıdakini yerleştiriyoruz


Imports System
Imports EnvDTE
Imports System.Diagnostics

Public Module Collapse
Sub CollapseAll()

' Get the the Solution Explorer tree
Dim solutionExplorer As UIHierarchy
solutionExplorer = DTE.Windows.Item(Constants.vsext_wk_SProjectWindow).Object()

' Check if there is any open solution
If (solutionExplorer.UIHierarchyItems.Count = 0) Then
Return
End If

' Get the top node (the name of the solution)
Dim rootNode As UIHierarchyItem = solutionExplorer.UIHierarchyItems.Item(1)
rootNode.DTE.SuppressUI = True

' Collapse each project node
Collapse(rootNode, solutionExplorer)

' Select the solution node, or else when you click
' on the solution window
' scrollbar, it will synchronize the open document
' with the tree and pop
' out the corresponding node which is probably not what you want.

rootNode.Select(vsUISelectionType.vsUISelectionTypeSelect)
rootNode.DTE.SuppressUI = False

End Sub

Private Sub Collapse(ByVal item As UIHierarchyItem, ByRef solutionExplorer As UIHierarchy)

For Each innerItem As UIHierarchyItem In item.UIHierarchyItems
If innerItem.UIHierarchyItems.Count > 0 Then

' Re-cursive call
Collapse(innerItem, solutionExplorer)

' Collapse
If innerItem.UIHierarchyItems.Expanded Then
innerItem.UIHierarchyItems.Expanded = False
If innerItem.UIHierarchyItems.Expanded = True Then
' Bug in VS 2005
innerItem.Select(vsUISelectionType.vsUISelectionTypeSelect)
solutionExplorer.DoDefaultAction()
End If
End If

End If
Next

End Sub
End Module


Sonrasında Toolbarların orada boş biryere sağ tıklayıp customize diyoruz.

Toolbars sekmesinde new diyerek kendi toolbarımızı yaratıyoruz. (Örn: Mahmut)

Commands sekmesine geçip MyMacros.Collapse.CollapseAll nesnesini yeni oluşan Mahmut toolbarının üstüne sürüklüyoruz.

Toolbarımızı IDE üzerinde uygun bir yere yrleştiriyoruz. Ben solution explorerın sağ üstünü tercih ediyorum.

Sript her türlü çalışıyor. Çalışma süresini çok büyük solution larda 30 saniyeye kadar vurduğunu gördüm ama ederi bu zaten tüm nodları recursive olarak kapatıyor.
Az laf, çok iş, daha bir otomasyon



Teknoloji geliştirirken, Ar-Ge yaparken, yazılım yaparken veya genel olarak katma değeri yüksek bir iş yaparken, bir yandan da formaliteleri azaltıp otomasyonu artırıcı işlere zaman ayırmamanın maliyeti bence sandığımızdan daha yüksek. Verimliliği artıramıyorsak, büyük sistemler üretmek imkansız hale gelecektir. Buna küçük bir örnek olarak aklıma gelmişken not alacağım bir şey var. Visual Studio da proje şablonları ile oynayarak her yeni proje yaratmada tekrarladığımız hareketleri azaltabiliriz. Bunun için aşağıdaki folderlardan gerekli proje tipini bulup düzenlemek gerekiyor.

VS 2008 için

C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\ProjectTemplates
C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\ProjectTemplatesCache


Ben düzenlemeyle scriptle fln uğraşmak istemiyorum diyorsanız, ozaman kendi şablonunuzu yarataacksınız. Kendi yazılım altyapınızın ihtiyacını karşılayacak türden proje tiplerini bu şekilde yaratıp, şirketinizdeki farklı proje ekiplerinin kullanımına sunabilirsiniz. Önce yeni bir proje yaratıp bunu istediğiniz formata getiriyorsunuz. Referanslar ekleme, assamblyinfo verme, dizinler ve sınıflar yaratma vs. işleri tamamlandıktan sonra projeyi kaydedip, File -> Export template e tıklıyorsunuz. Yönergeleri takip ederek proje şablonunuza kavuşuyorsunuz.

Pazartesi, Temmuz 12, 2010

Windows Server 2003 den Elle Program Kaldırmak


Program kaldırmak için önerilen yöntem Program Ekle/kaldır dan kaldırmak olsa da bazen burada hata alıyoruz. Böyle bir durumda programı elle kaldırmak için aşağıdaki adımlar takip edilebilr.

1. Yedekle
2. Web App ise iis den virtual directory sil
3. Program dizinini sil (Genellikle "c:\program files" altında olur)
4. Registry den sil (önce yedekle). Aşağıdaki keylerin altındaki keyleri genişleterek ProductName değerlerini kontrol edip silinecek programı içeren keyi sil.
* HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall
* HKEY_CLASSES_ROOT\Installer\Products
* HKEY_CURRENT_USER\Software\Microsoft\Installer\Products
* HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Installer\Products
5. Start menuden ve masaüstünden kısayolları sil
6. Windows startup dan kaldır
7. Sistem dizinlerinden fazladan eklenen dosyaları (eğer biliyorsak) sil. Mesela "c:\windows" altına bir dll koymuş olabilir. Veya Global Asembly Cache e bir dll kaydetmiş olabilir.

Salı, Mayıs 18, 2010

Sebebini Bilmediğimiz Şeyler Acı Çekmemize Sebep Olmasın

Eğer sebebini anlayamadığınız bişey varda siz bunu anlayamadığınız için kafayı yiyorsanız naparsınız? Ben genelde kendimi bişeye inandırıp kandırmaktansa kafayı yemeye devam ediyorum. Sonunda zaten kafayı taktığın şey kendi kendine anlamını yitiriyor. Bayağılaşıyor, ilgi çekici olmaktan çıkıp hergün boşuboşuna kafayı taktığın bir nesne haline geliyor. Böylece kendini bişeylere inandırmadan sonunda o şeyden kendini almış oluyorsun.

Visual Studio MS ortamlrı ile bütünleşik yazılım yapmak için alternatifi olmayan bir ortam. İşin içinde üçüncü parti bir ürün ya da platform yoksa VS İyi bir kullanım deneyimi sağlıyor. Yalnız TFS ve sourcesafe entegrasyonu tarafında birçok hatayla karşılaştırğım da bir gerçek. Genel olarak daha basit kurgulanabilirdi diye düşünüyorum. Bir hatayla karşılaştığımda genellikle ekrandaki yönergeyi anlamakta ve bir seçim yapmakta zorlanıyorum. Sorun versiyonlama ile alakalı olduğu için kod kaybetme korkusundan da elim kolum bağlanıyor bu durumda. Hatanın gerçek nedenini ancak TFS veya VS ekibinden bir yazılımcı rahatca anlayabilir heralde. Bir süre bu tür hatalarla karşılaşınca eliniz alışıyor ama yinede source control işlemleri daha az hataya açık olmalı. Ben hergün manual olarak yedekleme yapıyorum kötü bir durumla karşılaşmamak için. Böylece elim de korkak alışmamış oluyor.

VS source control entegrasyonunda sebebini anlayamadığınız garip hatalarla karşılaşıyorsanız çözümü muhtemelen client cache i temizleyerek giderebilirsiniz. Performans kazanmak için olsa gerek, client tarafta birçok şeyin cache lendiğini göreceksiniz. Win 2003 server için aşağıdaki dizinlerin altındakileri silerseniz cache temizlenmiş olacak.

Visual Studio Cache
C:\Documents and Settings\oguzhano\Local Settings\Application Data\Microsoft\VisualStudio

TFS Cache
C:\Documents and Settings\oguzhano\Local Settings\Application Data\Microsoft\Team Foundation\(Version)\Cache

Ayrıca ASP.NET kontrolleri ile alakalı sorunlarda website cache i de temizleyin
C:\Documents and Settings\oguzhano\Local Settings\Application Data\Microsoft\WebsiteCache

Salı, Nisan 27, 2010


GLOBAL ASSEMBLY CACHE DEN DLL SİLEMEMEK

MSI kullanarak kurulan programların dll leri GAC da kutsal ruh tarafından korumalı hale geliyorlar. Bunları kaldırabilmek için uninstall yapmak gerekiyor. Windows\Assembly altına gidip teker teker kaldırmaya izin vermiyor windows. Hani aşağıdaki manual yöntem varolmasa bi mantığı var dicem ama bence gayet gereksiz kaçmış bişey. Gacutil -u kullanmak da GUI den delete yapmakla aynı işlemi yaptığı için işe yaramıyor. Bunu denediğimizde şu uyarıyı alıyoruz.


Assembly xxx could not be uninstalled because it is required by other applications.











Bir söylentiye göre Steve Balmer ile Hikmet Karaman baba bir kardeşlermiş. Geçim sıkıntısı yüzünden cami avlusuna bırakılan Steve e yoldan geçmekte olan ABD li bir hayır sahibi sahip çıkmış.



Hatta bazen işletim sistemi bilinmeyen bir nedenden dolayı MSI yerine elle register edilmiş dll leri bile kaldırmaya izin vermiyor. Böyle durumlarda dll i elle kaldırabilmek için sırasıyla denenebilecek yöntemler şunlar:

Not: Windows registry de bişeyler yapmadan önce gerekli yerin yedeğini almak şık bir davranış olacaktır.

1) HKLM\SOFTWARE\Classes\Installer\Assemblies\Global\ altındaki xxx.dll diye geçen değeri silmek
2) Olmadımı? Gene aynı yerdeki Default değeri silmek
3) Gene mi olmadı? HKCU\Software\Microsoft\Installer\Assemblies\Global altındaki default değeri silmek









Bill Gates in Balmera birçok iş itelediği bir toplantı sonrasında sinirlerine hakim olamayan Balmer ağır hakaretler ile birlikte birtakım el kol hareketleri ile Gates e çıkışmıştı. Olay sonrası öpüşüp barışan ikili akşam Cumhuriyet biranesinde içmeye gitmiş ardından da sarhoş olup nevizadede turist kızlara laf atmışlardı.




Bu da olmadıysa google diyorum arkadaşım. Veya veriyim Steve Balmer ın telefonunu MS a case açsın en yetkili kademeden. Ama çağrı bırakın o sizi arasın zengindir o.


Steve Balmer
Cep: 0505 2856602
Adres: MS HQ, PK: 34450 Aşağı Redmond USA (Redmond camisinden sonraki Sahafların yanı)


STEVE BALMER WINDOWS 1.0 REKLAMINDA HALKA SESLENİYOR

Cumartesi, Şubat 06, 2010

Bunda hız yok mesafe var gülüm !

Geçen gün PC ye benim emektar 6600 ile (ki 6 senedir benimle askere dahil heryere gelerek ve zor şartların hepsinden anlının akıyla çıkarak kendisini tarihe altın harflerle yazdırmıştır) çektiğim fotorafları atmak istedim. Aşağıdaki listede görebileceğiniz gibi bunu yapabilmek için teorik olarak elimde yeterli donanım ve yazılım mevcuttu.


İçindekiler:
USB girişli masaüstü bilgisayar (1 Adet)
Bluetooth USB Dongle (1 Adet) ( hız yok mesafe var :))) bu konuya ilerde değinicem )
Bluetooth dongle driverları yüklü Windows XP professional (1 Adet)
Alemin kralı Nokia 6600 (1 Adet)




Uzun uğraşların sonucunda yapabildiğim tek şey bluetooth arayüzünden 6600 ı algılatabilmek oldu. Bunun üzerine internetten Nokia PC Suite yazılımını indirip kurmaya kararverdim. Bana kafayı yedirten tarzda bisürü alakasız process görev yöneticisine yerleşiverdi kurulumun ardından. Antivirüs kullanmayı performans ve güvenlik açısından tercih etmiyorum. İşlemleri kendim kontrol altında tutmayı daha çok severim. Yeni gelen tüm processleri internetten arayarak ve yerlerine fln bakarak tek tek kontrol edip birazda sezgisel bişekilde iyi hadi kalsınlar şeklinde bir karar verdim. Bukadar uğraşa ve process çöplüğüne ramen PC suite denen arkadaş ilk açılışta telefonunuzu bilgisayara bağlamanız gerekmektedir gibi saçma bir uyarı verince hepten çıldırdım. Yine o baştaki ilkel ayar ekranından telefonu ekledim kaldırdım yarım saat boyunca. "Son kez deniyorum" dedikten sonra nedense biranda PC suite çalıştı. Sonrasında fotoları falan attım PC ye de muradıma ermiş oldum böylece. Taktımmı takıyorum bazen.

Ama asıl bombayı sonra Bahadır hatırlattı bana. Ben bu bluetooth dongle satın aldığım adamla dehşetengiz bi diyalog yaşamıştım. Şu şekilde:

Ben: Abi merhaba. Blutut ile bilgisayara bağlanmak istiyorum da o aletlerden varmı sende?
Telefoncu: Bunlar var gülüm (camekandaki iki çeşit altei göstererek. sanki mücevher alıyoruz)
Ben: Ne fark var abi bunların arasında?
Telefoncu: Soldaki 20 metre sağdaki 200 metre.
Ben: 200 metre baya iyimiş. Hızları nekadar bunların?
Telefoncu: Bunlarda hız yok mesafe var gülüm.
Ben: ?!? Hızı da vardır abi bişekil. Verde üzerine bakayım yazıyodur.
Telefoncu: Ben sürekli satıyorum bunlardan güzel kardeşim. Ben olsam almışken 200 metreden alırdım.
Ben: Kutuda da bişey yazmıyo ama. Bi sorun çıkmaz dimi?
Telefoncu: Bişey olursa getirirsin burdayız biz.