برترین مقالات کامپیوتر

برترین مقالات کامپیوتر

برترین مقالات کامپیوتر

برترین مقالات کامپیوتر

دستیابی به بانک اطلاعاتی Access با استفاده از VB.NET

در این مقاله قصد داریم به نحوه  بازیابی و نمایش اطلاعات موجود در یک بانک اطلاعاتی Access اشاره نمائیم . هدف از مقاله فوق ، پرداختن به تمامی رویکردهای موجود در این زمینه نبوده و صرفا" به معرفی یکی از گزینه های موجود در این زمینه اشاره خواهد شد. در این راستا از تکنولوژی های ASP.NET ، ADO.NET و VB.NET استفاده خواهد شد . از کلاس های  OleDbConnection ، OleDbCommand و OleDbDataReader  مربوط به  ADO.NET  بمنظور انجام عملیات لازم در ارتباط با بانک اطلاعاتی ، از ASP.NET بمنظور ایجاد فرم وب و ارائه داده با استفاده از کنترل سرویس دهنده Table و از زبان VB.NET بمنظور نوشتن دستورالعمل های مورد نظر استفاده می گردد .
در ابتدا لازم است با سه کلاس
ADO.NET که در ادامه از آنان استفاده خواهد شد ، بیشتر آشنا شویم :
  • کلاس OleDbConnection . شی فوق ، یک اتصال منحصر بفرد با یک منبع داده را  ایجاد می نماید. در رابطه با یک بانک اطلاعاتی سرویس گیرنده / سرویس دهنده ، این امر معادل یک اتصال شبکه به سرویس دهنده است . با توجه به قابلیت های حمایت شده توسط native OLE DB Provider ، برخی از متدها و یا خصلت ها مربوط به شی OleDbConnection ممکن است در دسترس و قابل استفاده نباشد . زمانیکه نمونه ای  از OleDbConnection ایجاد می گردد ، تمامی خصلت های مربوطه ، مقدار اولیه خود را دارا خواهند بود . پس از اتمام عملیات موردنظر در ارتباط با بانک اطلاعاتی ،  می بایست با فراخوانی Close و یا Dispose اقدام به  غیر فعال نمودن  اتصال ایجاد شده با بانک اطلاعاتی مربوطه نمود.

  • کلاس OleDbCommand .  یک عبارت SQL و یا Stored procedure را بمنظور اجراء در رابطه با یک منبع داده ارائه می نماید. کلاس فوق از متدهای زیر بمنظور اجرای دستورات در رابطه با یک منبع داده استفاده می نماید.
     ExecuteReader  . متد فوق ، دستوراتی را اجراء می نماید که خروجی آنان شامل سطرهائی خواهد بود.
     ExecuteNonQuery . باعث اجرای دستوراتی نظیر
    SQL INSERT,DELETE,UPDATE و SET خواهد شد .
     ExecuteScalar  . بازیابی صرفا" یک مقدار از یک بانک اطلاعاتی

  • کلاس OleDbDataReader . متد فوق ، امکان خواندن سطرهائی از داده موجود در یک منبع داده را فراهم می نماید( فقط بسمت جلو)  . بمنظور ایجاد یک OleDbDataReader ، می بایست متد ExecuteReader مربوط به شی OleDbCommand فراخوانده شود. مادامیکه OleDbDataReader در حال استفاده است (اتصال مرتبط OleDbConnection ) ، عملیات دیگری را در ارتباط با OleDbConnection  نمی توان انجام داد .

امکانات مورد نیاز
برای دنبال نمودن این مقاله و اجرای نمونه مثالی که در ادامه بررسی می گردد ، به امکانات زیر نیاز خواهد بود :

  • نصب یکی از نسخه های ویندوز 2000 و یا نسخه ویندوز 2003
  • نصب IIS 
  •  نصب فریمورک دات نت نسخه 1.0 ,یا نسخه 1.1
  • یک بانک اطلاعاتی نمونه اکسس نظیر Northwind

ایجاد یک برنامه وب ASP.NET با استفاده از VB.NET
بمنظور ایجاد یک برنامه وب
ASP.NET با استفاده از VB.NET مراحل زیر را دنبال می نمائیم :

  •  اجرای برنامه ویژوال استودیو دات نت
  • از طریق منوی File ، گزینه New و در ادامه Project را انتخاب نمائید .
  •  در جعبه محاوره ای New Project ، در بخش Project Types گزینه Visual Bacic Projects را انتخاب ( کلیک ) و در ادامه ASP.NET Web Application  را انتخاب نمائید .  
  •  در فیلد Location ، بجای نام پیش فرض #WebApplication ، نام TestAccessDB را انتخاب نمائید . در صورتیکه از یک سرویس دهنده محلی استفاده میگردد ، می توان  نام سرویس دهنده را http://localhost در نظر گرفت . بدین ترتیب در فیلد Location ، آدرس مربوطه بصورت زیر نشان داده خواهد شد : http://localhost/TestAccessDB

ایجاد یک فرم وب نمونه 
در نمونه کد نوشته شده از کنترل سرویس دهنده
Table مربوط به ASP.NET استفاده شده که بصورت پویا یک نمایش ساده از داده بازیابی شده را نشان خواهد داد. ASP.NET ، مجموعه متنوعی از کنترل های انعطاف پذیر را ارائه که می توان از آنان با توجه به رویکردهای متفاوت در رابطه با نمایش داده استفاده نمود. بمنظور ایجاد یک فرم وب در پروژه ایجاد شده در مرحله قبل ، مراحل زیر را دنبال می نمائیم :

  • اضافه نمودن یک فرم جدید با نام DataSample.aspx  به برنامه وب ASP.NET در ویژوال استودیو دات نت . بمنظور انجام خواسته فوق ، دو مرحله زیر را دنبال می نمائیم :
    مرحله یک : در
    Solution Explorer ، بر روی گره Project کلیک سمت راست نموده و گزینه Add  و در ادامه گزینه Add Web Form انتخاب گردد.
    مرحله دو : درفیلد
    Name ، نام DataSample.aspx را درج و در ادامه گزینه Open
    انتخاب گردد .

  • از طریق Toolbox مربوط به Web Forms Tab ، یک Table ASP.NET Server Control را انتخاب ( Drag ) و بر روی صفحه aspx . مستقر نمائید ( در حالت Desgin view ) .

  • در Properties نام ID را به DisplayTable تغییر دهید .

  • در Solution Explorer ، بر روی صفحه aspx . ، کلیک سمت راست نموده و گزینه View Code را انتخاب نمائید .

  •  مرجع namespace زیر را در بالاترین قسمت فایل کلاس code-behind وارد نمائید .

 

Imports System.Data.OleDb

  • کد زیر را در ارتباط با رویداد  Page_load در نظر می گیریم :

Page_Load Event handler

Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

استفاده از یک متغیر رشته ای بمنظور ذخیره سازی Connectionstring'

  Dim connectString As String = "Provider=Microsoft.Jet.OLEDB.4.0;" &_
 
"Data Source=C:MyDBNWIND.MDB"

ایجاد یک شی OleDbConnection و ارسال مقدار متغیر ConnectionString '

  Dim cn As OleDbConnection = New OleDbConnection(connectString)

فعال نمودن Connection'

  cn.Open()

استفاده از یک متغیر بمنظور ذخیره عبارت SQL'

  Dim selectString As String = "SELECT CustomerID, ContactName, Phone FROM Customers"

ایجاد یک شی OledbCommand'
در این خط متغیر عبارت SQL و شی OleDbConnection ، ارسال می گردد '

  Dim cmd As OleDbCommand = New OleDbCommand(selectString, cn)

ارسال CommandText به Connection و ایجاد یک OleDbDataReader '
OleDbDataReader
  از نوع " فقط بسمت جلو " خواهد بود'

  Dim reader As OleDbDataReader = cmd.ExecuteReader()

تنظیم عرض جدول '

  DisplayTable.Width = Unit.Percentage(90.0)

ایجاد یک سطر جدید برای اضافه نمودن عنوان جدول'

  Dim tableHeading As TableRow = New TableRow()

ایجاد و اضافه نمودن سلول های  شامل ستون Customer ID  '

  Dim customerIDHeading As TableHeaderCell = New TableHeaderCell()
  customerIDHeading.Text = "Customer ID"
  customerIDHeading.HorizontalAlign = HorizontalAlign.Left
  tableHeading.Cells.Add(customerIDHeading)

ایجاد و اضافه نمودن سلول های  شامل ستون Contact Name   '

   Dim contactNameHeading As TableHeaderCell = New TableHeaderCell()
   contactNameHeading.Text = "Contact Name"
   contactNameHeading.HorizontalAlign = HorizontalAlign.Left
   tableHeading.Cells.Add(contactNameHeading)

ایجاد و اضافه نمودن سلول های  شامل ستون Phone   '

    Dim phoneHeading As TableHeaderCell = New TableHeaderCell()
    phoneHeading.Text = "Phone"
    phoneHeading.HorizontalAlign = HorizontalAlign.Left
    tableHeading.Cells.Add(phoneHeading)

    DisplayTable.Rows.Add(tableHeading)

تکرار در بین داده انتخابی نتایج و افزودن داده برای هر یک از ستون های مورد نظر در جدول '

    While(reader.Read())
       Dim detailsRow As TableRow = New TableRow()
       Dim customerIDCell As TableCell = New TableCell()
       customerIDCell.Text = reader("CustomerID").ToString()
       detailsRow.Cells.Add(customerIDCell)
       Dim contactNameCell As TableCell = New TableCell()
       contactNameCell.Text = reader("ContactName").ToString()
       detailsRow.Cells.Add(contactNameCell)
       Dim phoneCell As TableCell = New TableCell()
       phoneCell.Text = reader("Phone").ToString()
       detailsRow.Cells.Add(phoneCell)
       DisplayTable.Rows.Add(detailsRow)
    End While

بستن  Connection'

    reader.Close()
   cn.Close()
End Sub

  • مقدار متغیر ConnectString در ابتدای کد نوشته شده فوق را تغییر و آن را به محلی که بانک اطلاعاتی موجود است ، اشاره دهید .

  •  از طریق منوی File ، گزینه Save All را انتخاب تا فرم وب و سایر فایل های مرتبط با پروژه ، ذخیره گردد .

  • از طریق منوی Build ، گزینه Build Solution را بمنظور ایجاد پروژه ، فعال نمائید.

  • در Solution Explorer ، بر روی DataSample.aspx کلیک سمت راست و در ادامه گزینه View in Browser را انتخاب نمائید . در ادامه صفحه در مرورگر نمایش و شامل داده موجود در بانک اطلاعاتی مربوطه است .

اشکالات و خطاهای احتمالی
درزمان اجراء ، ممکن است با خطائی مانند زیر مواجه شویم :

The Microsoft Jet database engine cannot open the file 'C:MyDBNWIND.MDB'.
 It is already opened exclusively by another user, or you need permission to view its data.

  • خطای فوق ، اغلب بدلیل عدم داشتن مجوز لازم بمنظور دستیابی به فایل ( فایل بانک اطلاعاتی با انشعاب mdb . ) می باشد . بصورت پیش فرض ،  ASP.NET تحت ASPNET account  در فریمورک دات نت نسخه یک و یا NetworkService  در فریمورک دات نت نسخه 1،1 اجراء می گردد.در این رابطه لازم است تغییرات لازم در رابطه با  مجوز دستیابی به فایل mdb . و فولدری که شامل فایل است ، اعمال گردد .

  • از نصب عناصر مورد نیاز Microsoft Jet database بر روی سیستم ، مطمئن گردید. در صورتیکه MDAC 2.6 نصب شده باشد ( Microsoft Data Access Components 2.6) ، عناصر Jet را شامل نمی گردد . در چنین مواردی می بایست آخرین نسخه Jet 4.0 Service Pack ، بر روی سیستم نصب گردد.

ذخیره و بازیابی اطلاعات کاربران در برنامه های وب

مهمترین رسالت برنامه های کامپیوتری ارتباط با کاربران و پاسخگوئی به نیاز آنان با توجه به پتانسیل های پیش بینی شده در برنامه می باشد. شناسائی کاربران توسط برنامه های کامپیوتری می تواند زمینه ارائه سرویس ها و خدمات بهینه تری را فراهم نماید( ارائه سرویس ها و خدمات مشخص شده به گروهی خاص از کاربران )  . برنامه های وب نیز از این قاعده مستثنی نبوده و با توجه به ماهیت Stateless بودن پروتکل ارتباطی  بین سرویس گیرنده و سرویس دهنده ( ارسال درخواست ، پاسخ به درخواست ، عدم بخاطر سپردن  اطلاعاتی در ارتباط با در خواست ارسالی و پاسخ دریافتی ) ، می بایست تمهیدات خاصی بمنظور شناسائی  کاربران اتخاذ گردد. برخی از برنامه های وب ، کاربران را ملزم می نمایند که در ابتدا یک فرم را تکمیل و اصطلاحا" ریجستر گردند . در چنین برنامه هائی ، در صورتیکه کاربر مجددا" از برنامه وب استفاده نماید ( ملاقات مجدد وب سایت مربوطه ) ، امکان شناسائی کاربر با بهره گیری از راهکارهای متفاوتی وجود خواهد داشت ( شناسائی کاربر بر اساس بازیابی اطلاعات ثبت شده ) . وب سایتی را در نظر بگیرید که از طریق آن محصولاتی عرضه و توسط کاربران خریداری می گردد . در زمان خرید کالا توسط کاربران ، سایت موردنظر می تواند اقدام به دریافت اطلاعات خریدار و ثبت آنان بر اساس مکانیزمهای متفاوت نماید . در صورتیکه کاربر فوق ، مجددا" از این سایت کالائی را خریداری نماید ، می توان اطلاعات مربوط به وی را (اطلاعات شناسنامه ای ، آدرس و ... ) بصورت اتوماتیک در فرم  سفارش جدید، درج نمود .

شناسائی  کاربران برنامه هاب وب
یکی از روش هائی که برنامه های وب را قادر به شناسائی کاربران می نماید، الزام کاربران  به درج نام و رمز عبور بمنظور استفاده از برنامه می باشد. برنامه های وب ، همچنین قادر به شناسائی کاربران از طریق اطلاعات ذخیره شده بر روی کامپیوتر کاربران  و به شکل "کوکی " می باشند. کوکی ، فایل کوچکی بوده  که یک برنامه وب قادر به نوشتن آن  بر روی کامپیوتر سرویس گیرنده است .
از مهمترین مزایای کوکی ، می توان به تعامل نامحسوس با  کاربر اشاره نمود. در چنین مواردی ، کاربران  هر مرتبه که سایت را ملاقات می نمایند ، الزامی به  Log on ، نخواهند داشت . ( اطلاعات آنان ، بصورت اتوماتیک و در صورت ضرورت در دسترس و قابل استفاده است) . مهمترین نقطه ضعف در جهت  استفاده از  کوکی ، به تنظیم مرورگرها توسط کاربران بمنظور عدم پذیرش کوکی، برمی گردد .برخی از کاربران تمایل و علاقه ای به  ذخیره سازی اطلاعات از طریق یک سایت بر روی کامپیوتر خود را نداشته و تصور می نمایند  که ممکن است از اطلاعات فوق ، بمنظور ردیابی آنان در زمان استفاده از اینترنت ، سوء استفاده  گردد. بنابراین در مواردیکه قصد استفاده از کوکی وجود داشته باشد ، می بایست در ابتدا توانائی سرویس گیرنده برای پذیرش کوکی بررسی گردد .
در زمان استفاده از کوکی بمنظور ذخیره و بازیابی اطلاعات کاربران ، می توان  از دو رویکرد متفاوت استفاده نمود :

  •  ذخیره تمامی اطلاعات کاربران بعنوان یک کوکی بر روی ماشین سرویس گیرنده. استفاده از روش فوق ، درمواردیکه اطلاعات کاربر ساده بوده و سرویس دهنده ضرورتی به استفاده از آنان بمنظور تکمیل عملیات خود نداشته باشد ، می تواند مفید باشد .

  • ذخیره یک کلید شناسائی بر روی ماشین سرویس گیرنده و بازیابی سایر  اطلاعات کاربر از طریق یک منبع داده بر روی سرویس دهنده با توحه به کلید شناسائی .

در ادامه به بررسی هر یک از رویکردهای فوق ، خواهیم پرداخت.

ذخیره سازی اطلاعات کاربران بر روی سرویس گیرنده
برای ذخیره  یک کوکی  بر روی ماشین سرویس گیرنده ، مراحل زیر را دنبال می نمائیم :

  • بررسی و حصول اطمینان از توانائی  سرویس گیرنده بمنظور پذیرش کوکی ( استفاده از خصلت Cookies مربوط به شی مرورگر) .
  • در صورت حمایت  سرویس گیرنده از کوکی ، بررسی وجود کوکی بر روی ماشین سرویس گیرنده ( استفاده از مجموعه Cookies مربوط به شی Request )
  • در صورت عدم وجود کوکی ، ایجاد یک کوکی جدید با استفاده از کلاس HttpCookie .
  • مقداردهی مناسب  خصلت های Expiration و Value .
  • افزدون شی Cookie به مجموعه Cookies مربوط یه شی Response .

برنامه زیر( روتین مربوط به رویداد Page_Load ) ، نحوه ایجاد یک کوکی و تشخیص آخرین مرتبه ملاقات سایت توسط کاربر را نشان می دهد.در برنامه فوق ، بررسی لازم در خصوص پدیرش کوکی از طرف سرویس گیرنده ، صورت گرفته و در صورتیکه اولین مرتبه است که کاربر سایت را ملاقات می نماید ، یک کوکی جدید ایجاد و در غیر اینصورت ، کوکی ایجاد شده ، بهنگام می گردد.

VB.NET

Private Sub Page_Load ( ByVal Sender As System.Object , ByVal  e  As  System.EventArgs ) Handles Mybase.Load
     If   Request.Browser.Cookies Then
           If  Request.Cookie ("LastVisit")  Is Nothing  Then
                Dim CookLastVisit As New HttpCookie( " LastVisit" , Now.ToString ( ) )
                CookLastVisit.Expires = DateTime.Now.AddDays( 1 )
                Response.Cookie.Add (CookLastVisit )
                Response.Write( " First Visit " )
           Else
                 Dim CookLastVisit As HttpCookie = Request.Cookies ("LastVisit")
                 Reuest.Cookies( "LastVisit " )
                 Response.write ( "You last visited this page : " ,CookLastVisit.value )
                 Response.Cookies ( "LastVisit ").Value = Now.ToString ( )
                 Response.Cookies ( "LastVisit").Expires = DateTime.Now.AddDays(1)
            End If
      Else
            Response.Write ( "Your Browser does not accept cookies . " )
      End If
 End Sub          

