Oca032010

.NET Web Application'da Class ve Namespace Yapısı

Yazar: Gökhan ÖZİÇ Yayınlanma Saati: 09:17
Kategori(ler): ASP.NET | C#

.NET’de çalışırken bir web uygulaması geliştirmek istiyorsunuz. Bunun için iki tane seçeneğiniz var. Ya “New Project” deyip yeni bir web application yaratacaksınız; ya da “New Website” deyip yeni bir websitesi yaratacaksınız. Eğer projenizde kendi yazacağınız class’lar da olacaksa işler biraz değişiyor. “New Website” seçeneğiyle proje oluşturduğunuzda; yazdığınız tüm classları istediğiniz yerden rahatlıkla çağırabiliyorsunuz. Fakat “Web Application” oluşturarak çalışmaya alışık biriyseniz bu biraz daha meşakatli. Bu yazımda sizlere “Web Application” seçerek proje oluşturmaya alışmış developerlar için yazılan class’ların proje içerisinde nasıl kullanıldığını anlatacağım. File->New Project->ASP.NET Web Application yolunu takip ederek projemizi oluşturalım. Sorunun rahat anlaşılır olması için kolay bir örnekle gideceğim. Örneğin dört işlem yapan bir class oluşturmak istiyoruz. Solution Explorer’dan projemizde gerekli yere sağ tıklayıp Add->New Item->Class yolunu takip edip, class’ımıza “Basic Operations” ismini verelim ve oluşturalım. Şimdi class’ımızda kullananacağımız attribute’leri, accessor property’leri, constructor’leri ve method’ları yazalım. using System; using System.Collections.Generic; using System.Linq; using System.Web; namespace BasicOperations.App_Code { public class BasicOperations { private double a; private double b; public double A { get { return a; } set { a = value; } } public double B { get { return b; } set { b = value; } } public BasicOperations() { A = 0; B = 0; } public double Addition() { return A + B; } public double Subtraction() { return A - B; } public double Multiplication() { return A * B; } public double Division() { return A / B; } } }   Class’ımızı oluşturduk ve artık projemizde kullanabiliriz. Peki projemizde nasıl kullanalım? Onun için de default.aspx’e birkaç control ekleyelim. default.aspx sayfamız da şu şekilde olsun: <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="Deneme._Default" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" ""> <html xmlns="" > <head runat="server"> <title></title> </head> <body> <form id="form1" runat="server"> <div> <h4>Addition</h4><br /> <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox> &nbsp; + &nbsp; <asp:TextBox ID="TextBox2" runat="server"></asp:TextBox> &nbsp; = &nbsp; <asp:Label ID="Label1" runat="server"></asp:Label> <asp:Button ID="Button1" runat="server" Text="Show Result" onclick="Button1_Click" /> <br /> <br /> <h4>Subtraction</h4><br /> <asp:TextBox ID="TextBox3" runat="server"></asp:TextBox> &nbsp; + &nbsp; <asp:TextBox ID="TextBox4" runat="server"></asp:TextBox> &nbsp; = &nbsp; <asp:Label ID="Label2" runat="server"></asp:Label> <asp:Button ID="Button2" runat="server" Text="Show Result" onclick="Button2_Click" /> <br /><br /> <h4>Multiplication</h4><br /> <asp:TextBox ID="TextBox5" runat="server"></asp:TextBox> &nbsp; + &nbsp; <asp:TextBox ID="TextBox6" runat="server"></asp:TextBox> &nbsp; = &nbsp; <asp:Label ID="Label3" runat="server"></asp:Label> <asp:Button ID="Button3" runat="server" Text="Show Result" onclick="Button3_Click" /> <br /><br /> <h4>Division</h4><br /> <asp:TextBox ID="TextBox7" runat="server"></asp:TextBox> &nbsp; + &nbsp; <asp:TextBox ID="TextBox8" runat="server"></asp:TextBox> &nbsp; = &nbsp; <asp:Label ID="Label4" runat="server"></asp:Label> <asp:Button ID="Button4" runat="server" Text="Show Result" onclick="Button4_Click" /> <br /><br /> </div> </form> </body> </html> Şimdi de default.aspx.cs kod dosyasının içerisini dolduralım. Button eventleri için gerekli kodları yazalım. using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; namespace Deneme { public partial class _Default : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { } protected void Button1_Click(object sender, EventArgs e) { BasicOperations myOp = new BasicOperations(); myOp.A = Convert.ToDouble(TextBox1.Text); myOp.B = Convert.ToDouble(TextBox2.Text); Label1.Text = myOp.Addition().ToString(); } protected void Button2_Click(object sender, EventArgs e) { BasicOperations myOp = new BasicOperations(); myOp.A = Convert.ToDouble(TextBox3.Text); myOp.B = Convert.ToDouble(TextBox4.Text); Label2.Text = myOp.Subtraction().ToString(); } protected void Button3_Click(object sender, EventArgs e) { BasicOperations myOp = new BasicOperations(); myOp.A = Convert.ToDouble(TextBox5.Text); myOp.B = Convert.ToDouble(TextBox6.Text); Label3.Text = myOp.Multiplication().ToString(); } protected void Button4_Click(object sender, EventArgs e) { BasicOperations myOp = new BasicOperations(); myOp.A = Convert.ToDouble(TextBox7.Text); myOp.B = Convert.ToDouble(TextBox8.Text); Label4.Text = myOp.Division().ToString(); } } } Sizinde gördüğünüz gibi yazdığımız class’a ulaşamıyoruz. Bu durum başka şekillerde de karşımıza çıkabilir. Örneğin, projenizde iki adet class’ınız var ve birinde diğerini çağırmak istiyorsunuz. Şu durumda bunu da yapamayacaksınız. Peki şimdi ne yapabiliriz? Oluşturduğumuz class’ı bir namespace içine koyup; bu namespace’i de projemizde “Add Reference” diyerek ekleyip kullanacağız. Şimdi yeni bir Visual Studio açıyoruz ve File->New Project->Class Library yolunu izliyoruz. Böylelikle yeni bir namespace oluşturabileceğiz. Şimdi, oluşturduğumuz class library’deki class dosyasını aşağıdaki şekilde değiştirelim. using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Operations { public class BasicOperations { private double a; private double b; public double A { get { return a; } set { a = value; } } public double B { get { return b; } set { b = value; } } public BasicOperations() { A = 0; B = 0; } public double Addition() { return A + B; } public double Subtraction() { return A - B; } public double Multiplication() { return A * B; } public double Division() { return A / B; } } } Artık namespace’imiz oluşturulmaya hazır. Şimdi, oluşturduğumuz class library’i build edelim. Artık namespace’imizin dll dosyası oluştu ve kendi projemize dönebiliriz. Yapmamız gereken şey, solution explorer kısmındaki References seçeneğine sağ tıklayıp “Add Reference” demek. Daha sonra çıkan sekmelerden “Browse”u seçiyoruz ve önceden oluşturduğumuz class library projesinin içine girip sırasıyla Bin->Debug yolunu takip edip “Operations.dll” dosyasını ekliyoruz. Artık oluşturduğumuz class’ı, istediğimiz yerde using ekleyerek kullanabiliriz. Şimdi default.aspx.cs dosyasına dönelim ve using tagimizi ekleyelim. Kalan kod satırlarını yer kaplamaması için koymuyorum. using Operations; // Other statements Şimdi projemizi run edip deneyelim. Gördüğünüz gibi uygulamamız sorunsuz çalışıyor. Yeni bir yazıda daha görüşmek üzere.

