powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Паттерны в asp.net mvc
25 сообщений из 29, страница 1 из 2
Паттерны в asp.net mvc
    #37913169
Kane_sql
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Какие паттерны возможно использовать в asp mvc, поделитель кто может опытом исепользования паттернов в вэб приложении, я пока что нашел немного из тех паттернов которые используются, и которые в книжках, например: dependency injection, factory (ControllerFactory в данном случае), repository.
...
Рейтинг: 0 / 0
Паттерны в asp.net mvc
    #37913188
handmadeFromRu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
мало вижу свяязи между якобы зависимостью с asp mvc.Если ексть задача и вы видете решение с помощью какого либо патерна вперед..Применять паттерн ради паттерна чуш.
...
Рейтинг: 0 / 0
Паттерны в asp.net mvc
    #37913202
Kane_sql
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вдруг не получиться увидеть решение с помощью паттерна в той ситуации в которой он необходим, есть какие-либо стандартные часто встречающиеся ситуации в которых необходимо применение того или иного паттерна?
...
Рейтинг: 0 / 0
Паттерны в asp.net mvc
    #37913209
handmadeFromRu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Советую прочитать книжку Р.С. Мартина, М.Мартин "Принципы, паттерны и методики гибкой разработки на языке C#", если не читали. Все понятно и доступно написано. Все приходит с опытом потому что паттерн может усложнить вам жизнь когда можно было б и без него, собствено в книжке этой написано что надо думать при выборе направления развития кода.
...
Рейтинг: 0 / 0
Паттерны в asp.net mvc
    #37913230
Kane_sql
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо за книжку прочитаю в будущем, просто если судить по существующим книжкам стивена сэндерсона и тьюториалам(nerd dinner к примеру) ну или просто создавая контроллер с репозиторием на базе mvc scaffolding( в котором создается данный контроллер с шаблоном репозитория и иньекцией зависимости), то можно сказать что dependency injection, IoC, Repository и factory - достаточно часто используемые шаблоны, хотелось бы узнать что еще можно отнести к так называемым must have шаблонам в вэб приложении?
...
Рейтинг: 0 / 0
Паттерны в asp.net mvc
    #37913240
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А как на этих паттернах хелловорлды пишутся? Я не смеюсь. Хотелось бы простых примерчиков.
...
Рейтинг: 0 / 0
Паттерны в asp.net mvc
    #37913266
Kane_sql
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ShSergeА как на этих паттернах хелловорлды пишутся? Я не смеюсь. Хотелось бы простых примерчиков.
1. http://www.mikesdotnetting.com/Article/117/Dependency-Injection-and-Inversion-of-Control-with-ASP.NET-MVC (factory, repository, dependency injection)
2. http://nerddinnerbook.s3.amazonaws.com/Part12.htm - (Repository, dependency injection)
3. http://www.programgood.net/2011/03/10/SteveSandersonMvcScaffolding.aspx (Repository, dependency injection)
...
Рейтинг: 0 / 0
Паттерны в asp.net mvc
    #37913316
Фотография iConst
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kane_sqlКакие паттерны возможно использовать в asp mvc, поделитель кто может опытом исепользования паттернов в вэб приложении, я пока что нашел немного из тех паттернов которые используются, и которые в книжках, например: dependency injection, factory (ControllerFactory в данном случае), repository. - Забейте...
В ASP.Net MVC - никакие . Это уже конкретная реализация одного из семейства.
Но, если брать дотНет в целом - то любые...
Кста - вебформс, это тоже MVC, а точнее, его разновидность: Document-View...
Делиться опытом использования паттернов - все равно что делиться вчерашним опытом в "снятии" женского пола в кабаке . В одном случае прокатит - в другом нет. Нужно понимание ситуации.
Потому-то их (паттернов) хренова тыща... Если будет опыт и четкое видение мух на котлетах - то паттерн получится сам собою...
...
Рейтинг: 0 / 0
Паттерны в asp.net mvc
    #37913328
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kane_sqlShSergeА как на этих паттернах хелловорлды пишутся? Я не смеюсь. Хотелось бы простых примерчиков.
1. http://www.mikesdotnetting.com/Article/117/Dependency-Injection-and-Inversion-of-Control-with-ASP.NET-MVC (factory, repository, dependency injection)
2. http://nerddinnerbook.s3.amazonaws.com/Part12.htm - (Repository, dependency injection)
3. http://www.programgood.net/2011/03/10/SteveSandersonMvcScaffolding.aspx (Repository, dependency injection)
Это ладно. А хелловорлд как пишется?
...
Рейтинг: 0 / 0
Паттерны в asp.net mvc
    #37913384
Kane_sql
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ShSergeKane_sqlпропущено...

1. http://www.mikesdotnetting.com/Article/117/Dependency-Injection-and-Inversion-of-Control-with-ASP.NET-MVC (factory, repository, dependency injection)
2. http://nerddinnerbook.s3.amazonaws.com/Part12.htm - (Repository, dependency injection)
3. http://www.programgood.net/2011/03/10/SteveSandersonMvcScaffolding.aspx (Repository, dependency injection)
Это ладно. А хелловорлд как пишется?
Чем не хелло ворлд?
...
Рейтинг: 0 / 0
Паттерны в asp.net mvc
    #37976738
