cub-e.net

just coding...

Early ve Late Binding Arasındaki Farklar

Dynamics CRM 2011 içerisinde programcılar kendilerine birden fazla programlama biçimi seçebilirler. Dynamics CRM 4.0’da  WSDL kullanarak early-bound tipleri ve Dynamics Entity sınıflarını kullanarak da late-bound programlama yapabilirler.Plug-in ve Workflow yazabilmek için late-bound tipleri kullanmamız gerekmektedir. Bunlar yeni programlama modelleri ile değiştiler.

Dynamics CRM 4.0’da entity sınıflarının duruşu aşağıdaki şekildeki gibiydi;

Şimdi ise Dynamics CRM 2011’de bu yapı şu şekilde değişti;

DynamicEntity sınıfı artık Entity sınıfı isimli bir sınıfla yer değiştirdi. Bunun anlamı ise build time yani early bound tiplerle, runtime yani late bound tiplerin artık tek sınıftan türemesinin gerçekleşmiş olduğudur.

Dynamics CRM 2011’de artık WSDL’e direkt ulaşamıyoruz. Daha önceki makalemde de anlattığım gibi 2 tane dll’i referans olarak eklemek ve servise bağlantı kurmak gerekmektedir.

Late-Bound olarak isimlendiren mimaride siz Entity sınıfından bir nesne türetmeli ve bu nesnenin attribute collection’da da değerlere yer vermelisiniz. Tabii burada değer alanlarının crm içerisindeki logical name’lerini kesinlikle bilmeniz gerekmektedir.

Aşağıdaki örnek bize late-bindig yapısının nasıl işlediğini gösterecektir;


Entity
accountEntity = new Entity("account");

accountEntity["name"] = "Deneme Firmasi";

accountEntity["emailaddress1"] = "info@deneme.com";
Guid accountID = ioService.Create(accountEntity);


Entity sınıfını kullanmaya başladığımız zaman late-binding’e giriş yapmış oluyoruz. Entity türünden oluşturduğumuz nesneye biz Account türünden bilgileri içine dolduracağız diyoruz. Contact, Opportunity gibi CRM içerisindeki bütün nesneleri bu şekilde oluşturabiliriz.

Daha sonra ise alanların logical name’lerini vererek bunların değerleri veriyoruz. Burada .net tabanlı türleri kullanabilmekteyiz. CRM 4.0’da CrmBoolean, CrmNumber gibi türlere çeviriler yaparak nesnelerin içini doldururken artık buna ihtiyacımız bulunmamaktadır.

ioService isimli WCF tabanlı servisimizden türemiş nesnenin Create Metodunu kullanarak nesnemizi CRM içerisinde bir kayıt olarak oluşturuyoruz.




Early-Bound olarak isimlendirilen mimaride de ise CrmSvcUtil.exe aracını kullanarak bir OrganizationServiceContext türetmelisiniz. Daha sonra ise bu aracın türettiği nesneleri kullanabilir hale gelebilirsiniz. Tabii burada her bir nesnenin şema isimleriyle hareket ettiğimiz unutulmamalıdır.

Aşağıdaki örnek bize early-binding yapısının nasıl işlediğini gösterecektir;

CrmDataContext orgContext = new CrmDataContext(ServiseBaglan());

var contact = new Contact()

{

    FirstName = "Alan",

    LastName = "Smith"

};

orgContext.AddObject(contact);

orgContext.SaveChanges();


Burada ServiseBaglan() daha önceki makelemde belirttiğim gibi IorganizationService Interface’inden türemiş bir sınıfı teşkil  etmektedir. Yani CRM’in WCF servisine hazır ve açık bir bağlantıdır.

Contact ise CRM içerisinde kişiler entity’sidir, Account,Lead,Invoice,Quote gibi daha bir çok entity bulunmaktadır.

Firstname ve Lastname ise kişinin adı ve soyadı için değerleri temsil etmektedir  ve bu bilgi OrganizationContext’ten gelmektedir. Bir sonraki yazında CrmDataContext isimli bu OrganizationContext’in CrmSvcUtil.exe aracılığıyla nasıl oluşturulduğu göstereceğim.

Daha sonra ise bu doldurduğumuz contact nesnesini OrganizationContext’e teslim ediyoruz ve işlem yapılması için SaveChanges() metodumuzu çağırıyoruz.

