![](images/chestnut/misc/left.gif) |
С# Средство разработки на платформе .Net |
05.08.2015, 18:27
|
#16
|
Легенда
Регистрация: 14.10.2007
Сообщений: 3,878
Написано 2,012 полезных сообщений (для 5,072 пользователей)
|
Ответ: Http-Сервер (Отправка файла)
Сообщение от moka
Он спросил изначально 31.07.2015. Сегодня уже 05.08.2015, это 5 дней спустя он не решил задачу.
Я загуглил, и написал мелкий скрипт за ~5 минут, и решил его задачу, также показал как хэндлить кодом запросы тоже.
Если бы его шарп решал бы отлично поставленную задачу, или была бы инфа - то думаю за 5 дней нашлось бы решение.
В отличии от тебя, я дал решение задачи. Ты лишь оффтопнул.
|
Кхм... Вообще помог в вк действительно))).
Смысл был именно в том, чтобы не только написать приложение но и разобрать по полочкам сам процесс. 50% для дела 50% для самообразования.
И пять дней но не пять полных дней. В сущности только вчера сел за изучение.
А решение было простое. Для работы с файлами перевел StreamWriter в BinaryWriter. Не учел этот нюанс.
Всем спасибо).
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
05.08.2015, 21:30
|
#17
|
Бывалый
Регистрация: 19.06.2008
Сообщений: 679
Написано 264 полезных сообщений (для 450 пользователей)
|
Ответ: Http-Сервер (Отправка файла)
Сообщение от moka
Шарп и его виртуальная машина тяжелее того же nginx..
|
написал moka и дал "решение" на node.js
__________________
|
(Offline)
|
|
Эти 2 пользователя(ей) сказали Спасибо h1dd3n за это полезное сообщение:
|
|
05.08.2015, 23:11
|
#18
|
Легенда
Регистрация: 14.10.2007
Сообщений: 3,878
Написано 2,012 полезных сообщений (для 5,072 пользователей)
|
Ответ: Http-Сервер (Отправка файла)
Расслабьтесь бэтмены).
|
(Offline)
|
|
06.08.2015, 03:16
|
#19
|
.
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений (для 6,863 пользователей)
|
Ответ: Http-Сервер (Отправка файла)
Сообщение от h1dd3n
написал moka и дал "решение" на node.js
|
V8 тяжелее CLR?
Зачем изобретать велосипеды с stream'ами, если можно использовать готовые решения?
В реальной ситуации, использование stream'ов ручками, оправдано лишь когда стандартные решения не имеют возможности застримить как нужно, по причине например: стримишь как прокси, или вообще стримишь не файлы, или что-то сложное. Но это идет с ценой.
Тот же например nginx, через который обычно раздают статичные файлы, занимается этим в разы эфективнее, и использует низкого уровня фичи платформы, чтобы иметь высшуют производительность.
По факту если тебе нужно тупо постримить статичные файлы, и ты это будешь "ручками" делать, то у тебя нормальное приложение загнется при даже 10% от нагрузки в отличии от того же nginx.
В продакшане в нормальных компаниях, за такое по рукам бьют.
|
(Offline)
|
|
06.08.2015, 09:57
|
#20
|
Элита
Регистрация: 21.01.2010
Адрес: Россия, Рязанская область, г.Михайлов
Сообщений: 2,067
Написано 1,185 полезных сообщений (для 2,828 пользователей)
|
Ответ: Http-Сервер (Отправка файла)
Сообщение от moka
Зачем изобретать велосипеды с stream'ами, если можно использовать готовые решения?
В реальной ситуации, использование stream'ов ручками, оправдано лишь когда стандартные решения не имеют возможности застримить как нужно, по причине например: стримишь как прокси, или вообще стримишь не файлы, или что-то сложное.
|
Ну... Например что бы изучить "велосипед" изнутри и понять как он работает, обычно для этого изобретают такие "велосипеды". Речь идёт вроде не про реальную ситуацию, а как раз таки про изучение.
Node.js - это круто, но зачем вызывать экскаватор, что бы вскопать небольшую клумбу, тем более если человек хочет сам поработать?
__________________
Main PC:
Intel Core i5 4260U 1.44 GHz + LPDDR3 1x4096 1600 MHz + Intel HD Graphics 5000.
Asus Ёжик T101-MT:
Intel Atom N-570 1.66 Ghz + DDR2 2x1024 800 Mhz + Intel GMA 3150 128 Mb DDR2
Скачать Doom 2D: Remake v0.3.8a
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
06.08.2015, 11:45
|
#21
|
Легенда
Регистрация: 14.10.2007
Сообщений: 3,878
Написано 2,012 полезных сообщений (для 5,072 пользователей)
|
Ответ: Http-Сервер (Отправка файла)
Сообщение от moka
V8 тяжелее CLR?
Зачем изобретать велосипеды с stream'ами, если можно использовать готовые решения?
В реальной ситуации, использование stream'ов ручками, оправдано лишь когда стандартные решения не имеют возможности застримить как нужно, по причине например: стримишь как прокси, или вообще стримишь не файлы, или что-то сложное. Но это идет с ценой.
Тот же например nginx, через который обычно раздают статичные файлы, занимается этим в разы эфективнее, и использует низкого уровня фичи платформы, чтобы иметь высшуют производительность.
По факту если тебе нужно тупо постримить статичные файлы, и ты это будешь "ручками" делать, то у тебя нормальное приложение загнется при даже 10% от нагрузки в отличии от того же nginx.
В продакшане в нормальных компаниях, за такое по рукам бьют.
|
Moka, ты в двух темах совершенно разный))). В одной надо избретать велосипеды, в другой не надо))).
Если бы я писал какой нибудь портал, то однозначно поставил бы nginx или апач. Но у меня задачи другие:
1. Юзаться будет только веб-морда. По той причине что html-страничка привычная и удобная вещь. И ее можно вообще в закладки добавить.
2. Разобраться в базовых приципах работы с сетью не будет лишним даже если я буду писать все на node.js. Верно? Пока на шарпе. Но пока и не принципиально.
Кроме того разбираться на практике с такими задачами довольно интересно. В частности я теперь имею более детальное представление о том как пишутся сервера, как устроен тот же nginx. И самое главное имею уже представление о том как можно делать и как нельзя. В инсте такому не научишься особо.
|
(Offline)
|
|
Эти 2 пользователя(ей) сказали Спасибо Gector за это полезное сообщение:
|
|
06.08.2015, 13:46
|
#22
|
.
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений (для 6,863 пользователей)
|
Ответ: Http-Сервер (Отправка файла)
В инсте не научишься если сам не занимаешься этим - это ты верно подметил.
weekend project - лучший вариант учить новые вещички изобретая велосипеды обычно, с немного более конкретной задачей, будет и результат.
Например Mr_F_ писал geom.io, изучал много чего, webgl, javascript, php, mysql. Немного дольше чем weekend project, но много велосипеда и много опыта он получил.
Велосипеды на самом деле ок для образования, ну тогда в таком случае нужно быть открытым к любой технологии, а не тыкать мол "спросили на этом языке, а ты даешь на другом".
Язык - для нормального разраба, это вообще мизерный фактор. Хороший разраб пишет на многих языках, и не будет ему проблем взять ранее не известный (ну кроме совсем замудренных), или новую либу и решить поставленную задачку.
|
(Offline)
|
|
06.08.2015, 14:12
|
#23
|
Легенда
Регистрация: 14.10.2007
Сообщений: 3,878
Написано 2,012 полезных сообщений (для 5,072 пользователей)
|
Ответ: Http-Сервер (Отправка файла)
Сообщение от moka
weekend project ....
|
Вот оно как называется).
Сообщение от moka
Велосипеды на самом деле ок для образования, ну тогда в таком случае нужно быть открытым к любой технологии, а не тыкать мол "спросили на этом языке, а ты даешь на другом".
Язык - для нормального разраба, это вообще мизерный фактор. Хороший разраб пишет на многих языках, и не будет ему проблем взять ранее не известный (ну кроме совсем замудренных), или новую либу и решить поставленную задачку.
|
Не спорю. Открытым быть нужно. Но правда в данном случае я интересовался именно базовыми принципами передачи данных. Тред скорее не про http-сервер для решения какой-то задачи, а про то как он с взаимодействует с браузером в принципе.
|
(Offline)
|
|
06.08.2015, 15:08
|
#24
|
.
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений (для 6,863 пользователей)
|
Ответ: Http-Сервер (Отправка файла)
Ну тогда ты уже примерно знаешь:
Броузер создает TCP соединение с сервером и шлет header (plain-text).
Далее сервер обрабатывает заголовок и исходя из того что в нем описано и что ожидает броузер делает решение. Ответом должен быть также заголовок со статусом и сразу после него возможно данные в сыром виде, длиной как указано в заголовке или если это octet-stream, то тупо stream данных до закрытия соединения.
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
06.08.2015, 23:45
|
#25
|
Бывалый
Регистрация: 19.06.2008
Сообщений: 679
Написано 264 полезных сообщений (для 450 пользователей)
|
Ответ: Http-Сервер (Отправка файла)
Сообщение от moka
V8 тяжелее CLR?
Зачем изобретать велосипеды с stream'ами, если можно использовать готовые решения?
В реальной ситуации, использование stream'ов ручками, оправдано лишь когда стандартные решения не имеют возможности застримить как нужно, по причине например: стримишь как прокси, или вообще стримишь не файлы, или что-то сложное. Но это идет с ценой.
Тот же например nginx, через который обычно раздают статичные файлы, занимается этим в разы эфективнее, и использует низкого уровня фичи платформы, чтобы иметь высшуют производительность.
|
Во-первых, да, я на 100% уверен что CPU-intensive код на C# будет работать быстрее на .net clr, чем js на v8 и что в общем случае у разработчика на C# больше возможностей рационального использования памяти и многоядерной архитектуры, чем у разработчика на js.
Во-вторых я на 100% уверен что сравнение "V8 vs CLR" не имеет никакого отношения к "производительность отдачи статики на node.js vs производительность отдачи статики на C#".
В-третьих я специально слово решение написал в кавычках, поскольку это не решение а какой-то пздц. Ты мало того что привел пример на node.js дак еще и в коде никак вообще не показал каким же все-таки образом файлы с диска на сервере появляются в браузере на клиенте. Ты тупо заюзал готовый фреймворк у которого есть функция " обработатьСтатическиеФайлы". Примерная аналогия:
XXX: У меня есть приложение на node.js, но я никак понять не могу как запаковать файл в zip архив и отправить на клиент ?
moka: вот код на C# (ASP.NET MVC):
public class HomeController : Controller
{
[HttpGet]
public ActionResult Index()
{
return ZippedFileResult("C:\\somefile.txt");
}
}
Код намеренно утрирован, чтобы тебе было проще понять почему твой ответ не ок.
И что самое то интересное мой пост был вообще не о сравнении 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 уже можешь претендовать на юниора - поверь мне спрос на хотя бы что-то понимающих юниоров довольно большой.
__________________
|
(Offline)
|
|
Эти 2 пользователя(ей) сказали Спасибо h1dd3n за это полезное сообщение:
|
|
07.08.2015, 15:15
|
#26
|
.
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений (для 6,863 пользователей)
|
Ответ: Http-Сервер (Отправка файла)
Взорвало?
Задача была поставлена, решение дано. А ты новеллу пишешь тут лол.
Я производительность js кода на v8 с c# на clr и не сравнивал, тебя уносит.
|
(Offline)
|
|
07.08.2015, 19:03
|
#27
|
Бывалый
Регистрация: 19.06.2008
Сообщений: 679
Написано 264 полезных сообщений (для 450 пользователей)
|
Ответ: Http-Сервер (Отправка файла)
Сообщение от moka
Взорвало?
Задача была поставлена, решение дано. А ты новеллу пишешь тут лол.
|
У тебя дислексия , да? Ты никак не можешь прочитать в моем посте почему твое решение не решение вовсе? Не надо повторять что ты дал решение, поскольку это не так. Прочитай мой ответ еще раз, для понимания.
Я производительность js кода на v8 с c# на clr и не сравнивал, тебя уносит.
|
Да у тебя неадекват головного мозга...
#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 и не сравнивал, тебя уносит.
Специально выделил жирным интересные места, поскольку у тебя, очевидно, проблемы с чтением.
__________________
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
07.08.2015, 19:44
|
#28
|
.
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений (для 6,863 пользователей)
|
Ответ: Http-Сервер (Отправка файла)
Проблемы с чтением. Ок.
Бугуртим дальше.
|
(Offline)
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 12:41.
|