BİL 458 Web Programlama dersi

advertisement
BİL 458
Web Programlama dersi
Yrd. Doç. Dr. Murat YEŞİLYURT
[email protected]
• ANA KAYNAK :
• ASP .NET Web Developer's GuideLee, Wei Meng Ortiz,
Jonothon Garrett, Chris Syngress Publishing,
ISBN:9781928994510
• C# ile ASP.NET 4.0, Zafer Demirkol, Kodlab Yayınları,
ISBN:9786054205011
Bu dersten geçmek için :
Ödev/Proje/Sunum
5
% 20
Kısa Sınav (Quiz)
2
% 10
Ara Sınav
1
% 30
Yarıyıl Sonu Sınavı
1
% 40
INTERNET PROGRAMCILIĞI:
Internet programcılığında bir istemci sunucu kavramı karşımıza çıkmaktadır..
Sunucu (Server)
Sunucu
İnternet
İstemci (Client)
İstemci
İstemci
INTERNET PROGRAMCILIĞI:
Internet programcılığında bir istemci sunucu kavramı karşımıza çıkmaktadır..
INTERNET PROGRAMCILIĞI:
İnternet dünyası sunucu - istemci mimarisine göre çalışır.
Buna göre web sitelerini barındıran bilgisayarlara sunuculara (WEB SERVER),
sunuculardan web sitelerini isteyen bilgisayarlara ise istemci adı verilir.
Bu anlamda web sitelerini de ikiye ayırabiliriz:
1. Statik siteler
2. Dinamik siteler.
Statik siteler HTML ile yapılan ve kullanıcı ile etkileşime girmeyen kullanıcıya
sadece içerik sunulan, kullanıcının içeriğe müdahale edemediği sitelerdir.
Dinamik siteler ise kullanıcıya içerik sunulduğunda etkileşime geçebildiği sitelerdir
Örn: Yorum yazar, oy kullanır, içerik ekler, arama yapar, vs.
INTERNET PROGRAMCILIĞI:
İnternet Programcılığında kullanılan Diller:
1. Çeşitli markup (HTML, CSS, XHTML, XML) diller : Yani bir
yorumlayıcıya ihtiyaç duyan işaret dilleri demektir.
2. Scripting (PHP, ASP, JavaScript, Perl gibi) diller: Hazır kod parçalarıdır.
3. Web Programlar için önemli bir sunucuda kullanılan diller:
(PHP/C#/ASP.NET veya Servlets/JSP/JSF/Java/JEE) kullanılır.
4. Veri tabanı dilleri: SQL, ODBC, ADO.NET veya JDBC.
5.Zengin içerikli internet uygulamaları geliştirmek için kullanılan diller: Ajax,
Flash vs..
INTERNET PROGRAMCILIĞI:
WEB SUNUCU:
HTML, ASP.Net, JSP gibi dinamik veya statik sayfaları HTTP
protokolü üzerinden sunan sunucudur.
IIS (Internet Information Services):
Windows işletim sisteminin web sunucusu (windows server kurulu bir
bilgisayarın web servis hizmetini sunan sunucusu) bileşenidir. Web
uygulamalarının barındırılıp sunulması için bu uygulamanın olması
gereklidir. (IIS ile ISS farklıdır !).
İstemci sunucudan bir istekte bulunduğunda bunu IIS sayesinde
yapacaktır.
INTERNET PROGRAMCILIĞI:
IIS (Internet Information Services):
İlk olarak Windows NT (1993 yılında çıkmış 32 bitlik multi tasking bir sunucu
mimarisi olarak çıkmıştır.. Kişisel bilgisayarlar için olan Windows işletim
sistemlerinden ayrıdır.) ile birlikte çıkmıştır ve IIS 1.0 olarak adlandırılmıştır.
Daha sonra Windows NT ile birlikte IIS 4.0 sürümüne kadar güncellenmiştir.
Windows 2000 ile IIS 5.0
Windows XP ile IIS 5.1
Windows Server 2003 ile IIS 6.0 ile yenilenmiştir ki asıl atılımı burada
yapmıştır. 64 bit mimariye geçiş olmuştur ve ilk defa Ipv6’yı desteklemektedir.
INTERNET PROGRAMCILIĞI:
IIS (Internet Information Services):
Windows Server 2008 ile birlikte tamamen yeniden yazılan IIS 7.0 gelmiştir ve
güvenlik en önemli öğe olmuştur.
Failed Request Tracing (isteklerdeki hata izlenmesi)
Windows 7 ve Windows Server 2008 R2 ile birlikte gelen IIS 7.5 gelmiştir.
(IPSec (IP security TCP/IP protokolünün güvenliğini sağlamak için kullanılır
kimlik doğrulama ve veri akışı her IP paket şifrelemesi)
ve Requesting Filtering isteklerin filtrelenmesi özelliği)
Windows Server 2012 ile birlikte tamamen yeniden yazılan IIS 8.0 gelmiştir
SSL sertifika desteği
ASP.NET 4.5 Desteği
Windows Server 2012 R2 ve Windows 8.1 ile sunulan IIS 8.5 sunulmuştur..
Windows 10 için IIS ayarı.
INTERNET PROGRAMCILIĞI:
.NET yapısı:
Yazılan bir program için en büyük sorun yazılan programın her işletim
sistemi ve konfigürasyonunda kullanılamamasıdır.
Bunun için .NET yapısı en iyi çözüm sunan platformdur.
Birçok dil seçeneği tarafından desteklenir.
Bu nedenle aslında ASP.Net bir programlama dili değil ASP dili üzerine
bina edilmiş bir .NET platformudur.
ASP:NET ile birlikte birçok dil kullanılabilmektedir.
.
INTERNET PROGRAMCILIĞI:
.NET yapısı:
.NET Application
.NET Framework
Operating System + Hardware
.Net Framework’ün Yapısı
• Java’dan önce, geliştirilen yazılımlar direkt olarak makine koduna çevrilirdi. Java
ile program kodu önce byte code’a çevrilir. JVM (Java virtual machine) bu
kodu işletim sisteminin istediği koda çevirir. .Net içinde çalışma mantığı
benzerdir .NET kodu ilk önce IL’ ye (Intermediate Language-Ara dil-veya
MSIL) derler, bu IL kodu çalıştırılmak istendiğinde CLR, JIT derleyicilerini
kullanarak kodu makine diline çevirir.
Basic
C++
C#
MSIL
Derleyici
Makine Dili
J#
• .Net Framework’ün Yapısı ile bir C# kodunun çalıştırılması
C#
MSIL
CLR
Makine Dili
..NET
İLE KODU DERLEME VE
ÇALIŞTIRMA
• MSIL (Microsoft Intermediate Language)
 Normalde bir program derlendiğinde doğrudan makine koduna çevrilirken,
.NET uyumlu bir dil ile derleme yapıldığında program kodu makine
koduna değil de MSIL (Microsoft Intermediate Language)'e çevrilir.
 MSIL işlemciden bağımsız komut setinden oluşmaktadır. Bu komut seti
içerisinde nesnelerin yüklenmesi, depolanması ve başlatılması sağlayan
komutların yanı sıra aynı zamanda nesneler üzerinde metot çağrımını sağlayan
komutlar da yer almaktadır. .NET Framework ile yazılmış bir kaynak kodun
derlenmesi sonucu MSIL kodu oluşmaktadır. MSIL, NET dilleri arasında bir
bütünleşme sağlamaktadır. MSIL kodun çalıştırılmasından önce var olan MSIL
kodu, doğal makine koduna (native code) dönüştürülmektedir. Burada
interpretation dediğimiz yorumlama işlemi yapılmaz.
• CLR (Common Language Runtime):
• Ortak Dil Çalışma Platformu olarak da adlandırılan CLR, .NET altyapısında
programların çalışmasını kontrol eden ve işletim sistemi ile programımız arasında
yer alan arabirimdir.
• Eğer platformdan bağımsız bir ortam istiyorsak, ihtiyaç duyulan şey CLR dir,
Hangi platformda iseniz (Linux, Mac, Windows) CLR bu noktada devreye girer
ve. NET programlarını farklı platformlarda işletim sistemine göre çalıştırır.
INTERNET PROGRAMCILIĞI:
.NET Mimarisi
VB
VC++
VC#
…
JScript
Common Language Specification
Windows
Forms
ADO.NET: Data and XML
Base Class Library
Common Language Runtime
Visual Studio.NET
ASP.NET: Web Services
and Web Forms
.NET MİMARİSİ:
•ASP.NET
 Web forms
 Yönetilebilir Kod (Manageable code (non spaghetti))
 Mantıksal örgülü yapısı (Logical evolution of ASP (compiled))
 Güçlü web Form yapısı (The power of Web Forms with a
demonstration)
 Web Services
 İnternetin taşıyıcı gücü olarak adlandırılır. (Programming the
Internet to leverage the "power at the edge of the cloud«).
 ADO.NET,
 Veritabanı (e.g., DataSets, Datareader)
 Visual Studio.NET
ASP.NET MİMARİSİ:
 ASP.NET Microsoft tarafından geliştirilen bir teknolojidir.
 ASP (Active Server Pages) Etkin Sunucu Sayfaları. anlamına gelir.
 ASP.NET, klasik ASP'den çok daha üstün özelliklere sahiptir.
 ASP'de oluşturulan dosyaların uzantısı .asp iken, ASP.NET dosyalarının
uzantısı .aspx'tir.
 ASP.NET sayfaları oluşturabilmek için bir programlama dili bilmemiz
gerekiyor. Burada Microsoft'un bize sağladığı kolaylık, herhangi bir
programlama dilini seçme şansını bize vermesidir. Fakat en çok Visual
Basic ve CSharp(C#) dilleri kullanılır.
 ASP.NET 1.0 versiyonu ile çıktı ve günümüze kadar 1.1, 2.0, 3.5, 4.0
versiyonları yayınlandı. Şu anki en son ASP.NET versiyonu ise 4.5 dur.
ASP.NET MİMARİSİ:
 Gelişmiş web uygulamaları oluşturmak için kullanılır.
 :NET Framework üzerinde uygulamalar geliştirilmesini sağlar.
 Nesne tabanlıdır.
 Dilden bağımsızdır. (.NET destekli diller kullanılabilir.)
 Yapısında bir çok hazır (class) yapı ve kontrol barındırır.
 Hızlı ve yüksek performans gerektiren uygulamalar için kullanılırlar.
ASP.NET MİMARİSİ:
 Çalışma modeli olarak istemci ve sunucu çalışma modelini kullanır.
İstemci tarafında .aspx sayfalar bulunur .Bu sayfalar HTML ve KOD
kısmı olarak 2 bölümden oluşur.
 HTML kısmında bildiğimiz HTML bileşenleri ve ASP.NET sunucu
kontrolleri bulunur.
 KOD kısmında .NET destekli bir dil ile yazılan ve sunucu tarafı için
geliştirilen bölüm yer alır. Kod kısmındaki uzantılar .aspx.cs olur (C#
için)
 Oluşturulan her sayfa bir CLASS dır.
ASP.NET MİMARİSİ:
 İstemciden bir istek geldiğinde IIS bu isteği alır ve aspnet_Isapi.dll
dosyasına oradan da .NET Framework aktarır.
 Bu istek sunucunun belleğinde kaydedilir. İsteğe göre C# kodu çalıştırılır.
Ve HTML çıktı olarak tekrar IIS tarafından istemciye gönderilir.
IIS
Aspnet_Isapi.dll
.NET Framework
(Common Language Runtime)
HTML
C#kodu çalıştı
ASP.NET MİMARİSİ:
ASP dosyalarının çalışması için bilgisayarın C:/ sürücüsüne
C://inetpub/wwwroot dizini olması gerekir. Böylece bilgisayarımız Yerel bir
sunucu olarak çalışmaktadır.
wwwroot dizinine direkt atmak istemiyorsanız bir klasör oluşturulup
dosyalarınızı buraya atabilirsiniz.
Örnek : klasör ismi: myesilyurt
Tarayıcıda çalıştırmak için; http://localhost/myesilyurt yazmak yeterlidir.
ÖNEMLİ !!: Eğer veritabanından veri çekilecekse wwwroot klasörüne okuma
ve yazma izni vermeniz gerekiyor. Aksi takdirde hata verecektir.
İzin vermek için;
C://inetpub ve wwwroot klasörüne sağ tıklayıp Güvenlik sekmesinde IUSR
kullanıcısına TAM yetki verilir. Sağ tıkladığınızda Güvenlik Sekmesi yok ise
İşletim sisteminiz desteklemiyor olabilir ya da, Araçlar > Klasör seçenekleri >
Basit dosya paylaşımını kullan seçeneğinin işaretini kaldırınız.
ASP.NET MİMARİSİ:
ASP.NET sayfalarının görsel kısmı HTML,CSS ve JAVASCRIPT olabilir.
Buna ek olarak asp veya asp.net kodları da bu belgeye eklenebilir. ASP.NET
sayfaları bildirim satırı ile başlar. Bu bildirim @Page ile başlar. Bu satıra
Sayfa Direktifide denir.
<%@
Page Title="Home Page" Ana sayfa tarayıcı Başlığı
Language="C#" : Kullanılan Programlama dili
MasterPageFile="~/Site.Master" : Ana sayfa dosyası
AutoEventWireup="true" : varsayılan olaylara method arası bağlantı kur
CodeBehind="Default.aspx.cs"
Kod sayfası
Inherits="WebApplication1._Default"
Uygulamamamızın Anasayfası
(çalıştırılacak sayfa)
%>
ASP.NET MİMARİSİ:
ASP.NET sayfası ilk oluşturulduğunda runat="server" parametresi
yazılıdır.
<asp:Content runat="server" >
Bu parametre yanlızca form için değil, sunucuda çalışacak tüm kontrolleri
için gereklidir. Yani kodların sunucuda çalışmasını sağlar.
Bu arada tüm sunucu kontrolleri <asp: ile başlar ardından kontrolün türü
ve özellikleri gelir.
<asp:Content runat="server"
ID="FeaturedContent" ContentPlaceHolderID="FeaturedContent">
http://www.bilimsel.com.tr/04-04-ilk-asp-netprogramim/
Download