کوکی ها نسبت به حروف بزرگ و کوچک حساس می باشند . مثلا" LastVisit  مشابه کوکی Lastvisit نمی باشد .خصلت Expires ، نشاندهنده تاریخ مصرف کوکی می باشد. عمر یک کوکی بصورت پیش فرض ، محدود به زمانی است که Session  کاربر خاتمه می یابد. درصورت تنظیم Expires بصورت DateTime.MaxValue ، اعتبار کوکی ایجاد شده، هرگز  به اتمام نخواهد رسید .  بمنظور حذف کوکی از ماشین سرویس گیرنده ، می توان مقدار خصلت Expires را به زمان جاری تغییر داد .کد زیر ، کوکی LastVisit  را حذف می نماید.

VB.NET

Private Sub Page_Load ( ByVal Sender As System.Object , ByVal  e  As  System.EventArgs ) Handles  butRemoveCookie.Click
      Response.Cookies( "LastVisit").Expires = DateTime.Now
End Sub

استفاده از کلید بهمراه کوکی
یک کوکی ، قادربه ذخیره سازی 4096 بایت اطلاعات بوده و می توان بمنظور شناسائی اطلاعات همراه کوکی از کلید ها ، استفاده نمود. برنامه زیر ، مشخصات  کاربر را در یک کوکی با استفاده از  کلیدهای جداگانه ای ذخیره می نماید .

VB.NET

Private Sub Page_Load ( ByVal Sender As System.Object , ByVal  e  As  System.EventArgs ) Handles butOK.Click
     Dim CookUserInfo  As New HttpCookie ("UserInfo")
     CookUserInfo("FirstName") = txtFirstName.Text
     CookUserInfo("LastName") = txtLastName.Text
     CookUserInfo("Street") = txtStreet.Text
     CookUserInfo("City") = txtCity.Text
     CookUserInfo("state") = drpstate.Selected.Item.value
     CookUserInfo("Zip") = txtZip.Text
     CookUserInfo.Expires = DateTime.Now.AddDays ( 30 )
     Response.Cookies.Add( CookUserInfo )
End Sub
 

با استفاده از نام کلید ، می توان اقدام به بازیابی مقادیر نسبت داده شده به هر یک از کلیدهای ذخیره  شده در کوکی نمود .

VB.NET

Private Sub Page_Load ( ByVal Sender As System.Object , ByVal  e  As  System.EventArgs ) Handles butGetData.Click
     Dim CookUserInfo  As New HttpCookie ("UserInfo")
    
txtFirstName.Text = CookUserInfo("FirstName")
     txtLastName.Text  = CookUserInfo("LastName")
     txtStreet.Text = CookUserInfo("Street")
     txtCity.Text  = CookUserInfo("City")
     drpstate.Selected.Item.value = CookUserInfo("state")
     txtZip.Text  = CookUserInfo("Zip") = txtZip.Text
 End Sub

ذخیره سازی اطلاعات کاربران بر روی سرویس دهنده
برای ذخیره اطلاعات کاربران بر روی سرویس دهنده ، می توان از کوکی بعنوان یک ابزار شناسائی ( ایندکس ) بمنظور ذخیره و بازیابی اطلاعات کاربران بر روی سرویس دهنده   در یک بانک اطلاعاتی ، یک فایل XML و سایر امکانات ذخیره سازی داده ، استفاده نمود. برای ذخیره اطلاعات کاربران بر روی سرویس دهنده ، مراحل زیر را دنبال می نمائیم :

  • ایجاد یک کلید منحصر بفرد بمنظور شناسائی کاربر
  • ذخیره کلید منحصر بفرد بعنوان یک کوکی بر روی ماشین کاربر
  • ایجاد یک فایل بر روی سرویس دهنده بمنظور ذخیره سازی اطلاعات کاربران
  • ذخیره اطلاعات کاربران بر روی سرویس دهنده با استفاده از کلید منحصربفرد بعنوان یک ایندکس

در ادامه به بررسی هر یک از مراحل فوق ، خواهیم پرداخت .

ایجاد کلیدهای منحصر بفرد بمنظور شناسائی کاربران
فریمورک دات نت ، Namespace با نام System.Guid را بمنظور ایجاد شناسه های منحصربفرد سراسری (  GUID ) ارائه نموده است . GUID ، یک عدد صحیح 128 بیتی بوده که بعنوان  شناسه ای  منحصربفرد در شبکه ایفای وظیفه می نماید . از GUID می توان بمنظور شناسائی  تمامی چیزها از جمله  کاربران استفاده نمود . کد زیر ، یک GUID را ایجاد و آن را بعنوان یک کوکی بر روی کامپیوتر کاربر و بمنظور شناسائی وی در آینده ، ذخیره می نماید .

VB.NET

Private Sub Page_Load ( ByVal sender As System.Object , ByVal  e  As  System.EventArgs ) Handles butOK.Click
     Dim cookUserID  As HttpCookie = Request.Cookies ( "UserID")
    
     If  cookUserID   Is Nothing  Then
                cookUserID = New HttpCookie ("UserID") , System.Guid.NewGuid ( ). ToString ( ) )
                cookUserID.Name = "UserID"
         
End If
      cookUserID.Expires = DateTime.Now.AddDays( 30 )
      Response.Cookies.Add (cookUserID )
      SetUserInfo (cookUserID.Value )
 End Sub           

ایجاد یک فایل بمنظور ذخیره اطلاعات کاربران
مهمترین هدف ذخیره سازی اطلاعات کاربران، بازیابی آنان با سرعت مناسب و پس از ملاقات مجدد کاربران از سایت و یا اجرای برنامه وب است . با توجه به اینکه این نوع از کاربران با استفاده از یک کلیدمنحصربفرد،  شناسائی می گردند ، می توان چنین تصور نمود که دستیابی به داده از طریق یک Data set انجام خواهد شد. Data set ، با استفاده از متد Find ، قادر به بازیابی سطرهائی از داده  بکمک کلیدها ی منحصربفرد می باشد . استفاده از یک Data set ، بدان معنی است که فایل ایجاد شده بر روی سرویس دهنده ، می بایست یک بانک اطلاعاتی و یا یک فایل XML باشد . استفاده از فایل های XML در مواردیکه داده های مورد نظر برای ذخیره سازی اندک بوده و روابط بین اقلام اطلاعاتی نیز پیچیده نباشد ، توصیه می گردد .
برای ایجاد یک فایل XML ، بمنظور ذخیره سازی اطلاعات کاربران ، مراحل زیر را دنبال می نمائیم :

  • ایجاد یک فایل XML در ویژوال استودیو دات نت شامل داده تستی برای هر یک از فیلدهای داده که قصد ثبت آنان در ارتباط با کاربر وجود دارد .
  • ایجاد یک XML schema  برای فایل XML ایجاد شده در مرحله قبل. با استفاده از  XML schema ، یک Data Set قادر به مراجعه داده موجود در فایل XML  بر اساس نام می باشد .
  • مشخص نمودن فیلد کلید در XML schema . بدین ترتیب،امکان یافتن رکوردهای استفاده کننده از فیلد فوق با استفاده از متد Find ،فراهم می گردد .
  • خواندن XML schema  و فایل XML  درون یک Data set .

ایجاد یک فایل XML
برای ایجاد یک فایل XML در ویژوال استودیو ، گزینه Add New Item را از طریق منوی Project انتخاب و در ادامه XML File  را از طریق  لیست تمپلیت های  نمایش داده شده ، انتخاب می نمائیم .  فایل های XML ، شباهت زیادی به فایل های HTML داشته و در این راستا تفاوت های مهمی نظیر حساسیت نسبت به حروف بزرگ و کوچک و پیروی از یک گرامر خاص ، نیز وجود دارد. از تگ های <element> و <element / >  بمنظور معرفی عناصر داده در یک فایل XML استفاده می گردد . کد زیر، نحوه ایجاد یک فایل XML بمنظور ذخیره سازی مشخصات  کاربر را نشان می دهد .

VB.NET

<?xml version="1.0" encoding="utf-8" ?>
 <USERS xmlns="http://tempuri.org/userprefs.xsd">
    <USER>
    <FIRSTNAME> Ali </FIRSTNAME>
    <LASTNAME> Irani </LASTNAME>
     <STREET> Sabz </STREET>
      <CITY> Tehran </CITY>
      <STATE> Tehran </STATE>
      <ZIP> 3240</ZIP>
              <ID> 12345678 </ID>
    </USER>
</USERS>

ایجاد یک XML Schema
بمنظور استفاده از فایل XML بهمراه یک Data Set ، می بایست در ابتدا یک XML Schema برای Data set ایجاد گردد. XML Schema ، مسئولیت تشریح عناصر داده ئی  موجود در یک فایل XML را بر عهده دارد. XML Schema ،  نام عناصر ، نوع آنان ،کلید بودن فیلد و سایر اطلاعات ضروری را ارائه می نماید . برای ایجاد XML Schema  از یک فایل XML ، زمانیکه فایل XML در پنجره طراحی ویژوال استودیو دات نت ، فعال است ، گزینه Create Schema را از طریق منوی XML ، انتخاب می نمائیم . در ادامه ، ویژوال استودیو دات نت ، فایل Schema را بمنظور تشریح فایل XML  ایجاد می نماید .

 

مشخص نمودن یک فیلد کلید
با افزودن یک کلید اولیه  به XML Schema ، امکان جستجو فراهم  خواهد شد .بدین منظور ، مراحل زیر را دنبال می نمائیم :

  • کلیک سمت راست بر روی عنصر مورد نظری که می خواهیم بعنوان فیلد کلید در نظر گرفته شود.انتخاب گزینه Add و در ادامه New Key  . ویژوال استودیو ، جعبه محاوره ای Edit Key را نمایش خواهد داد .

  • گزینه Dataset Primary Key را انتخاب و دکمه OK را فعال می نمائیم . بدین ترتیب ، امکان استفاده از متد Find مربوط به شی DataSet بمنظور بازیابی سطرهائی از Data set ، فراهم می گردد.

خواندن XML درون یک Data Set
پس از ایجاد فایل XML و XML Schema  ، امکان خواندن و ذخیره آن درون یک Data set ، فراهم می گردد. ( استفاده از متدهای ReadXml و ReadXmlSchema ) . برنامه زیر ، تابعی را نشان می دهد که می توان از آن بمنظور برگرداندن یک Data Set  از یک فایل  XML با نام UserInfo ، استفاده نمود .

VB.NET

Function GetUserData ( ) As DataSet
     Dim strPath  As String = Server.MapPath( Request.ApplicationPath)
     Dim dsUsers  As New DataSet ( )
     dsUsers.ReadXmlSchema ( strPath & "UserInfo.xsd")
     dsUsers.ReadXmlSchema ( strPath & "UserInfo.xml")
     Return dsUsers
End Function

ذخیره اطلاعات کاربر بر روی سرویس دهنده
بمنظور ذخیره سازی اطلاعات کاربران  بر روی سرویس دهنده بصورت یک فایل XML ، می توان از متد SaveXML مربوط به شی Data set  استفاده نمود. روتین SetUserInfo  ( جدول زیر ) ،  از روتین GetUserData بخش قبل ،استفاده نموده تا یک Data set را از یک فایل XML دریافت نماید. در ادامه ، با استفاده از متد Find ، بررسی لازم در خصوص وجود UserID در Data Set صورت می پذیرد.در صورتیکه UserID پیدا نگردد ، روتین SetUserInfo سطری را برای کاربر ( قبل از تنظیم مقادیر متناظر با فیلدها از طریق کنترل های سرویس دهنده بر روی یک فرم وب )، اضافه می نماید. در نهایت ، SetUserInfo ، تمامی داده را به سرویس دهنده برمی گرداند .

VB.NET

Sub SetUserInfo ( ByVal UserID  As String )
      Dim strPath  As String = Server.MapPath( Request.ApplicationPath)
      Dim dsUsers  As  DataSet = GetUserData ( )
      Dim rowUser  As DataRow = dsUsers.Tables("User") .Rows.Find( UserID)
      If  rowUser   Is Nothing Then
           rowUser = dsUsers.Tables ("User") . NewRow
           dsUsers.Tables ( "User").Rows.Add ( rowUser )
     End If
     rowUser ("FirstName") = txtFirstName.Text
     rowUser ("LastName") = txtLastName.Text
     rowUser ("Street") = txtStreet.Text
     rowUser ("City") = txtCity.Text
     rowUser ("state") = drpstate.Selected.Item.Text
     rowUser ("Zip") = txtZip.Text
     rowUser ( "ID" ) = UserID
     dsUsers. Writexml ( strPath & "UserInfo.xml")
End Sub

بازیابی اطلاعات کاربران از یک Data Set
بمنظور بازیابی اطلاعات کاربران از فایل XML ، از روتین GetUIserData برای  ایجاد یک Data Set  از فایل XML استفاده می گردد . در ادامه ، می توان با استفاده از متد Find بمنظور بازیابی سطر مرتبط با UserID استفاده نمود . روتین GetUserInfo ( جدول زیر)  ، اطلاعات کاربر را از Data Set  بازیابی و با استفاده از آن ، کنترل های سرویس دهنده موجود بر روی یک فرم وب را مقداردهی می نماید .

VB.NET

Sub GetUserInfo ( ByVal UserID  As String )
      Dim  dsUsers As Data.DataSet = GetUserData ( )
      Dim   rowUser  As Data.DataRow = dsUsers.Tables("user").Rows.Find(UserID)
      If  rowUser   Is Nothing Then  Exit Sub
      txtFirstName.Text  = rowUser.Item("FirstName")
      txtLastName.Text   = rowUser.Item("LastName")
      txtStreet.Text  = rowUser.Item("Street")
      txtCity.Text = rowUser.Item("City")
      drpstate.Selected.Item.Text = rowUser.Item("State")
      txtZip.Text  = rowUser.Item("Zip")
End Sub

استفاده از CSS در برنامه های وب

ایجاد خروجی مناسب و با فرمت مطلوب ، از جمله اهداف مهم در تمامی برنامه های کامپیوتری است. برنامه های وب نیز از ایـن قاعده مستثنی نبوده و طراحان و پیاده کنندگان این نوع از برنامه ها ، با بهره گیری از امکانات و تکنولوژی های متفاوت سعی در ارائه خروجی مناسب و با فرمت قابل قبول برای مخاطبان خود می نمایند. خروجی یک برنامه وب ، در سطح سرویس گیرندگان ارائه می گردد ، بدیهی است بمنظور فرمت مناسب خروجی برنامه های وب ، می بایست بر تکنولوژی هائی  متمرکز گردید که امکان بکارگیری آنان در سطح سرویس گیرنده و از طریق مرورگر کاربران ، میسر می باشد . مسئولیت میزبان نمودن بخش رابط کاربر برنامه های وب برعهده مرورگر بوده و لازم است تمامی تلاش های انجام شده در این خصوص با تاکید بر اهمیت و جایگاه مرورگر ها ، سازماندهی و مدیریت گردد . ASP.NET ( پلات فرم دات نت برای ایجاد برنامه های وب ) ، از دو روش  عمده در ارتباط با  ایجاد فرمت مناسب خروجی ( Formatting) برای برنامه های وب ، استفاده می نماید :
  •  استفاده از CSS . از تکنولوژی CSS)Cascading style sheet) ،  بمنظور کنترل شکل ظاهری عناصر موجود بر روی یک فرم وب استفاده می گردد . از امکانات CSS ، می توان در جهت تنظیم رنگ ، اندازه ، فونت  و رفتار عناصر HTML موجود بر  روی یک صفحه وب استفاده نمود .

  •  استفاده از XSLT . از تکنولوژی XSLT)Extensible Stylesheet Language Transformation ) ، بمنظور تبدیل اطلاعات یک فایل XML به خروجی HTML و  استقرار اطلاعات فوق بر روی یک فرم وب ، استفاده می گردد . XSLT ، داده مورد نیاز را از فایل XML دریافت و پس از تبدیل آنان به عناصر HTML ،  سبک های ( Styles )  مشخص شده را در رابطه با هر یک از عناصر بکار می گیرد .

در این مقاله قصد داریم به بررسی نحوه استفاده از CSS ، بمنظور تعریف فرمت خروجی برنامه های وب پرداخته و در مقاله ای جداگانه با نحوه استفاده از XSLT ، آشنا شویم .
CSS ، مسئولیت جمع آوری و سازماندهی تمامی اطلاعات مرتبط با فرمت بکارگرفته شده در ارتباط با عناصر HTML موجود بر روی یک فرم وب را برعهده دارد . با توجه به  ذخیره سازی  اطلاعات فوق در یک مکان ، مدیریت و اعمال سیاست های جدید در رابطه با شکل ظاهری یک برنامه وب ، بسادگی انجام خواهد شد . ویژوال استودیو دات نت ، ابزارهای لازم بمنظور ایجاد و  ویرایش Style  را ارائه نموده است. در زمان ایجاد یک برنامه وب با استفاده از ویژوال استودیو دات نت ، یک Style sheet پیش فرض نیز ایجاد می گردد .( بعنوان بخشی از یک پروژه جدید برنامه وب ، ) . لازم است به این نکته اشاره گردد که  فقط برای پروژه های ویژوال بیسک دات نت ، بصورت اتوماتیک یک Style sheet پیش فرض ، ایجاد می گردد. برای پروژه های ویژوال سی شارپ ، می بایست  یک style sheet ، ایجاد نمود.
بمنظور اعمال فرمت دلخواه در رابطه با خروجی یک برنامه وب ، می توان در سه سطح متفاوت این کار راا انجام داد :

  • Global . سبک های تعریف شده  دریک فایل جداگانه ذخیره و تمامی صفحات می توانند از آن استفاده نمایند . 
  • Page . سبک های موردنظر در بخش Head یک صفحه تعریف  و تمامی عناصر موجود بر روی صفحه قادر به استفاده از آنان خواهند بود.
  • Inline . سبک های مورد نظربعنوان خصلت یک عنصر HTML تعریف  و صرفا" همان عنصر قادربه استفاده از آنان خواهد بود .

 اولویت هر یک از سطوح فوق ، مشابه تعریف یک متغیر و محدوده ( Scoping ) استفاده از آن می باشد. سبک های تعریف شده Inline دارای اولویت بیشتر نسبت به Page بوده و سبک های Page دارای اولویت بیشتری نسبت به Global می باشند . مثلا" در صورتیکه با استفاده از هر یک  از روش های فوق ، سبک خاصی بمنظورنحوه نمایش یک پاراگراف ، تعریف شده باشد ، سبک تعریف شده inline دارای اولویت بیشتری خواهد بود.با توجه به اولویت مجموعه قوانین  تعریف شده  مربوط به سبک نمایش ، از  Style Sheet ها ، بعنوان Cascading  نیز یاد می گردد . کد زیر ، نحوه استفاده از سه روش فوق را بمنظور تعریف Style  ، نشان می دهد .

