Ответ: Http-Сервер (Отправка файла)
Цитата:
Смысл был именно в том, чтобы не только написать приложение но и разобрать по полочкам сам процесс. 50% для дела 50% для самообразования. И пять дней но не пять полных дней. В сущности только вчера сел за изучение. А решение было простое. Для работы с файлами перевел StreamWriter в BinaryWriter. Не учел этот нюанс. Всем спасибо). |
Ответ: Http-Сервер (Отправка файла)
Цитата:
|
Ответ: Http-Сервер (Отправка файла)
Расслабьтесь бэтмены).
|
Ответ: Http-Сервер (Отправка файла)
Цитата:
Зачем изобретать велосипеды с stream'ами, если можно использовать готовые решения? В реальной ситуации, использование stream'ов ручками, оправдано лишь когда стандартные решения не имеют возможности застримить как нужно, по причине например: стримишь как прокси, или вообще стримишь не файлы, или что-то сложное. Но это идет с ценой. Тот же например nginx, через который обычно раздают статичные файлы, занимается этим в разы эфективнее, и использует низкого уровня фичи платформы, чтобы иметь высшуют производительность. По факту если тебе нужно тупо постримить статичные файлы, и ты это будешь "ручками" делать, то у тебя нормальное приложение загнется при даже 10% от нагрузки в отличии от того же nginx. В продакшане в нормальных компаниях, за такое по рукам бьют. |
Ответ: Http-Сервер (Отправка файла)
Цитата:
Node.js - это круто, но зачем вызывать экскаватор, что бы вскопать небольшую клумбу, тем более если человек хочет сам поработать? |
Ответ: Http-Сервер (Отправка файла)
Цитата:
Если бы я писал какой нибудь портал, то однозначно поставил бы nginx или апач. Но у меня задачи другие: 1. Юзаться будет только веб-морда. По той причине что html-страничка привычная и удобная вещь. И ее можно вообще в закладки добавить. 2. Разобраться в базовых приципах работы с сетью не будет лишним даже если я буду писать все на node.js. Верно? Пока на шарпе. Но пока и не принципиально. Кроме того разбираться на практике с такими задачами довольно интересно. В частности я теперь имею более детальное представление о том как пишутся сервера, как устроен тот же nginx. И самое главное имею уже представление о том как можно делать и как нельзя. В инсте такому не научишься особо. |
Ответ: Http-Сервер (Отправка файла)
В инсте не научишься если сам не занимаешься этим - это ты верно подметил.
weekend project - лучший вариант учить новые вещички изобретая велосипеды обычно, с немного более конкретной задачей, будет и результат. Например Mr_F_ писал geom.io, изучал много чего, webgl, javascript, php, mysql. Немного дольше чем weekend project, но много велосипеда и много опыта он получил. Велосипеды на самом деле ок для образования, ну тогда в таком случае нужно быть открытым к любой технологии, а не тыкать мол "спросили на этом языке, а ты даешь на другом". Язык - для нормального разраба, это вообще мизерный фактор. Хороший разраб пишет на многих языках, и не будет ему проблем взять ранее не известный (ну кроме совсем замудренных), или новую либу и решить поставленную задачку. |
Ответ: Http-Сервер (Отправка файла)
Цитата:
Цитата:
|
Ответ: Http-Сервер (Отправка файла)
Ну тогда ты уже примерно знаешь:
Броузер создает TCP соединение с сервером и шлет header (plain-text). Далее сервер обрабатывает заголовок и исходя из того что в нем описано и что ожидает броузер делает решение. Ответом должен быть также заголовок со статусом и сразу после него возможно данные в сыром виде, длиной как указано в заголовке или если это octet-stream, то тупо stream данных до закрытия соединения. |
Ответ: Http-Сервер (Отправка файла)
Цитата:
Во-вторых я на 100% уверен что сравнение "V8 vs CLR" не имеет никакого отношения к "производительность отдачи статики на node.js vs производительность отдачи статики на C#". В-третьих я специально слово решение написал в кавычках, поскольку это не решение а какой-то пздц. Ты мало того что привел пример на node.js дак еще и в коде никак вообще не показал каким же все-таки образом файлы с диска на сервере появляются в браузере на клиенте. Ты тупо заюзал готовый фреймворк у которого есть функция "обработатьСтатическиеФайлы". Примерная аналогия: XXX: У меня есть приложение на node.js, но я никак понять не могу как запаковать файл в zip архив и отправить на клиент ? moka: вот код на C# (ASP.NET MVC): Код:
public class HomeController : Controller И что самое то интересное мой пост был вообще не о сравнении clr и v8 и не о сравнении node.js и C#. Ты написал что C#/clr тяжелее того же nginx (другими словами nginx справится лучше), но тут же даешь решение на node.js. То есть тормозное (по сравнению с nginx) решение на C# - это плохо и неправильно, а тормозное (по сравнению с nginx) решение на node.js/express это вдруг внезапно збс и вообще нормально. Так? Gector, Как я понимаю ты руками принимаешь соединения и пишешь в response. Для понимания основ это хорошо, однако это может сильно сбить тебя с толку... Думаю ты в конце концов хочешь получить какие-нибудь практические знания/навыки, чтобы использовать их в работе. C# это не только язык для "старта", на C# написано огромное количество веб-приложений (преимущественно в enterprise секторе) и веб-сервисов. Если хочешь как-то дальше развиваться настоятельно рекомендую взять веб-фреймворк. Сможешь хотя бы познакомиться с общепринятыми подходами к разработке, подглядеть удачные решения и т.д. Предпочтительно ASP.NET MVC, но если он кажется монструозным, то можно и Nancy. Во фреймворках принято разделять ответственность приложения и http-сервера. То есть прослушиванием порта и обработкой сетевых соединений занимается http-сервер, запросами в базу и формированием html страницы занимается приложение. Тебе совсем не обязательно ставить апач или nginx (я бы даже сказал не рекомендуется использовать эти сервера для .net веб-приложений). У винды есть IIS. Он прекрасно работает в продакшене, а уж для "попробовать" его хватит тем более. Изучив хотя бы основы разработки с aspnet mvc уже можешь претендовать на юниора - поверь мне спрос на хотя бы что-то понимающих юниоров довольно большой. |
Ответ: Http-Сервер (Отправка файла)
Взорвало?
Задача была поставлена, решение дано. А ты новеллу пишешь тут лол. Я производительность js кода на v8 с c# на clr и не сравнивал, тебя уносит. |
Ответ: Http-Сервер (Отправка файла)
Цитата:
Цитата:
#8 moka: Шарп и его виртуальная машина тяжелее того же nginx.. #17 h1dd3n: написал moka и дал "решение" на node.js #19 moka: V8 тяжелее CLR? #25 h1dd3n: Во-первых, да, я на 100% уверен что CPU-intensive код на C# будет работать быстрее на .net clr, чем js на v8 и что в общем случае у разработчика на C# больше возможностей рационального использования памяти и многоядерной архитектуры, чем у разработчика на js. Во-вторых я на 100% уверен что сравнение "V8 vs CLR" не имеет никакого отношения к "производительность отдачи статики на node.js vs производительность отдачи статики на C#". ...... И что самое то интересное мой пост был вообще не о сравнении clr и v8 и не о сравнении node.js и C#. Ты написал что C#/clr тяжелее того же nginx (другими словами nginx справится лучше), но тут же даешь решение на node.js. То есть тормозное (по сравнению с nginx) решение на C# - это плохо и неправильно, а тормозное (по сравнению с nginx) решение на node.js/express это вдруг внезапно збс и вообще нормально. Так? #26 moka: Я производительность js кода на v8 с c# на clr и не сравнивал, тебя уносит. Специально выделил жирным интересные места, поскольку у тебя, очевидно, проблемы с чтением. |
Ответ: Http-Сервер (Отправка файла)
Проблемы с чтением. Ок.
Бугуртим дальше. |
Часовой пояс GMT +4, время: 16:49. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot