cub-e.net

just coding...

Dynamics CRM Tablet Uygulama Magazalari

Dynamics CRM Tablet uygulamasini kurmak icin elimizdeki cihaz ya da cihazlarin uygulama magazalarina gitmemiz gerekmekte.

Windows 8 : http://apps.microsoft.com/windows/en-us/app/93772212-7b72-4aee-bc4e-b1adb7712ebe



Windows 8.1 : http://apps.microsoft.com/windows/en-us/app/dec52fd4-dbc0-41b1-9cdd-cdc070051918



iPad : https://itunes.apple.com/us/app/microsoft-dynamics-crm/id678800460?mt=8


Android Tablet : https://play.google.com/store/apps/details?id=com.microsoft.crm.crmtablet

Windows 10 :)


Yeni Windows 10 işletim sisteminin kurumlara yönelik avantajlarını ve kullanıcılarla ortak geliştirme programını öne çıkaran ilk tanıtımını sizlerle paylaşmanın heyecanı içindeyiz. Bu yazıda Windows 10 teknik ön izleme sürümüne dair detayları bulabilirsiniz. 


Yepyeni bir Windows neslinin ilk habercisi olan Windows 10, çalışma, eğlence ve çevrimiçi deneyim adına yenilikçi yaklaşımlar ortaya koyacak. Kurumların ihtiyacına en uygun işletim sistemi olarak planlanan Windows 10′u, önümüzdeki aylarda adım adım hazır hale getirirken, müşterilerimizden gelen geri bildirimler en büyük yol göstericimiz olacak.

Windows 10 ile birlikte ayrıca Windows Insider Program (WIP) adını verdiğimiz yeni bir programın duyurusunu da gerçekleştirdik. Programa kaydolanlar, bugüne kadar kullanıcılarla ortak hayata geçirilmiş en geniş işletim sistemi geliştirme platformuna katılma fırsatını yakalayacak. Böylece, teknik uzmanlar Windows işletim sisteminin geleceğini şekillendirmek üzere Microsoft ile birlikte çalışma fırsatına sahip olacak. 

Her Cihazda Ayni Deneyim

Windows 10 Xbox’tan PC’lere, akıllı telefonlardan tabletlere kadar tüketicilerin kullandığı tüm cihazlarda alışıldık, uyumlu ve sürekli bir deneyim ortaya koyacak. Böylece amaç ister çalışma olsun ister oyun veya eğlence, tüketiciler farklı platformlara uyum sağlamak için vakit harcamak zorunda kalmayacak.


Windows 10, nesnelerin interneti (Internet of Things) odaklı cihazlardan kurumsal veri merkezlerine kadar görülmemiş ölçüde geniş bir donanım portföyüne destek verecek şekilde tasarlandı. Microsoft ayrıca Windows 10 ile Windows geliştirme platformunu ve mağazaları da ortak hale getirdi. Tüketiciler artık Windows uygulamalarını ortak bir mağaza üzerinden keşfedebilecek, satın alabilecek ve güncelleyebilecek. PC’lerden akıllı telefonlara kadar farklı cihazları bir arada kapsayan ortak uygulama platformu sayesinde, geliştiriciler oyunlardan kurumsal uygulamalara kadar geliştirdikleri uygulamaları tüm cihazlara kolayca uyum sağlar hale getirebilecek.

Yeni Nesil Isletmelerin Ihtiyaclari Icin Tasarlandi

Windows 10 ile gelen temel özellikler, kurumların güvenlik ve yönetim odaklı ihtiyaçlarını karşılamak için geliştirildi. Kurumsal güvenliğin güçlendirilmesine dair yetenekler kurgulanırken, korumayı artırmanın yanı sıra karmaşıklığı azaltmak ön planda tutuldu. Kullanıcı kimlik yönetim sistemleri oltalama ve benzer yöntemlerle gerçekleştirilen kimlik hırsızlığını zorlaştırmak üzere yeniden tasarlandı. Uygulama ve dosya seviyesinde koruma sağlayan gelişmiş veri kaybı önleme sistemiyle, verinin kullanıcının herhangi bir müdahalesine gerek kalmadan gittiği her noktada takip edilmesi sağlandı.


