Monday, December 23, 2013

ASP.NET Fundamentals: ASP.NET is Hosted by the Common Language Runtime

ASP.NET Fundamentals: ASP.NET is Hosted by the Common Language Runtime

Perhaps the most important aspect of the ASP.NET engine is that it runs inside the runtime environment of the CLR. The whole of the .NET Framework—that is, all namespaces, applications, and classes—is referred to as managed code. Though a full-blown investigation of the CLR is beyond the scope of this blog post, some of the benefits are as follows:

Automatic memory management and garbage collection: Every time your application instantiates a reference-type object, the CLR allocates space on the managed heap for that object. However, you never need to clear this memory manually. As soon as your reference to an object goes out of scope (or your application ends), the object becomes available for garbage collection. The garbage collector runs periodically inside the CLR, automatically reclaiming unused memory for inaccessible objects. This model saves you from the low-level complexities of C++ memory handling and from the quirkiness of COM reference counting.

Type safety: When you compile an application, .NET adds information to your assembly that indicates details such as the available classes, their members, their data types, and so on. As a result, other applications can use them without requiring additional support files, and the compiler can verify that every call is valid at runtime. This extra layer of safety completely obliterates whole categories of low-level errors.

Extensible metadata: The information about classes and members is only one of the types of metadata that .NET stores in a compiled assembly. Metadata describes your code and allows you to provide additional information to the runtime or other services. For example, this metadata might tell a debugger how to trace your code, or it might tell Visual Studio how to display a custom control at design time. You could also use metadata to enable other runtime services, such as transactions or object pooling.

Structured error handling: .NET languages offer structured exception handling, which allows you to organize your error-handling code logically and concisely. You can create separate blocks to deal with different types of errors. You can also nest exception handlers multiple layers deep. 

Multithreading: The CLR provides a pool of threads that various classes can use. For example, you can call methods, read files, or communicate with web services asynchronously, without needing to explicitly create new threads.

ASP.NET Fundamentals: ASP.NET is Multi-language

ASP.NET Fundamentals: ASP.NET is Multi-language

ASP.NET is Multi-language. Though you’ll probably opt to use one language over another when you develop an application, that choice won’t determine what you can accomplish with your web applications. That’s because no matter what language you use, the code is compiled into IL.

IL is a stepping stone for every managed application. (A managed application is any application that’s written for .NET and executes inside the managed environment of the CLR.) In a sense, IL is the language of .NET, and it’s the only language that the CLR recognizes.

To understand IL, it helps to consider a simple example. Take a look at this code written in C#:

using System;
namespace HelloWorld
{
  public class TestClass
  {
    static void Main(string[] args)
    {
      Console.WriteLine("Hello World");
    }
  }
}

This code shows the most basic application that’s possible in .NET—a simple command-line utility that displays a single, predictable message on the console window. Now look at it from a different perspective. Here’s the IL code for the Main() method: 

.method private hidebysig static void Main(string[] args) cil managed
{
.entrypoint
// Code size 13 (0xd)
.maxstack 8
IL_0000: nop
IL_0001: ldstr "Hello World"
IL_0006: call void [mscorlib]System.Console::WriteLine(string)
IL_000b: nop
IL_000c: ret
} // end of method TestClass::Main

It’s easy enough to look at the IL for any compiled .NET application. You simply need to run the IL Disassembler, which is installed with Visual Studio and the .NET SDK (software development kit). Look for the file ildasm.exe in a directory like c:\Program Files\Microsoft SDKs\Windows\v7.0A\bin. Run ildasm.exe, and then use the File ➤ Open command, and select any DLL or EXE that was created with .NET.

Tip: For even more disassembling power, check out the remarkable (and free) Reflector tool at http://www.red-gate.com/products/reflector. With the help of community-created add-ins, you can use Reflector to diagram, analyze, and decompile the IL code in any assembly.

If you’re patient and a little logical, you can deconstruct the IL code fairly easily and figure out what’s happening. The fact that IL is so easy to disassemble can raise privacy and code control issues, but these issues usually aren’t of any concern to ASP.NET developers. That’s because all ASP.NET code is stored and executed on the server. Because the client never receives the compiled code file, the client has no opportunity to decompile it. If it is a concern, consider using an obfuscator that scrambles code to try to make it more difficult to understand. (For example, an obfuscator might rename all variables to have generic, meaningless names such as f__a__234.) Visual Studio includes a scaled-down version of one popular obfuscator, called Dotfuscator.

