Fryazino.NET Forum || Hard&Soft || Выбор платформы server-side
>> Привет, Гость! Войдите! : вход | поиск | правила | банлист
Автор
Выбор платформы server-side (1) 1 для печати | RSS 2.0
delta
Участник
Родилась такая тема ))) Вот.

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

Так как я специализируюсь на PERL, с него и начнем. PERL можно считать платформонезависимым, так как версии интерпретатора существуют практически для всех ОС. Это является его плюсом. Также если рассмотреть данный язык не только как язык для cgi-приложений, то в поставку ActivePerl начиная с версии 5.6.1.630 (последний релиз 5.6.1.631) входит TK для создания визуальной среды программы. Писать консольные программы на PERL просто.
Сфера применения языка очень широка, это понимаешь когда вникаешь в идеологию языка.

Язык PERL является самым распространенным на серверах UNIX, это также является его плюсом.

Теперь у меня много вопросов по поводу платформы dotNET?

Прослушав, лекции по dotNET, которые читали представители Майкрософт, сложилось мнение не очень хорошее мнение. dotNET, как среда разработки WEB-приложений, не очень перспективна.
Вот теперь я хочу выслушать мнение моего собеседника ))))

IP
ImperatorRUS
Участник
1689
Сразу прошу все, кто не любит М$ - сделайте себе отдельную тему и матюгайтесь туда. Здесь обсуждаются конкретные вопросы

delta
Сначала о минусах - работает только на Windows . Хотя, насколько мне известно, не привязанна к IIS (т.е., теоритически, можно запустить на апачах и т.п., но это уже из разряда слухов и доводов).

И о плюсах:
1. Компилируемый код. В момент первого запуска код скрипта компилируется и выполняется уже как программа. О скорости, я думаю говорить не приходится - он просто на порядок быстрее ASP (точно, ввиду его тормознутости , PHP и Perl.
2. Использование Namespace позволяет избежать путанницы в названиях классов - т.е. создав свой собственный namespace Вы можете создавать в нем классы с ЛЮБЫМИ именами, в т.ч. и системными.
3. Общие библиотеки (DLL) можно хранить в папке bin. Они загружаются при первом вызове скрпта и весят там до посинения. Минус - съедает память, плюс - скорость запуска и выполнения (опять же - откомпелированный код) (супротив include в PHP и других языках)
4. Очень гибкая система кеша - часть данных можно сохранять в памяти на определенный промежуток времени (как абсолютный, т.е. до определенного времени, так и относительный - на xxx минут после последнего доступа к этим данным), можно хранить: всю страницу целиком, ее часть или данные пользователя (программист сам заботится об их помещении в кеш и доступе к ним, система занимается только освобождением кеша при определенных условиях)
5. Улучшенная система авторизации - теперь Вы назначаете системе скрипт, который отвечает за авторизацию (если используется авторизация через форму - самый распространенный способ авторизации в Internet) и, посредством файла web.config, прописываете, какие суслики куда могут ходить и нужна ли авторизация вообще.
6. В руках программистов огромнейшая библиотека (графика там всякая, шифрование, доступ к файлам и т.п.)
7. Валидаторы (validators) - мечта вебпрограммиста . Указываешь, какие значения могут иметь те или иные поля формы, какие и где выдавать ошибки. Остальное система сделает сама . Причем на простейшие проверки действуют client-side скрипты (т.е. ошибка выдается сразу, без перезагрузки страницы)
8. Удобный доступ к MS SQL через набор классов SQLReader (или как его там - уже не помню). Доступ к серверу идет напрямую, а не через ODBC. Отдельный разговор - DataGrid. Тремя строчками заносим туды данные и.... сортируем, выводим на экран (с авторазбивкой на страницы), редактируем и многое другое посредством очень небольших кусков кода (буквально по несколько строк).
9. То, чего так не хватало IIS - файл web.config. Аналог .htaccess. Можно сконфигурировать все и вся. Одно но - я так и не нашел по нему нормальной доки . Пишется в формате XML (впрочем, вся технология NET построенна на этом формате)

Как вспомню еще что-нить - напишу. Честно говоря уж я, насколько любил PHP, сейчас работаю с последним только по тому, что надо. Те, кто программировал на ASP.NET Поймет, насколько это лекго и мощно. (главное - легко избежать ошибок)

ЗЫ. Возможно, на след .неделе брошу пару кусков кода как пример <p class=smalltext>[Сообщение изменил ImperatorRUS 04-05-2002.]</p>

[Сообщение изменил ImperatorRUS 04-05-2002.]

IP
delta
Участник
To ImperatorRUS
Скажу сразу, что многие примеры приведенные мною, реализованны мною. В PERL есть свои библиотеки для работы с формами, авторизацией, и шаблонами
входящие в поставку, но из-за не удобства их использования, пользуюсь собственными.

Perl код является компилируемым, самым известным компилятором является, компилятор входящий в поставку Perl DevKit (www.activestate.com). Причем компилировать можно под разные платформы. Т.е на сервере вы можете запускать компилированнй код.

Мог бы ты рассказать нам про необходимую конфигурацию сервера на котором нормально бы функционировал dotNET? Мне кажется эти параметры буду сильно отличаться от параметров для сервера UNIX+APACHE+PERL... Вот один из очень преимущественных признаков PERL.

Система авторизации подобная этой написана для PERL, кстати в моем проекте (нас двое, если хотите, то могу рассказать о нем) есть система авторизации, написанная нами и работающая с сессиями. Мы в документе для web-сервиса (не путать с web-сервисами реализованными в dotNET) в заголовке определяем необходимый тип авторизации и его параметры и ВСЁ.

Работа с формами реализована также, я про свой проект.

Давай про формат XML поговорим. Я хотел узнать насколько быстро работает xml-парсер входящий в поставку майкрософт? Сразу большой минус для модуля PERL XML::Parser, который только при инициализации сильно затормаживает работу скрипта, а представьте, если это скрипт запрашивает множество пользователей одновременно. (((

Кстати ))) Сейчас в разработке парсер, разрабатываемый также нами ))) который перед разбором XML документа, представляет из него дерево, что значительно увеличивает скорость дальнейшего его разбора (такой принцип лежит в основе многих компиляторов языков).

