Archive for May, 2010

15 – Document Management System Conceptions

Wednesday, May 26th, 2010

Document ManagementDocument management system is a method of organizing and storing documents electronically on one computer system or various computer systems. This system keeps track of the history of the document thereby enabling users to cognise the creation date, modification date, deletion date and other operations performed on document. Document management systems help users to easily find and share information. These systems are generally used by organizations to maintain their official records. Here are few points that impel us to believe that document management systems help us to organize information in a well defined and secured manner:

  1. Instant access: A very quick, 24×7 access to documents.
  2. Structured organization: Organized access to documents in the conversant form of folders and files.
  3. Secured accession: Secured and role based access to documents. Full control on document permissions ensures right document for right person.
  4. Grouped Approach: Define access for each level, and assign privileges accordingly.
  5. Howling work-flow: Work flow ensure proper review and approval policies.
  6. Centralized repository: Avoid having documents stored on several computers, minify the chances of destroying documents.
  7. Disaster recovery: Documents stored on server application has recovery backup ensures document copy should be maintained in case of server failure.
  8. Collaboration tool: Collaboration tool for your employees and colleagues for information sharing.
  9. Fast retrieval: Easy and Fast retrieval of documents by getting them indexed.
  10. Revision control: Version management and tracking ensures the protection of document. Any changes saved will create a new version of file, allows you to switch back to any version at any moment.
  11. Exclusive access for modification: Exclusive access can be granted for a document to ensure one person can change a document at a time.
  12. Content protection: Online viewing and no editing shall protect your document contents from being copied.
  13. Audit history: Audit trail can be maintained that define chronological sequence of audit records, each of which contains evidence directly pertaining to the actions made by users.
  14. Checklists: Checklists can be defined for folders which could be helpful in work-flow and defining the completion of certain actions on documents.
  15. Saves cost: Saves hardware cost, keep your document safe for years.

These factors can influence any organization to use document management system in their daily operations to keep their important documents safe ad secure. People started using document management systems for their personal use as well to ensure data and file safety.

If you have any query, please post it as comment. I would be happy to discuss that.

Flex Remoting and .NET with WebORB

Monday, May 24th, 2010

Introduction

Adobe Flex is the leading technology in the industry for developing Rich Internet Applications. Adobe Flex applications run on the Flash Player which is a browser plug-in. Flash player has a penetration of 98% on the modern day browsers. Normally building a web application with Adobe Flex on the client side and .NET on the server side using webservice as a medium for the communication is very much possible.

Rather than accessing SOAP services, accessing remote objects from the server is even more powerful, fast and robust way of communicating the client to the server. Binary communication between the Flex client and .NET happens using AMF (Action message format) which is a binary protocol published by Adobe. AMF is a binary format used to serialize ActionScript objects. It is used primarily to exchange data between an Adobe Flash application and a remote service, usually over the Internet. Some of the notable advantages of AMF are:

  • AMF Objects are very small using zlib.
  • Fast serialization/de-serialization of objects.
  • Native Types and Custom classes supported.

(Source:Ted On Flash)

Now to make the AMF communication complete with the Flex client and any sever side technology there is the need for a runtime environment which facilitates the transfer of objects from client to server and vice versa. This is where WebORB for .NET comes into play. WebORB is the presentation server from MidnightCoders which effortlessly connects client side technologies like Flex/Flash/Ajax/Silverlight with .NET Objects, XML webservices and rich media streams. WebORB can plug in to any ASP.NET application and can expose its object to client side technologies.

Configuring WebORB for .NET

The developer edition of this product is available for free which gives connection limit for 5 IPs. The setup can be downloaded from the WebORB website. WebORB for .NET version 3.6.0.3 is the stable version available for download.

IIS and .NET framework are the prerequisites before we start installation of WebORB developer edition. In the download select and run the exe to install webORB

Once installation of WebORB is completed, the physical location of the installation will be the /Inetpub/wwwroot/weborb30 which will ideally correspond to the http://locahost/weborb30 path.

