Alperdotnet's Web Log

Ağustos 31, 2008

Televidyon.com

Filed under: Teknoloji — alperdotnet @ 4:42 pm
Tags: , , ,

Merhabalar;

 IPTV ve gelişen ADSL bağlantıları ile bu tür yayınların devreye girmesi bizler gibi İnternet’i sürekli kullananlar için cidden eğlenceli oluyor. Bu gelişenler içinden televidyon.com şahsen benim için cidden eğlence ve bilgi içerikli konumuna geldi. İzlemeyenler için cidden tavsiye edeceğim bir İnternet Sitesi ‘dir ki her programın tadı bir ayrı olmaktadır. Serdar Bey ve Timur Bey’e ve ve MYK Medya ‘ya cidden teşekkürlerimi sunmak isterim buralardan.

Televidyon.com

Televidyon.com

Herkese İyi seyirler dilerim.

Alper TAYFUN

Reklamlar

Aspdotnet ile TCPClient haberleşmesi

Merhabalar;

Gün geçtikçe ihtiyaçlarımız da farklılaşır. Yapacağımız işlerin sürekli olarak aynı yöntem ile yapmaktan ise farklı yollar seçmek isteriz. Bu Log’um da size anlatacağım konu ise AspDotNet uygulamalarınız da kullabileceğiniz bir türlü TCP haberleşmesini anlatacağım. Ben şahsen eğer ki Windows Form’u ile haberleşecek bir program ve Web Uygulaması yapacaksam hemen TCP haberleşmesini kullanıyorum ki en azından Default gelen 80 portu haricinde haberleşme sağlayabiliyoruz. Ben bu yazımda sizlere 7076 portundan nasıl haber verip alması ile örnek bir kod vereceğim. Kod’un size çok fazla yarar sağlıyacağını umuyorum. Bu haberleşme hem Windows Form hemde AspDotNet kanalı ile nasıl yapılacağını çok rahat bir şekilde anlayacaksınızdır.İlk önce yaratacağımız bir Windows Form projesidir. Bu proje içerisinde sürekli olarak değil fakat form’un load event’ına ekleyeceğimiz kod ile haberleşmeyi açmayı göstereceğim.

Form İçin gerekli olanlar

Imports System.Net
Imports System.Net.Sockets
Imports System.Web.HttpUtility
Imports System.Text

Public Class’ın Event bölümüne koyacağımız

Const portNumber As Integer = 7076
Dim tcpListener As New TcpListener(portNumber)

bu iki kod ile TCP Listining’i başlatmış olacağız. Bu sayede 7076 portundan rahatça bağlantı sağlayabileceksiniz. Form’un Load Event’ına ise

tcpListener.Start()

bu kodu yerleştirdiğimiz de işlemimiz tamamdır.

Şimdi sırada Web Form üzerinden TCPClient istemcimizi kurmaya. Bunun için ise bir Web Form Projesi oluşturuyoruz ve gerekli olanlar ise

Imports System.Net
Imports System.Net.Sockets
Imports System.Web.HttpUtility
Imports System.Text

şeklindedir.

Default.aspx.vb dosyamızın codebehind kısmında ise Form’un Load Event’ına ekleyeceğimiz bu kod sayesinde artık TCP üzerinden nasıl haberleşme yapıldığınız öğrenmiş bulunmaktasınız.

Try
            Dim tcpClient As New System.Net.Sockets.TcpClient()
            tcpClient.Connect(“127.0.0.1”, 7076)
            Dim networkStream As NetworkStream = tcpClient.GetStream()
            If networkStream.CanWrite And networkStream.CanRead Then
                response.write(“Tamamdır.”)
            Else
                If Not networkStream.CanRead Then
      response.write(“Sunucu Bağlantısı yapılamadı. <br>Lütfen Tekrar deneyiniz.”)
                    tcpClient.Close()
                Else
                    If Not networkStream.CanWrite Then
                        response.write(“Sunucu Bağlantısı yapılamadı. <br>Lütfen Tekrar deneyiniz.”)
                        tcpClient.Close()
                    End If
                End If

            End If

        Catch ex As System.Net.Sockets.SocketException
            If (ex.ErrorCode = 10061) Then
  response.write(“Sunucu Bağlantısı yapılamadı. <br>Lütfen Tekrar deneyiniz.”)
 End If
End Try

Alper TAYFUN

Ağustos 20, 2008

Microsoft DotNet Framework 3.5 Commonly Used Types And Namespaes

Filed under: AspDotNet — alperdotnet @ 10:48 pm
Tags: , , , , ,

Merhabalar;

 İnternet üzerinde gezinir iken sürekli bir takvim olsa da namespace leri görsem diye yakınır iken bulduğum bu mucizevi bir imaj buldum sizin ile paylaşmak istedim umarım yardımcı olacaktır.

 

 

Alper TAYFUN

AspDotNet ve Ajax

Merhabalar;

Şuan ki günümüzde en çok tartışılan konuların başında Ajax geliyor. Özellikle de bizler gibi yazılım uzmanı kişilerin seçimlerine maruz kalan bu Javascript araci web’de ve windows form’larimiz da çok büyük yardımcı oluyor. Ajax Web2.0 gibi yeni teknolojilerin getirdiği olanakların ilk başını çekmektedir. AspDotNet ‘e bunun için ek bir eklenti gelmiştir ki bu Ajax ile kodladığımız program veya websitelerimiz de gayet kolaylık sağlamaktadır. Özelllikle de Visual Web Developer ve Visual Studio kullananlar için yapılan bu extension ‘lar ile gayet hızlı Ajax kurulumu yapıp kullanmaya başlayabiliyorsunuz.

http://www.asp.net/ajax/downloads/

Adresinden indireceğiniz Toolkit ve Extension paketlerini kurduktan sonra Ajax kullanıma başlayabiliriz.

İlk önce yapacağımız yeni bir websitesi oluşturmak fakat My Templates bölümünden AJAX Control Toolkit Web Site ‘ı seçmeliyiz ki bu bize çok büyük yarar sağlayacaktır. Seçtiğimiz Template’imizi oluşturduktan sonrasında Default.aspx sayfamıza geliyoruz. Burada şu şekilde bir kod olacaktır ki bu yine <div></div> arasında olması gerekmektedir.

<asp:ScriptManager ID=”ScriptManager1″ runat=”server” />

Hemen bunun altına deneme olarak yaptığımız Update Panel kodumuzu yerleştiriyoruz.

<asp:UpdateProgress ID=”UpdateProgress1″ runat=”server”>
<ProgressTemplate>
<img src=”images/ajaxloading.gif” alt=”Loading Image” />
</ProgressTemplate>
</asp:UpdateProgress>

Elbette ki bu ajaxloading.gif’i istediğiniz şekilde bir loading imajı ile değiştirebilirsiniz. Sonrasında sorgumuzu yapmak için ekleyeceğimiz UpdatePanel’imiz olacaktır.

<asp:UpdatePanel ID=”UpdatePanel1″ runat=”server”>
<Triggers>
<asp:AsyncPostBackTrigger ControlID=”Button1″ EventName=”Click” />
</Triggers>
<ContentTemplate>
<asp:Label ID=”Label1″ runat=”server” Text=””>
<asp:Button ID=”Button1″ runat=”server” Text=”Uygula” />
</ContentTemplate>
</asp:UpdatePanel>

Şimdi bu kısmı açıklamak gerekir ise Ajax extension’ı ile gelen script’lerimizi kontrol etmemiz için bir update panel’imiz vardır. Bu update panelimizin Trigger Bölümünde gördüğünüz üzere AsyncPostBackTrigger alt element’inin ControlID’si Button1 ‘i göstermektedir ve EventName’i ise Click’dir. Burada yapılan işlem sorguyu sayfayı yeniden başlatmadan Ajax’ın innerhtml yöntemi ile otomatik olarak uygulaması demektir. Şimdi objemizi incelemeye devam edersek her control objelerinde görülen contenttemplate kısmı vardır ki burada html ve asp controller’ını rahatça kullanbilemekteyiz.

Codebehing kısmına gelecek olursak orada normal olarak yaptığımız gibi Button1 objemizin Event’ı olan Click’i seçtikten sonra ki kodlarımız şu şekilde olacaktır:

Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click

Label1.Text = “Ajax Yüklenmiştir.”

End Sub

Gördüğünüz üzere herhangi bir sorun olmadan kurulumunu yaptığınız AJAX artık AspDotNet’imiz de rahat rahat çalışmaktadır. Önümüzde ki günler de size Ajax ile çok daha fazla yapılabilen örnekler sunacağımdır.

Alper TAYFUN

AspDotNet ile Windows User oluşturma

Filed under: AspDotNet — alperdotnet @ 3:43 pm
Tags: , , , , , , , ,

Merhabalar;

Bir önce ki yazım da sizlere Windows IIS üzerinde nasıl website’si oluşturacağımızı anlatmıştım. Bu bölüm de ise sizlere nasıl wmi kullanarak Windows User’ı yaratabileceğinizi anlatacağım.

İlk önce yeni bir web sitesi oluşturuyoruz ve Website’mizin ismi Windowsusercreate olsun. Oluşturduğumuz websitemizin AppData klasörünün hemen üzerinde bulunan windowsusercreate bölümüne sağ tıklayarak Add Rerefence bölümüne tıklıyoruz. Buradan önceki yazımda da belirttiğim gibi windows sunucularda wmi gibi özel işlemler yapmanız için referans eklemeniz gerektiğini anlatmıştım ki bu bölümde de aynı referansları eklemek zorundayızdır. Bu bölümden System.DirectoryServices / System.DirectoryServices.AccountManagement / System.DirectoryServices.Protocols / System.Management / System.Management.Instrumentation referanslarını eklemeliyiz.

Şimdi referanslarımız ekledik ve sonrasında Default.aspx sayfamıza tıklayalım ve içinde ki <div> </div> kısımlarına bu kodları yerleştirelim.

<asp:Label ID=”Label1″ runat=”server” Text=”Kullanıcı Adı:”></asp:Label>
<asp:TextBox ID=”kullanici_adi” runat=”server”></asp:TextBox><br />
<asp:Label ID=”Label2″ runat=”server” Text=”Kullanıcı Şifre:”></asp:Label>
<asp:TextBox ID=”kullanici_sifre” runat=”server”></asp:TextBox><br />
<asp:Label ID=”Label3″ runat=”server” Text=”Kullanıcı Tanımı:”></asp:Label>
<asp:TextBox ID=”kullanici_tanimi” runat=”server”></asp:TextBox><br />
<asp:Label ID=”Label4″ runat=”server” Text=”Kullanıcı Grubu:”></asp:Label>
<asp:TextBox ID=”kullanici_grubu” runat=”server”></asp:TextBox><br />
<asp:Button ID=”Button1″ runat=”server” Text=”Yeni Windows User Oluştur” />

Bu yaptığımız arayüzümüzün codebehind bölümü olan default.aspx.vb kısmında eklediğimiz referanslarımızı import etmek zorundayızdır.

Imports System.Web
Imports System.Web.UI
Imports System.Web.HttpUtility
Imports System.IO
Imports System.IO.File
Imports System.DirectoryServices
Imports System.Management
Imports System.Management.ObjectGetOptions
Imports System.Text

Sırası ile Button1 objemizin Event’ı olan Click Event’ına şu kodu eklemeliyizdir.

Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click

AddUser(kullanici_adi.Text, kullanici_sifre.Text, kullanici_tanimi.text , kullanici_grubu.text)

End Sub

‘AddUser Function

Private Sub AddUser(ByVal login As String, ByVal password As String, ByVal fullName As String, ByVal memberss As String)

