Filed under: .NeT 2008
Ağustos 21st, 2010
Bildiğiniz gibi, bir dll geliştirilirken, eğer imza eklenmezse, bu dll daha sonrasında GAC a (assembly e) atılamazlar. Kullanmanız gereken bir dll bulduğunuz da veya size başka bir yerden gönderildiğinde, geri dönüş yapıp, buna lütfen snk ekleyin demek de pek hoş olmaz zannımca.
Eğer böyle bir durumdaysanız, birazdan anlatacağım yöntemi kullanabilirsiniz;
Not: Aşağıda yazdıklarım sadece Visual Studio Command Prompt da çalışmaktadırlar. Normal CMD de boşuna uğraşmayın
Örneğin ; DLL imizin ismi Test.dll olsun.
- Assemblyimizi Dis-Assemble ediyoruz.
İldasm Test.dll /out:Test.il
-
Strong Name Key ekleyip tekrardan Re-Assemble ediyoruz.
İlasm Test.il /res:Test.res /dll /key:Test.snk /out:YeniTest.dll
Ve elimizde imzalı bir dll olmuş oldu…
Strong Name i doğrulamak için aşağıdaki komutu kullanabilirsiniz.
Sn -vf YeniTest.dll
Tags: cmd, command prompt, DLL, ildasm, sn, snk, SNK Ekleme, Strong Name, Visual Studio, Visual Studio Command Prompt
Posted in .NeT 2008, Bilgisayar, BizTalk, Sharepoint | No Comments »
Şubat 25th, 2010
Biztalk Administration Console olmadan, DB ye bakmak suretiyle Biztalk dan gelip geçen mesajları görmeniz pek mümkün olmamaktadır.
DB’yi ne kadar kurcalarsanız kurcalayın, Table lardaki bilgilerin (TrackingDB deki) anlamsız (okunamaz) durumda olduğunu göreceksiniz.
Peki Örneğin Bir Web Service veya Bir Web Sayfasında, Biztalk Server üzerinden gelip geçen mesajları ve mesajların içeriklerini nasıl gösterebiliriz?
Kullanabileceğiniz Metodlar Şöyle :
usings;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.Text;
using Operations = Microsoft.BizTalk.Operations;
using Microsoft.BizTalk.Message.Interop;
using System.IO;
using System.Globalization;
using System.Collections.ObjectModel;
Altı çizili olan dll leri Biztalk un kurulduğu dizin içerisinde bulabilirsiniz;
Definitions;
private string TrackingServer = "Biztalk SQL Server";
private string TrackingDB = "DTA DB";
Biztalk SQL Server : Biztalk Server ın DB sinin bulunduğu server (local vs olabilir).
DTA DB : Tracking DB nizin adı, değiştirmediyseniz BiztalkDTAdb olmalı.
GetServiceMessages Metodu;
public Collection<BTMsgInstance> GetServiceMessages(string ServiceInstanceId)
{
Collection<BTMsgInstance> collection = new Collection<BTMsgInstance>();
Operations.BizTalkOperations ops = new Microsoft.BizTalk.Operations.BizTalkOperations();
Operations.TrackingDatabase tdb = new Microsoft.BizTalk.Operations.TrackingDatabase(TrackingDB, TrackingServer);
Operations.MessageFlow flow = ops.GetMessageFlow(new Guid(ServiceInstanceId), tdb);
foreach (Operations.MessageEvent message in flow.MessageEvents)
{
BTMsgInstance instance = new BTMsgInstance
{
EndTime = message.RoutingDetails.Source.EndTime,
StartTime = message.RoutingDetails.Source.StartTime,
InstanceID= message.RoutingDetails.Source.InstanceID,
ErrorInfo = message.RoutingDetails.Source.ErrorInfo,
ExitCode = message.RoutingDetails.Source.ExitCode,
ServiceName = message.RoutingDetails.Source.ServiceName
};
collection.Add(instance);
}
return collection;
}
GetTrackedMessageData Metodu;
public string GetTrackedMessageData(string MessageInstanceId)
{
Operations.BizTalkOperations ops = new Microsoft.BizTalk.Operations.BizTalkOperations();
Operations.TrackingDatabase tdb = new Microsoft.BizTalk.Operations.TrackingDatabase(TrackingDB, TrackingServer);
Guid guid = new Guid(MessageInstanceId);
IBaseMessage trackedMessage = ops.GetTrackedMessage(guid);
IBaseMessagePart part = trackedMessage.BodyPart;
Stream stream = part.Data;
StreamReader reader = new StreamReader(stream);
return string.Format(CultureInfo.CurrentCulture, "0", new object[] { reader.ReadToEnd() });
}
Unutmadan yukarıdaki kodun çalışması için Biztalk Server üzerinde bir IIS’ e kurmanızı öneririm, zira kodlar yetki ile ilgili problemlerden dolayı çalışmayabilirler. Bu yüzden bu metodları bir web service olarak hazırlamanız en iyisi olacaktır. Daha sonra yapacağınız ayrı bir web uygulaması ile de bu metodları çağırıp gerekli bilgileri alabilirsiniz.
GetServiceMessages metodu, Bir servisin Instance ID sini input olarak alır ve BTMsgInstance sınıfında bir değişken döndürür. Bunun içinde EndTime, StartTime, InstaceID, ErrorInfo, ExitCode, ServiceName gibi bilgiler bulunmaktadır.
GetTracketMessageData metodu ise Message Instance ID si verilen bir mesajın içeriğini XML olarak bize döndürür.
Bu kadar bilgiden sonra lan olm iyi güzelde ServiceName ve ServiceInstanceID lerini nereden bulacam da bu metodlara gönderip sonuçları alacam diyebilirsiniz. Demelisiniz de
Onu da düşündüm, onu da anlatıcam size
ServiceName leri bulabilmek için aşağıdaki SQL i çalıştırıyoruz,
SELECT DISTINCT sf.[Service/Name] AS [Service Name]
FROM [dtav_ServiceFacts] sf
WHERE sf.[Service/Name] IS NOT NULL;
ServiceInstanceID leri bulabilmek için de aşağıdaki SQL e, ServiceName gönderiyoruz
SELECT sf.[Service/Name] AS [Service Name], sf.[ServiceInstance/InstanceId] AS [Service Instance Id]
FROM [dtav_ServiceFacts] sf
WHERE sf.[Service/Name] = '" + serviceName + "'
ORDER BY sf.[ServiceInstance/StartTime] DESC
Daha da detaylı bilgi gerekirse dtav_ServiceFacts tablosundaki verileri inceleyebilirsiniz.
Son 10 mesajın Bilgilerini getiren SQL;
SELECT TOP 10
sf.[ServiceInstance/InstanceId] AS [Service Instance Id],
sf.[Service/Name] AS [Service Name], sf.[ServiceInstance/State] AS [State] ,
dateadd(minute, 180, sf.[ServiceInstance/StartTime]) AS [Start Time],
dateadd(minute, 180, sf.[ServiceInstance/EndTime]) AS [End Time],
sf.[ServiceInstance/Duration] AS [Duration],
sf.[ServiceInstance/ExitCode] AS [Error Code],
FROM [dtav_ServiceFacts] sf
WHERE sf.[Service/Name] IS NOT NULL
AND sf.[Service/Type]='Orchestration'
ORDER BY [Start Time] DESC
Tags: BizTalk, Biztalk 2009, BizTalk Administration, Biztalk Administration Console, BTMsgInstance, BTS, BTS 2009, DTADB, Service Messages, ServiceInstanceID, ServiceName, Tracked Message, web service
Posted in .NeT 2008, Bilgisayar, BizTalk | 2 Comments »
Şubat 25th, 2010
Bildiğiniz gibi tif dosyaları normal resim gibi gösterilememektedir. Biraz araştırma yaptıktan sonra çoğu sitede böyle bir imkanın olmadığını, sadece operanın böyle bir özelliğe sahip olduğunu ve tif dosyalarını gösterebildiğini gördüm;
Yanlış
Yapmanız gerekenler ;
- Aşağıdaki linkten, tifleri görüntüleyebilmek için alternatiff adlı plugini indiriyoruz,
link : http://www.alternatiff.com/distribution
- Sıkıştırılmış dosyanın içindeki install.bat dosyasını çalıştırarak ocx dosyasını register ediyoruz,

