Call Us: 
About Us

When a developer is asked to select an application that will best suit their company’s needs – it’s always a tough task. Today’s software market is filled with dozens of products that, at first sight, all seem to have the same functionality. Technology is constantly changing, and new products are being introduced on a daily basis. So how do you choose which software solution is the right one for your company?

The purpose of this article is to make the task of evaluating our software easier by providing you with detailed technical information on our product so that you can make an educated choice.


Product Architecture

Easy Projects is written entirely using ASP.NET and C#

In developing Easy Projects, we paid a lot of attention to making the system flexible, easy to use and expandable.

“…I found it interesting how you used collections and hash tables within your data layer. The database structure was also well architected and easy to expand upon. I have added a few more tables and fields to the database as well as a couple extra tabs to the gui with no problems. The source was also fairly easy to negotiate through and well laid out…”

Nick Sailors


Cox Communications

The Easy Projects has three-layered architecture consisting of Data Access, Business Logic and UI layers.

Data Access layer uses XML files called EntityClasses.config and Views.config to construct the object model used in the application. The EntityClasses.config file serves to describe objects themselves while Views.config contains definitions of views, i.e. data arrays that link data from different objects together. Almost all SQL queries are generated by Data Access layer on-the-fly based on what these files contain.

One of the key points of the Easy Projects 5.0 architecture is that it takes data along with the description of what the data is (e.g. type of data, whether data is editable, and so on). These definitions are kept in FieldDescriptor class. The instance of the class follows each field of data as it travels from Data Access layer to UI layer and back.

The Data Access layer is part of the Logic Software Framework and is represented by the LogicSoftware.Framework.DataAccess.dll assembly.

Business Logic layer contains code that performs object operations. Basic operations such as inserting, updating and deleting objects are performed by CommonOperationsService class that is in the LogicSoftware.Framework.Service.dll assembly.

More complex operations, such as calculation of task dependencies, are performed in entity services’ event handlers in LogicSoftware.EasyProjects.Service project. There are many handlers to perform different kinds of operations both before inserting, updating and deleting, as well as after. Also, there are some special actions to generate default values for newly created objects, generate descriptors of object fields and some other.

UI layer is built based on ASP.NET 2.0 databinding mechanisms. It uses descendants of classes such as FormView, GridView that have overridden behavior needed to support clueless integration to entity and view definitions in Data Access Layer. These overrides are presented in the LogicSoftware.Framework.Web project.

The LogicSoftware.Framework.Common.dll assembly contains code and definitions that are common between all layers (such as EntityClass or ViewClass class definitions).

There are other projects in the solution that contain specific functional code (such as code for the “Issue By Email” feature or licensing code).

Source Code package

Being developers ourselves, we understand that deep inside, each programmer truly believes that only they can create the best system for his or her organization. At Logic Software, we agree with this premise! Who else, other than you, knows your company and the needs of your business? Practically no “off-the shelf” application can hope to meet 100% your unique requirements.

However, developing a new system from a scratch can take thousands of hours and cost a lot. So is there any solution to the famous “Buy vs. Build” dilemma? – We think there is!

Specifically, for such a case, we offer something that almost none of our competitors offer – the Source Code Edition.

Acquiring such a package, gives you the best of both worlds. On the one hand, you can benefit from the extensive functionality and testing of a ready-to-use commercial product, which took several years to develop. On the other hand, you can easily adapt and modify the code to meet your specific requirements.

“…With the source code licensing, we were able to easily customize the software and add our own modules such as Call Center data entry screens and a Corporate Knowledge Base”Ganesh Kumaraswamy

IT Senior Developer

Canadian Council on Health Services Accreditation

Obviously, you can always download an open-source product, but you should keep in mind the fact that there is always a reason for a product to be free.

Up to the time of this writing, we have spent more than 25,000 man-hours creating Easy Projects. This application is the result of real-life project management requirements and constant feedback from our customers. At the same time, many open-source projects are developed by enthusiasts, and are often a long way from being mature, ready for prime time applications with powerful functionality and a friendly user-interface. Product support is also something that one should consider when choosing a product for their company.