Etiket(ler): , , , ,



[KickIt] [Dzone] [Digg] [Reddit] [del.icio.us] [Facebook] [Technorati] [Google] [StumbleUpon]

E-mail | Permalink | Trackback | Yazı RSSRSS comment feed 0 Yorumlar

Haz292009

MCP:.NET Framework 3.5, ASP.NET Application Development Ünvanı Sahibi Oldum

Yazar: Gökhan ÖZİÇ Yayınlanma Saati: 19:59
Kategori(ler): ASP.NET | C# | Kuruluşlar | MSSQL | Web Service | XML

     Merhaba;      Microsoft DreamSpark programı, 30 Haziran 2009 tarihine kadar DreamSpark keyleri ile elde edilebilen Voucher Number’lar ile bir kereye mahsus herhangi bir Microsoft sertifika sınavına bedava girme hakkı vermişti. Bende bu fırsattan yararlandım ve bugün BilgeAdam’da girdiğim 070-562 Microsoft .NET Framework 3.5, ASP.NET Application Development sertifika sınavını verip MCP ünvanı sahibi oldum. Aslında potansiyel bir MCTS ünvanı adayı da oldum denebilir. Hep girmek istediğim bir sertifika sınavına DreamSpark programı sayesinde girebildim. Sıradaki hedefim ise MCTS ünvanını da alabilmek için 070-536 sınavını da vermek.

Etiket(ler): , , , ,



[KickIt] [Dzone] [Digg] [Reddit] [del.icio.us] [Facebook] [Technorati] [Google] [StumbleUpon]

E-mail | Permalink | Trackback | Yazı RSSRSS comment feed 7 Yorumlar

Haz032009

Haziran Ayında 12 Tane Silverlight 3.0 Online Semineri