The following code shows the same console application in Visual Basic code:

Imports System
Namespace HelloWorld
Public Class TestClass
Shared Sub Main(args() As String)
Console.WriteLine("Hello World")
End Sub
End Class
End Namespace

If you compile this application and look at the IL code, you’ll find that it’s nearly identical to the IL code generated from the C# version. Although different compilers can sometimes introduce their own optimizations, as a general rule of thumb no .NET language outperforms any other .NET language, because they all share the same common infrastructure. This infrastructure is formalized in the CLS (Common Language Specification), which is described in the following sidebar, entitled “The Common Language Specification."

It’s worth noting that IL has been adopted as an ECMA and ISO standard. This adoption allows the adoption of other common language frameworks on other platforms. The Mono project at http://www.mono-project.com is the best example of such a project.

The Common Language Specification

The CLR expects all objects to adhere to a specific set of rules so that they can interact. The CLS is this set of rules.

The CLS defines many laws that all languages must follow, such as primitive types, method overloading, and so on. Any compiler that generates IL code to be executed in the CLR must adhere to all rules governed within the CLS. The CLS gives developers, vendors, and software manufacturers the opportunity to work within a common set of specifications for languages, compilers, and data types. You can find a list of a large number of CLS-compliant languages at http://dotnetpowered.com/languages.aspx.

Given these criteria, the creation of a language compiler that generates true CLR-compliant code can be complex. Nevertheless, compilers can exist for virtually any language, and chances are that there may eventually be one for just about every language you’d ever want to use. Imagine—mainframe programmers who loved COBOL in its heyday can now use their knowledge base to create web applications!

ASP.NET Fundamentals: ASP.NET is Compiled, Not Interpreted Language

ASP.NET Fundamentals: ASP.NET is Compiled, Not Interpreted Language

ASP.NET applications, like all .NET applications, are always compiled. In fact, it’s impossible to execute C# or Visual Basic code without it being compiled first. 

.NET applications actually go through two stages of compilation. In the first stage, the C# code you write is compiled into an intermediate language called Microsoft Intermediate Language (MSIL), or just IL. This first step is the fundamental reason that .NET can be language-interdependent. Essentially, all .NET languages (including C#, Visual Basic, and many more) are compiled into virtually identical IL code. This first compilation step may happen automatically when the page is first requested, or you can perform it in advance (a process known as pre-compiling). The compiled file with IL code is an assembly. 

The second level of compilation happens just before the page is actually executed. At this point, the IL code is compiled into low-level native machine code. This stage is known as just-in-time (JIT) compilation, and it takes place in the same way for all .NET applications (including Windows applications, for example).

.NET compilation is decoupled into two steps in order to offer developers the most convenience and the best portability. Before a compiler can create low-level machine code, it needs to know what type of operating system and hardware platform the application will run on (for example, 32-bit or 64-bit Windows). By having two compile stages, you can create a compiled assembly with .NET code and still distribute this to more than one platform.

Of course, JIT compilation probably wouldn’t be that useful if it needed to be performed every time a user requested a web page from your site. Fortunately, ASP.NET applications don’t need to be compiled every time a web page is requested. Instead, the IL code is created once and regenerated only when the source is modified. Similarly, the native machine code files are cached in a system directory that has a path like c:\Windows\Microsoft.NET\Framework\[Version]\Temporary ASP.NET Files.

The actual point where your code is compiled to IL depends on how you’re creating and deploying your web application. If you’re building a web project in Visual Studio, the code is compiled to IL when you compile your project. But if you’re building a lighter-weight project less website, the code for each page is compiled the first time you request that page. Either way, the code goes through its second compilation step (from IL to machine code) the first time it’s executed.

ASP.NET also includes pre-compilation tools that you can use to compile your application right down to machine code once you’ve deployed it to the production web server. This allows you to avoid the overhead of first-time compilation when you deploy a finished application (and prevent other people from tampering with your code).

Sunday, December 22, 2013

