Thursday, November 29, 2007

i have one database to be exported and i try to use the import and export features from the sqlserver 2005. However i enconter one problem which is the primary key of the enabled indentity insert is all mess up after the importing to my new database. I just found and tested a utility and it works quite well.

Sunday, October 14, 2007

Every programmer will ask this very common question What programming language is the best? C#? Java? C++? C? Perl? or ...??? In order to answer this question, you have to ask yourself what programming language you like most. Next, think about does the language powerful enough to be used in the type of application your are doing. Finally, some language is designed specifically and targeted to certain type of application. If the type of application you are doing match the language you are using, development productivity will improve and it is more easier to program. Likewise, you will get crazy in the middle of development if you choose the wrong language. For me, I want simple and powerfully high level language... I believe C# and it is my only choice.

Tuesday, August 14, 2007

I always amazed by how search engine works and it seem so wonderful that google has created the most amazing search engine to put infomation on our finger tips. Would you like to create a simple search engine? Here you can do it pretty easy with Linq.

Thursday, August 9, 2007

Most of the time data is stored as database but how about data stored as a file format? If data is stored as file format meaning that we have much more power to decide the storage however file as storage is not always the ideal situation if data is too complex to store and difficute to manage. Today we see relational database is so successfull because of the database management design. We use SQL to manipulate data and we are happy with the power and the flexibility that SQL could give.

However, there is a problem that storing data in database always seem to be bulky for small application. Imagine that, you are creating a subsystem as a service of a larger system, which has is own database implementation. Logically, it is not advisable that the sub system use it own database or share the data store with the larger system mainly because having a it own database is too bulky and has environment limitation. And, if data store is shared meaning that integration will be too costly and complicated.

The solution is to use XML as isolated data storage. We have to build services around the data and expose it as interface for larger system integration. Having using xml as data, the integration is much simpler and less impact on the overall larger system.

Most people i would say do not like to query XML data because of the complicated query and it is not SQL liked. However, now the situation has changed, you can query data having SQL liked by using linq to XML. Developer can use linq to query XML data. In the next discussion, I will show you how you can play around with this Linq to XML technique.

Frackyly, i do not like XML as data store until i found that Linq has so much to promise.

Thursday, June 14, 2007

We want to develop a windows application with workflow enabled. The easiest and fastest way is to use Microsoft Workflow Foundation which give you a complete API for designing any workflow application that you can think of.

We wanted to develop a windows application which has to be distributed to multiple computers and having multiple users. Here we have one challenge, we need to host the Workflow. The most simple implementation is to host workflow in a dedicated server where many clients can access to it. Next we have to expose the workflow as webservice, this is important because workflow as webservice can give you the maximum flexibility in connectivity and interoperability. For example, connect a mobile device that runs java application. Sound interesting?

I will post the tutorial on building your first smart client workflow enabled application here for your reference.

Friday, May 25, 2007

most of us solve problem as straight away try to do it without thinking or planning when given a problem. This often lead to slow productivity because the method used is not effective enough to solve the a given problem. Perhaps there is a better way solving the problem, you might not know it. Therefore just keep these checklists in mind before starting any problem solving:

Do your research and gather as much information as you can.Any question, don't wait... ask Google.Give yourself various alternative solutions.Be creative and don't afraid to break the rules.

If you could follow all these mention above, you could be a better problem solver.

Wednesday, May 23, 2007

User interface is very important to improve the usability of the software. Software application failed to meet user expectations and requirements are often due to the lack of proper UI design. Simple UI often impress user whereas complex UI often frighten user away. When design UI, the first thing have to come to every developer mind; always design in user perspective.

A great UI must always have these criteria:

simple and does the job right.good navigation and proper UI arrangementeasy accessible functions and customized menu for the userfast and responsive UI

please keep in mind that UI design is the first user impression of the software.

Thursday, April 5, 2007

Most often when we write a piece of software we often lack of consideration thanking about designing a fast loading program and this is always true if we designed a small program. Actually there are various of ways to improve the performance of program, for example keep the program initialization as light weight as possible, be careful when we allocate memory, and always think of threaded programming design. Sometimes, we feel demotivated because of the expensive cost involve in having putting performance design in the first place, however, investment will be well worth if the customer don't feel your software is slow and underperformed in average.

