1 / 74

I nternet P rogramcılığı II

I nternet P rogramcılığı II. Sibel Öztan s .moyano @ iku . edu.tr. Bilinmesi Gerekenler. World Wide Web Consortium http://www.w3.org/ HTML ( HyperText Markup Language) http://www.w3.org/community/webed/wiki/HTML Cascading Style Sheets (CSS) http://www.w3.org/Style/CSS/ Temel programla

marcus
Download Presentation

I nternet P rogramcılığı II

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Internet Programcılığı II SibelÖztan s.moyano@iku.edu.tr

  2. BilinmesiGerekenler • World Wide Web Consortium • http://www.w3.org/ • HTML (HyperText Markup Language) • http://www.w3.org/community/webed/wiki/HTML • Cascading Style Sheets (CSS) • http://www.w3.org/Style/CSS/ • Temelprogramla • C, VB, Javascript, ASP vb. • SQL (Structured Query Language) • SqlServer • MySql

  3. DersProgramı? • ASP.NET Framework • http://www.asp.net/ • Java Seam Framework • http://seamframework.org/

  4. Temel Web Kavramları • İstemci (Client) • Browser (Tarayıcı) • Web Server • Application Server (UygulamaSunucusu) • TCP/IP (Transport Control Protocol / Internet Protocol) • HTTP (HyperText Transfer Protocol) • FTP (File Transfer Protocol) • SMTP (Send Mail Transfer Protocol) • POP (Post Office Protocol)

  5. Web NasılÇalışır? • WWW, Internet üzerinden bağlı birçok istemci ve sunucudan oluşur • Bilgisayarlar birbirleriyle HTTP kullanarak iletişimkurar • Bir istemci bir web kaynağınaHTTP formatında bir istek gönderir • Web sayfası • Resimdosyası • Javascript, CSS dosyası • Bir sunucu yanıt verir

  6. BilmeceninParçaları • Her istemcininbirtarayıcısıvardır • Kişiselbilgisayarlar (IE, Safari, Firefox, Opera) • Ceptelefonları • Diğeraraçlar, PDA (Personal Digital Assistant) gibi • Her sunucudaHTTP sunucusu olarak adlandırılanbiryazılımını çalışır • IIS (Internet Information Services) (Windows tabanlı) • Apache (Tümişletimsistemleriiçin)

  7. StatikVeriAlmak (.htm, .html)

  8. StatikVeriAlmak (.htm, .html)

  9. Veri Alma veGösterme

  10. Veri Alma veGösterme

  11. BilmeceninParçaları • Her istemcininbirtarayıcısıvardır • Kişiselbilgisayarlar (IE, Safari, Firefox, Opera) • Ceptelefonları • Diğeraraçlar, PDA (Personal Digital Assistant) gibi • Her sunucudaHTTP sunucusu olarak adlandırılanbiryazılımını çalışır • IIS (Internet Information Services) (Windows tabanlı) • Apache (Tümişletimsistemleriiçin)

  12. Olası Dinamik Web Çözümleri • ASP • ASP.NET • PHP • Java-based Servers • Jboss • Oracle Weblogic (önceden BEA Weblogic) • IBM Websphere • Adobe ColdFusion

  13. VB ve C# ileMerhabaDunya • Add new item • Place code in a separate file • VB – C# • Dosyaadı • 80 http • 443 https • Protected var1 As String = "VB'denmerhaba!" • protected string var1 = "C#'danMerhaba!";

  14. Development Web Server • Properties • ID • Port number : • Use dynamic ports : false

  15. Visual Studio – GenelBakış • File: shift-alt-n New Web Site • Edit : find & replace & bookmark • View – Visual Tools, Error list • Properties window F4 • Window – Reset window layout • Toolbox • CSS Properties

  16. Veritabanları • KurumsalVeritabanları (Enterprise Databases) • MySQL (ücretsiz) • Oracle • IBM DB2 • SQL Server • Ölçeklenebilir • Sürücüdesteği • .Netkodlamasınaparalel • Kolaykimlikdoğrulamaiçin Windows güvenlikmodeliyleentegre

  17. Sql Server KurulumuveGösterimi • Sql Server Express • MyBookStore • Visual Studio üzerindenSql Server’ bağlanma • Yeni query çalıştırma • Gridview

  18. Page With Code and With Code File • myLabel.Text = “Merhaba…"; • On Page Load • if (IsPostBack)… • Panel Control (server side) • Bind Control • <%# fnameInput.Text %> • Page_Load • Page.DataBind();

  19. C# ve VB için veri tipleri

  20. SimpleVars - HTML • <h1>Programming in C#</h1> • <form id="form1" runat="server"> • <asp:Panel runat="server"> • <asp:TextBox ID="outputText" runat="server" • TextMode="MultiLine" • Height="175px" Width="400px"/> • </asp:Panel> • <asp:Panel runat="server"> • <asp:Button ID="runButton" runat="server" • Text="Run Code" • Width="95px" onclick="runButton_Click"/> • &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; • <asp:Button ID="clearButton" runat="server" • Text="Clear Console" onclick="clearButton_Click"/> • </asp:Panel> • </form>

  21. SimpleVars - Code <script runat="server"> protected void output(String value) { outputText.Text += value + Environment.NewLine; } protected void runButton_Click(object sender, EventArgs e) { string localVar = "My local variable"; output(localVar); } protected void clearButton_Click(object sender, EventArgs e) { outputText.Text = ""; } </script>

  22. ComplexVars (Object) - Code <script runat="server"> protected void output(String value) { outputText.Text += value + Environment.NewLine; } protected void runButton_Click(object sender, EventArgs e) { DateTime dt = new DateTime(); output(dt.ToString()); DateTime nowDt = DateTime.Now; output(nowDt.ToString()); } protected void clearButton_Click(object sender, EventArgs e) { outputText.Text = ""; } </script>

  23. Loops (Döngüler) - Code <script runat="server"> … protected void runButton_Click(object sender, EventArgs e) { int counter; for (counter = 1; counter < 3; counter++) { output("The value of counter is " + counter); } while (counter > 0) { output("The value of counter is " + counter); counter--; } } … </script>

  24. Functions - Code <script runat="server"> protected void output(String value) { outputText.Text += value + Environment.NewLine; } protected void runButton_Click(object sender, EventArgs e) { int total = addValues(5, 3); output("The total is " + total); } protected int addValues(int val1, int val2) { return val1 + val2; } …. </script>

  25. Trace Statements- Code <%@ Page Language="C#" Trace="true"%> <script runat="server"> protected void output(String value) { outputText.Text += value + Environment.NewLine; } protected void runButton_Click(object sender, EventArgs e) { int counter; for (counter = 1; counter < 3; counter++) { output("The value of counter is " + counter); Trace.Write("The value of counter is " + counter); } } … </script>

  26. Commenting - Code <script runat="server"> … /* This function walks up and down a variable * */ protected void runButton_Click(object sender, EventArgs e) { int counter; for (counter = 1; counter < 3; counter++) { output("The value of counter is " + counter); } //while (counter > 0) //{ // output("The value of counter is " + counter); // counter--; //} } … </script>

  27. Custom Controls • Add new item -> Web User control • <%@ Register Src=“~/contrlos/Header.ascx” TagName=“Header” TagPrefix=“uc1”%> <uc1:Header runat=“server”> • Registering controls globally in the web.config <add tagPrefix=“customControls” tagName=“header” src=“~/contrlos/Header.ascx”/> • Adding public properties to a web control <script runat=“server”> public string heading=“Page Heading”; </script> <customControls:HeaderWithProps runat=“server” heading=“Title List”>

  28. DinamikVeriGösterimi (Presentanting Dynamic Data) • Gridviewkontrolu • Gridview paging (sayfayönetimi) kontrolu • Enable Paging • Gridviewileverigüncelleme • ReadOnlydeğişkeni • Update statement • DataListkontroluileverigösterimi • Dynamic expression • Bağlama ifadeleri ile veri biçimlendirme (Formatting data with binding expressions)

  29. Veri Giriş Sistemi - 1 • Belirli bir veritabanı tablosunun önemlisütunlarınıiçerenlistesayfası • Kullanıcının bu veritabanı tablosuna yeni bir kayıt eklemesineolanakverenlinkler • Seçilen bir kaydın detaylarınıgösterenve kullanıcının bu verilerde değişiklik yapmasınaolanaksağlayanbirgüncellemesayfası

  30. Veri Giriş Sistemi - 2 • DetailsViewkontrolununkullanımı (alt-sift-enter tam sayfa) • Auto Format, ItemStyle, HeaderStyle (koddanve design üzerinden) • DetailsView kontrolü ile veri eklemek • Başlıkbilgilerinideğiştir • Enable inserting • DetailsView Properties -> DefaultMode (F4) • Sayfa isteklerini yönlendirme • HyperLink kontrolu • DetailsViewInsertedEventArgs • DetailsViewCommandEventArgs • Güncelleme sayfası oluşturmak • SelectParameters asp:QueryStringParameter • Liste sayfasına “add new column” parametre girişi • Veritabanından kayıt silmek • GridView’da “Enable deleting”

  31. Veri Giriş Sistemi - 3 • Fonksiyontanımı protectedaccessmodifiervoidreturntypeDetailView_ItemInsertfunctionname(object sender, DetailsViewInsertedEventArgs e)functionsignature { if (e.AffectedRowsnumericproperty == 1) { Response.Redirect("~/Authors.aspx"); } } • Event handler attribute eklemek OnItemInserted="DetailView_ItemInsert" • İptalişlemiiçinItemCommand event handler if (e.CommandName == "Cancel")

  32. Veri Giriş Sistemi - 4 • SelectCommand="SELECT [au_id], [au_lname], [au_fname], [phone], [address], [city], [state], [zip] FROM [authors] WHERE [au_id] = @au_id“ • Parametreyi almak için asp:QueryStringParameter (parametrenin geldiği yer) <SelectParameters> <asp:QueryStringParameter Name="au_id" QueryStringField="au_id" Type="Int32" /> </SelectParameters> • DetailsViewUpdatedEventArgs • GridView -> Add New Column (HyperLinkField) , Get URL from data field • ~/AuthorUpdate.aspx?au_id={0} • GridView -> Enable deleting • Wrap özelliğini değiştir

  33. Bilgi Girişi Doğrulama • Öğe düzenleme şablonları ile form özelleştirme • Edit Columns • Add Template • Bind data -- Text="<%#Bind('price') %>“ • Bir forma doğrulamakontrolleri eklemek • Validation (doğrulama) • RangeValidator • RequiredFieldValidator • Doğrulama hata mesajınıdüzenlemek • CSS sınıfıeklemek • Hatamesajınısınıfıtanımlamak • Doğrulama özeti kontrolukullanılması • Display=“None” • ValidationSummary

  34. Birleştirilmiş tablolar ile bir sorgu oluşturma • Titles tablosunu • Publishers ve Authors ile birleştir • au_lname + ‘ ‘ +au_fname • Verileri düzenle ve sırala • Gridview’u düzenle • Başlıklar • Hizalama • Autoformat • Fiyatı döviz kuru olarak göster: {0:C}

  35. Kontrol stil özelliklerini CSS ile değiştirmek • Sunum ve basım için farklı CSS belgeleri hazırlamak • RowStyle • HeaderStyle • AlternatingRowStyle • CssClass özniteliği • media özniteliği • Menu kimliğinin belirlenmesi • #myHeader_menuPanel {visibility:hidden;height:0px;width:0px;} • IE ve Firefox ile önizlemek

  36. Raporlama için veri seçimi • Publishers SqlDataSource ekle • DropDown List ekle • Query builder üzerinden düzenleme • pub_id alanını ekle (gösterimden kaldır) • =@pub_id • Refresh parameters • Parameter source - > Control ->DropDownList1 • Set AutoPostBack True • Hepsi seçeneğini ekleyin!

  37. Raporlama için veri seçimi • Hepsi seçeneğinin eklenmesi • DropDownList kontrolünde • AppendDataBoundItems=“true” • <asp:ListItem Text=“Hepsi” Value=“0”></asp:ListItem> • Select cümlesinde • (titles.pub_id = @pub_id) OR (0=@pub_id)

  38. Session durumunu yönetmek • ViewState ve geri yollama (postback) • Sayfalar arasında veri alışverişi • ViewState nesnesi dinamik olarak ASP.NET tarafından kullanılıyor • Sayfanın adı ve ilgili veriyi base64 kodlu olarak tutuyor • EnableViewState özelliği ayarlama (tuning) için kullanılabilir

  39. Session değişkenleri kullanmak • Session değişkenleri sunucunun belleğinde saklanır Button_click: (yazmak için) Session[“sessionDegiskeni”]=TextBox1.Text; Response.Redirect(“SessionOkuma.aspx”); Button_click: (okumak için) OutputLabel.Text=(String)Session[“sessionDegiskeni”];

  40. Form doğrulama ile site güvenliğini sağlamak http://www.asp.net/web-forms/overview/security • Form doğrulamayı açmak • Windows • Forms • Passport • Web.congif (<authentication mode=“Forms”>) • <authentication mode="Forms"> • Kullanıcılar girişi için login sayfası hazırlamak • LoginStatus nesnesi -> Logged Out view • Login bileşenini LoginStatus nesnesinin üzerinde bırak • Sayfa çalıştırıldığında veritabanı (sqlserver”) otomatik olarak yaratılıyor (web sitesiyle beraber saklanan bir veritabanı).

  41. Form doğrulama ile site güvenliğini sağlamak • Yeni kullanıcı kayıt sayfası hazırlamak • CreateUserWizard • Password (7 karekter, 1 adet alfanümerik olmayan karekter, büyük harf duyarlı) • AutoFormat • Login Form • CreateUserText -> Yeni Kullanıcı Kayıt • CreateUserURL

  42. Form doğrulama ile site güvenliğini sağlamak • ASPNETDB.MDF • Users • Username (büyük harf duyarlı değil) • Membership (hashed encoded, karşılaştırma için kullanılabilir fakat okunamaz) • Password (büyük harf duyarlı) • Kullanıcı silmek için önce Membership tablosundan silmek gerekiyor. • web.config • system.web • <authorization> • <deny users=“?”> • < /authorization >

  43. Form doğrulama ile site güvenliğini sağlamak • Authentication (kimlik doğrulama) • forms • Authorization (yetkilendirme) <deny users=“?”/>

  44. Form doğrulama ile site güvenliğini sağlamak • Logout sayfası • Header.ascx kontroluna LoginStatus nesnesini ekle • Views: Logged In • menuPanel width özelliğini kontrol et • Login.aspx sayfasından login kontrolu dışındaki ögeleri kaldır (gösterimlerine izin verilmediği için)

  45. Form doğrulama ile site güvenliğini sağlamak <configuration> <system.web> <authentication mode="Forms"> <forms name="MyAppCookie" loginUrl="~/Login.aspx" protection="All" timeout="30" path="/" /> </authentication> ... </system.web> </configuration>

  46. Form doğrulama ile site güvenliğini sağlamak • protection • All, None, Encryption, Validation • timeout • Dakika biriminden

  47. Kısaltmalar • WAT Website Administration Tool • LINQ Language Integrated Query

  48. ASP.NET web sitesini yayınlamak • IIS (Internet Information Services)– Web sunucusu kurulumu • Add-remove windows components • World Wide Web Publishing services • Virtual directory yaratılması, alias verilmesi • IIS üzerinden anonymous access verilmesi • ASP.NET framework kurulumu • IIS -> Add Application • Veritabanı script’inin hazırlanması • http://msdn.microsoft.com/en-us/library/1y1404zt.aspx

  49. ÖZET .NET Framework, aşağıdaki imkanları sağlayan bir yazılım platformudur: • Yönetilen bir bilgisayar plaformu • Güvenli bir çalışma yürütme ortamı (runtime execution environment) • Dil seçeneği (C#, VB, etc.) • Dağıtık sistemler ile entegrasyon yeteneği (web servisleri) • Nesnel tabanlı programlama ortamı

  50. .NET Framework Altyapısı

More Related