17 Ara 2006 C# Settings(Ayarlar) Dosyasının Kullanımı Kategori: C#.NET Etiketler: C#C# 2.0 0 Yorum Merhaba arkadaşlar bu makalemizde C# içerisinde Settings dosyalarının nasıl kullanıldığına göz atacağız.Giris .Net FrameWork 2.0 oturum ve uygulama arasında kalan degerlere erismemize ve yeni degerler olusturmamıza izin verir. Bu degerler "Settings" olarak adlandırılır. Settings dosyası kullanımına ihtiyaç duyulan uygulama bilgilerini yada kullanıcı ayarlarını temsil eder. Örnegin; uygulamanın renk seması için kullanıcı ayarlarını saklayan ayarları olusturabiliriz. Yada uygulamada kullanılan bir database'e belirlenen bir ConnectionString''i saklayabilirsin. Settings(Ayarlar) kullanıcıların ayarlarını saklayan profilleri olusturmamıza ve kodun uygulama dısında olan bilgilerine erismemize izin verir. Uygulama Ve Kullanıcı Ayarları Settings'lerin 4 adet özelligi vardır; 1. Name: Çalısma Zamanında ayarın degerine erismek için kullanılan addır.2. Type: Ayarları temsil eden .Net Framework tipidir. Kullanıcı ayarlarını saklar.3. Scope: Çalısma zamanında ayarlara nasıl erisilecegini temsil eden özelliktir.4. Value: Ayarlara erisildiginde geriye döndürülecek olan degerdir. Yeni Bir Settings Dosyası Olusturmak için; 1. Projemiz üzerinde sag tıklayıp, Add New Item 2. Settings Dosyasını seçeriz ve projemize ekleriz. Settings dosyasını projemize ekledik, görünüm olarak biraz inceleyelim; Yukarıda da belirttigimiz gibi Settings dosyalarının 4 adet özelligi var. Name, Type, Scope, Value. Artık örnegimize geçelim ve olusturdugumuz Settings dosyasını kullanalım. Örnek Örnegimizde northwind database'ne baglanıp connection string'i Settings dosyası içerisinden çagıracagız. Formumuzun baslıgını, arka plan rengini ve font adını settings doyası içerisinden alacagız. Formumuzun üzerine bir adet grid ekleyelim. Bu grid içerisinde Categories Tablosundaki kayıtları listeleyecegiz. Simdi Kayıtlarımızı listeleyecek kodları yazalım. using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using System.Data.SqlClient; namespace SettingsFile { public partial class Form1 : Form { public Form1() { InitializeComponent(); } SqlConnection Cnn; SqlDataAdapter Dadp; DataSet Dset; private void Form1_Load(object sender, EventArgs e) { Cnn = new SqlConnection(sem.Default.ConnectionString.ToString()); // ConnectionString Degerini Settings dosyası içerisinden çagırdık. Dadp = new SqlDataAdapter("Select * from Categories",Cnn); Dset = new DataSet(); Dadp.Fill(Dset, "table"); dataGridView1.DataSource=Dset.Tables[0]; } } } ConnectionString'i settings dosyası içerisinden kullandık. Simdi Form baslıgımızı, form backgroundunu ve gridimizin font ayarını settings dosyasından yapalım this.Text = sem.Default.FormBaslıgı.ToString(); this.BackColor = sem.Default.ArkaPlanRengi; this.Font = sem.Default.FormFondu; Evet tüm ayarlarımızı settings dosyası içerisinden ayarladık. Görüldügü gibi form baslıgı, background rengi ve font family settings dosyası içerisinde belirledigimiz degerelere göre geldi.Bu makalenin de sonuna geldik, baska bir makalede görüsmek üzere basarı ve iyi günler dilerim. Sem GÖKSU MCP | MCAD.NET | MCTS Örnek Kodlar için mail adresimi kullanabilirsiniz askisem@hotmail.com Kaynaklar http://msdn.com
17 Ara 2006 *.BAT Dosyası İle SQL Server Üzerinde Veritabanı Oluşturma Kategori: SQL Server Etiketler: SQL ServerSQL Server 2005SQL Server 2008 2 Yorum Merhaba arkadaşlar bu makalemizde SQL Server üzerinde bat dosyası aracılığı ile veritabanı oluşturma işleminin nasıl yapıldığına bakacağız.Kendi kisisel bilgisayarımızda ya da firma bilgisayarları üzerinde tasarladıgımız veritabanını müsteri ya da talep edilen noktaya tasırken bir takım sıkıntılar yasarız. Çünkü veritabanını tasırken olusturmus oldugumuz index yapılarını, store procedure, trigger vb. gibi bilgileri kaybedebiliriz. Eger ki birden çok noktaya kurulum yapılması gerekiyorsa bu sıkıntılar daha da artar. Tek nokta için olusturulan veritabanının backup'ını alarak sorunu biraz olsun çözülebilir ama eger birden çok noktaya kurulum yapılıyorsa bu da çözüm olmaz. Çünkü kullanıcı program CD'ni takıp ve setup dosyasını çalıstırıp bir an önce programını kurup kullanmak ister. Bu sıkıntıları gidermek için olusturdugumuz veritabanının script dosyalarını çalıstıracak bir Bat dosyası hazırlayabiliriz. Bu BAT dosyasını da hazırlamıs oldugumuz uygulamada ön-kurulum olarak kurdurarak tasarladıgımız veritabanını istedigimiz noktaya kolayca tasıyabiliriz. Konu ile ilgili örnek bir uygulama yapalım. QueryAnalyser Üzerinde bir DataBase ve bu database'e baglı tablolar olusturalım. Daha sonra script dosyalarını çalıstıracak BAT dosyasını hazırlayalım. Örnek Bunun için ilk olarak Query Analyser ya da SQL SMO açalım. Örnek bir veritabanı olusturalım ve olusturacagımız bu scripti kaydedelim. (CreateDatabase.sql ) Simdi bu tabloya ait Tablolarımızı olusturalım ve yine kaydelim.(CreateTable.sql ) Script Dosyalarını olusturdugumuz dosyanın içine gelip uzantısı BAT olan bir dosya yaratalım. Olusturdugumuz bu doya üzerinde sag tıklayarak düzenle diyerek Notepad da açalım. Içerisine asagıdaki kodları yazalım. echo off cls // Ekranı Temizle type start.txt // Baslangıç için Ekrana verilecek Mesaj pause > Kurulum.log // Kullanıcının devam etmesi için beklet osql -E -S%1 -n -iCreateDatabase.sql>>Kurulum.log //Scripti çalıstırır ve sonucunu kurulum.log dosyasına yazar osql -E -S%1 -n -iCreateTable.sql>>Kurulum.log //Scripti çalıstırır ve sonucunu kurulum.log dosyasına yazar cls // Ekranı Temizle type End.txt // Sonuç için Ekrana verilecek Mesaj pause >> Kurulum.log // Kullanıcının devam etmesi için beklet Del Kurulum.log // Hata vermemisse log dosyasını sil Yukarıda bahsettigimiz start.txt yani baslangıç mesajı için Bat dosyasını olusturdugumuz yerde Start.txt isimli bir dosya yaratalım ve içerisine Baslangıç için bir mesaj yazalım. Benim örnegim asagıdadır. ****** ********************************************************* ***** Kurulumu Baslatmak icin bir tusa basiniz! ***** ********************************************************* **************** Sem Goksu ************************** ********************************************************* ********************************************************* ****** Yine script dosyamız görevini tamamladıktan sonra kullanıcıyı bilgilendirmek için bat dosyasını olusturdugumuz yere end.txt adında bir dosya olusturalım ve sonuç için bir mesaj yazalım. Benim örnegim asagıdadır. ****** ********************************************************* ***** Kurulum Tamamlandi, Tebrikler! ***** ********************************************************* ****** Bunları yaptıktan sonra Kur.Bat dosyamızı çalıstıralım ve dosyamızı test edelim. Dedigini yapalım ve bir tusa basalım :=) Veritabanımızın olusturuldugunu söylüyor. Birde SQL Serveri açalım ve oradan kontrol edelim. Gördügümüz gibi Veritabanımız olusturulmus. Eger ki bu yaptıklarımızı bir programa ön kurulum olarak kurduracaksak Bat dosyamızı asagıdaki gibi degistirebiliriz. echo off cls osql -E -S%1 -n -iCreateDatabase.sql>>Kurulum.log //Scripti çalıstırır ve sonucunu kurulum.log dosyasına yazar osql -E -S%1 -n -iCreateTable.sql>>Kurulum.log //Scripti çalıstırır ve sonucunu kurulum.log dosyasına yazar cls Bu sekil de kurulum asamasında hiçbir uyarı vermez ve veritabanı kurulur. Bu makalenin de sonuna geldik, baska bir makalede görüsmek üzere basarı ve iyi günler dilerim. Sem GÖKSU MCP | MCAD.NET | MCTS Örnek Kodlar için mail adresimi kullanabilirsiniz askisem@hotmail.com Kaynaklar http://msdn.com
16 Ara 2006 AJAX DropShadow Extender ve Datalist ile Kullanımı Kategori: AJAX Etiketler: ASP.NETASP.NET Ajax 0 Yorum Merhaba arkadaşlar, bu makalemizde ajax control toolkit’in nesnelerinden Dropshadow extender nesnesini ele alacağız. Örnek olarak da datalist nesnesinin içerisinde nasıl kullanıldığını göreceğiz. DrapShadow Extender Açıklama DrapShadow, panel nesnesine drapshadow(kenarlarına gölge) özelligi kazandıran bir ajax nesnesidir. Aynı zamanda panel nesnesinin kenarlarını köseli olarak da gösterilebilir. Özellikleri · TargetControlID - Drop shadow özelliginin uygulanacagı kontrolün ID'si · Width - Uygulanacak DropShadow'ın pixel genisligi. Varsayılan olarak 5'dir. · Opacity - Uygulanacak olan DrapShadow'un Opacity Degeri. Varsayılan olarak .5 dir. · TrackPosition - Whether the drop shadow should track the position of the panel it is attached to. Use this if the panel is absolutely positioned or will otherwise move. · Rounded - Panel kontrolünün kenarlarının köseli olup olmayacagını belirler. True ise kenarları köseli olarak gösterilir. Kullanımı <ajaxToolkit:DropShadowExtender ID="dse" runat="server" TargetControlID="Panel1" Opacity=".8" Rounded="true" TrackPosition="true" /> Nesnemizi tanıyıp özelliklerinide inceledikten sonra bu kontrolümüzü datalist içerisinde kullanalım. Visual Studio Içerisinde Ajax tabanlı bir ASP.NET projesi olusturalım. Ben dil olarak C# Seçecegim Projemizi olusturduktan sonra örnegimizde ne yapacagımızı kısaca anlatayım. Northwind Veritabanından Categories tablosunu Datalist ile listeleyecegim. Datalist nesnesinin Itemlarına da DropShadow özelligini kazandırıp kayıtları kullanıcıya daha hos bir sekilde sunacagız. Bunun için Web formumuz üzerine 1 Datalist ve 1 panel ekleyelim. Datalist içerisinde ben CategoryID, CategoryName, Description alanlarını gösterecegim. Datalist içerisinde gösterecegim alanları belirledim simdi bu alanları HTML Table içerisinde yazalım. <table style="width: 400px"> <tr> <td style="width: 120px" valign="top"> <asp:Label ID="Label2" runat="server" Text="CategoryID" Font-Bold="True"></asp:Label></td> <td valign="top"> :</td> <td valign="top"> <asp:Label ID="CategoryID" runat="server" Text=’<%# DataBinder.Eval(Container.DataItem,"CategoryID") %>’></asp:Label></td> </tr> <tr> <td style="width: 120px" valign="top"> <asp:Label ID="Label3" runat="server" Text="Category Name" Width="115px" Font-Bold="True"></asp:Label></td> <td valign="top" > :</td> <td valign="top"> <asp:Label ID="CategoryName" runat="server" Text=’<%# DataBinder.Eval(Container.DataItem,"CategoryName") %>’></asp:Label></td> </tr> <tr> <td style="width: 120px" valign="top"> <asp:Label ID="Label4" runat="server" Text="Description" Font-Bold="True"></asp:Label></td> <td valign="top"> :</td> <td valign="top"> <asp:Label ID="Description" runat="server" Text=’<%# DataBinder.Eval(Container.DataItem,"Description") %>’></asp:Label></td> </tr> </table> Bu tabloyu Sayfamıza Ekledigimiz Panelin içerisine ekleyelim. Son görünümümüz asagıdaki gibi oldu. Not: Panel Background rengi Khaki dir. Siz istediginiz rengi verebilirsiniz. Datalist ItemTemplate Açalım ve panel Nesnemizi ItemTemplate içerisine tasıyalım. Yine Item Template içerisine bir adet DropShadow nesnesi ekleyelim. Son görünümümüz asagıdaki gibi oldu. Son olarak Kodlarımıza da bir göz atalım. <asp:DataList ID="DataList1" runat="server" Font-Names="Verdana" Font-Size="X-Small" RepeatColumns="1"> <ItemTemplate> <asp:Panel ID="Panel1" runat="server" BackColor="Khaki" Width="410px"> <table style="width: 400px"> <tr> <td style="width: 120px" valign="top"> <asp:Label ID="Label2" runat="server" Text="CategoryID" Font-Bold="True"></asp:Label></td> <td valign="top"> :</td> <td valign="top"> <asp:Label ID="CategoryID" runat="server" Text=’<%# DataBinder.Eval(Container.DataItem,"CategoryID") %>’></asp:Label></td> </tr> <tr> <td style="width: 120px" valign="top"> <asp:Label ID="Label3" runat="server" Text="Category Name" Width="115px" Font-Bold="True"></asp:Label></td> <td valign="top" > :</td> <td valign="top"> <asp:Label ID="CategoryName" runat="server" Text=’<%# DataBinder.Eval(Container.DataItem,"CategoryName") %>’></asp:Label></td> </tr> <tr> <td style="width: 120px" valign="top"> <asp:Label ID="Label4" runat="server" Text="Description" Font-Bold="True"></asp:Label></td> <td valign="top"> :</td> <td valign="top"> <asp:Label ID="Description" runat="server" Text=’<%# DataBinder.Eval(Container.DataItem,"Description") %>’></asp:Label></td> </tr> </table> </asp:Panel> <br /> <cc1:DropShadowExtender ID="DropShadowExtender1" runat="server"> </cc1:DropShadowExtender> </ItemTemplate> <HeaderStyle Font-Bold="False" /> </asp:DataList> DropShadow nesnesinin özelliklerini de belirleyelim, <cc1:DropShadowExtender ID="DropShadowExtender1" runat="server" TargetControlID="Panel1" Opacity=".25" Radius="8" Rounded="true"> </cc1:DropShadowExtender> Geriye sadece kayıtları görüntülemek kaldı. Bunun için bir void yazalım ve form loadda çagıralım. protected void DatalistDoldur() { SqlConnection cnn = new SqlConnection("Data Source=.; Initial Catalog=Northwind; Trusted_connection=yes"); cnn.Open(); SqlDataAdapter Da = new SqlDataAdapter("Select * from Categories",cnn); DataSet Ds = new DataSet(); Da.Fill(Ds, "tbl"); DataList1.DataSource = Ds.Tables[0]; DataList1.DataBind(); } protected void Page_Load(object sender, EventArgs e) { if (!Page.IsPostBack) { DatalistDoldur(); } } Artık hersey hazır, projemizi çalıstıralım, Ortaya çok güzel bir görüntü çıktı :) Bu makalenin de sonuna geldik, baska bir makalede görüsmek üzere basarı ve iyi günler dilerim. Sem GÖKSU MCP | MCAD.NET | MCTS Örnek Kodlar için mail adresimi kullanabilirsiniz askisem@hotmail.com Kaynaklar http://atlas.asp.net
16 Ara 2006 AJAX Validator Callout Extender Kategori: AJAX Etiketler: ASP.NETASP.NET AjaxASP.NET 2.0 1 Yorum Merhaba arkadaşlar, bu makalemizde ajax control toolkit’in nesnelerinden Validator Callout Extender nesnesini ele alacağız.Validator Callout Extender AçıklamaValidatorCallout nesnesi, varolan ASP.NET Valditarları genisleten bir AJAX nesnesidir. Bu kontrolü herhangi bir Validator nesnesine baglayarak kullanabilirsiniz. Validator Callout Extender Postback olmadan verilerin dogru girilip girilmedigini kontrol eder. Özellikleri · TargetControlID - Uygulanacak olan Validator Nesnesinin ID'si · Width - Görüntülenecek olan Uyarı Mesajının Genisigi · HighlightCssClass - Uyarı mesajının Sitili · WarningIconImageUrl - Hata Mesajına Ait Resmin yolu · CloseImageUrl - Kapat butonuna ait Resmin yolu Kullanımı <ajaxToolkit:ValidatorCalloutExtender runat="Server" ID="PNReqE" TargetControlID="rfMail" Width="350px" HighlightCssClass="highlight" WarningIconImageUrl="warning.gif" CloseImageUrl="close.gif" /> Örnek; Ilk olarak bir Ajax tabanlı bir Asp.net projesi olusturalım. Projemizi olusturduktan sonra örnekte yapacaklarımıza geçelim. Maillist olusturan bir sayfa tasarlayalım. Burada kullanıcı gerekli alanları doldurdu mu yada geçerli bir mail adresi girdimi girmedi mi bunları kontrol edecegiz. Projemize 3 label, 2 Textbox, 1 button, 2 adet ReguiredField Validator'ı ve 1 adette Regular Expression Validator'ı ekleyelim. Benim Tasarladıgım Form Asagıdaki Gibidir. Simdi burada ad soyad alanlarını zorunlu kılacagız ve mail alanına girilen alanında geçerli bir mail adresi olmasını saglayacagız. Ekledigimiz Validarların özelliklerini belirleyelim. <table style="width: 425px"> <tr> <td colspan="3"> <asp:Label ID="Label3" runat="server" Font-Bold="True" Font-Names="Verdana" Font-Size="X-Small" Text="E-Mail Listesine Katıl"></asp:Label></td> </tr> <tr> <td style="width: 58px"> </td> <td style="width: 54px"> </td> <td style="width: 100px"> </td> </tr> <tr> <td style="width: 58px; height: 22px"> <asp:Label ID="Label2" runat="server" Font-Bold="True" Font-Names="Verdana" Font-Size="X-Small" Text="Ad Soyad"></asp:Label></td> <td style="width: 54px; height: 22px"> <asp:TextBox ID="TextBox1" runat="server" Font-Bold="False" Font-Names="Verdana" Font-Size="X-Small"></asp:TextBox></td> <td style="width: 100px; height: 22px"> <asp:RequiredFieldValidator ID="rfAdSoyad" runat="server" ControlToValidate="TextBox1" Display="None" ErrorMessage="Lütfen Adınızı Ve Soyadınızı Giriniz" Font-Bold="False" Font-Names="Verdana" Font-Size="X-Small"></asp:RequiredFieldValidator> </td> </tr> <tr> <td style="width: 58px"> <asp:Label ID="Label1" runat="server" Font-Bold="True" Font-Names="Verdana" Font-Size="X-Small" Text="Mail"></asp:Label></td> <td style="width: 54px"> <asp:TextBox ID="TextBox2" runat="server" Font-Bold="False" Font-Names="Verdana" Font-Size="X-Small"></asp:TextBox></td> <td style="width: 100px"> <asp:RegularExpressionValidator ID="reMail" runat="server" ControlToValidate="TextBox2" Display="None" ErrorMessage="Lütfen geçerli bi Email Adresi Giriniz" Font-Bold="False" Font-Names="Verdana" Font-Size="X-Small" ValidationExpression="\w+([-+.’]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*"></asp:RegularExpressionValidator> <asp:RequiredFieldValidator ID="rfMail" runat="server" ControlToValidate="TextBox2" Display="None" ErrorMessage="Lütfen Emalinizi Giriniz" Font-Bold="False" Font-Names="Verdana" Font-Size="X-Small"></asp:RequiredFieldValidator></td> </tr> <tr> <td style="width: 58px; height: 26px"> </td> <td style="width: 54px; height: 26px"> <asp:Button ID="Button1" runat="server" Text="Gönder" Font-Bold="True" Font-Names="Verdana" Font-Size="X-Small" /></td> <td style="width: 100px; height: 26px"> </td> </tr> </table> Validatorlarımızın özelliklerini belirledik. Ama bizim yapmak istedigimiz AJAX Validator Callout Extender nesnesi ile verilerin dogu girilip girilmedigini kontrol etmekti bunun için sayfamıza 3 adet Validator Callout Extender nesnesi ekleyelim. Eklemis oldugumuz bu nesneleri ASP.NET validatorları ile iliskilendirelim. /*Geçerli Mail Adresi girilip Girilmedigini Kontrol Edecek*/ <cc1:ValidatorCalloutExtender ID="ValidatorCalloutExtender2" runat="server" TargetControlID="reMail" Width="350px" HighlightCssClass="highlight" WarningIconImageUrl="warning.gif" CloseImageUrl="close.gif"> </cc1:ValidatorCalloutExtender> /*Adsoyad Alanına veri girilip Girilmedigini Kontrol Edecek*/ <cc1:ValidatorCalloutExtender ID="ValidatorCalloutExtender1" runat="server" TargetControlID="rfAdSoyad" Width="350px" HighlightCssClass="highlight" WarningIconImageUrl="warning.gif" CloseImageUrl="close.gif"> </cc1:ValidatorCalloutExtender> /* Mail Adresi alanına veri girilip Girilmedigini Kontrol Edecek*/ <cc1:ValidatorCalloutExtender ID="ValidatorCalloutExtender3" runat="server" TargetControlID="rfMail" Width="350px" HighlightCssClass="highlight" WarningIconImageUrl="warning.gif" CloseImageUrl="close.gif"> </cc1:ValidatorCalloutExtender> Kontrollerimizi iliskilendirdikten sonra yapmıs oldugumuz sayfayı test Edelim. Simdi de hatalı bir mail adresi girelim. Ortaya görsel açıdan çok güzel bir seyler çıktı. Bu makalenin de sonuna geldik, baska bir makalede görüsmek üzere basarı ve iyi günler dilerim. Sem GÖKSUMCP | MCAD.NET | MCTS Örnek Kodlar için mail adresimi kullanabilirsiniz askisem@hotmail.com Kaynaklar http://atlas.asp.net
15 Ara 2006 Yeni Yuva Logizmo Kategori: Benden Etiketler: 4 Yorum Bundan sonraki mesleki kariyerime, tüm GSM operatörleri ile entegreli çalısan Logizmo, Blogizmo vb gibi servislere sahip olan AMVG firmasında yazılım gelistirici olarak devam edecegim.