Assume that we design a small program called Sales Reporting to be used in an organization. Since the program has just only a few modules, we ignore the performance design. Over the time, we might be adding some functionality, hence the complexity of the program increase. Maintainability of the program also an issue if the program is not well designed. One day, you are requested to improve the performance of the program because users are keep complaining that the slow loading program keep them not be patient anymore. Users are fed up and their work is always distracted. The company are not going to invest to redesigned the program because over the year many time and money was spent in maintaining the program. The program is reliable and the problem is just lack of performance. You as a software consultant is hired to perform this task, what is the first thing you would do?

You might be run test the program at the first place to see which area need to be improved. You had identify that some areas need to be redesigned for significant performance gain. You had just planned the initial strategy. Secondly, you are looking to the source code, you are over surprise that most part of the code could be very difficult to be modify for performance gain because the original designer do not keep the best practise in coding hence lead to performance issue. Another concern is that the application is extremely tedious to convert to threaded application because initially the program is very difficult to maintain and the structure the application is not well understood by anyone.

You see, the scenario above has demonstrated that application tend to be extremely difficult to gain performance when the application aged. To solve this problem we must keep performance design in the first place during application planning and design phase.

Wednesday, April 4, 2007

Normally the default date for sql server is shown as 1/1/2007 12:00:00, however i feel the format of the date is too long and it would be better to be formatted as 1 Jan 2007. In order to create this effect, here the tip.

Thursday, March 8, 2007

Today i have tested the Visual Studio OrcasCTP and I found the linq feature is really cool. I did some testing whereby i tried to create a class which uses some linq features. I compiled it with the framework 3.5 and finally i tried to reference it in my Visual Studio 2005. Guess what i managed to call the assembly compiled in framework 3.5 inside my framework 2.0 project. Therefore, this concluded that i could create my signed business logic classes using linq.

Thursday, March 1, 2007

If you are experiencing this error "Internal Error: Invalid reconciler parameter" when you are doing merge replication or sync stuffs, don't worry because the error is due to the directory path is too long to be supported in .NET, therefore you need to copy your solution folder and paste it to C:\ for instance so that the directory path could be recognized by .NET.

Developing mobile application never been so easier with Visual Studio 2005. The SQL Server 2005 Compact Edition also comes with free. With a lot of support, there is no reason that I want to get started with my own written mobile application. To learn more about the SQL Server 2005 Compact Edition, please visit the http://msdn2.microsoft.com/en-us/sql/bb219480.aspx to quickly get started the tutorials to experience the most advance features.