Farklılıkları ise şu şekilde sıralayabiliriz;

·         Early-Bound Entity Sınıflarının en büyük avantajı compile time da bize bütün hataları göstermesidir. Yani uygulamamızı yazarken ya da derlerken türler arası uyumsuzluk ya da yanlış değer atama gibi bütün yanlışlıklarımızı gözler önüne sermektedir. 

·         CrmSvcUtil bize tüm CRM mimarisini örneklerken bütün nesneleri ve onun ilişkilerini de getirmektedir. Böylece nesne dönüşümleri ve tür güvenliği de sağlanmış olmaktadır.

·         Visual Studio içerisinde inteli sense özelliğini kullanmamızı sağlar.

·         Dynamics CRM 4.0’da WSDL ile çalışan kişiler bu yeni yapıda hiçbir farklılık hissetmeyeceklerdir.


Bir sonraki makalede görüşmek dileğiyle :)

 

Dynamics CRM 2011 Servis Mimarisi

 

Dynamics CRM üzerinde uygulama geliştirebileceğiniz çok güçlü bir mimari ile gelmektedir. Bu mimarinin temel yapı taşı ise WCF servisleridir. Bu yazımda sizlere CRM'in temel web servisleri olan Discovery ve Organization Servislerinin yapısını ve ne işe yaradıklarını anlatacağım.

CRM için kod geliştirirken her ne kadar sdk'nın içinden çıkan dll'leri kullansak da bu dll'ler vasıtasıyla ilk önce servis bağlantısı oluşturmamız gerekmektedir.  Yani verilere ulaşmak ve veri yazmak için WCF servislerini kullanmak zorundayız. Bu servislerle daha hızlı ve güvenli bir şekilde CRM platformuna entegre olmamızı sağlamaktadır.

WCF standartlaşmış bir teknoloji olduğu için biz yazılım geliştiricilere yeni özellikler sunmakta ve sürekli kendi içerisinde gelişmektedir. Dynamics CRM yapısında entity ve attribute katmanlı bir mimari bulunmaktadır. Yani biz CRM'in Business Logic katmanına müdahele edip yazılımlarımızı onunla entegre hale getirmekteyiz. Temel olarak nesne katmanı Entity isimli nesneden türemiştir. late-bound türlerde bu nesneyi sıklıkla kullanmaktayız. Early-bound olarak program geliştirme metodolojisini tercih edersek Entity class'ı ile işimiz olmamaktadır ama arka planda bütün nesnelerin bu class'dan türediği unutulmamalıdır. Bu konuya aşağıda bir örnekle tekrar değineceğim. CRM servislerine OrganizationServiceProxy ve DiscoveryServiceProxy sınıflarıyla bağlanmaktayız. Aşağıdaki kod bize bunu göstermektedir;

using (OrganizationServiceProxy _serviceProxy =
    new OrganizationServiceProxy(organizationUri, homeRealmUri, userCredentials, deviceCredentials)) ;

Discovery Servis

Dynamics Dynamics CRM 2011 multi-tenant bir mimaridedir. Yani tek bir uygulama birden fazla organizasyonu içerisinde barındırmaktadır. Yazılımcı olarak birden fazla organizasyon arasında geçiş yapmamız gerekiyorsa sistemde hangi organizyonlar olduğunu sorgulama işini Discovery servis ile yapmamız gerekmektedir. Bu servis yazma okuma işlemlerinin yapılacağı ana servise bağlanmamıza yardımcı olacak ve organizasyonların bilgisini bize döndürecektir. Aşağıdaki kod bize bu servise nasıl bağlanacağımızı ve organizasyonların bilgisine nasıl ulaşacağımızı göstermektedir.

Uri dInfo = new Uri("http://192.168.5.102/XRMServices/2011/Discovery.svc");
ClientCredentials clientcred = new ClientCredentials();
DiscoveryServiceProxy dsp = new DiscoveryServiceProxy(dInfo, null, clientcred, null);
dsp.Authenticate();
RetrieveOrganizationsRequest
rosreq = new RetrieveOrganizationsRequest();
RetrieveOrganizationsResponse
r = (RetrieveOrganizationsResponse)dsp.Execute(rosreq);
foreach
(OrganizationDetail o in r.Details)
{
      Console.WriteLine("Organizasyon Adı : " + o.FriendlyName);
}
Console
.ReadLine();

