Aklımda Kalası Kelimeler

* давайте работать вместе
* Zarf ve Mazruf, Zerafet(xHoyratlık) ile aynı kökten(za-ra-fe) gelir
* Bedesten
* Suç subuta ermiştir - Suç sabit olmuştur

31 Ocak 2010 Pazar

Arapça Tanışma

Esselamu aleykum
Aleykum selam

- Mesmuk?
- ismi cem
- ve ent(e/i) mesmuk?
- Teşerraftu ve ismi canan
- Teşerraftu
- Ehlen (Hoşgeldin)
- Ehlen ve sehlen (Hoşbulduk)

Mesaen nur = Mesael hayr (İyi akşamlar)

30 Ocak 2010 Cumartesi

TEKEL ve AK PARTİ !!!!

Referans: haber.gazetevatan.com
Necati Doğru
Yazara ulaşmak için : ndogru@gazetevatan.com


Dedi ki!

Geçen yazıyı yazdığımda ben ülkenin dört bir yanından çıkıp gelmiş arkadaşlarıyla birlikte “kendini ifade etme protestosu yaptığı” çadıra gitmiş, onu dinlemiştim. Bu sefer o beni telefonla aradı. Sesinde “işinin ve ekmeğinin hakkını” savunmanın yüksek soyluluğu, kararlı diklenişi, yıkılmaz asaleti vardı.

Dedi ki yaz:

Başbakan “Devletin kasasını TEKEL işçisine soydurmayız” diyor ya aslında “Devletin kasasını TEKEL işçisine soydurmayız, biz soyarız” demek istiyor.

Sana belge sıralıyorum.

Dedi ki yaz:

Belge 1:

TEKEL’in alkol fabrikalarının sahibi Alkollü İçkiler Sanayi ve Ticaret A.Ş.’nin bilançosunda borç olarak görünen 300 milyon lira, devirden bir hafta önce silindi. Bu borç TEKEL Genel Müdürlüğü hesabına aktarıldı. Yani borç devlette kaldı, fabrikalar borçsuz satıldı. 300 milyon lira, o dönemin kurlarına göre yaklaşık 250 milyon dolar eder. Yüksek Denetleme Kurulu Başdenetçisi Şenol Sarrafi, 300 milyon liralık borcu satıştan bir hafta önce silip, alıcıya değil devletin sırtına yüklemenin hukuka aykırı olduğunu 2004 yılı raporlarında yazdı. Meclis KİT Komisyonu’na taşıdı. 35 milletvekilinin, Başbakan’ın ve Maliye Bakanı’nın haberi oldu ama soygun önlenemedi.

***


Dedi ki yaz:

Belge 2:

TEKEL’in rakı ve şarap fabrikaları 2004 yılında 292 milyon dolara özel bir yerli şirkete satıldı. Fabrikaları 292 milyon dolara alanlar, bunları 2006 yılında 950 milyon dolara bir Amerikan şirketine sattılar. TEKEL’in fabrikalarının “daha satılırken soydurulduğunu” bütün gazeteler yazdı, milletvekillerinin, Başbakan’ın ve Maliye Bakanı’nın haberi vardı ama soygun yapılmış oldu.

***


Dedi ki yaz:

Belge 3:

TEKEL’in 5 sigara fabrikası, kentin merkezinde (Adana-Malatya-Tokat-Bitlis-Samsun) kalmış geniş, değerli arsalarıyla 1 milyar 720 milyon dolara yabancı şirkete satıldı. Bu fabrikalardan sadece Samsun Ballıca’nın yıllık faaliyet kârı 600 milyon TL idi. Sadece Samsun Ballıca fabrikasının 4 yıllık kârı karşılığı, 5 fabrika arsalarıyla yabancıya verilmiş oldu. Bu bilgiler Yüksek Denetleme Kurulu raporlarında yer aldı ve Meclis KİT Komisyonu’na getirilerek Başbakan, Maliye Bakanı, 35 milletvekili haberdar edildi ama sonuç değişmedi.

***


Dedi ki yaz:

Belge 4:

Sigara fabrikaları satılırken; toplumun bilgisinden kaçırılarak alıcıya kınalı kıyak yapıldı. İşlenmiş A grad ve B grad tütünlerden 25 bin ton (25 milyon kilo) tütün hediye edildi. Bu tütünün kilosu ortalama 5 dolar olduğuna göre, fabrikaların yeni alıcısına devletin deposundan 125 milyon dolar soydurulmuş oldu. Bunun hukuka uygun olmadığı Denetleme Kurulu raporlarında yer aldı, Meclis’te 35 milletvekili ile Başbakan ve Maliye Bakanı’na bildirildi.

***


Dedi ki yaz:

Belge 5:

Dünyanın en iyi tütünü işlenmiş A grad Türk tütünüdür. TEKEL, bu tütünleri Türk tütün üreticisinden kilosu ortalama 2.5 dolar ile 3 dolar arasında bir fiyata alır, kilo başına 50 cent işleme masrafı yapar ve elini öpene 7 dolara satardı. TEKEL özelleştirilme aşamasına girince bu tütünleri yine üreticiden 3 dolara almaya devam etti fakat kendisi 18-20 milyon dolar harcayarak teknolojilerini yenilediği kendi Yaprak Tütün Fabrikaları’nda işlemek yerine sayısı 25-30 olan tüccara kilosu 1 dolara satmaya başladı. Yani şu anda bile kilosunu 3 dolara üreticiden aldığı tütünü 1 dolara tüccara veriyor, tüccar TEKEL’den 1 dolara aldığı tütünü 50 cent işleme masrafı yaparak 7 dolara yabancıya elini öptürerek satıyor. Bu bilgiler de Yüksek Denetleme Kurulu raporlarında yer aldığı için 35 milletvekili ile Başbakan ve Maliye Bakanı tarafından biliniyor.

Dedi ki belgelere bak.

Ve halk uyansın diye otur yaz: Belgeler, “Devletin kasasını Tekel işçisine soydurmuyorlar fakat kendileri soyuyorlar” diye bağırıyor.

17 Ocak 2010 Pazar

Application_BeginRequest ile loglama




// Global.asax içinde
protected void Application_BeginRequest(object sender, EventArgs e)
{
Uri uri = HttpContext.Current.Request.Url;
StreamWriter sw = File.AppendText(Server.MapPath("~/test.txt"));
sw.WriteLine(uri.PathAndQuery + "\t\t" + DateTime.Now.ToString("HH:mm:ss.fffffff"));
sw.Flush();
sw.Close();
}



<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="HttpHandlerKullananWeb._Default" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<h1>Tekrar yükle</h1>

<script type="text/javascript">

setTimeout(function() {
var ss = "default.aspx?id=" + Math.random();
document.write(ss)
window.location = ss;
}, 1000);

</script>

</div>
</form>
</body>
</html>


