Similar presentations:
برنامه سازی وب 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 languagesSo 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 HTMLMy.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 codeCounter.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.aspxReturned 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 ها
هاNamespacePublic Class NewClass
[Procedures and Functions]
End Class
Public Class NewClass
[Procedures and Functions]
End Class
18
19. Namespace ها
هاNamespaceNamespace 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را فراهم می کند.