Perşembe, Hazirane 8, 2006 - Delphi 2006 ve ASP.NET İle Arşivbank Site Tasarımı -2-
Reklam arasının kısa olanı makbüldür. Delphice ASP.NET ile arşivbank sitesi tasarımı konusundaki 2 nolu yazımıza hoş geldiniz.
Eğer sizde benim gibi tüm uygulamalarda en son çare yardım sistemlerine bakıyorsanız .NET uygulamaları geliştirirken zaman zaman buna ara vermenizi, bir örnek üzerinde çalışırken sık sık imdat düğmesine basmanızı öneririm.
BDS 2006'da yeni bir proje oluşturduğumuzda ekrana gelenNew ASP.Net Application
1. Önce IIS'de sanal bir web yolu (Alias) oluşturuluyor. (Resim-1) penceresinde boş yerleri doldurup OK. dediğimizde ; Resim - 1
2. IIS'in kurulu olduğu sürücüdewwwroot altında proje adıylaeş isimli bir klasör oluşturuluyor. 3. Proje adıyla oluşturulan klasörün altınada bin ismiyle derleme sonucu ASP.NET dll dosyası ve kullanacağınız diğer paketlerin yer alacağı bir başka klasör oluşturuluyor. 4. Yine proje klasörünün altına Webform.aspx, global.asax,web.config,Webform1.pas dosyaları oluşturuluyor. Klasör ve dosya yapısı : . .. bin Global.asax Global.pas Web.config WebForm1.aspx WebForm1.pas
gibi bir hal alıyor. Burada aynı isme fakat farklı uzantıya sahipWebForm1.* dosyaları üzerinde çalıştığımız projede kullanacağımız temel dosyalar,global.asax veweb.config dosyalarıda uygulamanın global ayar ve değişken tanımlarının saklandığı dosyalar. Şimdilik bu son iki dosyayı atlıyoruz.
WebForm.* Dosyaları
Eğer Asp, php gibi bir web betik diline el ve göz alışkanlığınız varsa tasarım için kullanılan sayfalarla, dinamik eleman öğeleri, procedure, fonksiyon ve değişken tanımlamalarının iç içe geçtiğini, bu yüzdende bazen tasarımın okunurluğunun azaldığını hatırlayacaksınız. Php gibi dillerde bu tip durumlar için template sınıfları, şablon dosyaları kulanılabiliyormuş. Asp'deki durumu bilmiyorum. Şahsen okuma yazma bildiğimden web tasarım etiketleriyle, betik dil kodlarının bir birine geçmesi konusunda hiç şikayetçi olmadım. Ancak tasarımla kodlamanın ASP.NET'teki gibi ayrılabilmeside gerçekten okunurluğu artırıyor.
ASPX ve birazdan değineceğimiz ASCX uzantılı sayfalar kodlamayla tasarımın ayrıştırılmasında kullanılıyor. BDS 2006 bir ASPX/ASCX sayfası üzerinde tıpkı frontpage, dreamwaver vs uygulamalarındaki gibi tasarımı anında gösterebilme yeteneğine sahip. Bu sayfaların üzerine .NET Web ve Dataset bileşenleri, HTML etiketleri ve form elemanlarını koyuyoruz. Koyduğumuz her bir elemana karşılık BDS aşağıdaki örnekte görüleceği üzere ilgili tasarım dosyasına bizim için gidip gereken ifadeleri çiziktiriyor. (Resim - 2)
 Resim -2
Buda bu sayfanın içindekiler :
<%@ Control Language="c#" AutoEventWireup="false" Codebehind="gelistirici_login.pas" Inherits="gelistirici_login.TWebUserControl1"%> Lütfen Kullanıcı adınız ve şifrenizle giriş yapınız.
Herhalde pas uzantılı dosyanın ne işe yaradığını söylemeye gerek yok. Buda bu sayfanın pas dosyası.
unit gelistirici_login;
interface
uses System.Data, System.Drawing, System.Web, System.Web.UI, System.Web.UI.WebControls, System.Web.UI.HtmlControls, System.ComponentModel, Borland.Data.Provider,System.Web.SessionState, System.Configuration, MySql.Data.MySqlClient,Borland.Vcl.SysUtils;
type /// /// Summary description for WebUserControl1. /// TWebUserControl1 = class(System.Web.UI.UserControl) {$REGION 'Designer Managed Code'} strict private components: System.ComponentModel.IContainer; procedure InitializeComponent; procedure Button1_Click(sender: System.Object; e: System.EventArgs); {$ENDREGION} strict private procedure Page_Load(sender: System.Object; e: System.EventArgs); strict protected Button1: System.Web.UI.WebControls.Button; MySqlBaglantisi: MySql.Data.MySqlClient.MySqlConnection; MySqlCommand1: MySql.Data.MySqlClient.MySqlCommand; Label_GuvenlikKodu: System.Web.UI.WebControls.Label; Label_Hata: System.Web.UI.WebControls.Label; procedure OnInit(e: System.EventArgs); override; private FHataKodu : String; procedure SetGuvenlikKodu; function GecerliGelistiriciGirisimi: Boolean; { Public Declarations } end;
implementation
function RandomString(PWLen: integer): string; const StrTable: string = 'ABCDEFGHIJKLM' + '0123456789' + 'NOPQRSTUVWXYZ'; var N, K, X, Y: integer; begin Randomize; if (PWlen > Length(StrTable)) then K := Length(StrTable)-1 else K := PWLen; SetLength(result, K); Y := Length(StrTable); N := 0;
while N < K do begin X := Random(Y) + 1; if (pos(StrTable[X], result) = 0) then begin inc(N); Result[N] := StrTable[X]; end; end; end;
function TWebUserControl1.GecerliGelistiriciGirisimi:Boolean; Var _MySqlDataReader : MySqlDataReader ; begin try
------------
Editörün session time out'una yakalanmadan ASCX ve ASPX hakkında bir kaç giriş bilgisi daha ekleyip bu yazıyıda reklam arası için burada kesiyorum.
ASPX ve ASCX arasındaki Fark
İkiside tasarımla ilgili bilgileri tutmasına rağmen bir aspx uzantılı dosya web sunucusundan doğrudan doğruya çağrılabilirken ascx uzantılı dosyalar bir aspx dosyasına tutturularak görüntülenebilmektedir. Tutturma ile ilgili işlemlere ileride değineceğiz. Ancak bu tutturma işleminin php' ve asp dekine benzediğini ama onlardan daha öte bir şey olduğunu aklınızda tutmanız yeterli. Tabii ki ASP.NET ile kullanılan başka dosya tipleride vardır. Ama okuyup yazabildiğimiz kadarı şimdilik bu kadar.
Bana verilen sürenin ve bir yazının daha sonuna geldik. Devamında buluşmak üzere, hoşçakalın.
|