Windows 10, yönetimin kolaylaştırılması ve maliyetin azaltılması konusunda da önemli yeniliklerle geliyor. Basitleştirilmiş güvenli kurulum sayesinde yerinde kurulum ve güncellemeler, zamana ihtiyaç duyan silme ve yeniden yükleme süreçlerine gerek kalmadan gerçekleştirilebilecek. Esnek kurulum ve güncellemeyle şirketler iş birimlerinin ihtiyacına uygun kurulumları çok daha esnek ve hızlı olarak kurgulayabilecek. Ayrıca kurumlara özgü Windows Mağazası deneyimi, kurumların ihtiyaç duyduğu çoklu lisanslama, esnek dağıtım ve lisanların yeniden kullanımı gibi kullanımlara izin verecek.

Ilk Bakista Windows 10

Tanıtılan ilk ön izleme sürümüyle öncelikli olarak PC deneyimine odaklanan ve önümüzdeki aylarda kullanıcıların geri bildirimleri doğrultusunda sürekli gelişecek olan Windows 10 sürümünün ilk bakışta dikkat çeken diğer özelliklerini şöyle sıralamak mümkün:


Genişletilmiş Başlat Menüsü: Bildiğiniz Başlat menüsü, yeni sürümde en sık kullanılan dosya ve fonksiyonları öne çıkaran ve kullanıcıya çok daha fazla özelleştirme olanağı sunan yeni haliyle geri dönecek.
Pencereli Uygulamalar: Windows Mağazası üzerinden edindiğiniz uygulamalar artık masaüstü uygulamalarına benzer bir pencere içinde açılacak. Bu pencereleri yeniden boyutlandırabilecek, taşıyabilecek, üzerinde yer alan uygulama çubuğu üzerinden tek tıkla minimize edebilecek veya kapatabileceksiniz.
Geliştirilmiş Uygulama Tutturma: Uygulama tutturma (snap) özelliğindeki yenilikler sayesinde aynı ekranda birden fazla uygulamayla çok daha kolay çalışabileceksiniz. Yeni dörtlü snap konfigürasyonu sayesinde aynı anda ekrana dört uygulama yerleştirmeniz mümkün. Windows 10, ayrıca çalışan diğer uygulamaların ekranda kalan boşluklara nasıl yerleştirilebileceği konusunda tavsiyelerde bulunacak.
Yeni Görev Görüntüleme Fonksiyonu: Bu buton sayesinde çalışan tüm uygulamalarınızı bir arada görebilecek, tek tıkla dilediğinizi ön plana alabilecek ve farklı masaüstü görüntüleri arasında geçiş yapabileceksiniz.
Sanal Masaüstü: Birçok uygulamayı ve dosyayı tek bir masaüstü üzerinde kalabalık bir şekilde görüntülemek yerine, iş veya eğlence odaklı farklı amaçlar ve projeler için özelleştirilmiş farklı masaüstü görünümleri tasarlayabileceksiniz.  

Microsoft, Windows Insider Program (WIP) ile yeni Windows işletim sisteminin gelişiminde kullanıcılardan gelen geri bildirimlere verdiği önemin altını çizen yeni bir uygulama başlatıyor. Windows Insider Program’a katılanlar, Microsoft ile kuracakları çift yönlü diyalog sayesinde geliştirme süreci boyunca sağlayacakları geri bildirimlerle yeni Windows 10 sürümünün çağdaş ihtiyaçlara uyum için adım adım şekillenmesinde söz sahibi olabilecek. Geri bildirimler için Windows Feedback uygulamasını kullanarak önerilerde bulunmak veya Windows Technical Preview Forum’a katılarak Microsoft mühendisleriyle doğrudan etkileşim kurmak mümkün olacak.

Windows 10 ve WIP programıyla ilgili detaylı bilgi için http://preview.windows.com adresini ziyaret edebilirsiniz.

Dynamics CRM Seminer Dizisi

Dynamics CRM 2013 versiyonu artık yayında bildiğiniz üzere, hatta 2013 üzerinde birçok proje live olmaya bile başladı bile. Peki siz Dynamics CRM nedir biliyor musunuz? Microsoft'un en çok para yatırdığı platformlardan biri olan Dynamics ailesini ne kadar tanıyorsunuz? Dynamics CRM nasıl bir yazılım platformu olarak kullanılır biliyor musunuz? işte bütün bu sorulara cevap verecek üstüne 2011 ve 2013 veriyonlarını öğreneceğiniz güzel bir web seminerleri dizisi başlatmaktayım. Aşağıda detayları bulabilirsiniz.

19 Aralık Perşembe Saat 10:00 : Dynamics CRM Nedir? Ne işe Yarar?

   Seminere giriş linkimiz : https://www.livemeeting.com/cc/mvp/join?id=MVP4025099&role=attend&pw=hq.%27SG%28c3