Bu kodla discovery servise bağlandıktan sonra ClientCredentials'ı kullanarak hali hazırda oturum açmış kullancının bilgisini sisteme göndermekteyiz. Ama her zaman bunu kullanmak istemeyebiliriz yani başka bir kullanıcı adı ve şifre ile sisteme girmek istediğimizde ClientCredentials'a kullanıcı adı, şifre bilgilerini verebiliriz.

clientcred.Windows.ClientCredential = new System.Net.NetworkCredential("kullanici adi", "sifre", "domain");

Yukarıdaki kodun çalışabilmesi için System.ServiceModel.Description,System.Runtime.Seriliazation, Microsoft.Xrm.Sdk.Client ve Microsoft.Xrm.Sdk dll'lerinin referanslara eklenmiş olduğundan emin olun. Ayrıca uygulamayı .Net Framework 4.0'da derlemek gerekiyor.

Organization Servis

Dynamics CRM 2011'in ana web servisi Organization Servis'tir. Bu servis içerisinde entity instance'ları üzerinde işlem yapabileceğimiz 6 metod ve execute metodu bulunmaktadır. CRM Servis sınıfını oluşturabilmek için Organization Service Proxy'nin bir instance'ını oluşturmamız gerekmekte. Daha sonrasında ise Organization Servis sınıfını bunu göre ayarlayacağız.

