Google Analytics İzleme

15 Mart 2010

Döküman Yönetimi de nedir?

Her kurum kendi içerisinde az ya da çok karmaşık iş modelleri ile kendine özgü bir yapıdır. Küçük firmalarda ise, nispeten günlük işler için gerekli ,daha az sayıda uygulama bulunmakla birlikte, araştırma, üretim ve kamu faaliyetinde bulunan büyük kurumlar için bir çok özel uygulama bulunur. Her nerede bilgisayarlar görev başında ise, farklı türde bir çok dijital belgeyi de içerir. Orta boy bir işletmede hergün hatırı sayılır miktarda „kağıt“ belge ortaya çıkar.
Kağıt, bilgi içeren bir araç olarak pahalıdır ve yıllarca birikmiş bu kağıt belgelerin saklanması geniş depolama alanları ve binlerce klasörü gerektirir. Çoğu bodrum katlarında yer alan, böyle bir arşivde tozlanmış klasörler içindeki bir belgeyi aramanın zorluğunu tahmin etmek, hiç de zor olmasa. Bu nedenle birçok kurum günden güne söz konusu arşivlerini elektronik ortama taşımaya çalışıyor. Bir Döküman Yönetim Sistemi kullanmanın en temel hedefleri :
  • Arama süresini kısaltmak ve dolayısıyla maliyeti azaltmak
  • Döküman dağıtımını ve akışını kontrol etmek
  • Depolama yeri ve gerekli büro malzemelerinden tasarruf etmek
Bu karmaşık teknik yapı için gerekli olan donanım ve yazılım lisanslarının maliyetleri, tüm bu sistemin yönetimi için gerekli işletme maliyetlerini dışarıda tusak bile oldukça yüksektir. Ancak şunu unutmamak gerek, nerede tasarruf edilmesi gerekiyorsa, önce ciddi bir yatırım yapmak gerekebilir. Bu tarz bir yatırım riskini azaltmak çin, karar verici ile beraber DYS- Döküman Yönetim Sistemi sunan iş ortağının, her ikisinin de dikkatli ve derinlemesine analizi yapılmamış, bir eksiklikten ötürü doğabilecek riskleri tanıyor olması yararlı olacaktır. Bir firmanın, birden fazla yazılım kullandığını varsayıyoruz: planlama ve kontrol için bir ERP sistemi, finans ve muhasebe uygulaması, dizayn ve inşa için bir CAD programı, iletişim için bir e-posta yönetici sistemi ve grafik programları. Ve bunlara ek olarak metin editörleri, sunum ve daha birçok ofis uygulamasını da unutmamak gerek. Yine unutmayalım ki, yazılımların hepsi açık kaynak kodlu olmayabilir. .
Tüm bunların ışığında, DYS ile profesyonelce kullanabilmek için , tüm bu olası yazılım ya da sistemler ile DYS'nin birbirini karşılıklı anlayabilmeleri için gerekli arayüzlere ihtiyaç duyulur. Örneğin kullanılan bir ERP sistemi (SAP olabilir) ile DYS'nin birbirlerini anlayabilmesi. Burada kastedilen, örneğin bir ERP sisteminde oluşturulan dökümanın, otomatik olarak DYS'ye aktarılması ve burada kullanıcının DYS içerisinden , kaynak ERP sistemine ihtiyaç duymadan bu belgeyi yönetebilmesidir. Bu sebeple arayüzün, dökümanların çalışılan sistemden (örneğin ERP Sisteminden), tekrar DYS'yi kullanma zorunluluğu olmadan görüntülenmesine olanak sağlayan görüntüleyici(viewer) işlevine sahip olması gerekir.
Sistemler arasındaki değiş tokuş, olası tüm sistemler arasında otomatik olarak gerçekleşebilmelidir. Örneğin ERP – DYS arasında ve DYS ile CAD sistemi arasında.
Profesyonel bir döküman yönetim sisteminin kalbi, ilerleyen zamanlarda işletmenin çok nadir olarak ihtiyaç duyacağı belgelerin, uzun yıllar boyunca güvenli olarak saklanabileceği bir dijital arşivdir. Yasal olarak , şu anda bazı ülkelerde söz konusu dijital arşivlemelerle ilgili çok sıkı düzenlemeler geririlmişti. Böyle bir arşiv sisteminin sadece güvenli değil, çok çok güvenli olması gerekiyor.
Gerçek hayatta, örneğin bir gizli dökümanların bulunduğu bir arşivi gözönüne alırsak, arşivdeki görevlinin mutlaka hangi belgenin, kime gittiğini kayit altina almasi zorunludur. Arşiv görevlisi , arşivin yapısını avucunun içi gibi bilir. Tüm evraklar arşive girmeden önce belirli bir düzende katalog haline getirilmiş, kategorilere ayrılmış, indekslenmiştir.

DYS în sahip olması gerekenlşeri aşağıdaki gibi kısaca özetleyebiliriz:
    • Bir belgenin tekrar bulnabilirliğini teminat altına almak (anahtar kelimeler, arama motoru ve belge tanımlayıcı anahtarlar )
    • Belgelerin uzun süreler boyunca okunabilir kalmasını sağlamak (TIFF ya da PDF/A gibi geçen zaman boyunca değişmez kalan (timeless) formatlara otomatik olarak dönüştürmek)
    • Yasal arşivde saklama sürelerini sağlamak ( bazı ülkelerde bu 30 yıla kadar uzar )
    • Sürüm kontrolü (Version Control)
    • Belge oluşturma desteği (Şablon yönetimi, iş akışı, takım içinde yazma-okuma yetki senkronizasyonu, kontrol iş akışı, yayınlama iş akışı, belge dağıtım iş akışı, arşivleme iş akışı )
    • Belgeler yardımı ile iş süreçlerini otomatize etmek
    • Erişim yetkileri tanımlayabilme (bilgi koruma ve veri güvenliği )
    • Belgeye ait tüm değişiklik ve iletilerin protokollenmesi (Audit Trail)
    • Belgelerin birden fazla yerde saklanmasını önlemek ve böylece kayıt alanından tasarruf etmek ( e-posta sunucuları, proje ya da departman dizinleri , kullanıcı diskleri )
    • Belgede aynı anda farklı kullanıcıların paralel olarak gerçekleştirdikleri değişikliklerin yönetimi ( Conflict Management)
    • Çift belge ve işin önlenmesi



XINCO DMS