23 Aralık Pazartesi Saat 10:00 : Dynamics CRM 2011 ve 2013 Versiyonlarındaki Farklılıklar.

   Seminere giriş linkimiz : https://www.livemeeting.com/cc/mvp/join?id=MVP4025099&role=attend&pw=p%60dG4%40ChR 

27 Aralık Cuma Saat 10:00 : Dynamics CRM 2013 ile Yazılım Geliştirme.

Facebook event adresine bu linkten ulaşabilirsiniz : https://www.facebook.com/events/432791460180088/

 

 

Seminer Duyurusu : Microsoft Dynamics CRM Nedir?

Bir seminer vakti daha geldi. Yarın sizlere Dynamics CRM'in aşağıda sıraladığım 4(3 modül+1 genişleme) temel özelliğinin nasıl işlediğini anlatacağım. Seminer 23.11.2013 saat 10:00'da olacaktır.

Dynamics CRM 2011 kendinden önce gelen sürümlerde de olduğu gibi 3 temel modül üzerine oturmuş bulanmaktadır.

Sales Automation : Bütün satış süreçlerinizi en temel ihtiyaçlarınızdan başlayarak karmaşık yatay ve dikey satış stratejilerine varana kadar kolay ve hızlı bir biçimde yönetmenizi sağlar. Bu bölümde müşteri kavramı üzerine oturtulmuş 360 derecelik görünüm müşterinizin sizinle olan bütün temas noktalarını göz önüne serecek ve doğru zamanda doğru hamleyi yapmanız için size yol gösterecektir. 
Daha detaylı bilgiye şu linkten ulaşabilirsiniz : http://crm.dynamics.com/en-us/sales 
Video için ise bu linke bakabilirsiniz : http://uscrmdynamics.cloudapp.net/demos/Dynamics-CRM-2011-Driving-Sales-Productivity/CRM-2011-Driving-Sales-Productivity.html

Marketing : Potansiyel ve mevcut müşterilerinizi elde tutmak için hazırlanmış bu modülde pazarlama kampanyalarınızı, fuarları, pazarlama aktivitelerinizi yönetebilir bunları karşılaştırabilirsiniz. Böylece size en faydalı sonucu üreten pazarlama sürecinizi bulup bunun üzerine yoğunlaşabilirsiniz. Pazarda ürünüzün konumunu ve rakiplerle olan durumlarınızı da gözlemleyip buna göre bir sonraki hamlenizi planlayabilirsniz.

Daha detaylı bilgiye şu linkten ulaşabilirsiniz : http://crm.dynamics.com/en-us/marketing
Video için ise bu linke bakabilirsiniz : http://uscrmdynamics.cloudapp.net/demos/Dynamics-CRM-2011-Maximizing-Marketing-Impact/CRM-2011-Maximizing-Marketing-Impact.html

Customer Service : Müşterilerinize verdiğiniz servis ve hizmetleri kolayca yönetip ölçeklendirebileceğiniz bu bölüm Dynamics CRM içerisindeki birlikte çalışma özelliğini de ön plana çıkarmaktadır. Sahada gezen yada yerleşik servis hizmeti veren bütün firmaların ihtiyaçlarını karşılayacak şekilde dizayn edilmiştir. Böylece hızlı ve seri bir şekilde müşterinize hizmet sunmayı kolaylaştırabilirsiniz. 
Daha detaylı bilgiye şu linkten ulaşabilirsiniz : http://crm.dynamics.com/en-us/customer-service
Video için ise bu linke bakabilirsiniz : http://uscrmdynamics.cloudapp.net/demos/Dynamics-CRM-2011-Optimize-Customer-Experience/CRM-2011-Optimize-Customer-Experience.html

Bu bölümler haricinde bir de CRM Extended özelliğinden söz etmek gerekir. Dynamics CRM'i diğer yazılımlardan ayıran en büyük özelliği genişleyebilir bir mimariye sahip olmasıdır. Kısacası bizler CRM üzerinde iş gereksinimlerinize uygun nesneleri ya da alanları açıp bunu CRM içinde gelen bir parçaymış gibi kullanmanızı sağlayabiliyoruz. Bu özellik sayesinde CRM sadece yukarıda bahsettiğimiz işlevleri yerine getirmenin yanısıra sizin tam işinize uygun bir şekilde şekil değiştirebilmektedir. Bu özellik sayesinde Dynamics CRM'in kullanıldığı bütün firmalarda benzersiz bir hale bürünmekte ve o firmanın ihtiyaçlarına cevap verecek bir hale gelmektedir.
Extending özelliği hakkında daha fazla bilgiye bu linkten ulaşabilirsiniz : http://crm.dynamics.com/en-us/extended-crm

