برنامه سازی وب
به چه چیزهایی نیاز داریم ؟
.NET
ASP.NET چیست؟
تفاوت ASP.NET با ASP
ASP.NET
Goals of .NET
Interoperability
Static Web Pages
Dynamic ASPX Pages
What Happens Behind the Scene?
HTML Code Returned by the Server
Code in Script Tags
.Net FrameWork
.Net FrameWork
.Net Framework Classes
Namespace ها
Namespace ها
Namespace ها
Namespace ها
Namespace ها
Namespace ها
Namespace ها
Namespace ها
Namespace ها
ASP.NET
ASP.NET
ASP.NET
ASP.NET

برنامه سازی وب ASP.net

1. برنامه سازی وب

‫برنامه سازی وب‬
ASP.net – 7 ‫جلسه‬
[email protected]

2. به چه چیزهایی نیاز داریم ؟

‫به چه چیزهایی نیاز داریم ؟‬
IIS ‫• نصب‬
visual studio .net 2005 ‫• نصب‬
.net framework –
c# ‫– نصب‬
application block ‫ (در صورت استفاده از‬Enterprise library
)‫های میکروسافت‬
2

3. .NET

‫‪.NET‬‬
‫• مزایای برنامه نویسی با ‪.Net‬‬
‫– برنامه نویسی شی گرا‬
‫– طراحی خوب ‪ :‬یک کتابخانه از کالس های پایه‬
‫– استقالل زبان ‪ :‬تمامی زبان ها به یک زبان مشترک کامپایل می‬
‫شوند‪)Common Intermediate Language( .‬‬
‫– دسترسی به داده ها‪ :‬از طریق ‪ADO.Net‬‬
‫– به اشتراک گذاری کدها‪ :‬با استفاده از اسمبلی ها‬
‫– محیط یکپارچه برای توسعه برنامه تحت ویندوز و وب‬
‫– معرفی یک زبان برنامه نویسی جدید به نام ‪ C#‬که از پایه شی گرا‬
‫بوده و به صورت اختصاصی برای استفاده از ‪.net framework‬‬
‫نوشته شده است‪.‬‬
‫– یکپارچه سازی با ‪SQL Server 2005‬‬
‫– و ‪...‬‬
‫‪3‬‬

4. ASP.NET چیست؟

‫‪ ASP.NET‬چیست؟‬
‫• ‪ ASP.NET‬نسل بعدی ‪ Active Server Pages‬یا‬
‫‪ ASP‬است که توسط شرکت میکروسافت ارائه شده‬
‫است‪.‬‬
‫• ویژگی های مهم ‪:‬‬
‫– صفحات ‪ ASP.NET‬کامپایل می شوند‬
‫– صفحات ‪ ASP.NET‬با ابزارهای روی سرور‬
‫ساخته می شوند‪ ( .‬کنترلهایی نظیر ‪)DataGrid‬‬
‫– مجموعه‪ ASP.NET‬عضوی از ‪Framework‬‬
‫‪ .NET‬است‪.‬‬
‫‪4‬‬
‫• ‪ .net Framework‬دارای بیش از ‪ 4500‬کالس آماده‬
‫می باشد این کالس ها تقریبا هر نیازی را در برنامه‬
‫نویسی مرتفع می کند‪ ( .‬مانند رمز کردن یک فایل‪،‬‬

5. تفاوت ASP.NET با ASP

‫تفاوت ‪ ASP.NET‬با ‪ASP‬‬
‫• ‪ ASP.NET‬نسل بعدی ‪ ASP‬یا ‪ ASP‬کالسیک می باشد‪.‬‬
‫• ‪ASP‬‬
‫– زبانهای ‪jscript ،vbscript‬‬
‫– دارای ‪ 5‬کالس استاندارد‬
‫– کد ‪ html‬و کد ‪ asp‬در کنار یکدیگر‬
‫– کدها تفسیر می شوند‬
‫• ‪ASP.NET‬‬
‫– انواع زبانها نظیر ‪ Jscript.Net ،VB.Net ،C#‬و ‪...‬‬
‫– بیش از ‪ 4500‬کالس‬
‫– توانایی جداسازی کد ‪ html‬از کد ‪asp.net‬‬
‫– کدها کامپایل می شوند‪.‬‬
‫– کنترلهای بسیار پیشرفته‬
‫– مدیریت بهتر خطا‬
‫– قابلیت ‪caching‬‬
‫‪5‬‬

6. ASP.NET

‫‪ASP.NET‬‬
‫• هر صفحه یک کالس است که از ‪System.Web.UI.Page‬‬
‫ارث می برد‪.‬‬
‫• دسته بندی کنترلهای موجود در ‪ASP.NET‬‬
‫– کنترلهای اصلی نظیر ‪،RadioButton ،TextBox‬‬
‫‪ListBox‬‬
‫– کنترلهایی برای حصول اطمینان از ورود و تائید صحت‬
‫اطالعات وارد شده‪.‬‬
‫– کنترلهایی برای ارتباط با بانک اطالعاتی و دستکاری داده‬
‫ها‬
‫– کنترلهای پیشرفته جهت نمایش عناصر پیچیده نظیر تقویم‬
‫‪6‬‬

7. Goals of .NET

Interoperability between programming languages
So far
- millions of lines of code in C++, Fortran, Visual Basic, ...
- very limited interoperability
Under .NET
binary compatibility between more than 20 languges (C#, C++, VB.NET, Java, Eiffel, Fortran, Cobol, ML, Haskell, Pascal, Oberon, Perl, Python, ...)
class in VB.NET
Public Class A
Public x As Integer
Public Sub Foo() ...
End Class
subclass in C#
class B : A {
public string s;
public void Bar() {...}
}
used in Eiffel
class Client feature
obj: B;
...
create obj;
obj.Bar;
...
end
7

8. Interoperability

C#
C#
C++
VB
...
compiler compiler compiler compiler
CIL code
(+ metadata)
loader
verifier
JIT compiler
machine code
if (a > b) max = a; else max = b;
CIL
IL_0004:
IL_0005:
IL_0006:
IL_0008:
IL_0009:
IL_000a:
IL_000c:
IL_000d:
ldloc.0
ldloc.1
ble.s
IL_000c
ldloc.0
stloc.2
br.s
IL_000e
ldloc.1
stloc.2
Intel code
mov ebx,[-4]
mov edx,[-8]
cmp ebx,edx
jle 17
mov ebx,[-4]
mov [-12],ebx
...
8

9. Static Web Pages

Pure HTML
My.html
<html>
<head>
<title>Simple HTML page</title>
</head>
<body>
<h1>Welcome</h1>
You are visitor number 1!
</body>
</html>
Request("My.html")
Browser
Response(My.html)
Server
(IIS)
My.html
9

10. Dynamic ASPX Pages

Computed values can be inserted into HTML code
Counter.aspx
<%@ Page Language="C#" %>
<% Using System.IO" %>
<html>
<head> <title>Page counter</title> </head>
<body>
<h1>Welcome</h1>
You are visitor number <%
FileStream s = new FileStream("c:\\Data\\Counter.dat", FileMode.OpenOrCreate);
int n;
try {
BinaryReader r = new BinaryReader(s);
n = r.ReadInt32();
} catch { n = 0; } // if the file is empty
n++;
s.Seek(0, SeekOrigin.Begin);
BinaryWriter w = new BinaryWriter(s);
w.Write(n); s.Close();
Response.Write(n);
%> !
</body>
</html>
Counter.aspx must be in a virtual directory.
10

11. What Happens Behind the Scene?

client
(browser)
request
("Counter.aspx")
ASP.NET
response
(*.html)
"Counter.aspx"
Counter.aspx
preprocessor,
compiler
page class
server
(IIS)
loader
*.html
page object
.NET framework
11

12. HTML Code Returned by the Server

Counter.aspx
Returned HTML code
<%@ Page Language="C#" %>
<% Using System.IO %>
<html>
<head><title>Page Counter</title></head>
<body>
<h1>Welcome</h1>
You are visitor number <%
FileStream s = new FileStream(...);
...
Response.Write(n);
%> !
</body>
</html>
<html>
<head><title>Page counter</title></head>
<body>
<h1>Welcome</h1>
You are visitor number 6 !
</body>
</html>
does not contain any script code
any browser can display this HTML
12

13. Code in Script Tags

<%@ Page Language="C#" %>
Counter.aspx
<% using System.IO %>
<html>
<head>
<title>Page counter</title>
<script Language="C#" Runat="Server">
int CounterValue() {
FileStream s = new FileStream("c:\\Data\\Counter.dat", FileMode.OpenOrCreate);
...
n = r.ReadInt32();
n++;
...
return n;
}
</script>
</head>
<body>
<h1>Welcome</h1>
You are visitor number <%=CounterValue()%> !
</body>
</html>
short form for
Response.Write(CounterValue());
13

14. .Net FrameWork

‫‪.Net FrameWork‬‬
‫• ‪ ASP.NET‬عضوی از ‪ .Net Framework‬می باشد‪.‬‬
‫• ‪ .Net Framework‬از دو قسمت اصلی تشکیل شده است‪:‬‬
‫– کتابخانه ای از کالس ها‬
‫• شامل کالسهای اولیه مانند آرایه و رشته تا کالسهای تخصصی برای کار با‬
‫فایل‪ ،‬کار با سندهای ‪ XML‬و ‪....‬‬
‫– ‪(Common Language Run Time) CLR‬‬
‫• بخش مرکزی ‪ .net framework‬می باشد که وظیفه اش اجرای کد می‬
‫باشد‪.‬‬
‫• مراحل کامپایل یک برنامه ‪:‬‬
‫– کامپایل سورس کد به ‪.IL‬‬
‫– کامپایل ‪ IL‬به کد مخصوص ‪ platform‬بوسیله ‪.CLR‬‬
‫‪14‬‬

15. .Net FrameWork

‫‪.Net FrameWork‬‬
‫• کدهایی که تحت کنترل ‪ CLR‬اجراش شوند را ‪managed‬‬
‫‪ code‬می گویند‪ .‬یعنی کدهایی که از ‪.net framework‬‬
‫استفاده می کنند ‪ .‬و در غیر این صورت به آن ‪unmanaged‬‬
‫‪ code‬گویند‪.‬‬
‫• ‪ Garbage collection‬توسط ‪ .net framework‬انجام می‬
‫گیرد‪.‬‬
‫• مدیریت خطا با استفاده از ‪ Exception‬ها‪.‬‬
‫‪15‬‬

16. .Net Framework Classes

System.Web (ASP .NET)
Services
Description
UI
HTMLControls
Discovery
WebControls
System.WinForms
Design
Protocols
ComponentModel
System.Drawing
Caching
Security
Drawing2D
Printing
Configuration
SessionState
Imaging
Text
System.Data (ADO .NET)
System.XML
ADO
SQL
XSLT
Design
SQLTypes
XPath
Serialization
System
Collections
IO
Security
Runtime
InteropServices
Configuration
Net
ServiceProcess
Diagnostics
Reflection
Text
Remoting
Globalization
Resources
Threading
Serialization

17. Namespace ها

‫‪ Namespace‬ها‬
‫•‬
‫•‬
‫•‬
‫•‬
‫•‬
‫‪17‬‬
‫‪Namespace‬ها روشی است که ‪ .net‬بمنظور جلوگیری از تداخالت‬
‫نامگذاری مابین کالس ها استفاده می کند‪ ( .‬برای مثال شما کالسی به نام‬
‫‪ customer‬برای نگهداری اطالعات مشتریان در نظر گرفته اید و یک‬
‫نفر دیگر هم در پروژه از همین نام استفاده کرده است‪.‬‬
‫برای مثال اکثر کالس های پایه ای ‪ .net‬در ‪namespace‬ی به نام‬
‫‪ system‬قرار گرفته است‪.‬‬
‫نحوه دسترسی به یک کالس ‪system.array :‬‬
‫نحوه افزودن یک ‪ namespace‬به یک ‪: page‬‬
‫;‪Using System.Web.UI.WebControls‬‬
‫میکروسافت پیشنهاد می کند که حداقل دو سطح ‪ namespace‬را در‬
‫نظر بگیرید یکی برای نام شرکت و دیگری نام بسته نرم افزاری که در‬
‫حال نوشتن آن هستید‪.‬‬

18. Namespace ها

‫ ها‬Namespace
Public Class NewClass
[Procedures and Functions]
End Class
Public Class NewClass
[Procedures and Functions]
End Class
18

19. Namespace ها

‫ ها‬Namespace
Namespace One
Public Class NewClass
[Procedures and Functions]
End Class
End Namespace
Namespace Two
Public Class NewClass
[Procedures and Functions]
End Class
End Namespace
19

20. Namespace ها

‫‪ Namespace‬ها‬
‫• ‪System namespace‬‬
‫– ‪ namespace ، System namespace‬اصلی برای ساخت‬
‫‪ ASP.NET‬و همه برنامه های کاربردی دیگر مبتنی بر ‪NET‬‬
‫‪ .Framework‬است‪ .‬هر چیزی که در برنامه کاربردی شما قابل‬
‫انجام باشد از طریق ‪ System namespace‬کنترل می شود‪.‬‬
‫– هنگام ایجاد یک برنامه تحت وب ‪ namespace‬های زیر به‬
‫صفحات ‪ asp.net‬اضافه می شوند‪.‬‬
‫‪20‬‬

21. Namespace ها

‫ ها‬Namespace
• System
• System.ComponentModel.Design
• System.Data
• System.Drawing
• System.Web.SessionState
• System.Web
• System.Web.UI
• System.Web.UI.WebControls
• System.Web.UI.HTMLControls
21

22. Namespace ها

‫‪ Namespace‬ها‬
‫• ‪ :System.Data‬امکان دسترسی به کالس ها و‬
‫رابطهایی را برای دسترسی به داده ها از طریق‬
‫‪ADO.NET‬‬
‫• ‪ :System.Web‬کالس ها و رابطهایی تامین می کند که‬
‫ارتباط مرورگر‪/‬سرویس دهنده را امکان پذیر می کنند‪.‬‬
‫این ‪ namespace‬دربرگیرنده کالس ‪HTTPRequest‬‬
‫(فراهم کننده اطالعات وسیعی درباره درخواست‬
‫‪ HTTP‬جاری)‪ ،‬کالس ‪ HTTPResponse‬است‪.‬‬
‫‪22‬‬

23. Namespace ها

‫‪ Namespace‬ها‬
‫• ‪ :System.Web.UI‬فراهم کننده کالس ها و رابطهایی‬
‫برای رابط واسط کاربر برنامه کاربردی ‪ASP.NET‬‬
‫است که موجب می شوند برنامه کاربردی با سطوح‬
‫مختلف صفحه‪ ،‬ارتباط برقرار کند‪ .‬کالس اصلی این‬
‫‪ ،namespace‬کالس ‪ Page‬می باشد که دربرگیرنده‬
‫همه خصوصیتها‪ ،‬متدها‪ ،‬و سازنده های صفحه است‪.‬‬
‫‪23‬‬

24. Namespace ها

‫‪ Namespace‬ها‬
‫برای‬
‫• ‪:System.Web.UI.WebControls‬کالسهايی‬
‫عناصر ‪ HTML‬استاندارد‪ ،‬شامل فرم ها‪ ،‬کنترل‬
‫های ورودی‪ ،‬جداول‪ ،‬و غيره فراهم می کند‪ .‬اين‬
‫کنترلها همانند تگهای عادی ‪ HTML‬هستند با‬
‫اين تفاوت که دارای دو صفت اضافه تر‬
‫”‪ runat="server‬و ”‪ id = “controlname‬می باشند‪.‬‬
‫‪24‬‬

25. Namespace ها

‫‪ Namespace‬ها‬
‫•‬
‫•‬
‫•‬
‫•‬
‫•‬
‫‪25‬‬
‫برخی فضانام های مهم و پرکاربرد دیگر به شرح زیر می باشند‪.‬‬
‫‪ :System.IO‬دربرگیرنده رابط ها و کالس هایی است که امکان خواندن‬
‫و نوشتن همگام و غیرهمگام فایل ها و جریانهای داده را فراهم می کنند‪.‬‬
‫‪ :System.Data.OleDb‬امکان دسترسی به کالس ها و رابطهای‬
‫مخصوص دسترسی به یک منبع داده از طریق ‪ oledb‬را فراهم می کند‪.‬‬
‫‪ :System.Web.Security‬امکان دسترسی به کالسها و رابطهای‬
‫مخصوص امنیت برنامه کاربردی ‪ ASP.NET‬را فراهم می کند‪.‬‬
‫دستیابی به رمزنگاری‪ ،‬مجوزها‪ ،‬و …‬
‫‪ :System.XML‬امکان دسترسی به کالسها و رابطهای مخصوص‬
‫پردازش اسناد ‪ XML‬را فراهم می کند‪.‬‬

26. ASP.NET

26

27. ASP.NET

27

28. ASP.NET

28

29. ASP.NET

29
English     Русский Правила