270 likes | 628 Views
ClickOnce ile Windows Uygulamalarının Dağıtılması. Atakan Kesler Yazılım Danışmanı Microsoft Regional Director atakan.kesler@bilgeadam.com b-akesle@microsoft.com. Gündem. ClickOnce Nedir? Publish Çevrimiçi ve Çevrimdışı Çalışma Çalışma Şekli Bootstrapper Manifesto Dosyaları Güvenlik
E N D
ClickOnce ile Windows Uygulamalarının Dağıtılması Atakan Kesler Yazılım Danışmanı Microsoft Regional Director atakan.kesler@bilgeadam.com b-akesle@microsoft.com
Gündem • ClickOnce Nedir? • Publish • Çevrimiçi ve Çevrimdışı Çalışma • Çalışma Şekli • Bootstrapper • Manifesto Dosyaları • Güvenlik • System.Deployement
ClickOnce Vizyonu Windows uygulamalarının kolay ve güvenli bir şekilde web üzerinden dağıtılmasını sağlamak.
ClickOnce Öncesi • Yazılan uygulamaları tüm makinaları tek tek yükleme zorunluluğu. • Uygulamalarda yapılan güncellemelerde tüm programı kaldırıp tekrar yükleme zorunluluğu. • Güncellemelerin , uygulamalar tarafından algılanma eksikliği. • Çalışan uygulamaların , yeni uygulamaların yüklenmesinden sonra çalışmama durumu (DLL çakışması) • Programların yüklenmesi sırasında kullanıcının “admin” hakkına sahip olma zorunluluğu. • Uygulamaların çevrimiçi yada çevrimdışı çalışmaya zorlanması .
Geliştirme Deneyimi • Bütünleşik VS desteği • Ana proje ile bütünleşik • Yayınlama Sihirbazı(Publish Wizard) • Uygulamayı web sunucusuna kopyalar • FTP, UNC, FrontPage Server Extensions
Çalıştırma Seçenekleri • Web – URL yada UNC adresi • Network – Dosya Paylaşımı • CD yada DVD’den
Online çalışma ve özellikleri • Offline ve online çalışma ve özellikleri
Smart Client Yüklemesi Yükleme Servis Düşük Etki Az Yönetilebilen ClickOnce ClickOnce SMS Microsoft Installer (MSI) Grup Poliçesi Çok Yönetilebilen Kontrol
VS Bootstrapper • Öncelikli ihtiyaçların yüklenmesi • Örnek (.NET FX, Crystal, DirectX, MDAC) • Bootstrapper çalıştırabilmek için admin olmak gerekir • Genişletilebilir. • İhtiyaçlardan sonra click once uygulamasının yüklenmesi • Otomatik güncellemeler için click once kullanımı • Öncelikli bileşenler için otomatik güncelleme yapılamaz • .NET FX V1.1 Bootstrapper şu anda mevcut
Client PC ClickOnce Temelleri Web Server Setup.exe Setup.exe Dotnetfx.exe Dotnetfx.exe Mdac_typ.exe a Foo.msi Foo.msi Reboot MDAC detected! Bar.application Bar.application a
Açıklamalı Yükleme • Uygulama manifestosu • Uygulamayı tarif eder. • Örn : Uygulamayı hangi bileşenler oluşturur. • Program geliştirici tarafından oluşturulur. • Yüklememanifestosu • Uygulamanın yüklenmesini tarif eder. • Örn : Hangi versiyon makinada çalışmalı • Administrator tarafından oluşturulur.
Programın Web Üzerinden Çalıştırılması ve Güncellenmesi Deployment Manifest 1.0 Application Manifest 1.0 1.1 Assembly List… Web Page w/ Link to Manifest Application Manifest 1.1 Assembly List…
Güncellemeleri Bloklama <subscription> <update> <beforeApplicationStartup /> </update> </subscription> Uygulamaların güncellenmesi uygulama.application dosyasında subscription dosyası uzaklaştırılarak engellenir.
Güvenlik • ClickOnce Uygulamaları kodları imzalamak için “Authenticode Certificate” kullanır. • MakeCert.exe (default - High Trust) – Unknown Publisher • Certificate Authority • Geliştirilmiş güvenlik • “Longhorn” > “Whidbey” > .NET V1.1 • VS yardımcı araçları • Debug in Zone • PermissionCalc • Security Exception Helper
Güvenlik : Kısıtlamalar • Bazı uygulamalar daha fazla izne ihtiyaç duyar. • Yönetilmeyenkod erişimi • Excel’e yada diğer ofis programlarına transfer • Kısıtlanmamışdosya erişimi • Kısıtlanmamışnetwork erişimi
Kullanıcı İzinleri Detayları • Uygulama gerekli izinleri ister • Uygulama manifest’inde istekler belirtilir. • VS olması gerekli izinlere karar verir. • Soru iletisi kolay ve binary formda • İlk yüklemede yada ilk çalıştırmada görünür. • Birleştirilmiş Install & Trust Prompt • Soru iletisi : • Yönetici soru iletisinin çıkmasına yada çıkmamasına karar verir.
Güvenlik Eklemesi Manifest Dosyasına : <IPermission class="System.Data.SqlClient.SqlClientPermission, System.Data, Version=1.2.30703.27, Culture=neutral, PublicKeyToken=b77a5c561934e089" version="1" Unrestricted="true"/>
ClickOnce Güvenliği • Uygulamanın geri dönmesi • Tekrar update edilmemesi • Click Once Güvenliği (Local Intranet) • Permission Calculator
System.Deployment • Mevcut durumdaki versiyonun alınması. • Güncellemeler için sunucunun senkron ve asenkron kontrolü. • Uygulamanın güncellenmesi. • Güncellenmenin incelenmesi ve olaylara cevap üretilmesi.
System.Deployment • Güncelleme Desteği • Ne zaman ve nasıl destek olacağına karar verir. • CheckForUpdate(), Update() • İhtiyaç halinde destek • İhtiyaç halinde dosya yüklenmesi • İlk yükleme sırasında gerekli dosyaların yüklenmesi • İhtiyaç halinde indirilecek dosyaların API aracılığıyla tetiklenmesini sağlar. • Assembly.LoadFrom()’un yerine geçer
TEŞEKKÜRLER atakan.kesler@bilgeadam.com b-akesle@microsoft.com