İşte bu özellikleri sayesinde Dynamics CRM firmanızın ihtiyaçlarına göre şekillenir ve işinizi yönetmede size yardımcı olur. Dynamics CRM 2011 en iyi iş platformudur !!!

YazilimciyizBiz

Yazılım geliştiren şirketler! İhtiyaç duyduğunuz bilgi ve kaynaklara tek noktadan erişim için yeni adresiniz: www.yazilimciyizbiz.com

Microsoft'un biz yazılım geliştiricilerene ne gibi olanaklar sağladığını, hangi geliştirme araçlarını ve ortamlarını sunduğunu bu siteden takip edebilirsiniz.

Site'nin e-bültenine kayıt olabilir aynı zamanda Facebook ve Twitter üzerinden de takip edebilirsiniz.

Sağ taraftaki ürün resimlerine tıkladığınızda içlerinde benim de olduğum MVP videolarını izleyebilirsiniz.

Sesinizle Notlarınızı Bulun - Microsoft Recite

Evet aynı başlıkta olduğu gibi Microsoft Recite kullanarak kendi sesinizle bıraktığınız notlar arasında yine sesinizle arama yapabilirsiniz. Microsoft Recite gerçekten akıllıca tasarlanmış şık bir ürün. Windows Mobile 6 ve üstü yüklü cep telefonlarında çalışabilen uygulamayı mobil cihazınızdan http://recite.microsoft.com adresine girerek indirebilirsiniz. 



Birşeyler kaydetmek istediğinizde remember düğmesine basmanız ve notunuz bitince finished düğmesine basmanız yeterli.

Daha sonra notlarınız  arasında arama yapmak istediğiniz kelime ya da cümleyi söylüyorsunuz 3.ekranda olduğu gibi sonuçlar listeleniyor.

Aşağıdaki videoda da nasıl çalıştığını görebilirsiniz :

 

Daha detaylı bilgileri bu adreslerde bulabilirsiniz :

http://recite.microsoft.com/Pages/about.aspx
http://blogs.msdn.com/recite/

Bu arada ufak bir not, Microsoft'un sitesinde uyumlu cep telefonları listesi var ama benim telefonum (Asus P525) bu listede olmamasına rağmen sorunsuz çalıştı uygulama.

Windows Vista Kullanıcı Hesap Denetimi (UAC-User Account Control)

Windows Vista Kullanıcı Hesap Denetimi (UAC-User Account Control)

Birçok kişi Vista’ya gıcık olsa da ben Vista’yı gerçekten çok sevdim. Microsoft son zamanlarda hissedilir bir şekilde üzerinde durduğu kullanıcı güvenliği konusunun son halini Vista içerisinde bir program çalıştırırken ya da bir kopyalama işlemi yaparken sürekli karşımıza çıkan o meşhur güvenlik ekranından biliyoruz.  Windows her zaman kullanıcı dostu yapısıyla bilinirken birdenbire birçok son kullanıcı için problemli bir işletim sistemi oldu.

Peki neden Microsoft böyle bir şeye ihtiyaç duydu derseniz? Herkes Windows’un çok güvensiz olduğundan sürekli virüs bulaşmasından ya da Internet Explorer ile bilgisayarımızı ele geçiren (virüs,solucan,trojan...) gibi kötü niyetli yazılımlardan bahseder işte Microsoft da bu durumun farkında. Yani siz sistem üzerinde Administrator (tam yetkili kullanıcı) olarak çalıştığınızdan uygulamalarınızın da Administrator olarak çalışmakta ve herşeye erişmede tam yetkili olmaları durumundan kaynaklanmaktaydı. Vista ile işte bu değişti.

Bu durum Windows uygulaması geliştiren programcılar için de sıkıntılı durumlar yarattı. Artık istediğimiz dosya ya da klasöre yazma işlemini gerçekleştiremiyor, registry üzerinde işlem yapamıyor ya da Sistem üzerindeki WMI gibi arabirimlere bağlanamıyor olduk. Nedeni ise çok basit; çünkü geliştirdiğimiz uygulama, kullanıcı sistem Administrator’u olsa bile  Administrator haklarına sahip değil.

UAC Nedir?

