Nothing Special   »   [go: up one dir, main page]

Как стать автором
Обновить
1.67

ASP *

Технология создания веб-приложений и веб-сервисов

Сначала показывать
Порог рейтинга
Уровень сложности

Поработаем с MongoDb

Время на прочтение4 мин
Количество просмотров106K


В текущее время появляется всё больше high-load проектов оперирующие колоссальным объемом данных. И уже нельзя обойтись классической реляционной моделью хранения этой информации. Всё более популярными становятся NoSQL базы данных (NoSQL — обозначает Not only SQL). Одной из таких баз данных является MongoDB, которая уже заслужила внимание к себе таких компаний как Disney, craiglist, foursquare. К тому же тут неоднократно писали о ней:
NoSQL, используя MongoDB, NoRM и ASP.NET MVC
Шардинг MongoDB на пальцах
Репликация MongoDB на пальцах

Это еще одна статья о работе с MongoDb в среде .net.

Что потребуется:
1. Скачайте (http://www.mongodb.org/downloads), распакуйте и запустите mongod (это сервер)
2. Драйвер (https://github.com/mongodb/mongo-csharp-driver/downloads)
3. Поехали

Читать дальше →

OAuth2 клиент для ASP.NET

Время на прочтение2 мин
Количество просмотров14K
OAuth2 – протокол авторизации, логическое развитие OAuth 1.0. Подробнее про него можно прочитать здесь.

Блуждая по интернету в поисках нормальной библиотеки OAuth клиента для .net я не нашёл ничего подходящего и решил написать сам, благо ничего сложного в этом нет. От библиотеки требуется производить три действия: выдавать ссылку на запрос кода авторизации, после возврата от авторизатора перенаправлять приложение на страницу запроса токена и далее производить запросы используя полученный токен.
Читать дальше →

Common Table Expressions и деление таблиц на страницы

Время на прочтение3 мин
Количество просмотров31K
Здравствуйте!

Common Table Expressions или по русский обобщенные табличные выражения – это технология, которая появилась в MS SQL Server 2005 и представляет собой одну из форм повторного использования результатов одного SQL запроса в другом.

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

CTE позволяет увеличить эффективность такого извлечения данных. Суть в том, что обычно для определения какие строки требуются для отображения определенной страницы, нам нужны ключевое поле и поле, по которому выполняется сортировка, которое, впрочем, даже не всегда нужно извлекать. А для генерации страницы обычно нужно большее количество столбцов но небольшое количество строк. Выйгрыш происходит за счет того, что для определения строк определенной страницы мы используем маленький и быстрый некластерный индекс, а для извлечения строк одной страницы – кластерный индекс но с небольшим количеством строк.
Читать дальше →

Приводя в порядок POSTs в ASP.NET MVC

Время на прочтение8 мин
Количество просмотров6.7K
В топике описывается один из профессиональных приёмов разработки ASP.NET MVC приложений, который позволяет значительно сократить количество повторяющегося кода в обработчиках POST действий форм. Несмотря, на то, что я узнал о нём ещё во времена первого издания ASP.NET MVC In Action и первой mvcConf, стиль изложения Jimmy Bogard мне показался очень простым и я решил опубликовать вольный перевод для тех, кто ещё не использует этот подход на практике.

Если вы это не используете, тогда мы идем к вам!

Истории

ASP.NET MVC в крупных проектах. Введение: Model Binding

Время на прочтение5 мин
Количество просмотров13K

Вместо вступления


Пока готовилась эта статья, вышел замечательный пост 1andy Организуем view models в ASP.NET MVC, в котором разобрано многое из того, что я хотел бы поведать читателю. По этой причине я решил опустить большое вводное вступление и перейти непосредственно к практическим советам.
Читать дальше →

Declarative HTML Helpers

Время на прочтение3 мин
Количество просмотров14K

@functions @helpers


Большинство хелперов в asp.net mvc 3 это методы-расширения класса System.Web.Mvc.HtmlHelper.
Однако не всегда удобно создавать отдельный статический класс для 2-3 хелперов необходимых в одной вьюшке. И совсем неудобно создавать хелперы возвращающие большие блоки html-кода: ни подсветки синтаксиса, ни интеллисенса, ни прочих плюшек.

Для решения этих проблем в Razor есть два замечательных блока. Они позволяют создавать хелперы непосредственно в .cshtml-файлах.

image
Круто! но зачем это нужно?

Razor: вывод секций в мастер-страницах мастер-страниц

Время на прочтение4 мин
Количество просмотров21K
Всем доброго времени суток. С недавних пор занимаюсь активной разработкой на ASP.NET MVC 3 & Razor «непростого» веб-приложения и вот сегодня наткнулся на проблему, которая опытными разработчиками, может быть, уже исследована и решена, но вот новичкам информация ниже, думаю и надеюсь, окажется полезной.

Описание проблемы


Пусть в приложении есть пара представлений: View.cshtml и ViewWithSide.cshtml, а ещё есть две мастер-страницы: Layout.cshtml и LayoutWithSide.cshtml, причём первая является мастер-страницей для второй. Как можно догадаться по именам файлов, XxxWithSide.cshtml добавляет в странице боковую панель, формат вывода которой определён в мастер странице, а внутренности — в представлении. В главной мастер-странице Layout помимо основной разметки определён вывод секции «navigation», которая задаётся в представлениях.

И вот когда в коде ViewWithSide определена секция «navigation», а в LayoutWithSide нет, потому что эта секция должна обрабатываться «следующей» мастер-страницей (Layout), то при попытке открыть ViewWithSide в приложении будет выдана ошибка: The following sections have been defined but have not been rendered for the layout page "~/Views/Shared/LayoutWithSide.cshtml": «navigation» (Секция «navigation» определена, но нигде не выведена в мастер-странице).

Идея решения этой проблемы довольно проста: нужно передать вывод этой секции «следующей» мастер-странице, а там пусть сами разбираются.
Как это решается и примеры кода есть подкатом

Организуем view models в ASP.NET MVC

Время на прочтение4 мин
Количество просмотров32K


В интернете полно примеров вроде «Делаем вики на ASP.NET MVC за 15 минут». Проблема таких примеров в том, что они используют VideData или ViewBag для передачи данных в View. Для генерации форм используются нетипизированные методы вроде Html.TextBox(). А для получения данных из форм просто параметры к методам контроллера, или хуже того – сами сущности из ORM.

Это может быть прекрасно с точки зрения того, кто в жизни имеет дело только с созданием таких «видео уроков». Но в немного более сложных случаях вы, конечно же, захотите иметь строго типизированные модели, использовать строго типизированные методы вроде Html.TextBoxFor(m=>..), и получать в методе контроллера из формы ровно то, что хотите получить и при этом держать все модели в консистентном виде.

Итак, правила, если вы хотите разрабатывать в MVC:
Читать дальше →

ASP.NET MVC: Привязка данных модели, которые содержат изображения

Время на прочтение5 мин
Количество просмотров9.2K
Привязка данных(binding) является достаточно удобным средством ASP.NET MVC. Удобно оно в первую очередь тем, что позволяет скрыть реализацию преобразования данных между данными из модели и данными HTTP запроса.
В своих проектах я часто сталкиваюсь с необходимостью сохранять различные данные типа blob и image. В этой статье я бы хотел показать, как можно легко организовать и использовать привязку данных из модели, которые содержат различные изображения. Для примера я взял учебный проект MVC Music Store и решил его подправить — добавить возможность изменять изображение обложки музыкального альбома. При написании данной статьи, я использовал версию APS.NET MVC 3 и Razor.
Читать дальше →

Использование XSLT-шаблонизатора в ASP.NET MVC

Время на прочтение7 мин
Количество просмотров4.7K
Сейчас при разработке широко используется шаблон MVC, подразумевающий разделение модели данных, представления и логики работы. Довольно известная реализация этого шаблона в web-разработке — ASP.NET MVC Framework. Не так давно вышла третья версия этого фреймворка, в которой есть два варианта реализации представлений: ASPX и Razor. Оба движка имеют достаточно широкий набор возможностей, но в этой публикации я попробую описать использование другого средства для реализации представлений — XSLT-шаблоны.
Читать дальше →

Быстрое создание прототипа веб приложения в ASP.NET MVC 3 с использованием MvcScaffolding

Время на прочтение7 мин
Количество просмотров6.9K
В этой статье я бы хотел рассмотреть возможность быстрого создания функционального прототипа веб приложения на основе технологии ASP.NET MVC 3. Немного соприкоснувшись с «Ruby on Rails», я заинтересовался его возможностью Scaffolding-га т.е. быстрого способа генерации основного каркаса приложения. Это дает возможность разработчику сконцентрироваться на создании бизнес модели и получить функциональный прототип не тратя свое время на детали реализации, что очень важно в начале любого проекта. А существует что-либо подобное в ASP.NET MVC? И насколько это функционально, быстро, удобно и практично.
Я хотел бы рассмотреть это на конкретном примере, и в этом качестве предлагаю создать простой веб каталог товаров. В моем случае это будет каталог автозапчастей.
В качестве инструментов, я буду использовать следующие средства разработки и библиотеки.
  • MS Visual Studio 2010
  • ASP.NET MVC 3 – официальный релиз
  • NuGet – менеджер пакетов для Visual Studio
  • MvcScaffolding — генератор кода MVC на основе шаблонов
  • EFCodeFirst — новая возможность Entity Framework CPT5

Читать дальше →

OpenID, OAuth и другие плюшки

Время на прочтение10 мин
Количество просмотров24K

Зачем нужен OpenID



Вот бывает так, заходишь на сайт любимый, а там ссылка на другой сайт, а там статья ну очень интересная и главное – полезная – и хочется добавить комментарий, типа «Молодцы!» и чтобы добавить комментарий, нужно зарегистрироваться, а чтобы зарегистрироваться нужно ввести «Имя», «Фамилия», «Логин», «Email», «Email еще раз», «Пароль», «Снова Пароль», «Прочитал правила и согласен со всем что тут будет происходить» и «Капчу». И жмакаешь «Зарегистрироваться», а тут бац – «Логин» — занят, и поля «Пароль», «Снова Пароль», «Капча» — стерты. Ну вот так. Вводишь другой свой логин (который второй, и не главный и не любимый) и снова пароль, снова снова пароль (постите) и капчу, и бац – всё ок, только забыл снова поставить галку «Прочитал правила...». Ну ладно, прошел еще раз круги ада, на мыло вышло письмо, активировал аккаунт, так, а где там была статья, да и ну их, не молодцы они, ну т.е. молодцы ну и хрен с этим, знают и так.
Проведите эксперимент, в вашей любимой почте сделайте поиск по слову «activate» — вот примерно столько вы регистрировались на сайтах.
А с другой стороны думаешь, а давайте упростим, и делаешь простое добавление комментария: «Имя», «Email», «Сообщение» — причем «Email» можно не вводить. Через 3 месяца заходишь, а там – СПАМ! Ладно, почистил – и ноль эффекта, спам продолжает, добавил капчу – ну вроде ок, но потом снова как-то они ее обходят. И внимание(!) – вводим регистрацию… Ой!
Но есть (УРА!) – OpenID.
Читать дальше →

Пять способов показать выпадающий список в Asp.Net MVC, с достоинствами и недостатками

Время на прочтение7 мин
Количество просмотров45K
В большинстве интродукций к Asp.Net MVC рассказывается о том, как красиво и просто организовать привязку модели к простым полям ввода, таким, как текстовое или чекбокс. Если ты, бесстрашный кодер, осилил этот этап, и хочешь разобраться, как показывать выпадающие списки, списки чекбоксов или радиобаттонов,
этот пост для тебя.

Ближайшие события

Миграция приложений с ASP.NET MVC 2 на ASP.NET MVC 3 Preview 1

Время на прочтение2 мин
Количество просмотров2.4K
Я только что закончил превью своего инструмента преобразования приложения ASP.NET MVC, чтобы поддерживать преобразование от ASP.NET MVC 2 к ASP.NET MVC 3.

Предыдущая версия приложения, которое преобразовывало с ASP.NET MVC 1.0 к ASP.NET MVC 2, доступна здесь.

Читать дальше →

ASP.NET MVC: Мои правила для Представлений (Views)

Время на прочтение5 мин
Количество просмотров13K
Я работаю с командой над несколькими ASP.NET MVC проектами с октября 2009. Хотя прошло не так уж и много времени, и я еще не эксперт, я хочу описать ряд правил, которые мы выработали для того, чтобы сделать код немножко лучше. ASP.NET MVC, как и любая новая технология, может быть использована не удачно, а имея неудачные примеры, мы всегда пытаемся сделать код лучше, выбирая оптимальные варианты реализации задач.
Читать дальше →

NerdDinner. Шаг 3: Построение модели

Время на прочтение14 мин
Количество просмотров6.3K
Это третий шаг бесплатного руководства «NerdDinner», которое показывает, как построить маленькое, но полноценное веб-приложение, используя ASP.NET MVC.

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

ASP.NET MVC фреймворк поддерживает использование любой технологии доступа к данным, следовательно разработчики могут выбирать разные варианты реализации своей модели включая: LINQ to Entities, LINQ to SQL, NHibernate, LLBLGen Pro, SubSonic, WilsonORM или прямой доступ через ADO.NET DataReader и DataSet.

Для нашего NerdDinner приложения мы будем использовать LINQ to SQL для создания простой модели, которая почти аналогична структуре базы данных, а также добавим некоторую логику проверок и бизнес правила. Позже мы реализуем класс-хранилище, который поможет абстрагировать постоянную реализацию хранения данных от остальной части приложения и позволит легко производить с ним юнит-тесты.
Читать дальше →

NerdDinner. Шаг 1: Новый проект

Время на прочтение3 мин
Количество просмотров3.5K
Это первый шаг бесплатного руководства «NerdDinner», которое показывает, как построить маленькое, но полноценное веб-приложение, используя ASP.NET MVC.

Начнем наше приложение NerdDinner(ужин для ботанов) с выбора пункта меню File>New Project.

Мы увидим окно «New Project». Для создания ASP.NET MVC приложения, мы выберем пункт «Web» в левой части окна, а далее шаблон проекта «ASP.NET MVC Web Application» в правой части.

image
Читать дальше →

NoSQL, используя MongoDB, NoRM и ASP.NET MVC

Время на прочтение5 мин
Количество просмотров13K


В данной статье, я хотел бы рассказать, как работать с NoSQL и документо-ориентированной базой данных MongoDB, NoRM и ASP.NET MVC 2.

NoSQL и документо-ориентированная база данных


В этом году особенно заметны активные движения в направлении NoSQL и люди постоянно обсуждают о применении  документо-ориентированных баз вместе с веб-приложениями. Согласно Википедии “NoSQL — движение, продвигающее свободный класс не реляционных хранилищ данных, которое прервало длинную историю реляционных баз данных.  Данные хранилища могут не требовать фиксированных схем для таблиц, чаще всего избегают join-операций и обычно имеют горизонтальное масштабирование. Преподаватели часто ссылаются на подобные базы данных, как на структурированные хранилища.
Читать дальше →

Динамические формы в ASP.NET MVC

Время на прочтение6 мин
Количество просмотров19K
Часто у пользователя требуется узнать информацию о нескольких дополнительных объектах, число которых заранее не известно. Для это используют динамические формы, поля которых создаются javascript кодом на клиентской машине. В asp.net mvc работая в связке Controller-View мы работаем с типизированными объектами. Преобразованием значений из requestа пришедшего с клиента в типизированный объект занимается класс ModelBinder. Для простых объектов это достаточно тривиальная задача. Но как правильно обработать динамические данные, имена параметров которые заранее неизвестны. Решением этой задачи и посвящен этот пост.

Читать дальше →