My company recently have a plan to improve existing IT infrastructure by replacing those old PCs so that our staffs could be happier and more productive. However, my manager was asking me to give him some advice and recommendation of it and he also did suggest me about the N Computing solution (http://www.ncomputing.com/). I was very impress with the technology because it could save us tons of money off from buying "duplicated" hardware and software licences.

After i had done my researches and I found that the device is not as cheap as i thought. In the US it is sold at USD50 per device however in Malaysia, it is sold at USD162. NComputing in Malaysia pricing is so ridiculous and unreasonable since today computing is so cheap that i could built a PC with a 2.8GHz processor, motherboard V+L+S, 512 RAM, DVDRW drive and casing (a PC really need a protection), which cost me at USD151 only. That is US10 cheaper and I could get a real computer rather that just a simple station box. I could upgrade my PC over time with more functionality but I have limited or no upgradable ability with the NComputing station box.

Are you wondering how i could built the PC so cheap? The reason is the PC has no hard disk inside because i want to compare between "Apple X" and "Apple Y". The concept of using N computing is to connect the station box (client) with the host (server) in multi-user session scenario using a network connection. However it also can be done by a PC without a hard disk since I could use a open source Linux OS distribution such as KNOPPIX (http://www.knopper.com/) to be loaded by just a CD or DVD!. Inside the distribution DVD, it comes with plenty of useful software including Open Office 2.1 and a FireFox Internet browser. In this case I could remote access to my Windows Server 2003 host which supports multi-concurrent user via the Internet browser. Therefore, I have no problem running Windows application such as Ms Office 2007.

As my conclusion, I would consider the station box if it is less than US50 else it should be an obsolete technology if the cost of making it is too high. Since today computing is so cheap, in which an unused CPU resources could be used as distributed computing purposes but not the station box.

Wednesday, February 28, 2007

Extreme programming or XP is a software development methodology that aim to improve software development productivity, reduce risk and cost. The main focus is to develop software in incrementally, rapid prototyping and communicate frequently that lead to accept requirement changes frequently ( most programmers hate it) and However XP doesn't work for all scenario specially for mission critical system and large system because those system normally needs highly formal specification whereas XP programming is just the opposite.

The main challenge of XP is real fun because you need to do everything yourself and you will deal with customers frequently and communicate with your peers frequently. You got to work out with a prototype very fast an usually you need a code generator to generate the whole application for you. Eg. Iron Speed http://www.ironspeed.com/ does the job. You got to test it and evaluate it for whatever reason to meet the requirements. XP is great if you have a small team around 2-6 people.

Tuesday, February 27, 2007

Since Windows XP does not allow multiple concurrent access at the same time using the remote desktop server, however here the link to workaround with.

As for me i applied the terminal server patch (Please follow the link to download the patch below) to the Windows XP pro and i works after restarted. However you need to do one extra step in order you can remote the client user.

Given that you have 2 table in many to many relationship, how create using Linq?

First of all you need to normalize it to 1 to many format. Since you are using Linq, it is safer that each and every table has 1 identity autonumbered column to prevent any CRUD failures (Hope this will be fixed soon).

Now you got 3 tables, since you are dealing with > 1 table therefore you're recommended to create a transaction to perform any CRUD.

Today i came across this link http://www.codeproject.com/script/Articles/list_articles.asp?userid=1181072 and i found that the author Andrew Kirillov is wonderful in his those written articles. I have been a fan of artificial intelligent science since i was in high school. I would like to invite you guys 2-5 to work along with me a project called car parking system which is useful for finding empty car parking spaces. Besides, the system also suggest the shortest path and the most minimum time to obtain car parking space. The project would be implemented in Windows Mobile 5.0 and ASP.NET web application. Those who are interested please write some comment on this post.

Friday, February 23, 2007

If you are a web developer or web administrator, you often ask this common question. How to enable Secure Soket Layer SSL in IIS 5.0/6.0 Server using VeriSign's certificates? What is SSL? Simply we can say that SSL is a security technology that secure the communication between the sender and the receiver by protecting the data with strong encrytion that hopefully no body could read the encypted data.

to enable the SSL in your IIS 5.0/6.0, you must follow these 10 steps shown below, no less and no more.

Step 1:

Click "Server Certificates" under IIS > Directory Security Tab

Step 2:

Please look at the screen which self explained.

Step 3:

Click Next, Next until you see this

Step 4:Step 5:

Step 6:

After you have finished, you have to go to http://www.verisign.com/ to create your SSL certificate. Verisign 's SSL certificate is not FOC, however you could obtain a free 14 days trial for testing purposes. Please follow the instructions provided by verisign, you have to sign up as member before you could create your SSL certificate.

Step 7:

Assume that you are half way setup your SSL cert, you need to upload the certreg.txt which you just created in your IIS. Verisign will read your certreg.txt and confirm the information to you. After all, Verisign will send you an e-mail to you.

Step 8:

After you have received your e-mail, you will find that there is a funny string which look something like Ky456hJKLsM... printed at the end of your e-mail. Please copy and paste to a notepad and save it as vericert.cer. You will need this later.

Sometimes we might want to identity the unique user for some purposes by knowing the machine identity they are using. Software licensing for instance, we could use his machine processor Id or motherboard id to uniquely identify them.

This virtual university project had started about a year and the project is written in ASP.NET C#. We want to take one step further to port this whole project to dotnetnuke's modules. If you are interested in joining this program, please go to this link for more infomation.

Session state can only be used when enableSessionState is set to true, either in a configuration file or in the Page directive. Please also make sure that System.Web.SessionStateModule or a custom session state module is included in the *\**\* section in the application configuration.

When you'll encounter this kind of error? This occur when u are using state in your ASP.NET pages. For instance, you might be using

Session["Username"] = "Carso Owen"; //in your c# code

The solution is you need to do these 3 things in your ASP.NET web.config:

Sunday, February 11, 2007

Before you start your software project, what's the first thing you do? For me i will backup my project first before continuing. Why, simply because i could undo it if something goes wrong, at least i could save my preciuos time. Let say, you are hadling a project A and you have spend the first 2 hours doing something wonderful, later on you did something funny and your whole project corrupted. fortunetly after spending 20minutes to find the the cause of the problems, you got the solution and then you spend another 30minutes to fix it, complile it and test it. You almost got there just a few step to fully recover it and it takes another 30 minutes for through testing. Finally you just got to recover the whole thing. In this senario how much time you have spend to recover it? it is almost 1 and a half hour doing something which is not productive. imagine that if you had "rar" (backup) the project at the first place and later you recover it via unrar it. how long does "unrar" takes? 2minutes vs 90minutes. Got it?

Let me show you the simple and yet effective way of backup your software project.

Let say your project is save under ProjectA, now you pretty sure that ProjectA iteration task is completed and you wish to backup it. So just rar it to ProjectA_V1.rar, well this is your first version of backup. You continue again your development iteration, after each successful task is done you rar it again, and now you rar it as ProjectA_V2 and so on and so forth.

When you encountered a corruption on your project and now you wish to recover it, therefore you look for the lastest .rar that you have backup.

One interesting question, why rar it? rar it could save your disk space but this is not the main reason. The only reason is because you pretty sure that you do not accidently modify the file inside the folder in case you did not rar it.

I have a great and yet simple proposal to create a website to manage our personal accounting because i found that it is too tedious to enter my spending records in excel file. What is your opinion? I need a program that could validate data entries, tracking my spending and show some useful information regarding my spending habits. It must be web ready of course so that you all can be able to take advantage of it. Btw, it must be able to generate a report of account transactions at the end of the month. Any suggestion of my idea, please comment it.

FYI, I would like to invite you to have a preview of this project which is still in pre-release stage.

Saturday, February 10, 2007

We often heard about N-tier designs in software development and the reason of having this design is because we want to achieve the highest degree of software scalability. This comes with a price which means more development time has to be invested. Sometimes, because of budget and time constrains, we have to sacrifice in some way to trade of to productivity. Visual Studio 2005 has a very nice features which is known as table adapter and dataset that actually helps developers to gain significant productivity in data binding over user interface (UI) design. You will be amazed that only a few lines of code or without any coding, you could bind data from your database's table to your UI's control. This also means that, any changes in your database structure, it will actually corrupts or malfunctions your UI.

In my own experince, i was writting an ASP.NET application which uses SQL Server 2005 & Visual Studio 2005. Later, i discovered that i needed to update my database structure because i wanted to add some extra functionalities, so i need to add and delete a few database (db) tables, renaming some of my existing db's tables. Some changes had significant impact on my application while some had not. Therefore i needed to take this into consideration as well. After i had made the changes, I found that my data access logic layer seem to be useless because data access code actually maps back to the database structure, therefore it was no suprise. Luckly, my web application is 3-Tiers design which allows me to replace it with a new code generated data access layer (DAL). This is the most simplest part. Now it comes for modifying the business logic layer (BLL), because this layer actually calls your DAL, therefore changes need to be performed , you can't throw away your BLL and replaced it, you just need to spend your time modifying the calling object to your database.

Notes, renaming your tables and column names or deleting tables have the mostsignificant impact on yur BLL, on the other hand, adding new columns or tablesare not. (it depends how smart your ORM generator) .

After i'd made the changes and to make sure my BLL talks well with my DAL, then I need to make sure my UI calls my BLL well. Do i need to make changes to my UI code to make sure it talks well with my BLL? The answer is yes and no. if you expose your BLL as services interface then no changes nessary to your UI code, The answer is no and assuming that you want to preserve your previous functionality. If you do not have interface class, method overloading and constructor overloading presented in your BLL design, then the answer is yes and most problably that you need to make some changes to reflex your BLL :)

Finally, what if i am using this VS table adapter and dataset to bind data? The best answer is you have to check and make sure they are actually maps to your database's tables correctly, otherwise you need to regenerate or redesign your databinding again. However, this modification is not tredius and time consuming as you might think.

The question is how to eliminate these problems of code changes when database structure is being modified? In my personal opinion, i don't think we have the economically way to eliminate these problems. What we really care is try to make your UI design as simple as possible by abstracting the object calling either business layer or database layer. By this means, you are pretty save when disaster comes, you could easily solve it because you just made it simple.

Thursday, February 8, 2007

Today i was nearly mad when i tried to deploy a CAB module. Initially, i need to deploy all the 10 modules however one of the module nearly make me crazy the whole day. What had happened was the module which I was deploying, could be installed successfully, however it was causing my application not to be loaded. I tried to figure out the causes of the problem and i found that during installation, some of my assemblies are replaced and therefore my application couldn't linked. Therefore i tried to deploy only those assemblies which are needed manually ( by default VS.NET will auto take care of it). There came another problem, the problem was that when i tried to deploy a assembly, let say moduleA.dll, all those dependencies of moduleA.dll will be auto deployed together with the moduleA. This is not what I wanted because the reason behind are those dependencies that causes the failure. I had tried various ways and I nearly going crazy. Suddenly i thought of one idea, what if i copied the assembly into another directory, let say I placed my moduleA.dll on to my desktop, and in hope that VS.NET is not so intelligent enough to detect those dependencies .dlls of moduleA.dll. Yahoo0o... now i managed to deploy those assembly that i want.

The conclusion is, way is always there, just be a bit creative when finding solutions. :)

Wednesday, February 7, 2007

well u always heard of encryption and hashing in security context, if we have encryption to protect our data, then why we need to hash?

FYI, we use hash code for 2 most common things, which are

Verify data integrity, to make sure the the data is always original and the right data

Used to store password, not original password but hashedpassword.

Verify data integrity (use keyed hash code for better security)

let say a person A wants to send a file via e-mail to person B. person B wants to ensure that the file in the e-mail has not been intercepted, therefore person B need to generate hash code of the file received by him (person B) and compare it with the hash code of the file generated which sent togetherwith the original text by the person A. if both the hash codes are equal in comparison, then the file is original and had not been altered, otherwise the data had been corrupted or intercepted.

example of keyed hash code :

you can use HMACSHA1 or MACTripleDES, using HMACSHA1 has better flexibility since it can support any key size in bits and up to 160bits of hash code size.

since the sender and the receiver knows the "secretKey"; only the right "secretKey" can produce the right hash code comparing the hash code of the file from the sender, therefore transmitting file will be more secure to avoid someone intercepting the file in case the hacker had created a faked data with hash code of its faked data. In this way, you not only be able to ensure the data is unchanged during transmission and it also ensure you that the data integrity.

Used to store password

Do you know that hashed password is quite impossible to compute back to original password? How to derive this4B-E1-ED-D7-38-8A-AF-D5-A4-BD-D0-30-41-A8-34-7E-A1-84-E1-79-87-E8-7A-AA-79-2F-6D-7B-71-BA-01-A7 back to original data? The fact it is nearly impossible with any advance algorithm. Hash code is one way cryptographic functions. Therefore, if your customer said that he has lost the password and would like to retrieve it, the solution is to create a new password for him. That's all.

In real world, security expert will suggests that storing hashed password instead of plain text password in their database for security reason; system uses the stored hash code to compare with the computed hash code of password by the user. First the reason is because, no one could know what the user real password in the database even the database administrator. Secondly, a small different in password will result significant different in hash code of password, therefore it will be very hard to guess the hash code pattern given the relationship between a list of hash codes.

example of hash code :

you can use MD5 (128bits), SHA1(160bits), SHA256(256bits)....SHA512(512bits) algorithms.

A good software need be simple and able to hide those complexity contains in the software. User interface (UI) design is extremely important to make sure your software look simple. One of the tips that i find very useful technique is 'toggling control' to be applied in your UI design. What does this means? We toggle control because we want to limit a user to access of some controls (mind his business). if fewer choices means fewer mistakes made by user. We can either disable or enable those controls ; or we can visible or invisible them.

Sometimes, your boss might ask you to read a product pricing file and manipulate it such as extracting the infomation and format it accordingly and save it back to a text file. In this case, the code below show you how u can use the .NET win control using OpenFileDialog class to provide a standard windows' open file dialog for your user to select a file and use the file to be manipulated. Here is the example:

Monday, February 5, 2007

Dotnetnuke is a content management open source project which has been established for many years. Many efforts had been contributed by the community to this popular project and guess what? it is available for free download. If you are interested, please go to http://www.dotnetnuke.com/. Most often web designers want their dotnetnuke's website to be as unique as possible and therefore skinning is a very important subject for them. They have to skin to meet their client business objective, client's request and etc. A web designer always ask, how much efforts and time needed to create a skin for dotnetnuke and will programming skill needed? If you want to design skin only, usually no programming is necessary needed.

FYI, dotnetnuke is considered a web development framework which u can easily reuse the code and as well to extend it. Programmers often extend it by creating a plug in module which can be deployed and installed easily to the dotnetnuke core framework. Since, dotnetnuke is architected in such a way, skinning has no exceptions. We can easily setup the skin by uploading the skin.zip file. Now the interesting problem comes, How do I create the skin.zip? Well the easiest and fastest way is to find an example of anyskin.zip file over the net and extract it and dig into it. There is a very good website that provides free skin. just visit http://www.xd.com.au/ and download your favourite skins.

Steps:1. Install the skin that you have downloaded.

2. locate the skin folder. usually it located in wwwroot\dotnetnuke\Portals\_default\skins\yourdownloadedSkin\

3. you will see those .jpg, .gif, .css , .ascx and .etc . FYI, .jpg and .gif is those image files that used in constructing the skin and therefore if you modify those images in your favourite Photoshop and save it, you will be amazed that your dotnetnuke's website image will change accordingly. So just play around with it.

4. .css is the most interesting part for styling, if you are used to .css then you are great, however if you are not, then don't worry. Most of the time the .css tags used is all self explained, so learn by examples! For example, if you want to change the background color of the particular .class, just look for those '#FFFFFF' kind of value and try experimenting it by changing different value and see the result, i guess it is fun too. If you want your life much easier, get a MacromediaDreamweaver to help you up with those alien .css tag.

5. Yeah, you are not .NET developer right? well .ascx is a ASP.NET web control file, so what the hack it is related to skinning? Simply the answer is that, it is used to specified the container of your webpages or in another words it is used to specified the layouts of your website. Initially, most skin file comes with HorizontalMenuFixed.ascx and HorizontalMenuFull.ascx for instance. fHorizontalMenuFixed.ascx as it sell explained it fixed the width of the web page and on the other hand HorizontalMenuFull.ascx means it fill up the page and it can auto adjust the size itself according to your LCD screen resolution. Continue... the next and let's get started now!

6. Normally you will see those contentpane, bottomPane, topPaneleftPane and rightPage which are the most basic. If you look carefully, it is actually HTML table's elements. So how does the dotnetnuke know which or which is top, bottom or left pane? The answer is the ID that specifies the name of the column. for example, ContentPane is specifiied as , if you specify in such a way, dotnetnuke will know that it is a content container and it will create a contentpane for you in all your web pages in your website consistently. If you want to style the ContentPane? no problem, just add a class attribute into it for example contentStyle will references the .css file to get the styling info. The .css might look like

.contentStyle { width: 100%

background-color: transparent;

}

So do you get a clear picture of how people skin? This is the most simple method if not what can i say... Well , enjoy skinning and always learn by experimenting examples! Cheers :)