Peki Vista bu işi nasıl yönetiyor diyorsanız; cevap, Vista üzerinde geliştirilen Kullanıcı Hakları Denetimi (UAC – User Account Control) isimli mimari. Kullanıcı Hesaplarını Denetimi (UAC); aynı kullanıcı altında çalışan yazılımların farklı haklar ile çalışabilmesini sağlıyor yani kullanıcıların bir program çalıştırmaya kalktıkları zaman bir uyarı diyaloğu göstererek programa doğrudan girişi engelliyor. Mesela bir program yönetici (administrator) hakları gerektiriyorsa o program çalışmadan önce sizden o programa administrator hakkı verip vermeyeceğinizi soruyor. Kullanıcısı hakkın verilmesini  onaylarsa program yönetici olarak çalışıyor. Windows’ un kendi uygulamaları için de bu durum  geçerli, mesela sistem dosyalarını değiştirmek isterseniz Windows Explorer sizden yönetici onayı istiyor.

Kısacası düşük kullanıcı hakları (LUA-Least Priviliged User Account) ile yazılımları çalıştırmak güvenliğin temel noktalarından biri. Microsoft ise bu şekilde bilgisayarın güvenliğinin en üst düzeye çıktığını ve yöneticiler dışındaki kişilerin bilgisayarda değişiklikler yapmalarının engellediğini savunuyor.

Integrity Levels

UAC’ nin en kritik özelliklerinden biri Integrity Levels. Vista’ da uygulamalar dört farklı seviyede çalışıyorlar (düşükten yükseğe)

  1. Low – Potected Mode
  2. Medium – LUA
  3. High - Elevated
  4. System

Her Integrity Level’in objeye göre hakları olabilir (obje çalışan bir uygulama ya da normal bir dosya olabilir).

Normal yazılımlar özel olarak belirtilmedikçe Medium seviyede çalışıyorlar;

  • High, özel olarak UAC penceresi ile yetkilendirilmiş yazılımlar.
  • System, sistem uygulamaları.

Dolayısıyla bu integerity seviyeleri sadece çalışan programlar ile ilgili değil aynı zamanda dosya sistemindeki erişim haklarıyla da ilgili. Eğer okunmaya çalışan obje dosya sistemindeki bir obje ise çalışan uygulama sadece kendi seviyesindeki ve altında objeleri okuyabilir.

(IE genelde sorun çıkarmaya müsait olduğu için en düşük haklar olan Low – Protected Mode ile çalışıyor.)

Sanallaştırma (Virtualization)

Vista’dan önce (hatta Vista’dan sonra bile) birçok uygulama “C:\windows” ya da en azından kendisinin kurulu olduğu örneğin “c:\Program Files\herhangi bir uygulama\ayarlar.ini” dosyasını okumak hatta buraya yazmak isteyebilir ve sistem işleyişi gereği kullanıcının buralara yazma yetkisi olmayabilir.

Bu durumda Vista sanal dosya ve sanal registry kullanarak orjinal dosya ve registry sistemini korumaya alıyor. Dolayısıyla eğer bir program yönetici yetkileri ilebir şeyler yazmaya çalışırsa Vista bunu otomatik olarak aktif kullanıcının profili altındaki klasöre ve registery' ye yönlendiriyor. Bu sayede bir dizi program hata almaktan kurtuluyor.

UAC File Virtualization Filter Driver (%SystemRoot%\System32\Drivers\Luafv.sys) dosya sistemi üzerindeki bu sanallaştırma işlemini yöneten mimari.

Kısacası bir uygulama “C:\Program Files\uygulama klasörü\ayarlar.ini” isimli bir dosyaya erişmek istediğinde “C:\Users\Username\AppData\Local\VirtualStore\Program Files\uygulama klasörü\ayarlar.ini” dosyasına erişiyor olacak. Eğer aynı uygulama registry üzerindeki “HKEY_LOCAL_MACHINE\Software\uygulama adı\”  düğümüne bir değer yazmak istiyorsa otomatik olarak “HKEY_CURRENT_USER\Software\Classes\VirtualStore\MACHINE\Software\uygulama adı” ya da “HKEY_USERS\UserSID_Classes\VirtualStore\Machine\Software\uygulama adı” düğümlerinden birine veri yazıyor olacak. Uygulama böylece bir sandbox’un içinde çalışıyor olacak.

Şimdi bu konulara bir uygulama ile sistemin bizi nasıl sandbox’a alıp sanallaştırdığını görelim.

1.       Visual Studio 2008’i açıp VistaVirtualizationTester isimli bir console uygulaması açalım.

2.       Aşağıdaki kodları uygulamamıza ekleyelim; 

using System;
using System.Collections.Generic;
using System.Text;

using System.IO;

