Ответы пользователя по тегу ASP.NET
  • Обслуживание ASPNet MVC проекта. Как это происходит?

    dmitry_pavlov
    @dmitry_pavlov
    World-class .NET freelance contractor (remotely)
    Все проекты разные. Основной смысл - сделать все так, чтобы не сломать, что работает пока улучшаешь. Серебряной пули нет. В целом, для проекта как и для класса - принцип SOLID наш рулевой
    Ответ написан
    2 комментария
  • ASP.NET MVC почему в результате валидации модели ( Validator.TryValidateObject) содержатся дефолтные ErrorMessage а не наши собственные?

    dmitry_pavlov
    @dmitry_pavlov
    World-class .NET freelance contractor (remotely)
    Установлено должно быть только что-то одно - либо ErrorMessageString, либо ErrorMessageResourceName - но не вместе. Попробуйте явно установить ErrorMessage в null. Что-то типа этого:

    [Required(ErrorMessage = null, ErrorMessageResourceName = “RequiredAttribute_ValidationError”, ErrorMessageResourceType = typeof(ValidationResources))]
    Ответ написан
    Комментировать
  • Почему ASP.NET не используют в крупных компаниях?

    dmitry_pavlov
    @dmitry_pavlov
    World-class .NET freelance contractor (remotely)
    Вот некоторые компании, которые используют .NET стэк :)
    • StackOverflow
    • Microsoft
    • Intuit
    • Intel
    • Citrix
    • Cisco
    • Symphony
    • ThoughtWorks
    • Morgan Stanley
    • JP Morgan Chase
    • Capgemini
    • Siemens
    • Bank of america
    • Societe Generale
    • Hitachi
    • British telecom

    .NET меня лично очень радует. Особенно в свете последних трендов Microsoft все переводить в OpenSource, дружить с другими стэками разработки и платформами. Особенно радует новая волная развития, именуемая .NET Core.
    Ответ написан
    3 комментария
  • Как на Asp Net Mvc Core из Javascript кода в задачах gulp.js выполнить C# код и наоборот из приложения вызвать ф-ю javascript?

    dmitry_pavlov
    @dmitry_pavlov
    World-class .NET freelance contractor (remotely)
    Нет
    Ответ написан
    Комментировать
  • Почему не получается отправить файл?

    dmitry_pavlov
    @dmitry_pavlov
    World-class .NET freelance contractor (remotely)
    Пример использует HttpPostedFileBase (есть определнная путаница с HttpPostedFile). Ликбез по теме загрузки файлов в ASP.NET MVC.
    Ответ написан
    Комментировать
  • Сложный проект ASP.NET: выбор ORM?

    dmitry_pavlov
    @dmitry_pavlov
    World-class .NET freelance contractor (remotely)
    Я бы сначала сделал миграцию как таковую, а потом бы уже подбирал ORMы под те ли иные нужды. Единственно - желательно архитектурно работу с данными убрать в некий data access layer (чтобы потом можно было, покрыв тестами, править только его, не сильно трогая код выше уровнями). Миграцию в данном случае тогда делать лучше на голом ADO.NET так как он позволяет делать с базой все что вам надо всеми перечисленными способами.

    Когда переедете с PHP можно будет заняться уже ORMами. Для CRUD операций нормально подойдет EF. Для bulk update/insert-ов - возможно проще оставить ADO.NET (такие операции я бы еще сделал асинхронными для обработки в бекграунде с последующей нотификацией об окончании - через опрос или через push уведомления - скажем WebRTC). Для выборок со сложными запросами - убрать эти сложные запросы в хранимые процедуры и дергать их либо через EF либо через ADO.NET. На счет маппинга данных на объекты используемые выше уровня data access - использовать AutoMapper. С его помощью можно смапить что-угодно на что угодно, главное не полениться и разобраться с возможностями его конфигурирования.

    Единой ORM, которая хорошо охватит все перечисленные виды работы с данными и при этом будет оптимальной для всех, просто не может быть. У всех ORM в основе есть та или иная концепция - как надо работать с данными. Универсальные же системы - это когда все части работают одинаково (причем одинаково плохо обычно :) ).
    Ответ написан
    2 комментария
  • Как реализовать мультитенантную систему на asp.net mvc?

    dmitry_pavlov
    @dmitry_pavlov
    World-class .NET freelance contractor (remotely)
    Логику вынести в API (WebAPI), к ней обращайться из ASP.NET MVC приложений, которые хостятся под разными доменами и при каждом обращении API будут передавать помимо прочих параметров два дополнительных - откуда запрос (чтобы идентифицировать домен) и кто спрашивает (чтобы идентифицировать пользователя).

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

    Если структура баз данных для каждого пользователя одинаковая, то логикак обработки будет единой. При добавлении нового пользователя - достаточно будет задеплоить на домен новое ASP.NET MVC приложение, настроить его на адрес API, в служебной завести необзодимые данные. Если база под каждого пользователя создается автоматически программно - то все. Если нет - еще базу создать.

    CMS пишете?
    Ответ написан
    2 комментария
  • Подходит ли C#, ASP.NET для фриланса?

    dmitry_pavlov
    @dmitry_pavlov
    World-class .NET freelance contractor (remotely)
    Я не жалуюсь :) Для контекста - мои ответы на вопросы по фрилансу.

    В целом, корпоративные скиллы (вроде .NET и java), конечно, уступают в плане спроса на рынке фриланса таким как разработка на JS или мобильная разработка. Но если вы практикуете веб дотнет, корей всего вы уже были вынуждены освоить какие-то JS фреймворки и/или мобильную разработку с Xamarin (который недавно, кстати, пыл поглощен Microsoft и теперь бесплатен). На рынке (как правильно сказал @opium) появляется достаточно небольших клиентов со своими стартап проектами, где связка ASP.NET MVC + Web API + JS достаточно распространена. Относительно CSS/HTML/JS - я эти скиллы считают сателитными и их, конечно, надо иметь, если заниматься веб разработкой в стэке .NET.
    Ответ написан
    Комментировать
  • Современные тенденции разработки на C#?

    dmitry_pavlov
    @dmitry_pavlov
    World-class .NET freelance contractor (remotely)
    Если веб направление - то комбинация Web API / ASP.NET MVC + JS (клиентские фреймворки) и сопутстствующие технологии. Xamarin - возможно. Посмотрим, как Microsoft его теперь двигать будет.
    Ответ написан
    Комментировать
  • Какой NoSQL доступен для ASP.NET Core (EF7)?

    dmitry_pavlov
    @dmitry_pavlov
    World-class .NET freelance contractor (remotely)
    Готового провайдера для mongodb вроде нет пока.

    Человек пишет, что можно без проблем подсунуть IDataAccessProvider для MongoDb. Команда разработки пока такой провайдер не написала, но планы вроде как есть. Тут можно глянуть как работать с реализацией этого интерфейса на примере PostgreSql.

    Andriy 18 Oct 2015 3:19 AM #
    Is support for NoSQL DBs (like at least your DocumentDB, or maybe MongoDB) going to appear in the nearest future?

    Rowan Miller 19 Oct 2015 10:09 AM #
    @Andriy – Yes, we prototyped a couple of non-relational providers to make sure the core architecture worked for them. Our focus for the next few months is on shipping a stable product with a limited set of providers, but we absolutely still want to build out some non-relational providers.
    Ответ написан
    Комментировать
  • Каким образом с технологией ASP.NET MVC соотносятся языки программирования С# и VB.NET?

    dmitry_pavlov
    @dmitry_pavlov
    World-class .NET freelance contractor (remotely)
    У веб приложения есть две части - клиентская и серверная. Клиентская - это веб страничка, которую пользователь видит в браузере. Серверная - это то, что генерирует на сервере эти странички, которые загружаются у пользователя на клиенте (в браузере).

    Клиентская часть - это HTML, CSS и JavaScript - то бишь те технологии, которые используются для создания обычных веб страниц. При этом на сервере могут быть использованы очень разные стеки технологий. В частности для стэка .NET - есть IIS (веб-сервер для хостинг-серверов на базе Windows), на котором работает ASP.NET (это веб фреймворк для генерации веб страниц) с использованием языка программирования С# или VB.NET.

    Пример другого стека на сервере: веб-сервер Apache (обычно на хостинг сервере на базе Linux), на котором работает скажем веб-фреймфорк CakePHP с использованием языка программирования PHP.

    Еще один пример: веб-сервер Passenger (на хостинг сервере под управлением операционок семейства Unix), на котором работает веб-фремворк Ruby on Rails, где разработку вы ведете на языке программирования Ruby.

    Есть подобные серверные комбинации для других языков программирования - Python, Java и тп.

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

    Например, для языка программирования PHP есть много разных веб фреймворков. Для других языков - тоже. Даже для языков С# и VB.NET есть ASP.NET WebForms (раньше его наывали просто ASP.NET) и ASP.NET MVC (сюда же я бы отнес вариацию фреймворка для создания API - Web API). Для многиэ стэков есть много разных веб-серверов, веб-времворков и соответственно можно использовать много вариантов связок ОС - ВС - ВФ - ЯП

    На счет "Пишем сайт на VB.NET" это скорей всего значит - пишем на VB.NET веб приложение, которое будет использовать один из веб фремворков (либо ASP.NET WebForms либо ASP.NET MVC).

    Надеюсь, мне удалось внести ясность в терминологическую кашу, окружающую нас. К сожалению, даже в википедии я часто вижу эту кашу и кто-то начинает называть ASP.NET языком программирования. Это не так.
    Ответ написан
    7 комментариев
  • Как правильно выбрать язык проекта исходя из будущих фич?

    dmitry_pavlov
    @dmitry_pavlov
    World-class .NET freelance contractor (remotely)
    Без разницы, имхо. С#/ASP.NET MVC , Ruby/Rails, PHP/какой-нить из фреймворков, Python/Django... - все это подойдет для данной задачи. Для клиентской части - советую активно пользовать JS. Советую сразу подумать о мобильных версиях - как будете делать - как приложения под основны мобильные платформы или как адаптивный вебсайт. также имеет смысл обдумать инфраструктуру - какой хостинг, на акой платформе. Это в частности поможет отсечь какие-то комбинации. Если планируете жить в стэке Майкрософт (SQL Server, Azure, Windows) - тогда, конечно, разумно будет выбрать С#/ASP.NET MVC/Web API и тп
    Ответ написан
    Комментировать
  • С чего начать учить ASP.NET 5?

    dmitry_pavlov
    @dmitry_pavlov
    World-class .NET freelance contractor (remotely)
    www.asp.net/mvc - много отличных материалов - Getting Started. Все на английском, но замечу, что поскольку версии всех технологий инкрементируются с пугающим ускорением, ожидание перевода документации по очередной версии приведет к тому, что пока это случится, выйдет парочка более всежих версий. Так что надо уметь обучаться на английском. Это must have skill в нашей индустрии.
    Ответ написан
    2 комментария
  • Как защитить ASP.NET MVC приложение от администратора?

    dmitry_pavlov
    @dmitry_pavlov
    World-class .NET freelance contractor (remotely)
    Всю логику с клиента убрать - пусть будут старые добрые постбеки. Все делать на сервере, усиленную валидацию в том числе. Серверные сборки обфусцировать при билде. Если совсем хочется хардкорно и UI не слишком сложный - можно его рендерить тоже на сервере.

    Однако физический доступ к защищаемому обхекту - это по определению нарушение защиты. Вопрос с централизованным защищенным от доступа посторонних сервером, можно рещить и в интранете.
    Ответ написан
    Комментировать
  • Передача в контроллер произвольного json?

    dmitry_pavlov
    @dmitry_pavlov
    World-class .NET freelance contractor (remotely)
    Примерно так на стороне клиента:
    $.ajax({
        type: "POST",
        url: "/Controller/Action",
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        data: JSON.stringify(yourJsonObject),
        ...
    });


    На сервере - тип переменной yourJsonObject - параметра метода Action в контроллере Controller должен соответствовать струкутер JSON данных. Можно вроде еще сделать его тип dynamic - тоже вроде работает. Не помню по памяти - надо проверять.

    Ну и через строку, конечно, тоже можно, если удобней по каким-то причинам.
    Ответ написан
  • Как вызвать View без редиректа из другого контроллера?

    dmitry_pavlov
    @dmitry_pavlov
    World-class .NET freelance contractor (remotely)
    Если из верстки, то что-то типа:

    @Html.Partial("../OtherController/Action", model)
    или
    @Html.Action("Action", "OtherController", params)


    Если из метода в контроллере - то так вроде return PartialView(...);
    Ответ написан
    Комментировать
  • Какие книги читать в первый год обучения C#?

    dmitry_pavlov
    @dmitry_pavlov
    World-class .NET freelance contractor (remotely)
    Читайте Рихтера наверное. Если английский не проблема - лучше в оригинале. На перевод многие жалуются.
    Ответ написан
    Комментировать