Özgür Özvarış

Bir yazılımcının kırık dökük dünyası

Soap Serialize ve Deserialize

clock Aralık 25, 2012 09:43 by author OzgurOzvaris

Değerli Arkadaşlar,

Geçen çok ilginç bir şeyle karşılatım bir müşterimizde web servis extensionla (Bir önceki blogumuz) logladığımız bir web servis test metodunu kendimin de test etmesi ihtiyacı oldu. Test.asmx isimli bir yeni web servise aynı metodun aynı class input ve output değerleri ile bir test metodunu oluşturdum. Ancak client tarafa web servisimi referans gösterince input ve output (io) classların bir örneğini test.asmx e ait otomatik proxy class içine kopyalandı (Bu kopyalama ile ilgili sorun bir başka wcf uygulamamda çözmüştüm. Belki ilerleyen zamanda bununla ilgili de bir örnek yaparız.). Böyle olunca server tarafında aynı io classlarını kullanmama rağmet client tarafta farklı io classlar şeklinde gözüktü.

Client taraftaki fonksyonu giriş çıkış değerlerini test'e göre ayarlamak yerine, burada bir ali cengiz oyunu yapmaya karar verdim. Aslında soap haberleşmesinde kullanılan io claslar birer soap döküman öyle ise bu classların içinde ki class isimlerini değiştirerek client tarafta minimum değişiklikle sunucu tarafı ile haberleşebilirim diye düşündüm.

Önce kaynakların linklerini vermekle başlıyayım

C# serializing/deserializing with memory stream

Using DataContractSerializer to serialize, but can't deserialize back

Kendi Çalışmam (18,71 kb)

Bu değiştiştirme işlemi bir kaç aşamadan oluşuyor.

1 - Proje içinde kullanınan gerçek classın Serialize edilmesi ve stringe dönüştürülmesi

2 - Oluşturulan class içindeki source class typenin target class tipi ile deşitirilmesi

3 - Oluşan yeni string değerin deSerialize edilerek return değerin target class tipi üzerinden alınması.

Tabi burda yine bazı sitelerden faydalandım.

Burada dikkat edilmesi gereken bir husus var. Klasik yöntemden Serialize ve deSerialize yöntemleri (kysvdy) ile bu işlemi yapamıyor olmamız çünkü kysvdy de memory stream deSerialize bit değeri artıyor. Bunun izahını verdiğim linklerde bulabilirsiniz.



Webservice trace extension

clock Aralık 19, 2012 13:35 by author OzgurOzvaris

Değerli Arkadaşlar,

Belki sizde benim gibi web service trace etmeye ihtiyaç duyabilirsiniz.

Biraz kaynak bulmakta zorlandım önce kaynakların linklerini vermekle başlıyayım.

MSDN : How to: Implement a SOAP Extension

Efficient Tracing Using SOAP Extensions in .NET

TraceExtension codeplex Sample Project

Kendi Çalışmam (292,60 kb)

 

Bildiğiniz üzere bizler gerek wcf de gerek, webservice (.asmx) uygulamalarında kullandığımız metodlarda xml tabanlı soap mesajları ile haberleşme yapıyoruz. Kullandığımız web metodların, bu mesajları kullanabilmesi için typelara çeviriyorlar. Ancak üst seviyedeki soap mesajları kullanmak için bir kaç yöntemden biride SoapExtension classından yada customize edilmesinden faydalanmak.

Bir yöntemde networku dinlemek. Araştırmam esnasında http://www.wireshark.org/ ürününü gördüm. Belki ufuk olur diye bunuda not edeyim...

 

Kendi çalışmamada web.config'e 2 adet parametre ekleniyor WsLogModuleList, SimpleLogPath isimli.

WsLogModuleList :

[TraceExtension(Filename = "C:\\wslogtest\\log.txt", ModuleName = "HelloWorld")]

ModuleName = "HelloWorld" değeri WsLogModuleList parametresinde ayrılmış şekilde bulunuyorsa bu web metod loglanıyor.

SimpleLogPath : Eğer TraceExtension bölümünde File Name ile ayrı bir path belirtilmemişse logu SimpleLogPath te belirtilen yere alır.

 İyi çalışmalar.

 

Not 1: wcf trace etmek için bu yöntemi kullanmayın. wcf için bu link belki iş görebilir. Writing a WCF Message Inspector

Not 2: web servisi test etmek için localde browserda gelen web servis test etmek için kullanılan invoke komutunu kullanmayın.

 



jquery iframe data yönetimi - 2