namespace VistaVirtualizationTester
{
   
class Program
   
{
       
static void Main(string[] args)
       
{
           
//dönüş noktamız
       
tryagain:
           
try
           
{
               
//yazılacak metin
               
string lines = "birkaç satır birşeyler \r\ndenemeye değer bir uygulama \r\nBarış KANLICA."

                //yazma işlemi
                string localPath = "c:\\windows";
              
//string localPath = Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData);
               
System.IO.StreamWriter file = new System.IO.StreamWriter( localPath + "\\test.txt");
               file.WriteLine(lines);
                file.Close(); 

                //ekrana gerçekleşen işlemi yaz
               
Console.WriteLine("Yazma işlemi başarıyla sonuçlandı.");
                Console.ReadLine();
            }
            catch (Exception ex)
            {
                //ekrana hatayı yazdır
                Console.WriteLine("Yazma işlemi sırasında hata oluştuı.");
                Console.WriteLine(ex.Message);
                Console.ReadLine();
                //tekrar dene emri
                goto tryagain;
            }
        }
    }
}

3.       Solution üzerinde sağ tuşa basıp Properties ekranını açalım 

4.       Icon and Manifest kısmı altında “Create application witout manifest” ‘i seçiyoruz. 

Böylece manifest dosyası olmayan bir uygulama yaratmış olduk.  (Manifest nedir diyenler için açıklama da yapalım. Manifest içerisinde assembly metadata'larını bulunduran bölümdür. Asembly adı, versiyonu, başka Assembly'lere olan referanslar gibi bilgilerin tamamına metadata denir. Bu bilgilerin oluşturduğu kümeye Manifest denilmektedir.) Bu yaptığımız adımlar ile biz manifest bölümü olmayan bir assembly yaratmış olduk.

Uygulamamız ise “c:\Windows” içerisine birkaç satır dosya yazmayı amaçlamaktadır. Eğer hata oluşursa kullanıcıya bunu göstermekte ve klavye girdisi beklemektedir. Kullanıcı klavyede enter tuşuna basarsa tekrar aynı kodu çalıştırıp yazma işlemini tekrar deneyecektir.

Uygulamayı bu haliyle çalıştırdığınızda (Uygulamayı Visual Studio içerisinden değil build edilen yerden çalıştırılım.) “C:\Users\<kullanıcı adı>\AppData\Local\VirtualStore\Windows” içerisine test.txt isimli bir dosya oluşturduğunu göreceksiniz. Böylece sanallaştırma ile ilgili yukarıda anlattıklarımı örneklemiş oldum.

Peki bir uygulamanın sanal olarak çalıştığını nasıl anlarım diyebiilirsiniz hatta bir adım daha öteye gidip bir uygulamayı nasıl sanallaştırma içerisine sokabilirim diyebilirsiniz. Bu durumda görev yöneticisi (task manager) devreye giriyor. Task Manager açık iken İşlemler (Process) ekranında Görünüm (View)->Sütun Seç (Select Columns)->Sanallaştırma (Virtualization) sütununu açabilirsiniz. Bu sütunda bir uygulamanın hangi modda çalıştığını görebilirsiniz.

Bizim uygulamamızı tekrar çalıştırdığımızda uygulamanın virtualization modunun enabled olduğunu göreceksiniz. Şimdi bir adım daha ileri gidelim ve uygulammızın manifest durumunu tekrar eski haline alalım yani “Embed manifest with default settings” seçeneğini bu sefer seçelim. Ve uygulamamızı çalıştıralım. (Uygulamayı Visual Studio içerisinden değil build edilen yerden çalıştırılım.)  Çalıştırdığımızda uygulamanın yazamadığını ve hata verdiğini göreceksiniz.

Uygulamamızın Virtaualization kısmının Disabled olduğunu görüyoruz. Peki nasıl aktif hale getirebiliriz ? Çok basit task manager içerisinde uygulama üzerinde sağ tuşa bastığımızda Virtualization’ı tıklarsak bir uyrarı gelecek bu uyarıya evet dersek uygulamamız sanallaştırılmış moda dönecek.

Bu işlemden sonra uygulamamızın üzerine gelip enter’a basarsanız yazma işleminin gerçekleştiğini görebilirsiniz. Biraz daha derine inerek Sanallaştırmanın geçerli olduğu ve olmadığı durumlara da bir göz atalım,

Sanallaştırmanın geçerli olduğu durumlar:

  • 32 bit interaktif işlemler
  • Administrator haklarıyla yazılabilir dosya/klasör ve registry keys

Sanallaştırmanın geçerli olmadığı durumlar:

  • 64 bit işlemler
  • İnteraktif olmayan işlemler
  • İmpersonate kaynaklı işlemler
  • Kernel mod çağrıları
  • requestedExecutionLevel yetkisiyle çalıştırma

