Archive for the ‘Asp.net’ Category

تغییر ساختار پیش فرض قالب ها در Visual Studio

فوریه 14, 2008

در این مقاله بعنوان یک Web Developer تصمیم به شخصی سازی محیط کاری خود در Visual Studio.NET داریم.

این امکان برای شما فراهم شده است تا Template های پیش فرضی را که Visual Studio برای Master Page ها یا Web form ها و کلاس ها و دیگر موارد از این قبیل می سازد، تغییر دهید.
زمانی که تصمیم به ایجاد یک صفحه جدید یا کلاس جدید یا در کل یک قطعه جدید در پروژه خود می گیرید، نرم افزار Visual Studio.NET یک قالب پیش فرض برای قطعه جدید پروژه شما در نظر می گیرد. مثلا” زمان ایجاد یک Web Form جدید قالب کلی آن به شکل زیر است :

<%@ Page Language=”C#” AutoEventWireup=”true” CodeFile=”Default.aspx.cs” Inherits=”Default” %>

<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN” “http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd”>

<html xmlns=”http://www.w3.org/1999/xhtml” >
<head runat=”server”>
<title>Untitled Page</title>
</head>
<body>
<form id=”form1″ runat=”server”>
<div>

</div>
</form>
</body>
</html>

مشاهده سورس کد NET Framework. در هنگام debug کردن برنامه

فوریه 12, 2008

aa700831vs08_ven-usmsdn10.png

با افزوده شدن قابلیتی جدید در Visual Studio 2008 از این پس می توان در هنگام debug کردن یک برنامه نوشته شده تحت NET. به سورس کد توابع مختلف NET. وارد شده و روند برنامه را از آنجا نیز دنبال کرد.

برای این منظور کافیست که یک hotfix در حدود 1.16 مگابایتی را دانلود و نصب کرده و چند تغییر ساده را در setting های مربوط به debugging در Visual Studio 2008 انجام دهیم.
(دنباله…)

کتاب الکترونیکی فارسی برای ASP.NET 2.0

فوریه 10, 2008

c0037913-9e11-4a2d-8fd1-0ba441296cbc.gif

کتابهای الکترونیکی فارسی همیشه طرفداران زیاده داشتن و دارن و خواهند داشت! کتابی که اینبار قصد معرفی اون رو دارم توسط جناب آقای محسن قاسمپور از کتاب ASP.NET 2.0: A Developer’s Notebook ترجمه شده.

این کتاب برای اونهایی که می خوان ASP.NET 2.0 رو از ابتدا یاد بگیرن اصلا مناسب نیست! در واقع این کتاب همونطور که در مقدمه هم اومده برای کسانی نوشته شده که قبلا با یکی از نسخه های قدیمی ASP.NET کار کردن و حالا قصد دارن با قابلیتهای جدید نسخه 2.0 اون آشنا بشن. البته مدتی می شه که نسخه 3.0 و 3.5 دات نت هم در بازار عرضه شده. اما فعلا همین دات نت 2.0 کار ما رو راه می اندازه!

سرفصلهای کتاب از این قرار هستن:

  • درباره مولف
  • کتاب برای چه کسانی تالیف شده است؟
  • نحوه سازماندهی کتاب
  • قابلیتهای جدید ASP.NET 2.0
  • Master Page ها و Site Navigations
  • Web Part ها
  • دسترسی به داده ها (Data Access)
  • امنیت (Security)
  • کارآیی های جدید در ASP.NET 2.0
  • پروفایلها (Profiles)
  • تمها (Themes)، اسکین ها (Skins) و بومی سازی (Localization)

خالی از لطف نیست که نوشته های پیش مقدمه مترجم رو هم بخونید:

- این کتاب مدتها پیش ترجمه شد اما به دلایلی تا کنون به اشتراک گذاشته نشده است!

- مترجم ادعائی مبنی بر ترجمه ایده آل اثر ندارد، اما امیدوار است در ارتقاء سطح علمی خواننده موثر باشد.

- این کتاب یک اثر رایگان بوده و هر گونه دخل و تصرف در آن از نظر مترجم بلامانع است.

- کتاب اصلی در ژانویه 2005 و بر اساس نسخه بتای ویژوال استودیو تالیف شده که پس از انتشار نسخه نهایی مولف در یک فایل متنی تغییرات اساسی را آورده است. نسخه پیش رو این تغییرات را نیز پوشش می دهد.