Yazar: Gökhan ÖZİÇ Yayınlanma Saati: 15:29
Kategori(ler): C# | Kuruluşlar | Teknoloji | Webiner

     Haziran ayı, tatile gidemeyen ya da henüz gitmeyen, ve kendini geliştirmek isteyen yazılımcı ya da yazılımcı adayları için güzel bir fırsata dönüşüyor. Haziran ayı boyunca Silverlight hakkında Daron Yöndem tarafından 12 tane online Silverlight 3.0 semineri verilecek. Seminerlerle ilgili detaylar şu şekilde: Silverlight'a Giriş - 8 Haziran, 21.00 Bu webinerde Silverlight nedir sorusuna cevap verirken mimari yapısına bakarak Silverlight dünyasına bir giriş yapacağız. Silverlgiht projeleri nasıl oluşturulur,nasıl yayınlanır, XAML nedir? ve "Neden Silverlight" gibi soruların cevapları da bu webinerde. https://www.livemeeting.com/cc/usergroups/join?id=GFRH8M&role=attend Silverlight ile Animasyonlar - 9 Haziran, 21.00 Animasyon mantığını kavrayacağımız bu webinerde ilk olarak Expression Blend arayüzüne bakarak animasyonlarının Blend tarafında nasıl oluşturulabildiğine göz atacağız. Sonra bu animasyonların programatik olarak yaratılmasını ve kontrollerini inceleyerek Silverlight tarafında bir animasyon uzmanı olacağız. https://www.livemeeting.com/cc/usergroups/join?id=6GRJPM&role=attend Layout Kontrolleri ve Dinamik Arayüzler, 10 Haziran, 21.00 Silverlight içerisinde istediğiniz görsel arayüzü oluşturabilmek için arayüz oluşturma esnasından kullanabileceğiniz Layout kontrollerini çok iyi tanımanız gerekir. Diğer yandan dinamik olarak tüm nesneleri yaratbilmeniz, bu nesnelerin birbiri ile konuşabilmesi ve projenizi doğru biçimde UserControl yapıları ile şekillendirmeniz de şart. İşte bu webinerde bu konulara değineceğiz. https://www.livemeeting.com/cc/usergroups/join?id=PBRM8P&role=attend Kontrol Şablonları ve VisualStateManager, 11 Haziran, 21.00 Standart kontroller arasında sıkışmayın ve kontrollerinizi tamamen baştan yaratın. Hatta bu tasarımları tekrar ve tekrar kullanın. Bu webinerde silverlight kontrollerinin şablonlarının değiştirilmesini, Template Binding mekanizmasını ve visual State Manager'ın kullanımını Custom State yapıları ile beraber inceleyeceğiz. https://www.livemeeting.com/cc/usergroups/join?id=R8JSQH&role=attend Silverlight içerisinde Veri Erişimi, 12 Haziran, 21.00 İster klasik web servisleri kullanın, ister WCF servisleri veya ister Socket üzerinden haberleşin hepsinin de kendine göre avantaj ve dezavantajları var. Gelin hepsinin de Silverlight tarafındaki detaylarını beraber inceleyip Silverlight uygulamalarımızı veri ile tanıştıralım. https://www.livemeeting.com/cc/usergroups/join?id=GH9T5W&role=attend Offline/Online/Desktop çalışma yapıları, 15 Haziran, 21.00 Silverlight 3.0 ile beraber uygulamalarınızı masaüstüne birkaç tıklama ile taşıyabilirsiniz. Peki hem masaüstünde hem webde hem online hem offline çalışırken tüm bu sistemi, verilerinizi nasıl kontrol edeceksiniz. Bu webinerde farklı çalışma yapılarını göz atarken verilerimizi IsolatedStorage içerisinde saklayacağız. https://www.livemeeting.com/cc/usergroups/join?id=QTZH9R&role=attend İş Uygulamaları Yaparken Silverlight, 16 Haziran, 21.00 Animasyonlar hoştur, güzeldir ama herşey değildir. DataGrid'ler, Comboboxlar, Calendar'lar bir araya girdiğinde hepsinden bir iş uygulaması arayüzü yaratıp kontrol etmeye ne dersiniz? Bu webinerde hep beraber bir iş uygulamasının ekranını hazırlayacağız. https://www.livemeeting.com/cc/usergroups/join?id=BGN6BT&role=attend RIA Services, 17 Haziran, 21.00 Farklı bir bakış açısı ile Silverlight uygulamalarınızdan veritabanına erişimine çocuk oyuncağına dönüştürmek ister misiniz? RIA Services sadece verinin taşınmasını değil aynı anda kendi kontrolleri ile düzenlenmesini de kolaylaştırıyor. Nasıl olacağını merak ediyorsanız bekleriz. https://www.livemeeting.com/cc/usergroups/join?id=P9KQ6B&role=attend Silverlight projelerinde SEO, 18 Haziran, 21.00 Arama motorlarına dair optimizasyonların çoğumuz için önemli. Silverlight projelerinde özellikle asenkron veri erişimi nedeniyle söz konusu veriye arama motorları ulaşamıyor. Peki ya bir çözümü varsa? Tabi ki o çözümü paylaşma vakti. https://www.livemeeting.com/cc/usergroups/join?id=Q6H2G7&role=attend Video Aşkına! Canlı/Cansız Yayın, 19 Haziran, 21.00 İnternette televizyoz izlemek veya cansız kayıtları yayınlamak, amacınız ne olursa olsun video konusunda Silverlight çok güçlü. Bu webinerde Silverlight ile canlı yayın, Media Services ayarları, Adaptive Streaming, cansız yayın ve Video Player hazırlanması gibi konulara değineceğiz. https://www.livemeeting.com/cc/usergroups/join?id=BNPK36&role=attend DeepZoom Uygulamaları, 22 Haziran, 21.00 Yaklaştıkça daha çok detay görmek isteyenlerin tarzı DeepZoom uygulamalarını hızlı bir şekilde geliştirmenin yanı sıra sıfırdan DeepZoom uygulamalarını yazmak, uygulamaları özelleştirmek ve veri bağlantısı yaparak dinamik DeepZoom projeleri yaratmak isteyenler bu webineri kaçırmasın. https://www.livemeeting.com/cc/usergroups/join?id=BZFCH9&role=attend Tarayıcı Entegrasyonu, 23 Haziran, 21.00 Silverlight ile tarayıcı arasındaki ilişkiyi inceleyeceğimiz bu webinerde Silverlight tarafındaki C#/VB kodunuz ile DOM entegrasyonunun yanı sıra tam ekran uygulamaları, ön yükleme ekranlarını ve RunTime yükleme ekranlarını özelleştirmeye göz atacağız. https://www.livemeeting.com/cc/usergroups/join?id=3GZKMH&role=attend        Daron Yöndem’in de dediği gibi. Haziran ayı; Silverlight 3.0 öğrenme ayı.

