Wickasitha's tech Blog

blogging everything

A code sample is worth a thousand words.  Here are a few projects to take a look at that go beyond just code snippets to show you how to put key technologies together in the form ofsample applications.  (Note, if you are looking for just code snippets and focused codesamples, you can check out the Microsoft All-in-One Code Framework project site on CodePlex.)

Layered Architecture Solution Guidance
Project Site - http://layerguidance.codeplex.com

”Designing and creating layered applications can be a challenging task to developers. Layered Architecture Solution Guidance is a Microsoft Visual Studio 2010 extension that provides a set of tools and guidance aimed at simplifying the development of layered applications.
Layered Architecture Solution Guidance is a 
Guidance Automation Extension that integrates with Microsoft Visual Studio 2010 to allow developers to easily create and organize their projects in a layered fashion following the structure that is illustrated in the Layered Architecture Sample for .NET. It provides a set of solution templates integrated with a suite of code generators to make developing layered applications much simpler and quicker.

Microsoft Spain – Domain Oriented N-Layered .NET 4.0 Sample App
Project Site - http://microsoftnlayerapp.codeplex.com/

The main goal is to show how to use .NET 4.0 wave technologies implementing typical DDD patterns: N-Layered Architecture, Domain Entities, Aggregates, Repositories, Unit of Work, Domain Services, Application Services, DTOs, DTO-Adapters, etc.

Read full article

Retrieve value of Dynamic controls in asp.net

The main object of this article is to access value of  asp.net controls which are generated dynamically. For this, we will save viewstate of dynamic controls.
Suppose we have one dropdown and one button. When user selects “Generate” option, the Dynamic table will be generated. In each cell of table there will be textbox. User enters value in the textboxes and click on button then it will display all user entered values.

In aspx page:

<form id="form1" runat="server">
<div>
<asp:Table ID="tbl" runat="server">
</asp:Table>
<asp:DropDownList ID="DropDownList1" runat="server" AutoPostBack="True"
onselectedindexchanged="DropDownList1_SelectedIndexChanged">
<asp:ListItem>Select...</asp:ListItem>
<asp:ListItem>Generate</asp:ListItem>
</asp:DropDownList>
<asp:Button ID="btnSet" runat="server" Text="Button" onclick="btnSet_Click" /> </div>
</form>

To create dynamic control:

protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
{
if (DropDownList1.SelectedIndex == 1)
{
CreateDynamicTable();
}
}
private void CreateDynamicTable()
{
// Fetch the number of Rows and Columns for the table
// using the properties
int tblRows = 5;
int tblCols = 5;
// Now iterate through the table and add your controls
for (int i = 0; i < tblRows; i++)
{
TableRow tr = new TableRow();
for (int j = 0; j < tblCols; j++)
{
TableCell tc = new TableCell();
TextBox txtBox = new TextBox();
txtBox.ID = "txt-" + i.ToString() + "-" + j.ToString();
txtBox.Text = "RowNo:" + i + " " + "ColumnNo:" + " " + j;
// Add the control to the TableCell
tc.Controls.Add(txtBox);
// Add the TableCell to the TableRow
tr.Cells.Add(tc);
}
// Add the TableRow to the Table
tbl.Rows.Add(tr);
tbl.EnableViewState = true;
ViewState["tbl"] = true;
}
}
On Button click:
protected void btnSet_Click(object sender, EventArgs e)
{
foreach (TableRow tr in tbl.Controls )
{
foreach (TableCell tc in tr.Controls)
{
if (tc.Controls[0] is TextBox)
{
Response.Write(((TextBox)tc.Controls[0]).Text);
}
}
Response.Write("<br/>");
}
}

Right Now, No output because dynamic controls are lost in postback .So we need to save dynamic controls value and generate dynamic controls again.we need to maintain viewstate.

protected override object SaveViewState()
{
object[] newViewState = new object[2];
List<string> txtValues = new List<string>();
foreach (TableRow row in tbl.Controls)
{
foreach (TableCell cell in row.Controls)
{
if (cell.Controls[0] is TextBox)
{
txtValues.Add(((TextBox)cell.Controls[0]).Text);
}
}
}
newViewState[0] = txtValues.ToArray();
newViewState[1] = base.SaveViewState();
return newViewState;
}
protected override void LoadViewState(object savedState)
{
//if we can identify the custom view state as defined in the override for SaveViewState
if (savedState is object[] && ((object[])savedState).Length == 2 && ((object[])savedState)[0] is string[] )
{
object[] newViewState = (object[])savedState;
string[] txtValues = (string[])(newViewState[0]);
if (txtValues.Length > 0)
{
//re-load tables
CreateDynamicTable();
int i = 0;
foreach (TableRow row in tbl.Controls)
{
foreach (TableCell cell in row.Controls)
{
if (cell.Controls[0] is TextBox && i < txtValues.Length)
{
((TextBox)cell.Controls[0]).Text = txtValues[i++].ToString();
}
}
}
}
//load the ViewState normally
base.LoadViewState(newViewState[1]);
}
else
{
base.LoadViewState(savedState);
}
}

