NEWS

Friday, August 26, 2011

How to convert a branch back to a regular folder in TFS 2008

In an effort to remove a small amount of complexity from the UI, we have the command to convert a branch back to a folder appear only under the main menu and not in the right click menu. The way to convert a branch back to a regular folder is to do the following.




1.Bring up Source Control Explorer

2.Select the branch to convert back to the folder

3.On the main menu bar, click File -> Source Control -> Branching and Merging - > Convert to Folder

Why would you want to do this? The reason would be just to remove the branch from branch visualizations if you’ve decided you never want to see it again. This does not change the branching relationship, so you can still merge to and from the branch as before (it just affects the visualization and the properties you see in Source Control Explorer).



You can also do this if you need to remove a deleted branch from showing up in branch visualization. If you find that a deleted branch is still showing up, you can turn on the option to see deleted items in Source Control Explorer and follow the instructions above.



Tuesday, August 9, 2011

HTML color codes

Using patterns to build a robust 3-tier architecture

Many .NET applications do not benefit from a robust 3-tier architecture. Instead they have all their code (UI, business logic, and data access) in one place: the code behind.

The initial development cycle may be shorter, but in the long run you'll find that these applications do not evolve well with changing business needs. They are hard to maintain, nearly impossible to change, difficult to integrate (expose as a Web Services for example), and they do not scale very well (for when your website becomes an instant success!).

Here are some details on the 3-tier pattern architecture in Patterns in Action:
3-tier application model:
 In a 3-tier model each tier corresponds directly to one of the three elements needed in an architecture: interaction, manipulation, and storage. The three tiers or layers are:


Presentation layer — handles external interaction with the user

Business layer — manipulates the information required by the user

Database layer — stores the data handled by the system

Now, 3-tier architectures are widely accepted as a high-level best practice approach. However, as a .NET developer additional questions remain. For example, how is each tier built and and how do the tiers communicate with each other?


Below is a cross-section that shows some of the technologies used and the communication between the layers. The right-hand-side shows some of the key design patterns used in the reference application. Clearly, patterns play an integral role throughout the entire 3-tier architecture.
 
3-tier cross-section: 
Here are some details on the tiers and their relationships:


The PL: The concern of the Presentation Layer (PL) is to present information in a consistent and easy-to-understand manner to the end-user. Patterns in Action includes fully functional implementations of three UI platforms: ASP.NET, Windows Forms and WPF (Windows Presentation Foundation).

From PL to WCF: Each of the 3 UI platforms consume the exact same services hosted under WCF. This service-oriented model is an implementation of the Application Facade Design Pattern. Applications designed this way have the ability to expose their Services (Web or otherwise) with no extra work (other than configuring the WCF host). WCF is truly a powerful new platform!

From WCF to BL: The WCF Service Layer receives messages from the PL. It interprets the message, unpacks the Data Transfer Objects, and orchestrates and coordinates the interaction between Business Objects and Data Access Objects. The Services Layer is also the place where authorization, authentication, data validation, and database transactions are implemented.

The BL: In the Business Layer (BL) you'll find Business objects, such as, Product, Customer, and Order. Business Objects encapsulate business logic in the form of business rules. Business Objects themselves have no knowledge about databases or data persistence, which is handled by the DL.

From BL to DL: In fact, Business Objects do not directly interact with the Data Layer (DL).You don't ask a Product business object to save itself and there are no Save or Load methods on the Business Objects themselves. Instead, persistence is handled by dedicated Data Access Objects (another Enterprise Pattern) that extract data from the Business Objects and subsequently store it in the database.

The DL: The Data Layer (DL) handles the persistence of Business Objects. Patterns in Action offers two different technologies: ADO.NET and LINQ-to-SQL. In web.config you indicate which one to use. ADO.NET implements a 'data provider factory' which uses an abstract factory pattern and returns database specific singleton factories. This example shows that design patterns frequently work together with other patterns. When using LINQ-to-SQL you will see that LINQ generated Entities are mapped to Business Objects.

Following this review, we'd like you to walk away with the following important observation:

Have you noticed that there are no direct interactions between the PL and the BL or DL? In other words, the UI only interacts with the application via the Service Layer. This is by design. The reason is that security, data validation, and transactions are managed at the Service Layer. The UI is never allowed to bypass these important functions. Therefore, all communication with the application must go through this single point-of-entry (Application Facade) which is hosted under WCF.
 

Building a 3-tier application structure

Once you've decided to build your .NET application following a modern, pattern-based, 3-tier architecture, you may be asking yourself: How do I organize and structure my Visual Studio .NET Solution and Projects? Patterns in Action will demonstrate exactly how this is done - again, with great documentation and 100% pure source code.