Style types definition

<HTML>
       <HEAD>
                    <title> WebForm1 </title>
                     <!--  (1) Style Sheet reference . --->
                     <LINK REL="StyleSheet" Type="text/css" HREF="Test.css">
                     <!-- (2)  Page-Level style definition -->
                      <Style>
                          p {
                                font -family : 'Times New Romans' , Thoma , font-size:medium ;
                               }
                      </Style>
         </HEAD>
                       <Body>
                            <P> The Alignment is from the style sheet . </p>
                            <P> The font is from the style in the page's head element . </P>
                             <!-- (3) Inline style definition -->
                              <
P style="FONT-SIZE : large ; FONT - STYLE : italic " > the italic is from the inline style . </P>
                      </Body>     
  </HTML>

Test.css file

<!-- (1) From Styles.css sheet referenced in HEAD element . -->
   P
     {
        font-size : small ;
        text - align : center ;
     }
 

در مثال فوق ، نحوه نسبت دهی خصلت Style  به یک  عنصر و در سه سطح متفاوت نشان داده شده است . برای خصلت font-size ، در سه سطح  متفاوت ، style تعریف شده است .در مواردیکه خصلت فوق ، بصورت Inline بهمراه یک عنصر HTML ، استفاده شده است ، تمامی تعاریف موجود ( در سطح Page و یا بصورت Reference ) نادیده گرفته می شود و اولویت  با سبک تعریف شده بصورت Inline ، خواهد بود . تعریف انجام شده در رابطه با اندازه فونت در فایل Test.css ، عملا" در صفحه فوق ، استفاده نخواهد شد ، چراکه در صفحه وب نیز برای خصلت فوق و در سطح Page  ، سبک لازم تعریف و دارای اولویت بیشتری  نسبت به سبک تعریف شده در فایل Test.css ، می باشد . خصلت های text-align , font-family و font-style صرفا" یک مرتبه تعریف شده اند، بنابراین  هر یک از آنان دارای تاثیر خاص خود می باشند .

تعریف و ذخیره سازی Style در یک فایل Style sheet ( فایلی با انشعاب css ) دارای مزایای عمده ای نسبت به تعریف و استفاده از آنان بصورت محلی در هر یک از فرم های وب و یا استفاده از آنان بصورت Inline بهمراه عناصر HTML ، است :

  • پشتیبانی و  نگهداری مجموعه قوانین تعریف شده ، صرفا" از طریق یک محل انجام خواهد شد . بنابراین ، تغییرات مورد نیاز صرفا"  از یک نقطه اعمال و تمامی برنامه متاثر از آن می گردد.

  • امکان استفاده از چندین style جداگانه که هریک مجموعه قوانین خاصی را تعریف می نمایند ، فراهم می گردد . در چنین مواردی ، می توان با توجه به شرایط و اهداف برنامه از یکی از سبک های تعریف شده بصورت پویا ، استفاده نمود .مثلا" می توان با استفاده از سبک های تعریف شده ، فرمت خروجی مورد نظر را در ارتباط با یک دستگاه خاص ( نمایشگر، چاپگر) ، ایجاد نمود. بعنوان نمونه ، یک برنامه می تواند سه نوع سبک شامل : استاندارد ، Enlarged type و Printer friendly را تعریف نماید که یکی از آنان با توجه به خواسته کاربر ، انتخاب و بکار گرفته شود.

 استفاده از Style Sheet در فرم های وب
در زمان ایجاد یک برنامه وب با استفاده از ویژوال استودیو دات نت ، یک Style sheet جدید با نام Style.css بصورت اتوماتیک نیز ایجاد می گردد. ویژوال استودیو ، در اغلب موارد بصورت اتوماتیک  از Style ایجاد شده  در هر یک از صفحات وب و یا فرم های وب ، استفاده نمی نماید ( فراخوانی فایل فوق، بصورت اتوماتیک انجام نمی شود) . بمنظور استفاده از Style sheet ایجاد شده ، می بایست از یک عنصر لینک در بخش  head مربوط به page استفاده گردد :

Using Global style

<HEAD>
<title>WebForm1</title>
      ...
<LINK REL="StyleSheet" TYPE = "text/css" HREF="Styles.css">
</HEAD>

تغییر Style
بمنظور تغییر Style  تعریف شده و یا ایجاد Style  جدید ، می توان از ابزار Style Builder در ویژوال استودیو دات نت ، استفاده نمود . در این رابطه مراحل زیر را دنبال می نمائیم :

  • فعال نمودن Style Sheet در ویژوال استودیو دات نت . پس از فعال نمودن Style sheet ، ویژوال استودیو دات نت ، تعاریف مرتبط با Style را در پنجره Document نمایش و یک Outline از Style sheet را در پنجره Tool ، نمایش خواهد داد :

  • Style مورد نظر بمنظور اعمال تغییرات را از طریق پنجره Tool ،  انتخاب  می نمائیم . در ادامه ، ویژوال استودیو تعاریف مرتبط با Style را در پنجره Document نشان می دهد 

  • بر روی Style definition ، کلیک راست  نموده (یا کلیک راست  بر روی Style  از طریق پنجره Tool )  و از طریق منوی مربوطه گزینه Build Style را انتخاب می نمائیم .ویژوال استودیو دات نت ، ویزارد Style Builder را فعال می نماید .
     

 


 

  • با استفاده از Style Builder می توان فرمت دلخواه  را در ارتباط با یک Style  تعریف نمود .

افزودن Style
برای افزودن سبک مورد نظر به یک Style خاص ، می توان از نام عنصر استفاده نمود . در این رابطه ،امکان استفاده از اسامی کلاس ها و یا ID مربوط به عناصر نیز وجود دارد .

  • فعال  نمودن Style Sheet ، کلیک راست بر روی پنجره Style sheet و یا Tool و انتخاب Add Rule  از طریق منوی pop up . ویژوال استودیو دات نت در ادامه ویزارد Add Style Rule را فعال می نماید :

  •  انتخاب نوع Style موردنظر که قصد ایجاد آن وجود دارد . در این رابطه می توان اقدام به ایجاد Style در رابطه با عناصر HTML ، کلاس ها و یا  عناصری با ID خاص ، نمود. نام آیتم مورد نظر را تایپ نموده و در ادامه با انتخاب گزینه "<" ( افزودن )،  آیتم انتخابی به مجموعه قوانین ، اضافه گردد .

  • مراحل فوق ، برای هر یک از آیتم هائی که می خواهیم style در رابطه با آنان بکارگرفته شود ، تکرار می گردد.

استفاده از Style بهمراه  کلاس ها
با استفاده از کلاس های Style ، می توان فرمت یکسانی را در رابطه با عناصر متفاوت HTML موجود بر روی یک فرم وب ، بکارگرفت. زمانیکه یک Style  در ارتباط با یک کلاس ایجاد می گردد، ویژوال استودیو دات نت ، با استفاده از مشخصه classname . ، یک تعریف Style را به Style sheet اضافه می نماید.

style class

.emphasis
   {
      font-style :italic ;
    }

 Style Class فوق، مسئولیت ایجاد فرمت مناسب ( ایتالیک ) را برای تمامی عناصری که از این کلاس استفاده می نمایند، برعهده دارد. برای استفاده از Style فوق بهمراه عناصر HTML از خصلت class استفاده میگردد. بمنظور استفاده از style بهمراه کنترل های سرویس دهنده ، از خصلت CssClass استفاده می گردد .

Style class

<P> This paragraph is test <Span Class="emphasis"> some text</span></p>
<asp:TextBox ID="Text1"  Runat="Server" CssClass="emphasis" >some text  </asp:TextBox>

ایجاد Style برای عناصر خاص
با استفاده از ID مربوط به عناصر،می توان Style  مورد نظر در ارتباط با عناصر خاص موجود بر روی یک فرم وب را تعریف نمود. ID مربوط به عناصر ، می بایست برای هر یک از عناصر موجود بر روی صفحه ، منحصربفرد می باشد. فرمت مشخص شده ، صرفا" در رابطه با یک عنصر بر روی هر صفحه بکارگرفته می شود . زمانیکه یک Style rule برای یک عنصر با ID مشخص شده ،ایجاد می گردد ، ویژوال استودیو دات نت ، یک تعریف Style را با استفاده از شناسه elementID #  ایجاد و آن را  به Style sheet ،اضافه می نماید.

Style by element ID

#Inserted
  {
     text-decoration : underline ;
  }
#deleted
  {
      text-decoration : line-through ;
  }

Style های تعریف شده در ویژوال استودیو ، اغلب بصورت صحیح در بخش form designer نشان داده نمی شوند . در صورتیکه خروجی مورد نظر در ارتباط با یک فرمت خاص مشاهده نمی گردد، می توان عملیات زیر  را  دنبال نمود:

  • اطمیان از ذخیره سازی صحیح Style sheet تعریف شده
  • فرم وب را در حالت HTML view و Design view مشاهده و بین آنان سوئیچ نمائید .
  • برروی فرم وب کلیک سمت راست نموده و گزینه View In Browser را بمنظور نمایش فرم وب در مرورگر ، انتخاب نمائید.

ایجاد Style تودرتو
در صورتیکه به تعاریف Style در Style sheet پیش فرض ، ( فایل Styles.css ) نگاهی داشته باشیم ، متوجه خواهیم شد که برخی تعاریف style ، چندین نام عنصر را شامل می شوند . تعاریف فوق  ، فرمت عناصر تودرتو را  مشخص می نماید. Style زیر ، نوع های متفاوتی از Bullet را تعریف می نماید( nested) .

Nested Style

UL  LI {
       list-style-type : square ;
      }
UL LI LI {
        list-style-type : disc ;
       }
UL LI LI {
       list-style-type : circle ;
      }  

بمنظور ایجاد Style های تودرتو ، می توان با استفاده از جعبه محاوره ای Add Style Rule ، چندین  آیتم را به ساختار سلسله مراتبی Style rule اضافه نمود.

تغییر Style Sheet در زمان اجراء
همانگونه که قبلا" اشاره گردید ، می توان چندین Style sheet را تعریف تا  امکان  استفاده از آنان  بصورت پویا و با توجه به شرایط موجود در برنامه در اخیتار کاربر قرارداده شود. ( مشاهده فرم وب ، نسخه چاپی فرم وب  ، ارائه نسخه بزرگتر فرم وب  و ... ) . بمنظور سوئیچ نمودن اتوماتیک بین Style Sheet ها ، می توان از خصلت media استفاده نمود. خصلت فوق ، Style sheet  مورد نظر را در ارتباط با  چاپ  و یا  نمایش بر روی نمایشگر ، مشخص می نماید. کد زیر ، نحوه  استفاده از دو style را بمنظور مشاهده فرم وب بر روی نمایشگر و یا چاپ آن،  نشان می دهد :

Two style sheets for one web form

<LINK REL="stylesheet" TYPE="text/css" HREF="styles.css" media="screen" >
<LINK REL="stylesheet" TYPE="text/css" HREF="print.css"    media="print" >

بمنظور سوئیچ نمودن بین Style sheet در زمان اجراء ، یک اسکریپت سمت سرویس گیرنده را نوشته تا تغییر لازم  در عنصر href  مربوط به لینک style sheet را ایجاد نماید . کد زیر ، یک فرم وب را ایجاد نموده  که بین style sheet های Style1.css و Style2.css ، سوئیچ می نماید ( زمانیکه کاربر بر روی لینک موجود کلیک می نماید ) .

Changing style sheets at run time

<HTML>
<HEAD id=myhead>
<title> ChangeSheets </title>
<LINK ID="ScreenStyle" REL="stylesheet" TYPE="text/css" HREF="Style
1.css">
<Script language="vbscript">
    Sub SwitchSheets( )
         if document.all("screenstyle").GetAttribute("HREF") = "Style1.css" then
                  document.all("ScreenStyle").SetAttribute "HREF" , "Style
2.css" , 0
         else
                  document.all("ScreenStyle").SetAttribute "HREF" , "Style
1.css" , 0
   End Sub
</Script>
</HEAD>
     <body>
           <form id="form1" method="post" runat="server">
                 <h2> Sample Styles </h2>
                  <p> Sample Paragraph </p>
                  <p><a onclick="switchsheets" href="#"> Click here
                  </a> to switch between sheets. </p>
            </form>
   </body>
</HTML>

فریمورک دات نت

فریمورک دات نت ماکروسافت ، تحولات عمده ای را دررابطه با ایجاد و اجرای برنامه های مبتنی بر وب ایجاد نموده است . ASP.NET  یکی از تکنولوژی های متعددی است که بهمراه فریمورک دات نت ، ارائه شده است . در این مقاله با مفاهیم اولیه فریمورک دات نت ، آشنا می شویم .

فریمورک دات نت
دات نت ، یک مدل پیاده سازی نرم افزار است که توسط ماکروسافت ارائه و مهمترین دستاورد آن ، پیاده سازی نرم افزارهای  مستقل از پلات فرم و نوع دستگاه  ، با قابلیت دستیابی  به داده ها از طریق اینترنت ، می باشد . فریمورک دات نت ، زیر ساخت دات نت را ایجاد می نماید.

دات نت پلات فرم چیست ؟
دات نت بر اساس یک معماری "باز" ، شکل یافته و پلات فرمی است که می تواند برای ایجاد و اجرای نسل جدیدی از برنامه های وب و ویندوز استفاده گردد . هدف از پلات فرم دات نت ، تسهیل در پیاده سازی نرم افزارهای وب بوده و از تکنولوژی های اساسی زیر تشکیل شده است :

  • فریمورک دات نت

  • سرویس دهندگان  دات نت

  • سرویس های لازم بمنظور ایجاد بلاک

  • ویژوال استودیو دات نت

در پلات فرم دات نت ، سرویس گیرندگان ، سرویس دهندگان و سرویس ها  ، دارای جایگاهی  مهم  بوده و می توان به موارد زیر در رابطه با آن اشاره داشت :

  • یک مدل برنامه نویسی است  که امکان پیاده سازی سرویس های وب XML و برنامه ها را در اختیار پیاده کنندگان نرم افزار قرار می دهد .

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

  • مجموعه ای از سرویس دهندگان نظیر ویندوز 2000 ، SQL Server ، سرویس دهنده Biztalk  که باعث ارتباط ، اجراء ،  انجام عملیات و مدیریت سرویس های وب XML و برنامه ها می گردد .

  • نرم افزار سرویس گیرنده ، نظیر ویندوز XP ، که به پِیاده کنندگان کمک می نماید تجارب مفید و جامع خود را به مجموعه ای از دستگاهها، تعمیم نمایند. 

  • ابزارهائی نظیر ویژوال استودیو دات نت ، که می توان از آنان بمنظور پیاده سازی سرویس های وب ، برنامه های ویندوز و وب استفاده کرد .

فریمورک دات نت چیست ؟
فریمورک دات نت ، فونداسیون لازم بمنظور ایجاد و اجرای برنامه ها و سرویس های وب XML را ارائه می نماید. ماهیت یکسان ( یکدست )   فریمورک دات نت ، امکان ارتباط  تمامی برنامه ها( برنامه های ویندوز ، وب ، سرویس های وب XML )   را از طریق  یک مجموعه از  ابزارها  و کدهای نوشته  ، فراهم می نماید.  فریمورک دات نت شامل موارد زیر است :

  • CLR)Common Language Runtime) یا همان Runtime .
    Runtime ، مسئولیت رسیدگی به سرویس ها را برعهده داشته و شامل یکپارچگی زبانها ، امنیت و مدیریت حافظه است . در زمان پیاده سازی ، Runtime ویژگی های لازم و مورد نیازرا با هدف تسهیل در پیاده سازی، ارائه می نماید .

  • کتابخانه های کلاس (Class - Libraries )
    کنابخانه های کلاس ، امکان استفاده مجدد از کدها برای اکثر عملیات متداول نظیر دستیابی به داده ها ، پیاده سازی سرویس های وب XML ، فرم های وب و یا ویندوز را فراهم می نماید .

دات نت باعث حل چه مشکلاتی شده است  ؟
فریمورک دات نت ، باعث برطرف شدن مسائل و محدودیت های متعدد  در رابطه با پیاده سازی برنامه های وب از منظر پیاده کنددگان نرم افزار شده است .در این راستا ، به پتانسیل های اینترنت بمنظور برخورد با مسائل و محدودیت های موجود ، بخوبی توجه شده است .با ابداع یک شبکه بزرگ ( اینترنت ) بمنظور اشتراک اطلاعات ، صرفا" برنامه های بسیار اندکی قادر به اجراء و فعالیت بر روی بیش از یک سرویس گیرنده بوده و تعامل اطلاعاتی بین برنامه ها نیز وضعیتی مشابه داشت .محدودیت های فوق ، باعث بروز دو مسئله  مهم در رابطه با پیاده سازی نرم افزار می گردد که می بایست بدرستی با آنان برخورد گردد:

  • پیاده کنندگان ، مجبور به پیاده سازی نرم افزارهای خود در یک میدان محدود می باشند .
  • پیاده کنندگان ، زمان زیادی  را بمظور نوشتن برنامه ها بمنظور کار با پلات فرم و سرویس گیرنده گان متفاوت ،  صرف می نمایند ( این زمان می بایست صرف آفرینش برنامه های جدید گردد).

فریمورک دات نت ، با ارائه یک Runtim که مستقل از نوع  زبان و پلات فرم است ، بر محدودیت های فوق غلبه نموده است.Runtime  فوق،  مستقل از زبان و پلات فرم بوده  واز استانداردهای  XML ، بمنظور نیل به اهداف مورد نظر خود استفاده می نماید. با توجه به عدم وابستگی دات نت به یک زبان خاص ، پیاده کنندگان نرم افزار می توانند از گزینه های متعددی در این زمینه  استفاده  نمایند. امکان اجرای  برنامه های تولید شده ، بر روی سرویس گیرندگانی که دات نت را حمایت می نمایند ، وجود خواهد داشت .Runtime ،اغلب زیرساخت های برنامه ها را کنترل می نماید ،  بنابراین پیاده کنندگان ، ضرورتی به صرف زمان لازم بمنظور ایجاد زیرساخت های مورد نیار خود نداشته و در مقابل می توانند زمان خود را صرف  تمرکز  بر روی منطق برنامه ها ، نمایند .
سرویس های وب XML ، از XML بمنظور ارسال داده استفاده می نمایند . بدین ترتیب ، سرویس گیرندگانی که دارای پتانسیل لازم  در این خصوص می باشند ، قادر به  دریافت داده های مبتنی بر XML ، خواهند بود.  XML ، استانداردی فراگیر و مورد پذیرش تمامی محیط های پیاده سازی  است. اغلب سرویس گیرندگان مدرن، نظیر سیستم های عامل کامپیوتر ، تلفن های سلولی ، دستگاههای PDA ، کنسول های بازی ، قادر به دریافت داده های مبتنی بر  XML ، می باشند .

