Thursday, March 24, 2011

Using and reviewing MVC controls : Syncfusion

Have been spending my time to choose the right controls for ASP.NET MVC 3 project. It an exciting project and yet challenging for the new technology MVC. The constant challenge in IT is, technology keep changing inside out easily compare to physical world. In physical world you will not like the hack you house and build another one.

Have been browsing a list of controls and famous controls makers. Bravo to them and they got new jobs to recreate all the ASP.NET web controls to new MVC 3 controls. Bravo to Scott too, guess some program manager from M'S that make the life thru.

Here are the list of players:-
Since I will going to generate a report for my boss, just blog it here.

Name
Comments
Telerik
Web site front page

The demo and sample codes (aspx and razor)
A nicely promoted and quite well known. It support both MVC 2 and Razor viewer. Having

Their marketing summary:-
Telerik Extensions for ASP.NET MVC extend the ASP.NET MVC platform by delivering reusable UI controls built specifically for MVC. A server-based framework integrates with client-side modules built on the popular JavaScript library, jQuery, to deliver productivity enhancing controls for MVC that do not violate the patterns, practices, and guidance of the platform. The Telerik Extensions restore developer productivity to ASP.NET MVC and make it possible to build clean rendering web applications without writing all code by hand.
Infragistic Net Advantage
Website front page

Their marketing summary:-
  • Pure Client-side Controls - We bring you pure client-side controls that are server framework-agnostic and target desktop browsers.
  • Data Templates - We use the latest jQuery client template support within our data grid which you won't find anywhere else.
  • DOM Virtualization - Within our jQuery data grid we use DOM virtualization so you can load and scroll very large data sets without lag or a huge memory footprint. This is unlike ordinary virtual scrolling where data is fetched through AJAX.
  • HTML 5 - We include the first HTML 5 video player control that works in both ASP.NET MVC and Web Forms applications.
  • CSS 3 - We improve performance by eliminating img tags and making extensive use of CSS 3 image sprites for fewer HTTP requests and faster page loads. All controls render jQuery Theme Roller-compatible CSS class names enabling complete stylability.
  • Controls for ASP.NET MVC - We provide you with a full set of extensions to the client controls enabling ASP.NET MVC applications to take full advantage of Microsoft® Visual Studio® IDE features like LINQ data binding, Fluent syntax support, paging, sorting and filtering to build full blown MVC applications--all out of the box!  This is "MVC done right," you are never forced to compromise your architecture because our UI controls are designed for the platform from the beginning.
Syncfusion


Their marketing summary:-
Essential Tools is a collection of professional user interface components to create interactive ASP.NET MVC applications.
Syncfusion Dashboard
  • It can be used to create robust ASP.NET MVC application using Rich Text Editor,Tree View,Tabs,Accordion,Menu,Toolbar, Editor Package (Numeric text box, Percent text box, Mask-Edit text box, Auto-complete text box and Generic drop-down)and many more.
  • Extensive client-side and server-side support
  • View side customization for all the components
  • In-built Skins support for all components
  • Support for W3C-XHTML and W3C-CSS
  • Cross browser support such as IE7+,Firefox2+, Chrome, Opera and Safari
Demo and sample codes (aspx and razor)


Help documentation

 
Component Art
The datagrid is very good. Smooth and nice.
 However the demo is a bit disappointing, not source code.
Demo but no code sample
Their marketing summary:-
A set of native ASP.NET MVC HTML helpers, designed to provide a comprehensive user
interface platform to ASP.NET MVC developers. The controls offer rich client-side behaviour without relying on viewstate or postbacks.

After trying the Syncfusion, I think this is most competitive of MVC 3 controls that is available in the market right now. Have been taking a look on other players, however still Syncfusion give a lot of support. The demo site is well done. Sample source code is given after installing the trials. The code contain both MVC2 and MVC3 code (razor *.cshtml). However, the code is not upgraded to .NET 4.0.