Below are 3 annotated screenshots that show the Solution Explorer of this reference application.

The first screenshot shows the layers in the application. They have been numbered so that they display in a logical top-to-bottom order.
 
Physical Layers in 'Patterns in Action': 
 The next screenshot shows all 21 projects. Notice the 4 different UI platforms in the Presentation Layer (ASP.NET MVC, ASP.NET Web Forms, WinForms, and WPF). Again, each of these UI platforms consume the exact same services in WCF, which, in turn, rely on the same Service-, Business-, and Data-Layers (discussed below).
Projects in 'Patterns in Action':      
Finally, the third screenshot shows the complete set of re-usable classes, types, and design patterns that you will receive with your Patterns in Action solution:
Classes and other Types in 'Patterns in Action':   


reference: dofactory

.Net open source softwares

Free Open Source Workflow Engines in .NET

.NETBPM - is a .Net Port of JBpm. NetBpm is an open source platform for building, executing and managing workflows. It is very simple to use and integrate in other .Net applications. This Bpm Tool supports the build of Applications which are able to turn business models into executable software models. Business analysts are able to use a model driven approach to design, implement, execute and track business processes. So business people can easily react on business and strategy changes.

Free Open Source Wiki Engines in .NET

Deki Wiki is a free open source wiki and application platform for communities and enterprises. MindTouch DekiWiki was developed with an emphasis on usability, open standards, extensibility, and performance. DekiWiki began as a MediaWiki fork that was beta tested for a year and half across multiple verticals and use scenarios: manufacturing, education, non-profit, interactive design, software design and development, and more. Based on input from the beta users DekiWiki evolved into something significantly more than just another wiki. It facilitates information sharing in a contextually rich environment, which makes knowledge capture and sharing significantly better than traditional Intranet tools, network file servers, CMS, and any other wikis. MindTouch DekiWiki has the most comprehensive feature set, which includes a rich WYSIWYG Editor, page level file attachments which are indexed and searchable, hierarchical information organization, image galleries, information discovery tools (RSS feeds and a web interface), page and file versioning, page diffs, page level permissions, time based guest invitations, browse wiki link dialog, in-place images, and all data is stored in XML. Additionally, all control logic is being ported to MindTouch's Dream Framework, which is a .NET/Mono distributed application manager.

Screwturn Wiki is a fast, powerful and simple ASP.NET wiki engine, installs in a matter of minutes and it's available in different packages, fitting every need. It's even free and opensource.

FlexWiki is an implemention of Wiki, a collaborative text environment.

Free Open Source Testing Applications in .NET

WatiN stands for Web Application Testing in dotNet. Inspired by Watir, WatiN enables web application testing, through Internet Explorer on a Windows platform, expressed in any .Net language.

Search Engine API

Lucene.Net is a source code, class-per-class, API-per-API and algorithmatic port of the Java Lucene search engine to the C# and .NET platform utilizing Microsoft .NET Framework. In addition to the APIs and classes port to C#, the algorithm of Java Lucene is ported to C# Lucene. This means an index created with Java Lucene is back-and-forth compatible with the C# Lucene; both at reading, writing and updating. In fact a Lucene index can be concurrently searched and updated using Java Lucene and C# Lucene processes.

Open Source Blogs in .NET

BlogEngine.NET is an open source .NET blogging project. A blog platform with less complexity, easy customization, and one that takes advantage of the latest .NET features.

Features: * Very easy to setup and customize.

* It comes with all the features of a modern blog engine as well as new unique features such as AJAX comments and screenshot trackbacks.

* Features social bookmarks, OpenSearch support, XFN tags, AJAX, Microsummaries, Gravatars, coComments, tag cloud, Google sitemap and other so called Web 2.0 features.

* The referrer statistics enables you to see which websites link to you.

* There is a variety of cool widgets that such as an AJAX post calendar or a blogroll that automatically retrieves the latest posts from each blog and displays the title beneath the blog.

* It features a very advanced commenting system in AJAX that supports country flags, live preview, Gravatars, coComments.

* It supports sindication feeds in any possible location.

* Trackbacks and pingbacks.

* The search capability of BlogEngine.NET allows the visitors to search in the comments.

* It supports the creation of static pages that exist outside the blog chronology.

* It fully supports multiple authors to write posts on the same blog.

* Cool themes

* All the controls in BlogEngine.NET are 100% XHTML 1.0 compliant.

* BlogEngine.NET is built from the ground up using nothing but C# and ASP.NET 2.0. It means that you can write new controls and themes by using the skills you already have as a .NET developer.