Uri dInfo = new Uri("http://192.168.5.102/XRMServices/2011/Organization.svc");
ClientCredentials
clientcred = new ClientCredentials();
clientcred.Windows.ClientCredential = new System.Net.NetworkCredential("kullanici adi", "sifre", "domain";
OrganizationServiceProxy
orgService = new OrganizationServiceProxy(dInfo, null, clientcred, null);
orgService.ServiceConfiguration.CurrentServiceEndpoint.Behaviors.Add(new ProxyTypesBehavior());
IOrganizationService
ioService = (IOrganizationService)orgService;

Yukarıdaki kodun çalışabilmesi için System.ServiceModel.Description, Microsoft.Xrm.Sdk ve Microsoft.Xrm.Sdk.Proxy dll'lerinin referanslara eklenmiş olduğundan emin olun. Ayrıca uygulamayı .Net Framework 4.0'da derlemek gerekiyor. Oluşturduğumuz bu servisi daha sonra programımızın ilerleyen bölümlerinde çağırıp işlemler yapacağız.

Tabi burada belirtilmesi gereken bir konu da işlem yapmak istediğiniz nesnenin üzerinde yetkilerinizin olmasıdır. Bir kayıt oluşturabilmek için oluşturma yetkisine sahip olmanız gerekmektedir. Sadece okuma yetkisiyle bir kayıt oluşturamazsınız. Bir sonraki yazımda sizlere entity mimarisi ve yazma okuma işlemlerini anlatacağım.

 

 

 

MVP Summit 2011

20 Şubat- 3 Mart tarihleri arasında Amerika'daydım. Hem tatil hem iş için gitmiştim. Microsoft takipçileri bilirler her sene Şubat aynının sonunda Seattle'da MVP Summit yapılır. Dünya üzerindeki bütün MVP ve RD'ler bu etkinlikler ve eğitimler için Microsoft'a giderler. Ben de 2 yıldır bu etkinliklere katılıyorum. Bu sene biraz da gezebilmek amacıyla 1 hafta erken Amerika'ya gittim. 1 hafta boyunca New York'ta gezdim. New York çok çolgın bir şehir ve inanın bir Türk New York'ta çok rahat yaşayabilir. New York fotoğraflarına bu adresten ulaşabilirsiniz.

New York fotoğraflarına bu adresten ulaşabilirsiniz : http://www.facebook.com/album.php?id=626951879&aid=296766

New York'ta gezip görülebilecek yerleri ise şu şekilde sıralayabilirim;

 

  • Central Park
  • Time Square
  • Madame Tussauds Müzesi
  • China Town-Little Italy 
  • Metropolitan Museum of Art
  • Museum of Natural History (Doğa Tarih Müzesi)
  • Statue of Liberty (Özgürlük Anıtı)
  • Broadway
  • Wall Street
  • Empire State Building
  • The Flatiron Building

 

New York bu şekilde; Seattle ise geçen seneden bu yana hiç değişmemiş doğal olarak ama bu sene MVP Summit'te Steve Ballmer'ın konuşma yapması unutulmayacak bir olaydı Seattle fotoları ise bu adreste;

http://www.facebook.com/album.php?id=626951879&aid=305769

 

Microsoft Bilişim Zirvesi 2011

11 Mart 2011 tarihinde İstanbul Kongre Merkezinde gerçekleşecek olan Microsoft Türkiye Bilişim Zirvesi ile tüm bilişimciler yeni bir deneyim ve paylaşım imkanı ile buluşturuluyor.

Microsoft iş ortaklarının deneyim ve başarı hikayelerinin de sunulacağı etkinlikte; Geleceğin Çalışma Dünyası, Web Platformu, Dinamik Veri Platformu, İş Kritik Uygulamaları, Uygulama Platformu ve Bulut Bilişim gibi konu başlıkları ile toplam 11 panel sunumu olacak.

Etkinliğe bu adresten kayıt olabilirsiniz : https://msevents.microsoft.com/cui/EventDetail.aspx?culture=tr-TR&EventID=1032474048&IO=l1KCS/dGn2P/FbGk97ziug%3d%3d

Dynamics CRM 2011 Web Semineri

Dynamics CRM 2011 ile ilgili bir makale hazırlamıştım hatırlarsanız. Hatta bu adresten ulaşabilirsiniz : http://www.cub-e.net/post/Dynamics-CRM-2011e-Ilk-Bakis-Microsoft-CRM-2011.aspx 

2011 Developer bölümü ile ilgili makaleler hazırlamadan hatta teknik anlamdaki diğer makalelerime geçmeden önce ilgiler ne tarafa kayıyor, neler merak edilyor bunları görmek ve ölçeklemek adına bir seminer yapmak istedim.

27 Ekim 2010 Çarşamba günü saat 21:00'da olacak bu webinere herkes davetlidir.

Webiner linki aşağıdaki gibidir.
https://www.livemeeting.com/cc/mvp/join?id=KNQ6CK&role=attend 

Önemli!!! Webiner linki 27 Ekim akşamı 20:45'te aktifleşecektir. Öncesinde giriş yapmanıza gerek yok.

Kampüsüm İşyerim (Omerd Business Solutions-Bahçeşehir Ünv. İşbirliği)

21. Yüzyılın eğitim modeli olarak gösterilen CO-OP, yurt dışında yaygın olarak uygulanan "Cooperative Education" dan esinlenilmiş bir modeldir. CO-OP,  Bahçeşehir Üniversitesi tarafından uygulamaya konulan, üniversite-iş dünyası işbirliğiyle, eğitim ve çalışma yaşamını bütünleştiren bir eğitim modelidir. CO-OP kodlu uygulamalı Markalı Dersler, partner kuruluşlar tarafından geliştirilen ve aktarılan profesyonel iş eğitimi dersleridir. Öğrenciler bu derslere kredili seçmeli ders statüsünde kaydolur ve karşılığında bir sertifika sahibi olurlar. CO-OP kodlu uygulamalı Markalı Dersler, kontenjanlar çerçevesinde tüm öğrencilere açıktır.

CO-OP programına katılan öğrenci aşağıdaki faydaları elde eder;

  • Üniversite müfredatları içinde yer almayan, ancak çalışma yaşamının gerektirdiği profesyonel eğitimi kredili ders olarak ve sertifika karşılığı alma olanağına kavuşur.
  • Belirli bir süre, konusuyla ilgili bir kuruluşta çalışma fırsatı elde eder ve bu şekilde sınıfta öğrendiklerini daha mezun olmadan uygulama şansına sahip olur.
  • Üniversite eğitimi sırasında aldığı kuramsal bilgiyi gerçek hayatla bütünleştirme ve anlamlandırma şansını yakalar.
  • Mezuniyet sonrası karşılaşacağı çalışma ortamını henüz öğrenci iken tanıma olanağı elde edeceğinden sağlıklı bir iş seçimi yapabilir.
  • İş bulma, işe uyum sağlama, işte tutunma ve başarılı olma şansını arttırır.
  • CO-OP yaptığı kurumda işe devam olanağı, öncelikli kabul fırsatı elde eder.
  • İş dünyası tarafından talep edilen, genel geçerliliği olan profesyonel dersleri izlediği ve sertifikalarını aldığı için çalışma hayatına diğer mezunlardan bir adım önde başlama şansına sahip olur.
  • Mesleki gelişimi için kendisini izleyen kariyer danışmanlarıyla çalışma imkanına kavuşur.

 

Bizde Omerd Business Solutions olarak Dynamics CRM dersi açtık, Microsoft adına açılan derse öğrencilerin ilgisi beklenenden fazla oldu. Derslerin ilk dört haftasını Omerd Business Solutions Genel Müdürü Doruk KAFTANCI, sonraki haftaları ise Yazılım Departman Müdürü ve Dynamics CRM MVP'si Barış KANLICA verecek. Omerd BS olarak amacımız gençlere ulaşmak onlara yazılım dünyasını tanıtıp ufuklarını genişletmek. Daha sonrasında ise mümkün olan en çok sayıdaki öğrenciyi kendi bünyemizde istihdam etmek.

Microsoft Dynamics CRM 4.0 ve Microsoft Dynamics CRM 2011 Arasındaki Özellik Farklılıkları

Microsoft Dynamics CRM 2011 ve Microsoft Dynamics CRM Online'da programlama modeli .NET'in temel türlerini kullanacak şekilde değiştirildi.

Bu tabloda beni en çok şaşırtan ise Customer, Lookup, Owner nesnelerinin artık EntityReference türünden sadece bir değer almaları. CRM'i yeni öğrenler için işler gerçekten kolaylaştırılmış. Artık kod yazarken CRM ile başlayan nesnelerimiz yok.

Aşağıdaki tablo bize Microsoft Dynamics CRM 4.0 ile CRM 2011 arasındaki tür dönüşümünü göstermektedir.

Özellik AdıMicrosoft Dynamics CRM 2011 Türü Microsoft Dynamics CRM 4.0 Türü

AttributeTypeCode.Boolean

bool ya da System.Boolean

CrmBoolean

AttributeType.CalendarRules

EntityCollection

DynamicEntity[] or calendarrule[]

AttributeType.Customer

EntityReference

Customer

AttributeType.DateTime

System.DateTime

CrmDateTime

AttributeType.Decimal

decimal ya da System.Decimal

CrmDecimal

AttributeType.Double

double ya da System.Double

CrmFloat

AttributeType.Integer

int ya da  System.Integer

CrmNumber

AttributeType.Internal

System.Object

Kayıtlarda Kullanılmaz

Kayıtlarda Kullanılmaz.

AttributeType.Lookup

EntityReference

Lookup

AttributeType.Memo

string ya da System.String 

System.String

AttributeType.Money

 Money

CrmMoney

AttributeType.Owner

EntityReference

Owner

AttributeType.PartyList

 EntityCollection or ActivityParty[]

activityparty[] or DynamicEntity []

AttributeType.Picklist

OptionSetValue

Picklist

AttributeType.PrimaryKey

System.Guid

Key

AttributeType.String

System.String

System.String

AttributeType.State

OptionSetValue yada oluşturulan enumeration kullanılmalı

EntityNameStateInfo

AttributeType.Status

OptionSetValue ya da int

Status

AttributeType.Uniqueidentifier

System.Guid

UniqueIdentifier

AttributeType.Virtual

System.Object

Kayıtlarda Kullanılmaz

Kayıtlarda Kullanılmaz

Eski TürYeni Tür

CrmAttributeType Class (MetadataService)

Microsoft.Xrm.Sdk.Metadata.AttributeTypeCode

Moniker Class (CrmService)

Microsoft.Xrm.Sdk.EntityReference

SecurityPrincipal Class (CrmService)

Microsoft.Xrm.Sdk.EntityReference

Dynamics CRM 2011'e İlk Bakış - Son Kullanıcı Gözüyle

Gelecek, geliyor az kaldı derken en sonunda geldi ve betası yayınlandı. Bahsettiğim tabii ki Dynamics CRM 2011 :) Onun bu halini görmek bana CRM 1.2 versiyonundan CRM 3.0 versiyonuna geçtğimiz günleri hatırlattı. Türkiye'de o günleri bilen danışman/yazılımcı sayısı bir elin parmaklarını geçmez. (Onlardan biri olmak hala çok gurur verici) 1.2'den 3.0'a geçerken şöyle demiştim: "Sanırım Dynamics CRM uzmanı olmakla doğru bir iş yaptım", 5.0 yani CRM 2011'i görünce şöyle dedim : "Kesinlikle doğru bir iş yaptım"

