2009-09-11 3 views
3

Я хочу узнать, как сделать сайт с C#. Я знаю PHP, но мне нравится язык C# лучше. Я попытался научиться создавать веб-сайт в ASP.NET, который до сих пор действительно разочаровал меня, потому что мне действительно не нравится ASP вообще (даже меньше, чем мне нравится PHP). Что-то в этом сводит меня с ума до такой степени, что мне трудно заставить себя это изучить. Есть ли способ сразу же передать управление от ASP до C#, а затем сделать все с C#, включая вывод HTML и других материалов, когда это необходимо, как в PHP? Другими словами, мне нравится PHP-способ программирования на сайте, но предпочитаю язык C#. Любая помощь будет оценена.Веб-сайт в чистом виде C#

+3

Ваши чувства по поводу ASP.NET == Мои чувства о PHP. Я физически сержусь, когда мне приходится писать PHP-код. :) –

+1

Вот как я отношусь к VB (и пастернакам) – Seth

ответ

11

Посмотрите на asp.net mvc: http://www.asp.net/mvc/.

Это намного ближе к металлу, чем веб-формы asp.net, и должно чувствовать себя более комфортно, если вы исходите из фона PHP.

Там много хороших уроков здесь: http://www.asp.net/Learn/mvc/

+1

Я согласен с тем, что ASP.NET MVC - отличная среда, но я не понимаю, почему OP будет чувствовать себя более комфортно с ней ... –

+1

Спасибо за это! Я тестировал структуру ASP.NET MVC, и мне это очень нравится. Прохождение этих учебных пособий было лучшим опытом, чем стандартные обучающие программы ASP.NET. Я обнаружил, что это не то, что мне не нравится код ASP, я просто не люблю начинать и заканчивать там. Когда вы концептуально начинаете с C#, а затем решаете, когда передавать управление в ASP, и даже тогда только для представления, ASP действительно такой приятный. До сих пор структура MVC была легко освоена, использовалась и настраивалась. –

+0

Я рад, что смог помочь! – jonnii

6

Да, вы можете использовать HttpHanders обрабатывать все ваши запросы. HttpHandler - это класс, который может напрямую получать запрос и обрабатывать все с помощью кода. Он часто используется, чтобы поймать запрос на изображение и служить ему для базы данных, но вы, безусловно, можете использовать его для выполнения того, что хотите.

Проверьте MSDN introduction to using HttpHandlers. Пожалуйста, напишите комментарий, если у вас есть еще вопросы по этому поводу.

ASP.NET MVC - еще один вариант, но по-прежнему использует разметку ASPX по умолчанию. Вы могли бы потенциально найти другой механизм просмотра, который вам больше нравится. Я ничего не знаю об этом. (отредактирован - благодаря Joel!)

Edit: Имейте в виду, что вы технически все еще в проекте ASP.NET при использовании HttpHandlers, но это только, чтобы получить запрос/ответ/контекста сервера/и т.д. Framework бегая вокруг вас. Вы все еще можете работать на 100% с кодом C#.

+2

Серьезно ... мы рекомендуем новичкам, которые не имеют головы вокруг asp.net, что общие обработчики - это путь? Хотя это технически отвечает на этот вопрос, я чувствую себя вынужденным предупредить, что внедрение веб-сайтов таким образом будет серьезно пагубным для здоровья, учитывая богатство других вариантов, которые могли бы привести OP к более высокому уровню производительности. – spender

+4

Вот что я предлагаю, да. Вы задаете вопрос, вы получаете ответ. Если он хочет использовать код исключительно, так это можно сделать. Одна из причин, по которой многие люди могут ответить на вопросы, - это то, что мы можем получить много перспектив, и этот, безусловно, принадлежит здесь. – JoshJordan

+2

@spender: Как указано ниже, общие обработчики и httphandlers - это две разные вещи. Человек php (или даже java) на самом деле будет чувствовать себя намного лучше дома, используя общий обработчик, чем полный маршрут .net. – NotMe

1

ASP.NET MVC может быть хорошим вариантом: www.asp.net/mvc

2

Вы также можете использовать Generic Обработчики (.ashx). Они снабжают вас httpcontext, и это полностью зависит от вас, что вы с ним делаете.

+0

Посмотрите мои комментарии в ответе Джоша Джордана – spender

+2

Общие обработчики через .ashx не совпадают с httphandlers. Общий обработчик довольно близок к тому, что является страницей aspx без всего содержимого жизненного цикла страницы. – NotMe

+0

Общие обработчики - это, конечно, один из правильных ответов здесь ... Однако из списка способов реализации веб-сайта в .net один из самых бедных будет писать его с помощью общих обработчиков и неизбежно заново изобрести рамки, которые уже существуют , Для меня точка перехода на новую платформу - это то, что она предлагает больше преимуществ/взлома за доллар. Переход от PHP к родовым обработчикам действительно кажется боковым «продвижением». – spender

2

«Мне действительно не нравится ASP вообще (даже меньше, чем мне нравится PHP)», за которым следует «Мне нравится PHP-способ». Похоже, у вас проблемы со старым, и они стали несколько противоречивыми.

Я чувствовал то же самое, что от классического asp до asp.net, а традиционные сайты asp.net по-прежнему дают мне много горя. Когда вы привыкнете к более тонкому контролю, может быть трудно обойти более «каркасные» способы делать вещи. Как уже было сказано, попробуйте asp.net MVC. ИМО предлагает правильный баланс, и для меня это глоток свежего воздуха после Asp.net.

4

Просто не используйте серверный контроль, поместите код непосредственно в файл ASPX (между <% и%>), и он должен чувствовать себя так же, как PHP (или классический ASP) ... Вы также можете сделайте это с помощью HttpHandler, но в этом случае вы потеряете возможность писать встроенный HTML; вам придется выводить всю разметку с помощью Response.Write, что не совсем удобно ...

Обратите внимание, что я настоятельно советую против любого из этих подходов, это просто ответ на ваш вопрос;)

+0

+1 для ответа и предупреждения – spender

1

Это не особенно хороший вариант, но вы можете использовать C# с CGI, если вы хотите идти простой маршрут ,

+0

+1. Я должен был сделать это раньше, чтобы встретить довольно безумное требование, которое имел клиент. Это некрасиво, и если вы можете этого избежать, я бы рекомендовал это, но его можно заставить работать. – chsh

+0

Я на самом деле написал MVC-рамки с mod_rewrite и C# CGI. –

2

Вы можете делать большинство вещей в ASP.net, используя довольно чистый C#. Раньше я в значительной степени полагался на элементы управления ASP.net, перетаскивая большинство моих страниц с небольшими фрагментами кода здесь и там, чтобы сделать элементы управления делать то, что я хотел. Мне это действительно не понравилось, и это заставляет меня думать о кодировании ASP.net как совершенно отличной от программирования на C# (ну, в то время это было vb - не судите меня!).

Теперь почти все мои поколения кода и html обрабатываются различными пользовательскими классами. Мои страницы, написанные на основе кода, просто соединяют входы и события, относящиеся к странице, к моим классам использования. Аналогично, я использую встроенный код для вывода - я просто вызываю функцию на моем коде, которая собирает необходимую переменную и позволяет моим классам тяжелый подъем.

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

Смежные вопросы