Xinco DMS, doyaların, metinlerin, URL'lerin ve iletişim bilgilerinin yönetimi amacıyla geliştirilmiş, web servis mimarisine dayalı bir DYS'dir. Erişim kontrolü , sürüm kontrolü , metin içinde arama , otomatik arşivleme ve web'de yayınlama gibi işlevleri içermektedir. Kullanıcı arayüzü olarak, XINCO DMS sunucusu ile Web Servisleri ile iletişim kuran FTP-istemcisi tarzında bir istemciye sahiptir. (XincoExplorer)
Bir çok açık kaynak kodlu DYS, web arayüzleri üzerine geliştirilmiştir. Xinco DMS burada bir adım öne geçip, farklı sistemlere kısa sürede entegre edilebilmeyi olanaklı kılan web servis bazlı ilk DYS'dir.
XincoExplorer Platform Bağımsız İstemci
Web arayüzleri birçok avantajı barındırıyor olsa da, yoğun bir veri çalışması gerektiren durumlarda, çok konforlu bir çalışma ortamı sunmamaktadırlar. Bu nedendendir ki , Xinco geliştiricileri, platformdan bağımsız, masaüstü uygulamalrı ile daha raht çalışmaya olanak kılacak, Java Web Start ile internet ya da ağ üzerinden kolayca dağıtılabilen XincoExplorer'ı geliştirmişlerdir. Bu istemci yardımı ile , yeni belgeler eklenebilir, düzenlenebilir ve dizin yapıları değiştirilerbilir.
Dosyaların yanında, metinler, iletişim bilgileri, web linkleri ya da harici kaynaklarda eklenebilir.
İstemci, SOAP protokolü yardımı ile sunucular ile iletişim kurabilir ve aynı zamanda FTP programlarına özgü birçok işlevide barındırır. XincoExplorer birden fazla Xinco sunucusu ile bağlantı kurabilir, kullanıcının yeterli erişim iznine sahip olması durumunda, dünyanın her tarafına dağılmış sunuculara ulaşabilir.



Bağımsız Xinco DMS Sunucusu

Xinco DMS sunucusu ile farklı sistemlerin haberleşebilmesi , yukarıda belirttiğimiz web servis özelliğinden dolayı oldukça kolaydır. Örneğin bir kurumun mevcut ERP ya da CRM sistemi arka tarafında bir Xinco DMS sunucusu ile rahatlıkla çalışabilecek şekilde entegre edilebilir. Bunun yanında size ait bir Scanner uygulamasını da entegre etmeniz oldukça kolaydır. Böylelikle XincoDMS ile sadece elektronik ortamdaki belgeleri değil, aynı zamanda kağıt halindeki belgelerinizi de yönetebilirsiniz.
Metin araması, sunucu tarafında metin dosyaları (.txt) , PDF ve bilinen birçok ofis formatında yapılabilir. XincoDMS sunucusu, kurulum için Apache Tomcat ya da Jboss uygulama sunucularından birine ihtiyaç duyar. Veritabanı olarak ise resmi olarak PostgreSQL ve MySQL desteklenmektedir. Ancak bunların yanında topluluk tarafından MSSQL ve Oracle desteği de gelmiştir.
Eğer çok aceleniz var ise, cüzi bir ücret karşılığında, window platformunda birkaç dakika içerisinde hızlıca kurulum yapmanızı sağlayan “Xinco Instant DMS Professional” indirebilirsiniz.

http://www.xinco.org/

Contineo

Java ile geliştirilmiş olan Contineo, bir DYS için gereken standart özelliklerin tamamını içermektedir. Java sanal makinasının bulunduğu tüm platformlarda çalışabilen Contineo, MySQL , IBM DB2 ve Oracle bir çok veritabanı yönetim sistemini desteklemektedir. Eğer herhangi bir veritabanı yönetim sistemi mevcut değilse, gömülü java veritabanı HSQLDB ile de çalışılabilir.

Contineo, standart olarak yönetici, yazar ve konuk olmak üzere üç farklı kullanıcı grubu içerir. Bu üç temel grup baz alınarak, teni kullanıcı grupları oluşturmak mümkündür Yetki ve erişim izinleri isteğe göre değiştirilebilir . Bir kullanıcı aynı anda birden fazla grupta yeralabilir. Kullanıcılar isim yanında, dil ve e-posta adresleri gibi bilgiler aracılığı ile tanımlanır.

Contineo'da belgeler, HTTP-Upload yöntemi ile sunucuya yüklenir. Sunucuya aynı anda sıkıştırılmış olarak (Zip) birden fazla belge eklenebilir.

Bir belge adının yanında , yazar, başlık , dil ve anahtar kelimeler gibi meta veriler ile tanımlanabilir. Contineo belge dillerini ya da anahtar kelimeleri otomatik olarak tanıma gibi bir özelliğe sahiptir.

Contineo'da belgeler dizinler şeklinde kaydedilir. Arama motoru ise birçok farklı tipteki dosya formatında, metin araması yapabilecek şekilde geliştirilmiştir. ( PDF, DOC, XLS, PPT, ODT, ODP, OCX, SXW, SXI, SXC, PS, HTML ve TXT) Belge içerisindeki aramalar, meta verilerin araması bittikten sonra gerçekleştirilir. Aynı zamanda isteğe bağlı olarak, benzer kelimeler de metin içerisinde aratılabilir. Böylelikle bir kelimenin bilinmeyen farklı yazılış şekilleri de bulunabilir.

Arama sonuçları bir liste halinde ya da aşağıdaki resimde gördüğünüz şekilde bir grafik olarak gösterilebilir.



Grafik gösterimi, standart arama sonuçlarının yanısıra, bu belgelerin birbirleri arasındaki ilişkiyide gösterecek şekilde düzenlenmiştir.

Contineo'ya aktraılan belgeler sadece değiştirilip silinmez, kullanıcılar tarafından tartışılabilirde. Kullanıcıların birbirleri ile haberleşebilmeleri için Contineo içerisinde bir e-posta istemcisi de eklenmiştir.

Eğer sistem kullanıcıları dışında bir kişinin (örneğin müşteri ), özel bir belgeye erişmesi gerekiyorsa, bu kişi için sadece söz konusu belgeye erişimi saplayan bir Download-Ticket oluşturmak mümkündür.

Contineo, standart bir DYS özelliklerini sunmakla beraber, kolay kullanımı ile de oldukça avantajlıdır.
http://contineo.sourceforge.net/

Alfresco