اجزای فریمورک دات نت
فریمورک دات نت ، فونداسیون لازم بمنظور ایجاد برنامه های مبتنی بر دات نت  را در زمان ترجمه و اجراء ، فراهم و دارای عناصر متفاوتی بمنظور اجرای برنامه های مبتنی بر دات نت است :

  • زیربناء پلات فرم . فریمورک دات نت،  می بایست بر روی یک سیستم عامل اجراء گردد . در حال حاضر، امکان اجرای  فریمورک دات نت بر روی سیستم های عامل 32 بیتی ویندوز نظیر 2000 , XP  ، وجود دارد. در آینده ، امکان اجرای فریمورک دات نت بر روی سایر پلات فرم ها نیز میسر خواهد شد .

  • سرویس های کاربردی و خدماتی . زمانیکه برنامه های کاربردی  نظیر Component Server,Message Queuing   ,IIS  ، بر روی ویندوز 2000 ، اجراء می گردند امکان استفاده از آنان برای پیاده کنندگان وجود خواهد داشت . فریمورک دات نت ، برنامه های فوق را از طریق کلاس های موجود در کتابخانه کلاس دات نت ، تحت تاثیر موثر خود قرار خواهد داد .

  • Net Class library . کتابخانه کلاس فریمورک دات نت ، زمینه استفاده از امکانات و ویژگی های Runtime  را فراهم و باعث تسهیل در پیاده سازی برنامه های مبتنی بر دات نت می گردد . در این راستا ، پیاده کنندگان  می توانند با ایجاد توابعی از کلاس های موردنظر خود ، کلاس ها را توسعه نمایند .کتابخانه های کلاس فریمورک دات نت ، فریمورک دات نت را پیاده سازی می نماید . تمامی برنامه ها  ( برنامه های  وب ، ویندوز و سرویس های وب XML ) از کتابخانه کلاس های فریمورک دات نت یکسان استفاده نموده  که در namespace نگهداری می گردند. تمامی زبانهای مبتنی بر دات نت نیز به کتابخانه یکسانی دستیابی دارند .

  • CLR)Common Language Runtime ) . تکنولوژی  CLR ، باعث تسهیل در پیاده سازی برنامه ها از طریق ارائه یک محیط اجرائی ایمن  ، حمایت از چندین زبان و تسهیل در بکارگیری برنامه ها می گردد . محیط CLR ، همچنین بعنوان یک محیط مدیریت یافته ، عملیات و سرویس های خاصی  نظیر Garbage Collection و امنیت را  بصورت اتوماتیک، انجام خواهد داد .

  • ADO.NET . تکنولوژی ADO.NET ، نسل جدیدی از تکنولوژی ADO بوده و  امکانات حمایتی لازم در رابطه با مدل برنامه نویسی غیرمتصل را ارائه  می نماید. تکنولوژی فوق ، امکانات حمایتی متعددی را نیز در رابطه  با XML ، ارائه می نماید .

  • ASP.NET . تکنولوژی ASP.NET ، یک چارچوب  برنامه نویسی است که بر اساس CLR ، ایجاد می گردد . ASP.NET می تواند بر روی یک سرویس دهنده استفاده  و بکمک آن می توان برنامه های  مبتنی بر وب قدرتمندی را ایجاد کرد . فرم های وب ASP.NET ، یک روش ساده و درعین حال قدرتمند بمنظور ایجاد رابط های کاربر پویا می باشد .

  • سرویس های وب XML . سرویس های وب XML ، عناصر مبتنی بر وبی بوده  که قادر به اشتراک برنامه ها در اینترنت و یا اینترانت می باشند . فریمورک دات نت،  ابزارها و کلاس های لازم برای ایجاد ، تست و توزیع سرویس های وب XML را ارائه می نماید.

  • User Interfacses . فریمورک دات نت سه نوع UI را حمایت می نماید:
    فرم های وب که بهمراه ASP.NET و HTTP کار می نمایند .
    فرم های ویندوز که بر روی کامپیوتر های سرویس گیرنده Win32 اجراء می شوند .
    کنسول دستور ( خط دستور )

  • زبان ها ، هر زبانی که استانداردهای  CLS)Common Language Specification )  را رعایت نماید ، قادر به اجراء توسط   CLR خواهد بود. در فریمورک دات نت ، ماکروسافت حمایت های لازم در رابطه با زبانهائی نظیر VB.NET , Visual C++ ,VB.NET , C#,Jscript.NET را ارائه نموده است .

مزایای استفاده از فریمورک دات نت
در آغاز پیاده سازی برنامه های مبتنی بر ویندوز ، تمامی برنامه های نوشته شده بمنظور استفاده از  API ، از C و یا ++C استفاده می کردند . با مطرح شدن  ویژوال بیسیک و سپس اینترنت ، پیاده کنندگان مجبور به  سفارشی نمودن ( پیاده سازی نسخه هائی خاص )  برنامه های  C++  ،  C،  .برنامه های ویژوال بیسیک و یا ASP  بودند .با استفاده از فریمورک دات نت ، می توان با اتکاء به مهارت های موجود ، اقدام به آفرینش هر نوع نرم افزاری کرد . انتخاب  فریمورک دات نت بمنظور پیاده سازی برنامه ها ، مزایای زیر را بدنبال خواهد داشت :

  • مبتنی بر استانداردهای وب . فریمورک دات نت،  بطور کامل تکنولوژی های موجود در اینترنت نظیر : HTML , HTTP,SOAP,XSLT,XPath و سایر استانداردها را حمایت می نماید.

  •  طراحی مبتنی بر یک مدل یکسان . از پتانسیل های  یک کلاس دات نت ، می توان در هر یک از زبانهای حمایت شده در دات نت و یا مدل برنامه نویسی ، بخوبی استفاده کرد . بنابراین می توان ، بخش هائی از کدهای نوشته شده  را  در برنامه های متعدد استفاده کرد (برنامه های ویندوز، وب ، سرویس های وب XML ) .

  • پیاده کنندگان بسادگی قادر به استفاده از آن می باشند. در فریمورک دات نت ، کد ، بصورت Namespace  های  سلسله مراتبی و کلاس ها ، سازماندهی می گردد . فریمورک دات نت یک Common Type   System)CTS)  را بعنوان سیستم نوع یکسان ، ارائه نموده که  توسط هر زبان سازگاز با دات نت، قابل استفاده  خواهد بود .در سیستم فوق ، تمامی عناصر  زبانها بصورت شی می باشند. این اشیاء قادر به استفاده توسط هر برنامه مبتنی بر دات نت و نوشته شده توسط هر زبان مبتنی بر دا ت نت ، خواهند بود .

  • کلاس های توسعه پذیر . ماهیت سلسله مراتبی فریمورک دات نت،  برای پیاده کنندگان مخفی نخواهد بود .در این راستا می توان به کلا س ها دستیابی و آنها را توسعه داد( مگر اینکه آنها حفاظت شده  باشند ). در این زمینه امکان پیاده سازی توارث از نوع Cross - Language  ، نیز وجود خواهد داشت .

فریمورک دات نت

فریمورک دات نت ماکروسافت ، تحولات عمده ای را دررابطه با ایجاد و اجرای برنامه های مبتنی بر وب ایجاد نموده است . ASP.NET  یکی از تکنولوژی های متعددی است که بهمراه فریمورک دات نت ، ارائه شده است . در این مقاله با مفاهیم اولیه فریمورک دات نت ، آشنا می شویم .

فریمورک دات نت
دات نت ، یک مدل پیاده سازی نرم افزار است که توسط ماکروسافت ارائه و مهمترین دستاورد آن ، پیاده سازی نرم افزارهای  مستقل از پلات فرم و نوع دستگاه  ، با قابلیت دستیابی  به داده ها از طریق اینترنت ، می باشد . فریمورک دات نت ، زیر ساخت دات نت را ایجاد می نماید.

دات نت پلات فرم چیست ؟
دات نت بر اساس یک معماری "باز" ، شکل یافته و پلات فرمی است که می تواند برای ایجاد و اجرای نسل جدیدی از برنامه های وب و ویندوز استفاده گردد . هدف از پلات فرم دات نت ، تسهیل در پیاده سازی نرم افزارهای وب بوده و از تکنولوژی های اساسی زیر تشکیل شده است :

  • فریمورک دات نت

  • سرویس دهندگان  دات نت

  • سرویس های لازم بمنظور ایجاد بلاک

  • ویژوال استودیو دات نت

در پلات فرم دات نت ، سرویس گیرندگان ، سرویس دهندگان و سرویس ها  ، دارای جایگاهی  مهم  بوده و می توان به موارد زیر در رابطه با آن اشاره داشت :

  • یک مدل برنامه نویسی است  که امکان پیاده سازی سرویس های وب XML و برنامه ها را در اختیار پیاده کنندگان نرم افزار قرار می دهد .

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

  • مجموعه ای از سرویس دهندگان نظیر ویندوز 2000 ، SQL Server ، سرویس دهنده Biztalk  که باعث ارتباط ، اجراء ،  انجام عملیات و مدیریت سرویس های وب XML و برنامه ها می گردد .

  • نرم افزار سرویس گیرنده ، نظیر ویندوز XP ، که به پِیاده کنندگان کمک می نماید تجارب مفید و جامع خود را به مجموعه ای از دستگاهها، تعمیم نمایند. 

  • ابزارهائی نظیر ویژوال استودیو دات نت ، که می توان از آنان بمنظور پیاده سازی سرویس های وب ، برنامه های ویندوز و وب استفاده کرد .

فریمورک دات نت چیست ؟
فریمورک دات نت ، فونداسیون لازم بمنظور ایجاد و اجرای برنامه ها و سرویس های وب XML را ارائه می نماید. ماهیت یکسان ( یکدست )   فریمورک دات نت ، امکان ارتباط  تمامی برنامه ها( برنامه های ویندوز ، وب ، سرویس های وب XML )   را از طریق  یک مجموعه از  ابزارها  و کدهای نوشته  ، فراهم می نماید.  فریمورک دات نت شامل موارد زیر است :

  • CLR)Common Language Runtime) یا همان Runtime .
    Runtime ، مسئولیت رسیدگی به سرویس ها را برعهده داشته و شامل یکپارچگی زبانها ، امنیت و مدیریت حافظه است . در زمان پیاده سازی ، Runtime ویژگی های لازم و مورد نیازرا با هدف تسهیل در پیاده سازی، ارائه می نماید .

  • کتابخانه های کلاس (Class - Libraries )
    کنابخانه های کلاس ، امکان استفاده مجدد از کدها برای اکثر عملیات متداول نظیر دستیابی به داده ها ، پیاده سازی سرویس های وب XML ، فرم های وب و یا ویندوز را فراهم می نماید .

دات نت باعث حل چه مشکلاتی شده است  ؟
فریمورک دات نت ، باعث برطرف شدن مسائل و محدودیت های متعدد  در رابطه با پیاده سازی برنامه های وب از منظر پیاده کنددگان نرم افزار شده است .در این راستا ، به پتانسیل های اینترنت بمنظور برخورد با مسائل و محدودیت های موجود ، بخوبی توجه شده است .با ابداع یک شبکه بزرگ ( اینترنت ) بمنظور اشتراک اطلاعات ، صرفا" برنامه های بسیار اندکی قادر به اجراء و فعالیت بر روی بیش از یک سرویس گیرنده بوده و تعامل اطلاعاتی بین برنامه ها نیز وضعیتی مشابه داشت .محدودیت های فوق ، باعث بروز دو مسئله  مهم در رابطه با پیاده سازی نرم افزار می گردد که می بایست بدرستی با آنان برخورد گردد:

  • پیاده کنندگان ، مجبور به پیاده سازی نرم افزارهای خود در یک میدان محدود می باشند .
  • پیاده کنندگان ، زمان زیادی  را بمظور نوشتن برنامه ها بمنظور کار با پلات فرم و سرویس گیرنده گان متفاوت ،  صرف می نمایند ( این زمان می بایست صرف آفرینش برنامه های جدید گردد).

فریمورک دات نت ، با ارائه یک Runtim که مستقل از نوع  زبان و پلات فرم است ، بر محدودیت های فوق غلبه نموده است.Runtime  فوق،  مستقل از زبان و پلات فرم بوده  واز استانداردهای  XML ، بمنظور نیل به اهداف مورد نظر خود استفاده می نماید. با توجه به عدم وابستگی دات نت به یک زبان خاص ، پیاده کنندگان نرم افزار می توانند از گزینه های متعددی در این زمینه  استفاده  نمایند. امکان اجرای  برنامه های تولید شده ، بر روی سرویس گیرندگانی که دات نت را حمایت می نمایند ، وجود خواهد داشت .Runtime ،اغلب زیرساخت های برنامه ها را کنترل می نماید ،  بنابراین پیاده کنندگان ، ضرورتی به صرف زمان لازم بمنظور ایجاد زیرساخت های مورد نیار خود نداشته و در مقابل می توانند زمان خود را صرف  تمرکز  بر روی منطق برنامه ها ، نمایند .
سرویس های وب XML ، از XML بمنظور ارسال داده استفاده می نمایند . بدین ترتیب ، سرویس گیرندگانی که دارای پتانسیل لازم  در این خصوص می باشند ، قادر به  دریافت داده های مبتنی بر XML ، خواهند بود.  XML ، استانداردی فراگیر و مورد پذیرش تمامی محیط های پیاده سازی  است. اغلب سرویس گیرندگان مدرن، نظیر سیستم های عامل کامپیوتر ، تلفن های سلولی ، دستگاههای PDA ، کنسول های بازی ، قادر به دریافت داده های مبتنی بر  XML ، می باشند .

اجزای فریمورک دات نت
فریمورک دات نت ، فونداسیون لازم بمنظور ایجاد برنامه های مبتنی بر دات نت  را در زمان ترجمه و اجراء ، فراهم و دارای عناصر متفاوتی بمنظور اجرای برنامه های مبتنی بر دات نت است :

  • زیربناء پلات فرم . فریمورک دات نت،  می بایست بر روی یک سیستم عامل اجراء گردد . در حال حاضر، امکان اجرای  فریمورک دات نت بر روی سیستم های عامل 32 بیتی ویندوز نظیر 2000 , XP  ، وجود دارد. در آینده ، امکان اجرای فریمورک دات نت بر روی سایر پلات فرم ها نیز میسر خواهد شد .

  • سرویس های کاربردی و خدماتی . زمانیکه برنامه های کاربردی  نظیر Component Server,Message Queuing   ,IIS  ، بر روی ویندوز 2000 ، اجراء می گردند امکان استفاده از آنان برای پیاده کنندگان وجود خواهد داشت . فریمورک دات نت ، برنامه های فوق را از طریق کلاس های موجود در کتابخانه کلاس دات نت ، تحت تاثیر موثر خود قرار خواهد داد .

  • Net Class library . کتابخانه کلاس فریمورک دات نت ، زمینه استفاده از امکانات و ویژگی های Runtime  را فراهم و باعث تسهیل در پیاده سازی برنامه های مبتنی بر دات نت می گردد . در این راستا ، پیاده کنندگان  می توانند با ایجاد توابعی از کلاس های موردنظر خود ، کلاس ها را توسعه نمایند .کتابخانه های کلاس فریمورک دات نت ، فریمورک دات نت را پیاده سازی می نماید . تمامی برنامه ها  ( برنامه های  وب ، ویندوز و سرویس های وب XML ) از کتابخانه کلاس های فریمورک دات نت یکسان استفاده نموده  که در namespace نگهداری می گردند. تمامی زبانهای مبتنی بر دات نت نیز به کتابخانه یکسانی دستیابی دارند .

  • CLR)Common Language Runtime ) . تکنولوژی  CLR ، باعث تسهیل در پیاده سازی برنامه ها از طریق ارائه یک محیط اجرائی ایمن  ، حمایت از چندین زبان و تسهیل در بکارگیری برنامه ها می گردد . محیط CLR ، همچنین بعنوان یک محیط مدیریت یافته ، عملیات و سرویس های خاصی  نظیر Garbage Collection و امنیت را  بصورت اتوماتیک، انجام خواهد داد .

  • ADO.NET . تکنولوژی ADO.NET ، نسل جدیدی از تکنولوژی ADO بوده و  امکانات حمایتی لازم در رابطه با مدل برنامه نویسی غیرمتصل را ارائه  می نماید. تکنولوژی فوق ، امکانات حمایتی متعددی را نیز در رابطه  با XML ، ارائه می نماید .

  • ASP.NET . تکنولوژی ASP.NET ، یک چارچوب  برنامه نویسی است که بر اساس CLR ، ایجاد می گردد . ASP.NET می تواند بر روی یک سرویس دهنده استفاده  و بکمک آن می توان برنامه های  مبتنی بر وب قدرتمندی را ایجاد کرد . فرم های وب ASP.NET ، یک روش ساده و درعین حال قدرتمند بمنظور ایجاد رابط های کاربر پویا می باشد .

  • سرویس های وب XML . سرویس های وب XML ، عناصر مبتنی بر وبی بوده  که قادر به اشتراک برنامه ها در اینترنت و یا اینترانت می باشند . فریمورک دات نت،  ابزارها و کلاس های لازم برای ایجاد ، تست و توزیع سرویس های وب XML را ارائه می نماید.

  • User Interfacses . فریمورک دات نت سه نوع UI را حمایت می نماید:
    فرم های وب که بهمراه ASP.NET و HTTP کار می نمایند .
    فرم های ویندوز که بر روی کامپیوتر های سرویس گیرنده Win32 اجراء می شوند .
    کنسول دستور ( خط دستور )

  • زبان ها ، هر زبانی که استانداردهای  CLS)Common Language Specification )  را رعایت نماید ، قادر به اجراء توسط   CLR خواهد بود. در فریمورک دات نت ، ماکروسافت حمایت های لازم در رابطه با زبانهائی نظیر VB.NET , Visual C++ ,VB.NET , C#,Jscript.NET را ارائه نموده است .

