segunda-feira, 29 de junho de 2009

Generic types

Enquanto meus livros para as provas de .Net não chegam (pedidos na Amazon) peguei o conteúdo do exam 70-536 (http://www.microsoft.com/learning/en/us/exam.aspx?ID=70-536&locale=en-us#tab2) e estou estudando pela internet.

Falando sobre Generic types, achei um pouco de dificuldade nos primeiros sites, mas depois encontrei uma boa explicação e porque utilizar (http://www.ondotnet.com/pub/a/dotnet/2004/05/25/whidbey_vbnet_pt2.html).

Generic types nada mais é que utilizar um tipo genérico de dados para que sua classe, método consigam trabalhar com qualquer tipo de dados.
Dai vem a pergunta: Mas porque não utilizo o tipo "Object"?
Dependendo do tipo de dado que você estiver trabalhando, o cast não é automático e pode gerar um erro em tempo de execução. Mais explicações com código fonte no link acima.

Obrigado e até o próximo post!

quarta-feira, 17 de junho de 2009

terça-feira, 16 de junho de 2009

Sequência de load de uma página que chama uma Master Page

Galera, estava com dúvida referente a sequência de carregamento de páginas no ASP.NET que tem MasterPage e User Controls.

Achei na net uma explicação.

--------------------------------------------------------

In ASP .Net lot of people think content pages load before the Masterpage (if page uses a masterpage). Thats not the case always. Look at the load sequence below for pages with masterpage:

1. Content page PreInit event.
2. Master page controls Init event.
3. Content controls Init event.
4. Master page Init event.
5. Content page Init event.
6. Content page Load event.
7. Master page Load event.
8. Master page controls Load event.
9. Content page controls Load event.
10. Content page PreRender event.
11. Master page PreRender event.
12. Master page controls PreRender event.
13. Content page controls PreRender event.
14. Master page controls Unload event.
15. Content page controls Unload event.
16. Master page Unload event.
17. Content page Unload event.

segunda-feira, 15 de junho de 2009

Relacionando advertisments com Profile e Produtos

Olá pessoal, boa tarde.

Desenvolvi uma função que busca exibe advertisments (no caso banners) filtrados por Profile e Product.
Consegui informações interessantes nos sites abaixo:

http://blogs.msdn.com/maxakbar/archive/2006/08/16/702257.aspx

http://social.msdn.microsoft.com/Forums/en-US/commserver2007/thread/4d13eef3-340b-4366-93aa-c3f4cbf2f196/

Abaixo segue o código da função:

-------------------------------------------
Public Function GetCampanha(ByVal p_strPageGroup As String, _
Optional ByVal p_strGrupoFabricanteCodigo As Integer = 0, _
Optional ByVal p_strGrupoLinhaCodigo As Integer = 0, _
Optional ByVal p_strLinhaCodigo As Integer = 0) As String

Dim l_strRenderHTML As String

Dim adContentSelector As ContentSelector = CommerceContext.Current.TargetingSystem.SelectionContexts("advertising").GetSelector()
adContentSelector.Profiles.Add("TargetingContext", CommerceContext.Current.TargetingSystem.TargetingContextProfile())

'// Adicionando PageGroup
CommerceContext.Current.TargetingSystem.TargetingContextProfile("PageGroup").Value = p_strPageGroup

'// Buscado revenda logada
Dim l_objTicket As New Profile.BusinessObjects.TicketFrontEnd
If l_objTicket.TipoTicket = Profile.BusinessObjects.TicketType.LogadoFrontEnd Then
Dim objCliente As New Profile.BusinessRules.Cliente
Dim objPessoa As Profile.BusinessObjects.Pessoa = objCliente.GetClientes(l_objTicket.Cliente.Guid)
If Not (objPessoa Is Nothing) Then
adContentSelector.Profiles.Add("UserObject", objPessoa.Profile) ' inserindo perfil para exibir Banner
End If
End If

'// Produtos selecionados
Dim productProperties As New DictionaryClass
If p_strGrupoFabricanteCodigo <> 0 Then 'ClvGrupoFabricanteCodigo
productProperties.let_Value(String.Format("_product_{0}", "ClvGrupoFabricanteCodigo"), p_strGrupoFabricanteCodigo)
End If
If p_strGrupoLinhaCodigo <> 0 Then 'p_strGrupoLinhaCodigo
productProperties.let_Value(String.Format("_product_{0}", "ClvGrupoLinhaCodigo"), p_strGrupoLinhaCodigo)
End If
If p_strLinhaCodigo <> 0 Then 'p_strLinhaCodigo
productProperties.let_Value(String.Format("_product_{0}", "ClvLinhaCodigo"), p_strLinhaCodigo)
End If
If productProperties.Count > 0 Then
adContentSelector.Profiles.Add("Product", productProperties) ' inserindo produto para exibir Banner
End If
'// Fim Produtos selecionados

Dim adContentCollector As StringCollection = adContentSelector.GetContent()
For Each adContent As String In adContentCollector
l_strRenderHTML = adContent
Next

Return l_strRenderHTML '// Retorno
End Function

-------------------------------------------

Na função acima, no relacionamento com produtos, necessito apenas de três ProductDefinition, por isso não carreguei todas as definitions de um produto.

P.S.: A classe ticket é um controle que temos para saber se o usuário está logado ou não no site. Substitua seu controle de login nessa parte do código.

Dúvidas e comentários, por favor enviem!
Abraços

segunda-feira, 8 de junho de 2009

sexta-feira, 5 de junho de 2009

Blog

Navegando a procura de informações sobre Commerce Server, achei o blog do André Nobre que parece ter bastante experiência na área.

Com sua permissão, estou anotando seu link em nossos posts.

http://weblogs.asp.net/andrenobre/

Obrigado e sempre que possível, vamos trocar informações.
Abraços.
Guto

quinta-feira, 4 de junho de 2009

Commerce Server 2007 Webcasts

I found in Max Akbar blog some really cool webcasts about Commerce Server 2007.

http://blogs.msdn.com/maxakbar/archive/2006/08/16/702257.aspx

All regards for Max Akbar
Tanks