Merhabalar arkadaşlar,
Bugün sizlere windows form application içerisine chrome'u nasıl embed edeceğimizi anlatacağım.İnternet üzerinde araştırma yaptığımda ingilizce kaynaklarda bir kaç tane yapılmış örnek uygulamalar mevcut fakat indirip denediğimde hiç biri çalışmıyor ya da ben yapamadım :D. Türkçe kaynak ise doğru düzgün bulamadığım için paylaşmak istedim.
İlk başta aşağıdaki linkte gerekli olan .dll dosyaları mevcuttur.
https://www.dropbox.com/s/dl4d4ht1xmysnaf/CefSharp-1.25.0.7z
Benim yapmış olduğum örnek uygulama ise ,
https://www.dropbox.com/s/jw5gvhtafvin3wq/chromeEmbed.rar
Kendi uygulamanıza direk eklemek istiyorsanız yapmanız gereken adımlar şu şekilde olmalıdır ,
1.) Vermiş olduğu ilk linkteki .dll leri indirin.
2.) CefSharp.dll , CefSharp.Example.dll ve CefSharp.WinForms.dll projenize referans olarak ekleyin.
3.) İndirmiş olduğunuz .dll dosyalarının hepsini projenizin ../Debug/bin/ klasörü içerisine kopyalayın.
4.) using CefSharp.WinForms; kodu ile namespace i using tag ına ekleyin.
5.) CefSharp.WinForms.WebView wb = new WebView();
wb.Dock = DockStyle.Fill;
wb.Address = "www.google.com";
this.Controls.Add(wb);
kodları ile formunuza ekleyebilirsiniz.
Yapmanız gerekenler sadece bu kadar. Eğer cookie oluşturmak istiyorsanız ,
CefSharp.CEF.SetCookie(); kodunu kullanmanız gerekmektedir.
Umarım faydalı olur. Bir sonra ki makalemde görüşmek üzere.
17 Haziran 2014 Salı
5 Nisan 2014 Cumartesi
"Database Diagram Support objects cannot be installed" Çözümü
Merhaba arkadaşlar,
MSSQL üzerinde bulunan databse'inizde ilişki oluşturmak istiyorsanız ve aşağıdaki hatayı alıyorsanız eğer ,
yapmanız gereken yeni bir query sayfası açıp aşağıdaki query'i yazıp çalıştırmanız yeterli olacaktır.
Kullanici adi bölümüne sql server üzerinde var olan kullanıcıları direk olarak yazabilirsiniz. Eğer windows authorization ile işlem yapmak ve bu kullanıcının yetkisini düzenlemek istiyorsanız yapmanız gereken ,
Umarım faydalı olur. Görüşmek dileğiyle ...
MSSQL üzerinde bulunan databse'inizde ilişki oluşturmak istiyorsanız ve aşağıdaki hatayı alıyorsanız eğer ,
yapmanız gereken yeni bir query sayfası açıp aşağıdaki query'i yazıp çalıştırmanız yeterli olacaktır.
ALTER AUTHORIZATION ON DATABASE::DatabaseIsmi TO [KullaniciAdi];
Kullanici adi bölümüne sql server üzerinde var olan kullanıcıları direk olarak yazabilirsiniz. Eğer windows authorization ile işlem yapmak ve bu kullanıcının yetkisini düzenlemek istiyorsanız yapmanız gereken ,
ALTER AUTHORIZATION ON DATABASE::DatabaseIsmi TO [PcAdi\PcKullaniciAdi];
Umarım faydalı olur. Görüşmek dileğiyle ...
10 Temmuz 2013 Çarşamba
web service parser error could not create type .net framework 4.0
Bu özet kullanılabilir değil. Yayını görüntülemek için lütfen
burayı tıklayın.
6 Temmuz 2013 Cumartesi
Asp.Net Web Sitemde Routing Çalışmıyor. Asp.Net Routing Ayarları
Merhaba arkadaşlar. Bugün sizlere ASP.NET ile web sitesi geliştirdiğiniz projelerinizde eğer Routing kullanırsanız yüksek ihtimalle karşılaşacağınız sorunun çözümünü paylaşacağım. İlk olarak routing yapısını kullandıysanız hosting panelinizden ASP.NET ayarlarından Pipeline Mode ayarını Classic den INTEGRATED olarak kaydetmeniz gerekecektir. Gerekli olan hosting ayarını yaptıktan sonra ise Web Site projeniz içerisinde bulunan Web.config dosyanıza Configuration tag ları arasına aşağıdaki configuration satırlarını eklemeniz gerekecektir.
<system.webServer>
<modules runAllManagedModulesForAllRequests="true">
<remove name="UrlRoutingModule"/>
<add name="UrlRoutingModule" type="System.Web.Routing.UrlRoutingModule, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
</modules>
<handlers>
<add
name="UrlRoutingHandler"
preCondition="integratedMode"
verb="*" path="UrlRouting.axd"
type="System.Web.HttpForbiddenHandler, System.Web,
Version=2.0.0.0, Culture=neutral,
PublicKeyToken=b03f5f7f11d50a3a"/>
</handlers>
</system.webServer>
Tüm yapmanız gereken bu kadar. Eğer hosting panelinizde bahsettiğim ayarı bulamazsanız mutlaka hosting firmanızla iletişime geçiniz. Bu ayarı yapmazsanız eğer sisteminiz tekrar 404 hatası verecektir.
Umarım faydalı olmuştur.
<system.webServer>
<modules runAllManagedModulesForAllRequests="true">
<remove name="UrlRoutingModule"/>
<add name="UrlRoutingModule" type="System.Web.Routing.UrlRoutingModule, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
</modules>
<handlers>
<add
name="UrlRoutingHandler"
preCondition="integratedMode"
verb="*" path="UrlRouting.axd"
type="System.Web.HttpForbiddenHandler, System.Web,
Version=2.0.0.0, Culture=neutral,
PublicKeyToken=b03f5f7f11d50a3a"/>
</handlers>
</system.webServer>
Tüm yapmanız gereken bu kadar. Eğer hosting panelinizde bahsettiğim ayarı bulamazsanız mutlaka hosting firmanızla iletişime geçiniz. Bu ayarı yapmazsanız eğer sisteminiz tekrar 404 hatası verecektir.
Umarım faydalı olmuştur.
27 Mayıs 2013 Pazartesi
"A potentially dangerous Request.Form value was detected from the client" Hatası ve Çözümleri
Merhaba arkadaşlar. Bugün proje geliştirirken aldığım hatanın sebebini ve çözümlerini sizlerle paylaşacağım. Hatanın sebebi web projenizde herhangi bir sayfanızda herhangi bir yerinden girdi olarak HTML girdisi alınıyorsa direk olarak bu hatayı fırlatıyor. Asp.Net kendisi bu şekilde bir nebze de olsa güvenlik sağlamaya çalışıyor. Fakat bazen öyle durumlar oluyor ki kullanıcan HTML içerikli girdi almak durumunda kalıyorsunuz. Bu durumlar da yapılması gereken ilk şey farklı bir editör kullanmak. Örneğin CKEditor gibi. Fakat benim şuan geliştirdiğim uygulamda kullanıcıdan Google Map embed linki almam gerekiyor. Bunun için CkEditörü sayfaya import edip yüklenmesini sağlayıp sayfayı yavaşlatmak saçma ve gereksiz olur. Bu nedenle klasik ve düz TextBox kullanıyorum. Bu durumda da html girdi olduğu için direk bu hatayı fırlatıyordu. Bu sorunun birden fazla çözümü mevcuttur .
1-) Web.config dosyamıza <system.web> tag ının altına <pages validateRequest="false"/> tag ı eklenir.
2-) Bu şekilde veri girdisi sadece o page de olacaksa daha özele inip , ilgili page in <%@Page tagına validateRequest="false" eklenir.
3-)Eğer bunları yapıp hala aynı hatayı alıyorsanız muhtemelen Visual Studio 2010 ve 4.0 ile projenizi geliştiriyorsunuz demektir. Bu durumda ise Web.config dosyamıza <system.web> tag ının altına <httpRuntime requestValidationMode="2.0" /> tag ı eklenir.
Umarım faydalı olmuştur arkadaşlar. Bir sonraki makalemde görüşmek üzere.
1-) Web.config dosyamıza <system.web> tag ının altına <pages validateRequest="false"/> tag ı eklenir.
2-) Bu şekilde veri girdisi sadece o page de olacaksa daha özele inip , ilgili page in <%@Page tagına validateRequest="false" eklenir.
3-)Eğer bunları yapıp hala aynı hatayı alıyorsanız muhtemelen Visual Studio 2010 ve 4.0 ile projenizi geliştiriyorsunuz demektir. Bu durumda ise Web.config dosyamıza <system.web> tag ının altına <httpRuntime requestValidationMode="2.0" /> tag ı eklenir.
Umarım faydalı olmuştur arkadaşlar. Bir sonraki makalemde görüşmek üzere.
22 Mayıs 2013 Çarşamba
Entity FrameWork .Net Framework 4.5 Projelerinde Transaction Kullanımı
Merhaba arkadaşlar ,
Geliştirmekte olduğum projemin içerisinde database işlemlerini yaptığım methodlarda transaction kullanmam gerekti.Daha önce .Net Framework 4.0 ile geliştirdiğim projelerimde Transaction yapısını kullanmıştım. Fakat şuan ki projemi .Net 4.5 ile geliştiriyorum.Transaction işlemi için .Net 4.0 da kullanmış olduğum ,
using (TransactionScope scope = new TransactionScope())
{
}
bloğunu tekrar kullanmam gerekiyordu. Fakat bu şekilde yazında TransactionScope Class ının içerisinde bulunduğu Library 'i görmedi. Bunun için uyguladığım çözüm ise ;
Solution içerisinde transaction uygulanacak sınıfın ait olduğu project teki references kısmına sağ tıklayıp Add Reference dedim . Çıkan listede System.Transactions olması gerekiyor.Bu listenin içerisinde göremiyorsanız siz de benim gibi , penceredeki Browse butonuna tıklayın ve aşağıdaki dizine konumlanın .
C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\
Daha sonra bu klasörün içerisinde System.Transactions.dll dosyasını seçin ve Ok butonuna basın. Bu şekilde referas olarak ekledikten sonra transaction uygulanacak sınıfınıza geri dönün. Ve
Using System.Transactions;
satırını ekleyin. Artık
using (TransactionScope scope = new TransactionScope())
{
}
scope larının içerisine yazacağınız tüm database işlemlerine transaction uygalanacaktır.Yani bir işlem başarısız olursa eğer , bu scope içerisindeki tüm database işlemleri geri alınacaktır.
Umarım faydalı olmuştur. Görüşmek üzere.
Geliştirmekte olduğum projemin içerisinde database işlemlerini yaptığım methodlarda transaction kullanmam gerekti.Daha önce .Net Framework 4.0 ile geliştirdiğim projelerimde Transaction yapısını kullanmıştım. Fakat şuan ki projemi .Net 4.5 ile geliştiriyorum.Transaction işlemi için .Net 4.0 da kullanmış olduğum ,
using (TransactionScope scope = new TransactionScope())
{
}
bloğunu tekrar kullanmam gerekiyordu. Fakat bu şekilde yazında TransactionScope Class ının içerisinde bulunduğu Library 'i görmedi. Bunun için uyguladığım çözüm ise ;
Solution içerisinde transaction uygulanacak sınıfın ait olduğu project teki references kısmına sağ tıklayıp Add Reference dedim . Çıkan listede System.Transactions olması gerekiyor.Bu listenin içerisinde göremiyorsanız siz de benim gibi , penceredeki Browse butonuna tıklayın ve aşağıdaki dizine konumlanın .
C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\
Daha sonra bu klasörün içerisinde System.Transactions.dll dosyasını seçin ve Ok butonuna basın. Bu şekilde referas olarak ekledikten sonra transaction uygulanacak sınıfınıza geri dönün. Ve
Using System.Transactions;
satırını ekleyin. Artık
using (TransactionScope scope = new TransactionScope())
{
}
scope larının içerisine yazacağınız tüm database işlemlerine transaction uygalanacaktır.Yani bir işlem başarısız olursa eğer , bu scope içerisindeki tüm database işlemleri geri alınacaktır.
Umarım faydalı olmuştur. Görüşmek üzere.
9 Mayıs 2013 Perşembe
Unable to update the EntitySet 'Slider' because it has a DefiningQuery and no element exists in the element to support the current operation. Hatasının Çözümü
Merhaba arkadaşlar. Bugün proje geliştirirken karşıma çıkan hatanın çözümünü sizinle paylaşacağım.Öncelikle hatayı Entity Framwork kullanarak veri tabanındaki bir tabloya kayıt eklerken aldım. Daha sonra bu hatanın çözümü için uyguladığım seçenekler ise ,
1-) Projemdeki modeli güncellemek ,
2-) Veri tabanındaki ilişkileri kontrol etmek ,
3-) Projemdeki modeldeki ilişkileri kontrol etmek ,
4-) Google ' a sormak :)
ve 4. seçenekte www.stackoverflow.com sitesinde karşıma çıkan öneriyi denedikten sonra sorunum çözüldü. Sorun aslında yapılmaması gereken bir hatadan kaynaklanıyormuş. Veri ekleme işlemi yaptığım tabloyu oluşturduğumda Primary Key belirtmediğimden dolayı hata alıyormuşum.
Yani kısaca sorunu ilgili tabloma Primary Key alanı ekleyerek , daha sonra da projemdeki modeli güncelleyerek çözmüş bulunmaktayım.
Umarım yardımcı olmuştur.
1-) Projemdeki modeli güncellemek ,
2-) Veri tabanındaki ilişkileri kontrol etmek ,
3-) Projemdeki modeldeki ilişkileri kontrol etmek ,
4-) Google ' a sormak :)
ve 4. seçenekte www.stackoverflow.com sitesinde karşıma çıkan öneriyi denedikten sonra sorunum çözüldü. Sorun aslında yapılmaması gereken bir hatadan kaynaklanıyormuş. Veri ekleme işlemi yaptığım tabloyu oluşturduğumda Primary Key belirtmediğimden dolayı hata alıyormuşum.
Yani kısaca sorunu ilgili tabloma Primary Key alanı ekleyerek , daha sonra da projemdeki modeli güncelleyerek çözmüş bulunmaktayım.
Umarım yardımcı olmuştur.
Kaydol:
Kayıtlar (Atom)