مزایای استفاده از فریمورک دات نت
در آغاز پیاده سازی برنامه های مبتنی بر ویندوز ، تمامی برنامه های نوشته شده بمنظور استفاده از  API ، از C و یا ++C استفاده می کردند . با مطرح شدن  ویژوال بیسیک و سپس اینترنت ، پیاده کنندگان مجبور به  سفارشی نمودن ( پیاده سازی نسخه هائی خاص )  برنامه های  C++  ،  C،  .برنامه های ویژوال بیسیک و یا ASP  بودند .با استفاده از فریمورک دات نت ، می توان با اتکاء به مهارت های موجود ، اقدام به آفرینش هر نوع نرم افزاری کرد . انتخاب  فریمورک دات نت بمنظور پیاده سازی برنامه ها ، مزایای زیر را بدنبال خواهد داشت :

  • مبتنی بر استانداردهای وب . فریمورک دات نت،  بطور کامل تکنولوژی های موجود در اینترنت نظیر : HTML , HTTP,SOAP,XSLT,XPath و سایر استانداردها را حمایت می نماید.

  •  طراحی مبتنی بر یک مدل یکسان . از پتانسیل های  یک کلاس دات نت ، می توان در هر یک از زبانهای حمایت شده در دات نت و یا مدل برنامه نویسی ، بخوبی استفاده کرد . بنابراین می توان ، بخش هائی از کدهای نوشته شده  را  در برنامه های متعدد استفاده کرد (برنامه های ویندوز، وب ، سرویس های وب XML ) .

  • پیاده کنندگان بسادگی قادر به استفاده از آن می باشند. در فریمورک دات نت ، کد ، بصورت Namespace  های  سلسله مراتبی و کلاس ها ، سازماندهی می گردد . فریمورک دات نت یک Common Type   System)CTS)  را بعنوان سیستم نوع یکسان ، ارائه نموده که  توسط هر زبان سازگاز با دات نت، قابل استفاده  خواهد بود .در سیستم فوق ، تمامی عناصر  زبانها بصورت شی می باشند. این اشیاء قادر به استفاده توسط هر برنامه مبتنی بر دات نت و نوشته شده توسط هر زبان مبتنی بر دا ت نت ، خواهند بود .

  • کلاس های توسعه پذیر . ماهیت سلسله مراتبی فریمورک دات نت،  برای پیاده کنندگان مخفی نخواهد بود .در این راستا می توان به کلا س ها دستیابی و آنها را توسعه داد( مگر اینکه آنها حفاظت شده  باشند ). در این زمینه امکان پیاده سازی توارث از نوع Cross - Language  ، نیز وجود خواهد داشت .

فریمورک دات نت

فریمورک دات نت ماکروسافت ، تحولات عمده ای را دررابطه با ایجاد و اجرای برنامه های مبتنی بر وب ایجاد نموده است . ASP.NET  یکی از تکنولوژی های متعددی است که بهمراه فریمورک دات نت ، ارائه شده است . در این مقاله با مفاهیم اولیه فریمورک دات نت ، آشنا می شویم .

فریمورک دات نت
دات نت ، یک مدل پیاده سازی نرم افزار است که توسط ماکروسافت ارائه و مهمترین دستاورد آن ، پیاده سازی نرم افزارهای  مستقل از پلات فرم و نوع دستگاه  ، با قابلیت دستیابی  به داده ها از طریق اینترنت ، می باشد . فریمورک دات نت ، زیر ساخت دات نت را ایجاد می نماید.

دات نت پلات فرم چیست ؟
دات نت بر اساس یک معماری "باز" ، شکل یافته و پلات فرمی است که می تواند برای ایجاد و اجرای نسل جدیدی از برنامه های وب و ویندوز استفاده گردد . هدف از پلات فرم دات نت ، تسهیل در پیاده سازی نرم افزارهای وب بوده و از تکنولوژی های اساسی زیر تشکیل شده است :

  • فریمورک دات نت

  • سرویس دهندگان  دات نت

  • سرویس های لازم بمنظور ایجاد بلاک

  • ویژوال استودیو دات نت

در پلات فرم دات نت ، سرویس گیرندگان ، سرویس دهندگان و سرویس ها  ، دارای جایگاهی  مهم  بوده و می توان به موارد زیر در رابطه با آن اشاره داشت :

  • یک مدل برنامه نویسی است  که امکان پیاده سازی سرویس های وب XML و برنامه ها را در اختیار پیاده کنندگان نرم افزار قرار می دهد .

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

  • مجموعه ای از سرویس دهندگان نظیر ویندوز 2000 ، SQL Server ، سرویس دهنده Biztalk  که باعث ارتباط ، اجراء ،  انجام عملیات و مدیریت سرویس های وب XML و برنامه ها می گردد .

  • نرم افزار سرویس گیرنده ، نظیر ویندوز XP ، که به پِیاده کنندگان کمک می نماید تجارب مفید و جامع خود را به مجموعه ای از دستگاهها، تعمیم نمایند. 

  • ابزارهائی نظیر ویژوال استودیو دات نت ، که می توان از آنان بمنظور پیاده سازی سرویس های وب ، برنامه های ویندوز و وب استفاده کرد .

فریمورک دات نت چیست ؟
فریمورک دات نت ، فونداسیون لازم بمنظور ایجاد و اجرای برنامه ها و سرویس های وب XML را ارائه می نماید. ماهیت یکسان ( یکدست )   فریمورک دات نت ، امکان ارتباط  تمامی برنامه ها( برنامه های ویندوز ، وب ، سرویس های وب XML )   را از طریق  یک مجموعه از  ابزارها  و کدهای نوشته  ، فراهم می نماید.  فریمورک دات نت شامل موارد زیر است :

  • CLR)Common Language Runtime) یا همان Runtime .
    Runtime ، مسئولیت رسیدگی به سرویس ها را برعهده داشته و شامل یکپارچگی زبانها ، امنیت و مدیریت حافظه است . در زمان پیاده سازی ، Runtime ویژگی های لازم و مورد نیازرا با هدف تسهیل در پیاده سازی، ارائه می نماید .

  • کتابخانه های کلاس (Class - Libraries )
    کنابخانه های کلاس ، امکان استفاده مجدد از کدها برای اکثر عملیات متداول نظیر دستیابی به داده ها ، پیاده سازی سرویس های وب XML ، فرم های وب و یا ویندوز را فراهم می نماید .

دات نت باعث حل چه مشکلاتی شده است  ؟
فریمورک دات نت ، باعث برطرف شدن مسائل و محدودیت های متعدد  در رابطه با پیاده سازی برنامه های وب از منظر پیاده کنددگان نرم افزار شده است .در این راستا ، به پتانسیل های اینترنت بمنظور برخورد با مسائل و محدودیت های موجود ، بخوبی توجه شده است .با ابداع یک شبکه بزرگ ( اینترنت ) بمنظور اشتراک اطلاعات ، صرفا" برنامه های بسیار اندکی قادر به اجراء و فعالیت بر روی بیش از یک سرویس گیرنده بوده و تعامل اطلاعاتی بین برنامه ها نیز وضعیتی مشابه داشت .محدودیت های فوق ، باعث بروز دو مسئله  مهم در رابطه با پیاده سازی نرم افزار می گردد که می بایست بدرستی با آنان برخورد گردد:

  • پیاده کنندگان ، مجبور به پیاده سازی نرم افزارهای خود در یک میدان محدود می باشند .
  • پیاده کنندگان ، زمان زیادی  را بمظور نوشتن برنامه ها بمنظور کار با پلات فرم و سرویس گیرنده گان متفاوت ،  صرف می نمایند ( این زمان می بایست صرف آفرینش برنامه های جدید گردد).

فریمورک دات نت ، با ارائه یک Runtim که مستقل از نوع  زبان و پلات فرم است ، بر محدودیت های فوق غلبه نموده است.Runtime  فوق،  مستقل از زبان و پلات فرم بوده  واز استانداردهای  XML ، بمنظور نیل به اهداف مورد نظر خود استفاده می نماید. با توجه به عدم وابستگی دات نت به یک زبان خاص ، پیاده کنندگان نرم افزار می توانند از گزینه های متعددی در این زمینه  استفاده  نمایند. امکان اجرای  برنامه های تولید شده ، بر روی سرویس گیرندگانی که دات نت را حمایت می نمایند ، وجود خواهد داشت .Runtime ،اغلب زیرساخت های برنامه ها را کنترل می نماید ،  بنابراین پیاده کنندگان ، ضرورتی به صرف زمان لازم بمنظور ایجاد زیرساخت های مورد نیار خود نداشته و در مقابل می توانند زمان خود را صرف  تمرکز  بر روی منطق برنامه ها ، نمایند .
سرویس های وب XML ، از XML بمنظور ارسال داده استفاده می نمایند . بدین ترتیب ، سرویس گیرندگانی که دارای پتانسیل لازم  در این خصوص می باشند ، قادر به  دریافت داده های مبتنی بر XML ، خواهند بود.  XML ، استانداردی فراگیر و مورد پذیرش تمامی محیط های پیاده سازی  است. اغلب سرویس گیرندگان مدرن، نظیر سیستم های عامل کامپیوتر ، تلفن های سلولی ، دستگاههای PDA ، کنسول های بازی ، قادر به دریافت داده های مبتنی بر  XML ، می باشند .

اجزای فریمورک دات نت
فریمورک دات نت ، فونداسیون لازم بمنظور ایجاد برنامه های مبتنی بر دات نت  را در زمان ترجمه و اجراء ، فراهم و دارای عناصر متفاوتی بمنظور اجرای برنامه های مبتنی بر دات نت است :

  • زیربناء پلات فرم . فریمورک دات نت،  می بایست بر روی یک سیستم عامل اجراء گردد . در حال حاضر، امکان اجرای  فریمورک دات نت بر روی سیستم های عامل 32 بیتی ویندوز نظیر 2000 , XP  ، وجود دارد. در آینده ، امکان اجرای فریمورک دات نت بر روی سایر پلات فرم ها نیز میسر خواهد شد .

  • سرویس های کاربردی و خدماتی . زمانیکه برنامه های کاربردی  نظیر Component Server,Message Queuing   ,IIS  ، بر روی ویندوز 2000 ، اجراء می گردند امکان استفاده از آنان برای پیاده کنندگان وجود خواهد داشت . فریمورک دات نت ، برنامه های فوق را از طریق کلاس های موجود در کتابخانه کلاس دات نت ، تحت تاثیر موثر خود قرار خواهد داد .

  • Net Class library . کتابخانه کلاس فریمورک دات نت ، زمینه استفاده از امکانات و ویژگی های Runtime  را فراهم و باعث تسهیل در پیاده سازی برنامه های مبتنی بر دات نت می گردد . در این راستا ، پیاده کنندگان  می توانند با ایجاد توابعی از کلاس های موردنظر خود ، کلاس ها را توسعه نمایند .کتابخانه های کلاس فریمورک دات نت ، فریمورک دات نت را پیاده سازی می نماید . تمامی برنامه ها  ( برنامه های  وب ، ویندوز و سرویس های وب XML ) از کتابخانه کلاس های فریمورک دات نت یکسان استفاده نموده  که در namespace نگهداری می گردند. تمامی زبانهای مبتنی بر دات نت نیز به کتابخانه یکسانی دستیابی دارند .

  • CLR)Common Language Runtime ) . تکنولوژی  CLR ، باعث تسهیل در پیاده سازی برنامه ها از طریق ارائه یک محیط اجرائی ایمن  ، حمایت از چندین زبان و تسهیل در بکارگیری برنامه ها می گردد . محیط CLR ، همچنین بعنوان یک محیط مدیریت یافته ، عملیات و سرویس های خاصی  نظیر Garbage Collection و امنیت را  بصورت اتوماتیک، انجام خواهد داد .

  • ADO.NET . تکنولوژی ADO.NET ، نسل جدیدی از تکنولوژی ADO بوده و  امکانات حمایتی لازم در رابطه با مدل برنامه نویسی غیرمتصل را ارائه  می نماید. تکنولوژی فوق ، امکانات حمایتی متعددی را نیز در رابطه  با XML ، ارائه می نماید .

  • ASP.NET . تکنولوژی ASP.NET ، یک چارچوب  برنامه نویسی است که بر اساس CLR ، ایجاد می گردد . ASP.NET می تواند بر روی یک سرویس دهنده استفاده  و بکمک آن می توان برنامه های  مبتنی بر وب قدرتمندی را ایجاد کرد . فرم های وب ASP.NET ، یک روش ساده و درعین حال قدرتمند بمنظور ایجاد رابط های کاربر پویا می باشد .

  • سرویس های وب XML . سرویس های وب XML ، عناصر مبتنی بر وبی بوده  که قادر به اشتراک برنامه ها در اینترنت و یا اینترانت می باشند . فریمورک دات نت،  ابزارها و کلاس های لازم برای ایجاد ، تست و توزیع سرویس های وب XML را ارائه می نماید.

  • User Interfacses . فریمورک دات نت سه نوع UI را حمایت می نماید:
    فرم های وب که بهمراه ASP.NET و HTTP کار می نمایند .
    فرم های ویندوز که بر روی کامپیوتر های سرویس گیرنده Win32 اجراء می شوند .
    کنسول دستور ( خط دستور )

  • زبان ها ، هر زبانی که استانداردهای  CLS)Common Language Specification )  را رعایت نماید ، قادر به اجراء توسط   CLR خواهد بود. در فریمورک دات نت ، ماکروسافت حمایت های لازم در رابطه با زبانهائی نظیر VB.NET , Visual C++ ,VB.NET , C#,Jscript.NET را ارائه نموده است .

مزایای استفاده از فریمورک دات نت
در آغاز پیاده سازی برنامه های مبتنی بر ویندوز ، تمامی برنامه های نوشته شده بمنظور استفاده از  API ، از C و یا ++C استفاده می کردند . با مطرح شدن  ویژوال بیسیک و سپس اینترنت ، پیاده کنندگان مجبور به  سفارشی نمودن ( پیاده سازی نسخه هائی خاص )  برنامه های  C++  ،  C،  .برنامه های ویژوال بیسیک و یا ASP  بودند .با استفاده از فریمورک دات نت ، می توان با اتکاء به مهارت های موجود ، اقدام به آفرینش هر نوع نرم افزاری کرد . انتخاب  فریمورک دات نت بمنظور پیاده سازی برنامه ها ، مزایای زیر را بدنبال خواهد داشت :

  • مبتنی بر استانداردهای وب . فریمورک دات نت،  بطور کامل تکنولوژی های موجود در اینترنت نظیر : HTML , HTTP,SOAP,XSLT,XPath و سایر استانداردها را حمایت می نماید.

  •  طراحی مبتنی بر یک مدل یکسان . از پتانسیل های  یک کلاس دات نت ، می توان در هر یک از زبانهای حمایت شده در دات نت و یا مدل برنامه نویسی ، بخوبی استفاده کرد . بنابراین می توان ، بخش هائی از کدهای نوشته شده  را  در برنامه های متعدد استفاده کرد (برنامه های ویندوز، وب ، سرویس های وب XML ) .

  • پیاده کنندگان بسادگی قادر به استفاده از آن می باشند. در فریمورک دات نت ، کد ، بصورت Namespace  های  سلسله مراتبی و کلاس ها ، سازماندهی می گردد . فریمورک دات نت یک Common Type   System)CTS)  را بعنوان سیستم نوع یکسان ، ارائه نموده که  توسط هر زبان سازگاز با دات نت، قابل استفاده  خواهد بود .در سیستم فوق ، تمامی عناصر  زبانها بصورت شی می باشند. این اشیاء قادر به استفاده توسط هر برنامه مبتنی بر دات نت و نوشته شده توسط هر زبان مبتنی بر دا ت نت ، خواهند بود .

  • کلاس های توسعه پذیر . ماهیت سلسله مراتبی فریمورک دات نت،  برای پیاده کنندگان مخفی نخواهد بود .در این راستا می توان به کلا س ها دستیابی و آنها را توسعه داد( مگر اینکه آنها حفاظت شده  باشند ). در این زمینه امکان پیاده سازی توارث از نوع Cross - Language  ، نیز وجود خواهد داشت .

فریمورک دات نت

فریمورک دات نت ماکروسافت ، تحولات عمده ای را دررابطه با ایجاد و اجرای برنامه های مبتنی بر وب ایجاد نموده است . ASP.NET  یکی از تکنولوژی های متعددی است که بهمراه فریمورک دات نت ، ارائه شده است . در این مقاله با مفاهیم اولیه فریمورک دات نت ، آشنا می شویم .

فریمورک دات نت
دات نت ، یک مدل پیاده سازی نرم افزار است که توسط ماکروسافت ارائه و مهمترین دستاورد آن ، پیاده سازی نرم افزارهای  مستقل از پلات فرم و نوع دستگاه  ، با قابلیت دستیابی  به داده ها از طریق اینترنت ، می باشد . فریمورک دات نت ، زیر ساخت دات نت را ایجاد می نماید.

دات نت پلات فرم چیست ؟
دات نت بر اساس یک معماری "باز" ، شکل یافته و پلات فرمی است که می تواند برای ایجاد و اجرای نسل جدیدی از برنامه های وب و ویندوز استفاده گردد . هدف از پلات فرم دات نت ، تسهیل در پیاده سازی نرم افزارهای وب بوده و از تکنولوژی های اساسی زیر تشکیل شده است :

  • فریمورک دات نت

  • سرویس دهندگان  دات نت

  • سرویس های لازم بمنظور ایجاد بلاک

  • ویژوال استودیو دات نت

در پلات فرم دات نت ، سرویس گیرندگان ، سرویس دهندگان و سرویس ها  ، دارای جایگاهی  مهم  بوده و می توان به موارد زیر در رابطه با آن اشاره داشت :

  • یک مدل برنامه نویسی است  که امکان پیاده سازی سرویس های وب XML و برنامه ها را در اختیار پیاده کنندگان نرم افزار قرار می دهد .

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

  • مجموعه ای از سرویس دهندگان نظیر ویندوز 2000 ، SQL Server ، سرویس دهنده Biztalk  که باعث ارتباط ، اجراء ،  انجام عملیات و مدیریت سرویس های وب XML و برنامه ها می گردد .

  • نرم افزار سرویس گیرنده ، نظیر ویندوز XP ، که به پِیاده کنندگان کمک می نماید تجارب مفید و جامع خود را به مجموعه ای از دستگاهها، تعمیم نمایند. 

  • ابزارهائی نظیر ویژوال استودیو دات نت ، که می توان از آنان بمنظور پیاده سازی سرویس های وب ، برنامه های ویندوز و وب استفاده کرد .

