Клубове Дир.бг
powered by diri.bg
търси в Клубове diri.bg Разширено търсене

Вход
Име
Парола

Клубове
Dir.bg
Взаимопомощ
Горещи теми
Компютри и Интернет
Контакти
Култура и изкуство
Мнения
Наука
Политика, Свят
Спорт
Техника
Градове
Религия и мистика
Фен клубове
Хоби, Развлечения
Общества
Я, архивите са живи
Клубове Дирене Регистрация Кой е тук Въпроси Списък Купувам / Продавам 09:38 03.06.24 
Компютри и Интернет
   >> Програмисти
Всички теми Следваща тема *Кратък преглед

Страници по тази тема: 1 | 2 | (покажи всички)
Тема [Off topic] ASP.NET MVC 4 въпроснови  
Автор Beco_ (Boogie chillun)
Публикувано13.08.13 21:08



Имам едно старо проектче което съм писал на ASP.NET/DOT.NET 2.0 и трябва да го обновя и разширя като функционалност с ~ 1/3 отгоре и се чудя дали да продължа с ASP.NET web forms или за премина към ASP.NET MVC 4 заради CV-то. Приложението е нищо особено - бизнес приложение и за интерфейса ще се справя с jQuery UI. Изборът е ясен - ше се се използва ASP.MVC щото имам гридове които вече пълнят около 30 000 записа без странициране, въпросът ми е - ASP.NET MCV като чета (нямам никакъв опит) изисква Entity Framework, Linq и всичките п*тки майни на МС, но мога ли за контролера да използвам SQL, някакъв List и Json, ъ?

Съвети?
TIA


... for a brief moment it seemed that rock 'n roll would inherit the earth.

Редактирано от Beco_ на 13.08.13 21:11.



Тема Re: [Off topic] ASP.NET MVC 4 въпрос [re: Beco_]  
Автор Гypy (bangbus driver)
Публикувано13.08.13 21:14



Контролера ти по дефоулт връща ActionResult, но може и да върне JsonResult - http://msdn.microsoft.com/en-us/library/system.web.mvc.jsonresult(v=vs.108).aspx


public JsonResult GetJSON()
{
JsonResult json = new JsonResult
{
Data = jsonResult;
};
return json;
}


Вътрешно фреймуърка прави нещо от сорта на


new JavaScriptSerializer().Serialize(jsonResult.Data);


На клиента това го хващаш и го парсваш с jQuery $.parseJSON

http://api.jquery.com/jQuery.parseJSON/

и после вече го правиш каквото го правиш.

--
One day it will make sense.

Тема Re: [Off topic] ASP.NET MVC 4 въпрос [re: Гypy]  
Автор rabin ()
Публикувано13.08.13 21:22



Довчера се дърлихте, днес си помагате. Евала! Доброто ще победи, някой ден, ама аз залагам винаги на лошите. И в двата случая печеля.



Тема Re: [Off topic] ASP.NET MVC 4 въпроснови [re: Beco_]  
Автор Гypy (bangbus driver)
Публикувано13.08.13 21:22



Ето тука цял добре написан пример -
http://stackoverflow.com/questions/9921517/use-ajax-and-jsonresult-in-asp-net-mvc-3

От клиента викаш контролера с $.ajax, контролера връща JsonResult, после на success event-a на jQuery $.ajax парсеваш респонса с $.parseJSON и си готов, данните са ти на клиента.

Aко го правиш за СВ, може да сложиш и AntiForgeryToken за секюрити, да покажеш, че и това знаеш:

http://msdn.microsoft.com/en-us/library/dd470175(v=vs.108).aspx

--
One day it will make sense.


Тема Re: [Off topic] ASP.NET MVC 4 въпрос [re: Beco_]  
Автор chupac (chupacabron)
Публикувано13.08.13 21:22



можеш, но така описано май ще ти е по-лесно да хванеш ентити и линк.

Al: A Bundy never wins, but a Bundy never quits.