Alfresco'da diğer incelediğimiz DYS'ler gibi temel tüm ihtiyaçları karşılar. Genel kabul görmüş standartlara karşı açıktır ve kullanıcı dostu arayüzü ile belgelerin yönetimi çok kolaydır. PDF ve OpenOffice gibi birçok tanımış dosya tipini desteklemektedir.
Yazılımın mimarisinin, ilk günden beri farklı sistemlere kolayca entegre olabilmek ve esnek bir şekilde geliştirilebilmeyi garanti altına almak için , WebDAV ,JSR 168, JSR 170, Web Servisleri gibi açık standartlara uyumlu olmalarına özen gösterilmektedir.




Belgeler otomatik olarak indekslenir. Kullanıcıların forumlar, önceden düzenlenmiş çalışma bölümleri ve dashboardlar yardımıyla, beraber çalışabilmeleri özendirilir. Arama ve indeksleme altyapısı Lucene açık kaynak teknolojisi kullanılarak geliştirilmiştir. Erişim konsepti ise Acegi ile gerçekleştirilmiştir. Alfresco'nun temel mimarisi Java, Spring ve Hibernate üzerine kuruludur. Ölçeklenebilir ve dağıtık olarak işletilmesi mümkündür.
Bugüne kadar 200.000'ün üzerinde indirilen Alfresco için en başarılı DYS uygulaması olduğu iddia edilir.
http://www.alfresco.com

Kaynaklar:
http://t3n.yeebase.de


Alıntıdır: http://aciknokta.blogspot.com/2008/07/dkman-ynetimi-de-ne.html

Açık Kaynak ETL Araçları

2000'li yılların basşından itibaren gelişimi hız kazanan ve bir çok işletmede çok önemli işlevleri yerine getiren açık kaynak yazılımlar trendine yeni bir alan daha eklendi. Bu alan açık kaynak veri ayrıştırma , dönüştürme ve yükleme (ETL- extract, transform , load) bütünleştirici yazılımları. 

Bu yazılımlar özellikle orta boy ve büyük işletmelerde hem kendi kodunu geliştirme ihtiyacını azaltmakta , hem de mevcut ticari ürünlere göre düşük sahip olma maliyeti avantajı sağlamaktadır.


ETL çalışma prensibi oldukça basittir: Verileri al, işe özgü veri dönüşüm mantığını verilere uygula ve hedef platforma gönder.





Kurumsal düzeyde pazarda, Ab Initio, Business Objects, IBM, Informatica ve SAS ürünleri bulunmaktadır. Bu söz konusu firmalara ait çözümler, heterojen platformlarda, yüksek miktarlardaki, çoklu veri dönüşümü ve alışverişini, yüksek perfomrans ile gerçekleştirebilecek şekilde dizayn edilmiş ve geliştirilmiştir. Bu çözümlerin fiyatları 50.000 ile 100.000 USD arasında değişmektedir. 


Yukarıda belirttiğimiz firmaların çözümlerinin yanında, heterojen platformlar için kısıtlı destek imkanı sunan, ancak daha düşük maliyetli çözümlerde pazarda bulunmaktadır. Örneğin Microsoft SQL Server ile paket olarak gelen SQL Server Integration Services bu tarz bir üründür, ancak yalnızca Microsoft SQL Server bağlantısı kurabilmektedir. Yine benzeri bir ürün Oracle Warehosue Builder , Microsoft çözümünden daha gelişmiş bir platform desteği sunmaktadır ve tabi öncelik doğal olarak Oracle veritabanı sistemleridir. Buna ek olarak çeşitli CRM ve ERP uygulamalarına bağlantı seçeneği de, müşterilere belirli bir ücretle sunulmaktadır. 

IBM'in Websphere Message Broker çözümü yine ETL işlevleri içermesi açısından bu sınıfın içerisine dahil edilebilir. Her ne kadar daha çok SOA ve EAI için düşünülmüş çok güçlü bir altyapıya sahip araç olsa da, sunduğu heterfojen platform desteği, çeşitli bağlantı adaptörleri , veri transformasyon araçları ve desteklediği mesajlaşma altyapısı ve endüstriyel standartlar ile ETL içinde bir çözüm olarak görülebilir. Tabi ki yüksek sahip olma maliyeti gözden kaçmamalıdır. 

Bu pazar dinamikleri içerisinde, büüyük ölçekli verilerle çalışma zorunluluğu olan kurumlar için, farklı veri kaynaklarından gelen verilerin bütünleştirilmesi ve farklı hedeflere yönlendirilmesi gibi ödevlerin düşük maliyetler ile gerçekleştirilmesi, oldukça büyük bir çaba gerektirir. Bir yandan bu tarz bir entegrasyon aracını satın almak ya da kendi IT yapısı içerisinde işe uygun çözümü geliştirmek, kullanılan kaynak miktarı ile bağlantılı olarak maliyetli çözümlerdir. 

Bu noktada açık kaynak modeli gerçek bir alternatif olarak ortaya çıkmaktadır :
  • Geniş Destek İmkanı - Dünya üzerine dağılmış bir çok geliştirici birbirlerinden bağımsız olarak geliştirdikleri , bir çok değişik işlevi yerine getiren adaptörleri , yine topluluk üzerinden tüm dünyaya dağıtıyor. 
  • Gelişmiş Endüstri Standartları: Verilerin dönüştürülmesinde, veri formatları ve standartları çok önemli bir rol oynamaktadır.XML, SWIFT , EDIFACT gibi standart formatların desteklenmesi, doğrulanması ve dönüştürülmesi , etkin bir bir sistem için gereklidir. Açık kaynak kodlu projelerdeki, geniş geliştirici ve kullanıcı desteği bu standartların desteklenmesi, geliştirilmesi ve kodun testi açısından büyük avantajlar sağlar. 
  • Daha az maliyet: Şu anda pazarda bulunan açık kaynak kodlu ETL çözümleri, ticari ve kapğalı kodlu ürünlere göre çok düşük sahip olma maliyeti ile önemli avantaja sahiptirler. Dileyen kurumlar, gerekli altyapı ve bilgi sahibi iseler, bu açık kaynak kodlu paketleri indirip gerekli değişiklşik vezya ekleri kendileri yaparak da bu yazılımları kullanabilirler. 



MEVCUT AÇIK KAYNAK KODLU ETL ÇÖZÜMLERINDEN BAZILARI



http://www.cloveretl.org/_img/logo_clover.gif

clover.ETL