فریمورک دات نت چیست ؟
فریمورک دات نت ، فونداسیون لازم بمنظور ایجاد و اجرای برنامه ها و سرویس های وب XML را ارائه می نماید. ماهیت یکسان ( یکدست )   فریمورک دات نت ، امکان ارتباط  تمامی برنامه ها( برنامه های ویندوز ، وب ، سرویس های وب XML )   را از طریق  یک مجموعه از  ابزارها  و کدهای نوشته  ، فراهم می نماید.  فریمورک دات نت شامل موارد زیر است :

  • CLR)Common Language Runtime) یا همان Runtime .
    Runtime ، مسئولیت رسیدگی به سرویس ها را برعهده داشته و شامل یکپارچگی زبانها ، امنیت و مدیریت حافظه است . در زمان پیاده سازی ، Runtime ویژگی های لازم و مورد نیازرا با هدف تسهیل در پیاده سازی، ارائه می نماید .

  • کتابخانه های کلاس (Class - Libraries )
    کنابخانه های کلاس ، امکان استفاده مجدد از کدها برای اکثر عملیات متداول نظیر دستیابی به داده ها ، پیاده سازی سرویس های وب XML ، فرم های وب و یا ویندوز را فراهم می نماید .

دات نت باعث حل چه مشکلاتی شده است  ؟
فریمورک دات نت ، باعث برطرف شدن مسائل و محدودیت های متعدد  در رابطه با پیاده سازی برنامه های وب از منظر پیاده کنددگان نرم افزار شده است .در این راستا ، به پتانسیل های اینترنت بمنظور برخورد با مسائل و محدودیت های موجود ، بخوبی توجه شده است .با ابداع یک شبکه بزرگ ( اینترنت ) بمنظور اشتراک اطلاعات ، صرفا" برنامه های بسیار اندکی قادر به اجراء و فعالیت بر روی بیش از یک سرویس گیرنده بوده و تعامل اطلاعاتی بین برنامه ها نیز وضعیتی مشابه داشت .محدودیت های فوق ، باعث بروز دو مسئله  مهم در رابطه با پیاده سازی نرم افزار می گردد که می بایست بدرستی با آنان برخورد گردد:

  • پیاده کنندگان ، مجبور به پیاده سازی نرم افزارهای خود در یک میدان محدود می باشند .
  • پیاده کنندگان ، زمان زیادی  را بمظور نوشتن برنامه ها بمنظور کار با پلات فرم و سرویس گیرنده گان متفاوت ،  صرف می نمایند ( این زمان می بایست صرف آفرینش برنامه های جدید گردد).

فریمورک دات نت ، با ارائه یک Runtim که مستقل از نوع  زبان و پلات فرم است ، بر محدودیت های فوق غلبه نموده است.Runtime  فوق،  مستقل از زبان و پلات فرم بوده  واز استانداردهای  XML ، بمنظور نیل به اهداف مورد نظر خود استفاده می نماید. با توجه به عدم وابستگی دات نت به یک زبان خاص ، پیاده کنندگان نرم افزار می توانند از گزینه های متعددی در این زمینه  استفاده  نمایند. امکان اجرای  برنامه های تولید شده ، بر روی سرویس گیرندگانی که دات نت را حمایت می نمایند ، وجود خواهد داشت .Runtime ،اغلب زیرساخت های برنامه ها را کنترل می نماید ،  بنابراین پیاده کنندگان ، ضرورتی به صرف زمان لازم بمنظور ایجاد زیرساخت های مورد نیار خود نداشته و در مقابل می توانند زمان خود را صرف  تمرکز  بر روی منطق برنامه ها ، نمایند .
سرویس های وب XML ، از XML بمنظور ارسال داده استفاده می نمایند . بدین ترتیب ، سرویس گیرندگانی که دارای پتانسیل لازم  در این خصوص می باشند ، قادر به  دریافت داده های مبتنی بر XML ، خواهند بود.  XML ، استانداردی فراگیر و مورد پذیرش تمامی محیط های پیاده سازی  است. اغلب سرویس گیرندگان مدرن، نظیر سیستم های عامل کامپیوتر ، تلفن های سلولی ، دستگاههای PDA ، کنسول های بازی ، قادر به دریافت داده های مبتنی بر  XML ، می باشند .

اجزای فریمورک دات نت
فریمورک دات نت ، فونداسیون لازم بمنظور ایجاد برنامه های مبتنی بر دات نت  را در زمان ترجمه و اجراء ، فراهم و دارای عناصر متفاوتی بمنظور اجرای برنامه های مبتنی بر دات نت است :

  • زیربناء پلات فرم . فریمورک دات نت،  می بایست بر روی یک سیستم عامل اجراء گردد . در حال حاضر، امکان اجرای  فریمورک دات نت بر روی سیستم های عامل 32 بیتی ویندوز نظیر 2000 , XP  ، وجود دارد. در آینده ، امکان اجرای فریمورک دات نت بر روی سایر پلات فرم ها نیز میسر خواهد شد .

  • سرویس های کاربردی و خدماتی . زمانیکه برنامه های کاربردی  نظیر Component Server,Message Queuing   ,IIS  ، بر روی ویندوز 2000 ، اجراء می گردند امکان استفاده از آنان برای پیاده کنندگان وجود خواهد داشت . فریمورک دات نت ، برنامه های فوق را از طریق کلاس های موجود در کتابخانه کلاس دات نت ، تحت تاثیر موثر خود قرار خواهد داد .

  • Net Class library . کتابخانه کلاس فریمورک دات نت ، زمینه استفاده از امکانات و ویژگی های Runtime  را فراهم و باعث تسهیل در پیاده سازی برنامه های مبتنی بر دات نت می گردد . در این راستا ، پیاده کنندگان  می توانند با ایجاد توابعی از کلاس های موردنظر خود ، کلاس ها را توسعه نمایند .کتابخانه های کلاس فریمورک دات نت ، فریمورک دات نت را پیاده سازی می نماید . تمامی برنامه ها  ( برنامه های  وب ، ویندوز و سرویس های وب XML ) از کتابخانه کلاس های فریمورک دات نت یکسان استفاده نموده  که در namespace نگهداری می گردند. تمامی زبانهای مبتنی بر دات نت نیز به کتابخانه یکسانی دستیابی دارند .

  • CLR)Common Language Runtime ) . تکنولوژی  CLR ، باعث تسهیل در پیاده سازی برنامه ها از طریق ارائه یک محیط اجرائی ایمن  ، حمایت از چندین زبان و تسهیل در بکارگیری برنامه ها می گردد . محیط CLR ، همچنین بعنوان یک محیط مدیریت یافته ، عملیات و سرویس های خاصی  نظیر Garbage Collection و امنیت را  بصورت اتوماتیک، انجام خواهد داد .

  • ADO.NET . تکنولوژی ADO.NET ، نسل جدیدی از تکنولوژی ADO بوده و  امکانات حمایتی لازم در رابطه با مدل برنامه نویسی غیرمتصل را ارائه  می نماید. تکنولوژی فوق ، امکانات حمایتی متعددی را نیز در رابطه  با XML ، ارائه می نماید .

  • ASP.NET . تکنولوژی ASP.NET ، یک چارچوب  برنامه نویسی است که بر اساس CLR ، ایجاد می گردد . ASP.NET می تواند بر روی یک سرویس دهنده استفاده  و بکمک آن می توان برنامه های  مبتنی بر وب قدرتمندی را ایجاد کرد . فرم های وب ASP.NET ، یک روش ساده و درعین حال قدرتمند بمنظور ایجاد رابط های کاربر پویا می باشد .

  • سرویس های وب XML . سرویس های وب XML ، عناصر مبتنی بر وبی بوده  که قادر به اشتراک برنامه ها در اینترنت و یا اینترانت می باشند . فریمورک دات نت،  ابزارها و کلاس های لازم برای ایجاد ، تست و توزیع سرویس های وب XML را ارائه می نماید.

  • User Interfacses . فریمورک دات نت سه نوع UI را حمایت می نماید:
    فرم های وب که بهمراه ASP.NET و HTTP کار می نمایند .
    فرم های ویندوز که بر روی کامپیوتر های سرویس گیرنده Win32 اجراء می شوند .
    کنسول دستور ( خط دستور )

  • زبان ها ، هر زبانی که استانداردهای  CLS)Common Language Specification )  را رعایت نماید ، قادر به اجراء توسط   CLR خواهد بود. در فریمورک دات نت ، ماکروسافت حمایت های لازم در رابطه با زبانهائی نظیر VB.NET , Visual C++ ,VB.NET , C#,Jscript.NET را ارائه نموده است .

مزایای استفاده از فریمورک دات نت
در آغاز پیاده سازی برنامه های مبتنی بر ویندوز ، تمامی برنامه های نوشته شده بمنظور استفاده از  API ، از C و یا ++C استفاده می کردند . با مطرح شدن  ویژوال بیسیک و سپس اینترنت ، پیاده کنندگان مجبور به  سفارشی نمودن ( پیاده سازی نسخه هائی خاص )  برنامه های  C++  ،  C،  .برنامه های ویژوال بیسیک و یا ASP  بودند .با استفاده از فریمورک دات نت ، می توان با اتکاء به مهارت های موجود ، اقدام به آفرینش هر نوع نرم افزاری کرد . انتخاب  فریمورک دات نت بمنظور پیاده سازی برنامه ها ، مزایای زیر را بدنبال خواهد داشت :

  • مبتنی بر استانداردهای وب . فریمورک دات نت،  بطور کامل تکنولوژی های موجود در اینترنت نظیر : HTML , HTTP,SOAP,XSLT,XPath و سایر استانداردها را حمایت می نماید.

  •  طراحی مبتنی بر یک مدل یکسان . از پتانسیل های  یک کلاس دات نت ، می توان در هر یک از زبانهای حمایت شده در دات نت و یا مدل برنامه نویسی ، بخوبی استفاده کرد . بنابراین می توان ، بخش هائی از کدهای نوشته شده  را  در برنامه های متعدد استفاده کرد (برنامه های ویندوز، وب ، سرویس های وب XML ) .

  • پیاده کنندگان بسادگی قادر به استفاده از آن می باشند. در فریمورک دات نت ، کد ، بصورت Namespace  های  سلسله مراتبی و کلاس ها ، سازماندهی می گردد . فریمورک دات نت یک Common Type   System)CTS)  را بعنوان سیستم نوع یکسان ، ارائه نموده که  توسط هر زبان سازگاز با دات نت، قابل استفاده  خواهد بود .در سیستم فوق ، تمامی عناصر  زبانها بصورت شی می باشند. این اشیاء قادر به استفاده توسط هر برنامه مبتنی بر دات نت و نوشته شده توسط هر زبان مبتنی بر دا ت نت ، خواهند بود .

  • کلاس های توسعه پذیر . ماهیت سلسله مراتبی فریمورک دات نت،  برای پیاده کنندگان مخفی نخواهد بود .در این راستا می توان به کلا س ها دستیابی و آنها را توسعه داد( مگر اینکه آنها حفاظت شده  باشند ). در این زمینه امکان پیاده سازی توارث از نوع Cross - Language  ، نیز وجود خواهد داشت .

استفاده از CSS در برنامه های وب

ایجاد خروجی مناسب و با فرمت مطلوب ، از جمله اهداف مهم در تمامی برنامه های کامپیوتری است. برنامه های وب نیز از ایـن قاعده مستثنی نبوده و طراحان و پیاده کنندگان این نوع از برنامه ها ، با بهره گیری از امکانات و تکنولوژی های متفاوت سعی در ارائه خروجی مناسب و با فرمت قابل قبول برای مخاطبان خود می نمایند. خروجی یک برنامه وب ، در سطح سرویس گیرندگان ارائه می گردد ، بدیهی است بمنظور فرمت مناسب خروجی برنامه های وب ، می بایست بر تکنولوژی هائی  متمرکز گردید که امکان بکارگیری آنان در سطح سرویس گیرنده و از طریق مرورگر کاربران ، میسر می باشد . مسئولیت میزبان نمودن بخش رابط کاربر برنامه های وب برعهده مرورگر بوده و لازم است تمامی تلاش های انجام شده در این خصوص با تاکید بر اهمیت و جایگاه مرورگر ها ، سازماندهی و مدیریت گردد . ASP.NET ( پلات فرم دات نت برای ایجاد برنامه های وب ) ، از دو روش  عمده در ارتباط با  ایجاد فرمت مناسب خروجی ( Formatting) برای برنامه های وب ، استفاده می نماید :
  •  استفاده از CSS . از تکنولوژی CSS)Cascading style sheet) ،  بمنظور کنترل شکل ظاهری عناصر موجود بر روی یک فرم وب استفاده می گردد . از امکانات CSS ، می توان در جهت تنظیم رنگ ، اندازه ، فونت  و رفتار عناصر HTML موجود بر  روی یک صفحه وب استفاده نمود .

  •  استفاده از XSLT . از تکنولوژی XSLT)Extensible Stylesheet Language Transformation ) ، بمنظور تبدیل اطلاعات یک فایل XML به خروجی HTML و  استقرار اطلاعات فوق بر روی یک فرم وب ، استفاده می گردد . XSLT ، داده مورد نیاز را از فایل XML دریافت و پس از تبدیل آنان به عناصر HTML ،  سبک های ( Styles )  مشخص شده را در رابطه با هر یک از عناصر بکار می گیرد .

در این مقاله قصد داریم به بررسی نحوه استفاده از CSS ، بمنظور تعریف فرمت خروجی برنامه های وب پرداخته و در مقاله ای جداگانه با نحوه استفاده از XSLT ، آشنا شویم .
CSS ، مسئولیت جمع آوری و سازماندهی تمامی اطلاعات مرتبط با فرمت بکارگرفته شده در ارتباط با عناصر HTML موجود بر روی یک فرم وب را برعهده دارد . با توجه به  ذخیره سازی  اطلاعات فوق در یک مکان ، مدیریت و اعمال سیاست های جدید در رابطه با شکل ظاهری یک برنامه وب ، بسادگی انجام خواهد شد . ویژوال استودیو دات نت ، ابزارهای لازم بمنظور ایجاد و  ویرایش Style  را ارائه نموده است. در زمان ایجاد یک برنامه وب با استفاده از ویژوال استودیو دات نت ، یک Style sheet پیش فرض نیز ایجاد می گردد .( بعنوان بخشی از یک پروژه جدید برنامه وب ، ) . لازم است به این نکته اشاره گردد که  فقط برای پروژه های ویژوال بیسک دات نت ، بصورت اتوماتیک یک Style sheet پیش فرض ، ایجاد می گردد. برای پروژه های ویژوال سی شارپ ، می بایست  یک style sheet ، ایجاد نمود.
بمنظور اعمال فرمت دلخواه در رابطه با خروجی یک برنامه وب ، می توان در سه سطح متفاوت این کار راا انجام داد :

  • Global . سبک های تعریف شده  دریک فایل جداگانه ذخیره و تمامی صفحات می توانند از آن استفاده نمایند . 
  • Page . سبک های موردنظر در بخش Head یک صفحه تعریف  و تمامی عناصر موجود بر روی صفحه قادر به استفاده از آنان خواهند بود.
  • Inline . سبک های مورد نظربعنوان خصلت یک عنصر HTML تعریف  و صرفا" همان عنصر قادربه استفاده از آنان خواهد بود .

 اولویت هر یک از سطوح فوق ، مشابه تعریف یک متغیر و محدوده ( Scoping ) استفاده از آن می باشد. سبک های تعریف شده Inline دارای اولویت بیشتر نسبت به Page بوده و سبک های Page دارای اولویت بیشتری نسبت به Global می باشند . مثلا" در صورتیکه با استفاده از هر یک  از روش های فوق ، سبک خاصی بمنظورنحوه نمایش یک پاراگراف ، تعریف شده باشد ، سبک تعریف شده inline دارای اولویت بیشتری خواهد بود.با توجه به اولویت مجموعه قوانین  تعریف شده  مربوط به سبک نمایش ، از  Style Sheet ها ، بعنوان Cascading  نیز یاد می گردد . کد زیر ، نحوه استفاده از سه روش فوق را بمنظور تعریف Style  ، نشان می دهد .

Style types definition

<HTML>
       <HEAD>
                    <title> WebForm1 </title>
                     <!--  (1) Style Sheet reference . --->
                     <LINK REL="StyleSheet" Type="text/css" HREF="Test.css">
                     <!-- (2)  Page-Level style definition -->
                      <Style>
                          p {
                                font -family : 'Times New Romans' , Thoma , font-size:medium ;
                               }
                      </Style>
         </HEAD>
                       <Body>
                            <P> The Alignment is from the style sheet . </p>
                            <P> The font is from the style in the page's head element . </P>
                             <!-- (3) Inline style definition -->
                              <
P style="FONT-SIZE : large ; FONT - STYLE : italic " > the italic is from the inline style . </P>
                      </Body>     
  </HTML>

Test.css file

<!-- (1) From Styles.css sheet referenced in HEAD element . -->
   P
     {
        font-size : small ;
        text - align : center ;
     }
 

در مثال فوق ، نحوه نسبت دهی خصلت Style  به یک  عنصر و در سه سطح متفاوت نشان داده شده است . برای خصلت font-size ، در سه سطح  متفاوت ، style تعریف شده است .در مواردیکه خصلت فوق ، بصورت Inline بهمراه یک عنصر HTML ، استفاده شده است ، تمامی تعاریف موجود ( در سطح Page و یا بصورت Reference ) نادیده گرفته می شود و اولویت  با سبک تعریف شده بصورت Inline ، خواهد بود . تعریف انجام شده در رابطه با اندازه فونت در فایل Test.css ، عملا" در صفحه فوق ، استفاده نخواهد شد ، چراکه در صفحه وب نیز برای خصلت فوق و در سطح Page  ، سبک لازم تعریف و دارای اولویت بیشتری  نسبت به سبک تعریف شده در فایل Test.css ، می باشد . خصلت های text-align , font-family و font-style صرفا" یک مرتبه تعریف شده اند، بنابراین  هر یک از آنان دارای تاثیر خاص خود می باشند .