- Daha sonra ise, aşağıdaki kodu kullanarak sayfada gösterimi sağlayabilirsiniz
<object width=200 height=200
classid="CLSID:106E49CF-797A-11D2-81A2-00E02C015623">
<param name="src" value="tiffdocument.tif">
<param name="negative" value="yes">
</object>
Tags: How To, tif, tiff, tiff in html, tiff view
Posted in .NeT 2008, Yazılım | No Comments »
Şubat 20th, 2010
çook basit ama arayıpda bulunamayan programlardandır bu 
ben de MP3 lerin ID3 taglerini değiştiren basit ama düzgün çalışan bir uygulama aradım, fakat bulamadım. Ulen ben yazarım dedim sonra,
ahada yazdım, isteyen olursa kullanabilir, Kullandıkça beni hatırlarsınız…
Ekran Görüntüsü :

Download :
ID3Changer
Kullanımı :
- Programı Çalıştırıyoruz;
- Load MP3 butonuna tıklıyoruz;

- Değişiklik yapmak istediğimiz dosya veya dosyaları seçip Open butonuna tıklıyoruz;

- Sol taraftaki listeden istediğimiz şarkıyı seçiyoruz;

- Sağ taraftan ise ID3 bilgilerini güncelleyip Save butonuna tıklıyoruz.
Tags: Changer, ID3, ID3 Changer, Klavuz, Kullanım, MP3, MP3 ID3 Changer
Posted in .NeT 2008, Yazılım | 2 Comments »
Ağustos 27th, 2009
Hep unutuyorum not alayım belki sizin de işinize yarar
string a = (textBox1.Text.Equals("ssss")) ? "Eşit" : "Yanlış";
Tags: c#, IF
Posted in .NeT 2008 | 2 Comments »
Temmuz 12th, 2009
private DataTable SrtDataTable(DataTable dt, string sort)
{
DataTable newDT = dt.Clone();
int rowCount = dt.Rows.Count;
DataRow[] foundRows = dt.Select(null, sort);
for (int i = 0 ; i < rowCount; i++)
{
object[] arr = new object[dt.Columns.Count];
for (int j = 0; j < dt.Columns.Count; j++)
{
arr[j]=foundRows[i][j];
}
DataRow data_row = newDT.NewRow();
data_row.ItemArray=arr;
newDT.Rows.Add(data_row);
}
dt.Rows.Clear();
for(int i = 0; i < newDT.Rows.Count; i++)
{
object[] arr = new object[dt.Columns.Count];
for (int j = 0; j < dt.Columns.Count; j++)
{
arr[j]=newDT.Rows[i][j];
}
DataRow data_row = dt.NewRow();
data_row.ItemArray = arr;
dt.Rows.Add(data_row);
}
return dt;
}
Yeah, this is not my code
I found it, here
Tags: Datatable, Sort
Posted in .NeT 2008 | No Comments »
Mart 2nd, 2009
Merhabalar!
—————————————————————————————-
Dikkat!!!!
Eğer İnternet çıkışınız sabit (static) ip ise, mümkün olduğu kadar bu kodu çok kullanmamaya çalışın. Google aynı ipden çok fazla sorgu tespit ederse, kendisine zarar verilmeye çalışıldığını zannedip, ipnizi engelleyebilir.
—————————————————————————————-
Google Translate‘in nimetlerinden faydalanmak ister misiniz?? Elbette istersiniz, hazırladığınız bir uygulamada, kendi sitenizde, internete çıkışı olan herhangi bir sistemde bundan seve seve faydalanabilirsiniz. Google Translate sayesinde babylon gibi paralı çeviri hizmetlerinin benzerlerini, çok kolay bir şekilde kendiniz hazırlayabilirsiniz.
Benim sayfa tasarımım aşağıdaki gibi oldu.