Java teknolojisi kullanmasından dolayı platform bağımsızdır. Tek başına (standalone) kullanılabileceği gibi , sunucu tarafında da (server application) olarak da kullanılabilir . Transfoırmasyon kütüphanesi olarak, kendi uygulmaanıza eklemeniz mümkündür. Hem ticari hem de LGPL lisansı ile dağıtılır. GUI ticari lisans ile beraber gelmektedir , ticari olmayan amaçlar içinde kullanmak mümkündür. 


http://www.cloveretl.org/

KETL

KETL Java bazılı mimariye sahip bir araçtır ve Kinetic Network firması tarafından finanse edilen bir projedir. Çekirdek kütüphane LGPL lisansı ile gelirken , KETL sunucusu GPL lisansı altında dağıtılmaktadır. Şu anda geliştirme işlemi çoğunlukla Kinetics firması çalıçanları tarafından yapılmaktadır , yakın gelecekte firma dışından da geliştiricierin katılımı beklenmektedir. 

KETL, XML tabanlı bir geliştirme metoduna sahiptir. Bu amaçla Eclipse IDE ortamı kullanmak mümkündür. Kendi takvim-zaman planlama ve olaya-dayalı job çalıştırma desteği, performans izleme , job istatiskleri gibi özelliklere sahiptir. 

http://www.ketl.org/

Pentaho Kettle

BI - Business Intelligence alanında uzmanlaşmış Pentaho firması, veri entegrasyon işlevine sahip bir ETL aracı sunmaktadır. ETL işlevi , LGPL lisansı ile dağıtılan Kettle projesi bazlıdır. 

Pentaho Kettle projesi bağlantı adaptörleri, yığın verileri yükleme (bulk loader) ve dönüştürücüler konusunda, topluluk tarafından birçok ek geliştirme ile desteklenmiştir. Bunlara örnek olarak Oracle Bulk Loader, Web Services Look up ve SAP Connector verilebilir. Kettle ile entegre olmasına rağmen SAP Connector bir plug-in olarak ücretli olarak, Pentaho partneri olan Proratio tarafından sunulmaktadır. 

http://www.pentaho.com/products/data_integration/



Talend - open data solutions - Talend is the first provider of open source data integration software

Talend

Pazara yeni giren bir Fransız firması olan Talend, kendisine hedef olarak açık kaynak kodlu veri integrasyonunu koymuş ve buna istinaden pazarda Open Studio ürünü ile pozisyon almıştır. GPL v2 lisansı ile dağıtılmaktadır , ancak Open Studio işlevlerini kendi ürünlerinde kullanmak isteyen firmalara yönelik OEM lisanslama seçeneğine de sahiptir. Örneğin JasperSoft , Pentaho ile rekabet etmek amacıyla Open Studio'yu , kendi açık kaynak kodlu BI çözümüne entegre etmiştir. Talend, bir açık kaynak sağlayıcısı olarak eğitim, destek ve danışmanlık hizmetleri ile kazanç hedeflemektedir. 

Open Studio, kullanıcılar için Eclipse tabanlı oldukça kullanışlı bir IDE ortamı sunmaktadır. 


Alıntıdır: http://aciknokta.blogspot.com/2008/07/ak-kaynak-etl-aralar.html

11 Mart 2010

DataTable.Copy() ile DateTable.Clone metodları

DataTable myTable;
myTable = GetDataTable().Clone();
ile
DataTable myTable;
myTable = GetDataTable().Copy();
arasındaki fark nedir?
Clone() methodu bir tablo nesnesini diğer tablo örneğine içinde veriler olmadan sadece şema olarak oluşturur.
Copy()  metodu ise içindeki veriler ile birlikte bir tablo nesnesini diğer tablo intance'ına birebir kopyalar.
Clone'a fazla ihtiyacım olmamıştı. Fakat Copy methodunu şu amaçla kullandığımı hatırlıyorum.
Faraza bir grid vasıtasıyla bir DataTable dolusu veriti düzenliyorsunuz (satırlar siliyor, ekliyor, güncelliyorsunuz). Ve bu işlemler sonucunda değişiklikleri kaydet yada vazgeç şeklinde iki seçenek sunuyorsunu kullanıcıya. Böyle bir durumda bir editleyeceğimiz dataTable'ı ilk önce Copy() metoduyla bir yedekliyoruz. Sonra kullanıcı vazgeç butonuna bastığında editlenmiş ilk tablomuzu uçuruyor kopyaladığımız bozulmamış tablomuzla yolumuza devam ediyoruz. Değişiklikler onaylandığında ise de kopya tablomuzu dispose ediyoruz.

27 Ocak 2010

DataTable'da verileri sıralama

DataTable'ın DefaultView özelliğine sıralama tanımı yaparak tablodaki verilerin sıralı gösterilmesini sağlayabiliriz.

---
vb.net:

Dim gridTable As DataTable = CType(dataGrid1.DataSource, DataTable)

gridTable.DefaultView.Sort = "CompanyName DESC"
---
c#:

DataTable gridTable = (DataTable) dataGrid1.DataSource;


gridTable.DefaultView.Sort = "CompanyName DESC"
---

if (this.DataSource is DataTable) 
{
 DataTable table = (DataTable) this.DataSource;
 if (sortExpression != null && sortExpression.Length > 0) 
 {
  table.DefaultView.Sort = sortExpression + " " + sortOrder;
 }
}
---
DataView sınıfını kullanarak da sıralama, arama ve filitreleme yapabiliriz.
vb.net
Dim dvEmpolyees as New DataView(dtEmployees)
dvEmployees.Sort = "DateOfHire"
dvEmployees.Sort = "DateOfHire, Department"
dvEmployees.Sort = "DateOfHire, Department DESC"
dvEmployees.Sort = "[Date Of Hire], Deparment"
c#
DataView dvEmployees = new DataView(dtEmployees);
dvEmployees.Sort = "DateOfHire";
dvEmployees.Sort = "DateOfHire, Department";
dvEmployees.Sort = "DateOfHire, Department DESC";
dvEmployees.Sort = "[Date Of Hire], Deparment";

kaynak:
http://weblogs.asp.net/jcogley/archive/2003/09/15/27567.aspx
http://www.knowdotnet.com/articles/dataviewsort.html
http://msdn.microsoft.com/en-us/library/system.data.datatable.defaultview(VS.71).aspx



26 Ocak 2010

visual studio 2003'de web projesini publish etme, yayınlama

