


.NET, İş Zekası, Power BI, Power Platform / 8 Temmuz 2020 / Miraç ÖZTÜRK
Merhaba iyi günler.
Bugün birçok şirketin altyapısı üzerinde bulunan ve vazgeçilmezi olarak görülen C# diline yönelik Power BI kullanımını Gunnar Peipman ve Patrick LeBlanc paylaşımlarından faydalanarak farklı bir çözümleme getirmeye çalıştığım bir şirket projesinde izlediğim köşe taşları ile sizlere aktarmaya çalışacağım.
Aktarmaya çalışacağım çalışmanın çıkış noktası; dağıtık olarak operasyonel süreçleri birkaç program üzerinden takip etmeye çalışan firmanın, merkezi bir uygulama projesi içerisinde tüm faaliyetleri toplamak ve uygulama içerisinde Power BI aracının raporlama çözümlerinden yararlanmak istemesi.
Şematik olarak basit bir yapıda ele alınan çalışma;
şeklindedir.
Uygulamanın altyapısı .Net Core 3.0 olarak belirlenmiş ve uyuglama ana iskeleti tamamen oturtulmuş.
Raporlama sistemi Microsoft Power BI olarak belirlenmiş fakat uygulama içerisinde gömülü olarak mı takip gerçekleştirilsin ya da doğrudan Microsoft kullanıcıları oluşturularak takip tamamen ayrık mı sağlansın ? sorusuna yanıt aranmaktaydı.
Mantıken baktığımızda raporları uygulama içerisine gömmek ve kullanıcı erişimine açmak için 3 tip yöntem üzerinde durabiliriz.
ASP .Net Core versiyonu ve uygulama tipi tercihinden sonra projemi oluşturuyorum.
Oluşturduğum uygulamanın kaynak yapısı ön izlemesi;
şeklindedir.
Uygulamayı bir web tarayıcı üzerinde (Brave) çalıştırdığımda;
ön izlemesi ile karşılaşmaktayım.
Altyapımı oluşturduktan sonra çıkarımlarda bulunduğumuz alternatif çözümlemelerden ilki ile (Public Report Web URL) bir test oluşturalım.
Pages (Sayfalar) altında yeni bir Razor Page oluşturalım;
oluşturduğumuz sayfa için mevcut Layout (Ana Plan-Düzen-Ana Tema) yapımızı tanımlayıp, isimlendirme (WebUrl) işlemini gerçekleştirdikten sonra sayfa oluşturma adımlarımızı tamamlayalım.
Oluşturduğumuz sayfamız için (WebUrl) kullanacağımız rapor linkimizi Power BI Web Platformu üzerinden Web’de Yayımla (Publish to Web) çözümlemesinden elde edelim.
Elde ettiğimiz rapor linkimizi oluşturduğumuz sayfamızın (WebUrl) içerisinde IFrame yapısı şeklinde kullanalım.
Son olarak sayfamızı Layout içerisine dahil edelim.
Oluşturduğumuz yapımızı test ettiğimizde ise;
ön izlemesi ile karşılaşırız.
Çıkarımlarda bulunduğumuz alternatif bir diğer çözümlememiz ile (Report Embed) devam edelim.
Pages (Sayfalar) altında yeni bir Razor Page oluşturalım;
oluşturduğumuz sayfa için mevcut Layout (Ana Plan-Düzen-Ana Tema) yapımızı tanımlayıp, isimlendirme (ReportEmbed) işlemini gerçekleştirdikten sonra sayfa oluşturma adımlarımızı tamamlayalım.
Oluşturduğumuz sayfamız için (ReportEmbed) kullanacağımız rapor linkimizi Power BI Web Platformu üzerinden Ekle çözümlemesinden elde edelim.
Elde ettiğimiz rapor linkimizi oluşturduğumuz sayfamızın (ReportEmbed) içerisinde IFrame yapısı şeklinde kullanalım.
Son olarak sayfamızı Layout içerisine dahil edelim.
Oluşturduğumuz yapımızı test ettiğimizde ise;
ön izlemesi ile karşılaşırız.
Burada ilgili rapor kullanıcısının bilgileri ile giriş yapması gerekmektedir.
Giriş yapıp tekrardan sayfaya döndüğünde;
görünümü ile karşılaşır.Burada rapor kullanıcısı, rapor nezdinde kendisine atanmış rol ile rapor kullanımını gerçekleştirir.
Ek olarak rapor kullanıcısı ile rapor paylaşımı gerçekleştirilmemiş ise ön izleme hatası alınacaktır.
Çıkarımlarda bulunduğumuz son çözümlememiz ile (Microsoft Azure) test işlemlerimizi gerçekleştirelim.
Bu yöntemimizde belirli seviyede kodlama ile bir yapı kurmaya çalışacağız.
Pages (Sayfalar) altında yeni bir Razor Page oluşturalım;
oluşturduğumuz sayfa için mevcut Layout (Ana Plan-Düzen-Ana Tema) yapımızı tanımlayıp, isimlendirme (Azure) işlemini gerçekleştirdikten sonra sayfa oluşturma adımlarımızı tamamlayalım.
Sayfa oluşturma işlemimizin ardından uygulamamızın içerisinde Power BI raporlarımızı kullanabilmek için Azure üzerinden bazı uygulama bilgilerini almamız gerekmektedir.
Bilgilere erişmek için doğrudan; https://dev.powerbi.com/apps linkini kullanabilirsiniz.
Link üzerinden erişim sağladığınızda aşağıdaki gibi bir giriş ekranı ile karşılaşacaksınız;
İlgili kullanıcı bilgileri ile giriş sağlandıktan sonra;
Gerekli bilgilerin girişini gerçekleştirdikten sonra bize Application ID ve Application Secret bilgisi sağlanacaktır.
Close (Kapat) dedikten sonra son adım olarak sistem, aşağıdaki gibi işlemlerin başarılı şekilde tamamlandığına dair bir bildirimde bulunulacak.
Ardından uygulamamızın doğrudan servis bağlantısı gerçekleştirebilmesi için appsettings.json üzerindeki yapıyı;
aşağıdaki gibi düzenlememiz gerekmektedir.
Ardından Controllers üzerinde altyapımızı oluşturacak modellerimizi (PowerBISettings),
(PowerBIEmbedConfiguration) oluşturalım.
Sonrasında ise Controller altındaki kod yapımızı kurgulayalım.
Ek olarak Power BI ayarlarımızı yapılandıralım.
Son olarak View sayfamızı düzenledikten sonra;
sayfamızı test ettiğimizde (Layout alanına sayfamızı ekleyip);
görünümü ile karşılaşırız.
Oluşturduğumuz 3 opsiyonel çözümde kullanım uygulamalarımız içerisinde rapor kullanımı için tercih edilebilir.
Fakat;
Hangi çözümlemenin daha uygun olacağını kurumsal süreç ve esneklikleriniz doğrudan belirleyecektir.
Uygulama kaynak kodlarına yazımın başında belirttiğim gibi kendisini yakından takip ettiğim ve sürekli paylaşımlarından çıkarımlarda bulunmaya çalıştığım Gunnar Peipman web sitesi üzerinden erişebilirsiniz.(Takip etmenizi öneririm.)
Gelecek yazılarda görüşmek üzere.
İyi çalışmalar…