Şu anda mevcut bulunan diller ve kodları aşağıdadır: (Bunlar Kaynak dil ve Hedef dil tespitinde kullanılıyor. Google’ a resource gönderirken çevrilecek olan kelime veya cümle ve tr|en gibisinden bir ifade gönderiliyor. Bu Türkçeden İngilizceye anlamına gelmekte…)
- Almanca – de
- Arapça – ar
- Bulgarca – bg
- Çekoslavakça – cs
- Çince (Basit) – zh-CN
- Çince (Karmaşık) – zh-TW
- Danca – da
- Fince – fi
- Fransızca – fr
- Hırvatça – hr
- Hintçe – hi
- Hollandaca – nl
- İngilizce – en
- İspanyolca – es
- İsveççe – sv
- İtalyanca – it
- Japonce – ja
- Korece – ko
- Norveççe – no
- Polonca – pl
- Portekizce – pt
- Romanca – ro
- Rusça – ru
- Türkçe – tr
- Yunanca – el
Kodun tasarımı aşağıdaki gibi, bunu kendinize göre düzenleyebilirsiniz.
Tanımlamalar :
protected Label label;
protected TextBox textBox;
protected DropDownList LangFrom;
protected DropDownList LangTo;
protected Button buton;
Butonun Tıklanma Eventı :
void buton_Click(object sender, EventArgs e)
{
try
{
string fromto = LangFrom.SelectedValue + "|" + LangTo.SelectedValue;
string sonuc = TranslateText(textBox.Text, fromto);
label.Text = sonuc;
}
catch (Exception ex)
{
label.Text = ex.Message;
}
}
Translate Metodu :
public string TranslateText(string input, string languagePair)
{
try
{
string url = string.Format("http://www.google.com/translate_t?hl=en&if=UTF8&text={0}&langpair={1}", input, languagePair);
WebClient webClient = new WebClient();
webClient.Encoding = System.Text.Encoding.UTF8;
string result = webClient.DownloadString(url);
int dan = result.IndexOf("id=result_box") + 22;
int da = result.IndexOf("id=result_box") + 500;
result = result.Substring(dan, da - dan);
result = result.Substring(2, result.IndexOf("</div") - 2);
return result;
}
catch (Exception ex)
{
return ex.Message;
}
Dilleri Ekle Metodları :
private void DilleriEkle()
{
DilEkle("Almanca", "de");
DilEkle("Arapça", "ar");
DilEkle("Bulgarca", "bg");
DilEkle("Çekoslavakça", "cs");
DilEkle("Çince (Basit)", "zh-CN");
DilEkle("Çince (Karmaşık)", "zh-TW");
DilEkle("Danca", "da");
DilEkle("Fince", "fi");
DilEkle("Fransızca", "fr");
DilEkle("Hırvatça", "hr");
DilEkle("Hintçe", "hi");
DilEkle("Hollandaca", "nl");
DilEkle("İngilizce", "en");
DilEkle("İspanyolca", "es");
DilEkle("İsveççe", "sv");
DilEkle("İtalyanca", "it");
DilEkle("Japonca", "ja");
DilEkle("Korece", "ko");
DilEkle("Norveççe", "no");
DilEkle("Polonca", "pl");
DilEkle("Portekizce", "pt");
DilEkle("Romanca", "ro");
DilEkle("Rusça", "ru");
DilEkle("Türkçe", "tr");
DilEkle("Yunanca", "el");
}
private void DilEkle(string p, string p_2)
{
LangFrom.Items.Add(p);
LangFrom.Items[LangFrom.Items.Count - 1].Value = p_2;
LangTo.Items.Add(p);
LangTo.Items[LangTo.Items.Count - 1].Value = p_2;
}
Tags: Dil Çevrimi, Google Translate, Sharepoint, vs.net
Posted in .NeT 2008, Sharepoint | 6 Comments »
Ocak 14th, 2009
Call the metod from OnClick Down Button event;
Code ;
public void MoveDown()
{
int startindex = ListBox2.Items.Count - 1;
for (int i = startindex; i > -1; i--)
{
if (ListBox2.Items[i].Selected)
{
if (i < startindex && !ListBox2.Items[i + 1].Selected)
{
ListItem bottom = ListBox2.Items[i];
ListBox2.Items.Remove(bottom);
ListBox2.Items.Insert(i + 1, bottom);
ListBox2.Items[i + 1].Selected = true;
}
}
}
}
Tags: .NeT, ListBox, vs.net
Posted in .NeT 2008 | No Comments »
Ocak 14th, 2009
Call the metod from OnClick Up Button event;
Code ;
public void MoveUp()
{
for (int i = 0; i < ListBox2.Items.Count; i++)
{
if (ListBox2.Items[i].Selected)
{
if (i > 0 && !ListBox2.Items[i - 1].Selected)
{
ListItem bottom = ListBox2.Items[i];
ListBox2.Items.Remove(bottom);
ListBox2.Items.Insert(i - 1, bottom);
ListBox2.Items[i].Value = bottom.Value;
ListBox2.Items[i - 1].Selected = true;
}
}
}
}
Tags: .NeT, ListBox, vs.net
Posted in .NeT 2008 | No Comments »
Ocak 14th, 2009
KOD:
MailMessage mail = new MailMessage();
public void MailSend(string body, string subject, string strTO)
{
mail = new MailMessage();
mail.To.Add(strTO);
mail.Subject = subject;
mail.From = new MailAddress("from@from.com");
mail.Body = body;
SmtpClient smtp = new SmtpClient("smtp.server.address");
smtp.UseDefaultCredentials = true;
try
{
smtp.Send(mail);
}
catch (Exception ex)
{
//Error
}
}
Tags: .NeT, Mail, vs.net
Posted in .NeT 2008 | No Comments »