Visual studio 2003'de solution explorer penceresinde web projesini seçin, menüden Project -> Copy Project seçin. Gelen sihirbazda atılacak yeri belirtiniz sonra OK butonuna basınca ilgili klasöre publish etmiş olursunuz.

Eğer web hosting hesabınıza yüklemek istiyorsanız, Front Page Extensions eklentisi hosting hesabınızda kurulu olmalıdır.



25 Ocak 2010

windows vista'ya sapgui 7.10 kurulumundan sonra saplogon.ini dosyasının yeri

Eğer vista'da UAC (User Access Control) açıksa saplogon.ini dosyası
\\%userprofile%\AppData\Local\VirtualStore\Windows klasörüne yüklenir.

UAC açık değilse C:\%Windir%\ klasörü altına yüklenir.

11 Ocak 2010

Asp.NET UpdatePanel’e UpdateProgress nesnesi koymak

Asp.NET ile ajax gerçekten çok basit.
ScriptManager ve UpdatePanel sürükleyip bırakmanız yeterli. UpdatePanel’in içine koyduğunuz nesneler, bir kodu tetiklediğiniz zaman sayfa değişmeden postback oluyor ve updatepanel içerisindeki veriler değişiyor.
Peki ya update işlemi esnasında kullanıcıyı bilgilendirsek nasıl olur?
updating

<asp:UpdateProgress ID="UpdateProgress1" runat="server" AssociatedUpdatePanelID="UpdatePanel1">
<ProgressTemplate>
<div class="progressBackgroundFilter"> </div>
<div class="processMessage">
<img src="images/updating.gif" /><br /><strong>Lütfen Bekleyin...</strong></div>
</ProgressTemplate>
</asp:UpdateProgress>

Tamam yaptık. artık update işlemi esnasında ProgressTemplate imiz görünüyor. Ama sürükleyip bıraktığımız yerde görünüyor.
css dosyamıza da şu satırları ekleyelim.
.progressBackgroundFilter {
position:fixed;
top:0px;
bottom:0px;
left:0px;
right:0px;
overflow:hidden;
padding:0;
margin:0;
background-color:#000;
filter:alpha(opacity=50);
opacity:0.5;
z-index:1000;
}
.processMessage {
position:fixed;
top:30%;
left:43%;
padding:10px;
text-align: center;
width:14%;
z-index:1001;
background-color:#fff;
border:solid 1px #000;
}

Tamamdır :)

kaynak:
http://www.kayabuyukcelen.com.tr/blog/aspnet-update-panele-updateprogress-nesnesi-koymak/

07 Ocak 2010

çapraz farklı domainlerdeki sayfaları kaynak alan iframe'lerde asp.net ajax script çalışma problemi

Çapraz farklı domainlerdeki sayfaları kaynak alan iframe'lerde asp.net ajax'ta script çalışma problemi oluşmaktadır. Line 5959 Access Denied şeklinde internet explorer'da javascript çalışma hatası vermektedir. Bu sorun MicrosoftAjax.js 'de Sys.UI.DomElement.getLocation metodunu oluştururken çıkmaktadır.

this code on the line 5959 of one of MS AJAX files, in getLocation func, yield "Access denied" bugs in cross-domain scenarios. Or http with https iframe scenario in our case. top is obviously  inaccessible...
   var w = element.ownerDocument.parentWindow;
                                                var offsetL = w.screenLeft - top.screenLeft - top.document.documentElement.scrollLeft + 2;
            var offsetT = w.screenTop - top.screenTop - top.document.documentElement.scrollTop + 2;


Bu sorun net 3.5'da düzeltildi. net 2.0 için ise yama yapmanız gerekmektedir.

Kullanabileceğiniz kaynaklar:


Access denied bug: http://forums.asp.net/p/1075429/1579575.aspx

How to work around the access denied cross-domain frame issue in ASP.NET Ajax 1.0: http://weblogs.asp.net/bleroy/archive/2007/01/31/how-to-work-around-the-quot-access-denied-quot-cross-domain-frame-issue-in-asp-net-ajax-1-0.aspx

Safely avoiding the "access denied" dialog [How to: Work around the access denied cross-domain IFRAME issue in the AJAX Control Toolkit]: http://blogs.msdn.com/delay/archive/2007/02/05/safely-avoiding-the-access-denied-dialog-how-to-work-around-the-access-denied-cross-domain-iframe-issue-in-the-ajax-control-toolkit.aspx
Ajax and validaters are not working in IFrame : http://forums.asp.net/p/1334037/2683461.aspx
http://aspnetqa.blogspot.com/2008_10_01_archive.html
http://aspnetqa.blogspot.com/

19 Ekim 2009

windows hal.dll dosyası yok,eksik veya hasarlı diye hata vermesi

bu hatanın çözümü için boot konfigürasyonun tekrar oluşturulması gerekiyor.

komut isteminde:

bootcfg /rebuild

komutunu kullanabilirsiniz.

02 Eylül 2009

Toshiba laptoplarda kurtarma bölümünü çalıştırma hangi tuşla oluyor?

Tohiba laptobı yeniden kurma ihtiyacım oldu. Bunun için kurtarma bölümünden yüklemek istedim. Fakat buraya nasıl erişilip çalıştırılacak. İnternette yaptığım gogıling sonucunda F1, F12, 0 veya C harfine sürekli basınca ulaşabilceğime dair bilgiler edindim. Yaptığım denemelerde C harfine bilgisayar daha en başından açılırken basılı tutunca işe yaradığını gördüm. Diğerleri işe yaramadı, sanırım model farklılığından olmadı.

Kurtarma bölümüne(Recovery partition) erişmek için bilgisayar açılırken sürekli C harfine basılı tutunuz.

İnternet Explorer 7 ( ie 7 ) 'de TreeView'in dikey çizgileri kırık kırık göüzkme problemi

TreeView'in html çıktısında div etiketinin boyutu 1 px olduğu için hatalı gösterilmektedir.
Bu div'in yüksekliğin 100% veya 20px olarak belirtirseniz probleminiz çözülecek.

And now, here is how we can sort this out:

  • Create a new style definition in your page (or create an external .css file and link it in your pages, pedending on your needs)
  • Add the following class definition: ".tree td div {height: 20px !important}" (of course without quotation marks)
  • In your TreeView component add a referende to CssClass="tree"
kaynak:
http://blogs.msdn.com/carloc/archive/2007/05/23/broken-line-in-asp-net-2-0-treeview-in-ie-7.aspx

24 Ağustos 2009

Asp.Net'de oturum açan NT kullanıcı adını tespit etme

Getting the User Name :