تعریف و ذخیره سازی Style در یک فایل Style sheet ( فایلی با انشعاب css ) دارای مزایای عمده ای نسبت به تعریف و استفاده از آنان بصورت محلی در هر یک از فرم های وب و یا استفاده از آنان بصورت Inline بهمراه عناصر HTML ، است :

  • پشتیبانی و  نگهداری مجموعه قوانین تعریف شده ، صرفا" از طریق یک محل انجام خواهد شد . بنابراین ، تغییرات مورد نیاز صرفا"  از یک نقطه اعمال و تمامی برنامه متاثر از آن می گردد.

  • امکان استفاده از چندین style جداگانه که هریک مجموعه قوانین خاصی را تعریف می نمایند ، فراهم می گردد . در چنین مواردی ، می توان با توجه به شرایط و اهداف برنامه از یکی از سبک های تعریف شده بصورت پویا ، استفاده نمود .مثلا" می توان با استفاده از سبک های تعریف شده ، فرمت خروجی مورد نظر را در ارتباط با یک دستگاه خاص ( نمایشگر، چاپگر) ، ایجاد نمود. بعنوان نمونه ، یک برنامه می تواند سه نوع سبک شامل : استاندارد ، Enlarged type و Printer friendly را تعریف نماید که یکی از آنان با توجه به خواسته کاربر ، انتخاب و بکار گرفته شود.

 استفاده از Style Sheet در فرم های وب
در زمان ایجاد یک برنامه وب با استفاده از ویژوال استودیو دات نت ، یک Style sheet جدید با نام Style.css بصورت اتوماتیک نیز ایجاد می گردد. ویژوال استودیو ، در اغلب موارد بصورت اتوماتیک  از Style ایجاد شده  در هر یک از صفحات وب و یا فرم های وب ، استفاده نمی نماید ( فراخوانی فایل فوق، بصورت اتوماتیک انجام نمی شود) . بمنظور استفاده از Style sheet ایجاد شده ، می بایست از یک عنصر لینک در بخش  head مربوط به page استفاده گردد :

Using Global style

<HEAD>
<title>WebForm1</title>
      ...
<LINK REL="StyleSheet" TYPE = "text/css" HREF="Styles.css">
</HEAD>

تغییر Style
بمنظور تغییر Style  تعریف شده و یا ایجاد Style  جدید ، می توان از ابزار Style Builder در ویژوال استودیو دات نت ، استفاده نمود . در این رابطه مراحل زیر را دنبال می نمائیم :

  • فعال نمودن Style Sheet در ویژوال استودیو دات نت . پس از فعال نمودن Style sheet ، ویژوال استودیو دات نت ، تعاریف مرتبط با Style را در پنجره Document نمایش و یک Outline از Style sheet را در پنجره Tool ، نمایش خواهد داد :

  • Style مورد نظر بمنظور اعمال تغییرات را از طریق پنجره Tool ،  انتخاب  می نمائیم . در ادامه ، ویژوال استودیو تعاریف مرتبط با Style را در پنجره Document نشان می دهد 

  • بر روی Style definition ، کلیک راست  نموده (یا کلیک راست  بر روی Style  از طریق پنجره Tool )  و از طریق منوی مربوطه گزینه Build Style را انتخاب می نمائیم .ویژوال استودیو دات نت ، ویزارد Style Builder را فعال می نماید .
     

 


 

  • با استفاده از Style Builder می توان فرمت دلخواه  را در ارتباط با یک Style  تعریف نمود .

افزودن Style
برای افزودن سبک مورد نظر به یک Style خاص ، می توان از نام عنصر استفاده نمود . در این رابطه ،امکان استفاده از اسامی کلاس ها و یا ID مربوط به عناصر نیز وجود دارد .

  • فعال  نمودن Style Sheet ، کلیک راست بر روی پنجره Style sheet و یا Tool و انتخاب Add Rule  از طریق منوی pop up . ویژوال استودیو دات نت در ادامه ویزارد Add Style Rule را فعال می نماید :

  •  انتخاب نوع Style موردنظر که قصد ایجاد آن وجود دارد . در این رابطه می توان اقدام به ایجاد Style در رابطه با عناصر HTML ، کلاس ها و یا  عناصری با ID خاص ، نمود. نام آیتم مورد نظر را تایپ نموده و در ادامه با انتخاب گزینه "<" ( افزودن )،  آیتم انتخابی به مجموعه قوانین ، اضافه گردد .

  • مراحل فوق ، برای هر یک از آیتم هائی که می خواهیم style در رابطه با آنان بکارگرفته شود ، تکرار می گردد.

استفاده از Style بهمراه  کلاس ها
با استفاده از کلاس های Style ، می توان فرمت یکسانی را در رابطه با عناصر متفاوت HTML موجود بر روی یک فرم وب ، بکارگرفت. زمانیکه یک Style  در ارتباط با یک کلاس ایجاد می گردد، ویژوال استودیو دات نت ، با استفاده از مشخصه classname . ، یک تعریف Style را به Style sheet اضافه می نماید.

style class

.emphasis
   {
      font-style :italic ;
    }

 Style Class فوق، مسئولیت ایجاد فرمت مناسب ( ایتالیک ) را برای تمامی عناصری که از این کلاس استفاده می نمایند، برعهده دارد. برای استفاده از Style فوق بهمراه عناصر HTML از خصلت class استفاده میگردد. بمنظور استفاده از style بهمراه کنترل های سرویس دهنده ، از خصلت CssClass استفاده می گردد .

Style class

<P> This paragraph is test <Span Class="emphasis"> some text</span></p>
<asp:TextBox ID="Text1"  Runat="Server" CssClass="emphasis" >some text  </asp:TextBox>

ایجاد Style برای عناصر خاص
با استفاده از ID مربوط به عناصر،می توان Style  مورد نظر در ارتباط با عناصر خاص موجود بر روی یک فرم وب را تعریف نمود. ID مربوط به عناصر ، می بایست برای هر یک از عناصر موجود بر روی صفحه ، منحصربفرد می باشد. فرمت مشخص شده ، صرفا" در رابطه با یک عنصر بر روی هر صفحه بکارگرفته می شود . زمانیکه یک Style rule برای یک عنصر با ID مشخص شده ،ایجاد می گردد ، ویژوال استودیو دات نت ، یک تعریف Style را با استفاده از شناسه elementID #  ایجاد و آن را  به Style sheet ،اضافه می نماید.

Style by element ID

#Inserted
  {
     text-decoration : underline ;
  }
#deleted
  {
      text-decoration : line-through ;
  }

Style های تعریف شده در ویژوال استودیو ، اغلب بصورت صحیح در بخش form designer نشان داده نمی شوند . در صورتیکه خروجی مورد نظر در ارتباط با یک فرمت خاص مشاهده نمی گردد، می توان عملیات زیر  را  دنبال نمود:

  • اطمیان از ذخیره سازی صحیح Style sheet تعریف شده
  • فرم وب را در حالت HTML view و Design view مشاهده و بین آنان سوئیچ نمائید .
  • برروی فرم وب کلیک سمت راست نموده و گزینه View In Browser را بمنظور نمایش فرم وب در مرورگر ، انتخاب نمائید.

ایجاد Style تودرتو
در صورتیکه به تعاریف Style در Style sheet پیش فرض ، ( فایل Styles.css ) نگاهی داشته باشیم ، متوجه خواهیم شد که برخی تعاریف style ، چندین نام عنصر را شامل می شوند . تعاریف فوق  ، فرمت عناصر تودرتو را  مشخص می نماید. Style زیر ، نوع های متفاوتی از Bullet را تعریف می نماید( nested) .

Nested Style

UL  LI {
       list-style-type : square ;
      }
UL LI LI {
        list-style-type : disc ;
       }
UL LI LI {
       list-style-type : circle ;
      }  

بمنظور ایجاد Style های تودرتو ، می توان با استفاده از جعبه محاوره ای Add Style Rule ، چندین  آیتم را به ساختار سلسله مراتبی Style rule اضافه نمود.

تغییر Style Sheet در زمان اجراء
همانگونه که قبلا" اشاره گردید ، می توان چندین Style sheet را تعریف تا  امکان  استفاده از آنان  بصورت پویا و با توجه به شرایط موجود در برنامه در اخیتار کاربر قرارداده شود. ( مشاهده فرم وب ، نسخه چاپی فرم وب  ، ارائه نسخه بزرگتر فرم وب  و ... ) . بمنظور سوئیچ نمودن اتوماتیک بین Style Sheet ها ، می توان از خصلت media استفاده نمود. خصلت فوق ، Style sheet  مورد نظر را در ارتباط با  چاپ  و یا  نمایش بر روی نمایشگر ، مشخص می نماید. کد زیر ، نحوه  استفاده از دو style را بمنظور مشاهده فرم وب بر روی نمایشگر و یا چاپ آن،  نشان می دهد :

Two style sheets for one web form

<LINK REL="stylesheet" TYPE="text/css" HREF="styles.css" media="screen" >
<LINK REL="stylesheet" TYPE="text/css" HREF="print.css"    media="print" >

بمنظور سوئیچ نمودن بین Style sheet در زمان اجراء ، یک اسکریپت سمت سرویس گیرنده را نوشته تا تغییر لازم  در عنصر href  مربوط به لینک style sheet را ایجاد نماید . کد زیر ، یک فرم وب را ایجاد نموده  که بین style sheet های Style1.css و Style2.css ، سوئیچ می نماید ( زمانیکه کاربر بر روی لینک موجود کلیک می نماید ) .

Changing style sheets at run time

<HTML>
<HEAD id=myhead>
<title> ChangeSheets </title>
<LINK ID="ScreenStyle" REL="stylesheet" TYPE="text/css" HREF="Style
1.css">
<Script language="vbscript">
    Sub SwitchSheets( )
         if document.all("screenstyle").GetAttribute("HREF") = "Style1.css" then
                  document.all("ScreenStyle").SetAttribute "HREF" , "Style
2.css" , 0
         else
                  document.all("ScreenStyle").SetAttribute "HREF" , "Style
1.css" , 0
   End Sub
</Script>
</HEAD>
     <body>
           <form id="form1" method="post" runat="server">
                 <h2> Sample Styles </h2>
                  <p> Sample Paragraph </p>
                  <p><a onclick="switchsheets" href="#"> Click here
                  </a> to switch between sheets. </p>
            </form>
   </body>
</HTML>               Powered By yosafysite.tk

DOM چیست ؟

