Yalnız Mesajı Göster
  #2  
Eski 21-07-2006, 11:40 PM
empedoCles kullanıcısının avatarı
empedoCles empedoCles Çevrimdışı
Müdavim
 
Giriş: Sep 2005
Mesaj: 123
empedoCles İtibar düzeyini kapadı
2 Nolu Yazı

2 Nolu Yazı 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 gelen New ASP.Net Application penceresinde boş yerleri doldurup OK. dediğimizde ;

1. Önce IIS'de sanal bir web yolu (Alias) oluşturuluyor. (Resim-1)

Resim - 1

2. IIS'in kurulu olduğu sürücüde wwwroot altında proje adıyla eş 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ı :
<DIR> .
<DIR> ..
<DIR> bin
Global.asax
Global.pas
Web.config
WebForm1.aspx
WebForm1.pas

gibi bir hal alıyor. Burada aynı isme fakat farklı uzantıya sahip WebForm1.* dosyaları üzerinde çalıştığımız projede kullanacağımız temel dosyalar, global.asax ve web.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"%>
<p>Lütfen Kullanıcı adınız ve şifrenizle giriş yapınız.<br></p>
<table cellspacing="0" cellpadding="0" border="0" align="center">
<tr>
<td align="right">Kullanıcı&nbsp; </td>
<td>
<input id="kullaniciadi" name="kullaniciadi" style="BORDER-RIGHT: #000080 1px outset; BORDER-TOP: #000080 1px outset; BORDER-LEFT: #000080 1px outset; WIDTH: 78px; BORDER-BOTTOM: #000080 1px outset; HEIGHT: 18px; BACKGROUND-COLOR: #ffffec" size="9">
</td>
</tr>
<tr>
<td align="right">Şifre&nbsp;</td>
<td>
<input type="password" id="sifre" name="sifre" style="BORDER-RIGHT: #000080 1px outset; BORDER-TOP: #000080 1px outset; BORDER-LEFT: #000080 1px outset; WIDTH: 78px; BORDER-BOTTOM: #000080 1px outset; HEIGHT: 18px; BACKGROUND-COLOR: #ffffec" size="9">
<td></tr>
<tr>
<td align="right">G.Kodu&nbsp;</td>
<td>
<input id="guvenlikkodu" name="guvenlikkodu" style="BORDER-RIGHT: #000080 1px outset; BORDER-TOP: #000080 1px outset; BORDER-LEFT: #000080 1px outset; WIDTH: 78px; BORDER-BOTTOM: #000080 1px outset; HEIGHT: 18px; BACKGROUND-COLOR: #ffffec" size="9">
</td>
</tr>
<tr>
<td align="center">
<ASPabel id="Label_GuvenlikKodu" runat="server" forecolor="#483D8B" font-bold="True" font-size="Medium">0</ASPabel>
</td>
<td>
<ASP:Button id="Button1" runat="server" text="Oturum Aç" width="74px" borderstyle="Solid" borderwidth="1px" backcolor="#4682B4" forecolor="#F0F8FF"></ASP:Button>
</td>
</tr>
<tr>
<td colspan="2" align="center">
<ASPabel id="Label_Hata" runat="server" forecolor="Red" font-size="Smaller">---</ASPabel>
</td>
</tr>
</table>

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>
/// Summary description for WebUserControl1.
/// </summary>
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:Boolea n;
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.
imza

#include <middleeast.h>

#define ISRAELIS foul_beasts






empedoCles kullanıcısına MSN aracılığı ile mesaj yolla
Alıntı Yaparak Cevapla