dmax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
handmadeFromRu,
а есть в электронном варианте книженция? весь интернет обрыскал, ну нигде нет, чесслово, только англ. издание(((
...
Рейтинг: 0 / 0
Паттерны в asp.net mvc
    #37976743
handmadeFromRu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dmaxhandmadeFromRu,
а есть в электронном варианте книженция? весь интернет обрыскал, ну нигде нет, чесслово, только англ. издание(((
Неа, я с озона заказывал
...
Рейтинг: 0 / 0
Паттерны в asp.net mvc
    #37976779
Starlex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
handmadeFromRuСоветую прочитать книжку Р.С. Мартина, М.Мартин "Принципы, паттерны и методики гибкой разработки на языке C#", если не читали. Все понятно и доступно написано. Все приходит с опытом потому что паттерн может усложнить вам жизнь когда можно было б и без него, собствено в книжке этой написано что надо думать при выборе направления развития кода.

Для вэба это скорее вредная книга, какие-то неправильные там шаблоны.

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
public class Db
{
private static SqlConnection connection;
public static void Init()
{
string connectionString =
"Initial Catalog=QuickyMart;" +
"Data Source=marvin;" +
"user id=sa;password=abc;";
connection = new SqlConnection(connectionString);
connection.Open();
}
public static void Store(ProductData pd)
{
SqlCommand command = BuildInsertionCommand(pd);
command.ExecuteNonQuery();
}
private static SqlCommand
BuildInsertionCommand(ProductData pd)
{
string sql =
"INSERT INTO Products VALUES (@sku, @name, @price)";
SqlCommand command = new SqlCommand(sql, connection);
command.Parameters.Add("@sku", pd.sku);
command.Parameters.Add("@name", pd.name);
command.Parameters.Add("@price", pd.price);
return command;
}
public static ProductData GetProductData(string sku)
{
SqlCommand command = BuildProductQueryCommand(sku);
IDataReader reader = ExecuteQueryStatement(command);
ProductData pd = ExtractProductDataFromReader(reader);
reader.Close();
return pd;
}
private static
SqlCommand BuildProductQueryCommand(string sku)
{
string sql = "SELECT * FROM Products WHERE sku = @sku";
SqlCommand command = new SqlCommand(sql, connection);
command.Parameters.Add("@sku", sku);
return command;
}
private static ProductData
ExtractProductDataFromReader(IDataReader reader)
{
ProductData pd = new ProductData();
pd.Sku = reader["sku"].ToString();
pd.Name = reader["name"].ToString();
pd.Price = Convert.ToInt32(reader["price"]);
return pd;
}
public static void DeleteProductData(string sku)
{
BuildProductDeleteStatement(sku).ExecuteNonQuery();
}
private static SqlCommand
BuildProductDeleteStatement(string sku)
{
string sql = "DELETE from Products WHERE sku = @sku";
SqlCommand command = new SqlCommand(sql, connection);
command.Parameters.Add("@sku", sku);
return command;
}
private static IDataReader
ExecuteQueryStatement(SqlCommand command)
{
IDataReader reader = command.ExecuteReader();
reader.Read();
return reader;
}
public static void Close()
{
connection.Close();
}
}



или вот еще. Передавать открытое соединение в конструктор конечно можно, если аккуратно, но зачем это в вэбе, где экземпляр после выполнения какого-то одного метода обычно отправляется в мусор.

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
public class DbOrderGateway : OrderGateway
{
private readonly ProductGateway productGateway;
private readonly SqlConnection connection;
public DbOrderGateway(SqlConnection connection,
ProductGateway productGateway)
{
this.connection = connection;
this.productGateway = productGateway;
}
public void Insert(Order order)
{
string sql = "insert into Orders (cusId) values (@cusId)" +
"; select scope_identity()";
SqlCommand command = new SqlCommand(sql, connection);
command.Parameters.Add("@cusId", order.CustomerId);
int id = Convert.ToInt32(command.ExecuteScalar());
order.Id = id;
InsertItems(order);
}
public Order Find(int id)
{
string sql = "select * from Orders where orderId = @id";
SqlCommand command = new SqlCommand(sql, connection);
command.Parameters.Add("@id", id);
IDataReader reader = command.ExecuteReader();
Order order = null;
if(reader.Read())
{
string customerId = reader["cusId"].ToString();
order = new Order(customerId);
order.Id = id;
}
reader.Close();
if(order != null)
LoadItems(order);
return order;
}
private void LoadItems(Order order)
{
string sql =
"select * from Items where orderId = @orderId";
SqlCommand command = new SqlCommand(sql, connection);
command.Parameters.Add("@orderId", order.Id);
IDataReader reader = command.ExecuteReader();
while(reader.Read())
{
string sku = reader["sku"].ToString();
int quantity = Convert.ToInt32(reader["quantity"]);
Product product = productGateway.Find(sku);
order.AddItem(product, quantity);
}
}
private void InsertItems(Order order)
{
string sql = "insert into Items (orderId, quantity, sku)" +
"values (@orderId, @quantity, @sku)";
foreach(Item item in order.Items)
{
SqlCommand command = new SqlCommand(sql, connection);
command.Parameters.Add("@orderId", order.Id);
command.Parameters.Add("@quantity", item.Quantity);
command.Parameters.Add("@sku", item.Product.Sku);
command.ExecuteNonQuery();
}
}
}
...
Рейтинг: 0 / 0
Паттерны в asp.net mvc
    #37976820
handmadeFromRu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
StarlexДля вэба это скорее вредная книга, какие-то неправильные там шаблоны.

rly?) вообще то там общие паттерны, без специфики чего либо. Если у прогера нет головы, то как бы не в книге дело.
...
Рейтинг: 0 / 0
Паттерны в asp.net mvc
    #37976830
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
StarlexДля вэба это скорее вредная книга, какие-то неправильные там шаблоны.С этого места поподробнее:
- чем данные шаблоны не правильны для веба?
- какие тогда правильные?
...
Рейтинг: 0 / 0
Паттерны в asp.net mvc
    #37977061
Starlex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANA - чем данные шаблоны не правильны для веба?
- какие тогда правильные?

Не представляю, как может работать в вэбе соединение в статической переменной. Или зачем передавать готовое соединение в конструктор? Ну да, встречал случаи, когда открытое соединение хранилось в сессии, в основном это вызывало глюки и проблемы.
...
Рейтинг: 0 / 0
Паттерны в asp.net mvc
    #37977088
handmadeFromRu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
дайте номер страницы откуда вы скопипастили этот код, погляжу в понедельник в книжке, о чем атм реч идет.
...
Рейтинг: 0 / 0
Паттерны в asp.net mvc
    #37977096
Starlex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
handmadeFromRu,

649, 669
...
Рейтинг: 0 / 0
Паттерны в asp.net mvc
    #37977269
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Starlex, в русском издании нет приведённого Вами кода на обозначенных страницах :)
...
Рейтинг: 0 / 0
Паттерны в asp.net mvc
    #37977271
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
StarlexНе представляю, как может работать в вэбе соединение в статической переменной.MultipleActiveResultSets="true" и будет работать. В своей практике я с этим экспериментировал, когда второе своё приложение под веб писал, в итоге не стал использовать статического соединения :)
StarlexИли зачем передавать готовое соединение в конструктор? Ну да, встречал случаи, когда открытое соединение хранилось в сессии, в основном это вызывало глюки и проблемы.Зачастую требуется выполнить ряд операции в рамках одного соединения. К примеру создать и заполнить пару-тройку временных таблиц и вызвать процедуру обработки этих данных.
...
Рейтинг: 0 / 0
Паттерны в asp.net mvc
    #37977273
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Starlex, в русском издании книги Р.С. Мартина и М. Мартина на системе расчёта заработной платы принципы проетирования отрабатываются. Откда Вы всё-таки взяли код про заказы и продукты? :)
...
Рейтинг: 0 / 0
Паттерны в asp.net mvc
    #37977325
Starlex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAStarlex, в русском издании книги Р.С. Мартина и М. Мартина на системе расчёта заработной платы принципы проетирования отрабатываются. Откда Вы всё-таки взяли код про заказы и продукты? :)

Наверное, это другое издание
...
Рейтинг: 0 / 0
Паттерны в asp.net mvc
    #37977352
Starlex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAЗачастую требуется выполнить ряд операции в рамках одного соединения. К примеру создать и заполнить пару-тройку временных таблиц и вызвать процедуру обработки этих данных.

Да, согласен, бывает еще нужно одновременно сохранить несколько объектов, я в этих случаях пользовался IDbTransaction. Но тоже спорный подход, при ошибках, когда эти транзакции начинают откатываться, может происходить сильное замедление работы и ошибки взаимоблокировок.

Считается, что лучший подход для производительности - это переложить создание временных таблиц и т.д в хранимые процедуры.
Даже когда нужно в одной транзакции сохранить несколько объектов, которые реализованы в нескольких классах, то не пользоваться IDbTransaction, а реализовать транзакцию в ХП, куда передать xml этих объектов. Реализация более трудоемкая, но производительность выше.
...
Рейтинг: 0 / 0
Паттерны в asp.net mvc
    #37977372
handmadeFromRu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Паттерны в asp.net mvc
    #37977385
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
StarlexСчитается, что лучший подход для производительности - это переложить создание временных таблиц и т.д в хранимые процедуры.Вы о глобальных временных таблицах? Потому как если создать локальную временную таблицу в хп, то она будет жить только до конца хп :)
...
Рейтинг: 0 / 0
25 сообщений из 29, страница 1 из 2
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Паттерны в asp.net mvc
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]