Etiket(ler): , ,



[KickIt] [Dzone] [Digg] [Reddit] [del.icio.us] [Facebook] [Technorati] [Google] [StumbleUpon]

E-mail | Permalink | Trackback | Yazı RSSRSS comment feed 0 Yorumlar

May162009

Havayolu Şirketi Bilet Rezervasyon Sistemi

Yazar: Gökhan ÖZİÇ Yayınlanma Saati: 06:56
Kategori(ler): ASP.NET | C# | MSSQL | Proje | Web Service | XML

     Web Development dersinin dönem projesini sonunda tamamladım. Ufak tefek eksiklikleri olsa da projem şu anda sorunsuz çalışıyor. Aslında çoğunuzun aklına neden daha yeni ve farklı birşey yapmadın diye bir soru gelebilir. Bunun nedeni, ASP.NET’e ve C#’a biraz daha hakim olabilmek ve öğrenebilmekti. Bu yüzden yapılmış ve birçok örneği bulunan bir sistem seçtim. Böylelikle öğrenme sürecimde bana kaynak olabilecek birçok imkanım oluştu.      Projem, yazının başlığından da anlaşılacağı üzere bir bilet ayırtma sistemi. İnternet üzerinden bir havayolları şirketinin sistemine girip, üye olup, istediğiniz uçuşa istediğiniz tarihe bay ya da bayan, istediğiniz koltuğa bilet ayırtabiliyorsunuz. Kullandığım teknolojiler ASP.NET, C#, XML, MSSQL ve Web Service’ler.      Sistemde karşılaştığım en büyük sorun aslında, kullanıcının keyfi bilet ayırtmasını engellemekti. İnsanların çocukken rastgele numara çevirip birilerini işletmeye çalıştığı gibi, bazı kullanıcılar da keyfi bilet ayırtmaları yapabilir. Bunun önüne geçmek için web service kullanmaya karar verdim. Oluşturduğum web service sayesinde, sisteme kayıt esnasında kullanıcıdan TC Kimlik No’su isteniyor. Sorgulama düğmesi ile bu TC Kimlik No sayesinde, web service’den kişinin ad ve soyadı çekiliyor ve kayıt olurken ad ve soyadın yazılması gereken textbox’lar otomatik olarak dolduruluyor. Zaten kayıt sayfasına girildiğinde ad ve soyad textbox’ları disabled halde karşımıza geliyor. Böylelikle bu alanların doldurulması sadece yazılan TC Kimlik No’nun sorgulanması ile yapılabiliyor. Bu da kullanıcının caydırılması yönünde güzel bir yapı haline geliyor. Sistemi denettiğim çoğu arkadaşımdan da caydırıcı olduğuna dair güzel eleştiriler aldım. Tabii bu fake bir web service. TC Nüfus Müdürlüğü’nün web service’lerini kullanmadım ders projesi için. Bu web service’i kullanmak için hem belirli bir miktar para ödemeniz; hem de dilekçe ile başvurmanız gerekiyor ki bu dilekçe kabul edilmeyebilirde.      Sisteme sadece login olmuş kullanıcılar bilet ayırtma sayfasına ulaşabiliyor. Nereden ve Nereye kısımlarını doldurduktan sonra gitmek istediği tarihi giren kullanıcı, boş koltukları görebiliyor. İstediği boş koltuğu seçip bilet ayırt diyen kullanıcının bileti ayırtılmış oluyor. Kişi, ayırttığı biletleri profil sayfasından görebiliyor. Hangi tarihte, hangi saatte, nereden ve nereye şeklinde bir table halinde tüm ayırttığı biletler profil sayfasında oluşuyor. Ayrıca sistem, tarihi geçmiş biletieri de otomatik olarak temizliyor. Böylelikle profil sayfasına giren kullanıcı, tarihi geçmiş biletlerin silinmesiyle profil sayfasını her zaman düzenli görme imkanına sahip oluyor.      Bunların haricinde, üyeliğin yapıldığı tüm sistemlerde olan kullanıcı bilgilerini düzenleme, şifre değiştirme, hesap silme gibi tüm kullanıcı işlemleri de sistemde mevcut.      Sistemle ilgili hertürlü sorunuzu bana yazabilirsiniz.      Not: Projemde kullandığım ve sitemde paylaştığım yukarıdaki resimlerde görülen tüm şirket bilgileri hayal ürünüdür.