clock Aralık 18, 2012 09:32 by author OzgurOzvaris

Bir önceki yazımızda iframe içine bir div koyarak içeriğine erişip değiştirmiştik. Şimdi ise daha farklı bir yaklaşım dan bahsedeceğim.

Kaynağına buradan erişebilirsiniz.

<html>
  <head>
    <script type="text/javascript" src="jquery.js"></script>
    <script>
      $(document).ready(function(){
        var locations = ["http://webPage1.com", "http://webPage2.com"];
        var len = locations.length;
        var iframe = $('#frame');
        var i = 0;
        setInterval(function () {
            $(iframe).attr('src', locations[++i % len]);
        }, 30000);
      });
    </script>
  </head>
  <body>
    <iframe id="frame"></iframe>
  </body>
</html>



Örnekte görüldüldüğü üzere

$(iframe).attr('src', '...');.

Komutu ile iframe'in src tagını değiştirebiliyoruz. Örnekte birde setinterval kullanılmış. Sebebi asenkron olarak iframe yüklendikten sonra srcyi değiştirebilmek. Bazen direk olarak bu değişikliği yapmaya çalışırsanız daha iframe derlenmediği için sonuç alınamayabilir.

İyi çalışmalar



Windows 8 port 80 problemi

clock Aralık 13, 2012 12:01 by author OzgurOzvaris

Windows8 bazen 80 numaralı portu meşgul edebilir. Bu sorunun çözümü için bir kaç makaleden faydalandım.

http://superuser.com/questions/352017/pid4-using-port-80

http://lordamit.blogspot.de/2012/06/windows-7-windows-8-apache-errorport-80.html

Öncelikle netstat -nao | find "80" komutu ile 80 numaralı portu kimin dinlediğine bir bakın 

 

PID değerine bakarak taskmanagerdan hangi uygulamanın kullanıdığına bakalım.

 

 

 

Eğer kullanan System ne NT Kernel ise

• RegEdit'i açın
• HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\HTTP Açın
• Start to değerini 4 (disable) yapın
• Kapatıp açın

İyi çalışmalar.



jquery iframe data yönetimi

clock Aralık 11, 2012 10:15 by author OzgurOzvaris

iframe içindeki datanın yönetilebilmesi için güzel bir örnek buldum.

http://simple.procoding.net/2008/03/21/how-to-access-iframe-in-jquery/

<iframe id="iframeID" ...></iframe>

iframe içine bir div yerleştirilir.

<div id="someID">Hello world!</div>

sonra dive erişilerek data yönetilir.

$('#iframeID').contents().find('#someID').html();


Ext JS Dünyası

clock Aralık 7, 2012 11:03 by author OzgurOzvaris

Gerçekten çok güzel bir Javascript kütüphanesi. http://docs.sencha.com/ adresinden en güncel versiyonu takip edebilirsiniz.

Multi windows yada tabs diyebileceğimiz uygulama mantığı çok güzel.

"Web Desktop" örnek uygulamalarına hayranım.

http://docs.sencha.com/ext-js/4-0/#!/example/desktop/desktop.html (Web Desktop uygulamasının lnki versiyonla değişiyor)

Tavsiye Ederim.

Herkese Selamlar.



C# Başlangıç

clock Aralık 5, 2012 18:03 by author OzgurOzvaris

 (Bu yazı test amaçlıdır. Siteyi test edip görselliğini ayarlıyorum.)

Değerli Arkadaşlar Merhaba,

Yeni bir blog çalışması ile karşınızdayız. İlim paylaştıkça çoğalık kaidesince dilim döndüğünce buradan bilgi ve tecrübelerimi paylaşmaya gayret edeceğim.

Umarım herkese faydalı olur. Bismillah deyip başlayalım.

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

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            HelloWord();
        }

        public static void HelloWord()
        {
            int i = 5;
            string s = "Merhaba Dünya";

            for (int j = 0; j < i; j++)
            {
                Console.WriteLine(s);
                
            }

            Console.Read();

        }
    }
}

Yukarıda gördüğünüz uygulama basip bir console uygulamasıdır. Çalıştırdığımızda aşağıdaki ekran görüntüsünü alıyoruz.

vs2010 .net 4.0 Kaynak Kod : ConsoleApplication1.zip (30,94 kb)



Başlangıç noktamız burası olsun.

Test yazısını şimdilik ara veriyorum.



Hakkımızda  AboneOl 

Blog Yayınımıza Hoşgeldiniz.

Month List

RecentPosts

Sign In