Neden böyle dediğime gelince. Bugün piyasada bir sürü yazılım aracı ve framework var ama hiçbiri Dynamics CRM kadar bütünleşik ve web tabanlı bir mimari sunamıyor. Hala birçok insan Dynamics CRM'i üzerinde ufak tefek kodda yazılabilen bir program sanıyor. Artık bu algıyı değiştirelim lütfen Dynamics CRM bir bütünleşik iş platformudur ve üzerinde her türlü iş modellenebilir...

2009'un sonlarına doğru Dynamics CRM 2011'in (o zamanlar adı CRM 5.0 olarak geçiyordu) alpha'sını yani CTP'sini kurduğumda ilk şaşırdığım şey artık yukarıdaki tabların olmayışıydı. (MVP olmanın en güzel yanı da bu ya ürün çıkmadan kullanıp istediğiniz gibi müdahale edebiliyorsunuz). Hatta bana yeni CRM nasıl diye soranlara bildiğiniz herşeyi unutun bambaşka bir ürün geliyor demiştim ve öyle de oldu.

Dynamics CRM 2011 hazırlanırken beni en çok heyecanlandıran konu yazılım geliştirici ve danışmanlar için devasa yenilikler getiriyor olması. Genellikle Microsoft ürünlerinde büyük geliştirmeler hep kullanıcı tarafında olur ama bu sefer büyük geliştirme özelleştirme ve kod geliştirme tarafında olmuş. Şimdi iki yönden de bakarak sizlere yenilikleri anlatayım.