Тема Re: [Off topic] ASP.NET MVC 4 въпроснови [re: Гypy]  
Автор chupac (chupacabron)
Публикувано13.08.13 21:23



хмм, тва последното изглежда интересно.

Al: A Bundy never wins, but a Bundy never quits.


Тема Re: [Off topic] ASP.NET MVC 4 въпроснови [re: chupac]  
Автор Гypy (bangbus driver)
Публикувано13.08.13 21:30



Автогенерираните куерита на Entity Framework и Linq-2-Sql връщат IQueryable. Toва лесно може да се кастне с .ToList() или .ToArray() до нещо, което имплементира Serializable и може да се конвертира до Json, примерно:


var query = from book in books
select new
{
label = book.Title,
value = book.ID
};

var data = JavaScriptSerializer().Serialize(query.ToList());

JsonResult json = new JsonResult

{

Data = data;

};

return json;


--
One day it will make sense.

Редактирано от Гypy на 13.08.13 21:32.



Тема Re: [Off topic] ASP.NET MVC 4 въпрос [re: Гypy]  
Автор chupac (chupacabron)
Публикувано13.08.13 21:33



мда де, нещо подобно. остава обаче въпросът как е с производителността - весо говори за гридове с по няколко десетки хиляди записа.

Al: A Bundy never wins, but a Bundy never quits.


Тема Re: [Off topic] ASP.NET MVC 4 въпрос [re: chupac]  
Автор Гypy (bangbus driver)
Публикувано13.08.13 21:44



IQueryable в EF има лейзи лоадинг, тоест можеш да направиш така


iqueryable = iqueryable.Skip((pageIndex - 1) * pageSize).Take(pageSize);


И то ще ти генерира правилното query към SQL Server да ти върне точно тези данни, примерно ред от 2000 до 2100, дори да са милиони редовете в базата, ще се изпълни за милисекунди. Тези pageIndex и pageSize ги пращаш от клиента, jQuery $.ajax може да задава параметри.

Реално вътрешно това го прави нещо от сорта на


SELECT * FROM
(
SELECT row_number() OVER


(това е синтаксиса за бързо куери на ред от до в SQL Server, но това ЕФ-2-SQL го прави автоматично)

Най-добре е request-a да е в ОData format, това е популярно в момента.

--
One day it will make sense.

Редактирано от Гypy на 13.08.13 21:46.



Тема Re: [Off topic] ASP.NET MVC 4 въпрос [re: chupac]  
Автор Beco_ (Boogie chillun)
Публикувано13.08.13 21:55



Бягам от Entity Framework и Linq като дявол от тамян. Не ми харесва като производителност и синтаксис.
Преди време имах Силвърлайт проект и след като разбах как с WCF мога да връщам каквито си искам данни и както си искам заебах Entity и Linq с най-голямо удоволствие. А липсата на странициране на толкова голямо количество записи е гаф на възложителя. Предположих предварително, че нещата ще излязат извън контрол, но той държеше да е така както иска. Със сегашното уеб приложение интерфацето замръзва за няколко минути а при xxl на брой конкурентни заявки, сървъра директно казва, че няма памет. Хубавото е че се случва само в една страница и има алтернативен вариант за извеждане на резултатите.


... for a brief moment it seemed that rock 'n roll would inherit the earth.



Страници по тази тема: 1 | 2 | (покажи всички)
Всички темиСледваща тема*Кратък преглед
Клуб :  


Clubs.dir.bg е форум за дискусии. Dir.bg не носи отговорност за съдържанието и достоверността на публикуваните в дискусиите материали.

Никаква част от съдържанието на тази страница не може да бъде репродуцирана, записвана или предавана под каквато и да е форма или по какъвто и да е повод без писменото съгласие на Dir.bg
За Забележки, коментари и предложения ползвайте формата за Обратна връзка | Мобилна версия | Потребителско споразумение
© 2006-2024 Dir.bg Всички права запазени.