Tags: , | Categories: Hata, IDE, Tip Posted by okutbay on 14.10.2011 00:01 | Yorumlar (0)

Geçen hafta içinde yeni bir proje ekibine dahil oldum. Proje oldukça heyecanlı bir proje ama her zaman olduğu gibi bitiş tarihi belli, ne istendiği kabaca belli ama detaylar bize kalıyor... :D Ama bu yazımda bu konuyla ilgili bişiler olmayacak. Yeni projeyle beraber yaşadığım bir sorunu ve çözümünü anlatmaya çalışacağım.

 .NET frameworkü ilk versiyonundan beri kullanırım, Visual studio ise Visual Interdev zamanlarindan bu yana aktif kullandığım bir ürün. Hafta başında sıkıştırılmış olarak kaynak kodları ve veritabanı yedeği teslim aldım. Bir şekilde bunları çalıştırıp proje hakkında fikir sahibi olmam gerekiyordu.

Hemen veritabanı yedeğini yerel olarak bilgisayarımda buluna sql sunucusuna açtım. Oh mis. Sonra her developer gidi neymiş şu proje bağlantı cümlesini düzenliyip bakayım diye .sln dosyasına tıkladım... Ama karşıma bir mesaj çıktı... 

The project file "x" cannot be opened. Project type is not supported by this installation.

Dosya VS 2008 .sln dosyasıydı ve bu mesaj genelde VS 2005 ile web application destek güncellemesi kurulu olmadığında o biçimde yaratılmış projeleri açmaya çalıştığımızda almaya alışık olduğumuz mesajlardandı.

"Allah, Allah, çok ilginç..." diyerek dosyayı gönderen arkadaşı sorayım dedim. Developerı ortada olmayan ve bilgi alınma şansı kalmamış bir proje olduğunu söyledikten sonra "silverlight 2.0 projesi olması lazım" dedi...

Gel gelelim ben de zaten bi sürü silverlight SDK hödösü kuruluydu. Ufak bir googledan sonra Microsoft® Silverlight™ 2 Tools for "Visual Studio 2008 SP1" kurmam gerektiğini öğrendim... Ohhh dedim şimdi işin yoksa "Microsoft Visual Studio 2008 Service Pack 1" kur bi de diye hayıflandım... SP1 i kurdum sonra silverlight toolsu kurayım dedim. Ama ne mümkün. fatal error verip kurulumu kesiyordu. Sonra öğrendim ki ne kadar silverlight hedesi varsa kaldırıp öyle kurmak gerekiyormuş... SP1 kurucam diye hayıflandığıma çok pişman olmuştum... Sen miydin hayıflanan, al sana demişti şakacı bir kişilik. Uzun lafın kısası bir şekilde kurduk ve .sln dosyasını açtığımda başta yükleyemediğim 5 projeden 3ünü yüklemeyi başarabilmiştim.

Şekil 1: Başarıyla yüklenen 3 proje. 

Ama hala 2 proje saçma şekilde yüklenmiyordu.

 

Şekil 2: Proje yüklenme hatası.

"Ne ulan bu projeler" diye bir text editör ile proje dosyasına bakarak tiplerini anlamayı düşündüm. Tabi adamlar guid tutmuşlar ve bişi almadım. Nedir bunlar diye aradım ve proje tipleri normal şartlarda sahip olduğum kurulumun açması gereken cinstendi.

 

PlantDoctorDataServices.csproj

{349c5851-65df-11da-9384-00065b846f21};{fae04ec0-301f-11d3-bf4b-00c04f79efbc}

PlantDoctorWebPart.csproj

{593B0543-81F6-4436-BA1E-4747859CAAE2};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} 

 

Not: Ulaştığım tablo gayet faydalı bir tablo. Buraya da koyayım lazım olur sonra