On Error Resume Next
Dim AD As DirectoryEntry = New DirectoryEntry(“WinNT://” + Environment.MachineName + “,computer”)
Dim NewUser As DirectoryEntry = AD.Children.Add(login, “user”)
NewUser.Invoke(“SetPassword”, New Object() {password})
NewUser.Invoke(“FullName”, New Object() {fullName})
NewUser.Invoke(“Put”, New Object() {“Description”, “Deneme”})
NewUser.Properties(“PasswordAge”).Add(0)
NewUser.Properties(“Userflags”).Add(&H40 Or &H10000)
NewUser.CommitChanges()
Dim grp As DirectoryEntry

grp = AD.Children.Find(memberss, “group”)
If grp.Name <> “” Then
grp.Invoke(“Add”, New Object() {NewUser.Path.ToString()})
End If
End Sub

Bu bölüme kadar websitemiz sorunsuz yaratılacaktır fakat ufak bir nokta vardır ki o da AspDotNet ‘in izin seviyesidir. Bu izin seviyesini ayarlamak için web.config dosyamızda değişiklik yapmak zorundayızdır ki bu o anda ki kullanacağınız olan Windows User ‘ın isim ve şifresini içermektedir.

Bunun için ekleyeceğiniz kod:

<identity impersonate=”true” userName=”alperdotnet” password=”password”/>

Bu kodumuz direk olarak <system.web> altına eklenmelidir. Eklendikten sonra bu yapmış olduğumuz AspDotNet website projemiz sorunsuz çalışacaktır.

Alper TAYFUN

AspDotNet ile IIS üzerinde websitesi oluşturma

Filed under: AspDotNet — alperdotnet @ 3:12 pm
Tags: , , , , , , , , , ,

Merhabalar;

Bu ilk yazım olacağı için biraz gergin ama kahvem ile ortamımı yumuşatmaya çabalıyorum. Bayağıdır üzerinde çalıştığım panel projesi vardı elbette herkesin hayalidir ki neden plesk kullanayım yada hosting controller kullanayım derken dotnet ile wmi birleşip güçlü bir ikili olunca karşımıza birçok yapabilirliği getirdi. Sizlere bu yazım da AspDotNet ile IIS üzerinde nasıl bir web sitesi oluşturacağımızı anlatacağım. Umarım keyif alarak okursunuz.

İlk önce yeni bir Web Site açalım. İsmi CreateWebSite olsun. DotNet Framework olarak 3.5 kullanmak zorundayız.Oluşturduğumuz website’mızın Appdata yazan klasörün hemen üzerinde ki createwebsite yazan yere sağ tıkladıktan sonra Add Reference ‘e tıklamalıyız. Burada altını çizmeliyim ki DotNet ile yapılan ekstra işlemler de reference lar yardımı ile yapılmaktadır. Özellikle de yeni bir dosya yaratma ve windows’un her hangi bir bölümünü yönetme gibi ekstra işlemler de Add Reference bölümünü kullanmak zorundayız. Bu bölümden System.DirectoryServices / System.DirectoryServices.AccountManagement / System.DirectoryServices.Protocols / System.Management / System.Management.Instrumentation referanslarını eklemeliyiz.

Şimdi referanslarımız eklendi ve sırasında Default.aspx sayfamıza tıklayalım ve içinde ki <div> </div> kısımlarına bu kodları yerleştirelim.

<asp:Label ID=”Label1″ runat=”server” Text=”Sunucu Adresi:”></asp:Label>
<asp:TextBox ID=”sunucu_adresi” runat=”server”></asp:TextBox><br />
<asp:Label ID=”Label2″ runat=”server” Text=”Web Site Adı:”></asp:Label>
<asp:TextBox ID=”website_adi” runat=”server”></asp:TextBox><br />
<asp:Label ID=”Label3″ runat=”server” Text=”Web Site Ip Adresi:”></asp:Label>
<asp:TextBox ID=”website_ipadresi” runat=”server”></asp:TextBox><br />
<asp:Label ID=”Label4″ runat=”server” Text=”Web Site Port Tanımı:”></asp:Label>
<asp:TextBox ID=”website_porttanimi” runat=”server”></asp:TextBox><br />
<asp:Button ID=”Button1″ runat=”server” Text=”Yeni Web Sitemi Oluştur” />

Şimdi Default.aspx sayfamızın arayüzünü yaratmış bulunmaktayız fakat arkada çalışan yani sayfamızın codebehind tarafına gelecek olur isek. Eklemiş olduğumuz referans lar ile birlikte sayfamızın codebehing bölümüne onları import edip sağlıklı bir şekilde çalıştırmalıyız.

Imports System.Web
Imports System.Web.UI
Imports System.Web.HttpUtility
Imports System.IO
Imports System.IO.File
Imports System.DirectoryServices
Imports System.Management
Imports System.Management.ObjectGetOptions
Imports System.Text

Sayfamızın default.aspx.vb yani codebehind bölümünün en üstüne eklediğimiz bu referanslar işlemlerimiz için bize büyük kolaylık sağlayacaktır ki framework’umuzun compile eder iken sağlıklı bir şekilde yürütmesine de yardımcı olacaktır. Aksi takdir de bu referansları codebehind kısmına eklemez iseniz bu çalışmayı yapamazsınız. Şimdi gelelim Button1 objemizin Event ‘ı olan Click Event’ına ekleyeceğimiz kodlara. Elbette ki burada bir function eklemiş bulunmaktayız ve bu function ‘ı Button1 Click Event’ımızın bitişinden hemen sonraya yazacağız ki bu function sürekli olarak kullanılabilsin.

Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click

Dim servers, site_ad, site_yol, site_tanimlar_ip, site_tanimlar_port, site_tanimlar_domain, site_tanimlar

servers = sunucu_adresi.Text
site_ad = website_adi.Text
site_tanimlar_ip = website_ipadresi.Text
site_tanimlar_port = website_porttanimi.Text
site_tanimlar_domain = website_adi.Text
site_tanimlar = site_tanimlar_ip & “:” & site_tanimlar_port & “:” & site_tanimlar_domain
site_yol = “c:\websiteler\” & site_tanimlar_domain & “”

‘Yaratılan web sitemizin kullanacagi olan klasörümüzü yaratıyoruz.

Directory.CreateDirectory(“e:\websiteler\” & site_tanimlar_domain & “”)

a = CreateWebsite(servers, site_ad, site_tanimlar, site_yol)
On Error Resume Next

Dim WebSiteID, objWebSite

WebSiteID = a
objWebSite = GetObject(“IIS://localhost/W3SVC/” & WebSiteID)

objWebSite.Start()

Response.Write(“Başarılı bir şekilde web sitemiz oluşturulmuştur.”)

End Sub

‘CreateWebSite Function

Public Shared Function CreateWebsite(ByVal webserver As String, ByVal serverComment As String, ByVal serverBindings As String, ByVal homeDirectory As String) As Integer

Dim w3svc As DirectoryEntry
w3svc = New DirectoryEntry(“IIS://localhost/w3svc”)

‘Create a website object array
Dim newsite() As Object
newsite = New Object() {serverComment, New Object() {serverBindings}, homeDirectory}

‘invoke IIsWebService.CreateNewSite
Dim websiteId As Object
websiteId = w3svc.Invoke(“CreateNewSite”, newsite)

Return websiteId

End Function

Bu bölüme kadar websitemiz sorunsuz yaratılacaktır fakat ufak bir nokta vardır ki o da AspDotNet ‘in izin seviyesidir. Bu izin seviyesini ayarlamak için web.config dosyamızda değişiklik yapmak zorundayızdır ki bu o anda ki kullanacağınız olan Windows User ‘ın isim ve şifresini içermektedir.

Bunun için ekleyeceğiniz kod:

<identity impersonate=”true” userName=”alperdotnet” password=”password”/>

Bu kodumuz direk olarak <system.web> altına eklenmelidir. Eklendikten sonra bu yapmış olduğumuz AspDotNet website projemiz sorunsuz çalışacaktır.

Alper TAYFUN

WordPress.com'da Blog Oluşturun.