Etiket(ler): , , , , , , , ,



[KickIt] [Dzone] [Digg] [Reddit] [del.icio.us] [Facebook] [Technorati] [Google] [StumbleUpon]

E-mail | Permalink | Trackback | Yazı RSSRSS comment feed 9 Yorumlar

Eyl292008

BlogEngine Kurulumu ve Yönetimi (Resimli Tutorial)

Yazar: Gökhan ÖZİÇ Yayınlanma Saati: 10:01
Kategori(ler): ASP.NET | BlogEngine.NET | C#

     .NET platformunda open source olarak sunulan yeni ve yaygın blog teknolojisi BlogEngine'i tanıtım ve kurulum amaçlı, resimli bir tutorial hazırladım. Blog kurmak isteyenler için büyük kolaylık sağlayan ve open source olması nedeniyle istediğiniz değişikliği yapabileceğiniz bir proje.      Öncelikle BlogEngine'i bilgisayarımızda local olarak çalıştırabilmek için Windows'un IIS (Internet Information Services) ayarlarının yapılmış olması ve bu Windows bileşenlerinin yüklü olması gerek. Bunun için "Başlat"tan "Denetim Masası"na girin. Buradan Windows bileşenlerini yüklemek için "Programlar ve Özellikler"e girin.      Daha sonra çıkan pencereden "Windows özelliklerini aç veya kapat"ı seçin. Karşınıza gelen pencere Windows'un bileşenlerini ekleyip kaldırmanıza yarıyacak pencere.      Resimde de gördüğünüz gibi "Internet Information Services" sekmesinin altında "World Wide Web" hizmetlerinin altındaki "Uygulama Geliştirme Özellikleri" sekmesinin altındaki seçeneklerden "ASP.NET"in seçili olup olmadığını kontrol edin. Diğer seçenekleri de isterseniz tickleyebilir, isterseniz sadece "ASP.NET" seçeneğini de tickleyebilirsiniz. "ASP.NET" seçeneğini ticklemek size yeterli olacaktır. Daha sonra pecerede "Tamam" butonunu tıklayın. Eğer değişiklik yapıp "ASP.NET" seçeneğini ticklediyseniz "Windows Bileşenleri" kurulumu başlayacak ve "IIS ASP.NET" desteği yüklenecektir. Bu işlem biraz zaman alabilir.      Daha sonra resimde gösterilen siteye yani http://www.codeplex.com/blogenginetr adresine girin. Sağdaki "Download" butonuna tıklayıp "BlogEngine 1.4.5 Türkçe" versiyonunu bilgisayarınıza download edin.      Download etmek için butona tıkladığınızda karşınıza gelen pencerede "I Agree" demeniz yeterli.        İndirdiğiniz "Winrar" dosyasının içindeki "BlogEngine.NET_TR_1.4.5.zip" klasörünü kopyalayın.      Ve resimde görülen "C:\inetpub\wwwroot" klasörü içine kopyaladığımız dosyayı yapıştırın. Bu işlem projemizin local üzerinde çalışmasını sağlayacak adımlardan biri.      Şimdi "Çalıştır"a gelin (Windows Tuşu+R ya da Başlat\Çalıştır). "Çalıştır"a resimde görüldüğü gibi "inetmgr" komutunu yazın ve "Tamam" deyin. Bu komut sizi "Internet Information Services (IIS) Yöneticisi"ne götürecek.      Karşınıza çıkan bu yöneticiye projenizi app olarak ekleyerek localde çalışmasını sağlayacağız. Resimde de görüldüğü üzere bilgisayar isminizin yanındaki "+"ya, sonra "Web Siteleri"nin yanındaki "+"ya basın ve karşınıza gelen "Default Websites" sekmesine sağ tıklayın. Çıkan menüden de "Uygulama Ekle" sekmesini seçin.      Şimdi karşınıza "Uygulama Ekle" aracı gelecek. ASP.NET uygulamanızı eklemek için işlemleri buradan yapacağız. İlk olarak "Uygulama Havuzu"nu seçmeniz gerekiyor. Buradan "Seç" butonuna tıklayın.      Karşınıza çıkacak pencerede menüden "Classic .NET AppPool"u seçin ve "Tamam"a tıklayın.      Şimdi "Uygulama Ekle" aracına geri döndük. Projenizin başlatılabilmesi için fiziksel yolunun IIS'e gösterilmesi gerek. Bunun için "Fiziksel Yol" textboxının sağındaki butona tıklayın.      Daha sonra çıkan pencereden projenizi resimde gösterildiği gibi seçip "Tamam"a basın.      Yeniden "Uygulama Ekle" aracına döndük. Şimdi yapmanız gereken bu IIS uygulamasına bir isim vermek. Bunun için "Diğer Ad" textboxında uygulamanın ismini istediğiniz şekilde değiştirin. Yalnız, şunu belirtmemde fayda var. Bu ismi istediğimiz gibi seçebiliyoruz fakat uygulamaya erişirken bu ismi kullanacağız. "Diğer Ad" textboxına uygulamanızın ismini yazdıktan sonra tamam deyin. Böylelikle IIS'e uygulamanız eklendi.      Gördüğünüz gibi uygulamanız IIS'e eklendi ve şu an iis yöneticisinde gözüküyor. Artık uygulamanızı çalıştırmaya hazırsınız.      Uygulamayı çalıştırmak oldukça basit. Browser'ınızdan yeni bir pencere açın ve adres kısmına "localhost/BlogEngine" yazıp enterlayın. IIS, sanki bir hostmuş gibi uygulamanızı besleyerek bilgisayarınız üzerinden uygulamanın çalışmasını sağlayacaktır. Yalnız, bu işlem ilk seferinde biraz zaman alıyor. Bunun nedeni IIS'den verilerin okunmasının uzun sürmesi. Fakat ilk seferden sonra beklemenize gerek kalmayacak. Bekleme süresinden sonra siteniz karşınıza geldi. Şu anda gördüğünüz BlogEngine'in standart hali. İsterseniz kendinize göre yeni bir tema hazırlayıp kullanabilir, isterseniz mevcut temanın üzerinden değişiklikler yapabilir, isterseniz de hazır temalar kullanabilirsiniz. Bu hali hoşunuza gittiyse bu haliyle de kullanabilirsiniz. "Site Adı" ve altındaki "Kısa Tanım" bölümleri, sağda gördüğünüz widgetlar... Hepsini kendinize göre düzenleyebilir ve istediğiniz ayarı yapabilirsiniz. Fakat bu düzenlemeleri ve ayarları yapmak için ilk önce siteye "Login" olmanız gerek. "Oturum Aç" sekmesine tıklayın.      BlogEngine başlangıçta kullanıcı adı "admin" ve şifre "admin" olarak geliyor. Bunları gerekli yerlere yazıp "Oturum Aç" deyin. Artık sitenize login oldunuz. Gördüğünüz gibi login olmadan önce sitede görünmeyen "Administration" widgetı şimdi karşınıza geldi. Fakat bu widgettan gerekli ayarlamaları yapmak için ilk önce sitenin "Okuma/Yazma" izinlerini vermeniz gerek. Diğer türlü şu anda kullandığınız bilgisayarın (sizin hesabınızın) sitede "Okuma/Yazma" yetkisi olmadığı için yapmaya çalışıtığınız değişikliklerde site hata verecektir. Şimdi bu izinleri vereceğiz.      Hatırladığınız üzere projenizi "wwwroot" klasörünün içine kopyalamıştık. Şimdi tekrar oraya dönüyoruz. BlogEngine.NET_TR_1.4.5 klasörüne sağ tıklayıp "Özellikler" deyin.      Çıkan pencerde "Güvenlik" sekmesine gidin. Buradan "CREATOR OWNER"ı seçip "Düzenle" deyin.      Şimdi karşınıza çıkan pencerden "USERS(.........)"i seçip aşağıdaki "İzin Ver" bölümündeki "Tam Denetim" seçeneğini tickleyin. Zaten sırf onu ticklediğinizde diğer seçenekler de otomatikman ticklenecektir. Aşağıdaki "Özel İzinler" tickli kalmayacak. Bu kafanızı karıştırmasın. Sırasıyla "Uygula" ve "Tamam" deyip işlemi sonlandırın. Daha sonra çıkan pencereyi de "Tamam" diyerek kapatın.      Artık sitenizin ayarlarıyla istediğiniz gibi oynayabilir ve kişiselleştirebilirsiniz. İlk önce bu kişiselleştirmeye kendi adımız soyadımızla yeni bir kullanıcı ekleyerek başlıyalım. "Administration" widgetından "Kullanıcılar" sekmesine tıklayın.      Çıkan pencerede yeni kullanıcı adınızı, şifrenizi ve kullandığınız mailinizi yazın ve "Kullanıcı Oluştur" butonuna tıklayın.      Gördüğünüz gibi yeni kullanıcınız oluşturuldu. Aşağıya dikkat ederseniz "Roles" menüsünü göreceksiniz. Buradan oluşturduğunuz kullanıcıya çeşitli görevler vermek mümkün. İsterseniz "Administrators" seçeneğini tickleyerek kullanıcıyı admin yapabilir, isterseniz "Editors" seçeneğini tickleyerek o kullanıcıya sadece yazarlık yetkisi verebilirsiniz. İsterseniz ikisini de tickleyebilirsiniz. Şimdi az önce oluşturduğunuz kullanıcıda "Administrators" ve "Editors" rollerini tickleyin. Artık "Admin" kullanıcısına da ihtiyacınız yok. "Admin" kullanıcısının yanındaki "Sil" seçeneğine tıklayarak bu hesabı silin.      Az önce "admin" hesabıyla login olduğunuz için, hesabı sildiğinizde bir anda logout oldunuz. Şimdi yeni oluşturduğunuz hesap ile sitenize login olun.      Artık kendi hesabınıza özel bir blogunuz var. İstediğiniz değişiklikleri yapmaya ve yazılarınızı yayınlamaya hazırsınız. Şimdi ufak bir ayar daha yapacağız ki projenin ayarlanması iyice anlaşılmış olsun. Sağdaki "Administration" widgetından "Ayarlar" sekmesine tıklayın.      Sitemizin ayarlar bölümündeyiz artık. Siteyi ilk açtığımızda "Site Adı" ve "Kısa Tanım" kısımlarını hatırlarsınız. Onları buradan değiştirmek mümkün. Site adınızı ve kısa tanımını buradan değiştirin. Daha sonra "Ayarları Kaydet" butonuna basın. Anasayfaya gidin.      Gördüğünüz gibi yaptığınız ayarlara göre "Site Adı" ve "Kısa Tanım"ı sizin isteğinize göre değişti. İşte kişisel blogunuz artık kullanılmaya hazır. Daha birçok ayarı halletmeniz gerekiyor fakat "Administration" widgetını biraz karıştırdığınızda yapamayacağınız hiçbirşey yok. Sorularınız için [email protected] adresine mail atabilir, bu postun altına da yazabilirsiniz. Elimden geldiğince cevaplamaya çalışacağım. Herkese kolay gelsin. NOT: Bu oluşturduğumuz uygulama local üzerinden oluşturulduğu için sadece siz görebilirsiniz. İnternetten herhangi birisi göremez. Blogunuzu internette yayınlamak için domain name ve host satın almalısınız. Ama blogengine öğrenmek; hatta asp.net ve c# öğrenmek isteyenleriniz varsa bu proje gayet kişiyi geliştirici bir proje. Daha fazla bilgi için verebileceğim linkler; http://www.blogenginetr.com http://www.codeplex.com http://dotnetblogengine.net

