Arda Çetinkaya Yazılım ve arada kendim ile ilgili karaladıklarım…

Today, I got a strange error when I tried to reach to another file system in my network. When I wrote the ip address of the machine that I want to connect, I got “The trust relationship between this workstation and the primary domain failed.” error and can not connect to the shared files. All my enviroment is in a domain. Within some search on internet, I got the cause of this problem.

When a pc is in a domain, and for a long time if it is not logged with a domain user, according to your policy, pc could be marked as something like unused.Because of this no domain rules can be applied and domain users can not be logged in.

You have to loggin with local administrator account and than remove the pc from domain and then rejoin to the domain. And go on as normal 🙂

Silverlight 2 Beta 2 was released this weekend. There are lots of nice improvoments. Also new Expression Blend 2.5 June Preview is avaliable.

For more information about these releases check the Scott Guthrie’s post.

At TechEd 2008 it is announced that new beta version of Silverlight 2 will be avaliable later this week. Introducing news shows that new nice improvements are done.

  • UI Framework: Beta 2 includes improvements in animation support, error handling and reporting, automation and accessibility support, keyboard input support, and general performance.  This release also provides more compatibility between Silverlight and WPF.
  • Rich Controls: Beta 2 includes a new templating model called Visual State Manager that allows for easier templating for controls. Other features include the introduction of TabControl, text wrapping and scrollbars for TextBox, and for DataGrid additions include Autosize, Reorder, Sort, performance increases and more.  Most controls are now in the runtime instead of packaged with the application.
  • Networking Support: Beta 2 includes improved Cross Domain support and security enhancements, upload support for WebClient, and duplex communications (“push” from server to Silverlight client).
  • Rich Base Class Library: Beta 2 includes improved threading abilities, LINQ-to-JSON, ADO.NET Data Services support, better support for SOAP, and various other improvements to make networking and data handling easier.
  • Deep Zoom: Beta 2 introduces a new XML-based file format for Deep Zoom image tiles, as well as a new MultiScaleTileSource that enables existing tile databases to utilize Deep Zoom. Better, event driven notification for zoom/pan state is another improvement in Silverlight 2 Beta 2.

 

Basit bir web uygulamasında, web site projesi vardır yanında da refereans verilmiş diğer projeler(veri katmanı,iş katmanı,servis katmanı….) Silverlight uygulamalarında bu biraz farklı. Daha doğrusu mantık aynı, yaklaşım farklı.

Silverlight, bir web uygulamasında kullanıcı arayüzü seviyesinde olan bir kavram. Buna göre kendi içinde veri ile ilgili işlerin olması,bir servis sunması çok da tercih edilen ya da beklenen bir şey değil. Bundan dolayı zaten Silverlight Application’ı açtığınız zaman, VS 2008’de referans olarak yapmış olduğunuz data katmanını(CLR .dll’i mesela) ekleyemezsiniz.

Peki arayüz katmanım,uygulamanın diğer parçalarından nasıl haberdar olacak?

Burada servis katman(lar)ı ortaya çıkıyor. Arayüz katmanı, servis katmanını referans kullanarak uygulamayı kullanıcıya sunuyor.Web servisini çağırmanın iki yolu vardır. Bir senkron olarak,bir de tabi ki asenkron olarak. Genellikle senkron olarak çağırılırdı web servisleri, Ajax hayatımıza girdikten sonra asenkron yaklaşım da önemini arttırdı,hatta kullanım olarak öne bile geçiyor. Silverlight’da tüm web servisleri asenkron olarak çağırılır.Kavram olarak bu şekilde ifade etmek pek doğru olmasa da kaba tabir ile Silverlight’da ajax desteği sağlanmış bu şekilde  diyebiliriz.Tabi ki bu v2.0 için.

Silverlight vs. Cross-Domain İletişim

Normal ASP.NET tasarımlarında www.minepla.net deki bir uygulama www.abc.com/WebService.asmx(.svc) şeklinde bir web servisini kolaylıkla çağırabilmekteydi. Ya da www.abc.com’de ki bir script’i… Bunun sonucunda ne olabiliyordu? XSS(cross-site scripting) saldırıları…Ve bu sayede www.abc.com’daki kötü niyetli bir script, www.minepla.net’de ki bir açıktan dolayı o sitedeki bilgilere ulaşabiliyordu. Silverlight’da bu olay böyle değil.Tehlikenin farkında olan Microsoft, Silverlight uygulamasından direk olarak başka bir domain’deki kaynağa ulaşmayı engelliyor. Flash uygulamalarında da aynı mantık var.(Tehlikenin ilk farkında olan Adobe olmuş yani  )

Başka bir yerde host edilen web servis’i çağıramıyorsam ne anladım ben bu işten…Ama tabi ki böyle değil.”clientaccesspolicy.xml” diye bir dosya ile,ki bununla ilgili ayrıntıyı buradan okuyabilirsiniz, web servise kimler erişebilecek belirtebiliyoruz.Bu dosyayı web servisi host eden server’ın root’una koyunca Silverlight uygulamamız artık web servisini çağırabilir hale geliyor.

Mekanizma nasıl işliyor tam bilemiyorum, ama tahminim ve mantıklı gelen, Silverlight uygulaması önce bir HTTP GET yapıyor ve dosyaya bakıyor,sonra web servise request yapıyor sanırım.

Sonuç olarak çok da sağlam olmasa da güvenlik adına güzel bir olay.

This post is a new era for my blog. 🙂 Because as you can read, with this post, I am going to write my posts in English. There are lots of reasons for this. I believe that this is going to be better for my blog…

Previous entries will not be affected from this globalization.And also there is some design issues and tag cloud problem. All my tags are dead. 🙁 As soon as possible I will be fixing them.