Статьи

Топ 5 .NET Новичок Q и ​​A

Заинтересованы в .NET? Не пропустите .NET Feature Guide — это отличный ресурс!

Новое в .NET? Все еще решаете, сделать ли решающий шаг? Ты не одинок. Здесь эксперты SitePoint отвечают на 5 наиболее часто задаваемых вопросов об этой технологии…

1. Каковы преимущества платформы .NET?

«Это быстрее, проще, изящнее, чем все остальное, что я когда-либо использовал!»

Это крик многих сторонников .NET — но что это означает на самом деле?

Языки

Вы можете кодировать .NET на множестве языков, что приятно. Если у вас уже есть синтаксис, который вам нравится, вам не нужно слишком много менять, чтобы приспособить .NET.

Также .NET включает в себя C #. C # был разработан Андерсом Хейлсбергом, человеком, стоящим за Turbo Pascal и Borland Delphi. Это комбинация C, C ++ и Java, и, возможно, один из лучших языков программирования.

скорость

В каждом тесте, который я видел, .NET работал очень быстро по сравнению с другими решениями, такими как Java. Мне еще предстоит увидеть сравнение между .NET и PHP, но, скорее всего, .NET выиграет (потому что он скомпилирован и обладает чрезвычайно мощными возможностями кэширования), если вы не используете какую-либо стороннюю программу ускорения для PHP.

Библиотека классов

Но величие .NET заключается в превосходной библиотеке классов. Сказать, что «библиотека классов великолепна» просто не говорит, насколько она хороша:

ASP.NET

ASP.NET является частью библиотеки классов, и это мощная вещь. Это сэкономит вам много времени и предлагает чрезвычайно элегантное разделение кода и контента.

Проверь это.

WebForm1.aspx: 

<%@ Page language="c#" Codebehind="WebForm1.aspx.cs"  
Inherits="GuitarSite.GuitarSelectionPage" %>
<html>
<body>
<head>
</head>
<form runat=server>
 <select id="GuitarSelectBox" runat="server" />  
</form>
</body>
</html>

WebForm1.aspx.cs:

 using System; 
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;

namespace GuitarSite
{
 public class GuitarSelectionPage : System.Web.UI.Page
 {
   Protected HtmlSelect GuitarSelectBox;
   void Page_Load(Object sender, EventArgs e)  
   {  
     if (!Page.IsPostBack)
     {
       String[] guitarMakers = {"Gibson", "Fender",  
"Paul Reed Smith", "Hamer"};
       GuitarSelectBox.DataSource = guitarMakers;
       GuitarSelectBox.DataBind();
     }
   }
 }  
}

И это будет производить что-то вроде этого:

 <select name="GuitarSelectBox" id="GuitarSelectBox"> 
 <option value="Gibson">Gibson</option>
 <option value="Fender">Fender</option>
 <option value="Paul Reed Smith">Paul Reed Smith</option>
 <option value="Hamer">Hamer</option>
</select>