- کتاب توسط آقای علی دهقان نیز ترجمه و توسط انتشارات نص به چاپ رسیده است.

دانلود کتاب الکترونیکی فارسی برای ASP.NET 2.0

آشنایی با کنترل FileUpload | بارگذاری فایل در سرور

فوریه 9, 2008

نحوه ارسال فایل به سرور و آشنایی با کنترل جدید FileUpload در Asp.net 2.0 و نسخه های بعد از آن

imagedraw_fileupload_resize.jpg

ارسال فایل به سرور در برنامه های تحت وب توسط کاربران بسیار ساده و قوی از سوی Asp.net پشتیبانی می شود. به کمک کنترل سرور FileUpload این کار بدون احتیاج به نوشتن خط های زیادی از کد قابل اجراست. در این مقاله مثال هایی از نحوه استفاده از این کنترل را آوردم، اما خاطرنشان می کنم در این مثال ها مسائل امنیتی اعمال نشده است و موضوع امنیت در کنترل FileUpload را بطور مفصل در آینده نزدیک در بخش امنیت در برنامه های وب بطور مفصل شرح خواهیم داد.

<form id=”form1″ runat=”server”>
<asp:FileUpload id=”FileUploadControl” runat=”server” />
<asp:Button runat=”server” id=”UploadButton” text=”Upload” onclick=”UploadButton_Click” />
<br /><br />
<asp:Label runat=”server” id=”StatusLabel” text=”Upload status: ” />
</form>

همانطور که در کد بالا مشاهده می کنید کار را با اضافه کردن یک کنترل FileUpload و همچنین یک Button برای فراخوانی متد های لازم جهت بارگذاری فایل در سرور و نیز یک کنترل برچسب (Label) جهت نمایش وضعیت به کاربر در فرم خود، آغاز کردیم. حال کدنویسی را بصورت زیر انجام می دهیم:

protected void UploadButton_Click(object sender, EventArgs e)
{
if(FileUploadControl.HasFile)
{
try
{
string filename = Path.GetFileName(FileUploadControl.FileName);
FileUploadControl.SaveAs(Server.MapPath(“~/”) + filename);
StatusLabel.Text = “Upload status: File uploaded!”;
}
catch(Exception ex)
{
StatusLabel.Text = “Upload status: The file could not be uploaded. The following error occured: ” + ex.Message;
}
}
}

(دنباله…)

چگونگی بازنویسی آدرس ها (UrlRewriting)

فوریه 5, 2008

کار UrlRewriting تبدیل یک آدرس اینترنتی واضح و با معنا به یک آدرس واقعی دارای Query String جهت تفسیر موتور Asp.net است. دو آدرس زیر را در نظر بگیرید :

http://aspcode.ir/article.aspx?id=4&type=print

http://aspcode.ir/article-4-print.html

یقینا” آدرس دوم با معنی تر از آدرس اول است.در ضمن تا حدودی امکان هک شدن سایت از طریق تزریق عبارات Sql را کاهش می دهد. اجازه دهید ابزار های موجود برای UrlRewriting را بررسی کنیم.

بعد از ظهور Asp.net 2.0 خبر پشتیبانی استاندارد این تکنولوژی از UrlRewriting بسیار جالب توجه بود. برای این منظور در Asp.net 2.0 تنها کافیست مقداری تغییر در Web.Config دهید :

 <urlMappings enabled=”true”>
<add url=”~/show-5.htm”
mappedUrl=”~/show.aspx?id=5″ />
</urlMappings>

دقت فرمایید تنظیمات فوق متعلق به شاخه <system.web> می باشد و باید در این بخش از Web.Config تعریف شود. در مثال بالا url آدرسی است که کاربر مشاهده می کند و mappedUrl آدرس حقیقی ماست. اما همانطور که از ظواهر امر پیداست این روال کاری، تنها برای مواقعی مفید خواهد بود که تعداد دفعات استفاده محدود باشد و در صورتی که تعداد آدرس ها بالا باشد ، مدیریت آنها بسیار کار مشکل و زمانبری خواهد بود.