/Default.aspx18:11:38.1581721
/default.aspx?id=0.981415984579683718:11:39.4771721
/default.aspx?id=0.069058977730859418:11:40.5121721
/default.aspx?id=0.292619688396253118:11:41.5431721
/default.aspx?id=0.2771434686967443318:11:42.5711721
/default.aspx?id=0.2399070493119078718:11:43.6031721
/default.aspx?id=0.515263955577543418:11:44.6311721
/default.aspx?id=0.966319288964455418:11:45.6601721
/default.aspx?id=0.0523383615308979418:11:46.6891721
/default.aspx?id=0.99070154676295818:11:47.7231721
/default.aspx?id=0.850952136399098818:11:48.7491721
/default.aspx?id=0.888948235623865918:11:49.7801721
/default.aspx?id=0.810726927811147118:11:50.8091721
/default.aspx?id=0.955277945826294818:11:51.8381721
/default.aspx?id=0.884317455302272118:11:52.8671721
/default.aspx?id=0.261800651271007918:11:53.8971721
/default.aspx?id=0.2361858997090218218:11:54.9261721
/default.aspx?id=0.0636965551525190418:11:55.9551721
/default.aspx?id=0.550006071355276818:11:56.9871721
/default.aspx?id=0.1465605177084249318:11:58.0161721
/default.aspx?id=0.801216411263875518:11:59.0451721
/default.aspx?id=0.1391057298117566218:12:00.0731721
/default.aspx?id=0.80565989399424918:12:01.1041721
/default.aspx?id=0.941316114752180218:12:02.1331721
/default.aspx?id=0.03283465597320278618:12:03.1621721
/default.aspx?id=0.68376576402704218:12:04.1931721
/default.aspx?id=0.07307012362005218:12:05.2221721
/default.aspx?id=0.2422870348938556718:12:06.2671721

ASp.Net Resimleri

Request



Request.Url




Request.UserLanguages



Request.Params.AllKeys - Request.ServerVariables



Request.Filter - Request.Headers



File Upload




protected void btnYukle_Click(object sender, EventArgs e)
{
// Check to see if file was uploaded
if (flYuklenen.PostedFile != null)
{
// Get a reference to PostedFile object
HttpPostedFile yuklenenDosya = flYuklenen.PostedFile;

// Get size of uploaded file
int iDosyaUzunlugu = yuklenenDosya.ContentLength;

// make sure the size of the file is > 0
if (iDosyaUzunlugu > 0)
{
// Allocate a buffer for reading of the file
byte[] dosyaVerisi = new byte[iDosyaUzunlugu];

// Read uploaded file from the Stream
yuklenenDosya.InputStream.Read(dosyaVerisi, 0, iDosyaUzunlugu);

// Create a name for the file to store
string strSadeceDosyaAdi = Path.GetFileName(yuklenenDosya.FileName);
string sKaydedilecekYer = Server.MapPath("MediaYuklenen") + "/";
string sKaydedilecekDosyaAdi = strSadeceDosyaAdi +DateTime.Now.ToString("-ddMMyyyyhhMMss");

// Save file to disk
yuklenenDosya.SaveAs(sKaydedilecekYer+sKaydedilecekDosyaAdi);
}
}
}



HTTP Request