Я объясню код Важные строки таковы:

 String[] guitarMakers = {"Gibson", "Fender", "Paul Reed  
Smith", "Hamer"};
GuitarSelectBox.DataSource = guitarMakers;
GuitarSelectBox.DataBind();

Первая строка просто создает массив с гитарами. Вторая строка сообщает окну Select, чтобы он извлекал свои записи из массива. Третья строка делает это возможным.

Круто, да? Что еще круче, так это то, что если вы хотите, чтобы поле «Выбор» получало результаты из базы данных, вам нужно только сделать это:

 String myConnectionString = "server=(local) 
MyMSSQLServer;database=myDataBase;User ID=Admin"
SqlConnection myConnection =  
new SqlConnection(myConnectionString);
SqlDataAdapter myCommand =  
new SqlDataAdapter("SELECT * FROM Guitars", myConnection);
DataSet ds = new DataSet();
myCommand.Fill(ds, "Guitars");

GuitarSelectBox.DataSource = ds.Tables["Guitars"].DefaultView;
GuitarSelectBox.DataBind();

Обратите внимание, что вам вовсе не нужно менять файл, содержащий HTML. Еще одна изящная вещь в этом подходе заключается в том, что после использования DataBind данные остаются, так сказать, связанными. Так, например, если пользователь отправляет форму неправильно, и форма перезагружается (с красным текстом и звездочками рядом с неправильным элементом формы), вам не нужно повторно запрашивать базу данных или заново устанавливать источник данных. Часть кода if (PageIsPostBack)

Это связано с тем, что ASP.NET поддерживает состояние всех веб-элементов управления (например, элементов формы) между загрузками страниц. Это также означает, что ASP.NET автоматически запомнит, что пользователь ввел в форму, прежде чем совершить ошибку — вам не нужно беспокоиться об этой логике. ASP.NET полон таких вещей, которые экономят ваше время.

ADO.NET

ADO.NET — это уровень данных .NET, и это очень хорошо. ADO.NET (в отличие от своей предшественницы, технологии ADO) построен на основе автономной архитектуры данных. Соединения с базой данных «дороги» с точки зрения производительности, поэтому ADO.NET использует соединения данных только на короткое время. Он подключается к базе данных для получения данных и обновления данных. Когда он не выполняет ни одну из этих задач, соединение освобождается для использования другими страницами.

Большинство веб-приложений тратят большую часть своего времени, просто читая данные и отображая их, а ADO.NET предоставляет автономное подмножество данных (называемое DataSet) для приложения во время чтения и отображения. Затем ADO.NET обновляет базу данных только при изменении набора данных.

Конечно, учитывая все открытия и закрытия соединений с базой данных, у этого подхода есть проблемы с масштабируемостью. ADO.NET исправляет это путем объединения подключений, то есть, когда ваше приложение выглядит так, как будто вы создаете и уничтожаете подключения, вы фактически заимствуете и возвращаете подключения из пула, которым ADO.NET управляет для вас.

Кроме того, ADO.NET предлагает чрезвычайно мощную абстракцию базы данных. Помните предыдущий пример в разделе ASP.NET с базой данных и полем выбора?

 String myConnectionString = "server=(local)  
MyMSSQLServer;database=myDataBase;User ID=Admin"  
SqlConnection myConnection =  
new SqlConnection(myConnectionString);  
SqlDataAdapter myCommand =  
new SqlDataAdapter("SELECT * FROM Guitars", myConnection);  
 
DataSet ds = new DataSet();  
myCommand.Fill(ds, "Guitars");  
 
GuitarSelectBox.DataSource = ds.Tables["Guitars"].DefaultView;  
DataBind();

Теперь представьте, что DataSet — это ведро. В этом разделе вы кэшировали версии всех таблиц БД, которые нужны вашему приложению. SqlDataAdapter Содержимое SqlDataAdapter

Теперь, почему DataSet и DataAdapter разделены? Почему вы не можете смешать строку SQL-соединения и команду SELECT непосредственно в DataSet-bucket? Потому что вы можете использовать несколько различных типов адаптеров данных, таких как XML DataAdapters, Oracle DataAdapters и т. Д., Так что один DataSet может состоять из нескольких разных источников данных. Таким образом, вы можете сделать этот DataSet единственным объектом, который требуется вашему приложению для доступа к данным, даже если вы можете использовать 4 разных RDBMS и 3 источника данных XML. Довольно круто, а?

Кэширование

.NET автоматически кэширует классы при их компиляции, поэтому они могут доставляться с максимальной скоростью при вызове. Но Framework также предлагает некоторые другие интересные типы кэширования, например, кэширование вывода. Здесь некоторые части динамически генерируемых веб-страниц могут храниться на жестком диске в статической форме, так что они могут доставляться напрямую, а не генерироваться каждый раз. Это так просто реализовать, что мой кот мог это сделать:

 <%@ Page language="C#">  
<%@ OutputCache Duration="120" VaryByParam="*" %>  
 
<html>  
<!-- rest of page goes here -->

Это кэширует вывод страницы в течение 120 секунд после первоначального запуска страницы и сохраняет отдельную версию страницы для каждой уникальной комбинации значений строки запроса переменных формы. Вы также можете использовать атрибут VaryByParam, чтобы позволить странице изменять кэш только в случае изменения определенных вами переменных. Йоханссон

.NET также обеспечивает кроссплатформенную совместимость.

Только кроссплатформенный на Windows?

Это звучит как противоречие в терминах, но я был вовлечен в клиент-серверное приложение Visual Basic пару лет. У нас был настроен сервер, и компьютер для разработки работал хорошо. Обойдя здание, устанавливая новое приложение на ПК пользователей, мы столкнулись с проблемами слева и справа, большинство из которых были уникальными для отдельных ПК.

Подобно Java, платформа .NET работает как слой между базовой операционной системой и вашей программой. Ваша программа не работает на Windows 98, 2000 или XP, она работает на одной платформе .NET — это то, что делает возможным использование нескольких языков.

В идеальном мире Microsoft открыла бы это для других операционных систем не MS. Подумайте об этом: вы можете написать программу на любом языке для работы с другими программами, написанными на любом языке, для запуска на любом компьютере! Вестмич

2. Хорошо, если он работает с таким количеством языков, что лучше всего изучать?

Выбор языка — это вопрос предпочтений. Вот отличная статья под названием » VB .NET vs. C # «.

Если вы чувствуете, что ваши навыки PHP довольно сильны, вы, вероятно, захотите начать с C #. Это очень похоже на C ++, но не так сложно. Также имейте в виду, что C # практически идентичен Java. Вы также узнаете много синтаксиса, так как он основан на C. Джереми

Если вы имеете опыт работы с Visual Basic, VBScript или VBA (например, создание макросов в Office), вы можете попробовать VB.NET. Вестмич

Или, если вы думаете о своей возможности трудоустройства в долгосрочной перспективе, проверьте место работы в вашем районе. Получите представление о том, что работодатели ищут локально и дальше на сайтах вакансий, и, если можете, присоединитесь к группе пользователей .NET и поинтересуйтесь. ДжеремиЛ

Не бойтесь связываться с кадровыми агентствами и спрашивать их, какие навыки чаще всего требуются работодателям, и спрашивать более опытных программистов, где они видят курс рынка.

3. ОК. Поэтому я хочу попасть в .NET. Какой лучший способ узнать это?

Большие ресурсы включают в себя:

Чтобы начать обучение, проверьте:

  • .NET Framework
  • MSDE — бесплатная версия сервера Microsoft SQL. Он работает точно так же, как настоящий, за исключением того, что вы не можете использовать его в производственной среде.
  • Загрузите .NET SDK — в недавнем опросе 84,62% ​​разработчиков .NET из SitePoint заявили, что не могут жить без него!
  • Не забывайте, что Кевин Янк начинает работу с ASP.NET , прямо здесь, в категории SitePoint для ASP и .NET .

Если вы в печати, посмотрите на эти книги:

4. Можно ли использовать редактор ASP.NET?

Есть! Microsoft выпустила собственный бесплатный редактор WYSIWYG, который называется Web Matrix Project, который вы можете скачать здесь .

Если вы хотите немного больше контролировать форматирование кода, вы можете перенастроить другой редактор — mtffafl перенастроил его копию Editpad Lite для автоматического отступа в файлах .aspx и .aspx.cs.

Dreamweaver MX от Macromedia отлично распознает и выделяет код ASP.NET, а также обеспечивает предварительный просмотр в реальном времени.

5. Где я могу получить .NET хостинг?

Первой остановкой должен быть ваш существующий веб-хост — позвоните или напишите им и спросите, поддерживают ли они .NET.

Если у вас нет хоста или вы ходите по магазинам, у www.asp.net есть обширный список хостов .net на их странице ресурсов.

Все больше ASP-хостов становятся постоянными .NET, включая www.adehost.com , лично рекомендованный Джереми

Вы также можете получить бесплатный хостинг .NET от таких компаний, как http://www.dotnetplayground.com и http://www.brinkster.com .

Эта статья является частью SitePoint .NET Feature Guide — отличного ресурса для начинающих и опытных разработчиков .NET. Не пропустите!