Etiket(ler): , ,



[KickIt] [Dzone] [Digg] [Reddit] [del.icio.us] [Facebook] [Technorati] [Google] [StumbleUpon]

E-mail | Permalink | Trackback | Yazı RSSRSS comment feed 3 Yorumlar

Eyl152008

BlogEngine "contact.aspx" Sorunu

Yazar: Gökhan ÖZİÇ Yayınlanma Saati: 08:23
Kategori(ler): ASP.NET | BlogEngine.NET | C#

       Bir önceki yazımda BlogEngine ayarlarında, kontroller bölümünde iletişim formu için dosya eklemeyi etkinleştirip kaldırabilmede bir problem olduğundan bahsetmiştim. Problemi hatırlatmak için kısaca bahsedeyim. Blogumu ilk kurduğumda iletişim sayfasında bana atılan mesajlara dosya eklemeyi kaldırmıştım. Fakat iletişim sayfasında (contact.aspx) yaptığım testlerde dosya ekleme kapalıyken bana gönderilen mesajlar iletilmiyordu. Bunu da "Gönder" butonuna tıkladığımda "Teşekkürler. Mesajınız iletildi." yazısını alamayınca farkettim. Bu mesajı almak yerine aynı sayfa tekrar karşıma geldi. Mailimi kontrol ettiğimde de gönderilen mesajların bana ulaşmadığını gördüm. Birkaç kez test etmeme rağmen sorun çözülmedi. Bende dosya eklemeyi tekrar etkinleştirip soruna geçici bir çözüm buldum.        Şimdi sizlere asıl çözümden bahsedeceğim. Aslında çözüm oldukça basit. İlk başta problemin "controls.aspx"den kaynaklandığını sandım. Fakat yaptığım kontrollerde bir sorun olmadığını gördüm. Sorun muhtmelen "contact.aspx" sayfasındaki "Gönder" butonunun eventinden kaynaklanıyordu. Koda baktığımda soruna "Gönder"  butonunun eventindeki if satementında fazladan koyulan bir "&&" neden olduğunu anladım. Şimdi yapmanız gereken "contact.aspx.cs" sayfasını açmak ve "private void btnSend_Click(object sender, EventArgs e)" eventini şu kodla değiştirmek: private void btnSend_Click(object sender, EventArgs e) { if (IsCaptchaValid && Page.IsValid) { bool success = SendEmail(txtEmail.Text, txtName.Text, txtSubject.Text, txtMessage.Text); divForm.Visible = !success; lblStatus.Visible = !success; divThank.Visible = success; SetCookie(); } }        Böylelikle sorunumuz çözülmüş oluyur. Blog import etmek için ise araştırmalarım sürüyor.