10 Top, Free and Open Source Project Management Software Solutions and Services

10 Top, Free and Open Source Project Management Software Solutions and Services

Project Management Software Solutions play vital role in any business. There are plenty of free and open source project management software solutions and services available in the market. We have picked some widely accepted free and open source project management software solutions like Readmine, Codendi, ProjectPier, Open Atrium, PlanCake, KForge, Open Workbench, Project HQ, Collabtive and Feng Office. These free and open source project management software are equipped with a lot of exciting features like Multiple projects support, Flexible role based access control, Flexible issue tracking system, Gantt chart and calendar, News, documents & files management, Feeds & email notifications, Per project wiki, Per project forums, Time tracking, Custom fields for issues, time-entries, projects and users, Issue creation via email, Multiple LDAP authentication support,  User self-registration support, Multilanguage support, Multiple databases support etc. Lets have a look at these free and open source project management software:

1. Readmine

Redmine is a flexible project management web application. It is written using Ruby on Rails framework and it is cross-platform and cross-database. Redmine is open source and released under the terms of the GNU General Public License v2 (GPL).

Redmine contains a lot of functionality geared heavily towards developers. It’s really powerful tool but may take some time to getting used to. It supports multiple projects, role-based access and permissions, Gantt charting and a calendar. Redmine also supports wiki and forums assigned on a project level to help centralize information and communication

Redmine is equipped with many exciting features like Multiple projects support, Flexible role based access control, Flexible issue tracking system, Gantt chart and calendar, News, documents & files management, Feeds & email notifications, Per project wiki, Per project forums, Time tracking, Custom fields for issues, time-entries, projects and users, SCM integration (SVN, CVS, Git, Mercurial, Bazaar and Darcs), Issue creation via email, Multiple LDAP authentication support,  User self-registration support, Multilanguage support, Multiple databases support etc.

2. Codendi

Codendi is an open-source collaborative development platform offered by Xerox. From only one interface, it gathers, all the needed tools for software development teams: management and versioning of code, bugs, requirements, documents, reporting, tests etc. It is mainly used for managing software project processes. It is based on open-source standards, Codendi is the collaborative platform for software project management proposed by Xerox.

At the origin, Codendi is a fork from Sourceforge.net. Codendi is based on an LAMP architecture (Linux, Apache, MySQL, PHP) and offers and SOAP Web Services interface.

3. ProjectPier

ProjectPier is a Free, Open-Source, self-hosted PHP application for managing tasks, projects and teams through an intuitive web interface. ProjectPier will help your organization communicate, collaborate and get things done. Its function is similar to commercial groupware/project management products, but allows the freedom and scalability of self-hosting.

ProjectPier is a cross-platform application that is written using PHP, Javascript and requires a MySQL database backend. ProjectPier is freely available and licensed under the Gnu Affero General Public License (AGPL), which means you're welcome to use and modify the software as long as any changes are distributed under the same license restrictions.

4. Open Atrium

Open Atrium is an open source platform designed specifically to make great teams communicate better. An intranet in a box with: a blog, a wiki, a calendar, a to do list, a shoutbox, and a dashboard to manage it all. Let’s not forget that it’s also completely customizable.

Open Atrium is a part of a growing open source offering helping commercial companies, international organizations, federal governments, and online publishers grow their enterprise platforms with excellent team communications tools. Open Atrium is powered by an active community, and it’s working. Open Atrium is now being translated into more than twenty languages and several hundred people are growing its base of features.

Atrium’s theme is built using Bootstrap, a front-end framework using responsive CSS that allows content to be ready for multiple screen sizes, out of the box. Over two dozen cross-browser, responsive layouts and several responsive image styles are included to aid in site building and allow your site to work seamlessly on mobile devices.

5. PlanCake

PlanCake is a open source task management system. It allows you to export all your data but you can even download the entire PlanCake system and run it on your own server.

PlanCake is an Open-Source and GTD-Friendly Task Management Tool PlanCake has an inbox, a to-do list, and a calendar by default. You can create new lists to sort and separate contexts and projects. The calendar aggregates all your date-based to-do list items and has a great feature where you can suppress repetitive tasks so they will be shown only on the closest active day and not cluttering up your calendar view for future days and weeks.

