Enterprise Library 5.0

Enterprise library aşağıda yer alan alt başlıklar altında gelişimini sürdüren ancak gelişen teknojiye de aynı yönde cevap veren ve Microsoft tarafından desteklenen açık kaynaklı bir uygulamadır. Bu alt başlıklar;

  • Caching
  • Configuration Sources
  • Cryptography
  • Data Access
  • Exception Handling
  • Interception
  • Logging
  • Security
  • Validation
  •  Unity

halinde listelenebilir.

Enterpirse Library, temel olarak yazılımcının daha az kod yazarak aynı işi yapması için kolaylıklar sunar. Cross Cutting Concerns ayrımını daha iyi yapmamızı ve yazılımcının sadece “neyi yazması gerekiyorsa, o’na yönelmesini” sağlayan açık kaynak kodlamanın önemini bilen ve avantajını kullanan yazılımcıların el kitabı da denilebilir.

Uygulamanın destek sayfasından uygulamayı indirebilir, Hands On Labs ları kendiniz deneyebilir, Developer Guide ile uygulamalarınıza Enterprise Library yi entegre edebilirsiniz.

Yukarıdaki alt başlıkların açıklaması ve örneklerini ilerleyen günlerde eklemeye çalışacağım…

write less and best, do more and powerfull apps

Project ‘Library’ could not be opened Visual Studio Error

Project ‘Library’ could not be opened because the Microsoft Visual C# 2008 compiler could not be created. QueryService for {…}
hatasının çözümü:

cmd >devenv /ResetSkipPkgs
komutunu çalıştırmanız yeterlidir. Sorun çözülmüş olacaktır. IDE nizi yeniden başlatıp çalışmalarınıza devam edebilirsiniz.

Herşeyi ile TinyMce Klavuzu 2

TinyMCE Kurulumu Nasıl Yapılır ve Desteklediği Diller Nelerdir ?

   Buradan indirdiğiniz paketin sayfanıza entegrasyonunun nasıl yapılacağını açıklamadan önce TinyMCE nin PHP, ASP.NET, JSP, CFM dillerinde sorunsuzca çalıştığını ve kurulumlarının hemen hemen aynı olduğunu söylemek isterim. TinyMCE nin jQuery uyumlu olduğunu ve kütüphanesinin jQuery ile de yazılmış bir versiyonunun bulunduğunu bilmenizde fayda var.

   Kuruluma başlayabiliriz artık, indirdiğiniz paketi zip ten çıkarttıktan sonra tinymce isimli bir klasör göreceksiniz, ihtiyacımız olan işlem; sayfamıza ilgili dosyayı entegre etmek ve ayarlarını yapmaktır.


basit kurulum

tinyMCE.init({
   mode : "textareas"
});

biraz daha gelişmiş kurulum more…

Herşeyi ile TinyMce Klavuzu 1

TinyMce Nedir ?

    WYSIWYG (What You See Is What You Get) “Ne görürsen onu alırsın” veya “Ne görmek istersen onu alırsın” anlamına gelen normal yazı tiplerini biçimlendirmek için kullanılan editörlerin genel adıdır ve web sayfalarının makale kısımlarında, sayfa içeriklerinin düzenlendiği kısımlarda yer alan bir metin editörüdür.

    Editörler genelde aynı özellikleri kullanmaktadırlar. Genellikle javascript ile geliştirilen editörler, kolaylıkla web sayfamıza birkaç kodla entegre olabilirler. Eklediğimizde yazılarımızın rengini, yazı tipini, hizalamaları (sağa hizala – sola hizala – ortala), kalınlıkları, italik görünümü, resim eklemeyi, video eklemeyi, müzik eklemeyi hiç bir ek materyal kullanmadan yapmamızı sağlıyor. Hepsini editörden kolaylıkla yapabilirsiniz.

   Rakipleri arasında çok başarılı bir editördür hemen rakiplerini de tanıtmadan geçmemeli : FCKeditor, Whizzywig, FreeRTE, Rich Textarea, Indite, HyperTextArea, SPAW Editor, EditThis, openWYSIWYG …

   Unutulmaması gereken en büyük özelliklerden birisi de tarayıcı uyumluluğudur. Eğer MicroSoft Internet Explorer’da düzgün çalışıp Firefox’ta hatalı çalışıyorsa bu editörü kullanmamalısınız. Bunu öğrenmenin en kolay yollarından biri, üretici web sayfasında desteklediği tarayıcılara bakmanız olacaktır. TinyMCE kendini bu noktada kanıtlamış bir editördür.

   Versiyon 3.0 ile 2007 de tanıştığımız bu editör, aynı zamanda adını WordPress ile duyurması ile de bilinmektedir. Şu an 3.3.7 sürümüne sahip olan bu editörün zaman içerisindeki değişimini buradan inceleyebilirsiniz.