Friday, February 2, 2007

High temperature will causes your server down. This actually true because high heat will affects your most part of your hardwares and therefore performance go slow and even worst, it will causes your hardware fail. Today i was shocked that my server went down because my harddisk failed. i tried to restart but at the moment it couldn't detect my harddisk. I tried the second time and third but still the same. why? of yeah, i didn't turn on my fan while i was away, the heat air not circulate enough. I quickly turned on the fan and waited for 10minutes. Guess what?, my server went back to normal. This also suggest that servers' room always air conditioned.

if you want to produce a complicated serial number key for your product, i think usingGetSerialKeyAlphaNumaric() method would be great. If you are very simple minded GetSerialKeyNumaric() still sufficient enough. :)

Thursday, February 1, 2007

i had been working using NHibernate since last year, however recently, i switched to Linq. The reason is because the Linq is tightly integrated with Visual Studio Orcas. I found that manipulating data is so simple and having implement linq doesn't complicate your application architecture. Additionally, linq and VS introduce signification productivity gain while minimizing investment on producing and maintaining the software. Well, NHibernate does do the job well but the query language is awkward compare to Linq which I need to double check the NHibernate query 's string that i entered is always correct. So will Linq the future choice? Yes but not at the moment, however you can start try NHibernate while waiting the full release of VS Orcas which support Linq. Right now, using NHibernate allows you to switch database provider model on the fly which linq not support (at the moment), meaning that you can switch between MySQL and Oracle by changing the xml file. So no matter what database you use, you are still dealing with the one and only one way of CRUD the database. Btw, you need to use some tool to work with Nhibernate such as MagicDraw (www.magicdraw.com) and AndroMDA (www.andromda.org).