Parallel Computing Virtual Labs on MSDN

Interested in trying out the support for parallel computing in Visual Studio 2010 or .NET 4,  You can now use the MSDN Virtual Labs site to try these out from the comforts of your favorite browser.  Multiple labs are available:

Canceling an async postback – ASP.NET AJAX

  • Tuesday May 11,2010 12:38 AM
  • By wickasitha
  • In AJAX, ASP.NET

Recently a new requirement came for cancel an async operation.  Being aware of the abortPostBack method the PageRequestManager, I figured that it would be pretty simple to implement this feature.  I added a ‘Cancel’ button to my progress indicator and wired the onclick handler to invoke the abortPostBack method.

Clicking cancel did abort the async postback however, because the OnUpdated animation only runs when the UpdatePanel is updated my indicator was never being hidden and it was appearing as if the application was hanging.   My approach to solving this was to look-up the animation component and invoke the animation myself.  like this:

 function abort(){
        var prm = Sys.WebForms.PageRequestManager.getInstance();
        if(prm get_isInAsyncPostBack()){
            //  abort the postback
            prm abortPostBack();
            //  get the reference to the animation for the gridview
            var animation = $find('animation');
            //  simulate stopping by replaying the animation
            animation._postBackPending = false;
            animation.get_OnUpdatingBehavior().quit();
            animation.get_OnUpdatedBehavior().play();
        }
    }
SOURCE
 (more...)

Send Email from Gmail in .net

try

{

//Create Mail Message Object with content that you want to send with mail.

System.Net.Mail.MailMessage MyMailMessage = new System.Net.Mail.MailMessage(“from@yourdomain.com”, “to@yourdomain.com”,

“This is the mail subject”, “This is the mail body”);

MyMailMessage.IsBodyHtml = false;

//Proper Authentication Details need to be passed when sending email from gmail

System.Net.NetworkCredential mailAuthentication = new

System.Net.NetworkCredential(“yourgmail”, “yourpassword”);

//Smtp Mail server of Gmail is “smpt.gmail.com” and it uses port no. 587

//For different server like yahoo this details changes and you can

//get it from respective server.

System.Net.Mail.SmtpClient mailClient = new System.Net.Mail.SmtpClient(“smtp.gmail.com”, 587);

//Enable SSL

mailClient.EnableSsl = true;

mailClient.UseDefaultCredentials = false;

mailClient.Credentials = mailAuthentication;

mailClient.Send(MyMailMessage);

}

catch (Exception ex)

{

MessageBox.Show(ex.Message);

}

kick it on DotNetKicks.com

Web Development

  • JavaScript IntelliSense® is supported in visual studio editor
  • One Click Deployment
  • Full fledged support for Silverlight to provider rich internet applications

Cloud Development

  • Windows Azure™ Tools in Visual Studio 2010 developers can build, debug and deploy services and applications for Microsoft’s new cloud platform.

More Databases

  • In addition to SQL Server developers will be able to work with IBM DB2 and Oracle databases

Support for developers

  • Contextual support helps developers better understand existing code – and write new code more efficiently
  • Enable Office tools to make your solutions more flexible and productive for specific needs
  • Call Hierarchy enables you to navigate through your code by displaying the following:
  1. All calls to and from a selected method, property, or constructor
  2. All implementations of an interface member
  3. All overrides of a virtual or abstract member
  4. This enables you to better understand how code flows and to   evaluate the effects of changes to code.
  • Highlighting References

This enhancement enables you to highlight all instances of a particular symbol in a document by clicking that symbol.

  • To navigate between references, you can use CTRL+SHIFT+DOWN ARROW or CTRL+SHIFT+UP ARROW.

Dynamic Support

  • Visual C# 2010 provides support for late binding to dynamic types by introducing a new type, dynamic.

Better USER Experience

  • Clear UI Organization
  • Reduced clutter and complexity
  • Improved editor
  • Better support for floating documents and windows
  • Enhanced document targeting
  • Focused animations for action feedback

Parallel Programming

  • Parallel programming is simplified, so both native- and managed-code developers can  productively build innovative applications.
  • IDE support for parallel programming
  • Full support for IronPython, IronRuby, and F#.[32]

More features : here

RSS Feeds

QR Code

qr code

QR code created by QR code Widget

Fun with .NET

Visitors

Your Ads Here
Promote your products