6. KForge

KForge is a freely available web-based open source project management application suitable for knowledge management and software projects. It uses a plug-in architecture, so features and functionality can be easily swapped out as needed. The software is free, but its installation and management require some technical ability. Its open source license allows for modifications to be made, which is useful for software development shops.

The modular architecture allows for a variety of source control systems (Git, Subversion), project tracking modules, Wiki and mailing list functionality, as well as popular CMS applications like WordPress and Joomla. This power and flexibility makes KForge’s relative installation difficulty worthwhile, but it is an application more suitable for software development shops.

The robust KForge community is one of the main strengths of the software. Businesses will benefit from being able to switch parts of the software to fit their workflows and preferred applications. New plug-ins are being developed and a mailing list exists; subscribe to learn tricks of the application and get usage questions answered.

7. Open Workbench

For businesses looking for an open source alternative to Microsoft Project, Open Workbench is an excellent option. It provides a standard desktop application look and feel, with a Gantt Chart view that should make any users of Microsoft’s tool feel right at home. CA Technologies also provides a version, but they require users looking for full enterprise features to subscribe to their own project management system, CA Clarity PPM.

While the software’s open source code base is older, it still allows businesses to benefit from being able to get a handle on their project workloads. For smaller businesses wanting to manage projects without all the other features of Redmine and KForge, Open Workbench remains a good option.

No matter the size of your business, these three open source project management tools are worth further exploration to see which application provides the best fit. All three provide the tangible business benefits gained from on-time, successful project completion.

8. Project HQ: Inspired on BaseCamp

Project HQ is next on the list of open source and online project management software. Project HQ is interesting because it uses only open source technologies while being open source itself. Project HQ is independent of closed source databases such as MySQL and instead replaces it with SQLAlchemy, an interesting endeavor, to say the least. The software performs well and seems to take inspiration from Basecamp and ActiveCollab, so it’s simplistic but still reasonably powerful.

9. Collabtive: Another Basecamp Alternative

Collabtive is a project that was started in November of 2007 as an open source web based project management software. Their goal with Collabtive is to offer an alternative to ActiveCollab and Basecamp, which they do a reasonable job at. While the software isn’t quite as powerful as ActiveCollab, it’s just as intuitive and simple to use as Basecamp.

10. Feng Office: All-Around Project Collaboration Software

Feng Office is the final open source project management software is more focused on general project development. Feng Office features easy contact management, time management, project management and even document management. Everything can be edited online, or downloaded/uploaded at a later time. Feng Office is not tailored to any specific job type; it’s the all-around project collaboration software that’s easy to use as well as intuitive. Well worth giving a shot if nothing else suits your project type.

Friday, December 20, 2013

How to allow HTML Textbox to accept Numbers only using Javascript?

How to allow HTML Textbox to accept Numbers only using Javascript?

While web development, you often encounter the need of functionality where your textboxes should be filled with numbers only.

For example, you want your users to fill the quantity of anything, ID (if it is composed on integers only), price of anything (excluding decimal) etc. In short, you want only numbers plus some keys like backspace, delete. left and right arrow to be typed in the textbox. You can use javascript to restrict your users to fill only numbers in the textbox. It is very simple. On the KeyPress event of any HTML text, just call a simple javascript function which checks the keycodes for the numbers and on the basis of keycodes, it returns true or false. Here is how?

HTML Text

<input type="text" id="txtSample" name="txtSample" onkeypress="return CheckNumeric(event)" />

Javascript 

function CheckNumeric(event)
{
       var key = window.event ? event.keyCode : event.which;

        //Check for backspace, delete, left arrow and right arrow keys

if (event.keyCode == 8  || event.keyCode == 46 ||  
           event.keyCode == 37 || event.keyCode == 39) 
{
return true;
}

        //All other keys excluding numeric keys 

else if ( key < 48 || key > 57 ) 
{
return false;
}

else return true; //Numeric keys from 0 to 9
};

Thursday, December 19, 2013

Clarizen vs Genius Project vs AtTask: Project Management Software Solutions Comparison

Clarizen vs Genius Project vs AtTask: Project Management Software Solutions Comparison