AbsolutePath"/Default.aspx"string
AbsoluteUri"http://localhost:50416/Default.aspx"string
Authority"localhost:50416"string
DnsSafeHost"localhost"string
Fragment""string
Host"localhost"string
HostNameTypeDnsSystem.UriHostNameType
IsAbsoluteUritruebool
IsDefaultPortfalsebool
IsFilefalsebool
IsLoopbacktruebool
IsUncfalsebool
LocalPath"/Default.aspx"string
OriginalString"http://localhost:50416/Default.aspx"string
PathAndQuery"/Default.aspx"string
Port50416int
Query""string
Scheme"http"string
-Segments{string[2]}string[]
[0]"/"string
[1]"Default.aspx"string
UserEscapedfalsebool
UserInfo""string
+Static membersSystem.UriSystem.Uri
+Non-Public members{http://localhost:50416/Default.aspx}System.Uri



REQUEST





+ AcceptTypes {string[1]} string[]
AnonymousID null string
ApplicationPath "/" string
AppRelativeCurrentExecutionFilePath "~/Ilanlar.aspx" string
+ Browser {System.Web.Mobile.MobileCapabilities} System.Web.HttpBrowserCapabilities {System.Web.Mobile.MobileCapabilities}
+ ClientCertificate {System.Web.HttpClientCertificate} System.Web.HttpClientCertificate
+ ContentEncoding {System.Text.UTF8Encoding} System.Text.Encoding {System.Text.UTF8Encoding}
ContentLength 0 int
ContentType "" string
+ Cookies {System.Web.HttpCookieCollection} System.Web.HttpCookieCollection
CurrentExecutionFilePath "/Ilanlar.aspx" string
FilePath "/Ilanlar.aspx" string
+ Files {System.Web.HttpFileCollection} System.Web.HttpFileCollection
+ Filter {System.Web.HttpInputStreamFilterSource} System.IO.Stream {System.Web.HttpInputStreamFilterSource}
+ Form {} System.Collections.Specialized.NameValueCollection {System.Web.HttpValueCollection}
+ Headers {Connection=Keep-Alive&Accept=*%2f*&Accept-Encoding=gzip%2c+deflate&Accept-Language=tr&Host=localhost%3a53237&User-Agent=Mozilla%2f4.0+(compatible%3b+MSIE+8.0%3b+Windows+NT+5.1%3b+Trident%2f4.0%3b+.NET+CLR+1.1.4322%3b+.NET+CLR+2.0.50727%3b+.NET+CLR+3.0.4506.2152%3b+.NET+CLR+3.5.30729)} System.Collections.Specialized.NameValueCollection {System.Web.HttpHeaderCollection}
HttpMethod "GET" string
+ InputStream {System.Web.HttpInputStream} System.IO.Stream {System.Web.HttpInputStream}
IsAuthenticated true bool
IsLocal true bool
IsSecureConnection false bool
+ LogonUserIdentity {System.Security.Principal.WindowsIdentity} System.Security.Principal.WindowsIdentity
+ Params {ALL_HTTP=HTTP_CONNECTION%3aKeep-Alive%0d%0aHTTP_ACCEPT%3a*%2f*%0d%0aHTTP_ACCEPT_ENCODING%3agzip%2c+deflate%0d%0aHTTP_ACCEPT_LANGUAGE%3atr%0d%0aHTTP_HOST%3alocalhost%3a53237%0d%0aHTTP_USER_AGENT%3aMozilla%2f4.0+(compatible%3b+MSIE+8.0%3b+Windows+NT+5.1%3b+Trident%2f4.0%3b+.NET+CLR+1.1.4322%3b+.NET+CLR+2.0.50727%3b+.NET+CLR+3.0.4506.2152%3b+.NET+CLR+3.5.30729)%0d%0a&ALL_RAW=Connection%3a+Keep-Alive%0d%0aAccept%3a+*%2f*%0d%0aAccept-Encoding%3a+gzip%2c+deflate%0d%0aAccept-Language%3a+tr%0d%0aHost%3a+localhost%3a53237%0d%0aUser-Agent%3a+Mozilla%2f4.0+(compatible%3b+MSIE+8.0%3b+Windows+NT+5.1%3b+Trident%2f4.0%3b+.NET+CLR+1.1.4322%3b+.NET+CLR+2.0.50727%3b+.NET+CLR+3.0.4506.2152%3b+.NET+CLR+3.5.30729)%0d%0a&APPL_MD_PATH=&APPL_PHYSICAL_PATH=C%3a%5cProjeler%5cYabanTV%5cSourceCode%5cTest%5cwaDataGrid%5c&AUTH_TYPE=NTLM&AUTH_USER=VS08SQL05%5cAdministrator&AUTH_PASSWORD=&LOGON_USER=VS08SQL05%5cAdministrator&REMOTE_USER=VS08SQL05%5cAdministrator&CERT_COOKIE=&CERT_FLAGS=&CERT_ISSUER=&CERT_KEYSIZE=&CERT_SECRETKEYSIZE=&CERT_SERIALNUMBER=&CERT_SERVER_ISSUER=&CERT_SERVER_SUBJECT=&CERT_SUBJECT=&CONTENT_LENGTH=0&CONTENT_TYPE=&GATEWAY_INTERFACE=&HTTPS=&HTTPS_KEYSIZE=&HTTPS_SECRETKEYSIZE=&HTTPS_SERVER_ISSUER=&HTTPS_SERVER_SUBJECT=&INSTANCE_ID=&INSTANCE_META_PATH=&LOCAL_ADDR=127.0.0.1&PATH_INFO=%2fIlanlar.aspx&PATH_TRANSLATED=C%3a%5cProjeler%5cYabanTV%5cSourceCode%5cTest%5cwaDataGrid%5cIlanlar.aspx&QUERY_STRING=&REMOTE_ADDR=127.0.0.1&REMOTE_HOST=127.0.0.1&REMOTE_PORT=&REQUEST_METHOD=GET&SCRIPT_NAME=%2fIlanlar.aspx&SERVER_NAME=localhost&SERVER_PORT=53237&SERVER_PORT_SECURE=0&SERVER_PROTOCOL=HTTP%2f1.1&SERVER_SOFTWARE=&URL=%2fIlanlar.aspx&HTTP_CONNECTION=Keep-Alive&HTTP_ACCEPT=*%2f*&HTTP_ACCEPT_ENCODING=gzip%2c+deflate&HTTP_ACCEPT_LANGUAGE=tr&HTTP_HOST=localhost%3a53237&HTTP_USER_AGENT=Mozilla%2f4.0+(compatible%3b+MSIE+8.0%3b+Windows+NT+5.1%3b+Trident%2f4.0%3b+.NET+CLR+1.1.4322%3b+.NET+CLR+2.0.50727%3b+.NET+CLR+3.0.4506.2152%3b+.NET+CLR+3.5.30729)} System.Collections.Specialized.NameValueCollection {System.Web.HttpValueCollection}
Path "/Ilanlar.aspx" string
PathInfo "" string
PhysicalApplicationPath "C:\\Projeler\\YabanTV\\SourceCode\\Test\\waDataGrid\\" string
PhysicalPath "C:\\Projeler\\YabanTV\\SourceCode\\Test\\waDataGrid\\Ilanlar.aspx" string
+ QueryString {} System.Collections.Specialized.NameValueCollection {System.Web.HttpValueCollection}
RawUrl "/Ilanlar.aspx" string
RequestType "GET" string
+ ServerVariables {ALL_HTTP=HTTP_CONNECTION%3aKeep-Alive%0d%0aHTTP_ACCEPT%3a*%2f*%0d%0aHTTP_ACCEPT_ENCODING%3agzip%2c+deflate%0d%0aHTTP_ACCEPT_LANGUAGE%3atr%0d%0aHTTP_HOST%3alocalhost%3a53237%0d%0aHTTP_USER_AGENT%3aMozilla%2f4.0+(compatible%3b+MSIE+8.0%3b+Windows+NT+5.1%3b+Trident%2f4.0%3b+.NET+CLR+1.1.4322%3b+.NET+CLR+2.0.50727%3b+.NET+CLR+3.0.4506.2152%3b+.NET+CLR+3.5.30729)%0d%0a&ALL_RAW=Connection%3a+Keep-Alive%0d%0aAccept%3a+*%2f*%0d%0aAccept-Encoding%3a+gzip%2c+deflate%0d%0aAccept-Language%3a+tr%0d%0aHost%3a+localhost%3a53237%0d%0aUser-Agent%3a+Mozilla%2f4.0+(compatible%3b+MSIE+8.0%3b+Windows+NT+5.1%3b+Trident%2f4.0%3b+.NET+CLR+1.1.4322%3b+.NET+CLR+2.0.50727%3b+.NET+CLR+3.0.4506.2152%3b+.NET+CLR+3.5.30729)%0d%0a&APPL_MD_PATH=&APPL_PHYSICAL_PATH=C%3a%5cProjeler%5cYabanTV%5cSourceCode%5cTest%5cwaDataGrid%5c&AUTH_TYPE=NTLM&AUTH_USER=VS08SQL05%5cAdministrator&AUTH_PASSWORD=&LOGON_USER=VS08SQL05%5cAdministrator&REMOTE_USER=VS08SQL05%5cAdministrator&CERT_COOKIE=&CERT_FLAGS=&CERT_ISSUER=&CERT_KEYSIZE=&CERT_SECRETKEYSIZE=&CERT_SERIALNUMBER=&CERT_SERVER_ISSUER=&CERT_SERVER_SUBJECT=&CERT_SUBJECT=&CONTENT_LENGTH=0&CONTENT_TYPE=&GATEWAY_INTERFACE=&HTTPS=&HTTPS_KEYSIZE=&HTTPS_SECRETKEYSIZE=&HTTPS_SERVER_ISSUER=&HTTPS_SERVER_SUBJECT=&INSTANCE_ID=&INSTANCE_META_PATH=&LOCAL_ADDR=127.0.0.1&PATH_INFO=%2fIlanlar.aspx&PATH_TRANSLATED=C%3a%5cProjeler%5cYabanTV%5cSourceCode%5cTest%5cwaDataGrid%5cIlanlar.aspx&QUERY_STRING=&REMOTE_ADDR=127.0.0.1&REMOTE_HOST=127.0.0.1&REMOTE_PORT=&REQUEST_METHOD=GET&SCRIPT_NAME=%2fIlanlar.aspx&SERVER_NAME=localhost&SERVER_PORT=53237&SERVER_PORT_SECURE=0&SERVER_PROTOCOL=HTTP%2f1.1&SERVER_SOFTWARE=&URL=%2fIlanlar.aspx&HTTP_CONNECTION=Keep-Alive&HTTP_ACCEPT=*%2f*&HTTP_ACCEPT_ENCODING=gzip%2c+deflate&HTTP_ACCEPT_LANGUAGE=tr&HTTP_HOST=localhost%3a53237&HTTP_USER_AGENT=Mozilla%2f4.0+(compatible%3b+MSIE+8.0%3b+Windows+NT+5.1%3b+Trident%2f4.0%3b+.NET+CLR+1.1.4322%3b+.NET+CLR+2.0.50727%3b+.NET+CLR+3.0.4506.2152%3b+.NET+CLR+3.5.30729)} System.Collections.Specialized.NameValueCollection {System.Web.HttpServerVarsCollection}
TotalBytes 0 int
+ Url {http://localhost:53237/Ilanlar.aspx} System.Uri
+ UrlReferrer null System.Uri
UserAgent "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)" string
UserHostAddress "127.0.0.1" string
UserHostName "127.0.0.1" string
+ UserLanguages {string[1]} string[]
+ Static members
+ Non-Public members

ASP.NET HttpHandler, HttpModule Özetim

Referans: Burak Selim Şenyurt



Sayfanın yaşam döngüsü:
PreInit -> Init -> Load -> Change/ Click -> PreRender -> UnLoad -> Dispose




using System;
using System.Web;

namespace MyHttpHandlers
{
/*
IHttpHandler arayüzü, HandlerOrnek isimli sınıfımız içerisine iki üye dahil eder.
Bunlardan ProcessRequest isimli metod, gelen talepleri değerlendirebileceğimiz üyedir.
Yani talebe göre Html içeriğini oluşturabileceğimiz bir başka deyişle http isteğini
kendi istediğimiz şekilde ele alabileceğimiz yerdir.
Dikkat ederseniz bu metod parametre olarak HttpContext tipinden bir değişken almaktadır.
Bu değişken sayesinde, Response, Request ve Server nesnelerine erişebiliriz.
Bu da gelen talepler HttpHandler içerisinde değerlendirebileceğimiz anlamına gelir.

IsReusable özelliği ise sadece okunabilir bir özelliktir
ve ilgili HttpHandler nesne örneğine ait referansın başka talepler
içinde kullanılıp kullanılmayacağını belirler.
*/
public class HandlerOrnek : IHttpHandler
{
#region IHttpHandler Members

public bool IsReusable
{
get { return true; }
}

public void ProcessRequest(HttpContext context)
{
string isim = context.Request["Ad"];
context.Response.Write(" Adım : " + isim + "
");
}

#endregion
}



//------------------------- HTTPMODULE ÖRNEĞİ ------------------//



/*
IHttpHandler, uygulandığı tipe iki metod dahil eder. Init ve Dispose.
Init metodu HttpApplication tipinden bir parametre almaktadır ki
bu parametre sayesinde var olan HttpModule olaylarına müdahale etme,
aktif Http içeriğine ulaşma gibi imkanlara sahip olabiliriz.

Dispose metodunu ise, bu sınıfa ait nesne örneği yok edilmeden önce
yapmak istediğimiz kaynak temizleme işlemleri için kullanabiliriz.
Örneğin Module içerisinden kullanılan unmanaged(managed) kaynakların
serbest bırakılması için ele alabiliriz.
*/
class ModuleOrnek : IHttpModule
{
#region IHttpModule Members

public void Init(HttpApplication context)
{
// Save the application
mApplication = context;

context.PreSendRequestContent += new EventHandler(context_PreSendRequestContent);

// http://www.informit.com/articles/article.aspx?p=25339&seqNum=3
// Wire up beginrequest
context.BeginRequest += new System.EventHandler(BeginRequest);

// Wire up endrequest
context.EndRequest += new System.EventHandler(EndRequest);
}

public void Dispose()
{
throw new NotImplementedException();
}

#endregion

#region Bizim eklediklerimiz


private HttpApplication mApplication;


/*
Bakın burada uygulama için PreSendRequestContent isimli bir olay yüklenmiştir.
Bu olay, HttpHandler tarafından üretilen HTML içeriği gönderilmeden önce çalışır.
Böylece bu modülü kullanan bir uygulama içerisindeki herhangi bir sayfa talebinde
gönderilen Http içeriğine "Bu sayfa Z şirketi tarafından üretilmiştir..." cümlesi
bir yorum takısı (comment tag) olarak eklenecektir.
Yazdığımız HttpModullerin ilgili web uygulaması içerisinde geçerli olmasını sağlamak için
yine web.config dosyasında düzenleme yapmamız gerekmektedir.
Bu amaçla, web.config dosyasına aşağıdaki gibi httpModules sekmesini dahil etmemiz
ve yeni HttpModule' ümüzü bildirmemiz yeterli olacaktır.
*/
void context_PreSendRequestContent(object sender, EventArgs e)
{
mApplication.Response.Output.Write("Bu sayfa Z şirketi tarafından üretilmiştir");
}

public void BeginRequest(object sender, EventArgs e)
{
mApplication.Response.Write(
"");
}

public void EndRequest(object sender, EventArgs e)
{
mApplication.Response.Write(
"");
}


#endregion
}
/*
Olay (Event) İşlevi
--------------------- ----------------------------------
BeginRequest Bir talep geldiğinde tetiklenir.
EndRequest Cevap istemciye gönderilmeden hemen önce tetiklenir.
PreSendRequestHeaders İstemciye HTTP Header gönderilmeden hemen önce tetiklenir.
PreSendRequestContent İstemciye içerik gönderilmeden hemen önce tetiklenir.
AcquireRequestState Session gibi durum nesneleri (state objects) elde edilmeye hazır hale geldiğinde tetiklenir.
AuthenticateRequest Kullanıcı doğrulanmaya hazır hale geldiğinde tetiklenir.
AuthorizeRequest Kullanıcının yetkileri kontrol edilmeye hazır hale geldiğinde tetiklenir.
*/
}


16 Ocak 2010 Cumartesi

Firefox Addonları

Paket halinde:
https://addons.mozilla.org/en-US/firefox/collection/webdeveloperpack
https://addons.mozilla.org/en-US/firefox/collection/power
https://addons.mozilla.org/en-US/firefox/collection/a

Tek Tek:
Reload Every
https://addons.mozilla.org/en-US/firefox/addon/115?collection_uuid=7c750586-537a-feed-6d9c-bc94b522e483

MeasureIt
https://addons.mozilla.org/en-US/firefox/addon/539?collection_uuid=7c750586-537a-feed-6d9c-bc94b522e483

JavaScript Debugger
https://addons.mozilla.org/en-US/firefox/addon/216?collection_uuid=7c750586-537a-feed-6d9c-bc94b522e483

DOM Inspector
https://addons.mozilla.org/en-US/firefox/addon/6622?src=reco

Web Developer
https://addons.mozilla.org/en-US/firefox/addon/60

View Source Chart
https://addons.mozilla.org/en-US/firefox/addon/655

Dust-Me Selectors
https://addons.mozilla.org/en-US/firefox/addons/policy/0/5392/57379?src=reco

View Dependencies
https://addons.mozilla.org/en-US/firefox/addon/2214?src=reco

HackBar
https://addons.mozilla.org/en-US/firefox/addon/3899?src=reco

ColorZilla
https://addons.mozilla.org/en-US/firefox/addon/271?src=reco

SourceEditor
https://addons.mozilla.org/en-US/firefox/addon/1760

İngiliz BAKAN İSTİYORUZ

İngiliz bakandan örnek davranış


Bir gün TBMM dekilerde anlayacaklar o koltuklara, kimlerin arasından çıkarak oturduklarını.

JQuery ve ASP.NET web servisi ile JSON veriyi parsetmek


public class HavaDurumu
{
public string Min;
public string Max;
public string Name;
public string Image;
}

[WebMethod]
public HavaDurumu f_HavaDurumuJson(string _sSehirler)
{
// TR873,TR2342 gibi bir string gelecek.
string[] _ArrSehirler = _sSehirler.Split(new[] { ',' });

string sSehirSonucu = "";
string name = "", min = "", max = "", image_code = "";

// Settings içinde havaDurumu = http://www.bugun.com.tr/files/hava.xml olmalı
XmlTextReader xmlReader = new XmlTextReader(Properties.Settings.Default.havaDurumu);
XmlDocument xmlDocument = new XmlDocument();
xmlDocument.Load(xmlReader);
XmlNode topNode = xmlDocument.DocumentElement;

foreach (string sehir in _ArrSehirler)
{
XmlNode hava = topNode.SelectSingleNode("record[code='" + sehir + "']");

name = hava.ChildNodes[1].InnerText;
min = hava.ChildNodes[4].InnerText;
max = hava.ChildNodes[5].InnerText;
image_code = hava.ChildNodes[6].InnerText;
sSehirSonucu += "{name:'" + name + "', min:" + min + ", max:" + max + ", image_code:'" + image_code + "'},";
}

return new HavaDurumu()
{
Name = name,
Image = image_code,
Min = min,
Max = max
};
}



function f_HavaDurumuJson(_sehir) {
alert("sehir sorgu: " + _sehir);
$.ajax({
type: "POST",
contentType: "application/json; charset=utf-8",
url: 'WS/wsGenel.asmx/f_HavaDurumuJson',
data: "{_sSehirler:'" + _sehir + "'}",
dataType: "json",
success: function(data) {

alert(data.d.Name);
alert(data.d.Min);
alert(data.d.Max);
alert(data.d.Image);

$.each(data.d, function(ozellik, deger) {
alert(ozellik + " - " + deger);
});
}
});
}

f_HavaDurumuJson('TR2342');





Bir sınıfın dizi tipinde dönen değerini almak



public class HavaDurumu
{
public string Min;
public string Max;
public string Name;
public string Image;
}

[WebMethod]
public HavaDurumu[] f_HavaDurumuJson(string _sSehirler)
{
// TR873,TR2342 gibi bir string gelecek.
string[] _ArrSehirler = _sSehirler.Split(new[] { ',' });
HavaDurumu[] sonuc = new HavaDurumu[_ArrSehirler.Length];

string sSehirSonucu = "";
string name = "", min = "", max = "", image_code = "";

// Settings içinde havaDurumu = http://www.bugun.com.tr/files/hava.xml olmalı
XmlTextReader xmlReader = new XmlTextReader(Properties.Settings.Default.havaDurumu);
XmlDocument xmlDocument = new XmlDocument();
xmlDocument.Load(xmlReader);
XmlNode topNode = xmlDocument.DocumentElement;

for (int i = 0; i < _ArrSehirler.Length; i++)
{
string sehir = _ArrSehirler[i];
XmlNode hava = topNode.SelectSingleNode("record[code='" + sehir + "']");

name = hava.ChildNodes[1].InnerText;
min = hava.ChildNodes[4].InnerText;
max = hava.ChildNodes[5].InnerText;
image_code = hava.ChildNodes[6].InnerText;
sSehirSonucu += "{name:'" + name + "', min:" + min + ", max:" + max + ", image_code:'" + image_code + "'},";
sonuc[i] = new HavaDurumu()
{
Name = name,
Image = image_code,
Min = min,
Max = max
};
}

return sonuc;
}



function f_HavaDurumuJson(_sehir) {
alert("sehir sorgu: " + _sehir);
$.ajax({
type: "POST",
contentType: "application/json; charset=utf-8",
url: 'WS/wsGenel.asmx/f_HavaDurumuJson',
data: "{_sSehirler:'" + _sehir + "'}",
dataType: "json",
success: function(data) {

alert("Dizinin uzunluğu: " + data.d.length);
alert("0. elemanın Name değeri: "+ data.d[0].Name);
$.each(data.d, function(i, eleman) {

alert(eleman.Name + " | " + eleman.Min + " | " + eleman.Max + " | " + eleman.Image);

$.each(eleman, function(key, value) {
alert(key + " - " + value);
});

});
}
});
}

f_HavaDurumuJson('TR2342,TR4801');


Kaynak:
http://www.eburhan.com/jquery-ve-json-islemleri/
http://prettycode.org/2009/04/07/using-jquery-with-aspnet-web-services-and-json/

JQuery Bağlantıları

JQuery ve ASP.NET
http://dotnetslackers.com/articles/ajax/using-jquery-with-asp-net.aspx

JQuery ile XML Pars işlemi
http://marcgrabanski.com/article/jquery-makes-parsing-xml-easy

3 mistakes to avoid when using jQuery with ASP.NET AJAX
http://encosia.com/2008/06/05/3-mistakes-to-avoid-when-using-jquery-with-aspnet-ajax/

jQuery – each
http://weboutbox.com/jquery-each/

Mastering JSON ( JavaScript Object Notation )
http://www.hunlock.com/blogs/Mastering_JSON_(_JavaScript_Object_Notation_)

http://www.xucia.com/strands-doc/example.html

http://jtemplates.tpython.com/

Güzel Notlar

Referans: forum.asp.net

Hello,

web service can access raw Request via HttpContext.Current.Request.xxx but keep in mind that basically a web service (has a web method which) is abstraction over the HTTP layer, when basically what the method needs is in the parameters the web method expects (if it's about parameters here). It should have no need to access raw Request directly in normal cases (you might have an exception that here, of course)
Thanks,

Teemu Keiski
Finland, EU


Referans: www.velocityreviews.com
Q:
Default System.Web.HttpException: Cannot compute Count for a data source t

When i try to do paging in Datagrid why do i get the error:-
System.Web.HttpException: Cannot compute Count for a data source that does
not implement ICollection.?

A:
Hi Patrick:

The underlying DataSource has to support the ICollection interface in
order
for the grid to perform automatic paging. ICollection requires a
class to implement a Count property.
ArrayList and DataView both
support the interface, so you could use them as DataSources.

Other classes only support the IEnumerable interface. This allows them
to be used as a DataSource but not as a paged data source.
SqlDataReader would be an example of such a class.

Making sense?

--
Scott
http://www.OdeToCode.com/blogs/scott/

JQuery Events

Referans: asimsajjad.blogspot.com

http://docs.jquery.com/Events/live

Live (and Die) Event in Jquery(1.3)

Önce desteklenen OLAYlar (Events):

Event Type
Event Type
click
dbclick
mousedownmouseup
mousemovemouseover
mouseoutkeyup
keydownkeypress


Ve henüz desteklenmeyen OLAYLAR:
Event Type
Event Type
blur
focus
mouseenter
mouseleave
change
submit


Ve bir örnek:

function ff() {
$().ready(function() {
var intCounter = 1;
$("p").live("click", ParagraphClick);
$("#cmdBind").click(function() {
$("p").live("click", ParagraphClick);
});

$("#cmdUnbind").click(function() {
$("p").die("click", ParagraphClick);
});

function ParagraphClick() {
$(this).after("Paragraph Number:" + intCounter + "");
intCounter++;
}
});
}




JQUERY AJAX Events


http://docs.jquery.com/API/1.1/AJAX

Calling $.ajax

$.ajax() takes one argument, an object of key/value pairs, that are used to initalize and handle the request, and returns the XMLHttpRequest object for post-processing (like manual aborting) if needed.

Options: Several options that control the behavior of $.ajax are available. They are specified as key/value pairs of the 'parameters' object passed to $.ajax:

* (String) url - The URL to request.

* (String) type - The type of request to make ("POST" or "GET"), default is "GET".

* (String) dataType - The type of data that you're expecting back from the server. If none is specified, jQuery will intelligently pass either responseXML or responseText to your success callback, based on the MIME type of the response. If "xml" is in the MIME type, jQuery will pass the responseXML to your callback, otherwise you'll get the responseText.

* (Boolean) ifModified - Allow the request to be successful only if the response has changed since the last request. This is done by checking the Last-Modified header. Default value is false, ignoring the header.

* (Number) timeout - Set a local timeout for the request. This will override the global timeout, if one is set via $.ajaxTimeout. For example, you could use this property to give a single request a longer timeout than all other requests that you've set to time out in one second. See $.ajaxTimeout() for global timeouts.

* (Boolean) global - Whether to trigger global AJAX event handlers for this request. The default is true. Set to false to prevent the global handlers like ajaxStart or ajaxStop from being triggered.

* (Function) error - A function to be called if the request fails. The function gets passed three arguments: The XMLHttpRequest object, a string describing the type of error that occurred and an optional exception object, if one occured.

* (Function) success - A function to be called if the request succeeds. The function gets passed one argument: The data returned from the server, formatted according to the 'dataType' parameter.

* (Function) complete - A function to be called when the request finishes (after success and error callbacks are executed). The function gets passed two arguments: The XMLHttpRequest object and a string describing the type of success of the request.

* (Object|String) data - Data to be sent to the server. It is converted to a query string, if not already a string. Is appended to the url for GET-requests. See processData option to prevent this automatic processing.

* (String) contentType - When sending data to the server, use this content-type. Default is "application/x-www-form-urlencoded", which is fine for most cases.

* (Boolean) processData - By default, data passed in to the 'data' option as an object (technically, anything other than a string) will be processed and transformed into a query string, fitting to the default content-type "application/x-www-form-urlencoded". If you want to send DOMDocuments or other non-processed data, set this option to false.

* (Boolean) async - By default, all requests are send asynchronous (set to true). If you need synchronous requests, set this option to false. Note that synchronous requests may temporarily lock the browser, disabling any actions while the request is active.

* (Function) beforeSend - A pre-callback to modify the XMLHttpRequest object before it is sent. Use this to set custom headers in the request, for example. The XMLHttpRequest is passed as the only argument.

Return value: XMLHttpRequest


//Add hover capabilities
$('tbody > tr').bind('mouseenter mouseleave', function() {
$(this).toggleClass('hover');
});

FFMPEG ile video dönüştürme ve video içinden resim çekme


public void NETSorununuCozenConvert()
{
/* The below will be the right solution ....
* The while loop which reads the stream is very improtant
* for FFMPEG as .NET does not provide more memory to FFMPEG.
* When converting large files, FFMPEG's out put stream gets filled...
* And waits for .NET to allocate memory resources but is never done.
* In order to utilize less memory, we are clearing the buffer periodically.
**/
string strSRC = "c:\\video1.avi";
string strDEST = "c:\\video1.flv";

Process ffmpeg = new Process();
//string VideoFileDuration = Vuzz.BLL.Common.CommonMethodBLL.GetSystemParameters("Video File Duration");
string VideoFileDuration = "00:10:00";
string ffmpegargs = "-y -i \"" + strSRC + "\" -t " + VideoFileDuration + " -f flv -sameq \"" + strDEST + "\"";
// creating process


ffmpeg.StartInfo.UseShellExecute = false;
ffmpeg.StartInfo.RedirectStandardError = true;
ffmpeg.StartInfo.RedirectStandardOutput = false;
//ffmpeg.StartInfo.LoadUserProfile = true;
ffmpeg.StartInfo.CreateNoWindow = true;
ffmpeg.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
ffmpeg.StartInfo.Arguments = ffmpegargs;
ffmpeg.StartInfo.WorkingDirectory = Path.GetDirectoryName(Page.MapPath("~/ffmpeg/ffmpeg.exe"));
ffmpeg.StartInfo.FileName = Page.MapPath("~/ffmpeg/ffmpeg.exe");
ffmpeg.Start();

StreamReader objStreamReader = ffmpeg.StandardError;
StringBuilder sbOutPut = new StringBuilder();

while (!ffmpeg.WaitForExit(1000))
{
sbOutPut.Append(objStreamReader.ReadToEnd().ToString());
}

if (ffmpeg.ExitCode == 0)
{
ffmpeg.Close();
if (objStreamReader != null)
{
objStreamReader.Close();
}
//PrepareFileForPseudoStreaming(strMetaDatinsert, objList);
}
else
{
ffmpeg.Close();
if (objStreamReader != null) objStreamReader.Close();
//UpdateConversionStatusinDB(ffmpeg, objList);
}
}


public void VideoConvert(string Sourcevideo)
{
/* CMD ekranında bu iş şöyledir:
* C:\>ffmpeg -i test.avi test.flv
**/

Process ffmpeg = new Process();

// Output name
string formatedvideo = DateTime.Now.Ticks.ToString() + ".flv";
// video = Page.MapPath("1.wmv"); // setting video input name with path
string mpg= Page.MapPath("~/Videos/") + formatedvideo;

// ffmpeg -i "c:\my_folder\test.avi" "c:\my folder\test.flv"
ffmpeg.StartInfo.Arguments = " -i \"" + Sourcevideo + "\" -target vcd \"" + mpg + "\""; // arguments !
ffmpeg.StartInfo.FileName = Page.MapPath("~/ffmpeg/ffmpeg.exe");
ffmpeg.StartInfo.CreateNoWindow = true;
ffmpeg.StartInfo.UseShellExecute = false;
ffmpeg.StartInfo.CreateNoWindow = true;
ffmpeg.StartInfo.RedirectStandardOutput = false;
ffmpeg.Start(); // start !


/* Resim çekme
*
* ffmpeg.StartInfo.Arguments = " -i \"" + input + "video.flv" + "\" -vframes 1 -f mjpeg \"" + output + "video.jpg\"";
*
**/

/*
* P.S how i caught the bug in my code was by setting the
* ProcessStartInfo.RedirectStandardOutput = true;
* and
* ProcessStartInfo.RedirectStandardError = true;
*
* Then on my process object i got the standard output and error stream ->
* StreamReader sr = Proc.StandardOutput;
* StreamReader sre = Proc.StandardError;
*
* then i use
* Response.Write(sr.ReadToEnd());
* and
* sre.ReadToEnd();
**/

}

public int ConvertEtResimCek()
{
try
{
Process pVideo = new Process();
Process pResim = new Process();

string AppPath = ConfigurationSettings.AppSettings.Get("AppFolder");
string input = ConfigurationSettings.AppSettings.Get("inputFolder");
string output = ConfigurationSettings.AppSettings.Get("inputFolder");

// Video Convert et
string fileargs = " -i " + "\"" + input + "video.avi\" -ar 22050 -acodec mp3 \"" + output + "video.flv\"";
// İçinden resim çek
string fileargs2 = " -i \"" + input + "video.flv" + "\" -vframes 1 -f mjpeg \"" + output + "video.jpg\"";

pVideo.StartInfo.WorkingDirectory = AppPath;
pVideo.StartInfo.FileName = AppPath + "ffmpeg.exe";
pVideo.StartInfo.Arguments = fileargs;
pVideo.StartInfo.UseShellExecute = false;
pVideo.StartInfo.CreateNoWindow = false;
pVideo.StartInfo.RedirectStandardOutput = true;
pVideo.StartInfo.RedirectStandardError = true;

pResim.StartInfo.WorkingDirectory = AppPath;
pResim.StartInfo.FileName = AppPath + "ffmpeg.exe";
pResim.StartInfo.Arguments = fileargs2;
pResim.StartInfo.UseShellExecute = false;
pResim.StartInfo.CreateNoWindow = false;
pResim.StartInfo.RedirectStandardOutput = true;
pResim.StartInfo.RedirectStandardError = true;

pVideo.Start();
pVideo.WaitForExit();

// Get & Log the error
int errCode = pVideo.ExitCode;
if (errCode == 0)
{
// Başarılı
pResim.Start();
pResim.WaitForExit();

if (pResim.ExitCode == 0)
{
return 0;
}
else
{
return -1; // no thumb image will be add
}
}
else
{
// LogaYaz("ERROR --> " + " An error occurred while converting the file");
return 1;
}
}
catch (Exception e)
{
// LogaYaz("ERROR --> " + e.Message);
return 2;
}
}


http://alexgorbatchev.com/wiki/SyntaxHighlighter:Demo:collapse
pre class="brush: csharp;white-space: nowrap; gutter: false;wrap-lines:true;"

15 Ocak 2010 Cuma

Browser bilgilerini ASP.NET ile almak

Firefox:


IE:


protected void btnTest_Click(object sender, EventArgs e)
{
System.Web.HttpBrowserCapabilities browser = Request.Browser;
string s = "Browser Capabilities\n"
+ "Type = " + browser.Type + "\n"
+ "Name = " + browser.Browser + "\n"
+ "Version = " + browser.Version + "\n"
+ "Major Version = " + browser.MajorVersion + "\n"
+ "Minor Version = " + browser.MinorVersion + "\n"
+ "Platform = " + browser.Platform + "\n"
+ "Is Beta = " + browser.Beta + "\n"
+ "Is Crawler = " + browser.Crawler + "\n"
+ "Is AOL = " + browser.AOL + "\n"
+ "Is Win16 = " + browser.Win16 + "\n"
+ "Is Win32 = " + browser.Win32 + "\n"
+ "Supports Frames = " + browser.Frames + "\n"
+ "Supports Tables = " + browser.Tables + "\n"
+ "Supports Cookies = " + browser.Cookies + "\n"
+ "Supports VBScript = " + browser.VBScript + "\n"
+ "Supports JavaScript = " +
browser.EcmaScriptVersion.ToString() + "\n"
+ "Supports Java Applets = " + browser.JavaApplets + "\n"
+ "Supports ActiveX Controls = " + browser.ActiveXControls
+ "\n";
TextBox1.Text = s;
}

Otomatik çarpraz arka plan oluşturma

http://www.stripegenerator.com/

14 Ocak 2010 Perşembe

Türkiye Dünya'nın yeni efendisiymişşşşş

Haberin adresi: Oda.tv

Kurban bayramı ya da Danimarka bayramı

Haberin adresi: Milliyet



Denizin kıpkırmızı görünmesinin sebebi doğal iklim değişiklikleri değil; dehşet veren bu manzaranın sebebi ‘medeni insanların’ Calderon cinsi yunuslardan yüzlercesini aynı anda katletmesi…

Danimarka, Faroe Adaları’nda her yıl gerçekleşen bu katliamın başrolünde yetişkin olduklarını ispatlamaya çalışan yerli gençler var. Öldürerek ya da seyirci olarak, bölgedeki tüm halkın bir şekilde dahil olduğu bu vahşeti dünya ise görmemezlikten geliyor.

Calderon yunuslarının da diğer yunus türleri gibi insan canlısı olduğu ve çekinmeden insanlara yaklaştığı biliniyor. Böylece çekinmeden ölümlerine yüzen yunusların vücutlarına derin kesikler açılıyor ve kendi kanlarında boğulmaları için bırakılıyor.

Extension Class

Extension Class
using System;
using System.Diagnostics;
using System.Globalization;

namespace MedulaRADClassLib
{
static class ExtensionIEnumerable
{
    /// 
    /// IEnumerable tipinde dizi içinde parametrede verilen metoda dizi elemanlarını ve indeksini geçirir.
    /// 
    /// İçinde dönülecek dizinin tipi
    /// İçinde dönülecek dizi    /// Dizi elemanlarının ve elemanın indeks değerinin gönderileceği metot    public static void ForEachIndex(this IEnumerable e, Action del)
    {
        var i = 0;
        foreach (var cur in e)
        {
            del(cur, i);
        }
    }
}

static public class ExtensionClass
{
/// <summary>
/// String gelen değeri "" veya string.Empty veya NULL ise
/// null değeri döndürür
/// </summary>
/// <param name="_sGelen">
/// <returns>
[DebuggerHidden]
static public string IfIsNullOrEmptyConvertToNULL(this string _sGelen)
{
return string.IsNullOrEmpty(_sGelen)
? null
: _sGelen;
}

/// <summary>
/// String gelen değeri "" veya string.Empty veya NULL ise
/// DBNull.Value değeri döndürür ki DB ye "NULL" yazılsın.
/// </summary>
/// <param name="_sGelen">
/// <returns>
//[DebuggerHidden]
static public object IfIsNullOrEmptyConvertToDbNull(this string _sGelen)
{
return string.IsNullOrEmpty(_sGelen)
? "NULL"
: (object)"'" + _sGelen + "'";
}

/// <summary>
/// Object içinde s1 stringini arıyor,
/// s2 stringini arıyor,
/// s1 in bulunduğu pozisyona kendi uzunluğunu ekliyor,
/// s2 inin pozisyonuna kadar aradaki stringi çekiyor ve 
/// çevirmek istenen tipe dönüştürüp geri gönderiyoruz.
/// </summary>
/// <typeparam name="T">Dönüştürülecek tip
/// <param name="sGelen">Esas arama yapılacak string
/// <param name="s1">İçinde aranacak ilk string
/// <param name="s2">içinde arama yapılacak ikinci string
/// <param name="_bS1Mecbur">Eğer birinci string esas string içinde mecburen bulunacaksa, bu parametre TRUE olarak gönderilmeli.
/// Ve eğer ikinci string yoksa exception fırlatılacak. Bu parametre FALSE gönderilirse, ikinci string olmazsa,
/// esas stringin sonuna kadar metni alacak.
/// <param name="_bS2Mecbur">Eğer ikinci string esas string içinde mecburen bulunacaksa, bu parametre TRUE olarak gönderilmeli.
/// Ve eğer birinci string yoksa exception fırlatılacak. Bu parametre FALSE gönderilirse, birinci string olmazsa,
/// esas stringin sonuna kadar metni alacak.
/// <returns>Dönen değişken tipine göre değeri
[DebuggerHidden]
static public T Substring(this string sGelen, string s1, string s2, bool _bS1Mecbur, bool _bS2Mecbur) where T : IConvertible
{
int iS1 = sGelen.IndexOf(s1) + s1.Length;
int iS2 = sGelen.IndexOf(s2);

if (sGelen.IndexOf(s1) == -1 && _bS1Mecbur)
{
throw new ArgumentOutOfRangeException("s1", "Birinci string parametrenin esas string içinde mecburen bulunması gerekiyor ama yok.");
}

if (sGelen.IndexOf(s2) == -1 && _bS2Mecbur)
{
throw new ArgumentOutOfRangeException("s2", "İkinci string parametrenin esas string içinde mecburen bulunması gerekiyor ama yok.");
}

int iBas = (_bS1Mecbur) ? iS1 : 0;
int iSon = (_bS2Mecbur)
? iS2
: (0 <= (iS2 - iS1)
? (iS2 - iS1)
: sGelen.Length - iS1);

return sGelen.Substring(iBas, iSon).To();
//return default(T);
}


/// <summary>
/// Eğer _bOnceSonra = TRUE ise
/// String içinde s1 i arıyor onun uzunluğundan sonra başlamak üzere kalan tüm stringi
/// dönüş tipine göre çevirip değeri geri gönderiyoruz.
/// <example>
/// string s = "cem|1234" -> s.Substring>int<("|");
/// dersek... int tipinde 1234 alırız.
/// </example>
/// Eğer _bOnceSonra = FALSE ise
/// String içinde s1 i arıyor ve s1 in bulunduğu yere kadar başından itibaren tüm stringi
/// dönüş tipine göre çevirip değeri geri gönderiyoruz.
/// <example>
/// string s = "cem|1234" -> s.Substring>int<("|");
/// dersek... int tipinde cem| alırız.
/// </example>
/// </summary>
/// <typeparam name="T">Dönüş tipi
/// <param name="sGelen">Esas string
/// <param name="s1">Esas içinde aranacak string
/// <param name="_bOnceSonra">Eğer true ise sonrasını alır, false ise öncesini alır
/// <returns>Dönen değer
[DebuggerHidden]
static public T Substring(this string sGelen, string s1, bool _bOnceSonra) where T : IConvertible
{
int iS1 = sGelen.IndexOf(s1) + s1.Length;

if (iS1 > -1 && _bOnceSonra)
{
return sGelen.Substring(iS1).To();
}

if (iS1 > -1 && _bOnceSonra == false)
{
return sGelen.Substring(0, iS1).To();
}

return default(T);
}



/// <summary>
/// İçinde aranan string eğer ilk string içinde yoksa empty string döner
/// Eğer varsa ve pozisyonu içinde aranan stringin uzunluğundan küçük
/// </summary>
/// <param name="sGelen">
/// <param name="sAranan">
/// <returns>
[DebuggerHidden]
static public string SubStrVeArananLen(this string sGelen, string sAranan)
{
int iIndexOf = sGelen.IndexOf(sAranan);
if (iIndexOf < 0)
{
return string.Empty;
}

int iLen = iIndexOf + sAranan.Length;
if (iLen > sGelen.Length)
{
return string.Empty;
}

return sGelen.Substring(iLen);
}

/// <summary>
/// Gonderilen string içinde aranılan cKarakter ifadesinin kaç kez geçtiğini döndürür.
/// </summary>
/// <param name="sGelen">
/// <param name="cKarakter">
/// <returns>
[DebuggerHidden]
static public int KacAdetVar(this string sGelen, char cKarakter)
{
int iCount = 0;
for (int i = 0; i < sGelen.Length; i++)
{
if (sGelen[i] == cKarakter)
{
iCount++;
}
}
return iCount;
}

/// <summary>
/// Object cinsinden ve içinde dd-mm-yyyy veya daha farklı formatta stringi DateTime olarak dondurur.
/// </summary>
/// <param name="objGelen">
/// <param name="sFormat">
/// <returns>
[DebuggerHidden]
static public DateTime ParseExact(this object objGelen, string sFormat)
{
return DateTime.ParseExact(objGelen.ToString(), sFormat, new DateTimeFormatInfo());
}


/// <summary>
/// Gonderilen tarihde ayin ilk günü gelir.
/// </summary>
/// <param name="dtGelen">
/// <returns>
[DebuggerHidden]
static public DateTime AyinIlkGunTarihi(this DateTime dtGelen)
{
return new DateTime(dtGelen.Year, dtGelen.Month, 1);
}


/// <summary>
/// Gonderilen tarihin ay ve yılına bakılarak, o ayın son gunu alınır ve son gune gore tarih geri dondurulur.
/// </summary>
/// <param name="dtGelen">
/// <returns>
[DebuggerHidden]
static public DateTime AyinSonGunTarihi(this DateTime dtGelen)
{
return new DateTime(dtGelen.Year, dtGelen.Month, DateTime.DaysInMonth(dtGelen.Year, dtGelen.Month));
}

[DebuggerHidden]
static public Int32 ToInt(this string sGelen)
{
if (string.IsNullOrEmpty(sGelen))
{
throw (new ArgumentNullException("Int değere dönüştürülmek istenen STRING boş geldi."));
}
return Convert.ToInt32(sGelen);
}

[DebuggerHidden]
static public bool Sayimi(this object value)
{
string s = value.ToString();
if (s.Length == 0)
{
return false;
}

for (int i = 0; i < s.Length; i++)
{
if (!Char.IsDigit(s[i]))
{
return false;
}
}

return true;
}

[DebuggerHidden]
static public bool IsNullOrEmpty(this T obj)
{
if (typeof(T) == typeof(System.String))
{
if (obj == null)
{
return true;
}
return string.IsNullOrEmpty(obj.ToString());
}
return (Equals(obj, default(T)) || (obj.ToString() == ""));
}

[DebuggerHidden]
static public bool IsNullOrEmpty(this T[] obj)
{
bool sonuc = true;
for (int i = 0; i < obj.Length; i++)
{
if (i == 0)
{
sonuc = (Equals(obj[i], default(T)) || (obj[i].ToString() == ""));
}
else
{
sonuc = (sonuc && (Equals(obj[i], default(T)) || (obj[i].ToString() == "")));
}
}
return sonuc;
}

[DebuggerHidden]
public static T To(this object value) where T : IConvertible
{
if (value == DBNull.Value)
return default(T);

if (typeof(T) == typeof(bool))
return (T)Convert.ChangeType(Convert.ToInt32(value), typeof(T));

if (typeof(T) == typeof(string))
return (T)Convert.ChangeType(Convert.ToString(value).Trim(), typeof(T));

return (T)Convert.ChangeType(value, typeof(T));

}
}
}

11 Ocak 2010 Pazartesi

Müdür Yardımcısı

Mevki makamı çok önemsemem ama tebrikler gelince bir hoş oldum ve tarihe bir not düşeyim istedim :)

2010 ORGANİZASYON YAPISI ve GÖREV DEĞİŞİKLİKLERİ

Yürütme Kurulu’nun 2010 yılı için organizasyon yapısı ve çalışanlarımızla ile ilgili yaptığı değerlendirmelere göre 01.01.2010 itibariyle geçerli olacak görev değişiklikleri aşağıda iş grubu bazında belirtilmiştir.

Yapılan bu değişikliklere göre ilgili çalışanlarımıza görevlerinde başarılar dileriz.


Cem TOPKAYA

Grup Mali İşler bünyesinde IT Departmanı’nda IT Yöneticisi pozisyonunda görev yapmakta olan Sayın TOPKAYA, Yazılım Müdür Yardımcısı pozisyonunda görevine devam edecektir.

9 Ocak 2010 Cumartesi

2 Ocak 2010 Cumartesi

VS ve Java Generic Metot

Visual Studio 2008 de generic parametre alan bir metot şu şekilde:

vs

Çıktısı:

vsOut

Java’da :

java

javaout


Peki birden fazla generic tipte parametre alan metot nasıl olur?

Visual Studio 2008:

vsParam

Java’da:

javaParam

javaParam1

Java da T generic parametreleri derleme zamanında Object tipine çeviriliyor. Buna “erasure” deniyor. Hadi bir kayak:

http://java.sun.com/docs/books/tutorial/java/generics/erasure.html

Ama VS da durum bu değil. Peki ne? Bende bilmiyorum. Bilen olursa yazsın :)

Hadi birazda çıktılarına bakalım.

javaErasure vsErasure

1 Ocak 2010 Cuma

Zamanlarda aktif ve pasif özeti

PASSIVE USAGE OF TENSES (zamanların passive kullanımı)
ACTIVEPASSIVE
Am/is/are + Vingam/is/are being +V3
Do/doesam/is/are + V3
Have/ has + V3have/has been V3
Was / were + Vingwas/ were being + V3
Didwas / were + V3
Had + V3had been + V3
Will + V1will be + V3
Am/is/are going to + V1am/is/are going to be + V3
Will have + V3will have been + V3
Examples:
Active : She has posted the letters.
Passive: The letters have been posted .
Active: They bought those shoes yesterday.
Passive: Those shoes were bought yesterday.
Active: Did they send the letters?
Passive: Were the letters sent ?