To get start and using MVC 3 controls (which is no longer called control right now, it's a partial view) like Syncfusion you need quite a number of setup. Please do not expect only refer the assemblies and it will pop up in your Visual Studio toolbox. You dont even have toolbox for MVC 3. Also forget about the Properties window.

Syncfusion responsible enough to give step and help here : Syncfusion Help
Before start using the controls you need to:-
1. Adding Reference Assemblies
2. Adding Java Scripts
3. Adding Codes to the Web.config File
4. Add StyleManager and ScriptManager
5. Adding Tools MVC controls to the MVC application

Thanks to the sample code

Sample codes come with trial installation full solution

Tuesday, March 15, 2011

Using Entity Framework and Oracle database

Have been busying on using Entity Framework for Oracle database.
My new project require a rapid development on prototyping. I am responsible to setup this.
To support fast requirement gathering pace. I decided to write an web application based on Entity Framework.
At the same time, our team is testing the ease of Entity Framework. Most important is the performance that need to take into consideration.

  Challenges:-

Challenge number 1 We are connecting to oracle database 11g. Not MS SQL.
This is main challenge as Entity Framework that I have been using is connecting to Microsoft SQL server. I have been gone thru some online forum comments saying that it's hard to connect to oracle via .NET due to some hidden agenda between Oracle and Microsoft. Think with common sense we help us to understand here.

After spending some time, I have been amazed that the Oracle actually building "Oracle Data Access Components (ODAC) for Microsoft Entity Framework and LINQ to Entities". The beta release dated on February 10, 2011. You can dowload the installation here.

http://www.oracle.com/technetwork/topics/dotnet/downloads/oracleefbeta-302521.html
Before installing, please read the next challenge.

This is great release, as we can now talking to Oracle database with Microsoft's Entity Framework.

Challenge number 2 the Oracle client will stop working after installing these package
Your PL/SQL Developer will stop working. You will not able to get the database. I found everything is OK with my Oracle home folder is ok. tnsname.ora is still good in shape. I even reinstall my Oracle client and PL/SQL developer. Finally I found this supportive forum,
http://forums.oracle.com/forums/thread.jspa?threadID=620900&tstart=0

Simply copying files (not folders) from

C:\app\your user name\product\11.2.0\client_2   << client_2 due to multiple installations

to

C:\app\your user name\product\11.2.0\client_2\bin

and it works..

But what has the installer done!!! Is this a work around?


Challenge number 3 Learning to use the entity framework
This is not a challenge to me, I have been using this for MS SQL. Please refer to this detail document.
http://www.oracle.com/webfolder/technetwork/tutorials/obe/db/dotnet/EntityFrameworkOBE/EntityFrameworkOBE.htm

Challenge number 4 Using Function Import to call the store procedured.
This is where I give up with the procedure call. Entity framework tend to not recommend you to call store procedures. However, there cases that you want to use procedures for some business logic. In our case, we simply want it's speed and stability after hearing a lot of complain on Entity framework.

Call procedures is not straight forward. I am talking about calling the procedures and without using the entities. A new kind of entity will be declare or created which is named Implicit Resultsets. The worst thing and irresponsible above training URL did is leave us figuring out how to put the metadata information into web.config (app.config). If the implicit resultsets consists of a lot of columns, the mapping will be painfully done. After struggling for few hours, I decided to call the store procedure and without bordering these metadata configuration. Can I do that? This totally defeat the purpose of using the model first methodology.


After few try and error, I have come to a point that ODAC for Entity Framework is not ready for production.







Friday, February 11, 2011

ASP.NET MVC 2


Playing on ASP.NET MVC 2.

First impression, it totally different from traditional ASP.NET Web Application. Every web form will have aspx, aspx.cs, aspx.resx. Now you have to tatally forget about this.

M stands for Model
Model means the data. The object, it could be mapped to the Entity or the entity itself will be the model.


V stands for View
View is the UI the interface with some dynamic script to isolate UI logic and keep it here.

C stands for Contraller
Controller controls the View(s). HomeController.About() is mapped to Abount.aspx. HomeController.Index() is mapped to Default.aspx. It all mapped in Global.asax.cs.

Thursday, June 24, 2010

PMP, I got to make it this year

Such a great opportunity to chat with my PMP Certified friend. Below are all the fresh insight given. 
Thanks Umesh from India.


 trevor: hey man..
 trevor: PMP Fellow
 Umesh Khairnar (PMP): Hey..I'm PMP Fellow but u r PMP master
 trevor: nop
 trevor: struggling to take axem
 trevor: exam
 trevor: Do we really need to read PMBOK?
 trevor: I am buying this book
 Umesh Khairnar (PMP): Yes...its necessaryDon't buy the book...if you are serious than become member of PMI ..by paying $175...
 trevor: i am using a website
 Umesh Khairnar (PMP): once u become member ..u will get free download
 trevor: to certify for the exam
 trevor: Do I need to be member for the exam?
 Umesh Khairnar (PMP): which website?
 trevor: proxalt.com
 Umesh Khairnar (PMP): yes.its a pre-requisite
 Umesh Khairnar (PMP): no need to use this weeksite..attend satyam PMP Workshop for 35 hrs training..register with www.pmi.org.in
 trevor: i see
 Umesh Khairnar (PMP): read PMBOK (4th edition) and Rita Mulkay (6th edition)
 trevor: i have been trained by satyam
 trevor: but ..i dont know it's qualified
 trevor: SPMP na,,
 Umesh Khairnar (PMP): great..have u received 35 hrs training certificate
 trevor: no la..
 trevor: ..
 trevor: Project lead bootcamp
 Umesh Khairnar (PMP): SPMP or PMP
 trevor: SPMP
 Umesh Khairnar (PMP): SPMP is higher than PMP...as SPMP requires 2 years Project manager experience
 trevor: Satyam PMP na..
 Umesh Khairnar (PMP): ohhh..so www.pmi.org.in is the authorised site for PMP
 trevor: i see
 trevor: proxalt also have it...
 trevor: but the training material is poor quality :P
 Umesh Khairnar (PMP): think so proxalt also will tell u to register for PMP through PMI website
 trevor: www.pmi.org.in got e-training ?? 
 Umesh Khairnar (PMP): I have done self-study.registered on PMI..and gave online exam
 Umesh Khairnar (PMP): no need for e-training..if you refer PMBOK and rita mulkay book..its enough
 trevor: 35hr training is gaven by satyam??
 Umesh Khairnar (PMP): yes..satyam gives 35 hrs PMP Workshop training.outside institute charge for this training...that we get free from satyam
 trevor: yes
 trevor: proxaly need 35$usd
 trevor: consider cheap
 trevor: outside, need 2k RM
 trevor: guess is 2.5k
 Umesh Khairnar (PMP): check on esupport-> learning portal.is there any schedule for PMP Workshop in malaysia
 trevor: Rita Mulkay..i will get this book
 Umesh Khairnar (PMP): No need to purchase this book..i will try to upload this book on RapidShare for u...and lets see whether you can download it
 trevor: ok ..sure.thanks a lot buddy
 trevor: I got to get this cert done before going to SG..else will not get a good job
 Umesh Khairnar (PMP): I can guide u..for the PMP exam...be in touch...if any query mail mail..I will help u
 trevor: cool...
 Umesh Khairnar (PMP): yes..thats true...SG?
 trevor: yeah..take a try in SG
 trevor: PMP is good here
 Umesh Khairnar (PMP): ok...SG stands for what
 trevor: send me your resume, let me pass it to currently engaged job agents
 trevor: kekekek singapore
 Umesh Khairnar (PMP): check at ur side..whether u can access RAPIDSHARE url...so that immediately I will upload the PDF file for u
 Umesh Khairnar (PMP): ok sir...as u wish
 trevor: cool...after upload .let me know ya..
 Umesh Khairnar (PMP): ok..give me 5 min

Saturday, April 10, 2010

The Accounting Framework

Very excited to hand on with the Accounting Framework of my current client. I going to review and learn the framework in deep and share it within limit of conflict of interest. Hope to show some pattern in the future.

The framework is for Accounting product. If this framework successful with its launch, this will be a new era of the product line which totally in Mircrosoft .NET.

Here are the list of technology:-

Language : C#, T-SQL, LINQ to SQL, WPF, MVC
Database : MS SQL 2008
Tools : VS.NET 2008, .NET Framework 3.5, WPF, DevExpress, Reshapper, Perforce
O/S : Window Server 2008

The framework is split into 3 sections which are User Interface, Business Layer and Reporting.
User Interface is adopting Model-View-Controller pattern. Business Layer is adopting LINQ to SQL pattern. WPF is used as main technology for reporting. The reason being to create a must dynamic report.

The framework is totally shocking for the developers. Plenty to learn and to code. However, plenty to code here did not mean developers need to code more. Developer only need to map in the right classes and the basic CRUD functionality should work just like that. The experience of coding the framework is totally different. Instead of coding, it considers mapping or declarative way of code.

There are drawback on highly declarative coding too, where ever something goes wrong, it is hardly traceable. Plenty to trace. However, client still have the code open to internal engineers, but a painful trace is needed.


Sunday, December 13, 2009

Project Pitis Architecture Bookmarks

PITIS Architecture

64-bit Applications
Microsoft SOA
YouTube - asp.net ajax vs 2008
http--www.hanselman.com-silverlight-ScottHaAtAltNetConf-
patterns & practices Application Architecture Guide 2.0 (The Book) - Release Application Architecture Guide 2.0
Data Points: ADO.NET and System.Transactions
Connecting to Microsoft SQL Server 2008 from Microsoft Visual Studio 2005 and 2008
How to use transaction in LINQ using C# « Tech Treasure
LINQ To SQL and the Web.Config ConnectionString Value - Rick Strahl's Web Log
Daniel Oliveira, Most Valuable Professional - Windows Live
LINQ to SQL next steps » DamienG
ADO.NET Entity Framework
GridView - Show headers on empty data source. - Stack Overflow
ASP.NET AJAX > Overview > The UpdatePanel and UpdateProgress Controls > UpdateProgress Control Overview
Dynamic Loading of ASP.NET User Controls: ASP Alliance
Page_Load Event Firing Twice since upgrading to Visual Studio 2008 - ASP.NET Forums
How to duplicate Entity Framework objects
ASP.NET Grid Demo - Layout - Displaying Pivot Data
Introducing System.Transactions in the .NET Framework 2.0
String Format for Double [C#]
Dynamic LINQ (Part 1: Using the LINQ Dynamic Query Library) - ScottGu's Blog
10 Tips to Improve your LINQ to SQL Application Performance | Sidar Ok Technical Blog !
Mystries of when does Session_End event fires in Asp.Net - Vikram Lakhotia
ASP.NET Tutorials - Base Page For Detecting Session Timeout In ASP.Net/C# | DreamInCode.net
Defect Removal Efficiency (DRE) Calculator
InvesteePandL
http://172.22.0.100:119/Default.aspx is not available
7 tricks to simplify your programs with LINQ
Loop thru controls on usercontrol with master page... - ASP.NET Forums
Soap Serializer does not support serializing Generic Types.

Code Review (Best Practises)

David Klein's Corner: LINQ - Best Practices with Anonymous Types
Select columns to display, LINQ, WCF : The Official Microsoft Silverlight Site
System.InvalidCastException: Specified cast is not valid. - ASP.NET Forums
Performance Considerations for Entity Framework Applications
Managing Connections in Object Services (Entity Framework)


Audit

Auditing in SQL Server 2008
Ravi S.Maniam's Blog : SQL Server 2008 - Auditing
SQL Server Audit Action Groups and Actions
How to use Group Policy to configure detailed security auditing settings for Windows Vista-based and Windows Server 2008-based computers in a Windows Server 2008 domain, in a Windows Server 2003 domain, or in a Windows 2000 domain.
Nice things inside SQL Server : Auditing SELECT statements in SQL Server 2008
How to: Serialize and Deserialize Objects (Entity Framework)
Dynamic Method Invocation using Reflection
How to call a Visual C# method asynchronously


Performance

Microsoft AJAX Update Panel - Great on Looks, Poor on Performance
Improving UpdatePanel Performance with Trace=”true” - Aaron Schnieder on ASP.NET
Select All CheckBoxes in a Table Column With and Without jQuery Plugin Demo


AJAX Extender

Visual Studio 2008 Custom AJAX Extender - Google Search
Creating a Custom Tooltip Ajax Extender Control: ASP Alliance
CodeProject: Selecting multiple checkboxes inside a GridView control. Free source code and programming help


Formating

RegularExpressionValidator for dd-MMM-yyyy to prevent 29-Feb-2007 or 31-Nov-2007 - ASP.NET Forums
Masked Edit Extender In ASP.NET by Nikhil Kumar
MaskedEditExtender


Tuesday, November 24, 2009

My First Architecture Deliverable

The first artifact that I come out is the Application Architecture Document. This is high level, architect to architect communication.

Senior developer will understand this document. It is a single starting point for all other technical requirement for the software.

Yes, it's high level. I will tell, it is high level and serve as the starting point for the rest of the detail designs. By looking at the high level class diagram. You will automatically know what to be derived in detail design or even coding. That's the achievement of this artifact.

I am still junior to this... let take a look of my scratch.. below. Hope to expose more artifact, however there is confidentiality need to be protected. It really look like a board design.