Windows da yazıcıdan silinmeyen işler

Pek çoğumuzun başına gelmiş bir olaydır, yazdıramadığınız bir dökümanın yazıcıda takılı kalması, işte bunun çözümü :


net stop spooler
del %systemroot%\system32\spool\*.spl /s
del %systemroot%\system32\spool\*.shd /s
net start spooler

SEO Dünyasında Kullanılan Kısaltmalar

Yeni Eklenenler:
•TLA – Text Link Ads :
Sitedeki belli anahtar kelimeler üzerine reklam alabileceğiniz bir reklam sistemi
•SMM – Social Media Marketing : Facebook, My Space gibi yerler için pazarlama
•SMO – Social Media Optimization
•LPO: Landing Page Optimization : İniş Sayfası iyileştirmesi (Kullanıcının siteye ilk girdiği sayfa)
•GWT: Google Webmaster Tools : Google Webmaster araçları
•CMS: Content Management System : içerik yönetim sistemi (Ör: Joomla)

Zaten var olanlar :
•BL = Backlink : Geri bağlantı more…

Category: Beğendim, Web  Tags: ,  Leave a Comment

Google AJAX Kütüphaneleri

Google’ın, popüler açık kaynak AJAX kütüphanelerini kendi CDN (Content Distributon Network) üzerinde bulunduruyor olması tartışmasız büyük kolaylık. Üstelik kullanması da çok kolay, jQuery 1.3.2 versiyonu için örnekleyecek olursak :





Peki niçin kolaylık ve nasıl bir kolaylık sağlıyor dediğinizi duyar gibiyim, açıklayayım.
- Google’ın şüphesiz yüksek hızlı CDN sayesinde scriptlere global ve hızlı bir şekilde ulaşabiliyorsunuz. Bir nevi buna gecikme süresini düşük tutmuş olmak da denilebilir.(Little latency time)
- Ajax kütüphanelerinizi başka bir sunucu üzerinde barındırmak sunucunuz için eksik bir istek anlamına gelir.
- Ajax dosyları için Google’ın içerik teslim servisini kullanmanın en büyük avantajından biri de belki kullanıcının dosyaları indirmesine gerek kalmaması.
Bir ziyaretçi sizin sitenize ait olan kütüphane dosyasını en azından bir kere yüklemek zorunda. Kullanıcının diskinde birbirinin aynısı bir çok jQuery kaynak dosyası olabilir. Buna rağmen her yeni site için bunları tekrar indirmek zorunda.
Ancak Google üzerinde barındırılan dosyalar için kaç site olursa olsun bunu sadece bir kere indirmiş olacak.

Google ın destek verdiği kütüphaneler ve versiyonları
jQuery :
1.2.3, 1.2.6, 1.3.0, 1.3.1, 1.3.2, 1.4.0, 1.4.1, 1.4.2
* 1.2.4 ve 1.2.5 versiyonları kararlı sürüm olmadıkları için sunucuda barındırılmamaktadır.

jQueryUI :
1.5.2, 1.5.3, 1.6, 1.7.0, 1.7.1, 1.7.2, 1.7.3, 1.8.0, 1.8.1, 1.8.2
* jQueryUI den önce jQuery nin yüklenmesi gerektiğini unutmayınız.

Prototype :
1.6.0.2, 1.6.0.3, 1.6.1.0

scriptaculous :
1.8.1, 1.8.2, 1.8.3

mootools :
1.1.1, 1.1.2, 1.2.1, 1.2.2, 1.2.3, 1.2.4

dojo :
1.1.1, 1.2.0, 1.2.3, 1.3.0, 1.3.1, 1.3.2, 1.4.0, 1.4.1, 1.4.3

swfobject :
2.1, 2.2

yui :
2.6.0, 2.7.0, 2.8.0r4, 2.8.1

ext-core :
3.0.0, 3.1.0

chrome-frame :
1.0.0, 1.0.1, 1.0.2

webfont :
1

C# ile Sınırsız Html(ul,li) Menü (Recursive Functions)

En çok başımızı ağrıtan uygulamalardan birisi de sınırsız menü yapım işlemleridir.Dannyz arkadaşıma lazım olan bu menünün C# ile kodlanmış olan halini burda paylaşmak istiyorum.

Oracle veritabanı :

CREATE TABLE SINIRSIZ_MENU
(
  ID      INTEGER,--menü id
  ADI     VARCHAR2(20 BYTE) NOT NULL, -- menü adı
  UST_ID  INTEGER, -- menü üst id, eğer üst id yoksa değeri null olmalıdır
  URL VARCHAR(255) -- adres
)