using three ways we can get the User Name using C#

1) System.Security.Principal.WindowsPrincipal p = System.Threading.Thread.CurrentPrincipal as System.Security.Principal.WindowsPrincipal;

string strName = p.Identity.Name;

[ OR ]

2) string strName = HttpContext.Current.User.Identity.Name.ToString();

[ OR ]

3) string strName = Request.ServerVariables["AUTH_USER"]; //Finding with name

string strName = Request.ServerVariables[5]; //Finding with index

In Above 3 Cases returnin string contains DomainName\WinNTLoggedUserName

(for Ex: Microsoft\Bill.Gates. Here Microsoft is domain Bill.Gates is Logger User Name )

Using string operations seperate the DomainName and UserName.

kaynak:

http://www.codeproject.com/KB/aspnet/How_to_NT_User_Name.aspx


21 Ağustos 2009

Stop running this script? A Script on this page is causing Internet Explorer to run slowly

Aşağıdaki uyarıyı internet explorer'da bir web sayfasında alıyorsanız:
Stop running this script? A Script on this page is causing Internet Explorer to run slowly. If it continues to run, your computer may become unresponsive. Yes / No"

Kütükten çalıştırılacak javascript ifadesinin sayısını yüksek verebilirsiniz. varsayılan olarak 5,000,000' dır.

Do this:

1. Using a Registry Editor such as Regedt32.exe, open this key:
HKEY_CURRENT_USER\Software\Microsoft\InternetExplo rer\Styles

Note If the Styles key is not present, create a new key that is called Styles.
2. Create a new DWORD value called "MaxScriptStatements" under this key and set the value to the desired number of script statements.

HOWEVER whats different is this:

Set the "MaxScriptStatements" Value to DECIMAL, then type 0 to Disable the damn box, Voila! no more "script is taking for too long" box.


kaynak:

How to set time-out period for script: http://support.microsoft.com/kb/175500

http://forums.asp.net/p/1297674/2523672.aspx
http://www.askmehelpdesk.com/internet-web/internet-explorer-stop-running-script-73040.html

ORA-01795: bir listedeki ifadelerin maksimum sayısı 1000'dir

Aşağıdaki hatayı alıyorsanız:
ORA-01795: bir listedeki ifadelerin maksimum sayısı 1000'dir
ORA-01795 Maximum number of expressions in a list is 1000.

Şu adımları uygulayabilirsiniz:
---------------------------------

maximum number of expressions in a list is 1000

Cause: More than 254 columns or expressions were specified in a list.

Action: Remove some of the expressions from the list.

----------------------------------

the problem is purely related to oracle limitations.

One possible workaround would be to split the IN clause in several parts with less than 1000 elements
and concatenate the new IN clauses with OR:

like : SELECT * FROM TableX where (TableX.column IN (?, ..., '<=1000 ?' ) OR TableX.column IN (?, ..., '<=1000 ?' ) OR ...)


------------------------------------

There is a miximum number of elements allowed in an IN list and it is 1000. Go beyond this and you get this error. I suspect toad has generated a query that exceeds this limit.

The two most common approaches to getting around this are:

1) split the workload up such that you never generate more than 1000 items in an IN list (this was suggested already)

2) join to a table that contain the list of values you want. There is no limit with this method as it is a simple join.

Good luck, Kevin

------------------------------------------

-- Instead of having:
s.userId IN (:users)
-- We will have:
(
s.userId IN (:users0) OR
s.userId IN (:users1) OR
... OR
s.userId IN (:usersN)
)

-------------------------

Kaynak:
http://codingwithcoffee.com/?p=121
http://jira.springframework.org/browse/SPR-3396
http://ordba.blogspot.com/

08 Temmuz 2009

An error occurred when trying to convert the byte array ... of RFCTYPE RFCTYPE_DATE with length 8 and decimals 0 to XML format hatası çözümü

.Net'te SAP'ye WCF tabanlı erişim yaparken Biztalk Adapter Pack V1.0 kullanıyorsanız SAP DATS veritiplerinden .NET DateTime tipine dönüştürme esnasında hatalar oluşabilmektedir. Bu hatalar genelde SAP'den gelen DATS tipindeki datanın null, 00000000, 99999999 gibi min,max değerleri, uygun olmayan tarih biçinde dönüş olduğunda .NET tarafında dönüştürme olduğunda hataya neden olmaktadır. Bu problem için Microsoft, Adapter Pack V1.0 için yama yayınladı ve bu hatalar için parametresel değer atayarak aşılması sağlandı.

Yama indirme : http://support.microsoft.com/kb/954539/en-us

kaynak:
http://biztalkia.com/blogs/ninocrudele/archive/2009/02/12/wcf-sap-error.aspx
http://social.msdn.microsoft.com/Forums/en-US/biztalkr2adapters/thread/b2b2450a-c5dd-471f-87ff-fb686e4a06c2
The “DataTypesBehavior” binding property in the SAP Adapter: http://blogs.msdn.com/adapters/archive/2008/08/13/the-datatypesbehavior-binding-property-in-the-sap-adapter.aspx

.Net'te SAP RFC'ye erişmek için kullanılan WCF tabanlı erişimde VS 2008'in sapBinding parametresini tanınmaması

Invalid binding warning when using the adapter in Visual Studio 2008

Problem

When you use the adapter to create an application in Visual Studio 2008 and you open the configuration file (app.config) generated by the adapter, you see a warning similar to the following:

The element 'bindings' has invalid child element 'sapBinding'. List of possible elements expected: 'basicHttpBinding, customBinding, ...

Cause

This warning appears because the SAP adapter binding, sapBinding, is not a standard binding shipped with the Windows Communication Foundation (WCF).

Resolution

You can safely ignore this warning.

kaynak:
http://msdn.microsoft.com/en-us/library/dd788590.aspx

.Net'ten SAP RFC çağırırken MaxItemsInObjectGraph değerini artırma

RFC metodundan dönen veriler çok fazla ise aşağıdaki hatayı verecektir:

Maximum number of items that can be serialized or deserialized in an object graph is '65536'.
Change the object graph or increase the MaxItemsInObjectGraph quota.

Bu değeri artırmak için :

Error while retrieving XML with more than 65,536 nodes

Problem

The adapter gives the following error while retrieving XML output that has more than 65,536 nodes.

Maximum number of items that can be serialized or deserialized in an object graph is '65536'.
Change the object graph or increase the MaxItemsInObjectGraph quota.

Cause