Tuesday, January 30, 2007

Nowadays, software applications use databases extensively while finding the right method is not that easy, problaby because there are so much choices out there. So, Stored procedure or Object relational mappings, ORM? Simple, use store procedures when scaleability is highly concerned. On the other hand, when you want to achieve the highest development productivity, use object realational mappings. How about data access performance? With today technology and tools, performance between the two has not much significant different, however stored procedures method is believed to have a better performance. Security? Recently, ORM method has becoming the most popular choice for developers. Well it all depends on your code implementation. For me, i use ORM such as Dlinq.

Monday, January 29, 2007

Nowadays, we usually have 2 or more PCs at home. We networked them and shared the Internet. Well, for those who are bit geek, why not put your both PCs working in front of you. You will be amazed of significant productivity gain out of it. As for me, i have a notebook and a desktop PC. I use my notebook for writing blogs, surfing the net and do simple photo editing. On the other hand, i use my desktop PC as a web server, down loader, and also as my production machine. I make sure for each time i work, there must be something runing concurently and parallelly; just to do more and save time! Oh yeah, FYI, i always make sure my desktop won't crash and must be always stable, therefore i am using Windows Server 2003. Additionally I always visit or download stuffs from those trusted website. Likewise, I use my notebook so differently, i will do something wild until it crash waiting for reformatting. Cool?