IP
ImperatorRUS
Участник
1689
To delta
Хех. Касательно компилятора. Насколько я понимаю, выкладывания perl-скрипта происходит так - ты его компилируешь и выкладываешь? Врят ли там стоит JIT-компилятор, который сам определяет момент перекомпеляции.

Касательно необходимых ресурсов сервера - без понятия. Я пока не видел серьезных проектов на ASP.NET - благо появился он около полугода назад. Знаю, что на моем P3-800 с 512 Мб работает замечатильно (единственное - притормаживает в момент первой компиляции). Более того - покажите мне серьезный проект, лежаший на, скажем, p133 с 16 МбОЗУ (на котором, действительно PERL выиграет)
Более того, я напомню про систему кеша (данные остаются в ОЗУ). В создаваеммом мною каталоге (предположительно 20 мая появится в и-нете на http://dir.hotindex.ru ) при генерации каждой страницы должно происходить 6-7(!) запросов к базе данных и обработка этих данных(собственно, от этого никуда не денешься ни на PERL, ни на PHP), в то время как реально, благодаря кешу, происходит только 2(!) запроса с простейшей обработкой. Разница в скорости, по-моему, очевидна.

Касательно авторизации - да, действительно на любую платформу можно написать код, но я-то имел ввиду удобство использования. Допустим есть папка, к которой должены иметь доступ только авторизованные суслики, на другую - только определенные и т.д. Как это реализовать на Perl? Особенно, если ресурсы, скажем, не являются perl-криптом (например, картинки, архивы и т.д.). Да, потенциально все это делается через Apache и тот-же перл, но вопрос в количестве ошибок и времени на создание кода. В ASP.NET мне нет необходимости помнить, какой скрипт отвечает за авторизацию. Нет необходимости проверять - имеет ли этот суслик право вообще запускать скрипт. Причем все это ВСТРОЕННО в систему и, соответственно тем, кто только начинает писать на ASP.NET НЕТ НЕОБХОДИМОСТИ делать собственные навороченные скрипты.

Касательно работы с формами:

<%@ Page Language="C#" %>
<html><head>

<script language="C#" runat="server">
void SubmitBtn_Click(Object Sender, EventArgs e) {
Label1.Text = "TextBox1.Text = " + TextBox1.Text; // Меняем текст в Label на то, что нужно нам. Причем ненадо это все сохранять в строках и потом самим заботится о подстановке в нужное место кода.
}
</script>

</head>
<body>
<h3>TextBox Sample</h3>
<form runat="server"><asp:RequiredFieldValidator id="RequiredFieldValidator1" runat="server" ControlToValidate="TextBox1" ErrorMessage="Вы не ввели текст!" ForeColor="Red"/>
<asp:TextBox id="TextBox1" Text="Type some text here" Columns="25"
MaxLength="30" runat="server"/>
<asp:Button OnClick="SubmitBtn_Click" Text="Copy Text to Label"
Runat="server"/>
<p>
<asp:Label id="Label1" Text="Label1" runat="server"/>
</form>
</body></html>

Теперь подход к формам совершенно другой. Никаких тебе input,name и value в нем . Работа с формами стала крайне похожа на ту, что реализованна в визуальных средах. Те-же методы, свойства и собития. Тут же пример простейшего валидатора - должен быть введен текст, иначе - облом. (ЗЫ Пример скомпилировал( и не проверял) из HELP, т.к. все мои наработки на работе )

Касательно XML - незнаю, не работал. Вообще я не изучаю те вещи, которые мне не нужны для написания конкретного проекта - и так времени не хватает

Итог:
1. В принцыпе, любой язык позволяет веб-программисту сделать тоже самое, что и ASP.NET. В этом смысле здесь нет ничего нового. НО для этого придется написать собственную библиотеку, на что придется потратить немало времени (а начинающим программистам в принципе не представляется возможным).
2. Скорость - да, на слабой машине лидирует *nix'ы, Apache и PHP/Perl. Вопрос в другом - 1. Покажите мне провайдера или серьезную компанию, у которой в и-нете стоит сервак, слабее двупроцессорной P3 2. Как себя будет чувствовать система при большом количестве запросов? Что может сопоставить PERL и PHP системе кеширования ASP.NET?
3. Компиляция - она есть и на PERL и на PHP. Но, насколкьо мне известно, на них нет JIT-компиляторов. ЭТо означает, что вы САМИ должны компилировать код. Это не существенно после публикации, ну а если надо отладить? Постоянная ручная перекомпиляция может вылится в проблему

IP
delta
Участник
Я указал возможность колмпиляции, но сам ее никогда не использую. Как ты сказал, это не очень удобно. Про формы, нет у меня такой замороченной проблемы с ними, всё используется почти также как и в ASP.NET.

Кеширования нет. Но есть возможность использовать на серверах IIS ))) PerlEX, который увеличивает скорость работы интерпретатора.