Office Görüntüsü

CRM 2011 ile birlikte artık ribbonlu yapıya geçeceğiz. Yani menü ve düğme tasarımları şekilde de görüldüğü üzere Office 2007'den sonra alıştığımız biçimde olacak.

Get Started (Başlarken) Bölümü

Artık her entity'nin (yani firma, ilgili kişi kartlarının) genel görünüm ekranında bir yardım ekranın olması da ana ekrandaki büyük değişikliklerden biri. Tabii ki aşağısındaki yukarı doğru duran oka basarak kapatabiliyorsunuz.

Navigation Pane (Gezinme Bölmesi)

Sol taraftaki gezinme bölmesi de değişikliklerden nasibini almış tabii. burada üç adet güzel yenilik var. Birincisi hızlıca başlangıç sekmenize gitmenizi sağlayan bir düğme ile son baktığınız görünümlere hızlıca gitmenizi sağlayan başka bir düğmenin gezinme bölmesinin tepesine eklenmiş olması. Üçüncü güzel özellik ise nesnenin adının üzerine gelince soldak oka basarak açabileceğiniz menü. Bu menü sayesinde o nesnenin üzerindeki istediğiniz görünüme kolayca gidebilirsiniz.

Dashboard

Artık CRM içerisinde istediğimiz gibi dashboard tasarlayabiliyoruz. Çok önemli bir eksikti ve gelmesi çok iyi oldu. Yöneticiler bu özelliğe bayılacak.

Görünüm ve Arama Bölmesi

Görünümler ile Arama Bölmesi bu versiyonda yer değiştirmiş. Ayrıca arama bölmesini de küçültmüşler. İyi olmuş zaten gereksiz yere büyüktü.

Grid'te Filtreleme Özelliği

En sevindirici yeni özelliklerden biri artık Gridteki veriler üzerinde istediğimiz gibi filtreleme yapabiliyorsunuz.

Grid Bölmesindeki Grafikler

Grid bölmesinin sağ yanına eklenen grafikler ile verilerinizin durumlarına özgün grafiksel şekilleri alabilrsiniz. Bu da kullanıcılara hızlı karar verme ve müdahale etme yeteği vermektedir.

Sekmelerin Kalkması