Project Type Description Project Type Guid
Windows (C#) {FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}
Windows (VB.NET) {F184B08F-C81C-45F6-A57F-5ABD9991F28F}
Windows (Visual C++) {8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}
Web Application {349C5851-65DF-11DA-9384-00065B846F21}
Web Site {E24C65DC-7377-472B-9ABA-BC803B73C61A}
Distributed System {F135691A-BF7E-435D-8960-F99683D2D49C}
Windows Communication Foundation (WCF) {3D9AD99F-2412-4246-B90B-4EAA41C64699}
Windows Presentation Foundation (WPF) {60DC8134-EBA5-43B8-BCC9-BB4BC16C2548}
Visual Database Tools {C252FEB5-A946-4202-B1D4-9916A0590387}
Database {A9ACE9BB-CECE-4E62-9AA4-C7E7C5BD2124}
Database (other project types) {4F174C21-8C12-11D0-8340-0000F80270F8}
Test {3AC096D0-A1C2-E12C-1390-A8335801FDAB}
Legacy (2003) Smart Device (C#) {20D4826A-C6FA-45DB-90F4-C717570B9F32}
Legacy (2003) Smart Device (VB.NET) {CB4CE8C6-1BDB-4DC7-A4D3-65A1999772F8}
Smart Device (C#) {4D628B5B-2FBC-4AA6-8C16-197242AEB884}
Smart Device (VB.NET) {68B1623D-7FB9-47D8-8664-7ECEA3297D4F}
Workflow (C#) {14822709-B5A1-4724-98CA-57A101D1B079}
Workflow (VB.NET) {D59BE175-2ED0-4C54-BE3D-CDAA9F3214C8}
Deployment Merge Module {06A35CCD-C46D-44D5-987B-CF40FF872267}
Deployment Cab {3EA9E505-35AC-4774-B492-AD1749C4943A}
Deployment Setup {978C614F-708E-4E1A-B201-565925725DBA}
Deployment Smart Device Cab {AB322303-2255-48EF-A496-5904EB18DA55}
Visual Studio Tools for Applications (VSTA) {A860303F-1F3F-4691-B57E-529FC101A107}
Visual Studio Tools for Office (VSTO) {BAA0C2D2-18E2-41B9-852F-F413020CAA33}
SharePoint Workflow {F8810EC1-6754-47FC-A15F-DFABD2E3FA90}
XNA (Windows) {6D335F3A-9D43-41b4-9D22-F6F17C4BE596}
XNA (XBox) {2DF5C3F4-5A5F-47a9-8E94-23B4456F55E2}
XNA (Zune) {D399B71A-8929-442a-A9AC-8BEC78BB2433}
SharePoint (VB.NET) {EC05E597-79D4-47f3-ADA0-324C4F7C7484}
SharePoint (C#) {593B0543-81F6-4436-BA1E-4747859CAAE2}
Silverlight {A1591282-1198-4647-A2B1-27E5FF5F6F3B}

Kaynak: http://www.mztools.com/articles/2008/mz2008017.aspx

Proje tipinden bir sonuç çıkmayınca çaresizce hata mesajınını googleda arayıp alakalı olabilecek cevaplara bakmaya başladım. Kimin aklına gelirdi "<ProjectTypeGuids></ProjectTypeGuids>" tagleri arasında yazan guidleri silince projelerin yükleneceği. Benim de gelmezdi bir yerde okumasam. Sildim ve projeler şimdi yükleniyor... Patrona söylesen hayatta inanmaz böyle bişiye bir gün harcadığına... :D

Neyse projeleri yükledik ama bakalım derlenecek mi? %99 derlenmeyecek. Ama şu an mutluyum...  

 

  

Bu yazıyı ilk değerlendiren siz olun

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5
Tags: , , | Categories: IDE, SSS (FAQ), Tip, UI, Web Uygulaması Posted by okutbay on 01.10.2011 02:16 | Yorumlar (0)

Geliştirdiğimiz web uygulamasını belirli aralıklarla düzenli olarak bir sunucuya göndermemiz gerekiyorsa her seferinde tüm dosyaları sunucuya yüklemeye çalışmak zaman kaybettirebilir...

Son güncelleme zamanından önce değiştirilmiş dosyaları bulmak için dosya arama fonksiyonunu kullanabilirsiniz. Bulunan dosyaları seçil sildiğinizde elinizde sadece son guncelleme zamanindan bu yana degisen dosyalar kalacaktır.

Windows 7 de arama bir miktar farklı olduğundan belirli bir tarihten onceki dosyalari bulmak için arama kutucuğunua "datemodified:<‎18.‎05.‎2011" yazabilirsiniz.

 

 

1 kişi tarafından 5.0 olarak değerlendirildi

  • Currently 5/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5
Tags: , , , , | Categories: Tip, UI, Web Uygulaması Posted by okutbay on 20.09.2011 20:53 | Yorumlar (0)

İDOnun hizmetlerini beğenerek kullanıyoruz. Daha önce dikkatimi çekmemişti ama bu sefer bilet alırken bir miktar zorlandım.

İlk zorlandığım nokta bileti al butonu ile kredi kartı bilgilerinin girileceği yerin birbirine olan uzaklığıydı. Butona odaklandığım için kredi kartı bilgilerini gireceğim yeri görmekte kısa da olsa bir süre zorlandım. Bence yolcu bilgileri ile kredi kartı bilgileri yer değiştirse daha iyi olur.

Diğer bir nokta ise kullanıcının bilet alma işini sonlandırabilmesi için şartları kabul etmesi gerekiyor. Burada bir sorun yok. Ama şartları kabul etmeninizin gerektiğini anlamanın tek yolu kredi bilgilerini girdikten sonra bir kısım checkbox ın altında yer alan ayrı bir checkboxı işaretlemeniz gerektiğini söyleyen bir notu okumak...

Bu notu okumayı atlarsanız benim gibi "yahu bu bilet al butonu niye pasif, neyi eksik yaptım" diye söylenerek aranırsınız.

Oysa "bilet al" butonunu da bu bilgiyi vermek için kullansa, mesela pasif yapmasa tıklayınca uyarı mesajı verse, ya da onun sağına soluna bi yere de not yazsa kullanılabilirlik adına daha yüksek bir kaliteye ulaşılır. Çünkü kişiler bir an önce bileti almaya odaklandıkları için diğer bölümleri hızlı hızlı geçip o butona tıklama eğilimindedir. Ve siz butona tıklama eğiliminde olan kullanıcının bu işlevi kullanmasını engelleyerek sadece onlar için hayatı zorlaştırırsınız.

 

 

 

 

 

 

2 kişi tarafından 3.5 olarak değerlendirildi

  • Currently 3,5/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5
Tags: , , | Categories: IDE, Programlama, Tip Posted by okutbay on 16.09.2011 21:42 | Yorumlar (0)

.NET uygulamalari gelistirirken Visual Studio versiyonlarini kullanmayi tercih ediyoruz. Tabi yıllar içinde Framework versiyonları ile beraber visual studio versiyonlari da değişti. Değişmeyen bir tek şey kaldı benim için. Her kurulum sonrasında Windows > Close All Documents için bir kısayol ataması yapmak...

Benim tercihim Shift + Ctrl + F4...  

Bu yazıyı ilk değerlendiren siz olun

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5
Tags: , , , | Categories: Script, Tip, Veritabanı Posted by okutbay on 22.04.2011 19:53 | Yorumlar (0)

SQL Serverda text deger içeren bir kolonda like ile sorgulama yapmak istediğinizde arama kriteriniz sorgularda özel anlamı olan karakterler içeriyorsa [] içinde kullanabilirsiniz

Örneğin "_" içere arama kriterlerinde [] içinde yazarsanız sorgunu o kolonda içinde "_" geçen kayıtları döndürecektir... 

Bu yazıyı ilk değerlendiren siz olun

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5
Categories: Web Uygulaması, Tip, SSS (FAQ), Script Posted by okutbay on 22.02.2011 21:01 | Yorumlar (0)

Selamlar, javascript i çok çirkin bulmama ve sevmememe rağmen bir web uygulama geliştiricisinin hayatını nasıl kurtara bileceğinin farkındayım... Tabi yazılan javascript deneyimsiz ellerden çıkmışsa bir o kadar da ölümcül olabilir...

Bugün sizlerle çok ufak ama hayat kurtaracak bir script parçası paylaşacağım... 90lı yılların sonunda ASP ile uygulama geliştirirken sık sık frame ve iframe yapılarını kullanmak zorunda kalırdır. Daha sonra ASP.NET le beraber kendi adıma bunları hiç kullanmadım desem yeridir. Eğer uygulamanızda forms authentication (ya da benzeri bir yapı) kullanıyorsanız frame içinde gösterilen sayfanın login gerektirecek bir durumla karşılaşması halinde frame içinde login sayfasına gidecek ve login olduğunuzda eğer return url bilinmiyorsa ana sayfaya gitmesi halinde hoş olmayan bir görüntü ile karşılaşabilirsiniz. Bu sorunu aşmanın bir kaç farklı yolu olsa da bana en pratik geleni sizinle paylaşmak istiyorum. Bu ufak script ilgili sayfada çalışarak en üst framede yüklenmesini garanti edecektir...

Klavyeleriniz şen ola.

<script type="text/javascript" language="javascript">
    if(top.frames.length>0){
        top.location = 'hede.aspx';
    }
</script> 

1 kişi tarafından 4.0 olarak değerlendirildi

  • Currently 4/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5
Categories: IDE, Tip Posted by okutbay on 10.02.2011 02:48 | Yorumlar (0)

Son versiyonu aldığınızdan emin olmak için "Get latest version of item on check out" seçeneğini işaretleyiniz.

image

Ayrıca isteğe bağlı olarak kaza eseri check out etmemek için aşağıdaki ayarı da yapabilirsiniz

image

1 kişi tarafından 4.0 olarak değerlendirildi

  • Currently 4/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5
Tags: , , , , | Categories: Tip, UI, Web Uygulaması Posted by okutbay on 21.01.2011 20:02 | Yorumlar (0)

Her ne kadar ülkemizde de yavaş yavaş arayüz geliştirme ve yazılım geliştirme farklı uzmalıklar olarak algılanmaya başlasa da hala katedilmesi gereken çok mesafe var.

Kullanılabilirlik konusu alt yapının yetenekleriyle sınırlıdır. Alt yapının size izin vermediği özelliklerin müşteriler tarafından istenmesi elbette geliştiren için çok büyük acıdır. Ama öte yandan alt yapının yeteneklerini bilmek ve arayüzde mümkün olan en iyi kullanılabilirliği sunmamız oluşturmaya çalıştığımız ürünün kalite algısını üst düzeylere çıkartacaktır.

Elbette bu yeteneklerin yanlış kullanılması da ters bir etkiyi doğrucaktır. Örnek vermek gerekirse bir arama kutucuklarına yazmak için geldiğiniz de önceki yazılmış metnin silinmesi çok yaygın bir uygulama. Bir çok sitede görülebilir. Ama yaygın olması doğru olduğu anlamına gelmiyor. Mantık olarak kullanıcının yazdığı bir metni yine kullanıcının silmesi doğrudur. Burada bahsettiğim arama kutucuğunda bulunan "Type to search" initial textin silinmesi değil. "abc xyz" şeklinde yaptığım ve arama sonuçlarından memnun olmayarak arama metnini değiştirmek istediğimde "abc xyz" metninin temizlenmesi. Arayüz geliştiren arkadaşlara önerim bu metni silmek yerine, seçili duruma getirebilirler. En doğru uygulama bu olacaktır.

Ne kadar can sıkıcı olabileceğine örnek vermek gerekirse yazdığım durak adını her seferinde tekrar yazmak zorunda kaldığım şu sayfaya bakabilirsiniz...

image

http://harita.iett.gov.tr/

Aynı mantık sayfa üstünde bulunan hat arama ve adres arama kutuları için de uygulanmış ve kanımca hoş bir kullanılabilirlik örneği değil... Geliştirmeyi yapan arkadaşın kodunu sadece initial texti temizleyecek ve diğer metinleri seçecek şekilde değiştirmesi yeterli olacaktır.

Tabi ki bu haliyle de çok faydalı. Kullanışlı ama çok ufak dokunuşlarla kullanılabilirlik ve kalite algısını üst düzeye çıkarmak mümkün.

Klavyeleriniz şen ola...

1 kişi tarafından 5.0 olarak değerlendirildi

  • Currently 5/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5
Tags: , , | Categories: Tip, Programlama, Genel Posted by okutbay on 26.02.2010 11:41 | Yorumlar (0)

You can always write comment to your codes. But comment itself can be outdated and misleads a developer. So writing self-documented codes must our first aim to make our code more maintainable.

In my opinion a big step to achieve self-documented code begins writing if clauses.

If a developer understands if clause, he/she understand purpose of the code block more easily.

But how can we write more readable if clause.

Very easy: Don't write logical comparisons into if clause.

    1 if ((preprocessedFailedEmails.Count > 0) || (failedEmails.Count > 0))

    2 {

    3     //some code

    4 }

Although this is a very simple if clause it's a bit hard to get what is happening there. Let's make it more readable.

    1 bool hasErrors = ((preprocessedFailedEmails.Count > 0) || (failedEmails.Count > 0));

    2 if (hasErrors)

    3 {

    4     //some code

    5 }

Happy coding...

Bu yazıyı ilk değerlendiren siz olun

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5
Tags: | Categories: IDE, Genel, Tip Posted by okutbay on 25.02.2010 19:08 | Yorumlar (0)

If you're working with lot of projects, or you want to release your DLL to specific location you may need to add some extra actions to to your build.

For example. You have project that uses a DLL of another project of another solution. Sometimes you build your DLL in debug mode, sometimes you build your DLL in release mode. When you build your class library output directory depends on the build mode. Question is: Which DLL will be referenced by your project? To prevent this confusion you can add an copy operation to your post-build events. Then reference the copied DLL.

Here is the sample macro to do this:

cd $(OutDir)
copy $(TargetFileName) D:\Sources\DLLReferences\MyProjectOutpu

Just go to your project properties. Switch "Build Events" tab. Add this sample macro to Post-build event command line. When you build your it will copy result file to specified location.

build-events

Figure 1: Build events window of your project.

post-build-events-command-line-window

Figure 2: A Build event Command line window

You can find a list of macros and their descriptions here:

$(ConfigurationName)

The name of the current project configuration, for example, "Debug|Any CPU".

$(OutDir)

Path to the output file directory, relative to the project directory. This resolves to the value for the Output Directory property. It includes the trailing backslash '\'.

$(DevEnvDir)

The installation directory of Visual Studio 2005 (defined with drive and path); includes the trailing backslash '\'.

$(PlatformName)

The name of the currently targeted platform. For example, "AnyCPU".

$(ProjectDir)

The directory of the project (defined with drive and path); includes the trailing backslash '\'.

$(ProjectPath)

The absolute path name of the project (defined with drive, path, base name, and file extension).

$(ProjectName)

The base name of the project.

$(ProjectFileName)

The file name of the project (defined with base name and file extension).

$(ProjectExt)

The file extension of the project. It includes the '.' before the file extension.

$(SolutionDir)

The directory of the solution (defined with drive and path); includes the trailing backslash '\'.

$(SolutionPath)

The absolute path name of the solution (defined with drive, path, base name, and file extension).

$(SolutionName)

The base name of the solution.

$(SolutionFileName)

The file name of the solution (defined with base name and file extension).

$(SolutionExt)

The file extension of the solution. It includes the '.' before the file extension.

$(TargetDir)

The directory of the primary output file for the build (defined with drive and path). It includes the trailing backslash '\'.

$(TargetPath)

The absolute path name of the primary output file for the build (defined with drive, path, base name, and file extension).

$(TargetName)

The base name of the primary output file for the build.

$(TargetFileName)

The file name of the primary output file for the build (defined as base name and file extension).

$(TargetExt)

The file extension of the primary output file for the build. It includes the '.' before the file extension.

Reference: Pre-build Event/Post-build Event Command Line Dialog Box

Bu yazıyı ilk değerlendiren siz olun

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5