А если рассмотреть проблему выбора между dotNET и PERL с другой точки зрения? На сколько перспективна технология dotNET? На сколько я знаю не многие программисты до этого работающие PERL переходят на dotNET?
И после первой лекции Microsoft у меня тоже стояла проблема выбора.
Если говорить о России, то насколько я знаю (и как ты сказал) не многие проекты использовали dotNET, да и ASP предыдущего поколения.

IP
ImperatorRUS
Участник
1689
To delta

Понимаешь. Смысл есть если 1. Заказчик требует сделать все на виндах
2. Важна скорость разработка
3. В программе встречается большой объем вычислений (напомню - там все откомпилировано и в DLL)
4. Сильно может помочь кеширование (как, например, в моем случае с каталогом)

Касательно насколько перспективно. M$ держится за эту технологию всеми лапками, а в М$, насколько бы их не любили, сидят далеко не дураки. Мое личное мнение - .NET - это прорыв в веб-программировании. А насколкьо перспективно.... время покажет Одно могу сказать точно, после ASP.NET - меня тошнит от PHP

IP
delta
Участник
To ImperatorRUS
Ну, что могу сказать... Время покажет ))))
IP
dReam
:: iNFiNiTY ::
electronic universe
To delta что у тебя там за проект такой?
IP
delta
Участник
To dReam
А я думал, что ДРЕАМ здесь вообще не появляется )))
В асю (1834) и всё расскажу, чтобы не сглазить )))
IP
Страницы(1): 1

Хотите создавать темы и отправлять сообщения? Выполните Вход или Зарегистрируйтесь!




Напишите нам

µƒorum © fryazino.net