Google Analytics İzleme

28 Mart 2010

Yeni Silverlight 3 Uygulaması açınca oluşan "Object reference not set to an instance of object" hatası

Visual Studio 2008'de Yeni Silverlight 3 Uygulaması açınca,  Object reference not set to an instance of object şeklinde hata oluşmakta ve proje oluşmamakta. Çözüm için aşağıdaki komutları Visual Studio 2008 Command Prompt ekranından sırayla çalıştırmalısınız.


             devenv /ResetSettings
             devenv /ResetSkipPKGS

Kaynak:
http://forums.silverlight.net/forums/p/146794/346180.aspx

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.