Makale Özeti

Geliştirdiğimiz Windows tabanlı uygulamaların dağıtımlarını ClickOnce teknolojisi kullanarak daha rahat ve sorunsuz bir şekilde gerçekleştirebiliriz. Bu makalemde ClickOnce teknolojisi hakkında bilgi vereceğim ve örnek bir ClickOnce uygulaması üzerinden ClickOnce teknolojisi ile yapılabilecekleri anlatacağım.

Makale

         Merhabalar,
 
         Geliştirdiğimiz Windows tabanlı uygulamaların
dağıtımlarını ClickOnce teknolojisi kullanarak daha rahat ve sorunsuz bir şekilde gerçekleştirebiliriz. Bu makalemde ClickOnce teknolojisi hakkında bilgi vereceğim ve örnek bir ClickOnce uygulaması üzerinden ClickOnce teknolojisi ile yapılabilecekleri anlatacağım.

         Windows uygulamalarında güncelleme yapılırken kullanıcı tüm uygulamayı kaldırıp yeniden kurmak durumunda kalır. Ayrıca eğer kullanıcı bilgisayarda admin değilse uygulama kurma haklarına sahip olmadığından uygulamayı kuramaz. Eğer uygulama birden fazla makinaya kurulacaksa, exe dosyasının her makinaya ayrı ayrı yüklenmesi gerekir. Kurulan veya kaldırılan bir uygulama çalışmakta olan diğer uygulamanın dll'lerini silerek veya değiştirerek uygulamanın çalışmamasına neden olabilir veya sonradan kurulan bir uygulama bizim geliştirdiğimiz uygulamaya biraz önce bahsettiğim şekilde bir etkide bulunabilir. Bunlar ve bunlar gibi karşılaşılması olası problemler yüzünden Windows uygulamaları yerine web uygulamaları geliştirmek gibi bir çözüme gidilebilir ancak ClickOnce daha pratik bir çözüm sağlamaktadır. ClickOnce Windows projelerinin esnekliğini web projelerinin kolay dağıtılabilirliğiyle birleştiren bir teknolojidir. Çünkü biraz önce yazdığım Windows uygulaması geliştirmenin dezavantajlarını ClickOnce kullanarak uygulamanızı publish ettiğinizde yaşamazsınız. Geliştirilen uygulama ClickOnce ile bir web server'dan, ağ üzerinde paylaşılan bir yerden veya CD'den kullanıcılara dağıtılabilir. Uygulama client'lara kurulabildiği gibi, makinaya kurulum yapmaya gerek olmadan herhangi bir ağ yolundan da çalıştırılabilir. Böylece kullanıcının bilgisayarında cache'lenir ancak kurulumu yapılmaz. Uygulama güncellemelerinin olup olmadığı belirlenen zamanlarda veya uygulamanın her çalıştırıldığında kontrol edilebilir. Uygulamanın yüklü olması gereken en alt versiyon, yapılan güncelleştirmenin kullanıcı tarafından kurulmasının zorunlu olup olmadığı gibi seçenekler de ClickOnce teknolojisi sayesinde çok kolay bir şekilde ayarlanabilir.


         ClickOnce ile deploy edilen uygulamalarda iki adet XML dosyası bulunur. Bu dosyalar application manifest ve deployment manifest dosyalarıdır. Application manifest dosyası uygulamayı geliştiren kişi tarafından oluşturulur ve uygulama ile ilgili dosyaların, gerekli izinlerin, güncelleştirme ayarlarının tutulduğu dosyadır. Deployment manifest dosyası ise uygulamanın nasıl deploy edileceği bilgisinin, uygulamanın çalışacağı en düşük versiyon bilgisinin ve uygulamanın referans aldığı kütüphanelerin tanımlandığı dosyadır. Publish Wizard kullanılarak application ve deployment manifest dosyaları oluşturulabilir. Uygulama deploy edildikten sonra dosyalar belirlenmiş olan web server, CD veya paylaşımdaki bir yere kopyalanır. Application manifest ve uygulama dosyaları da deployment manifest dosyasının içinde belirtilen yerlere kopyalanırlar.


         Şimdi örnek bir uygulama oluşturalım, yeni versiyonlarını oluşturalım ve her farklı versiyonu ClickOnce ile publish edelim.



        İlk versiyona hiçbir şey eklemeden uygulamamızı deploy edelim.
       

        ClickOnce ile uygulamamızı ilk kez deploy etmek için oluşturmuş olduğumuz projemize sağ tıklayarak Properties penceresini açıyoruz:

        Açılan ekranda sol tarafta bulunan sekmelerden Publish 'e basarak projemizin ClickOnce ayarlarının yapılacağı ekranı açıyoruz:



         Bu ekrandaki Publish Location alanındaki Publishing Location uygulamanın son versiyonuna ait dosyaların ve uygulamanın son versiyonunun nereye kopyalanacağı bilgisinin, Installation URL ise uygulama kurulumunun online olarak indirilebileceği adres bilgisinin girildiği alanlardır.

         Ekrandaki Install Mode and Settings alanında ise iki adet radiobutton bulunmaktadır. "The application is available online only" seçeneği seçilirse kullanıcı uygulamayı sadece yukarıda belirtilmiş olan Installation URL'e erişerek çalıştırabilir. Uygulama Start menüsüne ve Add/Remove Programs listesine eklenmez, sadece cache'lenerek çalıştırılır. Uygulama diğer bir seçenek olan "The application is available offline as well (launchable from Start menu)" seçilerek publish edilirse, kullanıcının uygulamayı çalıştırması için Installation URL'e erişmesine gerek kalmaz, uygulama Start menüsü altına  ve Add / Remove Programs listesine eklenir ve Start menüsü üzerinden erişilerek çalıştırılabilir.

         Bu alandaki dört adet buton ve ne işe yaradıkları aşağıda açıklanmıştır:
 

           Application Files:
          