برای حل این مشکل ابزار های دیگری در دسترس برنامه نویسان قرار گرفته است. یکی از بهترین ابزار ها را می توان در سایت www.UrlRewriting.net یافت. جهت استفاده از این ابزار که Open Source هم می باشد ، می توانید مستندات آن و تمام آنچه که نیاز دارید از آدرس فوق دانلود کنید.
هر چند که مستندات و مطالب ارائه شده در سایت فوق کاملا” جامع است ، ولی در ادامه این مقاله، توجه شما را به مثال هایی از UrlRewriting در Asp.net جلب می کنم.

ابتدا فایل ضمیمه مقاله را دریافت کنید و Intelligencia.UrlRewriter.dll را به پوشه Bin پروژه خود انتقال دهید. حال مراحل زیر را جهت بازخوانی یک آدرس ثابت دنبال کنید :

فایل Global.asax را باز و رویداد Application_BeginRequest را بصورت زیر کد نویسی می کنیم. همانطور که از نام این رویداد پیداست زمانی کد اجرا می شود که درخواستی به سمت موتور Asp.net ارسال شود.

if (Request.Url.ToString().Contains(“show.htm”))
{
Context.RewritePath(“show.aspx”);
}

در این مثال محتوای صفحه ای با نام show.htm که بصورت مجازی ایجاد شده است و وجود خارجی ندارد از صفحه ای دیگر با نام show.aspx خوانده می شود.
سپس فایل web.config را باز و محتوای آن را به صورت زیر تنظیم نمایید :

<configSections>
<section name=”rewriter” type=”Intelligencia.UrlRewriter.Configuration. RewriterConfigurationSectionHandler, Intelligencia.UrlRewriter”/>
</configSections>

<httpModules>
<add name=”UrlRewriter” type=”Intelligencia.UrlRewriter.RewriterHttpModule, Intelligencia.UrlRewriter”/>
</httpModules>

<rewriter>
<rewrite url=”show.htm” to=”show.aspx”/>
</rewriter>

لطفا” به محل قرار گرفتن تغییرات دقت ویژه ای داشته باشید :

<configSections> :  داخل تگ <configuration> قرار گیرد.
<httpModules> :  داخل تگ <system.web> قرار گیرد.
<rewriter> : داخل تگ <configuration> و خارج و بعد از تگ<system.web> قرار گیرد.

توجه فرمایید کد کامل برنامه را نیز می توانید در انتهای برنامه دانلود نمایید.

مخفی کردن Query String :
شاید به ذهن شما رسیده باشد که چگونه می توان آدرس های مجازی دارای Query String را نیز بازنویسی کنیم. این کار نیز بسیار ساده است و تفاوتهای جزئی با مثال بالا دارد.
برای اینکار دوباره فایل Global.asax را باز و رویداد Application_BeginRequest را بصورت زیر کد نویسی می کنیم :

if (Request.Url.ToString().Contains(“show-(.+).htm”))
{
Context.RewritePath(“show.aspx?id=$1″);
}

علامت (.+) نماینده یک متغیر است که مقدار Query String را می گیرد و $1 در خط بعدی همان مقدار (.+) و نماینده مقدار Query String در آدرس حقیقی است. همچنین تگ rewrite را بصورت زیر تغییر دهید :

<rewrite url=”show-(.+).htm” to=”show.aspx?id=$1″/>

در صورتی که آدرس شما دارای بیش از یک پارامتر Query String است (برای مثال سه پارامتر) بصورت زیر عمل کنید :

show-(.+)-(.+)-(.+).htm
Show.aspx?Page=$1&amp;Id=$2&amp;state=$3

همچینین تگ rewrite را مانند مثالها قبلی تغییر دهید.
فکر می کنم با مثال های متعدد در این مقاله، شما این مهارت را پیدا کرده باشید تا  آدرس ها را بصورت مجازی ایجاد کنید.

نکته :

دقت کنید که در بازخوانی آدرسهای با چندین پارامتر Query String در قسمت آدرس حقیقی قبل از & ، amp; را قرار دهید. در ضمن برای بازخوانی مقدار Query String نیاز به کد نویسی خاصی نیست و با در نظر گرفتن مثال فوق بعد از UrlRewriting با دستور زیر در صفحه show.aspx می توانیم مقدار Query String را بخوانیم :

Response.Write((string)Request.QueryString["id"]);
منبح : aspcode.ir