The adapter cannot serialize and deserialize an object with more than 65,536 items.

Resolution

You can fix this issue by setting the maxItemsInObjectGraph parameter in either of the following two ways:

  • Set this parameter by changing the maxItemsInObjectGraph parameter in the ServiceBehavior attribute on your service class.

  • Add the following to your application's app.config file.







A sample app.config will look like the following.












contract="IOutboundContract" name="sap_ICalculator" />



Kaynak:
http://msdn.microsoft.com/en-us/library/dd788590.aspx

01 Temmuz 2009

AJAX ve Güvenlik Sorunları

XSS'i engellemek, yani kullanıcıların web sitenize gönderdiği içeriği filtrelemek için Microsoft tarafından ASP.NET geliştiricileri için hazırlanmış olan Anti-Cross Site Script kütüphanesini kullanabilirsiniz.

Kaynak:
http://daron.yondem.com/tr/PermaLink.aspx?guid=4ca7f74e-dcc3-4f5e-8b97-3b84d6ca2d44

30 Haziran 2009

C#: How to sort list of objects by multiple columns

Kaynak:
http://tgynther.blogspot.com/2008/10/c-how-to-sort-list-of-objects-by.html

http://69.10.233.10/KB/recipes/Sorting_with_Objects.aspx

AJAX kullandıgınız bir ASP.NET uygulamasında JS ile yeni pencere açmak

Sanırım ASP.Net de Response.Redirect kullanarak yeni bir pencere açtırmanın bir yolunun olmadıgını biliyorsunuz. Eger bir event gerçekleştiginde yeni bir sayfa açmak ama bunu _blank yani yeni bir pencerede açtırmak istiyorsanız, sanki popup gibi, bir tek yolunuz var oda JScript kullanmak.

Herhangi bir anda JS ile window.open kullanarak yeni pencere acacaksanız C# da şunu kullanmalısınız :

string jskodumuz= @"";

ClientScript.RegisterStartupScript(GetType(),"YeniPencere",jskodumuz);

Ama eger AJAX kullanıyorsanız UpdatePanel buna izin vermeyecektir, siz o zaman bu kodu kullanıyorsunuz:

ScriptManager.RegisterClientScriptBlock(this.UpdatePanel1, typeof(string), "yeniac", "window.open(\"kkformu.aspx\",null,\"height=900,
width=700,status=yes,toolbar=no,menubar=no,location=no\");" , true);


Kaynak:

http://www.celiker.com/post/2007/09/15/AJAX-kullandc4b1gc4b1nc4b1z-bir-ASPNET-uygulamasc4b1nda-JS-ile-yeni-pencere-acmak.aspx


Modal pop up with in update panel : http://www.codeasp.net/blogs/vinay_jss/microsoft-net/118/modal-pop-up-with-in-update-panel

Visual Studio 2008 ve ASP.NET 2.0 AJAX Extensions 1.0 kullanımı

Visual Studio 2008 ve ASP.NET3.5 ile beraber AJAX Extensions'ın artık dahili olduğundan daha önceki yazılarımda bahsetmiştim. Diğer yandan Visual Studio 2008'in Multi-Targeting özelliği sayesinde ASP.NET 2.0 sitelerini de Visual Studio 2008 içerisinde hazırlama şansımız var. Tüm bunları yan yana koyduğumuzda akla şu soru geliyor "ASP.NET 2.0 ile AJAX Extension kullanacağımız bir site yaratabilir miyiz?" Eskiden Visual Studio 2005 ile yarattığınız AJAX Enabled Web Site'ları Visual Studio 2008 ile açarak düzenleyebiliyorsunuz fakat maalesef Visual Studio 2008 içerisinde .NET Framework 2.0 ile beraber ASP.NET 2.0 ile AJAX Extensions 1.0 destekli siteler yaratmak için gerekli proje şablonları gelmiyor.

O nedenle yukarıda bahsettiğim özelliği Visual Studio 2008'e entegre etmek amacıyla ASP.NET 2.0 AJAX Exntensions proje şablonlarının yükleme paketi ayrı olarak Microsoft tarafından duyuruldu. Hemen aşağıdaki adresten indirerek bilgisayarınıza yükleyebilirsiniz. Tabi bunun öncesinde bilgisayarınızda Visual Studio 2008 ve AJAX Extensions 1.0 sürümünün yüklü olduğunu varsayıyorum.

http://www.microsoft.com/downloads/details.aspx?FamilyID=5c7df430-1c34-40d2-b6ec-81353b5fcf2e&displaylang=en

Yüklemeyi tamamladıktan sonra Visual Studio 2008 içerisinde .NET Framework 2.0'ı seçtiğinizde aşağıdaki şekilde proje şablonları arasında "AJAX 1.0-Enabled ASP.NET 2.0 Web Site" da seçebileceksiniz.

Kaynak:
http://daron.yondem.com/tr/PermaLink.aspx?guid=ec34028c-d7ea-4c8d-83e6-23546676b17d


26 Haziran 2009

Javascript kütüphane karşılaştırması, asp.net geliştiricileri için

kaynak:
JavaScript frameworks comparison table: http://blogs.southworks.net/jdominguez/2008/01/javascript-frameworks-comparison-table/

Some weeks ago we did a quick research about the different JavaScript frameworks/libraries out there. We didn’t take into account every framework on the web, and chose especially those that can integrate easily with ASP.NET WebForms.

I’d thought I’d share the results with the community in the form of a comparison table. You can use the results as you wish, but I warn you this is by no means exhaustive.

List of frameworks/libraries we considered

21 Haziran 2009

Ado.Net 2.0 Transaction kullanımı


Kaynaklar:
Ado.Net 2.0' da Transaction Kavramı: http://www.csharpnedir.com/makalegoster.asp?MId=487
Implementing TransactionScope Using .Net 2.0: http://www.codeproject.com/KB/dotnet/TransactionScope20.aspx

TransactionScope kullanırken timeout(zamanaşımı) hatasının çözümü

transaction çalışmasının .net'de varsayılan zaman aşımı süresi 60 saniye'dir. Eğer sql işlemleriniz fazla zaman alıyorsa bu süreyi artırmamız gerekmektedir. Bunun için iki yöntem vardır. Ya transactionscope nesnesini oluştururken timespan parametresini vermektir veya web.config içinden düzenlemektir.

We can also define the timeout in the application configuration (web.config or app.config) as shown

We need to define the max timeout setting at machine level in machine.config



Buralarda kullanılan timeout= saat:dakika:saniye şeklinde atanmaktadır.

