nasıl yöntemler gibi PHP kullanarak ASP.net programlayabileceğiniz

4 Cevap php

I am a PHP programmer and I want to develop a website using visual web developer .net I knew that asp.net has many different approaches in dealing with database. However, I am familer with PHP way in programming for example:

$query = "select * from table where user_id > 2"
$result = mysql_query($query);

while($row = mysql_fetch_array($result)){

echo "username is: ".$row["username"]."<br>"; }

soru, "Ben bir PHP şekilde asp.net ile başa çıkabilirim?" dir

4 Cevap

Tabii ... C # (biraz benzer sözdizimi) öğrenmek Veya aşağıdakilerden birini kullanarak geliştirmek:

Other .NET Powered Languages

Benim size dürüst önerim ASP.NET ya da genel olarak. NET geliştirmek istiyorsanız, C # öğrenmek gerektiğidir. Ben yaptım, ben bunu yaptıktan mutluyum.

Belki size programlama şekilde düşünmelisiniz. Mantık, sunum ve veri erişimi Karıştırma herhangi bir dilde iyi bir fikir değildir. Eğer gösterdi örnek "PHP yol" değildir. Evet, php gibi yazmak mümkün ama iyi bir uygulama değil. Ben asp.net öğrenerek siz de programlama hakkında bir şey öğrenmek olabilir ve gerçekten asp böyle programlamak için denemek gerektiğini düşünüyorum.

C # 3.0 teklifler size (parametreli sorguları kullanarak), doğal ve güvenli hem de bir şekilde veritabanı ile etkileşim sağlayan çok güçlü bir sözdizimi. LINQ2SQL ile C # Sizin sorgu gibi görünecektir:

var query = from t in context.table
            where t.user_id > 2
            select t;

Sadece codebehind içinde veri kaynağı (çok, mark up bunu yapmak için yolu vardır) gibi sorgu sağlamak böylece muhtemelen görünümünde bir Tekrarlayıcı kullanmak istiyorum.

// use ToList so context can be disposed
nameRepeater.DataSource = query.ToList();

Sizin mark up gibi görünecektir:

<asp:Repeater runat="server" ID="nameRepeater">
   <ItemTemplate>
   username is:
   <asp:Label runat="server" 
              ID="nameLabel"
              Text='<%= Bind("username") %>' />
   <br />
</asp:Repeater>

(Satır okunabilir için bölünmüş)

Yoksa seçim kodu denetleyicisi olacaktır ki bu durumda ASP.NET MVC kullanabilirsiniz ve kesinlikle yazılı bir görünümde PHP-sözdizimi gibi daha bir şey kullanabilirsiniz.

<% foreach (Table t in ViewData.Model) { %>
   username is: <%= t.username %><br/>
<% } %>

Asp.net yolları bir yeri vardır. Bu biraz kafa karıştırıcı, ama hepsi temelde aynıdır. Fark kullandığınız veri erişim türüdür.

(Bu indirmenize gerek) Enterprise Library kullanarak muhtemelen yakın yollarından biridir:

Database database = DatabaseFactory.CreateDatabase();
string sqlCommand = @"SELECT * FROM Users WHERE UserID=@UserID";
System.Data.Common.DbCommand dbCommand = database.GetSqlStringCommand(sqlCommand);

DataSet dataSetGroup = database.ExecuteDataSet(dbCommand);
DataTable dt = dataSetGroup.Tables[0];

foreach (DataRow dr in dt.Rows)
{
    Response.Write("User name is: " + dr["Username"].ToString() + "<br/>");
}

Enterprise Library veri erişimi kolaylaştırır sadece bir Microsoft kütüphanedir. Bunu kullanmak yoksa doğrudan veritabanına erişebilir ancak bir veri bağlantısının açılması ve kapanmasını işlemek birkaç satır alır ve bağlantılarını açma ve kapatma konusunda daha dikkatli olmak zorunda.

Bunu yapmak için başka yollar vardır:

  1. Kesin belirlenmiş veri setlerini kullanın
  2. LinqToSql veya LinqToEntities ve ADO.net Çerçeve kullanın

Hepsi farklı ama veritabanını sorgulamak gerekir yapısı benzer ve daha sonra bir foreach veri döngü (sırasında da kullanabilirsiniz) yapmak vardır.

I've been using LinqToSql recently and prefer that method. Scott Gu's blog has a good series of posts on how to use LinqToSql (linked to the last post so you can see all the previous ones): http://weblogs.asp.net/scottgu/archive/2007/09/07/linq-to-sql-part-9-using-a-custom-linq-expression-with-the-lt-asp-linqdatasource-gt-control.aspx