Application Files ekranında uygulamanın bileşenleri (dll, exe vs) listelenir ve kullanıcı bu bileşenlerin publish status ve download group ayarlarını yapar. Publish status, bileşenlerin uygulama publish edilirken uygulama ile beraber publish edileceğini (Include(Auto)) veya bu bileşenlerin uygulamanın çalışması için bir gereklilik olduğunu (Prerequisite) veya uygulama kurulumuna dahil edilmeyeceğini (Exclude) belirtir. Bu ekranda listelenen öğelerden uygulamanın .exe veya varsa .config dosyasının publish status'u ve download group'u değiştirilemez.
          


          
Ayrıca projemize eklemiş olduğumuz dll dosyalarının refereranslarının CopyLocal özellikleri True olarak ayarlanmışsa, dll (Include(Auto)) olarak işaretlenir ve kurulumda uygulamanın klasörüne kopyalanır. CopyLocal özelliği False ise dll'in kurulumdan önce GAC'e eklenmiş olması veya developer tarafından el ile Include durumuna getirilmiş olması gerekir:


    

         Prerequisities:
         Uygulamamızın çalışması için gerekli olan araçları bu ekrandan işaretlediğimizde, uygulamamız kurulmadan önce seçili olan gerekli dosyalar makinada kurulu değilse öncelikle onların kurulumu tamamlanır ve sonrasında uygulama kurulumu başlar.




         Ekrandaki listenin altında yeralan 3 radiobutton ise bu araçların nereden yükleneceğini seçtiğimiz alandır. Bu radiobutton'lardan bize uyanı seçerek uygulama için gerekli bu araçların, dosyaları yayınlayan firmanın web sitesinden, uygulamamızın publish edildiği lokasyondan veya bizim belirlediğimiz bir lokasyondan indirilmesini sağlayabiliriz. Ben örnek projemizde bu araçların uygulamamızın publish edildiği lokasyondan indirilmesi seçeneğini işaretledim:





         Updates:
        Updates ekranında uygulamamızın güncelleştirmelerinin olup olmadığının kontrol edilmesi veya edilmemesi, eğer ediliyorsa uygulama çalıştırıldıktan sonra mı önce mi kontrol edileceği, hangi sıklıkta güncelleştirmelerin kontrol edileceği, uygulamanın çalışacağı minimum versiyon ayarının yapılması ve publish edilen lokasyondan farklı olarak bir de update lokasyonu kaydedilmesi bu ekrandan yapılır.




         Options:
        Bu ekranda çeşitli publish seçeneklerini ayarlayabiliriz. Ekrandaki Publisher name alanı program kurulduktan sonra Start - Programs altındaki menüde görülecek isimdir. Product name ise uygulamanın menüsünün altında görülecek olan uygulamanın kendisinin adıdır.



        Options ekranında ayarlanabilecek diğer önemli bir özellik de uygulamamızın client'lar tarafından kurulurken kurulacak olan dizindeki hangi sayfadan bu kuruluma ulaşılacağının ayarlandığı yer olan Deployment web page özelliğidir. Deployment web page varsayılan olarak publish.htm olarak adlandırılmıştır, fakat bu ekrandan varolan başka bir sayfa ile değiştirilebilir.

        Publish ekranındaki başka bir alan da Publish Version alanıdır. Burada yer alan checkbox'ı işaretlediğimizde her deployment'ta uygulamamızın versiyonu otomatik olarak 1 artar. Istersek textbox'lara kendimiz de versiyon numarasını yazarak deployment'tan once versiyonu belirleyebiliriz.




        Bütün bu ayarlardan sonra artık uygulamamız publish edilmeye hazır hale gelir ve ekrandaki Publish Now butonuna basarak uygulamamızı publish edebiliriz.

        Makalemin ikinci kısmında clickonce ile uygulamaları publish edebileceğiniz alternatif yöntemi inceleyeceğiz. Bunun yanısıra y
azmış olduğumuz bir uygulamanın nasıl deploy edileceğini örneklendirerek inceleyeceğiz ve gelişmiş özelliklerden bahsedeceğiz.

        Işıl ORHANEL