Yukarıda da ifade ettiğim gibi artık sekmeler (tab) yok onlar yerine bağlantılar var. Bu aslında bana biraz ajax control toolkitteki accordion yapısını çağrıştırdı. Gerçeği söylemek gerekirse ben bu özelliği beğenmedim :( Ama ekranı böyle yapmalarının nedeni özelleştirmelerdeki yeniliklerden ve kullanıcıya daha az tıklama yaptırma arzusundan kaynaklanıyor.

Formlarda Filtered Lookup Özelliği

Formlar üzerinde artık istediğimiz gibi filtered lookuplar tanımlayabiliyoruz. Bu sayede örneğin il İstanbul seçilince ilçelerde İstanbul'un ilçelerini görüntüleyebilmek için kod yazmamıza gerek kalmayacak.

Sub-Grid Özelliği

Ayrıca Sub-Grid özelliği sayesinde formun herhangi bir yerinde istediğimiz bir grid'i gösterebileceğiz. Bu da eskiden kodla yaptığımız bireydi.

Form Navigation Pane'inde (Gezinme Bölmesinde) Sıralama

Formların navigation pane yani gezinme bölgesinde de artık sıralama yapabiliyoruz. Bu da çok aranan özelliklerden biriydi.

Lookup'ta Görünüm Seçebilme Özelliği

İşte sonunda aradığım özellik eklendi. Lookup penceresinde görünümler içerisinden seçim yapıp istediğimiz görünümde arama yapabiliyoruz.

Connections (Bağlantılar)

CRM'in eski versiyonlarda kısıtlı yeteneği nedeniyle hiçte kullanılmayan İlişkiler (Relationship) yerine artık Bağlantılar yani (Connections) geldi. Yerine geldi diyorum ama eskisinin de biryere gittiği yok ama yine kullanılmayan bir özellik olarak kalacak gibi duruyor. Yeni Connections özelliği ise artık bize sadece Firma (Account), İlgili Kişi (Contact) ve Fırsat (Opportunity) yerine sistemdeki bütün nesnelerde ilişki kurma yeteneği kazandırıyor. Bu konu başlı başına ayrı bir makale konusu.

Documents (Belgeler)

Artık CRM kardeşi SharePoint ile tam entegre. CRM içerisinden bir belgeyi direkt SharePoint içerisindeki ilgili klasöre koyabiliyorsunuz.

Audit History (Değişiklikleri İzleme)

Müşterilerimizin en çok aradığı özelliklerden biri olan bir kayıt üzerindeki değişikleri izleme yeteneği artık CRM 2011'de var.

Workflow (İşakışı) Yetmez...

Workflowlar yani işakışları üzerinde bir takım değişiklikler yapılmış ama bunları yazılım geliştirici bölümünde anlatacağım. Aslında burada size yeni bir özellik olan Dialog (Diyalog) pencerelerinden bahsetmek istiyorum. Gerçi bu konu da başlı başına bir makale konusu ama kısaca özetlersek; workflowlar çalışırken kullanıcı ekranda hiçbirşey görmüyor ve biz kullanıcıdan aldığımız bilgilere göre bir akış belirleyemiyoruz. İşte diyaloglar bunun için geldi yani workflow gibi çalışan ama penceresi sayesinde kullanıcıdan bilgi alan ve o anda aldığımız bilgiye göre akışta değişiklik yapabileceğimiz ekranlar diyalog pencereleri. Kısacası işakışının asenkron değil senkron olanı.

Goals (Hedefler)

Artık satış ve servis personelimiz için çeşitli hedefler belirleyebiliyor bunları belli dönemler halinde takip edebiliyoruz. Bu özellik sayesinde periyodik olarak performans ölçümü yapabiliyorsunuz :)

Field Level Securty (Alan Bazlı Güvenlik)

Bu da eksikliği farkedilen özelliklerden biriydi ama artık var. CRM 2011 içerisinde istediğimiz alanı istediğimiz yetki grubuna göre gizleyip görüntüleyebiliyoruz.

Bir kullanıcının CRM 2011'i kullanırken görebileceği bütün yeniliklere değinmiş olduk. Bir de Outlook Client tarafı var tabii ama onu da başka bir makalede inceleyeceğiz. Şimdilik bu kadar. Bu serinin ikinci makalesi olan Yazılım Geliştiricilere Göre Yenilikler makalesinde görüşmek üzere.

Barış KANLICA | Dynamics CRM MVP
Microsoft Certified Business Management Solution Specialist

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