Following is the comparison between Clarizen, Genius Project and AtTask, the most famous and widely used project management software solutions and services. We have deeply looked into their functionality, ease of use, customer support, resource and service management, cost etc. These all project management software solutions (Clarizen, Genius Project, AtTask), provide good ability to manage team member's time and tasks, project progress, issues, bugs, requests, budgets, schedules, reports, resources, documents, time tracking, timesheets, project expenses etc. In short, Clarizen, Genius Project and AtTask provide good project management services to project managers to ease their lives and reduce their hardwork and expensive time. Lets have a look at the comparison of Clarizen, Genius Project and AtTask, the project management software solutions in detail.

Clarizen Project Management Software

Clarizen is on our top spot in this year's rankings by providing all the project management and collaboration tools that a company may need, without using up any of the company's IT resources. The tools are hosted entirely in the cloud and do not require an IT team to manage the system or a server to host it.

Clarizen includes all project management tools, such as the ability to manage requests, issues and bugs, budgets, schedules, reports, resources, documents, time tracking and expenses. It also includes dozens of customizable reports, free email-only accounts for clients and direct integration with Salesforce for sales reporting. In addition, team members can monitor projects and submit time and expenses remotely from an iPhone or Android device. New to this year's version is the ability to integrate with QuickBooks and Intact to speed up billing processes.

Resource Management: The Clarizen tools manage a variety of resources, including team members, externals and generic resources. They also provide project managers with resource-load simulators, interactive load views, scheduling tools and advanced resource filters. Additionally, the tools manage numerous resource fields, including groups and skills, languages and time zones, job titles, and addresses. To help project managers track a variety of resources, the service provides a range of account types, including time and expense users and email-only accounts.

Ease of Use: Clarizen's project management tool is simple to use for both managers and team members. To start a project, managers can import one from Microsoft Project or use pre-configured templates. These templates include those that are suitable for professional services, IT, customer roll out, SCRUM and new product introduction. To help users, Clarizen provides success kits, video tutorials, wiki topics, how-to articles and a forum.

Integration and Professional Services: The Clarizen project management tools are compatible with products commonly used by smaller teams, such as iCal and Google Drive, as well as popular services such as Salesforce, Zendesk, Microsoft Project and Outlook. Clarizen also offers mobile apps for both iPhone and Android mobile devices.

Genius Project 

Genius Project is on our number 2 spot for its flexibility, enterprise-level social media tools and the ability to support a variety of deployment options and generate more than 500 reports. The software helps managers and teams manage projects, resources, tasks, requests, time and expense tracking, budgets, documents, requests and issues, and invoices. It can also create workflows, generate integrations and manage help desk requests. New to this year's version are an updated interface, customizable views and an improved social media platform. Genius Project is available as a Software-as-a-Service, which makes it accessible anywhere from any device, including PCs and Macs.

Resource Management: Genius Project manages in-house, external, generic and physical resources. It includes a complex resource search/filter tool that can manage skill sets, availability, location, time zones and percent of availability. In addition, Genius Project can manage day-off requests, absences and time off.

Ease of Use: Genius Project is simple to use and offers project managers tools to help easily replicate processes and projects. Managers can create projects from scratch or use pre-existing templates. To help new users, Genius Inside provides flash tutorials, visual indicators, white papers, webcasts and FAQs.

Integration and Professional Services: Genius Project works with a variety of software types, including Microsoft Project, Salesforce and accounting software. Integrated email functions work with Outlook, Gmail, Yahoo, Hotmail and any other email protocol, including LDAP. The installed version is compatible with most systems, including ERP and CRM systems.

AtTask Project Management Software

AtTask earned its high marks in part for focusing on collaboration and real-time visibility. AtTask has all basic project management modules, including budgeting, issue tracking, request management, interactive Gantt charts, reporting and advanced task management. Those with full licenses get access to every tool, including capacity planning, portfolio alignment, workflow and approvals management, and cost tracking. The tools can also prioritize work across projects, manage requests, manage backlogs and create storyboards. AtTask also supports Waterfall, hybrid and proprietary methodologies.

Resource Management: AtTask's capacity planner allows managers to add a project to a schedule and calculate if it is feasible to accomplish during a set period. This feature compares the resources a manager has against the resources the project requires. Managers can also drag and drop the project to a different time, calculating the best time frame to proceed with the project. The TeamHome section keeps track of team member accomplishments and successes, which makes it easy for managers to track team members' progress, without hounding them for status reports.