When a new version of Easy Projects is released, our customers receive detailed description of all changes made to the Source Code. Our development team is always ready to assist you in merging the new version with your custom code.

Source Code Samples

So what about the Easy Projects source code? How complicated is it to understand and modify?

Please find some examples below, showing a few common questions asked by our users.

Question: How do I add additional menu items?

There are several things that you should do to add a menu item. First, you have to add an element representing the item to the App_Data\Menu.xml file. You have to specify the following for the element:

  • a title (it’s used to determine the item’s display name and to find permission handler for the item)
  • a URL to navigate when the item is clicked
  • a target for the URL (_self for opening URL in the same window, _blank for opening URL in a new browser window, etc.)

The XML code might look like the following:

<MenuItem Title="MyItem" NavigateUrl="~\MyPage.aspx" Target="_self">

Then you have to add the item’s display name to the App_GlobalResources\Menu.resx file.

Next step is to write a permission handler for the menu item. It will determine whether the item will be enabled for a user or not. The code for the handler should be added to PagePermissionService class of LogicSoftware.EasyProjects.Service project and marked with PermissionRequestHandler attribute in order to be called. For example, if you want the item to be available only for a user named “User”, the code will look like:

 public static void Page_SystemLists(object sender, PermissionRequestEventArgs eventArgs)
        	if ( eventArgs.User.Fields["User_Name"].ToString() == "User")

Please note that you should add the denial reason’ s display title to the App_GlobalResources\PermissionReasons.resx file under the proper key (in the example above, the key is Page_MyItem_Disabled)

The last thing you should do is to write the code for your page. Don’t forget to add permission check code to your Page_Load event handler in order for the page to be inaccessible by directly typing in the URL. The code will look as follows: PagePermissionHelper.HandlePagePermission(“MyItem”);

Question: How do I make Easy Projects to take into account new fields that I’ve added to the database?

First, you should add the field to the App_Data\EntityClasses.config file and to corresponding views App_Data\Views.config to tell Data Access Layer to include the field in queries it generates. This would be enough for a field to appear in grids in the system.

You should add appropriate UI code if you want this field to appear in the detail pages. If the field is simple (e.g. numeric, text or date field), you should use an LSFFieldControl control that interacts with field descriptor and generates a proper control, proper validation code and so on. You can also use any control that is compatible with ASP.NET two-way databinding technique, or you can bind you field’s data to the page and back using C# code in corresponding Datasource or FormView events.

Question: How do I make changes to the business logic behind task or project creation, edit, removal, etc?

The business logic code is added to entity event handlers which are in the LogicSoftware.EasyProjects.Service project. The classes that contain handler code should be derived from EntityClassService class and marked with one or more ServiceEntityClassAttribute attributes. You can browse through existing code to look how business logic code is written in Easy Projects.

Question: How do I change appearance?

Easy Projects appearance is build based on ASP.NET themes. Most of appearance code is found in appropriate themes’ style.css and files. You can also edit ASPX pages if e.g. you want to change the layout of a page.

Ask Us!

We hope that this article has helped you to gain an understanding of how Easy Projects works, and how it can help you and your organization. If you have any questions, or you just want to discuss some technical aspects – please contact us at and our development team will be happy to answer your questions. If you have any sales or license-related questions, please write us at: Thank you for your time and we hope to see you among our happy customers!

Best regards,

Easy Project Team

Request a Free Demo of Easy Projects

Let's talk! During a personal demo we will walk you through Easy Projects and show you how your entire team can collaborate on your projects easier, faster and more efficiently than ever before.

Easy Projects has been an easy decision for us. We're spending a quarter of the time and money we needed to invest in our prior systems and we're seeing twice the results.

Aaron Hamilton,
Director of Information Technologies National Underwriter Company

Our clients:

Your data is safe with us

See our Privacy Policy

Request a Free Demo
Thank you!

Your account manager will contact you as soon as possible.

If you need to speak with someone right now, please call us toll free