dasBlog is an evolution of the BlogX weblog engine, adds lots of additional features like Trackback, Pingback, Mail notifications, full Blogger/MovableType API support, Comment API support, fully customizable Radio-style templates, Mail-To-Weblog/POP3 with attachment and embedded picture support, web-based DHTML editing, web-based OPML editor, web-based configuration editing, and other goodies to the BlogX codebase.

Subtext is a personal blog publishing platform that focuses on usability, elegance, and simplicity. If you have ever caught yourself throwing your hands in the sky and declaring that you are going to pen down your own blogging engine, then Subtext is for you. The principle philosophy behind Subtext is to remove hindrances to online expression. A blogging platform should be easy to understand, set up, and use. Subtext is an open source project licensed under the BSD license. It is a fork of the popular .TEXT blogging platform.

ThinkJot V2 is an Open Source Blog Engine for Asp.Net. It supports Multiple Blogs, Multiple Authors, XML backend, Tagging, File Manager, Word 2007 and Windows Live Writer support, MetaWeblog API, Website Stats, Activity tracking, XHTML support etc. XCOPY deployment and F5 run from Visual Studio.

Open Source Content Management Systems (CMS) in .NET

DotNetNuke is one of the best open source web application framework ideal for creating, deploying and managing interactive web, intranet and extranet sites. DotNetNuke can support multiple portals or websites off of one install. DotNetNuke includes a multi-language localization feature which allows administrators to easily translate their projects and portals into any language.

Rainbow project is an open source initiative to build a comprehensive content management system using Microsoft's ASP.NET and C# technology.

mojoPortal is an Object Oriented web site framework written in C# that runs under ASP.NET on Windows or under mono on GNU/Linux or Mac OS X.

XMLNuke is a Content Management System designed for Internet web sites and it is a Development Framework for developing Web applications. The programmer find built-in several classes for XML and XSLT manipulation, relational database access, security mecanism, cache for optimizing XML manipulation, internationalization and much more. XMLNuke framework also implements a XML structure to storage and retrive data, so no database is needed. For those who want to be away from Database expenses, this may be the right choice.

Open Source Forum Software Applications in .NET

Yet Another Forum.net is a opensource discussion forum or bulletin board system for web sites running ASP.NET. It is ASP.NET based with a MS SQL backend database.

dnfBB is a powerful and fast 3 Tier, C# discussion board or forum for websites running ASP.NET. Native support for multiple forums within the same db structure. Designed to work with Firebird and MySQL, support for additional RDBMSs in the future.

Free Open Source Charting Controls

EasyDiagram.net is an open-source diagramming component that you can use to make interactive, feature rich diagramming. EasyDiagram.net supports AJAX style events (OnNodeRepositioned, OnNodeDoubleClicked, etc) and utilizes a nifty trick to perform real-time line drawing with pure Javascript.

NPlot is a free charting library for .NET. It boasts an elegant and flexible Application Package Interface (API). It is particularly well suited to graphing scientific data. It includes Web, Windows.Forms, Bitmap and Gtk# controls.

Diagram.NET is a free .NET control to make and edit diagrams and flowcharts. Put Diagram.NET WinForm Control into any form and, like Microsoft Visio, the user can draw shapes and links. With little code you can control, edit, add and delete these elements.

GoogleChartSharp is a C# wrapper for the Google Charts API. GoogleChartSharp supports all API charts and features. The Google Chart API returns a PNG-format image in response to a URL. Many types of image can be generated: line, bar, and pie charts for example. For every image type you can set attributes such as size, colors, and labels. You can include a Chart API image in a webpage by embedding a URL.

WebControl is an open source free chart component for asp.net and winforms. WebControl for creating charts, that render as images(png, jpg, gif, etc). Supports the following:

Line Charts

Smooth Line Charts

Column Charts

Area Charts

Scattered Charts

Stacked Column Charts

Pie Charts

Stacked Area Charts


Netron graph library is a generic diagramming, graph-drawing and graph-layout kit for the Microsoft .Net framework written in C#. It allows you to create innovative and highly interactive applications with a minimum of coding in C#. It is completely open source and customizable via inheritance of the base classes. The shapes and functions you need of the node or links can be compiled in separated libraries and are dynamically loaded via the .Net reflection mechanism at run time.


ZedGraph is a set of classes, written in C#, for creating 2D line and bar graphs of arbitrary datasets. The classes provide a high degree of flexibility -- almost every aspect of the graph can be user-modified. At the same time, usage of the classes is kept simple by providing default values for all of the graph attributes. The classes include code for choosing appropriate scale ranges and step sizes based on the range of data values being plotted. ZedGraph also includes a UserControl interface, allowing drag and drop editing within the Visual Studio forms editor, plus access from other languages such as C++ and VB.