Sunday, January 28, 2007

Today i was invited to help a friend of mine who are a software developer developing an application which apply smart card technology. Smart card is commonly used today. Look at our our malaysian identity card which has smart card enabled and known as MyCard. This is really usefull technology because it actually stores infomation such as your personal infomation, passport infomation, Meps and etc. Currently we are not that advanced yet to use our MyCard as a wallet to purchase stuffs, however one day we will. Well, my friend asked me to help her to create a service to read the MyCard infomation and then save those data into a text file. What i did was I did an interop with those .dll which provided by the smart card reader using p/invoke call using C# .net. I created a class just to hide complexity and encapsulate the MyCard data into a service class. Finally i create a method which write extracted data to a file. All done and my friend is just happy to say "I couldn't effort to lost this codes". Btw, we are lucky enough because we found a nice sofa and sit there for hours of programming while enjoying our coffee and cakes. We are in the Coffee Bean, MidVelly at that time. Initially we plan to go to Starbucks, however the indoor seats are all full.

I am not into beta tester but sometimes i will try beta or some software preview to test the lastest innovation and technology. Sometimes, it is worthwhile if u have tested the features that u always wanted otherwise you will be disappointed because you have wasting your time testing the odd software. Well keep in mind that everything you do has a price so test is wisely.

Saturday, January 27, 2007

For those who are new to programming, you might just wondered what is actually object oriented design, OOD. Well, OOD is just a methodology in which we think things around us as objects and those object in fact can interact with each other. Therefore we want to model these things as objects in our written code. Sound interesting? if the design is well model in OOD way, we can actually can achieve the highest possible code reusability, program maintainability and development productivity. Nowadays, most of the programming languages today support OOD and in fact if you are a newbie, you are recommended to learn OOD because you will love it. Welcome to IT world!