Etiket(ler): ,



[KickIt] [Dzone] [Digg] [Reddit] [del.icio.us] [Facebook] [Technorati] [Google] [StumbleUpon]

E-mail | Permalink | Trackback | Yazı RSSRSS comment feed 2 Yorumlar

Eyl112008

www.gokhanozic.com Yayında!!!

Yazar: Gökhan ÖZİÇ Yayınlanma Saati: 15:15
Kategori(ler): ASP.NET | BlogEngine.NET | C#

       Merhaba;        Birkaç ay öncesine kadar http://gokhanozic.spaces.live.com adresinde bulunan blogumu BlogEngine ortamında kendi domainime taşıdım. Artık projelerimi, çalışmalarımı ve fikirlerimi bu adreste yayınlayacağım.        BlogEngine, blog kurmak isteyenler için biçilmiş kaftan. Kurması ve kullanması son derece basit. "Open Source" bir proje olması ise herşeye tuz biber ekiyor. Eğer asp.net ve c# bilginiz de varsa BlogEngine'i kullanmak daha da basitleşiyor. Kendi temalarınızı oluşturmanız mümkün. Ama bu birhayli zaman alacaktır. Bunun haricinde isterseniz hazır temaları da kullanabilirsiniz. Ayrıca başka formattaki hazır temaları BlogEngine'e uyarlamak da mümkün. Örneğin bir WordPress temasını BlogEngine'e uyarlıyabilirsiniz. Sitenizi kendinize göre değiştirebilirsiniz. İsterseniz BlogEngine'in hazır widgetlarından yararlanabilir, isterseniz benim sitemde olduğu gibi widgetsız da kulanabilirsiniz. Sitenizin nasıl görüneceği tamamen sizin zevkinize kalmış.        Ben blogumda www.blogenginetr.com ekibinin hazırladığı 1.4.5.0 Türkçe versiyonunu kurdum. Kurulum aşamasından sonraki ayarları yapmam tahmin ettiğimden daha kısa sürdü. Tek problem eski blogumu bu domaine import etmeye çalıştığımda çıktı. RSS pathini doğru vermeme rağmen RSS'in invalid olduğu uyarısıyla defalarca karşılaştım. Bende eski blogumdaki girdileri manuel olarak taşımak zorunda kaldım. Ama sonunda o da bitti. Bir başka sorun da iletişim (contact.aspx) sayfasında çıktı. Bu sayfayla ilgili ayarlarda isterseniz size ulaşan maillere dosya eklenmemesini seçebiliyorsunuz. Ben bunu seçmiştim ve contact.aspx adresinde kendime attığım test maillerinden hiçbiri bana ulaşmadı. "Gönder" butonuna tıklandığında "Teşekkürler! Mesajınız iletildi..." mesajını almam gerekirken aynı sayfa tekrar karşıma geliyordu. Belkide daha önce kimsenin farketmediği bir bug bu. Araştırmama rağmen pek de yararlı bir bilgi bulamadım. Bende dosya eklemeyi tekrar aktif hale getirdim ve sorun çözüldü. Fakat dosya eklemeyi iptal ettiğimde hala aynı sorun devam etmekte. Bu soruna ve blog import etme sorunua bir çözüm bulursam buradan yayınlayacağım. Şimdilik görüşmek üzere.  

Etiket(ler):



[KickIt] [Dzone] [Digg] [Reddit] [del.icio.us] [Facebook] [Technorati] [Google] [StumbleUpon]

E-mail | Permalink | Trackback | Yazı RSSRSS comment feed 4 Yorumlar