UAC ile Yetki İstemek

Bütün bu adımlardan sonra size bir de app.manifest dosyamızda yapacağımız küçük ama etkili bir değişiklik ile uygulamamızın kullanıcıdan nasıl yetki isteyeceğini göstereceğim.

Şunu unutmamak gerekir ki eğer bu yetkilendirme gerekli değilse gerçekten kullanmayın eğer bir klasöre ya da registry’e bir şeyler yazmanız gerekiyor ise Vista’nın size yazma okuma yetkisi verdiği yerleri kullanabilirsiniz. Örnek olarak yönetici yetkisi olmadan dosya yazmak veya okumak için en mantıklı yol Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData) gibi komutlar kullanarak kullanıcının yazma yetkisinin olacağı bir klasörü kullanmak.

Ama yok uygulamanızın illa ki bu haklara ihtiyacı varsa mesela IIS üzerinde işlem yapan bir uygulama ya da sistem üzerinden WMI sorgusu çekmeniz gerekiyorsa o zaman app.manifest dosyamızı değiştirmemiz gerekli.

Burada Visual Basic kullanıcıları için bir güzellik yapmış Microsoft ve Visual Studio’nun içerisine bir kısayol gömmüş. 

VB Solution’ınızın üzerinde sağ tuşa basar ve Properties’e gelirseniz;

 

 

View UAC Settings isimli bir düğme bulacaksınız bu düğmeye tıkladığınızda ise;

 

 

App.manifest dosyanızın geldiğini göreceksiniz. 

C# kullananlar ise farklı bir yol izlemek zorunda. Yine solution üzerinde sağ tuşa tıklayarak bu sefer “ add->new item” demelisiniz açılan pencereden Application Manifest File dosyanızı seçip projenize ekleyebilirsiniz.

App.manifest dosyamızın içeriği şöyledir; 

<?xml version="1.0" encoding="utf-8"?>
<asmv1:assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1" xmlns:asmv1="urn:schemas-microsoft-com:asm.v1" xmlns:asmv2="urn:schemas-microsoft-com:asm.v2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <assemblyIdentity version="1.0.0.0" name="MyApplication.app"/>
  <trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
    <security>
      <
requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3">
        <!-- UAC Manifest Options
            If you want to change the Windows User Account Control level replace the
            requestedExecutionLevel node with one of the following.

        <requestedExecutionLevel  level="asInvoker" uiAccess="false" />
        <requestedExecutionLevel  level="requireAdministrator" uiAccess="false" />
        <requestedExecutionLevel  level="highestAvailable" uiAccess="false" />

            If you want to utilize File and Registry Virtualization for backward
            compatibility then delete the requestedExecutionLevel node.
       
-->
        <
requestedExecutionLevel level="asInvoker" uiAccess="false" />
      </requestedPrivileges>
    </
security>
  </
trustInfo>
</asmv1:assembly>

“requestedExecutionLevel” seviyesinin standart olarak “asInvoker” olarak ayarlı olduğu görebilirsiniz.

Değer

Açıklama

asInvoker

Uygulama en düşük yetki seviyesinde çalışır.

highestAvailable

Uygulama kendisini çağıran kullanıcıdan daha yüksek yetki ile çalışır ve mevcut kullanıcıdan yetki ister.

requireAdministrator

Uygulama administrator yetkisiyle çalışır ve mevcut kullanıcıdan yetki ister.

Bu durumda bizim asInvoker yazan yere requireAdministrator yazmamız gerekmekte. Bu değişikliği yapıp projeyi Visual Studio içerisinden çalıştırmak istediğimizde Visual Studio da yönetici haklarını bizden isteyecektir. “Restart under different credentials”’ı seçmemiz gerekmekte.

Ve Visual Studio kapanıp yeniden açılacaktır. Açıldığından onun da yönetici moduyla çıldığını görürüz.

Hatta uygulamamızın klasörüne gidip baktığımızda ise uygulamızın simgesinin altına Shield işaretinin geldiğini görebiliriz. 

Uygulamızı her çalıştırmak istediğimizde bizden yetki isteyecek. Eğer kullanıcı onaylarsa uygulamamız yönetici (administrator) haklarıyla çalışacak ve sistem üzerinde tam yetkili olacaktır. Tam bu noktada şu açıklamayı yapmak ta sanıyorum yerinde olacaktır. Eğer Windows’ un nasıl çalıştığı hakkında detaylı bilginiz varsa (en azından Windows’un mesaj tabanlı bir işletim sistemi olduğunu biliyorsanız) Windows’ un iç mesajlarını kullanarak başka yazılımlara istek göndermek ve bu sayede haklarınızı yükseltmek (privilige escelation) şeklinde saldırıya uğradığını da duymuşsunuzdur. (Shatter Saldırıları)