C# kodları :

public string Sinirsizmenu(string pPrnt)
{
            var dbs = new VeritabaniBaglantiYap("thegkmnkc", "localhost", "****");
            var dt = dbs.SorguSonucu("select coalesce(M.UST_ID,0) ust_id,id,adi from sinirsiz_menu m order by m.id asc"); // DataTable
            var diziler = new Hashtable();
            var indArr = new int[dt.Rows.Count];
            for (var i = 0; i < dt.Rows.Count; i++)
            {
                var tmp = new Hashtable();
                tmp["baslik"] = dt.Rows[i]["ADI"].ToString();
                tmp["parent"] = dt.Rows[i]["UST_ID"].ToString();
                tmp["url"] = dt.Rows[i]["URL"].ToString();
                diziler[dt.Rows[i]["ID"].ToString()] = tmp;
                indArr[i] = Convert.ToInt32(dt.Rows[i]["ID"].ToString());
            }

            var hasChilds = false;
            var mnuStr = "";
            for (var i = 0; i < diziler.Count; i++)
            {
                var enm = (Hashtable)diziler[indArr[i].ToString()];
                var enim = enm.GetEnumerator(); //IDictionaryEnumerator
                enim.MoveNext();
                var anahtar = indArr[i].ToString();
                var baslik = enim.Value;
                enim.MoveNext();
                var prnt = enim.Value.ToString();
                enim.MoveNext();
                var url = enim.Value.ToString();

                if (pPrnt != prnt) continue;
                if (!hasChilds)
                {
                    hasChilds = true;
                    mnuStr += "<ul>";
                }
                mnuStr += "<li><a href="\">" + baslik + "</a>";
                mnuStr += Sinirsizmenu(anahtar);
                mnuStr += "<li>";
            }
            if (hasChilds)
                mnuStr += "</ul>";
            return mnuStr;
}

bu ilk hali, daha sonra optimizasyon yapıp yayınlayacağım yine burada, ancak istenilen yapıyı oluşturuyor şimdilik.

Parse Url in C#.NET

Regex pattern = new Regex("(?
http(s)?|ftp)://(?([A-Za-z0-9-]+\\.)*(?[A-Za-z0-9-]+\\.[A-Za-z0-9]+))+((:)?(?
[0-9]+)?(/?)(?
(?[A-Za-z0-9\\._\\-]+)(/){0,1}[A-Za-z0-9.-/]*)){0,1}");

ya da

string url = "http://my.domain.com:8000?arg1=this&arg2=that";
System.Uri uri = new System.Uri(url);

// port bilgisi
int port = uri.Port;

// host adı (my.domain.com)
string host = uri.Host;

// protokol bilgisi
string protocol = uri.Scheme;

// saf url
string cleanURL = uri.Scheme + "://" + uri.GetComponents(UriComponents.HostAndPort, UriFormat.UriEscaped);

Transact-SQL(T-SQL) MsSQL

 

   İşim gereği çok fazla sayıda veritabanı ile haşır-neşir olmaktayım. Bunlardan birisi de MsSql veritabanı. En az 500 adet tablosu olan bir veritabanının tablolarının satır ve sütunlarının içerisinde çoğu kez kaybolduğum tartışmasız bir gerçek ne yazık ki. Hele bu tabloların bir kısmında veri yoksa, boşu boşuna orda durması size daha fazla zaman kaybettirir. Bu yüzden içerisinde kayıt olmayan tabloları silmek yada adını değiştirmek için T-SQL e işim düştü. Burada cursor ve loop’lardan, değişken tanımlayıp, dinamik sorgu çalıştırmaya ve sonuçları ekranda göstermeye kadar hazır, fırından yeni çıkmış kodlarımı yayınlıyorum…

DECLARE @TABLO_ADI VARCHAR(50)
DECLARE @SORGU NVARCHAR(100)
DECLARE @KAYIT_SAYISI int

DECLARE crstab1 CURSOR FOR
SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES

OPEN crstab1

WHILE @@FETCH_STATUS = 0
BEGIN
   set @KAYIT_SAYISI=0
   FETCH NEXT FROM crstab1 INTO @TABLO_ADI
   set @SORGU='SELECT @KAYIT_SAYISI=COUNT(*) FROM '+@TABLO_ADI
   execute sp_executesql @SORGU
   if @KAYIT_SAYISI=0
   BEGIN
      set @SORGU='sp_rename '''+@TABLO_ADI+''',''A_'+@TABLO_ADI+''''
      execute sp_executesql @SORGU
   END
END

CLOSE crstab1
DEALLOCATE crstab1

more…