Monday, August 8, 2011

Australian Resume Format & Cover Letter with tips

The first and last thing to remember is to Never lie about your experience or work done i.e. your resume should have all the genuine information in it as most of the interviews are based on the contents of your resume i.e. the projects you've done, technologies used in the projects etc. The interviewer will ask about your projects, your role in the projects, technologies in the projects etc... and trust me... you should be prepared to know each and every detail of work done by you. If its been a couple of years since you last worked on your projects... Go back.... check with your colleagues who were involved in the projects, talk to them and try to remember the work you did!

Here is a sample resume template which is based on the Australian format: Australian Resume Template
While building your resume, make sure that you incorporate maximum keywords. It is because, most of the time consultants search a resume by typing in the keywords in their database. For instance, if somebody wants to search somebody having Ext-JS skills, he'll type-in "Ext Js" and pickup only those resumes which have "Ext Js". Therefore, even if you have worked on a technology for a bit, write about it.

Also, another very important thing to remember is to always include a cover letter in your job application. Cover letter is very essential as it gives the consultant/employer to know about the candidate and his experience in a very short span. Please find a template for the cover letter here: Cover Letter Template
Please remember to follow-up with the consultant the day after you've applied for the job. Following-up with the recruitment consultant shows that the candidate is interested in the job. It also gives an opportunity to the candidate to get a feedback about him/herself and the resume and build a good relationship with the consultant

Important Points to consider:

1) Never apply for the same job through different consultants. This will put the consultant in an embarrassing position with the employers and hence spoil your relation with the consultant.

2) Follow-up regularly with the consultant after you've applied for the job.

3) Maintain a very small pocket journal/diary which you can always keep with you for reference. The journal should contain the Date of application, Consultant name (company name and consultant name), Job you've applied for. This is important because in case you apply for more than one job at one time, you should know about the job the moment a consultant calls you or else it'll put a bad impression on the consultant if you get confused and are not sure about which job you applied for.

4) The first step in securing an interview with an employer is to convince the consultant that you are the right candidate for the job. Confidence, fluency in the language and right resume will help you a lot in securing an interview with an employer.

5) Be well prepared for your interview. You should be well aware of your field of area and also do not forget to skim through behavioral interview questions for an interview. Please view a set of sample behavioral questions here: Sample Behavioral Questions

6) Last but not the least, always dress professionally. Wear neat and clean formal dress, polished shoes, cut your nails, avoid unkempt hair etc.

Resume for a 457 Visa

This post will assist people who want to know how to build a resume necessary for the purpose of an employment visa i.e. 457 in case of an Australian Employment Visa.

A resume in Austraila is more often referred to as CV(Curriculum Vitae).
Building a resume for the purpose of an employment visa is very simple as opposed to building one for an employer. The key to build a perfect resume for an employment visa is: Short & Simple.

It should be kept in mind that the person who will review your visa application may not be a technical person and thus all the technical information in our resume will confuse him which in turn can cause delays and even rejection of application at times. Therefore, the contents of the resume should be such which are understandable by a layman i.e. even a non-technical person or person not having the knowledge of your work area is able to understand it in a clear and concise way.

The goal in building a resume for the application should be to make the case officer understand your job roles and responsibilities (current & all previous jobs), so that he's able to relate your current job function (for which you are applying) with your past experience.


Here is a template for building a resume for the purpose of 457 visa: 457 Resume Template

Above template can be used to build a resume for the purpose of an employment Visa.


All the best for your visa application.

Wednesday, August 3, 2011

RadGrid EditForm showing Display="False" GridBoundColumn

If you want to exclude the ID or any GridBoundcolumn from the grid edit form, you will need to set its ReadOnly property to true

RadGrid Item Missing Border when null

Sometimes, the cell border seems to disappear when the cell is empty, so probably you can add a white space( ) to the cell inorder to prevent this,

protected void RadGrid2_PreRender(object sender, EventArgs e)
{
        foreach (GridDataItem dataItem in RadGrid2.Items)
       {
            foreach (GridColumn col in RadGrid2.Columns)
            {
                if (dataItem[col.UniqueName].Text == string.Empty)
                    dataItem[col.UniqueName].Text += " ";
             }
       }
}

There is another way.


You can edit inside the CSS if you use the custom Skin

.RadGrid_MySkin .rgMasterTable
{
      border-collapse:collapse !important;
}