Kaynaklar:

Transaction Timeout in System.Transactions: http://sankarsan.wordpress.com/2009/02/01/transaction-timeout-in-systemtransactions/

Transaction timeout: http://aselai.blogspot.com/2008/09/transactionscope-timeout.html

TransactionScope Timeout: http://codemetropolis.com/archive/2008/06/14/transactionscope-timeout.aspx

http://www.dotnetkicks.com/adonet/TransactionScope_timeout


12 Haziran 2009

Asp.Net 2.0 web sayfalarında Page olayları ve çalışma sırası

kaynak:

Page Events in ASP.Net 2.0: http://www.devasp.net/net/articles/display/438.html

How to: Create Event Handlers in ASP.NET Web Pages: http://msdn.microsoft.com/en-us/library/6w2tb12s.aspx

09 Haziran 2009

Regular Expression oluşturma ve test etme

kaynak:
Expresso - A Tool for Building and Testing Regular Expressions:
http://www.codeproject.com/KB/dotnet/expresso.aspx

Windows servis yazma

kaynak:
Simple Windows Service Sample:
http://www.codeproject.com/KB/dotnet/simplewindowsservice.aspx

.Net ile SAP'ye bağlanma ve kullanma

Kaynak:
http://www.huseyinakturk.net/2009/01/a-comprehensive-example-for-connection-to-sap-with-visual-studio-2008/

http://wiki.asp.net/page.aspx/387/connecting-sap-data-from-aspnet/

http://help.sap.com/saphelp_nw04/helpdata/EN/51/d5470940fd564b888f4beb9523fa6c/content.htm

http://www.kayabuyukcelen.com.tr/blog/?p=116

http://www.thespot4sap.com/Articles/SAP_Netweaver_Creating_Web_Apps.asp

http://www.codeproject.com/KB/dotnet/SAP_NET_Connector.aspx

http://www.bilgininadresi.net/Madde/3284/Sap%E2%80%99%C4%B1n-Yap%C4%B1s%C4%B1

05 Haziran 2009

Visual Studio 2005 veya 2008 ile Setup Oluşturma

kaynak:
http://www.yazilimgunlugu.com/visual-studio-2005-ile-setup-olusturma-makalesi/201.aspx

http://www.thejohnsonblog.com/2008/02/04/visual-studio-2008-setup-projects/

http://www.dreamincode.net/forums/showtopic58021.htm

http://nsis.sourceforge.net/Main_Page

Google ile derin arama

Kaynak:

http://ruchitsurati.net/post/Searching-deep-real-deep-into-web2c-A-neat-google-trick.aspx

Windows Live Messenger ile Web Sitenizde Ücretsiz Canlı Görüşme çözümü

kaynak:

Windows Live messenger, Straight in your Blog - A smart and Free Live-Chat solution.
http://ruchitsurati.net/post/Windows-Live-messenger-Straight-in-your-Blog.aspx

Coolite - ExtJs For ASP.NET 2.0

Sunucu ve istemci taraflı kütüphanelerin evliliği.

kaynak:
http://ruchitsurati.net/post/Coolite-ExtJs-For-ASPNET-20.aspx

.docx dokümanları nasıl pdf dosyasına dönüştürülür


Kaynaklar:
Saving Word 2007 Documents to PDF and XPS Formats:
http://msdn.microsoft.com/en-us/library/bb412305.aspx



03 Haziran 2009

Sql string bilgileri

http://www.sqlstrings.com

Bu siteden her türlü bağlantı bilgilerini bulabilirsiniz.

Asp.net Web File Manager

A single page ASP.NET file management utility:
http://www.codeproject.com/KB/aspnet/WebFileManager.aspx

Building a Vista Style Folder Browser with ASP.NET 3.5 and a Custom Hierarchical DataSource Control:
http://mattberseth.com/blog/2008/03/building_a_vista_style_folder.html

File Browser example:
http://www.obout.com/grid/grid_filebrowser.aspx

02 Haziran 2009

Querystring ile parametre gönderme

Hataya engel olmayacak şekilde url adresinde paramatre gönderebilmek için Server.UrlEncode() metodununu kullanın:

private void btnSubmit_Click(object sender, System.EventArgs e){Response.Redirect("WebForm2.Aspx?" + "Name=" + Server.UrlEncode(this.txtName.Text) + "&LastName=" + Server.UrlEncode(this.txtLastName.Text)); }

Kaynak:
http://www.codeproject.com/KB/aspnet/QueryString.aspx

01 Haziran 2009

MVC(Model View Contoller) , MVP(Model View Presenter) yazılım geliştirme yöntemleri

Artık yeni teknolojilerle pratik yapma imkanım oluyor.

Kaynaklar:
http://www.cihataltuntas.com/?p=204
http://www.codeproject.com/KB/aspnet/mvp_asp_net_net_remoting.aspx
http://www.bsenyurt.com/
http://www.csharpnedir.com/makalegoster.asp?MId=847

SQL Server'dan SQL Script çıktısı alma

Bugün visual studio 2008 kuruluma yaparken Database Publishing Wizard aracının da yüklendiğini gördüm. vs 2008 sp1 ile de güncelleme sürümü yüklenmektedir. SQL Server'dan sql script çıktısı almaya yarayan ve Microsoft'un geliştirdiği bir araçtır.

Detaylı bilgiler:
http://daron.yondem.com/tr/PermaLink.aspx?guid=d865738a-4fb1-4101-b289-518215a39dbe

Farklı browser'larda web sayfaları nasıl görünüyor.

Microsoft sonunda bu konuya el atarak önemli bir problemi daha çözmeye niyetli.

Microsoft have announced a new product for web developers and designers to view websites in multiple browsers without having to have the software installed.

The product is called Expression Web SuperPreview and it can be downloaded from the Microsoft website.

Depending on the version of Internet Explorer you have installed on your computer, you can view sites in IE6, IE7 and IE8 and the full version is expected to support non-IE browsers including Safari, Chrome and Firefox.

Kaynak:
http://www.twentysteps.com/ie7-emulator/
http://tech.yahoo.com/blogs/null/8255
http://expression.microsoft.com/en-us/dd565874.aspx

Sql injection engelleme

Projelerde sql injection'ı engelleme çok önemli bir husustur. Faydalı olabileceğini düşündüğüm kaynaklar:

SQL Injection Ataklarından Nasıl Korunuruz?: http://www.csharpnedir.com/makalegoster.asp?MId=410