Bu nedenle UAC penceresi ayrı bir masaüstü olan “Session0” da çalışıyor. Bu bağlamda masaüstleri tamamen ayrı durumdalar ve birbirlerine windows mesajları ile mesaj gönderememektedirler. (Hatta arkadaki siyah plan bile aslında gerçek değil, isteğin yapıldığı anda arka planın kaydedilmiş bir resmi.)

UAC’nin devreye giridği işlemlerin tam listesi ise şöyle; 

·         Program Vista’ nın Uyumluluk listesindeyse

·         Program manifest dosyasında bunu belirtirse 

·         API ile bu istek yapılırsa

·         Kullanıcı özel olarak bir programın “Run As Administrator” ile çalıştırırsa (Bu noktada yine küçük bir bilgi vereyim; eğer çok sık kullandığınız bir program var ise üzerinde sağ tuşa basıp Uyumluluk (Compatibility) sekmesi üzerinde “Bu programı yönetici yetkisiyle çalıştır” (run this program as an administrator) checkini işaretlerseniz artık sizden yetki istemeyecek otomatik olarak yönetici haklarıyla çalıştıracaktır)

·         Vista bir programın “installer” programı olduğunu düşünürse.

UAC’yi Devre Dışı Bırakmak ya da Tekrar Aktif Hale Getirmek

UAC devre dışı da bırakılabilen bir yapı ve bir Vista üzerinde 2 şekilde devre dışı bırakabilirsiniz;

1.       Denetim Masasından (Control Panel)

a.       Denetim Masası içerisinde Kullanıcı Hesapları (User Accounts) altından

b.      Kullanıcı Hesapları Denetimi’ni aç ya da kapat (Turn User Account Control on or off) düğmesine tıklayınca karşınıza bir ayar ekranı açılır.

c.       Buradaki tiki kaldırarak kapatabilir ya da açabilirsiniz.

2.       Komut Satırı üzerinden (Command Prompt) 

a.       Aktive etmek

C:\Windows\System32\cmd.exe /k %windir%\System32\reg.exe ADD HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System /v EnableLUA /t REG_DWORD /d 1 /f

b.      Kapatmak

C:\Windows\System32\cmd.exe /k %windir%\System32\reg.exe ADD HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System /v EnableLUA /t REG_DWORD /d 0 /f

 

Windows 7’de Nasıl Olacak

Gelecek senenin sonlarında çıkarılması planlanan yeni işletim sistemi Windows 7’de de bu uygulamayı devam ettirilecek. Tabi arabirimde köklü değişiklikler yapılacak bu sefer devam uyarıların sıklığı kullanıcıların kendisi tarafından ayarlanabilecekmiş hatta açılması istenen programla ilgili açıklayıcı sorular sorulacakmış.

2007'nin ağustos ayından 2008'in ağustos ayına kadar "yönetici olarak çalıştırma" gerektiren programlar tam %75 oranında azalmış. Yani, yazılım firmaları Vista ile beraber “Microsoft Standartlarında” güvenli yazılımlar üretmeye başlamışlar.

Son Sözler

Konuyu toparlayacak olursak. Windows 7’de de bu uygulama süreceğine göre artık yazılımlarımızı buna göre geliştirmeye alışmamız gerekiyor. Microsoft bence bu konuda da çok haklı çünkü herkes sistem üzerinde istediği gibi davranırsa Windows sürekli problem çıkartan bir işletim sistemi olur ve bu zamana kadar da öyle oldu zaten. Eğer gerçekten yönetici haklarına ihtiyacınız yoksa sanallaştırmanın bize sunduğu ile yetinip yolumuza devam edelim ve sistemi stabil kılan uygulamalar yazalım. Bir makale de burada biter hepiniz hoşçakalın.

Diğer Kaynaklar

  • Programların hangi integrity seviyesinde çalıştığını görebilmek için AccessChk
  • Dosya sisteminde bu hakları görmek için icacls
  • Windows Engineering Blog için tıklayınız
  • Technet Magazinden konuyla ilgili bir makale için tıklayınız

Barış KANLICA
Yazılım Uzmanı – Software Specialist

brsk@e-kolay.net
www.cub-e.net
forum.cub-e.net