DOM)Document Object Model) یک رابط برنامه نویسی برای سندهای XML  و Html است . با استفاده از اینترفیس فوق، نحوه دستیابی و انجام پردازش های لازم در رابطه با سند های XML و Html فراهم می گردد . برنامه نویسان با استفاده از DOM ، قادر به ایجاد یک سند ،حرکت در طول ساختار سند، افزودن ، اصلاح و یا حذف المان های یک سند XML و یا Html می باشند . DOM توسط کنسرسیوم وب استاندارد و بمنظور استفاده از طریق زبان های برنامه نویسی متعددی طراحی شده است .
گره ها
برنامه ای با نام پارسر،  امکان  استقرار یک سند XML در حافظه را فراهم می نماید . پس از استقرار سند  در حافظه ، اطلاعات مربوطه بکمک  DOM ،  قابل بازیابی و پردازش خواهد بود . DOM  ، یک نمایش شبه درختی از یک سند XML را ایجاد می نماید . المان Document ،
دارای بالاترین  سطح در درخت ایجاد شده  است . المان فوق ،  دارای یک و یا چندین فرزند است . یک اینترفیس گره ، امکان  خواندن و یا نوشتن المان های خاصی در ساختار درختواره ای یک سند XML  را  میسر می نماید .با استفاده از خصلت ChildNodes مربوط به المان Document و بکارگیری یک حلقه تکرار می توان هر یک از گره ها  را انتخاب و در ادامه عملیات مورد نظر در رابطه با آن را انجام داد . پارسر شرکت ماکروسافت (MSXML،  دارای توابع متفاوت بمنظور حرکت در طول درخت،  دستیابی به گره ها بهمراه خصلت مربوطه،  درج و حذف گره ها و تبدیل ساختار درختی به شکل اولیه XML است . در حال حاضر،  سیزده نوع متفاوت گره توسط پارسرشرکت ماکروسافت،  حمایت می گردد . جدول زیر متداولترین نوع گره ها را نشان می دهد .

مثال

نوع گره

<!DOCTYPE food SYSTEM "food.dtd">

Document type

<?xml version="1.0"?>

Processing instruction

<drink type="tea">Irani</drink>

Element

type="tea"

Attribute

Irani

Text

استفاده از پارسر
بمنظور خواندن، ویرایش  و یا ایجاد و پردازش یک سند XML ، می بایست از یک پارسر استفاده کرد . پارسر شرکت ماکروسافت،  یک عنصر مبتنی بر COM بوده که بهمراه IE نسخه پنج ، ارائه شده است . پس از نصب مرورگر فوق،  امکان استفاده از پارسر فراهم می گردد . پارسر MSXML ،  دارای امکانات متعدد برنامه نویسی بمنظور استفاده توسط زبانهای زیر است :

  • حمایت از جاوااسکریپت  VBScript  Perl جاوا و  ++ C

  • حمایت از استاندارد کنسرسیوم وب و XML DOM

  • حمایت از DTD و معتبر سازی

مثال : نحوه ایجاد شی Document ،  با استفاده  جاوااسکریپت ، VBscript و ASP در جدول زیر نشان داده شده است :

مثال

تکنولوژی

var xmlDoc = new ActiveXObject("Microsoft.XMLDOM")

Javascript

set xmlDoc = CreateObject("Microsoft.XMLDOM")

VBscript

set xmlDoc = Server.CreateObject("Microsoft.XMLDOM")

ASP

استقرار یک سند XML در حافظه
کدهای  زیر نحوه استقرار یک سند XML با نام Test.xml در حافظه را نشان می دهد :

استقرار یک سند XML در حافظه

<script language="JavaScript">
     var xmlDoc = new ActiveXObject("Microsoft.XMLDOM")
      xmlDoc.async="false"
      xmlDoc.load("Test.xml")
      // ....... پردازش های لازم  
</script>

اولین خط در اسکریپت های فوق ، یک نمونه از پارسر XML شرکت ماکروسافت را ایجاد می نماید .  در دومین خط ،  به پارسر اعلام می گردد منتظر دریافت کامل سند XML بوده قبل از اینکه پردازش خود را آغاز نماید . در سومین خط ،  به پارسر اعلام شده است که یک سند XML با نام Test.xml را در حافظه مستقر نماید .

استقرار متن XML در پارسر
کدهای زیر، نحوه استقرار یک رشته متن را در پارسر XML نشان می دهد . در مثال فوق از متد LoadXML در مقابل متد load استفاده شده است . از متد loadXML بمنظور استقرار یک رشته متن در پارسر استفاده می گردد .

استقرار یک رشته متن XML در حافظه

<script language="JavaScript">
    var text="<note>"
    text=text+"<to>Ali</to><from>Reza</from>"
    text=text+"<heading>Reminder</heading>"
    text=text+"<body>Don't forget me this weekend!</body>"
    text=text+"</note>"
    var xmlDoc = new ActiveXObject("Microsoft.XMLDOM")
    xmlDoc.async="false"
    xmlDoc.loadXML(text)
    // ....... پردازش های لازم
</script>

شی ParseError
خطای مربوط به فایل : با استفاده از شی ParseError ، می توان از کد ، متن خطاء و حتی شماره خطی که خطاء در آن اتفاق افتاده  است ، آگاهی یافت . در برنامه زیر پارسر، سعی در استقرار سندی XML در حافظه نموده که  وجود خارجی ندارد . پس از تشخیص خطاء ، برخی از خصلت های مربوط به خطاء در خروجی نمایش داده خواهد شد .

تشخیص خطاء و استفاده از شی ParseError در رابطه با وجود یک فایل

var xmlDoc = new ActiveXObject("Microsoft.XMLDOM")
xmlDoc.async="false"
xmlDoc.load("Test1.xml")
document.write("<br>Error Code: ")
document.write(xmlDoc.parseError.errorCode)
document.write("<br>Error Reason: ")
document.write(xmlDoc.parseError.reason)
document.write("<br>Error Line: ")
document.write(xmlDoc.parseError.line)

خطای مربوط به  XML . فرض کنید یک سند XML که  "خوش شکل "  نمی باشد،  توسط پارسر خوانده شود . کدهای زیر نحوه تشخیص و برخورد با خطاء را نشان می دهد :

تشخیص خطاء و استفاده از شی ParseError   در رابطه با سند "خوش شکل "

var xmlDoc = new ActiveXObject("Microsoft.XMLDOM")
xmlDoc.async="false"
xmlDoc.load("note_error.xml")
document.write("<br>Error Code: ")
document.write(xmlDoc.parseError.errorCode)
document.write("<br>Error Reason: ")
document.write(xmlDoc.parseError.reason)
document.write("<br>Error Line: ")
document.write(xmlDoc.parseError.line)

خصلت های ParseError

عملکرد

خصلت

کد خطای بوجود آمده ، برگردانده می شود .

errorCode

علت خطای بوجود آمده  ،برگردانده می شود . 

reason

شماره خط خطای بوجود آمده  ، برگردانده می شود 

line

محل بروز خطاء در خط مربوطه را برمی گرداند .

linePos

رشته ای که شامل خط مربوط به خطای بوجود آمده است،  برگردانده می شود

srcText

url مربوط به سند مستقر سده در حافظه ،  بر گردانده می شود .

url

محل بروز خطاء در فایل مربوطه،  برگردانده می شود .

filePos

حرکت در طول درخت
یکی از متداولترین روش های بازیابی المان های یک سند XML ، حرکت در طول درخت ( از گره ای به گره دیگر ) و استخراج مقدار متن ذخیره شده بهمراه هر یک از المان ها  است . کدهای نوشته شده زیر ، امکان حرکت در طول یک درخت XML را فراهم و در ادامه هر یک از المان های سند XML ، در خروجی نمایش داده می شوند ( کدها با استفاده از VBScript نوشته شده اند ) .

حرکت در طول درخت و نمایش المان های یک سند XML

set xmlDoc=CreateObject("Microsoft.XMLDOM")
xmlDoc.async="false"
xmlDoc.load("note.xml")
for each x in xmlDoc.documentElement.childNodes
document.write(x.nodename)
document.write(": ")
 document.write(x.text)
next

ایجاد محتویات مبتنی بر Html برای یک سند XML
یکی از مهمترین قابلیت های XML ، تمایز و تفکیک سندهای Html از داده های مربوطه است . با استفاده از یک پارسر XML ، موجود در مرورگرها ، یک صفحه وب قادر به ایجاد محتویاتی پویا است . در این زمینه می توان از پتانسیل های جاوااسکریپت بمنظور تولید و ارائه  محتویات پویا نیز استفاده کرد . در همین راستا ، امکان استفاده از ASP برا ی ایجاد محتویات پویا با  تاکید بر نقش سرویس دهنده وب نیز وجود دارد . برنامه زیر ، داده های موجود در یک سند XML را خوانده و آنها را با فرمت Html در خروجی نمایش خواهد داد .

نمایش داده های موجود در یک سند XML با استفاده از جاوااسکریپت

var xmlDoc = new ActiveXObject("Microsoft.XMLDOM")
xmlDoc.async="false"
xmlDoc.load("note.xml")
nodes = xmlDoc.documentElement.childNodes
to.innerText = nodes.item(0).text
from.innerText = nodes.item(1).text
header.innerText = nodes.item(2).text
body.innerText = nodes.item(3).text

دستیابی به المان ها از طریق نام
رنامه زیر داده های موجود در یک سند XML را خوانده و آنها را با فرمت Html در خروجی نمایش خواهد داد .

دستیابی به المان ها د ر  یک سند XML  از طریق نام و بکمک  جاوااسکریپت

var xmlDoc = new ActiveXObject("Microsoft.XMLDOM")
xmlDoc.async="false"
xmlDoc.load("note.xml")
document.write(xmlDoc.getElementsByTagName("from").item(0).text)



مقالات                 
دایره المعارف       
دوره های آموزشی


 

 



              

 

برنامه های وب مبتنی بر سرویس گیرنده : AJAX و Atlas

یکی از ویژگی های مهم برنامه های وب ، تبعیت آنان از معماری "سرویس گیرنده - سرویس دهنده"  است . این بدان معنی است که پیاده کنندگان برنامه های وب می توانند به منظور تحقق پردازش های سمت سرویس دهنده و سرویس گیرنده از فن آوری های متعددی استفاده نمایند. یکی از نکات مهم در خصوص انجام پردازش های سمت سرویس گیرنده ، میزان وابستگی آنان به اطلاعات موجود در سمت سرویس دهنده است . به عبارت دیگر ، اجرای یک event handler در سرویس گیرنده تا چه میزان وابسته به کد سمت سرویس دهنده است و  به منظور انجام آن چه میزان داده می بایست بین سرویس گیرنده و سرویس دهنده مبادله گردد ؟
صرفنظر از این که  به سوال فوق چه پاسخی داده می شود ، واقعیت این است که به منظور مدیریت رویدادهای محقق شده در سمت سرویس گیرنده ، می بایست ملزومات مورد نیاز ایجاد تا پیاده کنندگان بتوانند با استفاده از آنان پردازش های سمت سرویس گیرنده را مدیریت نمایند .

پردازش های سمت سرویس گیرنده از گذشته تاکنون
با توجه به این که پردازش های سمت سرویس گیرنده در برنامه های وب می بایست مستقل از نوع پلت فرم باشند ،  بدیهی است که تمامی تلاش های انجام شده در این عرصه ، می بایست متمرکز بر روی برنامه های مرورگر باشد تا با ایجاد پتانسیل هائی در آنها ، امکان انجام پردازش های سمت سرویس گیرنده فراهم گردد . ظهور زبان های اسکریپت نویسی نظیر جاوااسکریپت و  تجهیز مرورگرها به برنامه های مفسر مربوطه از جمله اقدامات عملی دراین عرصه است . استفاده از زبان جاوااسکریپت به منظور کدینگ پردازش های سمت سرویس گیرنده دارای قدمتی چندین ساله است . در ادامه ، قابلیت های جدیدی به مرورگرها اضافه گردید تا پیاده کنندگان بتوانند به کمک آنان برنامه های وب سمت سرویس گیرنده را ایجاد نمایند . هم اینک ، تمامی مرورگرهای متداول از یک مدل شی گراء موسوم  به DOM ( برگرفته از document object model ) استفاده می نمایند و تعداد اندکی از آنها از یک ویژگی جدید با نام XMLHTTP استفاده می نمایند  که به کمک آن ،  سرویس گیرندگان و سرویس دهندگان می توانند بدون نیاز به انجام یک postback کامل و round trip با یکدیگر و به صورت مستقیم ارتباط برقرار نمایند.
XMLHTTP  ، شامل مجموعه ای API ( رابط برنامه نویسی ) است که امکان ارسال و یا دریافت داده به صورت باینری ، HTML و XML را از سرویس دهندگان وب بر روی اینترنت و به کمک پروتکل HTTP فراهم می نماید .  در مواردی که نیاز به داده موجود در سمت سرویس دهنده می باشد ،  XMLHTTP  به صورت پیوسته اقدام به ارسال درخواست خود برای سرویس دهنده می نماید تا آخرین اطلاعات را بدون نیاز به refresh کردن مدام مرورگرها ، بازیابی نماید . در واقع ، به کمک فن آوری فوق ، سرویس گیرندگان قادر به مبادله غیرهمزمان با سرویس دهنده بوده و می توانند اقدام به ارسال و یا دریافت داده XML بدون نیاز به انجام یک round trip کامل که باعث تولید مجدد یک صفحه می گردد ، نمایند .
ماحصل این تحولات ، ظهور نسل جدیدی از برنامه های وب نظیر  Microsoft Virtual Earth  و   Microsoft Windows Live  است . ایجاد چنین برنامه های وبی کار ساده ای نخواهد بود و پیاده کنندگان می بایست شناخت مناسبی نسبت به جاوااسکریپت و مدل DOM  داشته باشند که ممکن است در هر مرورگر متفاوت باشد . علاوه بر این ، جاوااسکریپت تمامی ویژگی های یک زبان شی گراء را ارائه نمی نماید و بسیاری از ملزومات مورد نیاز پیاده کنندگان برنامه های وب در فریمورک دات نت را تامین نمی نماید ( نظیر type-safe ) .

ایجاد برنامه های وب با تاکید بر انجام پردازش سمت سرویس گیرنده ، نیازمند ملزوماتی نظیر
یک زبان برنامه نویسی و پلت فرم پیاده سازی جدید  است .   

AJAX ( برگرفته از asynchronous JavaScript and XML )
پیاده سازی برنامه های وب با استفاده از فن آوری های اشاره شده ( اسکریپت نویسی سمت سرویس گیرنده و مبادله غیرهمزمان با سرویس دهنده ) ،  AJAX  نامیده می شود . AJAX ، پیاده کنندگان را قادر به تولید صفحاتی می نماید که از توان پاسخگوئی بسیار مطلوبی در سمت سرویس گیرنده متناسب با رویداد ایجاده شده ، برخوردار می باشند . چراکه آنها  از اسکریپت های سمت سرویس دهنده برای دستیابی و مدیریت عناصر بخش رابط کاربر استفاده می نمایند . علاوه بر این ، با توجه به مبادله غیرهمزمان داده به منظور ارسال و دریافت داده ، امکان انجام عملیات مورد نظر بر روی داده بدون وقفه و ازدست دادن state وجود خواهد داشت .  Microsoft Virtual Earth  و برنامه سرویس گیرنده نامه های الکترونیکی Outlook Web Access  ،  دو نمونه از برنامه های سبک AJAX ، می باشند .

Atlas : تلاش‍ی در جهت ایجاد یک  پلت فرم پیاده سازی جامع 
فن آوری جدید ASP.NET با نام Atlas ، مجموعه ای از فن آوری های مایکروسافت را شامل می شود  که با تمرکز بر روی اصول AJAX ، سعی در توسعه و بهبود آن را دارد .
Atlas ، یک فن آوری جدید در عرصه پیاده سازی برنامه های وب ASP.NET است که  کتابخانه های اسکریپت سرویس گیرنده را با فریمورک پیاده سازی مبتنی بر سرویس دهنده ASP.NET 2.0 ترکیب می نماید . در واقع ، Atlas به پیاده کنندگان برنامه های وب یک پلت فرم مناسب به منظور پیاده  سازی صفحات وب مبتنی بر سرویس گیرنده را ارائه می نماید که قبلا" مشابه آن در خصوص صفحات وب مبتنی بر سرویس دهنده توسط ASP.NET ارائه شده بود . با توجه به این که Atlas ، به عنوان یک پتانسیل اضافه در کنار ASP.NET مطرح می باشد ، بدیهی است که کاملا" سازگار با سرویس های مبتنی بر سرویس دهنده باشد . با استفاده از Atlas ، می توان بخش قابل توجهی از پردازش های مورد نیاز یک برنامه را به سمت سرویس گیرنده انتقال داد ( fat-client ) . در چنین مواردی ، امکان ارتباط سرویس گیرنده با سرویس دهنده در background فراهم می گردد. ماحصل این فن آوری ، ایجاد برنامه های وبی است که علاوه بر ارائه امکانات مناسب  در لایه رابط کاربر ( UI ) ، دارای توان پاسخگوئی بالائی می باشند و به سادگی می توانند با سرویس دهنده ارتباط برقرار نمایند .

مفاهیم فنی اولیه AJAX
در AJAX ، پیاده کنندگان می توانند سرویس های وب را بطور غیرهمزمان و از طریق اسکریپت های سمت سرویس گیرنده و با استفاده از شی XMLHTTPRequest  فراخوانده تا اطلاعات به عنوان داده XML بسته بندی و در ادامه آنها را بر روی شبکه ارسال نمایند . بدین منظور شی XMLHTTPRequest یک شی پراکسی را ارائه می نماید تا به کمک آن امکان فراخوانی از راه دور و مبادله داده فراهم گردد . در فن آوری AJAX از زبان های اسکرپیت سمت سرویس گیرنده نظیر جاوااسکریپت بطرز گسترده ای استفاده می گردد . از جاوااسکریپت در مواردی نظیر فراخوانی از راه دور روتین ها ، انجام پردازش های مورد نیاز یک برنامه در سمت سرویس گیرنده و ایجاد ویژگی های پیشرفته ای در سطح لایه رابط کاربر استفاده می شود .
AJAX علاوه بر جاوااسکریپت از چندین فن آوری دیگر در سمت سرویس گیرنده نیز استفاده می نماید :

  • DOM : به کمک فن آوری فوق ، عناصر موجود در یک صفحه HTML به عنوان مجموعه ای از اشیاء استاندارد ( نظیر document و windows ) در نظر گرفته می شوند . بدین ترتیب ، امکان دستیابی  و انجام عملیات دلخواه بر روی آنان از طریق کد فراهم می گردد .

  • DHTML ( برگرفته از Dynamic HTML ) : فن آوری فوق ، توانمندی HTML را به منظور واکنش مناسب در خصوص عملیاتی که توسط کاربران انجام می شود ( نظیر درج داده ) با استفاده از اسکریپت های سمت سرویس گیرنده و بدون نیاز به یک round trip افزایش می دهد .

  • رفتارها ، شامل روشی مناسب به منظور برخورد سیستماتیک با عملیاتی نظیر drag and drop در سطح لایه رابط کاربر و مرتبط با عناصر موجود بر روی یک صفحه می باشد .

  • عناصر : اشیاء سفارشی شده جاوااسکریپت می باشند که پتانسیل های توسعه یافته ای را در سمت سرویس گیرنده ایجاد می نمایند .

چالش های فن آوری AJAX
برنامه نویسی صفحات به سبک AJAX دارای چالش های متعددی است :

  • عناصر موجود در صفحات وب می بایست متناسب با شرایط هر مرورگر برنامه نویسی گردند ، چراکه هر مرورگر یک نسخه متفاوت از DOM و DHTML را ارائه می نمایند(هر چند این تفاوت ها اندک باشد) .

  • برنامه نویسی سمت سرویس گیرنده صرفا" با استفاده از جاوااسکریپت انجام می شود . پیاده سازی برخی از پتانسیل های  AJAX می تواند برای پیاده کنندگان بسیار پیچیده باشد و نیازمند دانش بالائی در خصوص استفاده از جاوااسکریت است .

  • جاوا اسکریپت ،  ویژگی ها و امکانات مورد نیاز پیاده کنندگان برنامه های دات نت را تامین نمی نماید ( نظیر یک رویکرد شی گراء کامل ) . علاوه بر این ، در این فن آوری از کتابخانه ای نظیر آنچه در پلت فرم دات نت ارائه شده است ،‌ استفاده نمی گردد و برنامه نویسان می بایست تمامی برنامه را از ابتدا کد نمایند  .

  • جاوااسکریپت و پیاده سازی سمت سرویس گیرنده  ، عموما" بخوبی در IDEs حمایت نمی گردند .

فن آوری Atlas  ، مسائل اشاره شده را با ارائه یک فریمورک کامل برای ایجاد برنامه های وب مبتنی بر سرویس گیرنده برطرف می نماید.

فن آوری Atlas  ، 
دارای عناصر سرویس گیرنده و سرویس دهنده ای است
 که آن را  به خوبی با ASP.NET
یکپارچه و مرتبط می نماید

مفاهیم فنی اولیه معماری Atlas
در ساده ترین حالت ، یک برنامه Atlas ، از کتابخانه های سمت سرویس گیرنده به منظور مدیریت رابط کاربر و فراخوانی عناصر مبتنی بر سرویس دهنده استفاده می نماید . Atlas ، همچنین عناصر سمت سرویس دهنده ای را ارائه می نماید  که با سرویس گیرنده مرتبط و می توانند اسکریپت سمت سرویس گیرنده از قبل تعریف شده ای را تولید نمایند .

عناصر سمت سرویس گیرنده Atlas
فن آوری Atlas برای پیاده سازی برنامه های سمت سرویس گیرنده ، از مجموعه ای کتابخانه سمت سرویس گیرنده ( فایل هائی با انشعاب Js . ) استفاده می نماید که پیامد آن تعریف یک رویکرد لایه ای برای ایجاد برنامه های مبتنی بر سرویس گیرنده است . این لایه ها عبارتند از :

  • لایه مختص  مرورگرها : با استفاده از پتانسیل های ارائه شده توسط این لایه ، اسکریپت های Atlas در اکثر مرورگر سازگار بوده و ضرورتی به نوشتن اسکریت های مختص یک مرورگر وجود ندارد .

  • سرویس های هسته atlas : شامل ضمائمی به جاوااسکریپت نظیر کلاس ها ، namespace ، event handler ، توارث ، نوع های داده و تسلسل اشیاء است . ویژگی های فوق یک مدل برنامه نویسی شی گراء را در اختیار پیاده کنندگان قرار می دهد تا به کمک بتوان علاوه بر سرعت در ایجاد برنامه ها از کد تولید شده نیز بدفعات استفاده نمود.

  • کتابخانه کلاس پایه Atlas : شامل عناصری نظیر دیباگرها ، Timers ، ردیابی و string buliders است .

  • لایه شبکه : این لایه با سرویس های مبتنی بر وب و برنامه ها ارتباط برقرار می نماید و  مدیریت فراخوانی متدها از راه دور و غیرهمزمان را برعهده می گیرد . لایه فوق ، مدیریت فراخوانی غیرهمزمان برروی XMLHTTP  را برعهده گرفته و باعث می گردد که پیاده کنندگان بدون این که درگیر پیچیدگی های موجود شوند با نوشتن چندین خط کد ، متدهای مورد نظر را فراخوانند .

  • لایه UI  : در این لایه قابلیت های سرویس گیرنده Atlas نظیر رفتارها ، گرامر تعریفی Atlas ، عناصر UI و نسبت دهی داده  ارائه می گردد .

  • لایه کنترل ها : این لایه کنترل های مختص atlas را برای پیاده سازی سمت سرویس گیرنده ایجاد می نماید . علاوه بر این که می توان از طریق اسکریپت به این کنترل ها دستیابی داشت ، امکان انجام عملیات متفاوتی نظیر نسبت دهی داده نیز وجود دارد. کنترل های  Navigation و data-bound listview نمونه هائی در این زمینه می باشند . 

  •  یک مدل برنامه نویسی تعریفی که پیاده کنندگان را قادر می سازد عناصر atlas را با روشی مشابه کنترل های سرویس دهنده ASP.NET ایجاد نمایند .

فن آوری Atlas  را می توان
به عنوان کتابخانه های اسکریپت سرویس گیرنده تصور نمود که زیرمجموعه ای از معماری ASP.NET بر روی ‌سرویس دهنده می باشند

برای پیاده سازی برنامه های وب سمت سرویس گیرنده ، فن آوری Atlas  ویژگی های متعددی را ارائه می نماید . ارائه یک مجموعه API برای پیاده سازی در جاوااسکریپت ، قابلیت سازگاری اتوماتیک با مرورگرها و یک مدل تعریفی برای پیاده سازی سمت سرویس گیرنده ، نمونه هائی در این زمینه م‍ی باشند . 

عناصر سمت سرویس دهنده Atlas
فن آوری Atlas ، صرفا" در ارتباط با اسکریپت های سمت سرویس گیرنده نمی باشد و از عناصر سمت سرویس دهنده ، سرویس ها و کنترل هائی استفاده می نماید که می توانند با اسکریپت های Atlas سمت سرویس گیرنده مرتبط گردند :

  • سرویس های وب که ویژگی های ASP.NET نظیر سرویس های پروفایل ، membership ، roles ، personalization  و globalization را ارائه می نمایند .

  • کنترل های سرویس دهنده Atlas که کنترل های سرویس دهنده ASP.NET را reasemble می نمایند ولی اسکریپت های سمت سرویس گیرنده Atlas را منتشر می نمایند . این نوع کنترل ها ارتباط بسیار نزدیکی با کنترل های سرویس دهنده ASP.NET نظیر دکمه ها ، Label و ... دارند .

  • کنترل های سرویس دهنده Atlas که باعث می گردند جاوااسکریپت رفتارهای سمت سرویس گیرنده را تولید نماید . کنترل های  HoverBehavior  ، ClickBehavior ، Popup و  AutocompleteBehavior نمونه هائی در این زمینه می باشند .

  • تمامی کنترل های سرویس دهند atlas در ویژوال استودیو نیر قابل استفاده می باشند. بنابراین می توان از آنان در زمان طراحی استفاده نمود ( همانند کنترل های سرویس دهنده ASP.NET  ) .

 فن آوری Atlas ، اسکریپت نویسی سمت سرویس گیرنده را با پیاده سازی سمت سرویس دهنده ASP.NET یکپارچه می نماید و پیاده کنندگان می توانند از پتانسیل های ASP.NET در سمت سرویس دهنده برای برنامه های Atlas نیز استفاده نمایند . 

هدف اولیه فن آوری Atlas   ، 
ترکیب  ویژگی اسکریپت های سمت سرویس گیرنده با ویژگی هائی از ASP.NET بر روی سرویس دهنده است تا به کمک آن
یک پلت فرم پیاده سازی جامع و فراگیر ایجاد گردد .