Default deployment location for WebORB

Creating a basic Flex and .NET Remoting Application

Developing a .NET Class

Start off with developing a simple .NET class named Employee which has some variables and a function getEmployeeList() which will be accessed by the client side to retrieve an array of objects.

.NET Class

Deploying a .NET DLL

Once the development of the .NET project is completed and published. Place the DLL file of the project into Inetpub\wwwroot\weborb30\bin directory. In this example the EmployeeWebOrb.dll should be put into the bin directory.

After deploying the DLL, by accessing the management tab inside the webORB console (http://localhost/weborb30/weborbconsole.html) it is possible to check if the server side code is working properly.
Go to Management -> Services tab where the list of deployed DLLs will be available:

List of deployed DLLs

As per the example in this article, EmployeeWebOrb.dll is available in the deployed assemblies list. Select the EmployeeWebOrb.dll. Go into the DLL file and select the getEmployeeList()

View upon selecting getEmployeeList()

Now click on the invoke button on the right hand side. All the values that are returned by getEmployeList() is displayed along with invocation duration which in this case is 33 millisecond. The Services inside the management console is an effective tool for the developers to check the values returned from the server side code and eventually enables fewer chances of server integration problems.

There is also a code generator section available which will create the client side business logic code for the developer.

View after clicking Invoke button

Developing a Flex application

Client side application’s logic for this example is very straight-forward. First create a flex project WebORBFlex. The mx:RemoteObject is the server-side component in the flex code that connects with the webORB to get data from the server side. The GenericDestination value provided for the property, destination is the destination of the service. This value should match to the destination entry in remoting-config.xml inside Inetpub\wwwroot\weborb30\WEB-INF\flex. The source property accepts the .Net class name that is being accessed and endpoint points the application to look for the RemoteObject destination.

Code for the Flex application

Deploying Flex

Deploy the flex output to the server inside Inetpub\wwwroot\weborb30\. Open the WebORBFlex.html. You should have a working Flex application using Flex Remoting with .NET.

View of the working Flex application

Other key features of WebORB

  • MultiClient support: WebORB can be used with other client side technology like Silverlight, Ajax, Flash etc.
    Real time messaging: data push, producer-consumer model, MSMQ integration, remote shared objects, message broadcast.
  • Video Streaming: Streaming flash video, video broadcast, server initiated video, video recording, video chat.
  • Data Management: Code generators, full CRUD operations, client synchronization, intuitive API, extensible programming model, sample test drive.
  • Performance Monitoring: Server-side performance instrumentation.

(Source: Midnight Coders)

Happy programming!!!

9 Business Features Which Can Outmatch Your Out-of-the-Box MSCRM 4 Implementation

Saturday, May 22nd, 2010

MS CRM 4.0 is a flagship product from Microsoft dynamics product suite. These days, leading companies across the globe are choosing MS CRM 4.0 as their relationship management solution because of its fast and easy deployment, flexibility, ability to easily adapt to meet unique business needs and so on.

Marketing, Sales and Customer Service are the core modules of MS CRM. While implementing MSCRM 4 Out-of-the-Box (OOB), if a solution provider company takes care of a few items, effectiveness of MS CRM is much enhanced.

Recently we have created a check list for the end customer to experience the MS CRM OOB implementation at its fullest. This check list will help the users to understand business significance behind the features and thus sometimes reduces customization needs. This list is created based on our MS CRM implementation experience.

  1. Duplicate Detection: This is a new and great feature with this version of Microsoft Dynamics CRM. Duplicate data getting into system is very often. Previously this was requiring complex workflows or regular purging of data. But now the system can be set to control duplicates, and Users can choose whether to accept the data or not.
  2. Queues: Queues serve as general access areas that are used to store items such as Activities or Cases. You can set up custom Queues to automatically process incoming e-mail and convert them to Activities.
  3. Team: Administrative user can create teams from administration page. Creating teams is an elegant way of sharing records between users. Creating team will facilitate user to share record between different users even if they don’t belong to same business unit!
  4. Record sharing: This functionality is available on toolbar and using this user can share single or multiple records between user(s) and team.
  5. Mail Merge: In the earlier version of MS CRM this functionality was available only on MS Outlook client. But in this release this is even available on web client [Internet explorer client].
  6. Bulk Editing: This is functionality is available on the toolbar. This functionality is very useful when user wants to update multiple records with same information.
  7. Business Closures: This is available under Business Management and is very useful for managing service activities. If the business closures are maintained then a user can’t schedule activities on business closure. Even MS CRM give you facility to overwrite the business closure by providing “Do Not Observe” option while recording business closures.
  8. Relationship roles: This is used to configure relationship types between records of Account, contacts and opportunity. This version has flexible and provides facility to manage many to many relationships too.
  9. Record Merging: This functionality is available on toolbar and can come very handy when user wants to merge two records because of whatsoever reason.

Even OOB MS CRM 4.0 implementation can significantly improve the strength of important business areas like Marketing, Sales and Customer Service.

It surely helps an organization to grow just by a choice of implementing MSCRM4, even Out-of-the-Box.

ASP.NET 4.0 Features

Wednesday, May 19th, 2010

ASP.NET 4.0 provides rich features and powerful enhancements. Here is a brief summary on some of the newest features.

auto-start feature – In some cases, application needs to perform bulk jobs or load data just before serving to the first HTTP request. This is now achieved by using auto-start feature, which starts worker process and initiates an application to manage this.

Browser capabilities – HttpBrowserCapabilities object determines whether the type and version of the current browser supports a particular version of JavaScript or not and also to determine whether the request initiated from a mobile device or not.

Caching improvements – Output caching has been extended and capable of to store HTML contents to local/remote disks, cloud storage and distributed cache engines. There is a new assembly System.Runtime.Caching.dll has been introduced to make caching available for all the applications.

CDN feature – The Microsoft Ajax Content Delivery Network allows to add ASP.NET Ajax and jQuery scripts to Web applications by adding a <script> tag to a page that references to Ajax.microsoft.com

ClientIDMode feature – ClientIDMode property of a control provides these settings: AutoID (same as used in earlier versions), Static (value will be the same without concatenating the ID of parent containers), Predictable (this is for data controls that use repeating templates) and Inherit (ID is the same as its parent)

jQuery support – The Visual Studio templates for Web Forms and MVC include the open-source jQuery library.

Page metadata support – Page.Keywords and Page.MetaDescription tags allow to enter Meta keywords and description of a page dynamically.

Performance monitoring feature – In aspnet.config file, if you set appDomainResourceMonitoring enabled=”true” then you can get the information on resource utilization of individual applications running in a single worker process.

Project templates enhancement – There is empty web application template has been introduced. There is also a change in Web Application Project as it includes more files to support membership functionality thus it helps in quickly getting start a new project.

RedirectPermanent feature – It helps search engines to index a website properly. Search engines recognize permanent redirects and will store the new URL that is associated with the content and which eliminates the unnecessary round trip made by the browser for temporary redirects.

Routing feature – It allows you to define SEO friendly web page URL by using the new MapPageRoute method of the Route class.

Session state enhancement – In Web.Config file, if you set compressionEnabled = “true” then the serialized session state gets compressed and which results reductions in the size of serialized session-state data.

targetFramework feature – There is a new attribute in the compilation element of the Web.Config file which allows you to target the .NE T Framework 4 and later.

URL support – There are three new elements in Web.Config file: maxRequestPathLength (to increase/decrease limit of URL), maxQueryStringLength (to set length of a query string) and requestPathInvalidChars (to define characters those are to be used in URL)

ViewStateMode feature – Web server controls include a ViewStateMode property that allows you to disable view state by default and then enable it only for the controls those require it in the page.

Web.Config changes – Web.Config file has become clean and simple. The main sections like AJAX, Routing etc… have been moved to the Machine.Config file. However, you can add elements as per your need.