Ease of Use: The AtTask tools are simple to use, especially for team members. The program includes numerous one-click options, single-page edits, drag-and-drop tools, simple-to-understand status views and merge-able calendars. AtTask also includes pre-configured solutions for enterprise work management, marketing organization and IT teams.

Integration and Professional Services: AtTask is compatible with a variety of online storage services, including Box, Dropbox and Google Docs. It also works with Salesforce, Jira and ProofHQ. AtTask also offers mobile apps for iOS and Android devices.

Must Try Clarizen - An Online Project Management Software for your Project Management

Must Try Clarizen - An Online Project Management Software for your Project Management

If you are thinking to try a project management software solution for management of your project, I would advise you to must try Clarizen first. Clarizen provides best online project management solution to project managers. Clarizen's online project management solution helps your team work more efficiently, effectively, and achieve better results. Clarizen is the only solution to merge the power of the cloud with social communications. You can use Clarizen to eliminate work chaos by standardizing core processes, Gain real-time visibility into projects, Build high-performance teams and speed up the pace of doing business, Increase efficiency of project execution and many more. 

Clarizen provides best customer support, feature documentation and is easy to use. Here is why you should consider Clarizen for your project management?

1. Technical Customer Support

Clarizen offers two levels of technical support: Live and self-help.

If you have an immediate question, you can reach Clarizen by phone, email or via Clarizen Community. Clarizen reps will troubleshoot your issue and walk you through the system so that you can get back to your job as quickly as possible.

Clarizen also offers an extensive library of self-help resources, including online tutorials, interactive webinars, Victory Kits by function (e.g. IT, Professional Services, R&D), white papers and best practice guides.

2. Clarizen Professional Services

Clarizen Professional Services is dedicated to creating the shortest path to value for their customers. Clarizen goal is to optimize the way your organization works so you can get the job done faster, and with better results.

Clarizen Success Service Methodology forms the basis of their approach, and is built on best practices and years of helping organizations succeed with Clarizen. Additionally, Clarizen assigns dedicated resources to work with your internal project directors, and offers a variety of Success Service Packs that provide easy access to their Professional Services expertise.

3. Clarizen Community

Clarizen had developed very good community for its customer. You can:

1. Pose questions to Clarizen experts
2. Submit support tickets
3. Read blog posts about new enhancements, and hot topics
4. View product demos and tutorials
5. Explore educational resources

The Clarizen Community is a fount of project management and enterprise work collaboration knowledge – available 24/7.

4. Clarizen Education

Clarizen offers a variety of tools to help you hone your project management and work collaboration skills, including:

Daily Webinars. Clarizen offers an abundance of free informational and role-based webinars for new users, admins, and serious power users.

Tutorials. Learn at your own pace and convenience. Access a wide range of on-demand tutorials, from getting started with Clarizen, to using any of its modules.

Clarizen University. Clarizen University is our computer-based training program that lets you and your team members learn at your own pace, as well as your own convenience. It consists of presentations, interactive hands-on lessons and certification exams.

Summary of Clarizen Features


Clarizen Project Management Software Solution helps you to:

A) Review, approve, prioritize and schedule your annual project portfolio

B) Develop, implement and roll out new products and services

C) Track, manage and prioritize change requests and resolve issues for all systems IT manages

D) Collaborate with team members, stakeholders and outside consultants in a dedicated project workspace

E) Customer implementations are delivered on time and on budget

F) Ongoing maintenance is efficient, effective, and strengthens the client relationship

G) Team members are kept off the bench and optimally utilized on client projects

H) Deliver releases of all sizes efficiently and with unprecedented speed

I) Track and prioritize incoming tickets and schedule them for iterations

J) Manage reports and content requests from product managers, and deliver on your company's vision with a cost-optimized process

K) Assess and manage availability of your creative and account resources

L) Centralize all copy and design drafts, wire frames, communications and more by project, task or client

M) Compare new proposals to previous projects to project true costs required

N) Track project time, expense and progress

O) Build and share project roadmaps

Visit Clarizen official webstie for more details.