<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-94644964849764651</id><updated>2011-11-27T16:47:19.614-08:00</updated><title type='text'>Software Development and Everything Else..</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://vpdejesus.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/94644964849764651/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://vpdejesus.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Vincent Paul de Jesus</name><uri>http://www.blogger.com/profile/17390332765792775907</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://3.bp.blogspot.com/_QDHj8MjF_LI/SickN6SGOiI/AAAAAAAAAAM/euNq1B9omeg/S220/VPDJ.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>51</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-94644964849764651.post-7170032565260292271</id><published>2011-10-25T04:51:00.000-07:00</published><updated>2011-10-25T04:52:05.567-07:00</updated><title type='text'>Memory Leak in a Microsoft .Net Code</title><content type='html'>I tested my application to run overnight with a background process using a timer control. I had it run overnight and in the morning, after checking, I found a message on my screen stating "Unhandled Microsoft .Net Framework Exception occurred in HiTBP.exe [616]". Of course the application is not running anymore. I was wondering what went wrong.&lt;br /&gt;&lt;br /&gt;Immediately after reading the exception, I fired up my Visual Studio 2010 IDE and opened the project. I inspected every procedure with a timer control on the main form and run it. After several minutes, I figured out what is causing the problem. See the code below:&lt;br /&gt;&lt;br /&gt;Private Sub TimeOutTimer_Tick(sender As System.Object, e As System.EventArgs) Handles TimeOutTimer.Tick&lt;br /&gt;  Try&lt;br /&gt;      &lt;span style="color: rgb(255, 0, 0);"&gt;Dim frm As New frmTimeClock &lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;' - This line here is the one causing the problem&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;      If Auth.CheckLogOutStatus = True Then&lt;br /&gt;          AppInfo.IsShowLoginForm = True&lt;br /&gt;          ' Executing clocking out procedure without showing the TimeClock Form&lt;br /&gt;          frm.ClockOut()&lt;br /&gt;      Else&lt;br /&gt;          Exit Sub&lt;br /&gt;      End If&lt;br /&gt;  Catch ex As Exception&lt;br /&gt;      MessageBox.Show(ex.Message)&lt;br /&gt;      Log.LogInformation(Now &amp;amp; " - Error " &amp;amp; Err.Number &amp;amp; " (" &amp;amp; Err.Description &amp;amp; ") on line number " &amp;amp; Erl() &amp;amp; " in procedure TimeOutTimer_Tick of Main Menu Form")&lt;br /&gt;  End Try&lt;br /&gt;End Sub&lt;br /&gt;&lt;br /&gt;The problem with the code above is every time the timer ticks every 3 seconds, it consumes around 240K of memory also every 3 seconds and accumulates because a new form is always instantiated. After opening the Task Manager and Processes Tab, here's what I get after execution:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/-vJi1QHF44Pw/TqZbkP4zpGI/AAAAAAAAARY/jVhoY_YZwfc/s1600/Before.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 240px;" src="http://4.bp.blogspot.com/-vJi1QHF44Pw/TqZbkP4zpGI/AAAAAAAAARY/jVhoY_YZwfc/s400/Before.png" alt="" id="BLOGGER_PHOTO_ID_5667317859390563426" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;To fix the issue I modified the code above to the following:&lt;br /&gt;&lt;br /&gt;Private Sub TimeOutTimer_Tick(sender As System.Object, e As System.EventArgs) Handles TimeOutTimer.Tick&lt;br /&gt;   Try&lt;br /&gt;       If Auth.CheckLogOutStatus = True Then&lt;br /&gt;           AppInfo.IsShowLoginForm = True&lt;br /&gt;           ' Executing clocking out procedure without showing the TimeClock Form&lt;br /&gt;       &lt;span style="color: rgb(255, 0, 0);"&gt;    Dim frm As New frmTimeClock&lt;/span&gt;&lt;br /&gt;           frm.ClockOut()&lt;br /&gt;       Else&lt;br /&gt;           Exit Sub&lt;br /&gt;       End If&lt;br /&gt;   Catch ex As Exception&lt;br /&gt;       MessageBox.Show(ex.Message)&lt;br /&gt;       Log.LogInformation(Now &amp;amp; " - Error " &amp;amp; Err.Number &amp;amp; " (" &amp;amp; Err.Description &amp;amp; ") on line number " &amp;amp; Erl() &amp;amp; " in procedure TimeOutTimer_Tick of Main Menu Form")&lt;br /&gt;   End Try&lt;br /&gt;End Sub&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;You have noticed that I moved the "&lt;span style="color: rgb(255, 0, 0);"&gt;Dim frm As New frmTimeClock" &lt;span style="color: rgb(102, 102, 102);"&gt;code inside the "If" condition which is only then that it is instantiated when the condition is meet or True. The lesson is you only need to instantiate a form when it is needed at that particular condition especially if it is under a Timer Control procedure. This is to avoid memory leak in the software you are developing.&lt;br /&gt;&lt;br /&gt;After modifying the code, my application stabilizes around 25,000 k. Not bad for a &lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(102, 102, 102);"&gt;huge WinForms application.&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="color: rgb(102, 102, 102);"&gt; :-)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/94644964849764651-7170032565260292271?l=vpdejesus.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vpdejesus.blogspot.com/feeds/7170032565260292271/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://vpdejesus.blogspot.com/2011/10/memory-leak-in-microsoft-net-code_25.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/94644964849764651/posts/default/7170032565260292271'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/94644964849764651/posts/default/7170032565260292271'/><link rel='alternate' type='text/html' href='http://vpdejesus.blogspot.com/2011/10/memory-leak-in-microsoft-net-code_25.html' title='Memory Leak in a Microsoft .Net Code'/><author><name>Vincent Paul de Jesus</name><uri>http://www.blogger.com/profile/17390332765792775907</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://3.bp.blogspot.com/_QDHj8MjF_LI/SickN6SGOiI/AAAAAAAAAAM/euNq1B9omeg/S220/VPDJ.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-vJi1QHF44Pw/TqZbkP4zpGI/AAAAAAAAARY/jVhoY_YZwfc/s72-c/Before.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-94644964849764651.post-7628609372347967124</id><published>2011-09-21T06:44:00.000-07:00</published><updated>2011-09-21T07:06:17.646-07:00</updated><title type='text'>What is SQL Injection and how to avoid it?</title><content type='html'>One of the greatest security loop holes and causes of great impairment to computerized systems is a hacking technique called SQL injection.&lt;br /&gt;&lt;br /&gt;As Wikipedia's definition, &lt;span style="font-weight:bold;"&gt;SQL injection&lt;/span&gt; is a code injection technique that exploits a security vulnerability occurring in the database layer of an application (like queries). The vulnerability is present when user input is either incorrectly filtered for string literal escape characters embedded in SQL statements or user input is not strongly typed and thereby unexpectedly executed. It happens from using poorly designed query language interpreters.&lt;br /&gt;&lt;br /&gt;Hackers use this technique to inject malicious code into statements that is executed dynamically on SQL Servers, often from accounts with higher privileges. This attack can be done when you construct your SQL code by concatenating strings.&lt;br /&gt;&lt;br /&gt;To avoid SQL Injection, for example in VB.Net code below:&lt;br /&gt;&lt;br /&gt;Dim cmd As SqlCommand = New SqlCommand&lt;br /&gt;Dim ID as Integer&lt;br /&gt;&lt;br /&gt;'Opening database connection&lt;br /&gt;con.Open()&lt;br /&gt;&lt;br /&gt;With cmd&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;.CommandText = "SELECT Name FROM Customers WHERE ID= '" &amp;amp; ID &amp;amp; "'"&lt;/span&gt;&lt;br /&gt;.CommandType = CommandType.Text&lt;br /&gt;.Connection = con&lt;br /&gt;.ExecuteScalar&lt;br /&gt;End With&lt;br /&gt;&lt;br /&gt;'Closing database connection&lt;br /&gt;con.Close()&lt;br /&gt;con = Nothing&lt;br /&gt;&lt;br /&gt;In the example code above, do not use this when calling SQL statements on your SQLDataAdapter or SQL Command. Instead use an SQL parameter variable to pass the parameter instead of concatenating strings when you call your variable. Like this one below:&lt;br /&gt;&lt;br /&gt;Dim cmd As SqlCommand = New SqlCommand&lt;br /&gt;Dim ID as Integer&lt;br /&gt;&lt;br /&gt;'Opening database connection&lt;br /&gt;con.Open()&lt;br /&gt;&lt;br /&gt;With cmd&lt;br /&gt;.CommandText = "SELECT Name FROM Customers WHERE ID=@ID"&lt;br /&gt;.CommandType = CommandType.Text&lt;br /&gt;.Connection = con&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;.Parameters.Add(New SqlParameter("@ID", SqlDbType.Int, 100)).Value = ID&lt;/span&gt;&lt;br /&gt;.ExecuteScalar&lt;br /&gt;End With&lt;br /&gt;&lt;br /&gt;'Closing database connection&lt;br /&gt;con.Close()&lt;br /&gt;con = Nothing&lt;br /&gt;&lt;br /&gt;The second one will avoid SQL Injection. Hackers don't have an entry point because you are not exposing your variable in your SQL Statement. I hope you get this one and you'll have a better implementation with this on your .Net code.&lt;br /&gt;&lt;br /&gt;For more .Net tutorials please visit my site - &lt;a href="http://vpdejesus.tech.officelive.com"&gt;http://vpdejesus.tech.officelive.com&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/94644964849764651-7628609372347967124?l=vpdejesus.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vpdejesus.blogspot.com/feeds/7628609372347967124/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://vpdejesus.blogspot.com/2011/09/what-is-sql-injection-and-how-to-avoid.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/94644964849764651/posts/default/7628609372347967124'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/94644964849764651/posts/default/7628609372347967124'/><link rel='alternate' type='text/html' href='http://vpdejesus.blogspot.com/2011/09/what-is-sql-injection-and-how-to-avoid.html' title='What is SQL Injection and how to avoid it?'/><author><name>Vincent Paul de Jesus</name><uri>http://www.blogger.com/profile/17390332765792775907</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://3.bp.blogspot.com/_QDHj8MjF_LI/SickN6SGOiI/AAAAAAAAAAM/euNq1B9omeg/S220/VPDJ.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-94644964849764651.post-6841040263370527805</id><published>2011-05-17T18:59:00.000-07:00</published><updated>2011-05-17T19:00:26.418-07:00</updated><title type='text'>What is RH BILL NO. 5043?</title><content type='html'>HOUSE BILL NO. 5043&lt;br /&gt;&lt;br /&gt;AN ACT PROVIDING FOR A NATIONAL POLICY ON REPRODUCTIVE HEALTH, RESPONSIBLE PARENTHOOD AND POPULATION DEVELOPMENT, AND FOR OTHER PURPOSES&lt;br /&gt;&lt;br /&gt;Be it enacted by the Senate and the House of Representatives of the Philippines in Congress assembled:&lt;br /&gt;&lt;br /&gt;SECTION 1. Short Title. – This Act shall be known as the “Reproductive Health and Population Development Act of 2008“.&lt;br /&gt;&lt;br /&gt;SEC. 2. Declaration of Policy. – The State upholds and promotes responsible parenthood, informed choice, birth spacing and respect for life in conformity with internationally recognized human rights standards.&lt;br /&gt;&lt;br /&gt;The State shall uphold the right of the people, particularly women and their organizations, to effective and reasonable participation in the formulation and implementation of the declared policy.&lt;br /&gt;&lt;br /&gt;This policy is anchored on the rationale that sustainable human development is better assured with a manageable population of healthy, educated and productive citizens.&lt;br /&gt;&lt;br /&gt;The State likewise guarantees universal access to medically-safe, legal, affordable and quality reproductive health care services, methods, devices, supplies and relevant information thereon even as it prioritizes the needs of women and children,among other underprivileged sectors.&lt;br /&gt;&lt;br /&gt;SEC. 3. Guiding Principles. – This Act declares the following as basic guiding principles:&lt;br /&gt;&lt;br /&gt;a. In the promotion of reproductive health, there should be no bias for either modern or natural methods of family planning;&lt;br /&gt;&lt;br /&gt;b. Reproductive health goes beyond a demographic target because it is principally about health and rights;&lt;br /&gt;&lt;br /&gt;c. Gender equality and women empowerment are central elements of reproductive health and population development;&lt;br /&gt;&lt;br /&gt;d. Since manpower is the principal asset of every country, effective reproductive health care services must be given primacy to ensure the birth and care of healthy children and to promote responsible parenting;&lt;br /&gt;&lt;br /&gt;e. The limited resources of the country cannot be suffered to, be spread so thinly to service a burgeoning multitude that makes the allocations grossly inadequate and effectively meaningless;&lt;br /&gt;&lt;br /&gt;f. Freedom of informed choice, which is central to the exercise of any right, must be fully guaranteed by the State like the right itself;&lt;br /&gt;&lt;br /&gt;g. While the number and spacing of children are left to the sound judgment of parents and couples based on their personal conviction and religious beliefs, such concerned parents and couples, including unmarried individuals, should be afforded free and full access to relevant, adequate and correct information on reproductive health and human sexuality and should be guided by qualified State workers and professional private practitioners;&lt;br /&gt;&lt;br /&gt;h. Reproductive health, including the promotion of breastfeeding, must be the joint concern of the National Government and Local Government Units(LGUs);&lt;br /&gt;&lt;br /&gt;i. Protection and promotion of gender equality, women empowerment and human rights, including reproductive health rights, are imperative;&lt;br /&gt;&lt;br /&gt;j. Development is a multi-faceted process that calls for the coordination and integration of policies, plans, programs and projects that seek to uplift the quality of life of the people, more particularly the poor, the needy and the marginalized;&lt;br /&gt;&lt;br /&gt;k. Active participation by and thorough consultation with concerned non-government organizations (NGOs), people’s organizations (POs) and communities are imperative to ensure that basic policies, plans, programs and projects address the priority needs of stakeholders;&lt;br /&gt;&lt;br /&gt;l. Respect for, protection and fulfillment of reproductive health rights seek to promote not only the rights and welfare of adult individuals and couples but those of adolescents’ and children’s as well; and&lt;br /&gt;&lt;br /&gt;m. While nothing in this Act changes the law on abortion, as abortion remains a crime and is punishable, the government shall ensure that women seeking care for post-abortion complications shall be treated and counseled in a humane, non-judgmental and compassionate manner.&lt;br /&gt;&lt;br /&gt;SEC. 4. Definition of Terms. – For purposes of this Act, the following terms shall be defined as follows:&lt;br /&gt;&lt;br /&gt;a. Responsible Parenthood – refers to the will, ability and cornmitTrient of parents to respond to the needs and aspirations of the family and children more particularly through family planning;&lt;br /&gt;&lt;br /&gt;b. Family Planning – refers to a program which enables couple, and individuals to decide freely and responsibly the number and spacing of their children and to have the information and means to carry out their decisions, and to have informed choice and access to a full range of safe, legal and effective family planning methods, techniques and devices.&lt;br /&gt;&lt;br /&gt;c. Reproductive Health -refers to the state of physical, mental and social well-being and not merely the absence of disease or infirmity, in all matters relating to the reproductive system and to its funcitions and processes. This implies that people are able to have a satisfying and safe sex life, that they have the capability to reproduce and the freedom to decide if, when and how often to do so, provided that these are not against the law. This further implies that women and men are afforded equal status in matters related to sexual relations and reproduction.&lt;br /&gt;&lt;br /&gt;d. Reproductive Health Rights – refers to the rights of individuals and couples do decide freely and responsibly the number, spacing and timing of their children; to make other decisions concerning reproduction free of discrimination, coercion and violence; to have the information and means to carry out their decisions; and to attain the highest standard of sexual and reproductive health.&lt;br /&gt;&lt;br /&gt;e. Gender Equality – refers to the absence of discrimination on the basis of a person’s sex, in opportunities, allocation of resources and benefits, and access to services.&lt;br /&gt;&lt;br /&gt;f. Gender Equity – refers to fairness and justice in the distribution of benefits and responsibilities between women and men, and often requires. women-specific projects and programs to eliminate existing inequalities, inequities, policies and practices unfavorable too women.&lt;br /&gt;&lt;br /&gt;g. Reproductive Health Care – refers to the availability of and access to a full range of methods, techniques, supplies and services that contribute to reproductive and sexual health and well-being by preventing and solving reproductive health-related problems in order to achieve enhancement of life and personal relations. The elements of reproductive health care include:&lt;br /&gt;&lt;br /&gt;1. Maternal, infant and child health and nutrition;&lt;br /&gt;&lt;br /&gt;2. Promotion of breastfeeding;&lt;br /&gt;&lt;br /&gt;3. Family planning information end services;&lt;br /&gt;&lt;br /&gt;4. Prevention of abortion and management of post-abortion complications;&lt;br /&gt;&lt;br /&gt;5. Adolescent and youth health;&lt;br /&gt;&lt;br /&gt;6. Prevention and management of reproductive tract infections (RTIs), HIV/AIDS and other sexually transmittable infections (STIs);&lt;br /&gt;&lt;br /&gt;7. Elimination of violence against women;&lt;br /&gt;&lt;br /&gt;8. Education and counseling on sexuality and sexual and reproductive health;&lt;br /&gt;&lt;br /&gt;9. Treatment of breast and reproductive tract cancers and other gynecological conditions;&lt;br /&gt;&lt;br /&gt;10. Male involvement and participation in reproductive health;,&lt;br /&gt;&lt;br /&gt;11. Prevention and treatment of infertility and sexual dysfunction; and&lt;br /&gt;&lt;br /&gt;12. Reproductive health education for the youth.&lt;br /&gt;&lt;br /&gt;h. Reproductive Health Education – refers to the process of acquiring complete, accurate and relevant information on all matters relating to the reproductive system, its functions and processes and human sexuality; and forming attitudes and beliefs about sex, sexual identity, interpersonal relationships, affection, intimacy and gender roles. It also includes developing the necessary skills do be able to distinguish between facts and myths on sex and sexuality; and critically evaluate. and discuss the moral, religious, social and cultural dimensions of related sensitive issues such as contraception and abortion.&lt;br /&gt;&lt;br /&gt;i. Male involvement and participation – refers to the involvement, participation, commitment and joint responsibility of men with women in all areas of sexual and reproductive health, as well as reproductive health concerns specific to men.&lt;br /&gt;&lt;br /&gt;j. Reproductive tract infection (RTI) – refers do sexually transmitted infections, sexually transmitted diseases and other types of-infections affecting the reproductive system.&lt;br /&gt;&lt;br /&gt;k. Basic Emergency Obstetric Care – refers to lifesaving services for maternal complication being provided by a health facility or professional which must include the following six signal functions: administration of parenteral antibiotics; administration of parrenteral oxyttocic drugs; administration of parenteral anticonvulsants for pre-eclampsia and iampsia; manual removal of placenta; and assisted vaginal delivery.&lt;br /&gt;&lt;br /&gt;l. Comprehensive Emergency Obstetric Care – refers to basic emergency obstetric care plus two other signal functions: performance of caesarean section and blood transfusion.&lt;br /&gt;&lt;br /&gt;m. Maternal Death Review – refers to a qualitative and in-depth study of the causes of maternal death with the primary purpose of preventing future deaths through changes or additions to programs, plans and policies.&lt;br /&gt;&lt;br /&gt;n. Skilled Attendant – refers to an accredited health professional such as a licensed midwife, doctor or nurse who has adequate proficiency and the skills to manage normal (uncomplicated) pregnancies, childbirth and the immediate postnatal period, and in the identification, management and referral of complication in women and newborns.&lt;br /&gt;&lt;br /&gt;o. Skilled Attendance – refers to childbirth managed by a skilled attendant under the enabling conditions of a functional emergencyobstetric care and referral system.&lt;br /&gt;&lt;br /&gt;p. Development – refers to a multi-dimensional process involving major changes in social structures, popular attitudes, and national institutions as well as the acceleration of economic growth, the reduction of inequality and the eradication of widespread poverty.&lt;br /&gt;&lt;br /&gt;q. Sustainable Human Development – refers to the totality of the process of expending human choices by enabling people to enjoy long, healthy and productive lives, affording them access to resources needed for a decent standard of living and assuring continuity and acceleration of development by achieving a balance between and among a manageable population, adequate resources and a healthy environment.&lt;br /&gt;&lt;br /&gt;r. Population Development – refers to a program that aims to: (1) help couples and parents achieve their desired family size; (2) improve reproductive health of individuals by addressing reproductive health problems; (3) contribute to decreased maternal and infant mortality rates and early child mortality; (4) reduce incidence of teenage pregnancy; and (5) enable government to achieve a balanced population distribution.&lt;br /&gt;&lt;br /&gt;SEC. 5. The Commission on Population (POPC0NI). – Pursuant to the herein declared policy, the Commission on Population (POPCOM) shall serve as the central planning, coordinating, implementing and monitoring body for the comprehensive and integrated policy on reproductive health and population development. In the implementation of this policy, POPCOM, which shall be an attached agency of the Department of Health (DOH) shall have the following functions:&lt;br /&gt;&lt;br /&gt;a. To create an enabling environment for women and couples to make an informed choice regarding the family planning method that is best suited to their needs and personal convictions;&lt;br /&gt;&lt;br /&gt;b. To integrate on a continuing basis the interrelated reproductive health and population development agenda into a national policy, taking into account regional and local concerns;&lt;br /&gt;&lt;br /&gt;c. To provide the mechanism to ensure active and full participation of the private sector and the citizenry through their organizations in the planning and implementation of reproductive health care and population development programs and projects;&lt;br /&gt;&lt;br /&gt;d. To ensure people’s access to medically safe, legal, quality and affordable reproductive health goods and services;&lt;br /&gt;&lt;br /&gt;e. To facilitate the involvement and participation of non-government organizations and the private sector in reproductive health care service delivery and in the production, distribution and delivery of quality reproductive: health and family planning supplies and commodities to make them accessible and affordable to ordinary citizens;&lt;br /&gt;&lt;br /&gt;f. To fully implement the Reproductive Health Care Program with the following components:&lt;br /&gt;&lt;br /&gt;(1) Reproductive health education including but not limited to counseling on the full range of legal and medically-safe family planning methods including surgical methods;&lt;br /&gt;&lt;br /&gt;(2) Maternal, pen-natal and post-natal education, care and services;&lt;br /&gt;&lt;br /&gt;(3) Promotion of breastfeeding;&lt;br /&gt;&lt;br /&gt;(4) Promotion of male involvement, participation and responsibility in reproductive health as well as other reproductive health concerns of men;&lt;br /&gt;&lt;br /&gt;(5) Prevention of abortion and management of post-abortion complications; and&lt;br /&gt;&lt;br /&gt;(6) Provision of information and services addressing the reproductive health needs of the poor, senior citizens, women in prostitution, differently-abled persons, and women and children in war AND crisis situations.&lt;br /&gt;&lt;br /&gt;g. To ensure that reproductive health services are delivered with a full range of supplies, facilities and equipment and that service providers are adequately trained for reproductive health care;&lt;br /&gt;&lt;br /&gt;h. To endeavor to furnish local Family Planning Offices with appropriate information and resources to keep the latter updated on current studies and research relating to family planning, responsible parenthood, breastfeeding and infant nutrition;&lt;br /&gt;&lt;br /&gt;i. To direct all public hospitals to make available to indigent mothers who deliver their children in these government hospitals, upon the mothers request, the procedure of ligation without cost to her;&lt;br /&gt;&lt;br /&gt;j. To recommend the enactment of legislation and adoption of executive measures that will strengthen and enhance the national policy on reproductive health and population development;&lt;br /&gt;&lt;br /&gt;k. To ensure a massive and sustained information drive on responsible parenthood and on all methods and techniques to prevent unwanted, unplanned and mistimed pregnancies, it shall release information bulletins on the same for nationwide circulation to all government departments, agencies and instrumentalities, non-government organizations and the private sector, schools, public and private libraries, tri-media outlets, workplaces, hospitals and concerned health institutions;&lt;br /&gt;&lt;br /&gt;l. To strengthen the capacities of health regulatory agencies to ensure safe, high-quality, accessible, and affordable reproductive health services and commodities with the concurrent strengthening and enforcement of regulatory mandates and mechanisms;&lt;br /&gt;&lt;br /&gt;m. To take active steps to expand the coverage of the National Health Insurance Program (NHIP), especially among poor and marginalized women, to include the full range of reproductive health services and supplies as health insurance benefits; and&lt;br /&gt;&lt;br /&gt;n. To perform such other functions necessary to attain the purposes of this Act.&lt;br /&gt;&lt;br /&gt;The membership of the Board of Commissioners of POPCOM shall consist of the heads of the following AGENCIES:&lt;br /&gt;&lt;br /&gt;1. National Economic DevelopmentAuthority (VEDA)&lt;br /&gt;2. Department of Health (DOH)&lt;br /&gt;3. Department of Social Welfare and Development (DSWD)&lt;br /&gt;4. Department of Labor and Employment (DOLE)&lt;br /&gt;5. Department of Agriculture (DA)&lt;br /&gt;6. Department of the Interior and Local Government (DILG)&lt;br /&gt;7. Department of Education (DepEd)&lt;br /&gt;8. Department of Environment and Natural Resources (DENR)&lt;br /&gt;9. Commission on Higher Education (CHED)&lt;br /&gt;10. University of the Philippines Population Institute (UPPI)&lt;br /&gt;11. Union of Local Authorities of the Philippines (ULAFI)&lt;br /&gt;12. National Anti-Poverty Commission (NAPQ&lt;br /&gt;13. National Commission on the Role of Filipino Women (NCRFW)&lt;br /&gt;14. National Youth Commission (NYC)&lt;br /&gt;&lt;br /&gt;In addition to the aforementioned, members, there shall be three private sector representatives to the Board of Commissioners of POPCOM who shall come from NGOs. There shall be one (1) representative each from women, youth and health sectors who have a proven track record of involvement in the promotion of reproductive health. These representatives shall be nominated in a process determined by the above-mentioned sectors, and to be appointed by the President for a term of three (3)years.&lt;br /&gt;&lt;br /&gt;SEC. 6. Midwives for Skilled Attendance. -Every city and municipality shall endeavor to employ adequate number of midwives or other skilled attendants to achieve a minimum ratio of one (1)for every one hundred fifty (150) deliveries per year, to be based on the average annual number of actual deliveries or live births for the past two years.&lt;br /&gt;&lt;br /&gt;SEC. 7. Emergency Obstetric Care. – Each province. and city shall endeavor to ensure the establishment and operation of hospitals with adequate and qualified personnel that provide emergency obstetric care. For every 500,000 population, there shall be at least one (1) hospital for comprehensive emergency obstetric care and four (4) hospitals for basic emergency obstetric care.&lt;br /&gt;&lt;br /&gt;SEC. 8. Maternal Death Review. – All LGUs, national and local government hospitals, and other public health units shall conduct maternal death review in accordance with the guidelines to be issued by the DOH in consultation with the POPCOM.&lt;br /&gt;&lt;br /&gt;SEC. 9. Hospital-Based Family Planning. -Tubal ligation, vasectomy, intrauterine device insertion and other family planning methods requiring hospital services shall be available in all national and local government hospitals, except: in specialty hospitals which may render such services on an optional basis. For indigent patients, such services shall be fully covered by PhilHealth insurance and/or government financial assistance.&lt;br /&gt;&lt;br /&gt;SEC. 10. Contraceptives as Essential Medicines. – Hormonal contraceptives, intrauterine devices, injectables and other allied reproductive health products and supplies shall be considered under the category of essential medicines and supplies which shall form part of the National Drug Formulary and the same shall be included in the regular purchase of essential medicines and supplies of all national and lord hospitals and other government health units.&lt;br /&gt;&lt;br /&gt;SEC. 11. Mobile Health Care Service. -Each Congressional District shall be provided with a van to be known as the Mobile Health Care Service (MHOS) to deliver health care goods and services to its constituents, more particularly to the poor and needy, as well as disseminate knowledge and information on reproductive health: Provided, That reproductive health education shall be conducted by competent and adequately trained persons preferably reproductive health care providers: Provided, further, That the full range of family planning methods, both natural and modern, shall be promoted.&lt;br /&gt;&lt;br /&gt;The acquisition, operation and maintenance of the MRCS shall be funded from the Priority Development Assistance Fund (PDAF) of each Congressional District.&lt;br /&gt;&lt;br /&gt;The MHCS shall be adequately equipped with a wide range of reproductive health care materials and information dissemination devices and equipment, the latter including but not limited to, a television set for audio-visual presentation.&lt;br /&gt;&lt;br /&gt;SEC. 12. Mandatory Age-Appropriate Reproductive Health Education. – Recognizing the importance of reproductive health rights in empowering the youth and developing them into responsible adults, Reproductive Health Education in an age-appropriate manner shall be taught by adequately trained teachers starting from Grade 5 up to Fourth Year High School. In order to assure the prior training of teachers on reproductive health, the implementation of Reproductive Health Education shall commence at the start of the school year one year following the effectivity of this Act. The POPCOM, in coordination with the Department of Education, shall formulate the Reproductive Health Education curriculum, which shall be common to both public and private schools and shall include related population and development concepts in addition to the following subjects and standards:&lt;br /&gt;&lt;br /&gt;a. Reproductive health and sexual rights;&lt;br /&gt;&lt;br /&gt;b. Reproductive health care and services;&lt;br /&gt;&lt;br /&gt;c. Attitudes, beliefs and values on sexual development, sexual behavior and sexual health;&lt;br /&gt;&lt;br /&gt;d. Proscription and hazards of abortion and management of post-abortion complications;&lt;br /&gt;&lt;br /&gt;e. Responsible parenthood.&lt;br /&gt;&lt;br /&gt;f. Use and application of natural and modern family planning methods to promote reproductive health, achieve desired family size and prevent unwanted, unplanned and mistimed pregnancies;&lt;br /&gt;&lt;br /&gt;g. Abstinence before marriage;&lt;br /&gt;&lt;br /&gt;h. Prevention and treatment of HIV/AIDS and other, STIs/STDs, prostate cancer, breast cancer, cervical cancer and other gynecological disorders;&lt;br /&gt;&lt;br /&gt;i. Responsible sexuality; and&lt;br /&gt;&lt;br /&gt;j. Maternal, peri-natal and post-natal education, care and services.&lt;br /&gt;&lt;br /&gt;In support of the natural, and primary right of parents in the rearing of the youth, the POPCOM shall provide concerned parents with adequate and relevant scientific materials on the age-appropriate topics and manner of teaching reproductive health education to their children.&lt;br /&gt;&lt;br /&gt;In the elementary level, reproductive health education shall focus, among others, on values formation.&lt;br /&gt;&lt;br /&gt;Non-formal education programs shall likewise include the abovementioned reproductive Health Education.&lt;br /&gt;&lt;br /&gt;SEC. 13. Additional Duty of Family Planning 0ffice. – Each local Family Planning Office shall furnish for free instructions and information on family planning, responsible parenthood, breastfeeding and infant nutrition to all applicants for marriage license.&lt;br /&gt;&lt;br /&gt;SEC. 14. Certificate of Compliance. – No marriage license shall be issued by the Local Civil Registrar unless the applicants present a Certificate of Compliance issued for free by the local Family Planning Office certifying that they had duly received adequate instructions and information on family planning, responsible parenthood, breastfeeding and infant nutrition.&lt;br /&gt;&lt;br /&gt;SEC. 15. Capability Building of Community-Based Volunteer Workers. – Community-based volunteer workers, like but not limited to, Barangay Health Workers, shall undergo additional and updated training on the delivery of reproductive health care services and shall receive not less than 10% increase in honoraria upon successful completion of training. The increase in honoraria shall be funded from the Gender and Development (GAD) budget of the National Economic and Development Authority (NEDA), Department of Health (DOH) and the Department of the Interior and Local Government (DILG).&lt;br /&gt;&lt;br /&gt;SEC. 16. Ideal Family Size. – The State shall assist couples, parents and individuals to achieve their desired family size within the context of responsible parenthood for sustainable development and encourage them to have two children as the ideal family size. Attaining the ideal family size is neither mandatory nor compulsory. No punitive action shall be imposed on parents having more than two children.&lt;br /&gt;&lt;br /&gt;SEC. 17. Employers’ Responsibilities. – Employers shall respect the reproductive health rights of all their workers. Women shall not be discriminated against in the matter of hiring, regularization of employment status or selection for retrenchment.&lt;br /&gt;&lt;br /&gt;All Collective Bargaining Agreements (CBAs) shall provide for the free delivery by the employer of reasonable quantity of reproductive health care services, supplies and devices to all workers, more particularly women workers. In establishments or enterprises where there are no CBAs or where the employees are unorganized, the employer shall have the same obligation.&lt;br /&gt;&lt;br /&gt;SEC. 18. Support of Private and Non-government Health Care Service Providers. – Pursuant to Section 5(b) hereof, private reproductive health care service providers, including but not limited to gynecologists and obstetricians, are encouraged to join their colleagues in non-government organizations in rendering such services free of charge or at reduced professional fee rates to indigent and low income patients.&lt;br /&gt;&lt;br /&gt;SEC. 19. Multi-Media Campaign. – POPCOM shall initiate and sustain an intensified nationwide multi-media campaign to raise the level of public awareness on the urgent need to protect and promote reproductive health and rights.&lt;br /&gt;&lt;br /&gt;SEC. 20. Reporting Requirements. – Before the end of April of each year,the DOH shall submit an annual report to the President of the Philippines, the President of the Senate and the Speaker of the House of Representatives on a definitive and comprehensive assessment of the implementation of this Act and shall make the necessary recommendations for executive and legislative action. The report shall be posted in the website of DOH and printed copies shall be made available to all stakeholders.&lt;br /&gt;&lt;br /&gt;SEC. 21. Prohibited Acts. – The following acts are prohibited:&lt;br /&gt;&lt;br /&gt;a) Any health care service provider, whether public or private, who shall:&lt;br /&gt;&lt;br /&gt;1. Knowingly withhold information or impede the dissemination thereof, and/or intentionally provide incorrect information regarding programs and services on reproductive health including the right to informed choice and access to a full range of legal, medically-safe and effective family planning methods;&lt;br /&gt;&lt;br /&gt;2. Refuse to perform voluntary ligation and vasectomy and other legal and medically-safe reproductive health care services on any person of legal age on the ground of lack of spousal consent or authorization.&lt;br /&gt;&lt;br /&gt;3. Refuse to provide reproductive health care services to an abused minor, whose abused condition is certified by the proper official or personnel of the Department of Social Welfare and Development (DSWD) or to duly DSWD-certified abused pregnant minor on whose case no parental consent is necessary.&lt;br /&gt;&lt;br /&gt;4. Fail to provide, either deliberately or through gross or inexcusable negligence, reproductive health care services as mandated under this Act, the Local Government Code of 1991, the Labor Code, and Presidential Decree 79, as amended; and&lt;br /&gt;&lt;br /&gt;5. Refuse to extend reproductive health care services and information on account of the patient’s civil status, gender or sexual orientation, age, religion, personal circumstances, and nature of work; Provided, That all conscientious objections of health care service providers based on religious grounds shall be respected: Provided, further, That the conscientious objector shall immediately refer the person seeking such care and services to another health care service provider within the same facility or one which is conveniently accessible: Provided, finally, That the patient is not in an emergency or serious case as defined in RA 8344 penalizing the refusal of hospitals and medical clinics to administer appropriate initial medical treatment and support in emergency and serious cases.&lt;br /&gt;&lt;br /&gt;b) Any public official who prohibits or restricts personally or through a subordinate the delivery of legal and medically-safe reproductive health care services, including family planning;&lt;br /&gt;&lt;br /&gt;c) Any employer who shall fail to comply with his obligation under Section 17 of this Act or an employer who requires a female applicant or employee, as a condition for employment or continued employment, to involuntarily undergo sterilization, tubal ligation or any other form of contraceptive method;&lt;br /&gt;&lt;br /&gt;d) Any person who shall falsify a certificate of compliance as required in Section 14 of this Act; and&lt;br /&gt;&lt;br /&gt;e) Any person who maliciously engages in disinformation about the intent or provisions of this Act.&lt;br /&gt;&lt;br /&gt;SEC. 22. Penalties. – The proper city or municipal court shall exercise jurisdiction over violations of this Act and the accused who is found guilty shall be sentenced to an imprisonment ranging from one (1) month to six (6) months or a fine ranging from Ten Thousand Pesos (P10,000.00) to Fifty Thousand Pesos (P50,000.00) or both such fine and imprisonment at the discretion of the court. If the offender is a juridical person, the penalty shall be imposed upon the president, treasurer, secretary or any responsible officer. An offender who is an alien shall, after service of sentence, be deported immediately without further proceedings by the Bureau of Immigration. An offender who is a public officer or employee shall suffer the accessory penalty of dismissal from the government service.&lt;br /&gt;&lt;br /&gt;Violators of this Act shall be civilly liable to the offended party in such amount at the discretion of the proper court.&lt;br /&gt;&lt;br /&gt;SEC. 23. Appropriations. – The amounts appropriated in the current annual General Appropriations Act for reproductive health and family planning under the DOH and POPCOM together with ten percent (10%) of the Gender and Development (GAD) budgets of all government departments, agencies, bureaus, offices and instrumentalities funded in the annual General Appropriations Act in accordance with Republic Act No. 7192 (Women in Development and Nation-building Act) and Executive Order No. 273 (Philippine Plan for Gender Responsive Development 1995-2025) shall be allocated and utilized for the implementation of this Act. Such additional sums as may be necessary for the effective implementation of this Act shall be Included in the subsequent years’ General Appropriations Acts.&lt;br /&gt;&lt;br /&gt;SEC. 24. Implementing Rules and Regulations. – Within sixty (60) days from the effectivity of this Act, the Department of Health shall promulgate, after thorough consultation with the Commission on Population (POPCOM), the National Economic Development Authority (NEDA), concerned non-government organizations (NGOs) and known reproductive health advocates, the requisite implementing rules and regulations.&lt;br /&gt;&lt;br /&gt;SEC. 25. Separability Clause. – If any part, section or provision of this Act is held invalid or unconstitutional, other provisions not affected thereby shall remain in full force and effect.&lt;br /&gt;&lt;br /&gt;SEC. 26. Repealing Clause. – All laws, decrees, Orders, issuances, rules and regulations contrary to or inconsistent with the provisions of this Act are hereby repealed, amended or modified accordingly.&lt;br /&gt;&lt;br /&gt;SEC. 27. Effectivity. – This Act shall take effect fifteen (15) days after its publication in at least two (2) newspapers of national circulation.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/94644964849764651-6841040263370527805?l=vpdejesus.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vpdejesus.blogspot.com/feeds/6841040263370527805/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://vpdejesus.blogspot.com/2011/05/what-is-rh-bill-no-5043.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/94644964849764651/posts/default/6841040263370527805'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/94644964849764651/posts/default/6841040263370527805'/><link rel='alternate' type='text/html' href='http://vpdejesus.blogspot.com/2011/05/what-is-rh-bill-no-5043.html' title='What is RH BILL NO. 5043?'/><author><name>Vincent Paul de Jesus</name><uri>http://www.blogger.com/profile/17390332765792775907</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://3.bp.blogspot.com/_QDHj8MjF_LI/SickN6SGOiI/AAAAAAAAAAM/euNq1B9omeg/S220/VPDJ.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-94644964849764651.post-5470293415252842601</id><published>2011-04-11T04:48:00.000-07:00</published><updated>2011-04-11T05:04:20.202-07:00</updated><title type='text'>How to deploy Crystal Report 13.0 for Visual Studio 2010?</title><content type='html'>Deploying crystal report 13 for Visual Studio 2010 has been a problem for several .Net Software Developers. However, as a .Net Developer, you have to be patient and be able to solve the problem at hand.&lt;br /&gt;&lt;br /&gt;I have been testing and modifying the software (Windows Form based) I'm developing with Visual Studio 2010 and it utilizes SAP Crystal Report as the reporting tool for my project. I was able to successfully tested it to include the crystal report engine for the Setup and Deployment project. To successfully deploy your project including the crystal report engine, you have to include all the merge module from SAP Crystal report version 13 on your Setup and Deployment project. The only disadvantage with this is that your setup executable or windows installer files will become bigger because of the merge modules you have to include in your project.&lt;br /&gt;&lt;br /&gt;The following merge modules can be downloaded on this link - &lt;a href="http://www.sdn.sap.com/irj/scn/weblogs?blog=/pub/wlg/22083"&gt;http://www.sdn.sap.com/irj/scn/weblogs?blog=/pub/wlg/22083&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Please see below the following merge module files to include in your deployment project:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/-KVj4yy5YijQ/TaLtY7w1NZI/AAAAAAAAAPo/XXzRBxOwv0Q/s1600/CR.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 354px;" src="http://1.bp.blogspot.com/-KVj4yy5YijQ/TaLtY7w1NZI/AAAAAAAAAPo/XXzRBxOwv0Q/s400/CR.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5594294699762726290" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/94644964849764651-5470293415252842601?l=vpdejesus.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vpdejesus.blogspot.com/feeds/5470293415252842601/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://vpdejesus.blogspot.com/2011/04/how-to-deploy-crystal-report-130-for.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/94644964849764651/posts/default/5470293415252842601'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/94644964849764651/posts/default/5470293415252842601'/><link rel='alternate' type='text/html' href='http://vpdejesus.blogspot.com/2011/04/how-to-deploy-crystal-report-130-for.html' title='How to deploy Crystal Report 13.0 for Visual Studio 2010?'/><author><name>Vincent Paul de Jesus</name><uri>http://www.blogger.com/profile/17390332765792775907</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://3.bp.blogspot.com/_QDHj8MjF_LI/SickN6SGOiI/AAAAAAAAAAM/euNq1B9omeg/S220/VPDJ.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-KVj4yy5YijQ/TaLtY7w1NZI/AAAAAAAAAPo/XXzRBxOwv0Q/s72-c/CR.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-94644964849764651.post-3757651616715118610</id><published>2010-12-03T06:21:00.000-08:00</published><updated>2010-12-03T06:27:44.377-08:00</updated><title type='text'>Great News for iPhone and Android Developers</title><content type='html'>For Developers out there wanting to develop iPhone, iPad or Android applications, you can now develop your own application using the Write Once - Run Anywhere for mobile and desktop development tool in GoDB. &lt;br /&gt;&lt;br /&gt;See GoDB's features below:&lt;br /&gt;&lt;br /&gt;GoDB Features&lt;br /&gt;&lt;br /&gt;    * Works on all handheld platforms - WindowsCE, Symbian and Linux.&lt;br /&gt;    * Special Field for Signature Capture , Lookup Tables Grids etc.&lt;br /&gt;    * Complete RDBMS with ANSI SQL-92 engine included.&lt;br /&gt;    * GBasic Scripting language for developing business logic in the forms.&lt;br /&gt;    * GBasic is tightly integrated with the RDBMS and the Browser, so&lt;br /&gt;      reports can be generated directly on the handheld.&lt;br /&gt;    * SmartSync allows only updated data to be synchronized.&lt;br /&gt;    * &gt; Data is compressed before transmission to save time and bandwidth.&lt;br /&gt;    * Scales with the platform. Start with a basic Device and scale to a Pocket PC Device for heavy-duty mobile applications**.&lt;br /&gt;      **Based on processing power, amount of memory and storage resources.&lt;br /&gt;    * Can use Dialup (Serial/IRDA), LAN(Ethernet), WLAN 802.11 and even SMS for communication.&lt;br /&gt;    * Optional GPS Nema parser for GPS and GIS Applications.&lt;br /&gt;    * Complete built-in support for printing to serial printers.&lt;br /&gt;    * Forms can be filled offline using offline master tables and can be posted online.&lt;br /&gt;    * Code and data gets distributed while synching.&lt;br /&gt;&lt;br /&gt;Browser Features&lt;br /&gt;&lt;br /&gt;Supports all critical browser tags. All the fields can be dynamically positioned anywhere on the page using GBasic scripting.Following GUI controls are supported&lt;br /&gt;&lt;br /&gt;    * Text data.&lt;br /&gt;    * Labels.&lt;br /&gt;    * Textfields. (Editable text box for data entry)&lt;br /&gt;    * Password Fields.&lt;br /&gt;    * Listboxes.&lt;br /&gt;    * Radio buttons.&lt;br /&gt;    * Checkboxes.&lt;br /&gt;    * Read-only Fields.&lt;br /&gt;    * Date boxes with calendar lookup dialog.&lt;br /&gt;    * Button Fields.&lt;br /&gt;    * Submit Fields.&lt;br /&gt;    * Cancel Fields.&lt;br /&gt;    * Hidden Fields.&lt;br /&gt;    * Sign Boxes (For capturing signatures, doodles etc).&lt;br /&gt;    * Image Boxes (For displaying Jpg and Gif images).&lt;br /&gt;    * Polygon Boxes (For drawing polygons on the page).&lt;br /&gt;    * Lookup tables for populating related forms.&lt;br /&gt;    * Grids to view reports and related tables after joining.&lt;br /&gt;&lt;br /&gt;Field validators to validate empty fields, numeric fields, date fields etc are pre-built.&lt;br /&gt;All fields fully controllable via scripting.&lt;br /&gt;&lt;br /&gt;RDBMS Features&lt;br /&gt;&lt;br /&gt;    * Transaction support.&lt;br /&gt;    * ANSI SQL-92 support.&lt;br /&gt;    * Optimized to use very little memory without losing performance.&lt;br /&gt;    * GBasic commands to execute all RDBMS features.  &lt;br /&gt;&lt;br /&gt;SmartSync Features&lt;br /&gt;&lt;br /&gt;    * Uniform sync platform for all the PDAs.&lt;br /&gt;    * One click sync.&lt;br /&gt;    * Automatically identifies and updates only modified data.&lt;br /&gt;    * Multiuser sync rules can be customized.&lt;br /&gt;    * Multi-database connectivity.&lt;br /&gt;    * Can use any transport. Serial, IRDA, TCP/IP, Activesync (PocketPC).&lt;br /&gt;    * Data transfer is compressed to save online time and bandwidth during sync operations.&lt;br /&gt;    * Data is encrypted while syncing.&lt;br /&gt;    * Application DeploymApplication Deployment�Integrated into SmartSync.&lt;br /&gt;&lt;br /&gt;Scripting&lt;br /&gt;&lt;br /&gt;    * Compatible with standard Basic language, so no special training is required.&lt;br /&gt;    * Automatic garbage collection for variables.&lt;br /&gt;    * All the features of the browser and RDBMS can be scripted.&lt;br /&gt;    * Event driven programming.&lt;br /&gt;    * Add fields to forms dynamically.&lt;br /&gt;    * Position and animate fields at runtime.&lt;br /&gt;    * Extensions to handle RDBMS, graphics, form fields.&lt;br /&gt;    * Support for subroutines and libraries, so code can be reused easily.&lt;br /&gt;&lt;br /&gt;IDE&lt;br /&gt;&lt;br /&gt;    * Windows hosted IDE for development of applications.&lt;br /&gt;    * Simulators to simulate all the platforms.&lt;br /&gt;    * Source level debugger with breakpoints and watches for GBasic.&lt;br /&gt;    * Built-in source code versioning.&lt;br /&gt;    * On-Device debugging from IDE.&lt;br /&gt;    * Publish GoDB applications directly to GoDB Sync Server.&lt;br /&gt;    * Publish GoDB applications directly to devices, for on-device testing.&lt;br /&gt;    * Secure Remote Debugging.&lt;br /&gt;&lt;br /&gt;Value Proposition&lt;br /&gt;&lt;br /&gt;    * Develop rapidly – all components for business applications like forms, local RDBMS, Sync and scripting built-in.&lt;br /&gt;    * Develop once deploy anywhere – same code base for all the platforms from laptops to PDAs to smartphones.&lt;br /&gt;    * Develop End to End solutions – no third party Databases and sync engines required&lt;br /&gt;    * Very low development and maintenance costs. State of the art IDE with a simple scripting language that anyone can learn.&lt;br /&gt;    * Protect your investment by using the same code base for all platforms.&lt;br /&gt;    * Protect your software from hardware obsolescence – no need to rewrite your native application when the hardware is obsolete or when a new hardware/OS is introduced.&lt;br /&gt;    * Eliminate deployment issues by distribution your application through Sync Server.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Advantages of GoDB vs. Other Development Platform :&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Key Advantages of GoDB Over platforms like .Net, Code warrior, Appforge etc.&lt;br /&gt;&lt;br /&gt;Portability:&lt;br /&gt;The other platform applications works on specific devices like Wince/PocketPC or Palm or Linux devices. Hence applications are not portable to across platforms.&lt;br /&gt;&lt;br /&gt;External Component:&lt;br /&gt;In case of other platform separate licenses needs to be purchased for Embedded databases (SQL CE, Oracle lite). In case of GoDB, the Run time client has the embedded database (ANSI SQL Compatible).&lt;br /&gt;&lt;br /&gt;Form Factor:&lt;br /&gt;In other apps, Setting up complicated forms that have master lookups etc are complicated and needs a lot of code. In case of GoDB, as we use browser based Interface creating complicated scrolling forms is easy, in case of large forms the scroll buttons appears automatically. Fields for lookups auto populating transaction fields etc can be inserted into the form without the need for even a single line of code.&lt;br /&gt;&lt;br /&gt;Focus Target:&lt;br /&gt;Other platforms are for general-purpose application development. This means that most of the business application components should be coded from scratch. In case of GoDB as the focus in on business application so the UI widgets required for biz apps are already a part of GoDB and GoDB is also optimized for database operations like lookups, filters, reports etc making GoDB apps much faster than other comparable platforms.&lt;br /&gt;&lt;br /&gt;Application Size:&lt;br /&gt;Size of application Runtime increases with the additional features. GoDB has most of the features inbuilt.&lt;br /&gt;&lt;br /&gt;Code Distribution and Management:&lt;br /&gt;In case of other each time the application is changed, the application has to be installed on each device. How in case of GoDB application deployment happens during the Sync process.&lt;br /&gt;&lt;br /&gt;Sync Server:&lt;br /&gt;GoDB middleware comprises of the GoDB Sync server, which interfaces with the ERP and the Devices. It provides a GUI based facility to manager security and implement Server side Sync logic. In case of other platforms it has to be coded from scratch.&lt;br /&gt;&lt;br /&gt;Online - Offline:&lt;br /&gt;GoDB applications can transition between online and offline seamlessly and can also operate in hybrid modes where transactions can be online with offline masters. In other the applications have to be designed and coded from scratch to be online offline or a somewhere in between.&lt;br /&gt;&lt;br /&gt;Compression:&lt;br /&gt;GoDB comes with in-built compression technology, which compresses data up to 70% there by reducing the sync times between the device and the application.&lt;br /&gt;&lt;br /&gt;Database Compatibility:&lt;br /&gt;In case of non-GoDB based application, the Embedded RDBMS Requires the server version of the same RDBMS for eg Oracle lite requires Oracle on the server side. In case of GoDB it is compatible with SQL and Oracle.&lt;br /&gt;&lt;br /&gt;Transport Independent Synchronization:&lt;br /&gt;GoDB can sync over any medium from GPRS, WLAN to Dialup using SSL and VPN.&lt;br /&gt;&lt;br /&gt;Multi Lingual Support:&lt;br /&gt;GoDB has a Language abstraction layer built in. Due to this GoDB can support multiple languages with one screen. GoDB can also support languages, which are not natively supported by the Hardware.&lt;br /&gt;&lt;br /&gt;Power Management:&lt;br /&gt;GoDB has built in support for software power management. This enhances the battery life of the PDA while running the business application.&lt;br /&gt;&lt;br /&gt;Security:&lt;br /&gt;GoDB has built in support for security at various level like on Device, data transfer and server side. GoDB by defaults provides support for AES encryption; other third party encryption can also be supported. &lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_QDHj8MjF_LI/TPj-ArCALtI/AAAAAAAAAPY/JAirQpgwf8Q/s1600/ipad.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 312px;" src="http://1.bp.blogspot.com/_QDHj8MjF_LI/TPj-ArCALtI/AAAAAAAAAPY/JAirQpgwf8Q/s400/ipad.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5546462228611346130" /&gt;&lt;/a&gt;&lt;br /&gt;                                GoDB application running on iPad&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/94644964849764651-3757651616715118610?l=vpdejesus.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vpdejesus.blogspot.com/feeds/3757651616715118610/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://vpdejesus.blogspot.com/2010/12/great-news-for-iphone-and-android.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/94644964849764651/posts/default/3757651616715118610'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/94644964849764651/posts/default/3757651616715118610'/><link rel='alternate' type='text/html' href='http://vpdejesus.blogspot.com/2010/12/great-news-for-iphone-and-android.html' title='Great News for iPhone and Android Developers'/><author><name>Vincent Paul de Jesus</name><uri>http://www.blogger.com/profile/17390332765792775907</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://3.bp.blogspot.com/_QDHj8MjF_LI/SickN6SGOiI/AAAAAAAAAAM/euNq1B9omeg/S220/VPDJ.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_QDHj8MjF_LI/TPj-ArCALtI/AAAAAAAAAPY/JAirQpgwf8Q/s72-c/ipad.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-94644964849764651.post-2278531459883791827</id><published>2010-10-23T02:25:00.000-07:00</published><updated>2010-10-23T02:32:06.689-07:00</updated><title type='text'>MonoDroid for Android OS</title><content type='html'>Hey folks!!&lt;br /&gt;&lt;br /&gt;Have you heard lately about a software development tool for Android?? Well, Novell just recently announced the beta testing for their development tool for Android OS. They call it MonoDroid. Using this tool, you can develop applications for the Android OS using your familiar C# programming language. If you are a .Net Developer, well, this might be a good tool for you.&lt;br /&gt;&lt;br /&gt;You can check out MonoDroid on this &lt;a href="http://monodroid.net/"&gt;link&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_QDHj8MjF_LI/TMKrXwe_UnI/AAAAAAAAAPQ/sw6aFYeGK1U/s1600/MonoDroid.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 302px; height: 400px;" src="http://3.bp.blogspot.com/_QDHj8MjF_LI/TMKrXwe_UnI/AAAAAAAAAPQ/sw6aFYeGK1U/s400/MonoDroid.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5531171717004612210" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/94644964849764651-2278531459883791827?l=vpdejesus.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vpdejesus.blogspot.com/feeds/2278531459883791827/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://vpdejesus.blogspot.com/2010/10/monodroid-for-android-os.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/94644964849764651/posts/default/2278531459883791827'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/94644964849764651/posts/default/2278531459883791827'/><link rel='alternate' type='text/html' href='http://vpdejesus.blogspot.com/2010/10/monodroid-for-android-os.html' title='MonoDroid for Android OS'/><author><name>Vincent Paul de Jesus</name><uri>http://www.blogger.com/profile/17390332765792775907</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://3.bp.blogspot.com/_QDHj8MjF_LI/SickN6SGOiI/AAAAAAAAAAM/euNq1B9omeg/S220/VPDJ.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_QDHj8MjF_LI/TMKrXwe_UnI/AAAAAAAAAPQ/sw6aFYeGK1U/s72-c/MonoDroid.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-94644964849764651.post-3747887045958251212</id><published>2010-09-12T21:19:00.000-07:00</published><updated>2010-09-12T21:22:36.040-07:00</updated><title type='text'>Accenture is looking for IT Engineers</title><content type='html'>Accenture (Global IT Consulting Company), Philippines is looking for the following post:&lt;br /&gt;&lt;br /&gt;1. &lt;span style="font-weight:bold;"&gt;Korean Software Engineer&lt;/span&gt;:&lt;br /&gt;&lt;br /&gt;Utilize your analytical, problem solving and technical skills as part of a web-based software application development or maintenance project team. You may be assigned to several roles or specialize in one area of software application development such as analysis, design, development, testing or implementation.&lt;br /&gt;&lt;br /&gt;Requirements:&lt;br /&gt;&lt;br /&gt;Proficient in both English and Korean language&lt;br /&gt;&lt;br /&gt;I.T. EXPERIENCE IS NOT A MUST; CANDIDATE SHOULD BE WILLING TO BE TRAINED IN I.T.&lt;br /&gt;Interested in a career in software application development&lt;br /&gt;Strong competency in analysis, problem solving and organizing&lt;br /&gt;Ability to use PC applications such as MS Word, MS Excel and MS Powerpoint&lt;br /&gt;College Graduate, preferably of any IT or business course&lt;br /&gt;Individuals with experience in the IT industry, especially in PowerBuilder, C, UNIX C is a plus.&lt;br /&gt;&lt;br /&gt;2. &lt;span style="font-weight:bold;"&gt;Korean-English Translators&lt;/span&gt;:&lt;br /&gt;&lt;br /&gt;Take part in key IT projects where your role is to translate business and technical terminology either verbally or through documentation as a liaison between English-speaking and Korean-speaking stakeholders.&lt;br /&gt;&lt;br /&gt;Requirements:&lt;br /&gt;&lt;br /&gt;Proficient in both English and Korean language&lt;br /&gt;Ability to use PC applications such as MS Word, MS Excel and MS Powerpoint&lt;br /&gt;Ability and interest to learn business and technical terminologies&lt;br /&gt;Ability to work with teams and diverse range of people&lt;br /&gt;&lt;br /&gt;3. &lt;span style="font-weight:bold;"&gt;Associate Software Engineers&lt;/span&gt; (FRESH IT GRADUATES from 2008 up to present)&lt;br /&gt;&lt;br /&gt;As an Associate Software Engineer, you are expected to contribute your skills in the development, delivery and management of technology-based business solutions via coding, testing and implementation for configuration changes and provide desired input in the design of software applications to meet both functional and technical requirements.&lt;br /&gt;&lt;br /&gt;Requirements:&lt;br /&gt;&lt;br /&gt;• Must possess a University Bachelor’s degree in Computer Science, Information Technology, Engineering or similar discipline with good academic records with reputable CS/IT programs.&lt;br /&gt;• Project Management Skills&lt;br /&gt;• Has strong sense of ownership with a passion for contribution in delivering quality software.&lt;br /&gt;• With excellent leadership skills (pro-actively participating with different trainings and seminars – I.T related)&lt;br /&gt;• Competitive and Flexible, amenable to rotating shift schedule including weekends and holidays.&lt;br /&gt;• Analytical / Problem Solving / Logical Skills being able to share innovative ideas and concepts with high level of Integrity.&lt;br /&gt;• Must possess excellent communication, organizational and interpersonal skills and the ability to work with clients, development team, business team, senior managers and other team members.&lt;br /&gt;• Good Technical Writing Skills&lt;br /&gt;&lt;br /&gt;To apply, please register your resume at &lt;a href="http://www.worldstopjobs.com"&gt;http://www.worldstopjobs.com&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/94644964849764651-3747887045958251212?l=vpdejesus.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vpdejesus.blogspot.com/feeds/3747887045958251212/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://vpdejesus.blogspot.com/2010/09/accenture-is-looking-for-it-engineers.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/94644964849764651/posts/default/3747887045958251212'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/94644964849764651/posts/default/3747887045958251212'/><link rel='alternate' type='text/html' href='http://vpdejesus.blogspot.com/2010/09/accenture-is-looking-for-it-engineers.html' title='Accenture is looking for IT Engineers'/><author><name>Vincent Paul de Jesus</name><uri>http://www.blogger.com/profile/17390332765792775907</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://3.bp.blogspot.com/_QDHj8MjF_LI/SickN6SGOiI/AAAAAAAAAAM/euNq1B9omeg/S220/VPDJ.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-94644964849764651.post-6488210117578068799</id><published>2010-08-10T08:31:00.000-07:00</published><updated>2010-08-10T09:07:38.557-07:00</updated><title type='text'>A very useful Code Generation Tool for .Net Developers</title><content type='html'>For those of you wanting to have a code generation tool from your designed specific model, there's an open source Model-Driven Development code generation framework available for free called Sculpture. &lt;br /&gt;&lt;br /&gt;From its official description in Codeplex:&lt;br /&gt;&lt;br /&gt;What is Sculpture?&lt;br /&gt;&lt;br /&gt;    * Sculpture is a .NET open source Model-Driven Development code generation framework ideal for creating and managing .NET Enterprise Applications.&lt;br /&gt;    * With Sculpture you can model your application components, and then transform this model to deployable components with your favorite technology.&lt;br /&gt;    * Sculpture comes with a host of ready-made Molds (The word “Molds” comes from Molding) like (DAAB, NHibernate, LINQ, CSLA, WCF, ASMX, Windows forms, WPF, Silverlight, ASP.NET, &amp; ASP.NET MVC).&lt;br /&gt;    * Sculpture provides starter kit wizard enables choosing among available technologies to start your project with all layers in no time.&lt;br /&gt;    * Sculpture doesn't force you to adhere to a specific architecture, it contains a guidance package for building your own Mold or customizes existing ones. If you have a custom architecture, using this guidance package you can build a custom code generator with your favorite technology.&lt;br /&gt;    * Sculpture can generate any kind of text output using templates (source code, database scripts, web pages, XML, configuration files, etc.).&lt;br /&gt;    * Sculpture takes you to the next level of abstraction by separating the problem from the implementation technology.&lt;br /&gt;    * Sculpture takes you to the domain specific programming by adding your specifications to the model environment and the generated code.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_QDHj8MjF_LI/TGFyCZU8YyI/AAAAAAAAAO4/eEQlGnSLm0g/s1600/Sculpture.GIF"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 145px;" src="http://1.bp.blogspot.com/_QDHj8MjF_LI/TGFyCZU8YyI/AAAAAAAAAO4/eEQlGnSLm0g/s400/Sculpture.GIF" border="0" alt=""id="BLOGGER_PHOTO_ID_5503805605107491618" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Sculpture is divided into:&lt;br /&gt;&lt;br /&gt;    * Sculpture Core Engine: it is a platform that hosts the molds, takes care of making all the Molds work together. It includes the model designer, mold discovery and loader, generic validation engine, generic code generation engine, command holder, and editor controls holder.&lt;br /&gt;    * Mold: The primary plug-in of the Sculpture framework, with molds you can extend all the power of Sculpture to manage the model and the produced code as your needs, molds provide the ability to process model elements.&lt;br /&gt;&lt;br /&gt;Ready-made Molds:&lt;br /&gt;&lt;br /&gt;    * For Data Source Layer:&lt;br /&gt;          o SQL Server.&lt;br /&gt;    * For Data Access Layer:&lt;br /&gt;          o DAAB (Data Access Application Block).&lt;br /&gt;          o NHibernate.&lt;br /&gt;          o LINQ to SQL.&lt;br /&gt;          o CSLA framework.&lt;br /&gt;    * For Service Layer:&lt;br /&gt;          o Service Library.&lt;br /&gt;          o ASMX (ASP.NET Web Service).&lt;br /&gt;          o WCF (Windows Communication Foundation).&lt;br /&gt;    * For User Interface Layer:&lt;br /&gt;          o Windows Forms.&lt;br /&gt;          o WPF (Windows Presentation Foundation)&lt;br /&gt;          o Silverlight.&lt;br /&gt;          o ASP.NET.&lt;br /&gt;          o ASP.NET MVC.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_QDHj8MjF_LI/TGFyVyILnjI/AAAAAAAAAPA/MOP8wHP2ons/s1600/img_2.GIF"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 310px;" src="http://2.bp.blogspot.com/_QDHj8MjF_LI/TGFyVyILnjI/AAAAAAAAAPA/MOP8wHP2ons/s400/img_2.GIF" border="0" alt=""id="BLOGGER_PHOTO_ID_5503805938182364722" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Why Sculpture?&lt;br /&gt;&lt;br /&gt;    * Sculpture does not come to the world to become another CRUD code generation tool, but the essence of it is allowing the developers to model all of the application components and rapidly get it on real application.&lt;br /&gt;    * Sculpture gives you permanent preview to your application, the model can be easily updated in any application life cycle phase and see the reflections of these changes immediately.&lt;br /&gt;    * The model gives you the control of tenuous details in your application, plus that you can extend it to meet your needs.&lt;br /&gt;    * The pluggable environment of Sculpture enables Hugh amount of customizations. (For more information see Customize Sculpture screencast).&lt;br /&gt;    * SQL Server Mold has reverse engineering engine that parses the database and translates it to model, so you can start your project from the database, additionally any updates in the database schema can reflect on the model easily without losing any metadata.&lt;br /&gt;    * Unlike many other code generation engines Sculpture generates as possible simple and readable code, no complex structures, organized, tested, follows Microsoft best practice, and easy to understand and tweak code, plus giving you the pleasure when you try to write your custom code side by side the generated one. (For more information see Introduction to Sculpture screencast).&lt;br /&gt;    * Sculpture provides ready-to-use Molds for common enterprise architectures (DAAB, NHibernate, LINQ, CSLA, WCF, ASMX, Windows forms, WPF, Silverlight, ASP.NET, &amp; ASP.NET MVC).&lt;br /&gt;    * Sculpture has its validation engine where the model can be validated, that will decrease the cost of fetching errors (with Molds you can write custom validations to the Model).&lt;br /&gt;    * Sculpture developed by Domain-Specific Language (DSL), so:&lt;br /&gt;          o It integrates with visual studio.&lt;br /&gt;          o No need for any external tool.&lt;br /&gt;          o Very easy to use and understand the whole development cycle.&lt;br /&gt;          o Familiar by all .NET developers.&lt;br /&gt;    * Sculpture is not all-or-nothing, for example you can use Sculpture to generates some html reports needed in your application.&lt;br /&gt;    * Sculpture developed by professional team belongs to Dawliasoft, there will be a full support in the discussion and issue tracker, and a premium support will be available in the near future.&lt;br /&gt;    * Sculpture provides a comprehensive Help (Videos &amp; Documentation), which can be used as quick start and to get the overall structure of the framework.&lt;br /&gt;&lt;br /&gt;To download the tool, please click &lt;a href="http://www.dawliasoft.com/"&gt;here&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/94644964849764651-6488210117578068799?l=vpdejesus.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vpdejesus.blogspot.com/feeds/6488210117578068799/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://vpdejesus.blogspot.com/2010/08/very-useful-code-generation-tool-for.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/94644964849764651/posts/default/6488210117578068799'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/94644964849764651/posts/default/6488210117578068799'/><link rel='alternate' type='text/html' href='http://vpdejesus.blogspot.com/2010/08/very-useful-code-generation-tool-for.html' title='A very useful Code Generation Tool for .Net Developers'/><author><name>Vincent Paul de Jesus</name><uri>http://www.blogger.com/profile/17390332765792775907</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://3.bp.blogspot.com/_QDHj8MjF_LI/SickN6SGOiI/AAAAAAAAAAM/euNq1B9omeg/S220/VPDJ.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_QDHj8MjF_LI/TGFyCZU8YyI/AAAAAAAAAO4/eEQlGnSLm0g/s72-c/Sculpture.GIF' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-94644964849764651.post-6272981235581071895</id><published>2010-08-10T05:09:00.000-07:00</published><updated>2010-08-10T05:15:57.225-07:00</updated><title type='text'>I had a tiring day today</title><content type='html'>Whew!! I had a tiring day today. I spent a lot of hours figuring out what's the best option in designing a good main menu for ASP.Net. I told my employer that the best way is to have a Master Page with the Telerik controls but apparently the existing design of the site was not in MasterPage/Child's Page design. So, I have to follow the existing design and just change the menu into new RadMenu control from Telerik. I hope it turned out right today. :-)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/94644964849764651-6272981235581071895?l=vpdejesus.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vpdejesus.blogspot.com/feeds/6272981235581071895/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://vpdejesus.blogspot.com/2010/08/i-had-tiring-day-today.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/94644964849764651/posts/default/6272981235581071895'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/94644964849764651/posts/default/6272981235581071895'/><link rel='alternate' type='text/html' href='http://vpdejesus.blogspot.com/2010/08/i-had-tiring-day-today.html' title='I had a tiring day today'/><author><name>Vincent Paul de Jesus</name><uri>http://www.blogger.com/profile/17390332765792775907</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://3.bp.blogspot.com/_QDHj8MjF_LI/SickN6SGOiI/AAAAAAAAAAM/euNq1B9omeg/S220/VPDJ.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-94644964849764651.post-1899447576773894705</id><published>2010-08-02T06:01:00.000-07:00</published><updated>2010-08-02T06:37:16.238-07:00</updated><title type='text'>The Best Top Ten Ways To Earn Money With your Blog and Websites</title><content type='html'>&lt;a href="http://www.revresponse.com/"&gt;RevResponse&lt;/a&gt; is a premiere business-focused ad network that goes beyond banner-styled advertisements. As a publisher, you can offer FREE relevant business content that you give away to your audience while making money!&lt;br /&gt;&lt;br /&gt;RevResponse is a pay-per lead program with high payouts. Every qualified lead&lt;br /&gt;generated earns you a minimum payout of $1.50 and up to $20.00. Select offers&lt;br /&gt;from over 33+ industry categories.&lt;br /&gt;&lt;br /&gt;Many ad networks and affiliate programs only give you banners or text links for your website promotions. We do that too, but we don’t stop there. With RevResponse, every corner of the online world becomes a potential revenue source and we give you the tools to make it happen.&lt;br /&gt;&lt;br /&gt;Here are the top 10 ways to make money with RevResponse:&lt;br /&gt;&lt;br /&gt;1. Monetize Your Blog Posts&lt;br /&gt;2. Cash In On Your Site Content&lt;br /&gt;3. Drive Traffic To Your Co-branded Content Resource Center&lt;br /&gt;4. Promote With E-Newsletter Inclusions&lt;br /&gt;5. Optimize Your Opt-in Mailing List&lt;br /&gt;6. Monetize Your Site Communications&lt;br /&gt;7. Leverage Your Social Networking Sites&lt;br /&gt;8. Create Promotions Using RevResponse RSS Feeds&lt;br /&gt;9. Place An Ad Widget On Your Site&lt;br /&gt;10. Refer New RevResponse Partners&lt;br /&gt;&lt;br /&gt;As a RevResponse affiliate, I was able to acquire a lot of money from this business. So don't wait too long and have your site monetized by RevResponse. You'll earn more having this than with Google Adsense and any other program.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_QDHj8MjF_LI/TFbJ8oOUE_I/AAAAAAAAANw/58fjF25xyKA/s1600/RevResponse.gif"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 250px; height: 250px;" src="http://3.bp.blogspot.com/_QDHj8MjF_LI/TFbJ8oOUE_I/AAAAAAAAANw/58fjF25xyKA/s400/RevResponse.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5500806038306427890" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;To learn more, kindly download the ebook on this &lt;a href="http://www.revresponse.com/top10.html"&gt;link&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/94644964849764651-1899447576773894705?l=vpdejesus.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vpdejesus.blogspot.com/feeds/1899447576773894705/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://vpdejesus.blogspot.com/2010/08/best-top-ten-ways-to-earn-money-with.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/94644964849764651/posts/default/1899447576773894705'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/94644964849764651/posts/default/1899447576773894705'/><link rel='alternate' type='text/html' href='http://vpdejesus.blogspot.com/2010/08/best-top-ten-ways-to-earn-money-with.html' title='The Best Top Ten Ways To Earn Money With your Blog and Websites'/><author><name>Vincent Paul de Jesus</name><uri>http://www.blogger.com/profile/17390332765792775907</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://3.bp.blogspot.com/_QDHj8MjF_LI/SickN6SGOiI/AAAAAAAAAAM/euNq1B9omeg/S220/VPDJ.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_QDHj8MjF_LI/TFbJ8oOUE_I/AAAAAAAAANw/58fjF25xyKA/s72-c/RevResponse.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-94644964849764651.post-2933740122832530246</id><published>2010-07-22T19:42:00.001-07:00</published><updated>2010-07-22T19:44:52.549-07:00</updated><title type='text'>Silverlight Developers needed in Seychelles...</title><content type='html'>Attention all Filipino .Net Software Developers. A big company in Seychelles needs Silverlight Developers (C#). It's a direct hiring opportunity, free accomodation and bonuses. Please contact my friend James Mangubat on this email - jimmic232920@yahoo.com or search him on Facebook and contact him there.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/94644964849764651-2933740122832530246?l=vpdejesus.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vpdejesus.blogspot.com/feeds/2933740122832530246/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://vpdejesus.blogspot.com/2010/07/silverlight-developers-needed-in.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/94644964849764651/posts/default/2933740122832530246'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/94644964849764651/posts/default/2933740122832530246'/><link rel='alternate' type='text/html' href='http://vpdejesus.blogspot.com/2010/07/silverlight-developers-needed-in.html' title='Silverlight Developers needed in Seychelles...'/><author><name>Vincent Paul de Jesus</name><uri>http://www.blogger.com/profile/17390332765792775907</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://3.bp.blogspot.com/_QDHj8MjF_LI/SickN6SGOiI/AAAAAAAAAAM/euNq1B9omeg/S220/VPDJ.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-94644964849764651.post-6078169640055647628</id><published>2010-07-21T00:54:00.000-07:00</published><updated>2010-07-21T00:58:45.372-07:00</updated><title type='text'>Model-View-ViewModel Design Pattern for Silverlight and WPF</title><content type='html'>I have been looking lately for some good article about MVVM design pattern for developing Silverlight and Windows Presentation Foundation application. Understanding the pattern is not an easy task but somehow we have to if we want to update ourselves with new technologies and want to be the best software developer out there. &lt;br /&gt;&lt;br /&gt;I have found this good article from MSDN. Hope you'll be able to learn MVVM design pattern and get a good start at this - h&lt;a href="http://msdn.microsoft.com/en-us/magazine/ff798279.aspx"&gt;ttp://msdn.microsoft.com/en-us/magazine/ff798279.aspx&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/94644964849764651-6078169640055647628?l=vpdejesus.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vpdejesus.blogspot.com/feeds/6078169640055647628/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://vpdejesus.blogspot.com/2010/07/model-view-viewmodel-design-pattern-for.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/94644964849764651/posts/default/6078169640055647628'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/94644964849764651/posts/default/6078169640055647628'/><link rel='alternate' type='text/html' href='http://vpdejesus.blogspot.com/2010/07/model-view-viewmodel-design-pattern-for.html' title='Model-View-ViewModel Design Pattern for Silverlight and WPF'/><author><name>Vincent Paul de Jesus</name><uri>http://www.blogger.com/profile/17390332765792775907</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://3.bp.blogspot.com/_QDHj8MjF_LI/SickN6SGOiI/AAAAAAAAAAM/euNq1B9omeg/S220/VPDJ.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-94644964849764651.post-7478725538902288873</id><published>2010-07-11T04:29:00.000-07:00</published><updated>2010-10-03T22:14:03.585-07:00</updated><title type='text'>What Online Job Sites can offer to Job Applicants and Employers</title><content type='html'>With the advent of the new technology, more and more websites are offering services for human resources. These websites are really getting into the lives of people since hundreds or thousands of people have found their “bread and butter” from these job sites. Smart applicants today just post their resume online and seek jobs that are relevant with their qualifications. The same way as employers who are posting their job vacancies online for the purpose of seeking qualified applicants. Online job sites are the new venue for evaluating, hiring employees and finding the best employer out there.&lt;br /&gt;&lt;br /&gt;Finding job sites that suit my needs as a job seeker made me decide of designing and developing my own job site. With this, the World’s Top Jobs website was born. It’s a simple website that offers job applicants with resume posting, searching of job vacancies, and more. On the other hand, employers can register for free and post their job vacancies. They can find resumes, contact job applicants, and hire the most qualified for their requirement.&lt;br /&gt;&lt;br /&gt;So, for job applicants and employers, post your resume to find available positions that suit your qualifications and hire the qualified applicants that is a best fit with your requirement. Visit &lt;a href="http://www.worldstopjobs.com"&gt;World’s Top Jobs&lt;/a&gt; for your needs.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/94644964849764651-7478725538902288873?l=vpdejesus.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vpdejesus.blogspot.com/feeds/7478725538902288873/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://vpdejesus.blogspot.com/2010/07/what-online-job-sites-can-offer-to-job.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/94644964849764651/posts/default/7478725538902288873'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/94644964849764651/posts/default/7478725538902288873'/><link rel='alternate' type='text/html' href='http://vpdejesus.blogspot.com/2010/07/what-online-job-sites-can-offer-to-job.html' title='What Online Job Sites can offer to Job Applicants and Employers'/><author><name>Vincent Paul de Jesus</name><uri>http://www.blogger.com/profile/17390332765792775907</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://3.bp.blogspot.com/_QDHj8MjF_LI/SickN6SGOiI/AAAAAAAAAAM/euNq1B9omeg/S220/VPDJ.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-94644964849764651.post-6248996420137567263</id><published>2010-04-08T21:58:00.000-07:00</published><updated>2010-04-08T22:00:52.089-07:00</updated><title type='text'>Best Tutorials and Source Code for Microsoft .Net</title><content type='html'>Hey guyz!&lt;br /&gt;&lt;br /&gt;If you want some tutorials for Microsoft .Net programming, please visit my website by clicking this link - &lt;a href="http://vpdejesus.tech.officelive.com/SourceCode.aspx"&gt;http://vpdejesus.tech.officelive.com/SourceCode.aspx&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;You can download source code and find best and clear tutorials on .Net.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/94644964849764651-6248996420137567263?l=vpdejesus.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vpdejesus.blogspot.com/feeds/6248996420137567263/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://vpdejesus.blogspot.com/2010/04/best-tutorials-and-source-code-for.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/94644964849764651/posts/default/6248996420137567263'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/94644964849764651/posts/default/6248996420137567263'/><link rel='alternate' type='text/html' href='http://vpdejesus.blogspot.com/2010/04/best-tutorials-and-source-code-for.html' title='Best Tutorials and Source Code for Microsoft .Net'/><author><name>Vincent Paul de Jesus</name><uri>http://www.blogger.com/profile/17390332765792775907</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://3.bp.blogspot.com/_QDHj8MjF_LI/SickN6SGOiI/AAAAAAAAAAM/euNq1B9omeg/S220/VPDJ.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-94644964849764651.post-5358530480953902536</id><published>2010-04-03T07:31:00.000-07:00</published><updated>2010-04-03T07:42:56.410-07:00</updated><title type='text'>Good Library for Multimedia Application Development in .Net</title><content type='html'>Hi everyone!&lt;br /&gt;&lt;br /&gt;I haven't updated this blog lately and so this post.&lt;br /&gt;&lt;br /&gt;I am planning to develop a simple multimedia application using Microsoft .Net and have found a useful library using Microsoft DirectShow's functionality. Follow this &lt;a href="http://directshownet.sourceforge.net/about.html"&gt;link&lt;/a&gt; to read more information and download some of the examples and the library itself. :-)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/94644964849764651-5358530480953902536?l=vpdejesus.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vpdejesus.blogspot.com/feeds/5358530480953902536/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://vpdejesus.blogspot.com/2010/04/good-library-for-media-development-net.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/94644964849764651/posts/default/5358530480953902536'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/94644964849764651/posts/default/5358530480953902536'/><link rel='alternate' type='text/html' href='http://vpdejesus.blogspot.com/2010/04/good-library-for-media-development-net.html' title='Good Library for Multimedia Application Development in .Net'/><author><name>Vincent Paul de Jesus</name><uri>http://www.blogger.com/profile/17390332765792775907</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://3.bp.blogspot.com/_QDHj8MjF_LI/SickN6SGOiI/AAAAAAAAAAM/euNq1B9omeg/S220/VPDJ.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-94644964849764651.post-7218181728135490074</id><published>2009-12-20T23:54:00.000-08:00</published><updated>2009-12-29T07:38:11.027-08:00</updated><title type='text'>Ranking Higher in Search Engines</title><content type='html'>By: &lt;a href="http://vpdejesus.tech.officelive.com"&gt;Vincent Paul P. de Jesus&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;There are many ways of doing search engine optimization and the outcome will be based from the strategies used. Many SEO (Search Engine Optimization) service companies develop their own standards and strategies for giving the best results for their clients. Some companies failed to give the valuable results anticipated by their clients since they are not doing the right way of implementing best SEO strategies. But what are really best strategies for SEO implementation?  &lt;br /&gt; &lt;br /&gt;In this article, we are going to outline some of the best practices for SEO (Search Engine Optimization) available today.  Some of which was a model developed by Orange County SEO Expert, Steve Wiideman. He called the model the Four Layers of SEO Model. In this model, four steps are being followed.  These are Analyze, Optimize, Develop and Promote.&lt;br /&gt;&lt;br /&gt;In the Analyze model, this is the time spent on evaluating keywords and peeking on competitor’s game book, which includes backlink checks on competitor website. This layer contains two parts namely: Keywords and Competition. These parts play a very important role in discovering what needs to be done on your website to get better results in search engine ranking.&lt;br /&gt;&lt;br /&gt;In the Optimize model, this is to design the website that guides the search engines to topic-discovery, rather than having the search engines make their own guess about what your website is about. This layer involves a handful of common SEO best practices that definitely makes a difference. &lt;br /&gt;&lt;br /&gt;Also in this model is the involvement of using the right keywords, in the right locations, and in the right densities. Creating source codes that is intuitive to the search engine robots is also needed. This boils down to a much simpler idea and that is only displaying what you want them to see by hiding programming and formatting as much as possible. It’s here that you leverage the result from the Analyze layer and where you will be setting the foundation for the next layer called the Develop Layer. Thus, making this model as one of the best key in implementing SEO strategies for websites.&lt;br /&gt;&lt;br /&gt;In the Develop model, this is by far the most technical part of the four layers. This is a great method of maintaining your ranking without spending extra time on the next layer. This is both for your visitors and for the search engines as well. Visitors of your website will find it very appealing and refreshing if they find new content on your site that can give them vital and up-to-date information for good references.  It is in this layer that impresses search engines, because it increases your keyword densities, provides a fresh content for web crawlers and heightens your relevancy.&lt;br /&gt;&lt;br /&gt;There are ways in the Develop model that are very effective in implementing your SEO strategies. Some of the ways are providing SSI (Server Side Includes) and dynamic contents for your site’s page, install an integrated Affiliate System to pay visitors for sharing your website, automating your search engine sitemap, adding RSS (Really Simple Syndication) for others to borrow content and to pull content from other sites, including blogs and web forums to feed fresh content to search engine spiders, install web analytics via software or online provider. These ways will open several opportunities for search engines like Google to feed on dynamic content and adds another level of professionalism to the efficiency and functionality of your website, which will retain and acquire constant visitors for your site.&lt;br /&gt;&lt;br /&gt;The last layer of the model is called the Promote model. It is in this critical layer that you will get a few high-quality links pointing to your website. Apart from doing all SEO practices from the previous first three (3) layers of this model, this last layer is also of extreme importance and not to be disregarded.  Your website will still be far from search engine ranking if you don’t spend time with it on the site’s promotion. It is in this layer that you develop a strategy to drive a continuous traffic for your website. Ways of implementing these strategies is Link Development through blogs, forums, online directories, social networking communities, link programs, affiliate programs, etc., E-mail Marketing by adding signup form to your website, Press Releases to inform and invite visitors for your site, and many more.  By developing the strategies of this layer, it would usually take you months or even a year of implementation to take and gain the best results. &lt;br /&gt;&lt;br /&gt;The breakdown of the strategies for this last model would take you several days to put together.  It also involves an amount of planning on your side.&lt;br /&gt;&lt;br /&gt;The Promotion model is by far the most effective way of driving traffic to your site that gives it long-term effectiveness in having constant visitors for your website.  There are many ways for website promotion and Link Development is on the top list in providing a relative huge amount of traffic for your site.  Other methods are also very vital and should not be disregarded for it adds up to the marketing strategy of your site.&lt;br /&gt;&lt;br /&gt;The four layers of SEO model is an effective way of obtaining the best results for your website’s search engine ranking and might even take you on that Rank #1 spot if rightfully implemented.&lt;br /&gt;&lt;br /&gt;Search Engine Optimization is not a technology that is hardly unachievable, all it needs is a right strategy and proper implementation and planning of its guidelines.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/94644964849764651-7218181728135490074?l=vpdejesus.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vpdejesus.blogspot.com/feeds/7218181728135490074/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://vpdejesus.blogspot.com/2009/12/ranking-higher-in-search-engines.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/94644964849764651/posts/default/7218181728135490074'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/94644964849764651/posts/default/7218181728135490074'/><link rel='alternate' type='text/html' href='http://vpdejesus.blogspot.com/2009/12/ranking-higher-in-search-engines.html' title='Ranking Higher in Search Engines'/><author><name>Vincent Paul de Jesus</name><uri>http://www.blogger.com/profile/17390332765792775907</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://3.bp.blogspot.com/_QDHj8MjF_LI/SickN6SGOiI/AAAAAAAAAAM/euNq1B9omeg/S220/VPDJ.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-94644964849764651.post-7169231733866838813</id><published>2009-12-01T00:25:00.000-08:00</published><updated>2009-12-01T00:42:54.570-08:00</updated><title type='text'>Best Internet Browser of Today</title><content type='html'>Internet Browser plays an important role for users of internet. We have a very good competition as to the speed, reliability, security, etc. of the browsers use for surfing the internet. My top 3 browsers are the following:&lt;br /&gt;&lt;br /&gt;1. &lt;a href="http://www.google.com/chrome"&gt;Google Chrome&lt;/a&gt;&lt;br /&gt; &lt;br /&gt;   Although this browser is new and still under Beta, I rank it under at No. 1 because of its simplicity, ease of use and lightning fast speed of loading websites. I tried loading the same site with other browsers but this one is the fastest, HANDS DOWN!&lt;br /&gt;&lt;br /&gt;2. &lt;a href="http://www.mozilla.com/en-US/firefox/personal.html"&gt;Mozilla Firefox&lt;br /&gt;&lt;/a&gt;&lt;br /&gt;   This browser has been stable and have been used for years already. This is fast, secured and has lots of features too. I ranked this at No. 2 simply because it is next to Chrome in speed. :-)&lt;br /&gt;&lt;br /&gt;3. &lt;a href="http://www.microsoft.com/windows/Internet-explorer/default.aspx"&gt;Microsoft Internet Explorer&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;   This browser has been used by the many users worldwide but I settle this to No. 3 since it's a bit slow when loading websites. Security is okay but not that good. Microsoft has redesigned this one in their new version. I'm still using this from time to time especially when developing Web projects under .Net technology.&lt;br /&gt;&lt;br /&gt;4. &lt;a href="http://www.apple.com/safari/"&gt;Apple Safari&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;   I seldom use this browser so I settle this at No. 4. I haven't tested the whole feature of this browser but I think this is a good alternative.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/94644964849764651-7169231733866838813?l=vpdejesus.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vpdejesus.blogspot.com/feeds/7169231733866838813/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://vpdejesus.blogspot.com/2009/12/best-internet-browser-of-today.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/94644964849764651/posts/default/7169231733866838813'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/94644964849764651/posts/default/7169231733866838813'/><link rel='alternate' type='text/html' href='http://vpdejesus.blogspot.com/2009/12/best-internet-browser-of-today.html' title='Best Internet Browser of Today'/><author><name>Vincent Paul de Jesus</name><uri>http://www.blogger.com/profile/17390332765792775907</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://3.bp.blogspot.com/_QDHj8MjF_LI/SickN6SGOiI/AAAAAAAAAAM/euNq1B9omeg/S220/VPDJ.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-94644964849764651.post-4553193014795982685</id><published>2009-11-06T02:08:00.000-08:00</published><updated>2009-11-06T04:09:45.346-08:00</updated><title type='text'>"Achieving Efficient Governance, Risk and Compliance (GRC) for Financial Services through Process and Automation"</title><content type='html'>A low-risk, high-impact approach to gaining control of regulatory compliance before it overwhelms a financial institution.&lt;br /&gt;&lt;br /&gt;Now more than ever, financial institutions are struggling to comply with regulations and manage the risks and penalties of failing to operate within the rules. Establishing, maintaining and proving compliance requires both money and time that executives would rather invest in top-line growth. The myriad of procedures, tasks, and behaviors that bear upon compliance can be overwhelming. Yet financial institutions that can master the management all of these activities—and demonstrate that they have done it—operate more efficiently, compete more effectively, and build their brands and good names in the marketplace. Fortunately, newly available software platforms that have become known as Governance, Risk, and Compliance (GRC) technologies can help. This white paper discusses the drivers behind the growing awareness of GRC information technology and introduces the elements of an effective automated GRC system.&lt;br /&gt;&lt;br /&gt;Offered Free by: Epicor Software Corporation &lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_QDHj8MjF_LI/SvP12O-67LI/AAAAAAAAAJ8/hspapwVrER4/s1600-h/Epicor.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 108px; height: 145px;" src="http://4.bp.blogspot.com/_QDHj8MjF_LI/SvP12O-67LI/AAAAAAAAAJ8/hspapwVrER4/s400/Epicor.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5400930690231102642" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Subscribe for free &lt;a href="http://vpdejesus-blogspot.tradepub.com/free/w_epic23/"&gt;here&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/94644964849764651-4553193014795982685?l=vpdejesus.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vpdejesus.blogspot.com/feeds/4553193014795982685/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://vpdejesus.blogspot.com/2009/11/achieving-efficient-governance-risk-and.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/94644964849764651/posts/default/4553193014795982685'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/94644964849764651/posts/default/4553193014795982685'/><link rel='alternate' type='text/html' href='http://vpdejesus.blogspot.com/2009/11/achieving-efficient-governance-risk-and.html' title='&quot;Achieving Efficient Governance, Risk and Compliance (GRC) for Financial Services through Process and Automation&quot;'/><author><name>Vincent Paul de Jesus</name><uri>http://www.blogger.com/profile/17390332765792775907</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://3.bp.blogspot.com/_QDHj8MjF_LI/SickN6SGOiI/AAAAAAAAAAM/euNq1B9omeg/S220/VPDJ.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_QDHj8MjF_LI/SvP12O-67LI/AAAAAAAAAJ8/hspapwVrER4/s72-c/Epicor.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-94644964849764651.post-4039612888670119481</id><published>2009-11-06T01:59:00.000-08:00</published><updated>2009-11-06T02:04:21.032-08:00</updated><title type='text'>"Customer Relationship Management: Secrets to CRM Success"</title><content type='html'>Learn how Microsoft Dynamics® Customer Relationship Management (CRM) can help you develop profitable customer relationships.&lt;br /&gt;&lt;br /&gt;Find out how you can convert your pains into profit. Microsoft Dynamics CRM uses lead and opportunity management, incident management and a searchable knowledgebase. CRM also makes use of reporting tools for accurate forecasting, measurement of business activity, and employee performance. This webcast is your key to learning the secrets of Microsoft Dynamics CRM success.&lt;br /&gt;&lt;br /&gt;Offered Free by: Microsoft Corporation &lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_QDHj8MjF_LI/SvP0ayceOwI/AAAAAAAAAJ0/2c6ARENqn4k/s1600-h/CRM.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 107px; height: 143px;" src="http://3.bp.blogspot.com/_QDHj8MjF_LI/SvP0ayceOwI/AAAAAAAAAJ0/2c6ARENqn4k/s400/CRM.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5400929119202327298" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Subscribe for free &lt;a href="http://vpdejesus-blogspot.tradepub.com/free/w_msf75/"&gt;here&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/94644964849764651-4039612888670119481?l=vpdejesus.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vpdejesus.blogspot.com/feeds/4039612888670119481/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://vpdejesus.blogspot.com/2009/11/customer-relationship-management.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/94644964849764651/posts/default/4039612888670119481'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/94644964849764651/posts/default/4039612888670119481'/><link rel='alternate' type='text/html' href='http://vpdejesus.blogspot.com/2009/11/customer-relationship-management.html' title='&quot;Customer Relationship Management: Secrets to CRM Success&quot;'/><author><name>Vincent Paul de Jesus</name><uri>http://www.blogger.com/profile/17390332765792775907</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://3.bp.blogspot.com/_QDHj8MjF_LI/SickN6SGOiI/AAAAAAAAAAM/euNq1B9omeg/S220/VPDJ.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_QDHj8MjF_LI/SvP0ayceOwI/AAAAAAAAAJ0/2c6ARENqn4k/s72-c/CRM.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-94644964849764651.post-8170401481846543672</id><published>2009-11-06T01:52:00.000-08:00</published><updated>2009-11-06T01:59:14.076-08:00</updated><title type='text'>The Pillars of Employee Performance Management for Mid/Large Companies</title><content type='html'>Does your organization consider Employee Performance Management a laborious, tactical annual practice, or is it a strategic, business-critical cycle? Maybe it's time to reassess. Now more than ever, HR professionals like you are tasked with optimizing Employee Performance Management processes across the board to ensure the most efficient use of corporate resources. Employee Performance Management has the power to accelerate time-to-revenue, reduce risks, and help your mid/large organization proactively address threats and opportunities.&lt;br /&gt;&lt;br /&gt;What you will learn:&lt;br /&gt;&lt;br /&gt;    * How to derive real value from Employee Performance Management&lt;br /&gt;    * How HR can help align a mid/large organization's goals&lt;br /&gt;    * Best practices for successful competency management&lt;br /&gt;    * Five costly succession planning errors to avoid&lt;br /&gt;    * How to manage compensation during the economic crunch&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_QDHj8MjF_LI/SvPzTX3FmKI/AAAAAAAAAJs/MnqZXHGw88Y/s1600-h/Pillars.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 115px; height: 148px;" src="http://4.bp.blogspot.com/_QDHj8MjF_LI/SvPzTX3FmKI/AAAAAAAAAJs/MnqZXHGw88Y/s400/Pillars.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5400927892295489698" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Check it out here: &lt;a href="http://vpdejesus-blogspot.tradepub.com/free/w_sumt06/"&gt;Link&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/94644964849764651-8170401481846543672?l=vpdejesus.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vpdejesus.blogspot.com/feeds/8170401481846543672/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://vpdejesus.blogspot.com/2009/11/he-pillars-of-employee-performance.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/94644964849764651/posts/default/8170401481846543672'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/94644964849764651/posts/default/8170401481846543672'/><link rel='alternate' type='text/html' href='http://vpdejesus.blogspot.com/2009/11/he-pillars-of-employee-performance.html' title='The Pillars of Employee Performance Management for Mid/Large Companies'/><author><name>Vincent Paul de Jesus</name><uri>http://www.blogger.com/profile/17390332765792775907</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://3.bp.blogspot.com/_QDHj8MjF_LI/SickN6SGOiI/AAAAAAAAAAM/euNq1B9omeg/S220/VPDJ.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_QDHj8MjF_LI/SvPzTX3FmKI/AAAAAAAAAJs/MnqZXHGw88Y/s72-c/Pillars.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-94644964849764651.post-6241192378224010519</id><published>2009-10-28T21:29:00.001-07:00</published><updated>2009-10-28T22:12:52.152-07:00</updated><title type='text'>MonoTouch on iPhone and iTouch Software Development</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_QDHj8MjF_LI/SukkO4wcX2I/AAAAAAAAAI0/h_PJPxvoOfI/s1600-h/Mono.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 194px;" src="http://3.bp.blogspot.com/_QDHj8MjF_LI/SukkO4wcX2I/AAAAAAAAAI0/h_PJPxvoOfI/s400/Mono.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5397885466552590178" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Mono from Novell must have come a long long way on their opensource platform. Now, they released their tool for developing software applications in iPod Touch and iPhone using C#. The features of this release are:&lt;br /&gt;&lt;br /&gt;Features:&lt;br /&gt;&lt;br /&gt;    * C# and .NET on the iPhone&lt;br /&gt;    * .NET Bindings to Native APIs&lt;br /&gt;    * Distribute on the Apple App Store&lt;br /&gt;    * Enterprise deployable&lt;br /&gt;    * MonoDevelop Integration&lt;br /&gt;    * XCode Integration&lt;br /&gt;&lt;br /&gt;Please visit the official website &lt;a href="http://monotouch.net/"&gt;here&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/94644964849764651-6241192378224010519?l=vpdejesus.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vpdejesus.blogspot.com/feeds/6241192378224010519/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://vpdejesus.blogspot.com/2009/10/monotouch-on-iphone-and-itouch-software.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/94644964849764651/posts/default/6241192378224010519'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/94644964849764651/posts/default/6241192378224010519'/><link rel='alternate' type='text/html' href='http://vpdejesus.blogspot.com/2009/10/monotouch-on-iphone-and-itouch-software.html' title='MonoTouch on iPhone and iTouch Software Development'/><author><name>Vincent Paul de Jesus</name><uri>http://www.blogger.com/profile/17390332765792775907</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://3.bp.blogspot.com/_QDHj8MjF_LI/SickN6SGOiI/AAAAAAAAAAM/euNq1B9omeg/S220/VPDJ.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_QDHj8MjF_LI/SukkO4wcX2I/AAAAAAAAAI0/h_PJPxvoOfI/s72-c/Mono.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-94644964849764651.post-5837982610100170151</id><published>2009-10-23T22:49:00.000-07:00</published><updated>2009-10-23T22:53:28.725-07:00</updated><title type='text'>FILESTREAM Storage in SQL Server 2008</title><content type='html'>SQL Server Technical Article&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_QDHj8MjF_LI/SuKTXg2nM4I/AAAAAAAAAH8/L5JArSVsgkM/s1600-h/SQL+2008.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 363px; height: 75px;" src="http://2.bp.blogspot.com/_QDHj8MjF_LI/SuKTXg2nM4I/AAAAAAAAAH8/L5JArSVsgkM/s400/SQL+2008.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5396037335708545922" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Writer: Paul S. Randal (SQLskills.com)&lt;br /&gt;Technical Reviewer: Alexandru Chirica, Arkadi Brjazovski, Prem Mehra, Joanna Omel, Mike Ruthruff, Robin Dhamankar&lt;br /&gt;Published: October 2008&lt;br /&gt;Applies to: SQL Server 2008&lt;br /&gt;&lt;br /&gt;Summary: This white paper describes the FILESTREAM feature of SQL Server 2008, which allows storage of and efficient access to BLOB data using a combination of SQL Server 2008 and the NTFS file system. It covers choices for BLOB storage, configuring Windows and SQL Server for using FILESTREAM data, considerations for combining FILESTREAM with other features, and implementation details such as partitioning and performance.&lt;br /&gt;This white paper is targeted at architects, IT Pros, and DBAs tasked with evaluating or implementing FILESTREAM. It assumes the reader is familiar with Windows and SQL Server and has at least a rudimentary knowledge of database concepts such as transactions.&lt;br /&gt;Introduction&lt;br /&gt;In today’s society, data is generated at incredible rates and often needs to be stored and accessed in a controlled and efficient way. There are various technologies to do this and the choice of technology often depends on the nature of the data being stored – structured, semistructured, or unstructured:&lt;br /&gt;• Structured data is data that can be easily stored in a relational schema, such as that representing sales data for a company. This can be stored in a database with a table of information for products the company sells, another with information about customers, and another that details sales of products to customers. The data can be accessed and manipulated using a rich query language such as Transact-SQL.&lt;br /&gt;• Semistructured data is data that conforms to a loose schema but does not lend itself well to being stored in a set of database tables, such as data where each data point could have radically different attributes. Semistructured data is often stored using the xml data type in the Microsoft® SQL Server® database software and accessed using an element-based query language such as XQuery.&lt;br /&gt;• Unstructured data may have no schema at all (such as a piece of encrypted data) or may be a large amount of binary data (many MBs or even GBs) which may seem to have no schema but in reality has a very simple schema inherent to it, such as image files, streaming video, or sound clips. Binary data in this case means data that can have any value, not just those that can be entered at a keyboard. These data values are commonly known as Binary Large Objects, or more simply BLOBs.&lt;br /&gt;This white paper describes the FILESTREAM feature of SQL Server 2008, which allows storage of and efficient access to BLOB data using a combination of SQL Server 2008 and the NTFS file system. It covers the FILESTREAM feature itself, choices for BLOB storage, configuring the Windows® operating system and SQL Server for using FILESTREAM data, considerations for combining FILESTREAM with other features, and implementation details such as partitioning and performance.&lt;br /&gt;Choices for BLOB Storage&lt;br /&gt;While structured and semistructured data can easily be stored in a relational database, the choice of where to store unstructured or BLOB data is more complicated. When deciding where to store BLOB data, consider the following requirements:&lt;br /&gt;• Performance: The way the data is going to be used is a critical factor. If streaming access is needed, storing the data inside a SQL Server database may be slower than storing it externally in a location such as the NTFS file system. Using file system storage, the data is read from the file and passed to the client application (either directly or with additional buffering). When the BLOB is stored in a SQL Server database, the data must first be read into SQL Server’s memory (the buffer pool) and then passed back out through a client connection to the client application. Not only does this mean the data goes through an extra processing step, it also means that SQL Server’s memory is unnecessarily “polluted” with BLOB data, which can cause further performance problems for SQL Server operations.&lt;br /&gt;• Security: Sensitive data that needs to have tightly-managed access can be stored in a database and security can be controlled using the usual SQL Server access controls. If the same data is stored in the file system, different methods of security such as access control lists (ACLs) need to be implemented.&lt;br /&gt;• Data size: Based on the research cited later in this white paper, BLOBs smaller than 256 kilobytes (KB) (such as widget icons) are better stored inside a database, and BLOBs larger than 1 megabyte (MB) are best stored outside the database. For those sized between 256 KB and 1 MB, the more efficient storage solution depends on the read vs. write ratio of the data, and the rate of “overwrite”. Storing BLOB data solely within the database (e.g., using the varbinary(max) data type) is limited to 2 gigabytes (GB) per BLOB.&lt;br /&gt;• Client access: The protocol that the client uses to access SQL Server data, such as ODBC, may not be suited to applications such as streaming large video files. This may necessitate storing the data in the file system.&lt;br /&gt;• Transactional semantics: If the BLOB data has associated structured data that will be stored in the database, changes to the BLOB data will need to adhere to transactional semantics so the two sets of data remain synchronized. For example, if a transaction creates BLOB data and a row in a database table but then rolls back, the creation of the BLOB data should be rolled back as well as the creation of the table row. This can become very complex if the BLOB data is stored in the file system with no link to the database.&lt;br /&gt;• Data fragmentation: Frequent updates and overwrites will cause the BLOBs to move, either within the SQL Server database files or within the file system, depending on where the data is stored. In this case, if the BLOBs are large, then they may become fragmented (i.e., not stored in one contiguous part of the disk). This fragmentation can be more easily addressed by using the file system than by using SQL Server.&lt;br /&gt;• Manageability: A solution that uses multiple technologies that are not integrated will be more complex and costly to manage than an integrated solution.&lt;br /&gt;• Cost: The cost of the storage solution varies depending on the technology used.&lt;br /&gt;The explanations above around size and fragmentation are based on the well-known Microsoft Research paper titled To BLOB or Not to BLOB: Large Object Storage in a Database or a Filesystem? (Gray, Van Ingen, and Sears). The paper has more information on the trade-offs involved and can be downloaded from:&lt;br /&gt;http://research.microsoft.com/research/pubs/view.aspx?msr_tr_id=MSR-TR-2006-45&lt;br /&gt;There are a variety of solutions for BLOB storage, each with pros and cons based on the requirements above. The following table compares three common options for storing BLOB data, including FILESTREAM, in SQL Server 2008.&lt;br /&gt;Comparison point Storage solution&lt;br /&gt; File server / file system SQL Server (using varbinary(max)) FILESTREAM&lt;br /&gt;Maximum BLOB size NTFS volume size 2 GB – 1 bytes NTFS volume size&lt;br /&gt;Streaming performance of large BLOBs Excellent Poor Excellent&lt;br /&gt;Security Manual ACLs Integrated Integrated + automatic ACLs&lt;br /&gt;Cost per GB Low High Low&lt;br /&gt;Manageability Difficult Integrated Integrated&lt;br /&gt;Integration with structured data Difficult Data-level consistency Data-level consistency&lt;br /&gt;Application development and deployment More complex More simple More simple&lt;br /&gt;Recovery from data fragmentation Excellent Poor Excellent&lt;br /&gt;Performance of frequent small updates Excellent Moderate Poor&lt;br /&gt;Table 1: Comparison of BLOB Storage Technologies Before SQL Server 2008&lt;br /&gt;FILESTREAM is the only solution that provides transactional consistency of structured and unstructured data as well as integrated management, security, low-cost, and excellent streaming performance. This is accomplished by storing the structured data in the database files and the unstructured BLOB data in the file system, while maintaining transactional consistency between the two stores. More details of the FILESTREAM architecture are given in the “Overview of FILESTREAM” section later in this white paper.&lt;br /&gt;Overview of FILESTREAM&lt;br /&gt;FILESTREAM is a new feature in the SQL Server 2008 release. It allows structured data to be stored in the database and associated unstructured (i.e., BLOB) data to be stored directly in the NTFS file system. You can then access the BLOB data through the high-performance Win32® streaming APIs, rather than having to pay the performance penalty of accessing BLOB data through SQL Server.&lt;br /&gt;FILESTREAM maintains transactional consistency between the structured and unstructured data at all times, even allowing point-in-time recovery of FILESTREAM data using log backups. Consistency is maintained automatically by SQL Server and does not require any custom logic in the application. The FILESTREAM mechanism does this by maintaining the equivalent of a database transaction log, which has many of the same management requirements (described in more details in the “Configuring FILESTREAM Garbage Collection” section later in this white paper). The combination of the database’s transaction log along with the FILESTREAM transaction log allows the FILESTREAM and structured data to be transactionally recovered correctly.&lt;br /&gt;Instead of being a completely new data type, FILESTREAM is a storage attribute of the existing varbinary (max) data type. FILESTREAM preserves the majority of the existing behavior of the varbinary (max) data type. It alters how the BLOB data is stored – in the file system rather than in the SQL Server data files. Because FILESTREAM is implemented as a varbinary (max) column and integrated directly into the database engine, most SQL Server management tools and functions work without modification for FILESTREAM data.&lt;br /&gt;It should be noted that the behavior of the regular varbinary (max) data type remains completely unchanged in SQL Server 2008, including the 2-GB size limit. The addition of the FILESTREAM attribute makes a varbinary (max) column be essentially unlimited in size (in reality the size is limited to that of the underlying NTFS volume).&lt;br /&gt;FILESTREAM data is stored in the file system in a set of NTFS directories called data containers, which correspond to special filegroups in the database. Transactional access to the FILESTREAM data is controlled by SQL Server and a file system filter driver that is installed as part of enabling FILESTREAM at the Windows level. The use of a file system filter driver also allows remote access to the FILESTREAM data through a UNC path. SQL Server maintains a link of sorts from table rows to the FILESTREAM files associated with them. This means that deleting or renaming any FILESTREAM files directly through the file system will result in database corruption.&lt;br /&gt;The use of FILESTREAM requires several schema modifications to data tables (most notably the requirement that each row must have a unique row ID), and it also has some restrictions when it is combined with other features (such as the inability to encrypt FILESTREAM data). These are all described in detail in the “Configuring SQL Server for FILESTREAM” section later in this white paper.&lt;br /&gt;The FILESTREAM data can be accessed and manipulated in two ways – either with the standard Transact-SQL programming model, or via the Win32 streaming APIs. Both mechanisms are fully transaction-aware and support most DML operations including insert, update, delete, and select. FILESTREAM data is also supported for maintenance operations such as backup, restore, and consistency checking. The major exception is that partial updates to FILESTREAM data are not supported. Any update to a FILESTREAM data value translates into creating a new copy of the FILESTREAM data file. The old file is asynchronously removed, as described in the “Configuring FILESTREAM Garbage Collection” section later in this white paper.&lt;br /&gt;Dual Programming Model Access to BLOB Data&lt;br /&gt;After data is stored in a FILESTREAM column, it can be accessed by using Transact-SQL transactions or by using Win32 APIs. This section gives some high-level details of the programming models and how to use them.&lt;br /&gt;Transact-SQL Access&lt;br /&gt;By using Transact-SQL, FILESTREAM data can be inserted, updated, and deleted as follows:&lt;br /&gt;• FILESTREAM fields can be prepopulated using an insert operation (with an empty value or small non-null value). However, the Win32 interfaces are a more efficient way to stream a large amount of data.&lt;br /&gt;• When FILESTREAM data is updated, the underlying BLOB data in the file system is modified. When a FILESTREAM field is set to NULL, the BLOB data associated with the field is deleted. Transact-SQL chunked updates implemented as UPDATE.Write() cannot be used to perform partial updates to FILESTREAM data.&lt;br /&gt;• When a row that contains FILESTREAM data is deleted or a table that contains FILESTREAM data is deleted or truncated, the underlying BLOB data in the file system is also deleted. The actual physical removal of the FILESTREAM files is an asynchronous background process, as explained in the “Configuring FILESTREAM Garbage Collection” section later in this white paper.&lt;br /&gt;For more information and examples of using Transact-SQL to access FILESTREAM data, see the SQL Server 2008 Books Online topic “Managing FILESTREAM Data by Using Transact-SQL” ( http://msdn.microsoft.com/en-us/library/cc645962.aspx).&lt;br /&gt;Win32 Streaming Access&lt;br /&gt;To allow transactional file system access to the FILESTREAM data, a new intrinsic function, GET_FILESTREAM_TRANSACTION_CONTEXT(), provides the token that represents the current transaction that the session is associated with. The transaction must have been started and not yet committed or rolled back. By obtaining a token, the application binds the FILESTREAM file system streaming operations with a started transaction. The function returns NULL in the case where there is no explicitly started transaction. A token must be obtained before FILESTREAM files can be accessed.&lt;br /&gt;In FILESTREAM, the database engine controls the BLOB physical file system namespace. A new intrinsic function, PathName, provides the logical UNC path of the BLOB that corresponds to each FILESTREAM field in the table. The application uses this logical path to obtain the Win32 handle and operate on the BLOB data by using regular Win32 file system interfaces. The function returns NULL if the value of the FILESTREAM column is NULL. This emphasizes the fact that a FILESTREAM file must be precreated before it can be accessed at the Win32 level. This is done as described previously.&lt;br /&gt;The Win32 streaming support works in the context of a SQL Server transaction. After it obtains a transaction token and a pathname, the Win32 OpenSqlFilestream API is used to obtain a Win32 file handle. Alternatively, the managed SqlFileStream API can be used. This handle can then be used by the Win32 streaming interfaces, such as ReadFile() and WriteFile(), to access and update the file by way of the file system. Again, note that FILESTREAM files cannot be directly deleted, and it cannot be renamed using the file system. Otherwise the link-level consistency will be lost between the database and the file system (i.e., the database essentially becomes corrupt).&lt;br /&gt;The FILESTREAM file system access models a Transact-SQL statement by using file open and close. The statement starts when a file handle is opened and ends when the handle is closed. For example, when a write handle is closed, any possible AFTER trigger that is registered on the table fires as it would if an UPDATE statement were completed.&lt;br /&gt;For more information and examples of using Win32 APIs to access FILESTREAM data, see the SQL Server 2008 Books Online topic “Managing FILESTREAM Data by Using Win32” ( http://msdn.microsoft.com/en-us/library/cc645940.aspx).&lt;br /&gt;Transaction Semantics&lt;br /&gt;All file handles must be closed before the transaction commits or rolls back. If a handle is left open when a transaction commit occurs, the commit will fail and additional reads and writes against the handle will cause a failure, as expected. The transaction must then be rolled back. Similarly, if the database or instance of the database engine shuts down, all open handles are invalidated.&lt;br /&gt;Whenever a FILESTREAM file is opened for a write operation, a new zero-length file is created and the entire updated FILESTREAM data value is written to it. The old file is removed asynchronously as described in the “Configuring FILESTREAM Garbage Collection” section later in this white paper.&lt;br /&gt;With FILESTREAM, the database engine ensures transaction durability on commit for FILESTREAM BLOB data that is modified from the file system streaming access. This is done using the FILESTREAM log mentioned earlier and an explicit flush of the FILESTREAM file contents to disk.&lt;br /&gt;Isolation Semantics&lt;br /&gt;The isolation semantics are governed by database engine transaction isolation levels. When FILESTREAM data is accessed through the Win32 APIs, only the read-committed isolation level is supported. Transact-SQL access also allows the repeatable-read and serializable isolation levels. Furthermore, using Transact-SQL access, dirty reads are permitted through the read-uncommitted isolation level, or the NOLOCK query hint, but such access will not show in-flight updates of FILESTREAM data.&lt;br /&gt;The file system access open operations do not wait for any locks. Instead, the open operations fail immediately if they cannot access the data because of transaction isolation. The streaming API calls fail with ERROR_SHARING_VIOLATION if the open operation cannot continue because of isolation violation. &lt;br /&gt;Partial Updates&lt;br /&gt;To allow for partial updates to be made, the application can issue a device FS control (FSCTL_SQL_FILESTREAM_FETCH_OLD_CONTENT) to fetch the old content into the file that the opened handle references. This can also be done using the managed SqlFileStream API using the ReadWrite flag. This will trigger a server-side old content copy, as discussed earlier. For better application performance and to avoid running into potential time-outs when you are working with very large files, you should use asynchronous I/O.&lt;br /&gt;If the FSCTL is issued after the handle has been written to, the last write operation will persist, and prior writes that were made to the handle are lost.&lt;br /&gt;For more information on partial updates, see the SQL Server 2008 Books Online topic “FSCTL_SQL_FILESTREAM_FETCH_OLD_CONTENT” ( http://technet.microsoft.com/en-us/library/cc627407.aspx).&lt;br /&gt;Write-Through from Remote Clients&lt;br /&gt;Remote file system access to FILESTREAM data is enabled over the Server Message Block (SMB) protocol. If the client is remote, caching of write operations depends on the options specified and the API used. For instance, the default for native code APIs is to perform write-through, whereas for the managed APIs the default is to use buffering. This difference reflects customer feedback on the various APIs and their uses through the prerelease CTP versions of SQL Server 2008.&lt;br /&gt;It is recommended that applications that are running on remote clients consolidate small write operations (through buffering) to make fewer write operations using a larger data size. Also, if buffering is being used, an explicit flush should be issued by the client before the transaction is committed.&lt;br /&gt;Creating memory mapped views (memory mapped I/O) by using a FILESTREAM handle is not supported. If memory mapping is used for FILESTREAM data, the database engine cannot guarantee consistency and durability of the data or the integrity of the database.&lt;br /&gt;When to Use FILESTREAM&lt;br /&gt;Even though FILESTREAM technology has many attractive features, it may not be the optimal choice in all situations. As mentioned earlier, the size of the BLOB data and the access patterns are the most significant factors when deciding whether to store the BLOB data wholly within the database or by using FILESTREAM.&lt;br /&gt;Size affects the following:&lt;br /&gt;• Efficiency with which the BLOB data can be accessed using either storage mechanism. As mentioned earlier, streaming access of large BLOB data is more efficient using FILESTREAM, but partial updates are (potentially much) slower.&lt;br /&gt;• Efficiency of backing up the combined structured and BLOB data using either storage mechanism. A backup that combines SQL Server database files and a large number of FILESTREAM files will be slower than a backup of just SQL Server database files of an equivalent total size. This is because of the extra overhead of backing up each NTFS file (one per FILESTREAM data value). This overhead becomes more noticeable when the FILESTREAM files are smaller (as the time overhead becomes a larger percentage of the total time to backup per MB of data).&lt;br /&gt;As an example, the following graph shows the relative throughput of local reads of various sizes of BLOB data using varbinary (max), FILESTREAM through Transact-SQL, and FILESTREAM through NTFS. It can be seen (on the blue line) that Win32 access of FILESTREAM data becomes several times faster than Transact-SQL access of varbinary (max) data as data size increases. Note that the throughput measurements are in megabits per second (Mbps).&lt;br /&gt; &lt;br /&gt;Figure 1: Read performance of various BLOB sizes&lt;br /&gt;The NTFS numbers include the time necessary to start a transaction, retrieve the pathname and transaction context from SQL Server, and open a Win32 handle to the FILESTREAM data. Each test was performed using the same computer with four processor cores and a warm SQL Server buffer pool.&lt;br /&gt;The other factor to consider is whether the client or mid-tier can be written (or altered) to use the Win32 streaming APIs as well as regular access to SQL Server. If this is not the case, FILESTREAM will not be appropriate, because the best performance is obtained using the Win32 streaming APIs.&lt;br /&gt;Configuring Windows for FILESTREAM&lt;br /&gt;As with any other deployment, before you deploy an application that uses FILESTREAM, it is important to prepare the Windows server that will be hosting the SQL Server database and associated FILESTREAM data containers. This section explains how to configure storage hardware and the NTFS file system in preparation for using FILESTREAM. It then shows how to enable FILESTREAM at the Windows level.&lt;br /&gt;Hardware Selection and Configuration&lt;br /&gt;One of the most common causes of a poorly performing workload is an unsuitable hardware configuration. Sometimes the cause is insufficient memory, leading to “thrashing” in SQL Server’s buffer pool, and sometimes the cause is simply that the storage hardware does not have the I/O throughput capability the workload demands. For applications that will use FILESTREAM for high-performance streaming of BLOB data using the Win32 APIs, the choice and configuration of the storage hardware is critical.&lt;br /&gt;The following sections describe some best practices around storage choice and layout. For a deeper discussion on this, see the TechNet white paper “Physical Database Storage Design” ( http://www.microsoft.com/technet/prodtechnol/sql/2005/physdbstor.mspx). After you design an optimal layout, it is prudent to perform load testing to validate the performance capacity of the I/O subsystem. This is discussed in detail in the TechNet SQL Server Best Practices Article “Predeployment I/O Best Practices” ( http://www.microsoft.com/technet/prodtechnol/sql/bestpractice/pdpliobp.mspx).&lt;br /&gt;Physical Storage Layout&lt;br /&gt;Be sure to take into account the anticipated workload on a FILESTREAM data container when you are deciding where to place it, as well as the workloads on any co-located data containers or SQL Server files. Each FILESTREAM data container may need to be on its own volume, as having multiple data containers with heavy workloads on a single volume could lead to contention.&lt;br /&gt;The point to take away here is that without thinking about the workloads involved, simply placing everything on one volume may lead to performance problems. The degree of separation required will vary from customer to customer.&lt;br /&gt;It is also possible to create a table schema inside SQL Server that allows crude load balancing of FILESTREAM data between multiple volumes. This is described in the section “Load Balancing of FILESTREAM Data”.&lt;br /&gt;RAID Level Choice&lt;br /&gt;The benefits of using RAID technology are well-known, and much has been written about choosing a RAID level appropriate to the application requirements, so this white paper will not attempt to repeat all that information. The aforementioned “Physical Database Storage Design” white paper has an excellent section on RAID levels and RAID level choice. What follows here is a simple overview of the factors to consider.&lt;br /&gt;RAID levels differ in a variety of ways, most notably in terms of read/write performance, resilience to failure, and cost. For instance, RAID 5 is relatively low cost, it can handle the failure of only one drive in the RAID array, and it may be unsuitable for write-heavy workloads. On the other hand, RAID 10 provides excellent read and write performance, and it can handle multiple drive failures (depending on the degree of mirroring involved), but it is more expensive, given that at least 50 percent of the drives in the RAID array are redundant. These are the three main factors involved in choosing a RAID level. RAID level choice may be different for the volume on which each user database is stored, and it may even differ between the volume storing the data files and that storing the log files for a single database.&lt;br /&gt;If the workload will involve high-performance streaming of FILESTREAM data, the immediate choice may be to have the FILESTREAM data container volume use the RAID level that gives the highest read performance. However, this may not provide a high degree of resilience against failures. On the other hand, the immediate choice may be to use the same RAID level as for the other volumes that store the data for the database, but this may not provide the requisite performance levels that the workload demands.&lt;br /&gt;For this white paper, the point to stress is that a conscious RAID level choice should be made for the FILESTREAM data container volumes after evaluating the trade-offs involved, not just deciding based on a single factor.&lt;br /&gt;Drive Interface Choice&lt;br /&gt;In typical databases involving BLOB data, the total size of the BLOB data may be many times more than the total size of the structured data. When implementing a solution involving FILESTREAM data stored in separate volumes, you may want to use cheaper storage for the volume, such as IDE or SATA (hereafter simply called “SATA”), instead of more expensive SCSI storage. Before this choice is made, the trade-offs involved should be understood. This section gives an overview of the different characteristics of SCSI vs. IDE/SATA to enable an informed choice to be made based on performance and reliability as well as cost.&lt;br /&gt;Capacity and Performance&lt;br /&gt;SATA drives tend to have higher capacity than SCSI drives, but they have slower rotational speed (RPM) than SCSI drives. While there are some 10,000 RPM SATA drives, most are 5,400 or 7,200 RPM. High-performance SCSI drives are available that are 10,000 and up to 15,000 RPM. Although RPM can be a useful comparison metric, the two figures that must really be used for a comparison are the latency (how long until the disk head is at the right position over the disk surface) and average transfer rates (how much data can be transferred to/from the disk surface per second). It is also important that the drives are able to process complex I/O patterns efficiently. When choosing drives, ensure that SATA drives support Native Command Queue (NCQ) and SCSI drives support Command Tag Queue (CTQ), which allow them to process multiple and interleaved disk I/Os for better effective performance.&lt;br /&gt;To summarize, SCSI drives usually have better latency and transfer rates and so will provide better streaming performance, but potentially at a higher cost.&lt;br /&gt;Reliability&lt;br /&gt;SQL Server relies on guaranteed write-ordering and durability to provide reliability and recoverability through its write-ahead logging mechanism. For more information on these I/O requirements, see the TechNet white paper “SQL Server I/O Basics” ( http://www.microsoft.com/technet/prodtechnol/sql/2005/iobasics.mspx).&lt;br /&gt;For reliability, SCSI is usually better than SATA because it uniformly supports forcing data to be written to disk where SATA does not This is done either by supporting write-through, where the data to be written is not cached at all, or by supporting forcibly flushing cache contents to disk. The lack of either can impact recoverability after a hardware, software, or power failure. All the types of interfaces can support hot-swapping to allow repairs while maintaining availability.&lt;br /&gt;The FILESTREAM feature relies on two write-ordering and durability guarantees:&lt;br /&gt;• Data durability at transaction commit time&lt;br /&gt;• Write-ahead logging for FILESTREAM file creation and deletion&lt;br /&gt;Data durability is achieved by the FILESTREAM file system driver issuing an explicit flush of files that have been modified prior to a transaction committing (the details of the mechanism are beyond the scope of this white paper). This guarantees that in the event of a power failure, any disks that do not have sufficient battery-backed cache do not have committed, but unflushed FILESTREAM data that will be lost. If the SATA drives do not support a forced-flush operation, then recoverability may be impacted and data may be lost.&lt;br /&gt;Write-ahead logging relies on the consistency of NTFS metadata. This in itself relies on the reliability of the underlying drives. There is no problem with SCSI, but if the SATA drives do not support forced-flushing, then some NTFS metadata changes may be lost in a power failure situation. This could result in a number of scenarios:&lt;br /&gt;• NTFS cannot recover and the volume cannot be mounted (i.e., the FILESTREAM data container is essentially offline).&lt;br /&gt;• NTFS recovers but NTFS metadata changes are lost and SQL Server does not know to roll back an uncommitted transaction that performs an insert of FILESTREAM data (i.e., the FILESTREAM data is “leaked”).&lt;br /&gt;• NTFS recovers but NTFS metadata changes are lost and SQL Server does not know to roll back an uncommitted transaction that performs a delete of FILESTREAM data (i.e., the FILESTREAM data is lost).&lt;br /&gt;It should be noted that all three of these scenarios are no worse than if the BLOB data were stored outside the database on an NTFS volume with underlying SATA drives that did not support forcing data to disk. The use of FILESTREAM on a volume with underlying SATA drives in this case is actually better than storing the BLOB data in raw NTFS files on the same volume, as FILESTREAM’s link-level consistency provides a mechanism to detect when such “corruptions” have occurred (through running DBCC CHECKDB on the database).&lt;br /&gt;To summarize, FILESTREAM data can be reliably stored on volumes with underlying SATA storage, as long as the SATA drives support forcing data to disk through cache flushing.&lt;br /&gt;NTFS Configuration&lt;br /&gt;Even the most carefully designed I/O subsystem running on high-performance hardware may not work as desired if the file system (in this case NTFS) is not configured correctly. This section describes some of the configuration options that can affect a workload involving FILESTREAM data.&lt;br /&gt;For a more complete overview of NTFS, see the TechNet Library articles “NTFS Technical Reference” ( http://technet.microsoft.com/en-us/library/cc758691.aspx) and “Working with File Systems” ( http://technet.microsoft.com/en-us/library/bb457112.aspx).&lt;br /&gt;Optimizing NTFS Performance&lt;br /&gt;By default, NTFS is not configured to handle a high-performance workload with tens of thousands of files in an individual file system directory (i.e., the FILESTREAM scenario). There are two NTFS options that need to be configured to facilitate FILESTREAM performance. It is especially important to set these options correctly prior to undertaking any performance benchmarking; otherwise, results will not be representative of true FILESTREAM performance.&lt;br /&gt;The first configuration option is to disable the generation of 8.3 names when new files are created (or renamed). This process generates a secondary name for each file that is only for backward compatibility with 16-bit applications. The algorithm generates a new 8.3 name and then has to scan through all existing 8.3 file names in the directory to ensure the new name is unique. As the number of files in the directory grows large (generally above 300,000), this process takes longer and longer. The time to create a file in turn rises and performance decreases, so turning off this process can significantly increase performance. To turn off this process, type the following at a command prompt and then restart the computer:&lt;br /&gt;          fsutil behavior set disable8dot3 1&lt;br /&gt;Note: This option disables the generation of 8.3 names on all NTFS volumes on the server. If any volumes are being used by 16-bit applications, they may experience issues after you change this behavior.&lt;br /&gt;The second option to turn off is updating the last access time for a file when it is accessed. If the workload briefly accesses many files, then a disproportionate amount of time is spent simply updating the last access time for each file. Turning off this option can also significantly increase performance. To turn off this process, type the following at a command prompt and then restart the computer:&lt;br /&gt;          fsutil behavior set disablelastaccess 1&lt;br /&gt;Cluster Size&lt;br /&gt;All Windows file systems have the concept of a “cluster”, which is the unit of allocation when disk space is allocated. As a cluster is the smallest amount of disk space that can be allocated, if a file is very small, some of the cluster may be unused (essentially wasted). The cluster size is therefore typically quite small so that small files do not waste disk space.&lt;br /&gt;Large files may have many clusters allocated to them, or files may grow over time and have clusters allocated as they grow. If a file grows a lot, but in small chunks, then the allocated clusters are likely to not be contiguous on disk (i.e., they are “fragments”). This means that the smaller the clusters are, and the more a file grows, the more “fragmented” it will become.&lt;br /&gt;Cluster size is therefore a trade-off between wasting disk space and reducing fragmentation. More details can be found about the various clusters sizes on the Windows file systems in the Knowledge Base article “Default Cluster Size for FAT and NTFS” ( http://support.microsoft.com/kb/140365).&lt;br /&gt;The recommendation for using FILESTREAM is that the individual units of BLOB data be 1 MB in size or higher. If this is the case, it is recommended that the NTFS cluster size for the FILESTREAM data container volume is set to 64 KB to reduce fragmentation. This must be done manually as the default for NTFS volumes up to 2 terabytes (TB) is 4 KB. This can be done using the /A option of the format command. For example, at a command prompt type:&lt;br /&gt;          format F: /FS:NTFS /V:MyFILESTREAMContainer /A:64K &lt;br /&gt;This setting should be combined with large buffer sizes, as described in the “Performance Tuning and Benchmarking Considerations” section later in this white paper.&lt;br /&gt;Managing Fragmentation&lt;br /&gt;As described earlier, when many files on a volume grow, they become fragmented. This means that the collection of clusters allocated to the file is not contiguous. When the file is read sequentially, the underlying disk heads need to read all the clusters in sequence, which may mean they have to read different portions of the disk. Even if files do not grow once they have been created, if they were created on a volume where the available free space is not in a single contiguous chunk, they may be fragmented immediately, because the necessary clusters to accommodate them are not available contiguously.&lt;br /&gt;This fragmentation causes the sequential read performance to be lower than when there is no (or little) fragmentation. The problem is very similar to that of index fragmentation within a database slowing down query range scan performance.&lt;br /&gt;It is therefore essential that fragmentation be periodically removed using a disk defragmenting tool to maintain sequential read performance. Also, if the volume that will be used to host the FILESTREAM data container was previously used, or if it still contains other data, the fragmentation level should be checked and fixed if necessary.&lt;br /&gt;Compression&lt;br /&gt;Data stored in NTFS can be compressed to save disk space, but at the expense of extra CPU to compress and decompress the data when it is written or read, respectively. Compression is also not useful if the data is essentially uncompressible. For example, random data, encrypted data, or data that has already been compressed will not compress well, but it must still be passed through the NTFS compression algorithm and incur CPU overhead.&lt;br /&gt;For these reasons, it only makes sense to enable compression when the data can be heavily compressed, and when the extra CPU required will not cause the workload performance to decrease. It should also be noted that compression can only be enabled when the NTFS cluster size is 4,096 bytes or less.&lt;br /&gt;Compression can be enabled on the FILESTREAM data container volume when it is formatted, using the /C option of the format command. For example:&lt;br /&gt;          format F: /FS:NTFS /V:MyFILESTREAMContainer /A:4096 /C&lt;br /&gt;An existing volume can also be enabled for compression using the following steps:&lt;br /&gt;1. In My Computer or Windows Explorer, right-click the volume to compress or uncompress.&lt;br /&gt;2. Click Properties to display the Properties dialog box.&lt;br /&gt;3. On the General tab, select or clear the Compress drive to save disk space check box, and then click OK.&lt;br /&gt;4. In the Confirm Attribute Changes dialog box, select whether to make the compression apply to the entire volume or only to the root folder.&lt;br /&gt;This is shown in the following figure.&lt;br /&gt; &lt;br /&gt;Figure 2: Compressing an existing volume using Windows Explorer&lt;br /&gt;Space Management&lt;br /&gt;Although multiple FILESTREAM data containers can be placed on a single NTFS volume, there are reasons for having a 1:1 mapping between data containers and NTFS volumes. Apart from the potential for workload-dependent contention, there is no way to manage the FILESTREAM data container space usage from within SQL Server, so use of NTFS disk quotas is necessary if this is required. Disk quotas are tracked on a per-user, per-volume basis, so having multiple FILESTREAM data containers on a single volume makes it hard to tell which data container is using more disk space. Note that all the FILESTREAM files will be created under the SQL Server service account. If this is changed, then disk space will start to be charged to the new service account.&lt;br /&gt;There is a single FILESTREAM file system filter driver for each NTFS volume that has a FILESTREAM data container, and there is also one for each version of SQL Server that has a FILESTREAM data container on the volume. Each filter driver is responsible for managing all FILESTREAM data containers for that volume, for all instances that use a particular version of SQL Server.&lt;br /&gt;For example, an NTFS volume that is hosting three FILESTREAM data containers, one for each of three SQL Server 2008 instances, will have only one SQL Server 2008 FILESTREAM file system filter driver.&lt;br /&gt;Security&lt;br /&gt;There are two security requirements for using the FILESTREAM feature. Firstly, SQL Server must be configured for integrated security. Secondly, if remote access will be used, then the SMB port (445) must be enabled through any firewall systems. This is the same as required for regular remote share access. For more information, see the Knowledge Base article “Service Overview and Network Port Requirements for the Windows Server System” ( http://support.microsoft.com/kb/832017).&lt;br /&gt;Antivirus Considerations&lt;br /&gt;Antivirus software is ubiquitous in today’s environment. FILESTREAM cannot block antivirus software from scanning the files in the FILESTREAM data container (this would create security problems). The software usually has a policy setting on what to do to a file that is suspected as being contaminated with a virus: Either delete the file or restrict access to it (known as putting the file in “quarantine”). In both cases, access to the BLOB data in the affected file will be prevented, and to SQL Server the file will appear to have been deleted.&lt;br /&gt;It is recommended that the antivirus software be set to quarantine files, not delete them. DBCC CHECKDB can be used inside SQL Server to discover which files seem to be missing, and then the Windows administrator can correlate the file names against the antivirus software’s log and take corrective action.&lt;br /&gt;Enabling FILESTREAM in Windows&lt;br /&gt;FILESTREAM is a hybrid feature that requires both the Windows administrator and the SQL Server administrator to perform actions before the feature is enabled. This is necessary to preserve the separation of duties between the two administrators, especially if the SQL Server administrator is not also the Windows administrator. Enabling FILESTREAM at the Windows level installs a file system filter driver, which is something that only a Windows administrator has privileges to do.&lt;br /&gt;At the Windows level, FILESTREAM is enabled either during the installation of SQL Server 2008 or by running SQL Server Configuration Manager. Here are the steps to follow:&lt;br /&gt;1. On the Start menu, point to All Programs, point to Microsoft SQL Server 2008, point to Configuration Tools, and then click SQL Server Configuration Manager.&lt;br /&gt;2. In the list of services, right-click SQL Server Services, and then click Open.&lt;br /&gt;3. In the SQL Server Configuration Manager snap-in, locate the instance of SQL Server on which you want to enable FILESTREAM.&lt;br /&gt;4. Right-click the instance and then click Properties.&lt;br /&gt;5. In the SQL Server Properties dialog box, click the FILESTREAM tab.&lt;br /&gt;6. Select the Enable FILESTREAM for Transact-SQLAccess check box.&lt;br /&gt;7. If you want to read and write FILESTREAM data from Windows, click Enable FILESTREAM for file I/O streaming access. Enter the name of the Windows share in the Windows Share Name box.&lt;br /&gt;8. If remote clients must access the FILESTREAM data that is stored on this share, select Allow remote clients to have streaming access to FILESTREAM data.&lt;br /&gt;9. Click Apply.&lt;br /&gt;The following figure shows the FILESTREAM tab as described in the procedure.&lt;br /&gt; &lt;br /&gt;Figure 3: Configuring FILESTREAM using SQL Server Configuration Manager&lt;br /&gt;This procedure must be completed for each SQL Server instance that will use the FILESTREAM feature before it can be used by SQL Server. Note that there is no specification of the FILESTREAM data container at this stage – that is done when a FILESTREAM filegroup is created in a database after FILESTREAM has been enabled within SQL Server.&lt;br /&gt;Note that it is possible to disable FILESTREAM access at the Windows level even while SQL Server has it enabled. In that case, after the SQL Server instance is restarted, all FILESTREAM data will be unavailable. The following warning will be displayed.&lt;br /&gt; &lt;br /&gt;Figure 4: Warning displayed when disabling FILESTREAM using SQL Server Configuration Manager&lt;br /&gt;Configuring SQL Server for FILESTREAM&lt;br /&gt;Each SQL Server instance that will use the FILESTREAM feature must be separately configured, both at the Windows and the SQL Server level. After FILESTREAM has been enabled, a database must be configured to store FILESTREAM data, and only then can tables be defined that include FILESTREAM columns. This section describes how to configure FILESTREAM at the SQL Server level and how to create FILESTREAM-enabled databases and tables, and it explains how FILESTREAM interacts with other features in SQL Server 2008.&lt;br /&gt;Security Considerations&lt;br /&gt;FILESTREAM requires that integrated security (i.e., Windows Authentication) be used. When an application using Win32 attempts to access FILESTREAM data, the Windows user is validated through SQL Server. If the user has Transact-SQL access to the FILESTREAM data, access will be granted at the Win32 level also, as long as the transaction token is obtained in the security context of the Windows user who is performing the file open.&lt;br /&gt;The requirement for Windows Authentication comes from the nature of Windows File I/O APIs. The only way to pass the client’s identity from the client application to SQL Server during a File I/O operation is to use the Windows token associated with the client’s thread.&lt;br /&gt;When the FILESTREAM data container is created, it is automatically secured so that only the SQL Server service account and members of the builtin/Administrators group can access the data container directory tree. Care should be taken that the data container contents are never changed except through supported transactional methods, as change through other methods will lead to the container becoming corrupt.&lt;br /&gt;Enabling FILESTREAM in SQL Server&lt;br /&gt;The second step of enabling FILESTREAM is performed within the SQL Server 2008 instance. This should not be done until FILESTREAM has been enabled at the Windows level, and the NTFS volume that will store the FILESTREAM data has been adequately prepared (as described in the “Configuring Windows for FILESTREAM” section earlier).&lt;br /&gt;FILESTREAM access is controlled within SQL Server using sp_configure to set the filestream_access_level configuration option to one of three settings. The possible settings are:&lt;br /&gt;• 0 – disable FILESTREAM support for this instance&lt;br /&gt;• 1 – enable FILESTREAM for Transact-SQL access only&lt;br /&gt;• 2 – enable FILESTREAM for Transact-SQL and Win32 streaming access&lt;br /&gt;The following example shows enabling FILESTREAM for Transact-SQL and Win32 streaming access.&lt;br /&gt;Transact-SQL &lt;br /&gt;EXEC sp_configure filestream_access_level, 2;&lt;br /&gt;GO&lt;br /&gt;RECONFIGURE;&lt;br /&gt;GO&lt;br /&gt;The RECONFIGURE statement is necessary for the newly configured value to take effect. Note that if FILESTREAM has not been enabled at the Windows level, it will not be enabled at the SQL Server level when the code above is run. The current configured value can be found using the following code.&lt;br /&gt;Transact-SQL &lt;br /&gt;EXEC sp_configure filestream_access_level;&lt;br /&gt;GO&lt;br /&gt;If FILESTREAM is not configured at the Windows level then the “config_value” in the sp_configure output will be different (i.e., 0) from the “run_value” after the RECONFIGURE statement has been executed.&lt;br /&gt;Creating a Database Enabled for FILESTREAM&lt;br /&gt;Once FILESTREAM is enabled at the Windows and SQL Server levels, a FILESTREAM data container can be defined. This is done by defining a FILESTREAM filegroup in a database. There is a 1:1 mapping between FILESTREAM filegroups and FILESTREAM data containers.&lt;br /&gt;A FILESTREAM filegroup can be defined when a database is created, or it can be created separately by using an ALTER DATABASE statement. The following example creates a FILESTREAM filegroup in an existing database.&lt;br /&gt;Transact-SQL &lt;br /&gt;ALTER DATABASE Production ADD&lt;br /&gt;FILEGROUP FileStreamGroup1 CONTAINS FILESTREAM;&lt;br /&gt;GO&lt;br /&gt;The CONTAINS FILESTREAM clause is necessary to distinguish the new filegroup from regular database filegroups. If the FILESTREAM feature is disabled, this statement will fail with the following error.&lt;br /&gt;Transact-SQL &lt;br /&gt;Msg 5591, Level 16, State 3, Line 1&lt;br /&gt;FILESTREAM feature is disabled.&lt;br /&gt;Assuming FILESTREAM is enabled at the Windows and SQL Server levels, the filegroup will be created. At this point, the FILESTREAM data container is defined by adding a single file to the filegroup. The pathname specified is the pathname of the directory that will be created as the root of the data container. The entire pathname up to, but not including, the final directory name must already exist. The following example defines the data container for the FileStreamGroup1 filegroup created earlier.&lt;br /&gt;Transact-SQL &lt;br /&gt;ALTER DATABASE Production ADD FILE (&lt;br /&gt;       NAME = FSGroup1File,&lt;br /&gt;       FILENAME = 'F:\Production\FSDATA')&lt;br /&gt;TO FILEGROUP FileStreamGroup1;&lt;br /&gt;GO&lt;br /&gt;At this point, the FSDATA directory will be created. It will be empty apart from two things:&lt;br /&gt;• The file filestream.hdr. This is the FILESTREAM metadata for the data container.&lt;br /&gt;• The directory $FSLOG. This is the FILESTREAM equivalent of a database’s transaction log.&lt;br /&gt;It should be noted that a database can have multiple FILESTREAM filegroups. This can be useful to separate the BLOB storage for multiple tables in the database.&lt;br /&gt;Creating a Table for Storing FILESTREAM Data&lt;br /&gt;Once the database has a FILESTREAM filegroup, tables can be created that contain FILESTREAM columns. As mentioned earlier, a FILESTREAM column is defined as a varbinary (max) column that has the FILESTREAM attribute. The following code creates a table with a single FILESTREAM column.&lt;br /&gt;Transact-SQL &lt;br /&gt;USE Production;&lt;br /&gt;GO&lt;br /&gt;CREATE TABLE DocumentStore (&lt;br /&gt;       DocumentID INT IDENTITY PRIMARY KEY,&lt;br /&gt;       Document VARBINARY (MAX) FILESTREAM NULL,&lt;br /&gt;       DocGUID UNIQUEIDENTIFIER NOT NULL ROWGUIDCOL&lt;br /&gt;              UNIQUE DEFAULT NEWID ())&lt;br /&gt;FILESTREAM_ON FileStreamGroup1;&lt;br /&gt;GO&lt;br /&gt;A table can have multiple FILESTREAM columns, but the data from all FILESTREAM columns in a table must be stored in the same FILESTREAM filegroup. If the FILESTREAM_ON clause is not specified, whichever FILESTREAM filegroup is set to be the default will be used. This may not be the desired configuration and could lead to performance problems.&lt;br /&gt;Once the table is created, the FILESTREAM data container will contain another directory, corresponding to the table, with a subdirectory that corresponds to the FILESTREAM column in the table. This subdirectory will contain the data files once data is entered into the table. The directory structure will vary depending on the number of FILESTREAM columns a table has, and whether the table is partitioned or not.&lt;br /&gt;Note that for a table to have one or more FILESTREAM columns, it must also have a column of the uniqueidentifier data type that has the ROWGUIDCOL attribute. This column must not allow null values and must have either a UNIQUE or PRIMARY KEY single-column constraint. The GUID value for the column must be supplied either by an application when inserting data or by a DEFAULT constraint that uses the NEWID() function (or NEWSEQUENTIALID() if merge replication is configured, as mentioned in the “Feature Combinations and Restrictions” section later).&lt;br /&gt;For more information about details and restrictions on the required table schema and options, see the SQL Server 2008 Books Online topic “CREATE TABLE (Transact-SQL)” ( http://msdn.microsoft.com/en-us/library/ms174979.aspx).&lt;br /&gt;Configuring FILESTREAM Garbage Collection&lt;br /&gt;FILESTREAM data files in the FILESTREAM data container cannot be partially updated. This means that any change to the BLOB data in the FILESTREAM column will create a whole new FILESTREAM data file. The “old” file must be preserved until it is no longer needed for recovery purposes. Files representing deleted FILESTREAM data, or rolled-back inserts of FILESTREAM data, are similarly preserved.&lt;br /&gt;Files that are no longer needed are removed by a garbage collection process. This process is automatic, unlike Windows SharePoint® Services, where garbage collection must be implemented manually on the external BLOB store.&lt;br /&gt;All FILESTREAM file operations are mapped to a Log Sequence Number (LSN) in the database transaction log. As long as the transaction log has been truncated past the FILESTREAM operation LSN, the file is no longer needed and can be garbage collected. Therefore, anything that can prevent transaction log truncation may also prevent a FILESTREAM file being physically deleted. Some examples are:&lt;br /&gt;• Log backups have not been taken, in the FULL or BULK_LOGGED recovery model.&lt;br /&gt;• There is a long-running active transaction.&lt;br /&gt;• The replication log reader job has not run.&lt;br /&gt;FILESTREAM garbage collection is a background task that is triggered by the database checkpoint process. A checkpoint is automatically run when enough transaction log has been generated. For more information, see the SQL Server 2008 Books Online topic “CHECKPOINT and the Active Portion of the Log” ( http://msdn.microsoft.com/en-us/library/ms189573.aspx). Given that FILESTREAM file operations are minimally logged in the database’s transaction log, it may take a while before the number of transaction log records generated triggers a checkpoint process and garbage collection occurs. If this becomes a problem, you can force garbage collection by using the CHECKPOINT statement.&lt;br /&gt;Partitioning Considerations&lt;br /&gt;If the table that contains FILESTREAM data is partitioned, the FILESTREAM_ON clause must specify a partitioning scheme involving FILESTREAM filegroups and based on the table’s partitioning function. This is necessary because the regular partitioning scheme will involve the regular filegroups that cannot be used to store FILESTREAM data. The table definition (either in a CREATE TABLE or CREATE CLUSTERED INDEX … WITH DROP_EXISTING statement) then specifies both partitioning schemes.&lt;br /&gt;The FILESTREAM partitioning scheme can specify that all the partitions are mapped to a single filegroup, but this is not recommended as it can lead to performance problems.&lt;br /&gt;The following (contrived) example shows this syntax.&lt;br /&gt;Transact-SQL &lt;br /&gt;CREATE PARTITION FUNCTION DocPartFunction (INT)&lt;br /&gt;AS RANGE RIGHT FOR VALUES (100000, 200000);&lt;br /&gt;GO&lt;br /&gt;CREATE PARTITION SCHEME DocPartScheme AS&lt;br /&gt;PARTITION MyPartFunction TO (Data_FG1, Data_FG2, Data_FG3);&lt;br /&gt;GO&lt;br /&gt;CREATE PARTITION SCHEME DocFSPartScheme AS&lt;br /&gt;PARTITION MyPartFunction TO (FS_FG1, FS_FG2, FS_FG3);&lt;br /&gt;GO&lt;br /&gt;CREATE TABLE DocumentStore (&lt;br /&gt;       DocumentID INT IDENTITY PRIMARY KEY,&lt;br /&gt;       Document VARBINARY (MAX) FILESTREAM NULL,&lt;br /&gt;       DocGUID UNIQUEIDENTIFIER NOT NULL ROWGUIDCOL&lt;br /&gt;              UNIQUE DEFAULT NEWID () ON Data_FG1)&lt;br /&gt;ON DocPartScheme (DocumentID)&lt;br /&gt;FILESTREAM_ON DocFSPartScheme;&lt;br /&gt;GO&lt;br /&gt;Notice that to use the DocumentID column as the partitioning column, the underlying nonclustered index that enforces the UNIQUE constraint on the DocGUID must be explicitly placed on a filegroup so that the DocumentID column can be the partitioning column. This means that partition switching is only possible if the UNIQUE constraints are disabled before performing the partition switch, as they are unaligned indexes, and then re-enabled afterwards.&lt;br /&gt;Continuing the previous example, the following code creates a table and then attempts a partition switch.&lt;br /&gt;Transact-SQL &lt;br /&gt;CREATE TABLE NonPartitionedDocumentStore (&lt;br /&gt;       DocumentID INT IDENTITY PRIMARY KEY,&lt;br /&gt;       Document VARBINARY (MAX) FILESTREAM NULL,&lt;br /&gt;       DocGUID UNIQUEIDENTIFIER NOT NULL ROWGUIDCOL&lt;br /&gt;              UNIQUE DEFAULT NEWID ());&lt;br /&gt;GO&lt;br /&gt;ALTER TABLE DocumentStore SWITCH PARTITION 2 TO NonPartitionedDocumentStore;&lt;br /&gt;GO&lt;br /&gt;The partition switch fails with the following message. &lt;br /&gt;Msg 7733, Level 16, State 4, Line 1&lt;br /&gt;‘ALTER TABLE SWITCH’ statement failed. The table ‘FileStreamTestDB.dbo.DocumentStore’ is partitioned while index ‘UQ_Document_8CC1617F60ED59’ is not partitioned.&lt;br /&gt;Disabling the unique index in the source table and trying again gives the following code.&lt;br /&gt;Transact-SQL &lt;br /&gt;ALTER INDEX [UQ__Document__8CC331617F60ED59] ON DocumentStore DISABLE;&lt;br /&gt;GO&lt;br /&gt;ALTER TABLE FileStreamTest3 SWITCH PARTITION 2 TO NonPartitionedFileStreamTest3;&lt;br /&gt;GO&lt;br /&gt;This also fails, with the following message.&lt;br /&gt;Msg 4947, Leve 16, State 1, Line 1&lt;br /&gt;ALTER TABLE SWITCH statement failed. There is no identical index in source table ‘FileStreamTestDB.dbo.DocumentStore’ for the index ‘UQ_NonParti_8CC3316103317E3D’ in target table ‘FileStreamTestDB.dbo.NonPartitionedDocumentStore’.&lt;br /&gt;The unique indexes in both the partitioned and nonpartitioned tables must be disabled before the switch can proceed.&lt;br /&gt;Transact-SQL &lt;br /&gt;ALTER INDEX [UQ__NonParti__8CC3316103317E3D] ON NonPartitionedDocumentStore DISABLE;&lt;br /&gt;GO&lt;br /&gt;ALTER TABLE DocumentStore SWITCH PARTITION 2 TO NonPartitionedDocumentStore;&lt;br /&gt;GO&lt;br /&gt;ALTER INDEX [UQ__NonParti__8CC3316103317E3D] ON&lt;br /&gt;NonPartitionedDocumentStore REBUILD WITH (ONLINE = ON);&lt;br /&gt;ALTER INDEX [UQ__Document__8CC331617F60ED59] ON&lt;br /&gt;NonPartitionedDocumentStore REBUILD WITH (ONLINE = ON);&lt;br /&gt;GO&lt;br /&gt;More information on partitioning FILESTREAM data will be included in the upcoming white paper on partitioning in SQL Server 2008.&lt;br /&gt;Load Balancing of FILESTREAM Data&lt;br /&gt;Partitioning can also be used to create a table schema that allows crude load balancing of FILESTREAM data between multiple volumes. This may be desirable for a variety of reasons such as hardware limitations or to allow hot-spots in a table to be stored on different volumes.&lt;br /&gt;The following code shows a partitioning function and schema based on the uniqueidentifier column that effectively spreads the FILESTREAM data across 16 volumes, while striping the structured data across two filegroups.&lt;br /&gt;Transact-SQL &lt;br /&gt;USE master;&lt;br /&gt;GO&lt;br /&gt;-- Create the database&lt;br /&gt;CREATE DATABASE Production ON PRIMARY&lt;br /&gt;       (NAME = 'Production', FILENAME = 'E:\Production\Production.mdf'),&lt;br /&gt;FILEGROUP DataFilegroup1&lt;br /&gt;       (NAME = 'Data_FG1', FILENAME = 'F:\Production\Data_FG1.ndf'),&lt;br /&gt;FILEGROUP DataFilegroup2&lt;br /&gt;       (NAME = 'Data_FG2', FILENAME = 'G:\Production\Data_FG2.ndf'),&lt;br /&gt;FILEGROUP FSFilegroup0 CONTAINS FILESTREAM&lt;br /&gt;       (NAME = 'FS_FG0', FILENAME = 'H:\Production\FS_FG0'),&lt;br /&gt;FILEGROUP FSFilegroup1 CONTAINS FILESTREAM&lt;br /&gt;       (NAME = 'FS_FG1', FILENAME = 'I:\Production\FS_FG1'),&lt;br /&gt;FILEGROUP FSFilegroup2 CONTAINS FILESTREAM&lt;br /&gt;       (NAME = 'FS_FG2', FILENAME = 'J:\Production\FS_FG2'),&lt;br /&gt;FILEGROUP FSFilegroup3 CONTAINS FILESTREAM&lt;br /&gt;       (NAME = 'FS_FG3', FILENAME = 'K:\Production\FS_FG3'),&lt;br /&gt;FILEGROUP FSFilegroup4 CONTAINS FILESTREAM&lt;br /&gt;       (NAME = 'FS_FG4', FILENAME = 'L:\Production\FS_FG4'),&lt;br /&gt;FILEGROUP FSFilegroup5 CONTAINS FILESTREAM&lt;br /&gt;       (NAME = 'FS_FG5', FILENAME = 'M:\Production\FS_FG5'),&lt;br /&gt;FILEGROUP FSFilegroup6 CONTAINS FILESTREAM&lt;br /&gt;       (NAME = 'FS_FG6', FILENAME = 'N:\Production\FS_FG6'),&lt;br /&gt;FILEGROUP FSFilegroup7 CONTAINS FILESTREAM&lt;br /&gt;       (NAME = 'FS_FG7', FILENAME = 'O:\Production\FS_FG7'),&lt;br /&gt;FILEGROUP FSFilegroup8 CONTAINS FILESTREAM&lt;br /&gt;       (NAME = 'FS_FG8', FILENAME = 'P:\Production\FS_FG8'),&lt;br /&gt;FILEGROUP FSFilegroup9 CONTAINS FILESTREAM&lt;br /&gt;       (NAME = 'FS_FG9', FILENAME = 'Q:\Production\FS_FG9'),&lt;br /&gt;FILEGROUP FSFilegroupA CONTAINS FILESTREAM&lt;br /&gt;       (NAME = 'FS_FGA', FILENAME = 'R:\Production\FS_FGA'),&lt;br /&gt;FILEGROUP FSFilegroupB CONTAINS FILESTREAM&lt;br /&gt;       (NAME = 'FS_FGB', FILENAME = 'S:\Production\FS_FGB'),&lt;br /&gt;FILEGROUP FSFilegroupC CONTAINS FILESTREAM&lt;br /&gt;       (NAME = 'FS_FGC', FILENAME = 'T:\Production\FS_FGC'),&lt;br /&gt;FILEGROUP FSFilegroupD CONTAINS FILESTREAM&lt;br /&gt;       (NAME = 'FS_FGD', FILENAME = 'U:\Production\FS_FGD'),&lt;br /&gt;FILEGROUP FSFilegroupE CONTAINS FILESTREAM&lt;br /&gt;       (NAME = 'FS_FGE', FILENAME = 'V:\Production\FS_FGE'),&lt;br /&gt;FILEGROUP FSFilegroupF CONTAINS FILESTREAM&lt;br /&gt;       (NAME = 'FS_FGF', FILENAME = 'W:\Production\FS_FGF');&lt;br /&gt;GO&lt;br /&gt;USE Production;&lt;br /&gt;GO&lt;br /&gt;-- Create a partition function based on the last 6 bytes of the GUID&lt;br /&gt;CREATE PARTITION FUNCTION LoadBalance_PF (UNIQUEIDENTIFIER)&lt;br /&gt;AS RANGE LEFT FOR VALUES (&lt;br /&gt;      CONVERT (uniqueidentifier, '00000000-0000-0000-0000-100000000000'),&lt;br /&gt;      CONVERT (uniqueidentifier, '00000000-0000-0000-0000-200000000000'),&lt;br /&gt;      CONVERT (uniqueidentifier, '00000000-0000-0000-0000-300000000000'),&lt;br /&gt;      CONVERT (uniqueidentifier, '00000000-0000-0000-0000-400000000000'),&lt;br /&gt;      CONVERT (uniqueidentifier, '00000000-0000-0000-0000-500000000000'),&lt;br /&gt;      CONVERT (uniqueidentifier, '00000000-0000-0000-0000-600000000000'),&lt;br /&gt;      CONVERT (uniqueidentifier, '00000000-0000-0000-0000-700000000000'),&lt;br /&gt;      CONVERT (uniqueidentifier, '00000000-0000-0000-0000-800000000000'),&lt;br /&gt;      CONVERT (uniqueidentifier, '00000000-0000-0000-0000-900000000000'),&lt;br /&gt;      CONVERT (uniqueidentifier, '00000000-0000-0000-0000-a00000000000'),&lt;br /&gt;      CONVERT (uniqueidentifier, '00000000-0000-0000-0000-b00000000000'),&lt;br /&gt;      CONVERT (uniqueidentifier, '00000000-0000-0000-0000-c00000000000'),&lt;br /&gt;      CONVERT (uniqueidentifier, '00000000-0000-0000-0000-d00000000000'),&lt;br /&gt;      CONVERT (uniqueidentifier, '00000000-0000-0000-0000-e00000000000'),&lt;br /&gt;      CONVERT (uniqueidentifier, '00000000-0000-0000-0000-f00000000000'));&lt;br /&gt;GO&lt;br /&gt;-- Create a filestream partitioning scheme that allows mapping to 16 filestream filegroups&lt;br /&gt;CREATE PARTITION SCHEME LoadBalance_FS_PS&lt;br /&gt;AS PARTITION LoadBalance_PF TO (&lt;br /&gt;       FSFileGroup0, FSFileGroup1, FSFileGroup2, FSFileGroup3,&lt;br /&gt;       FSFileGroup4, FSFileGroup5, FSFileGroup6, FSFileGroup7,&lt;br /&gt;       FSFileGroup8, FSFileGroup9, FSFileGroupA, FSFileGroupB,&lt;br /&gt;       FSFileGroupC, FSFileGroupD, FSFileGroupE, FSFileGroupF);&lt;br /&gt;GO&lt;br /&gt;-- Create a data partitioning scheme to round-robin between two filegroups&lt;br /&gt;CREATE PARTITION SCHEME LoadBalance_Data_PS&lt;br /&gt;AS PARTITION LoadBalance_PF TO (&lt;br /&gt;       DataFileGroup1, DataFileGroup2, DataFileGroup1, DataFileGroup2,&lt;br /&gt;       DataFileGroup1, DataFileGroup2, DataFileGroup1, DataFileGroup2,&lt;br /&gt;       DataFileGroup1, DataFileGroup2, DataFileGroup1, DataFileGroup2,&lt;br /&gt;       DataFileGroup1, DataFileGroup2, DataFileGroup1, DataFileGroup2);&lt;br /&gt;GO&lt;br /&gt;-- Create the partitioned table&lt;br /&gt;CREATE TABLE DocumentStore (&lt;br /&gt;       DocumentID INT IDENTITY,&lt;br /&gt;       Document VARBINARY (MAX) FILESTREAM NULL,&lt;br /&gt;       DocGUID UNIQUEIDENTIFIER NOT NULL ROWGUIDCOL&lt;br /&gt;              DEFAULT NEWID (),&lt;br /&gt;       CONSTRAINT DocStorePK PRIMARY KEY CLUSTERED (DocGUID),&lt;br /&gt;       CONSTRAINT DocStoreU UNIQUE (DocGUID))&lt;br /&gt;ON LoadBalance_Data_PS (DocGUID)&lt;br /&gt;FILESTREAM_ON LoadBalance_FS_PS;&lt;br /&gt;GO&lt;br /&gt;The load balancing can be easily tested using the following code.&lt;br /&gt;Transact-SQL &lt;br /&gt;SET NOCOUNT ON;&lt;br /&gt;GO&lt;br /&gt;-- Insert 10000 rows to test load balancing&lt;br /&gt;DECLARE @count INT = 0;&lt;br /&gt;WHILE (@count &lt; 10000)&lt;br /&gt;BEGIN&lt;br /&gt;       INSERT INTO DocumentStore DEFAULT VALUES;&lt;br /&gt;       SET @count = @count + 1;&lt;br /&gt;END;&lt;br /&gt;GO&lt;br /&gt;-- Check the distribution&lt;br /&gt;SELECT COUNT ($PARTITION.LoadBalance_PF (DocGUID))&lt;br /&gt;FROM DocumentStore&lt;br /&gt;GROUP BY $PARTITION.LoadBalance_PF (DocGUID);&lt;br /&gt;GO&lt;br /&gt;The results of a sample run of this test were 631, 641, 661, 640, 649, 637, 618, 618, 576, 608, 595, 645, 640, 616, 602, and 623 rows in each of the FILESTREAM filegroups FS_FG0 through FS_FGF.&lt;br /&gt;Feature Combinations and Restrictions&lt;br /&gt;Because the FILESTREAM feature stores data within the file system, there are some restrictions and considerations when FILESTREAM is combined with other SQL Server features. This section gives an overview of the feature combinations to be aware of. For more information, see the SQL Server 2008 Books Online topic “Using FILESTREAM with Other SQL Server Features” ( http://msdn.microsoft.com/en-us/library/bb895334.aspx).&lt;br /&gt;Replication&lt;br /&gt;Both transactional replication and merge replication support FILESTREAM data, but there are many considerations such as:&lt;br /&gt;• When the replication topology involves instances using different versions of SQL Server, there are limitations on the size of data than can be sent to down-level instances.&lt;br /&gt;• The replication filter options determine whether the FILESTREAM attribute is replicated or not using transactional replication.&lt;br /&gt;• The varbinary (max) maximum data value size that can be replicated in transactional replication without replicating the FILESTREAM attribute is 2 GB.&lt;br /&gt;• When merge replication is used, both it and FILESTREAM require a uniqueidentifier column. Care must be taken with the table schema when using merge replication so that the GUIDs are sequential (i.e., use NEWSEQUENTIALID() rather than NEWID()).&lt;br /&gt;Database Mirroring&lt;br /&gt;Database mirroring does not support FILESTREAM. A FILESTREAM filegroup cannot be created on the principal server. Database mirroring cannot be configured for a database that contains FILESTREAM filegroups.&lt;br /&gt;Encryption&lt;br /&gt;FILESTREAM data cannot be encrypted using SQL Server encryption methods. If transparent data encryption is enabled, FILESTREAM data is not encrypted.&lt;br /&gt;Failover Clustering&lt;br /&gt;FILESTREAM is fully supported with failover clustering. All nodes in the cluster must have FILESTREAM enabled at the Windows level, and the FILESTREAM data container(s) must be placed on shared storage so the data is available to all nodes. For more information, see the SQL Server 2008 Books Online topic: “How to: Set Up FILESTREAM on a Failover Cluster” ( http://msdn.microsoft.com/en-us/library/cc645886.aspx).&lt;br /&gt;Full-Text&lt;br /&gt;Full-text indexing works with a FILESTREAM column in exactly the same way that it does with a varbinary (max) column. The table must have an extra column that contains the file name extension for the BLOB data being stored in the FILESTREAM column.&lt;br /&gt;Database Snapshots&lt;br /&gt;SQL Server does not support database snapshots for FILESTREAM data containers. If a FILESTREAM data file is included in a CREATE DATABASE ON clause, the statement will fail and an error will be raised.&lt;br /&gt;If a database contains FILESTREAM data, a database snapshot of regular filegroups can still be created. In this case, a warning message will be returned and the FILESTREAM filegroups will be marked as offline in the database snapshot. Queries will work as expected against the database snapshot unless they attempt to access the FILESTREAM data. If this happens an error will result.&lt;br /&gt;A database cannot be reverted to a snapshot if the database contains FILESTREAM data, because there is no way to tell what state the FILESTREAM data was in at the point in time represented by the database snapshot.&lt;br /&gt;Views, Indexes, Statistics, Triggers, and Constraints&lt;br /&gt;FILESTREAM columns cannot be part of an index key or specified as an INCLUDE column in a nonclustered index. A computed column can be defined that references a FILESTREAM column, but the computed column cannot be indexed.&lt;br /&gt;Statistics cannot be created on FILESTREAM columns.&lt;br /&gt;PRIMARY KEY, FOREIGN KEY, and UNIQUE constraints cannot be created on FILESTREAM columns.&lt;br /&gt;Indexed views cannot contain FILESTREAM columns; however, nonindexed views can.&lt;br /&gt;Instead-of triggers cannot be defined on tables that contain FILESTREAM columns.&lt;br /&gt;Isolation Levels&lt;br /&gt;When FILESTREAM data is accessed through the Win32 APIs, only the read-committed isolation level is supported. Transact-SQL access also allows the repeatable-read and serializable isolation levels. Furthermore, using Transact-SQL access, dirty reads are permitted through the read-uncommitted isolation level, or the NOLOCK query hint, but such access will not show in-flight updates of FILESTREAM data.&lt;br /&gt;Backup and Restore&lt;br /&gt;FILESTREAM works with all recovery models and all forms of backup and restore (full, differential, and log). In a disaster situation, if the CONTINUE_AFTER_ERROR option is specified on either a BACKUP or RESTORE option, the FILESTREAM data may not recover with zero data loss (similar to recovery of regular data when CONTINUE_AFTER_ERROR is specified).&lt;br /&gt;Security&lt;br /&gt;The SQL Server instance must be configured to use integrated security if Win32 access to the FILESTREAM data is required.&lt;br /&gt;Log Shipping&lt;br /&gt;Log shipping supports FILESTREAM. Both the primary and secondary servers must be running SQL Server 2008, or a later version, and have FILESTREAM enabled at the Windows level.&lt;br /&gt;SQL Server Express&lt;br /&gt;SQL Server Express supports FILESTREAM. The 4-GB database size limit does not include the FILESTREAM data container.&lt;br /&gt;However, if FILESTREAM data is being sent to or from the SQL Server Express instance using Service Broker, then care must be taken, because Service Broker does not support storing data as FILESTREAM in the transmission or target queues. This means that if either queue builds up, the 4-GB database size limit may be reached.&lt;br /&gt;An alternative in this case is to use a scheme where the Service Broker conversation carries notifications that FILESTREAM data needs to be sent or received. Then the actual transmission of the FILESTREAM data is done using remote access through the FILESTREAM share of the SQL Server Express instance’s FILESTREAM data container.&lt;br /&gt;Performance Tuning and Benchmarking Considerations&lt;br /&gt;There are several important considerations when tuning a FILESTREAM workload:&lt;br /&gt;• Ensure that the hardware is configured correctly for FILESTREAM.&lt;br /&gt;• Ensure that the generation of 8.3 names is disabled in NTFS.&lt;br /&gt;• Ensure that last access time tracking is disabled in NTFS.&lt;br /&gt;• Ensure that the FILESTREAM data container is not on a fragmented volume.&lt;br /&gt;• Ensure that the BLOB data size is appropriate for storing with FILESTREAM. &lt;br /&gt;• Ensure that the FILESTREAM data containers have their own, dedicated volumes.&lt;br /&gt;One important factor to point out is the buffer size used by the SMB protocol that is used for buffering reads of FILESTREAM data. In testing using the Windows Server® 2003 operating system, larger buffer sizes tend to get better throughput, with buffer sizes of a multiple of approximately 60 KB. Larger buffer sizes may be more efficient on other operating systems.&lt;br /&gt;There are additional considerations when comparing a FILESTREAM workload against other storage options (once the FILESTREAM workload has been tuned):&lt;br /&gt;• Ensure that the storage hardware and RAID level is the same for both.&lt;br /&gt;• Ensure that the volume compression setting is the same for both.&lt;br /&gt;• Take into account whether FILESTREAM is performing write-through based on the API in use and options specified.&lt;br /&gt;Data Migration Considerations&lt;br /&gt;A common scenario using SQL Server 2008 will be the migration of existing BLOB data into FILESTREAM storage. While providing a complete tool or set of code to perform such migrations is beyond the scope of this white paper, the following is a simple workflow to follow:&lt;br /&gt;• Review the data size considerations for using FILESTREAM to ensure that the average data sizes involved are such that FILESTREAM storage is appropriate.&lt;br /&gt;• Review the available information on feature combinations and limitations to ensure that FILESTREAM storage will work with all other requirements of the application.&lt;br /&gt;• Follow the recommendations in the “Performance Tuning and Benchmarking Considerations” section earlier.&lt;br /&gt;• Ensure that the SQL Server instance is using integrated security and that FILESTREAM has been enabled at the Windows and SQL Server levels.&lt;br /&gt;• Ensure that the target FILESTREAM data container location has enough disk space to store the migrated BLOB data.&lt;br /&gt;• Create the required FILESTREAM filegroups.&lt;br /&gt;• Duplicate the table schemas involved, changing the required BLOB columns to be FILESTREAM.&lt;br /&gt;• Migrate all non-BLOB data to the new schema.&lt;br /&gt;• Migrate all BLOB data into the new FILESTREAM columns.&lt;br /&gt;FILESTREAM Usage Best Practices&lt;br /&gt;This section is a collection of best practices that have emerged from FILESTREAM usage during the prerelease internal and public testing of the feature. As with all best practices, these are generalizations and they may not apply to every situation and scenario. The best practices are as follows, in no particular order:&lt;br /&gt;• Multiple small appends to a FILESTREAM file should be avoided if possible, as each append creates a whole new FILESTREAM file. This could be very expensive for large FILESTREAM files. If possible, multiple appends should be bunched together into a varbinary (max) column and then appended to the FILESTREAM column when a size threshold is reached.&lt;br /&gt;• With a heavily multithreaded write workload, consider setting the AllocationSize parameter for the OpenSqlFilestream or SqlFilestream APIs. Higher initial allocation sizes will limit the potential for fragmentation at the file-system level, especially when combined with a large NTFS cluster size as described previously.  &lt;br /&gt;• If FILESTREAM files are large, avoid Transact-SQL updates that append or pre-pend data to a file. This will (generally) spool data into tempdb and back into a new physical file, which will affect performance.&lt;br /&gt;• When reading a FILESTREAM value, consider the following:&lt;br /&gt;o If reads require only reading the first few bytes, than consider substring functionality.&lt;br /&gt;o If entire file is to be read, consider Win32 access.&lt;br /&gt;o If random portions of the file are to be read, consider opening the file handle using SetFilePointer. &lt;br /&gt;o When reading an entire file, specify the FILE_SEQUENTIAL_ONLY flag.&lt;br /&gt;o Use buffers sized in multiples of 60 KB (as described earlier).&lt;br /&gt;The size of a FILESTREAM file can be obtained without having to open a handle to the file by adding a persisted computed column to the table that stores the FILESTREAM file size. The computed column is updated while the file is already open for write operations.&lt;br /&gt;Conclusion&lt;br /&gt;This white paper has described the FILESTREAM feature of SQL Server 2008 that allows storage of and efficient access to BLOB data using a combination of SQL Server 2008 and the NTFS file system. To conclude, it is worth reiterating the major points made during the white paper.&lt;br /&gt;FILESTREAM storage is not appropriate in all cases. Based on prior research and FILESTREAM feature behavior, BLOB data of size 1 MB and larger that will not be accessed through Transact-SQL is best suited to storing as FILESTREAM data. &lt;br /&gt;Consideration must also be given to the update workload, as any partial update to a FILESTREAM file will generate a complete copy of the file. With a particularly heavy update workload, the performance may be such that FILESTREAM is not appropriate.&lt;br /&gt;The details of feature combinations should be studied to ensure that the deployment succeeds. For instance, in SQL Server 2008 RTM, database mirroring cannot be used FILESTREAM data, nor can either flavor of snapshot isolation. Most other feature combinations are supported, but some may have limitations (such as replication). This white paper does not provide an exhaustive taxonomy of features and their interaction so the most recent SQL Server Books Online sections should be checked prior to deployment, especially as some limitations are likely to be lifted in future releases.&lt;br /&gt;Finally, if FILESTREAM is deployed without correctly configuring Windows and SQL Server, the anticipated performance levels may not be reached. The best practices and configuration details described above should be used to help avoid performance problems.&lt;br /&gt;&lt;br /&gt;For more information:&lt;br /&gt;&lt;a href="http://www.microsoft.com/sqlserver/"&gt;http://www.microsoft.com/sqlserver/&lt;/a&gt;: SQL Server Web site&lt;br /&gt;&lt;a href="http://technet.microsoft.com/en-us/sqlserver/"&gt;http://technet.microsoft.com/en-us/sqlserver/&lt;/a&gt;: SQL Server TechCenter &lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/sqlserver/"&gt;http://msdn.microsoft.com/en-us/sqlserver/&lt;/a&gt;: SQL Server DevCenter&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/94644964849764651-5837982610100170151?l=vpdejesus.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vpdejesus.blogspot.com/feeds/5837982610100170151/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://vpdejesus.blogspot.com/2009/10/filestream-storage-in-sql-server-2008.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/94644964849764651/posts/default/5837982610100170151'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/94644964849764651/posts/default/5837982610100170151'/><link rel='alternate' type='text/html' href='http://vpdejesus.blogspot.com/2009/10/filestream-storage-in-sql-server-2008.html' title='FILESTREAM Storage in SQL Server 2008'/><author><name>Vincent Paul de Jesus</name><uri>http://www.blogger.com/profile/17390332765792775907</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://3.bp.blogspot.com/_QDHj8MjF_LI/SickN6SGOiI/AAAAAAAAAAM/euNq1B9omeg/S220/VPDJ.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_QDHj8MjF_LI/SuKTXg2nM4I/AAAAAAAAAH8/L5JArSVsgkM/s72-c/SQL+2008.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-94644964849764651.post-7621815435114828110</id><published>2009-10-22T10:00:00.000-07:00</published><updated>2009-10-23T22:32:26.320-07:00</updated><title type='text'>Pretty Filipina Actress</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_QDHj8MjF_LI/SuCQjsZJq4I/AAAAAAAAAH0/V4XL9V6feWs/s1600-h/cristine-reyes.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 220px; height: 400px;" src="http://2.bp.blogspot.com/_QDHj8MjF_LI/SuCQjsZJq4I/AAAAAAAAAH0/V4XL9V6feWs/s400/cristine-reyes.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5395471296476326786" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I can't help but post this photo of Filipina actress Cristine Reyes. She was one of the victims of the typhoon "Ondoy" in the Philippines. Fortunately, she was rescued. Her 2-storey home was flooded. She and her family stayed on the roof of their house for many hours before being rescued.&lt;br /&gt;&lt;br /&gt;She has a new movie titled &lt;a href="http://www.igma.tv/video/8745/Showbiz-Central-Patient-X-malapit-nang-manakot"&gt;"Patient X"&lt;/a&gt;, a horror movie.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/94644964849764651-7621815435114828110?l=vpdejesus.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vpdejesus.blogspot.com/feeds/7621815435114828110/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://vpdejesus.blogspot.com/2009/10/pretty-filipina-actress.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/94644964849764651/posts/default/7621815435114828110'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/94644964849764651/posts/default/7621815435114828110'/><link rel='alternate' type='text/html' href='http://vpdejesus.blogspot.com/2009/10/pretty-filipina-actress.html' title='Pretty Filipina Actress'/><author><name>Vincent Paul de Jesus</name><uri>http://www.blogger.com/profile/17390332765792775907</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://3.bp.blogspot.com/_QDHj8MjF_LI/SickN6SGOiI/AAAAAAAAAAM/euNq1B9omeg/S220/VPDJ.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_QDHj8MjF_LI/SuCQjsZJq4I/AAAAAAAAAH0/V4XL9V6feWs/s72-c/cristine-reyes.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-94644964849764651.post-2426283641209126406</id><published>2009-10-16T10:34:00.000-07:00</published><updated>2009-10-16T18:49:31.649-07:00</updated><title type='text'>How to Save an Image to SQL Server Database and Display it in an Image Control in ASP.Net</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_QDHj8MjF_LI/StixxkeTpaI/AAAAAAAAAHE/0PtLCw9UURU/s1600-h/ImageUpload.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 212px;" src="http://4.bp.blogspot.com/_QDHj8MjF_LI/StixxkeTpaI/AAAAAAAAAHE/0PtLCw9UURU/s320/ImageUpload.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5393256018938668450" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I have been searching the net about this feature to be incorporated in my own project. Now, I have found a way and I'm gonna share it with you.&lt;br /&gt;&lt;br /&gt;If you want to know how to save an image in SQL Server and retrieve that image and display it in an Image Control in ASP.Net like the photo above, please follow the link of the tutorial. Click &lt;a href="http://vpdejesus.tech.officelive.com/Documents/Saving Image and Attaching.doc"&gt;here&lt;/a&gt; for the tutorial. &lt;br /&gt;&lt;br /&gt;This will help you with your own project.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/94644964849764651-2426283641209126406?l=vpdejesus.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vpdejesus.blogspot.com/feeds/2426283641209126406/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://vpdejesus.blogspot.com/2009/10/how-to-save-image-to-sql-server-and.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/94644964849764651/posts/default/2426283641209126406'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/94644964849764651/posts/default/2426283641209126406'/><link rel='alternate' type='text/html' href='http://vpdejesus.blogspot.com/2009/10/how-to-save-image-to-sql-server-and.html' title='How to Save an Image to SQL Server Database and Display it in an Image Control in ASP.Net'/><author><name>Vincent Paul de Jesus</name><uri>http://www.blogger.com/profile/17390332765792775907</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://3.bp.blogspot.com/_QDHj8MjF_LI/SickN6SGOiI/AAAAAAAAAAM/euNq1B9omeg/S220/VPDJ.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_QDHj8MjF_LI/StixxkeTpaI/AAAAAAAAAHE/0PtLCw9UURU/s72-c/ImageUpload.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-94644964849764651.post-4642771100199121240</id><published>2009-10-10T00:35:00.000-07:00</published><updated>2009-10-10T00:50:06.462-07:00</updated><title type='text'>A new phone from HTC</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_QDHj8MjF_LI/StA8idMBGNI/AAAAAAAAAF8/-khCgEkwmaY/s1600-h/Download_06_HTC_Touch2.jpg"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 320px; height: 250px;" src="http://1.bp.blogspot.com/_QDHj8MjF_LI/StA8idMBGNI/AAAAAAAAAF8/-khCgEkwmaY/s320/Download_06_HTC_Touch2.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5390875316610734290" /&gt;&lt;/a&gt; HTC released a new mobile phone in HTC Touch2. It is built on top of the most advanced operating system on mobile called Windows Mobile platform. With HTC Touch2, you don't choose a phone, you choose to take charge of your life.&lt;br /&gt;&lt;br /&gt;Below is the specification of this new phone:&lt;br /&gt;&lt;br /&gt;Model HTC Touch2 (T3333) Processor Qualcomm® MSM7225™, 528 MHz Operating System Windows Mobile® 6.5 Professional Memory ROM: 512 MB&lt;br /&gt;RAM: 256 MB Dimensions (LxWxT) 104 X 55 X 12.9 mm (4.1 X 2.16 X 0.51 inches) Weight 110 grams (4 ounces) with battery Display 2.8-inch TFT-LCD touch-sensitive screen with QVGA resolution Network HSPA/WCDMA:&lt;br /&gt;• Europe/Asia: 900/2100 MHz&lt;br /&gt;• Up to 384 kbps up-link and 7.2 Mbps down-link speeds&lt;br /&gt;Quad-band GSM/GPRS/EDGE:&lt;br /&gt;• Europe/Asia: 850/900/1800/1900 MHz&lt;br /&gt;(Band frequency and data speed are operator dependent.)&lt;br /&gt;Device Control Zoom bar GPS Internal GPS antenna Connectivity Bluetooth® 2.1 with Enhanced Data Rate and A2DP for wireless stereo headsets&lt;br /&gt;Wi-Fi®: IEEE 802.11 b/g&lt;br /&gt;3.5 mm audio jack&lt;br /&gt;HTC ExtUSB™ (11-pin mini-USB 2.0) Camera 3.2 megapixel color camera with fixed focus Audio supported formats AAC, AAC+, eAAC+, AMR-NB, QCP, MP3, WMA, WAV, MIDI, M4A Video supported formats WMV, ASF, MP4, 3GP, 3G2, M4V, AVI Battery Rechargeable Lithium-ion battery&lt;br /&gt;Capacity: 1100 mAh&lt;br /&gt;Talk time: &lt;br /&gt;• Up to 370 minutes for WCDMA&lt;br /&gt;• Up to 440 minutes for GSM&lt;br /&gt;Standby time: &lt;br /&gt;• Up to 500 hours for WCDMA&lt;br /&gt;• Up to 370 hours for GSM&lt;br /&gt;(The above are subject to network and phone usage.)&lt;br /&gt;Expansion Slot microSD™ memory card (SD 2.0 compatible) AC Adapter Voltage range/frequency: 100 ~ 240V AC, 50/60 Hz&lt;br /&gt;DC output: 5V and 1A&lt;br /&gt;&lt;br /&gt;Visit HTC's home page &lt;a href="http://www.htc.com/sea/product/touch2/overview.html"&gt;here&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/94644964849764651-4642771100199121240?l=vpdejesus.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vpdejesus.blogspot.com/feeds/4642771100199121240/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://vpdejesus.blogspot.com/2009/10/new-phone-from-htc.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/94644964849764651/posts/default/4642771100199121240'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/94644964849764651/posts/default/4642771100199121240'/><link rel='alternate' type='text/html' href='http://vpdejesus.blogspot.com/2009/10/new-phone-from-htc.html' title='A new phone from HTC'/><author><name>Vincent Paul de Jesus</name><uri>http://www.blogger.com/profile/17390332765792775907</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://3.bp.blogspot.com/_QDHj8MjF_LI/SickN6SGOiI/AAAAAAAAAAM/euNq1B9omeg/S220/VPDJ.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_QDHj8MjF_LI/StA8idMBGNI/AAAAAAAAAF8/-khCgEkwmaY/s72-c/Download_06_HTC_Touch2.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-94644964849764651.post-3026066958794145296</id><published>2009-10-08T08:00:00.000-07:00</published><updated>2009-10-08T08:15:00.464-07:00</updated><title type='text'>Compilation in C# (.Net Framework)</title><content type='html'>In this article you will find an idea how a C# compiler executes in .Net.&lt;br /&gt;&lt;br /&gt;The C# compiler compiles source code, specified as a set of files with the .cs extension, into an assembly. An &lt;span style="font-style:italic;"&gt;assembly&lt;/span&gt; is the unit of packaging and deployment in .Net, and it can be either an application or a library. A normal console or Windows application has a Main method and is an &lt;span style="font-style:italic;"&gt;.exe.&lt;/span&gt; A &lt;span style="font-style:italic;"&gt;library&lt;/span&gt; is a .dll, and is equivalent to an .exe without an entry point. Its purpose is to be called upon (referenced) by an application or by other libraries. The .Net Framework is a set of libraries. (Think of a library as a tool to be used in an application that provides a certain function or task for the program.)&lt;br /&gt;&lt;br /&gt;The name of the C# compiler is &lt;span style="font-style:italic;"&gt;csc.exe&lt;/span&gt;. You can either use an IDE such as Visual Studio.Net to call csc automatically, or compile manually from the command line. To compile manually, first save a program to a file such as &lt;span style="font-style:italic;"&gt;MyProgram.cs&lt;/span&gt;, and then invoke csc (located under &lt;windows&gt;/Microsoft.Net/Framework) from the command line, as follows: This produces an application named &lt;span style="font-weight:bold;"&gt;MyProgram.exe&lt;/span&gt;. To produce a library (.dll), you'd do the following:&lt;br /&gt;&lt;br /&gt;csc /target:library MyProgram.cs&lt;br /&gt;&lt;br /&gt;Try this one and find out how C# compiles in .Net.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/94644964849764651-3026066958794145296?l=vpdejesus.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vpdejesus.blogspot.com/feeds/3026066958794145296/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://vpdejesus.blogspot.com/2009/10/compilation-in-c-net-framework.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/94644964849764651/posts/default/3026066958794145296'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/94644964849764651/posts/default/3026066958794145296'/><link rel='alternate' type='text/html' href='http://vpdejesus.blogspot.com/2009/10/compilation-in-c-net-framework.html' title='Compilation in C# (.Net Framework)'/><author><name>Vincent Paul de Jesus</name><uri>http://www.blogger.com/profile/17390332765792775907</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://3.bp.blogspot.com/_QDHj8MjF_LI/SickN6SGOiI/AAAAAAAAAAM/euNq1B9omeg/S220/VPDJ.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-94644964849764651.post-5737381825241114108</id><published>2009-10-06T22:47:00.000-07:00</published><updated>2009-10-06T22:51:32.669-07:00</updated><title type='text'>Free Ebooks And Magazines For IT Professionals, Etc.</title><content type='html'>Hi friends!&lt;br /&gt;&lt;br /&gt;I haven't posted an article lately. But, I just want to inform all IT Professionals and Technology enthusiast that you can subscribe and download free ebooks and magazines by clicking the banner above this post or the TradePub image at the right side of this blog.&lt;br /&gt;&lt;br /&gt;The site offers you not only IT ebooks and magazines for free but other industries as well like agriculture, automotive, business, engineering, etc.&lt;br /&gt;&lt;br /&gt;Please subscribe.&lt;br /&gt;&lt;br /&gt;Thanks!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/94644964849764651-5737381825241114108?l=vpdejesus.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vpdejesus.blogspot.com/feeds/5737381825241114108/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://vpdejesus.blogspot.com/2009/10/free-ebooks-and-magazines-for-it.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/94644964849764651/posts/default/5737381825241114108'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/94644964849764651/posts/default/5737381825241114108'/><link rel='alternate' type='text/html' href='http://vpdejesus.blogspot.com/2009/10/free-ebooks-and-magazines-for-it.html' title='Free Ebooks And Magazines For IT Professionals, Etc.'/><author><name>Vincent Paul de Jesus</name><uri>http://www.blogger.com/profile/17390332765792775907</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://3.bp.blogspot.com/_QDHj8MjF_LI/SickN6SGOiI/AAAAAAAAAAM/euNq1B9omeg/S220/VPDJ.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-94644964849764651.post-4712605410477083648</id><published>2009-09-23T08:58:00.000-07:00</published><updated>2009-09-23T09:00:11.745-07:00</updated><title type='text'>What is Managed Code in .Net?</title><content type='html'>Managed code is code that has its execution managed by the .NET Framework Common Language Runtime. It refers to a contract of cooperation between natively executing code and the runtime. This contract specifies that at any point of execution, the runtime may stop an executing CPU and retrieve information specific to the current CPU instruction address. Information that must be query-able generally pertains to runtime state, such as register or stack memory contents. &lt;a href="http://blogs.msdn.com/brada/archive/2004/01/09/48925.aspx"&gt;Read Full Article...&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/94644964849764651-4712605410477083648?l=vpdejesus.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vpdejesus.blogspot.com/feeds/4712605410477083648/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://vpdejesus.blogspot.com/2009/09/what-is-managed-code-in-net.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/94644964849764651/posts/default/4712605410477083648'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/94644964849764651/posts/default/4712605410477083648'/><link rel='alternate' type='text/html' href='http://vpdejesus.blogspot.com/2009/09/what-is-managed-code-in-net.html' title='What is Managed Code in .Net?'/><author><name>Vincent Paul de Jesus</name><uri>http://www.blogger.com/profile/17390332765792775907</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://3.bp.blogspot.com/_QDHj8MjF_LI/SickN6SGOiI/AAAAAAAAAAM/euNq1B9omeg/S220/VPDJ.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-94644964849764651.post-2436645992020254471</id><published>2009-09-23T08:57:00.000-07:00</published><updated>2009-09-23T08:58:50.741-07:00</updated><title type='text'>What is XML Web Services??</title><content type='html'>XML Web Services &lt;br /&gt;&lt;br /&gt;A Web Service (XML Web Service) is a unit of code that can be activated using HTTP requests. Stated another way, a Web Service is an application component that can be remotely callable using standard Internet Protocols such as HTTP and XML. One more definition can be, a Web Service is a programmable URL. Web Services came into existence to deliver distributed computing over the Internet. A major advantage of the Web services architecture is, it allows programs written in different languages on different platforms to communicate with each other in a standards-based way. Simply said, a Web service is a software service exposed on the Web through SOAP, described with a WSDL file and registered in UDDI. &lt;a href="http://www.startvbdotnet.com/web/default.aspx"&gt;Read Full Article...&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/94644964849764651-2436645992020254471?l=vpdejesus.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vpdejesus.blogspot.com/feeds/2436645992020254471/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://vpdejesus.blogspot.com/2009/09/what-is-xml-web-services.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/94644964849764651/posts/default/2436645992020254471'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/94644964849764651/posts/default/2436645992020254471'/><link rel='alternate' type='text/html' href='http://vpdejesus.blogspot.com/2009/09/what-is-xml-web-services.html' title='What is XML Web Services??'/><author><name>Vincent Paul de Jesus</name><uri>http://www.blogger.com/profile/17390332765792775907</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://3.bp.blogspot.com/_QDHj8MjF_LI/SickN6SGOiI/AAAAAAAAAAM/euNq1B9omeg/S220/VPDJ.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-94644964849764651.post-8864114731863076239</id><published>2009-09-09T09:47:00.000-07:00</published><updated>2009-09-09T09:55:28.321-07:00</updated><title type='text'>MonoDevelop 2.2 Beta With Windows and Mac OS Full Support</title><content type='html'>MonoDevelop has released their Beta version of MonoDevelop 2.2 that supports both Windows and Mac operating systems.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_QDHj8MjF_LI/Sqfc8BcFQ-I/AAAAAAAAAEA/xiMlR2CES5o/s1600-h/MacMainMenu.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 200px;" src="http://3.bp.blogspot.com/_QDHj8MjF_LI/Sqfc8BcFQ-I/AAAAAAAAAEA/xiMlR2CES5o/s320/MacMainMenu.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5379511203653829602" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_QDHj8MjF_LI/Sqfdv5LMbmI/AAAAAAAAAEI/s28SRfjwYGU/s1600-h/SteticWin32.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 241px;" src="http://1.bp.blogspot.com/_QDHj8MjF_LI/Sqfdv5LMbmI/AAAAAAAAAEI/s28SRfjwYGU/s320/SteticWin32.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5379512094788709986" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Read the whole features &lt;a href="http://monodevelop.com/Download/What%27s_new_in_MonoDevelop_2.2#Windows_Support"&gt;here&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/94644964849764651-8864114731863076239?l=vpdejesus.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vpdejesus.blogspot.com/feeds/8864114731863076239/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://vpdejesus.blogspot.com/2009/09/monodevelop-22-beta-with-windows-and.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/94644964849764651/posts/default/8864114731863076239'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/94644964849764651/posts/default/8864114731863076239'/><link rel='alternate' type='text/html' href='http://vpdejesus.blogspot.com/2009/09/monodevelop-22-beta-with-windows-and.html' title='MonoDevelop 2.2 Beta With Windows and Mac OS Full Support'/><author><name>Vincent Paul de Jesus</name><uri>http://www.blogger.com/profile/17390332765792775907</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://3.bp.blogspot.com/_QDHj8MjF_LI/SickN6SGOiI/AAAAAAAAAAM/euNq1B9omeg/S220/VPDJ.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_QDHj8MjF_LI/Sqfc8BcFQ-I/AAAAAAAAAEA/xiMlR2CES5o/s72-c/MacMainMenu.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-94644964849764651.post-7972823239603078777</id><published>2009-09-07T20:03:00.000-07:00</published><updated>2009-09-07T22:42:03.103-07:00</updated><title type='text'>As a Developer, ASP.Net / .Net or PHP?? What's your choice??</title><content type='html'>PHP is a very good technology but I have a lot of reasons why I choose ASP.Net or .Net in particular. One, if you are a .Net Developer, you are not limited to developing applications to web only. Using .Net, you can develop applications for desktop, web and mobile devices like cellphones (in Symbian OS, iPhone, Windows Mobile Devices) using one syntax or PL like VB.Net, C#, etc. Unlike PHP, it is a good technology but for the WEB ONLY!! .Net has also an opensource implementation in Mono (&lt;a href="http://www.mono-project.com"&gt;http://www.mono-project.com&lt;/a&gt; - backed by a company called Novell) and it has also its standard IDE in &lt;a href="http://www.monodevelop.com"&gt;MonoDevelop&lt;/a&gt;. So, as a .Net developer, you don’t have to worry about bringing your applications to run on Linux, Mac OS, Free BSD, Windows, etc. And what I like about ASP.Net Development over PHP is the PRODUCTIVITY in developing applications. Microsoft make it really easy for developers to develop applications on their platform by providing excellent developer tools. Let me reiterate that ASP.Net is a framework and it is free. There are also free tools provided by Microsoft called Visual Studio Express. In CMS tools, there are many free CMS tool you can choose from like Umbraco, DotNetNuke, Sitefinity, Graffitti, etc. ASP.Net as a framework compared to PHP has lots of advantages indeed especially if you are a .Net Developer. You can do a lot using the framework. But as a Software/Web Engineer, I don’t limit myself to .Net and will still use PHP if the need arises. It’s cheaper though (I mean the hosting) but as to my number one tool I still choose .Net coz IT ROCKS!!!!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/94644964849764651-7972823239603078777?l=vpdejesus.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vpdejesus.blogspot.com/feeds/7972823239603078777/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://vpdejesus.blogspot.com/2009/09/aspnet-net-or-php-whats-your-choice.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/94644964849764651/posts/default/7972823239603078777'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/94644964849764651/posts/default/7972823239603078777'/><link rel='alternate' type='text/html' href='http://vpdejesus.blogspot.com/2009/09/aspnet-net-or-php-whats-your-choice.html' title='As a Developer, ASP.Net / .Net or PHP?? What&apos;s your choice??'/><author><name>Vincent Paul de Jesus</name><uri>http://www.blogger.com/profile/17390332765792775907</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://3.bp.blogspot.com/_QDHj8MjF_LI/SickN6SGOiI/AAAAAAAAAAM/euNq1B9omeg/S220/VPDJ.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-94644964849764651.post-5658504279265961485</id><published>2009-09-04T06:39:00.000-07:00</published><updated>2009-09-04T07:09:35.926-07:00</updated><title type='text'>What is your Designer Tool? Microsoft Expression Studio 3 or Adobe CS4 Products?</title><content type='html'>Have you heard about the latest upgrade of the tool from Microsoft called Expression Studio??? Please read description below:&lt;br /&gt;&lt;br /&gt;Microsoft® Expression® Studio opens up a new world of creative possibility. Its professional design tools give you the freedom to make your vision real—whether you’re designing for standards-based Web sites, rich desktop experiences, or Silverlight.&lt;br /&gt;&lt;br /&gt;If you think and design visually, Expression® Studio is a perfect tool to enable you to create compelling, impactful and expressive designs for the desktop and the web. The visually rich technologies in Silverlight® and .NET offer amazing possibilities to bring your creative ideas to life using a range of design tools purpose built for the task.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Expression Web&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Expression Web makes creating compliant standards-based Web sites faster and easier.&lt;br /&gt;&lt;br /&gt;With a state-of-the-art design surface that generates clean CSS, you can make design decisions on the fly, knowing that you're seeing a faithful representation of the final browser-rendered page.&lt;br /&gt;&lt;br /&gt;Drag and drop controls simplify adding rich media, such as Silverlight from Expression Blend™, Flash, and Windows Media. And advanced Photoshop file import gives you complete control over imported layers.&lt;br /&gt;Code Support&lt;br /&gt;&lt;br /&gt;And if you like to work in the code, Expression Web has you covered there too. With support for a broad range of essential Web technologies, such as PHP, JavaScript, XML/XSLT, and ASP.NET you can use the same tool for both visual design and coding.&lt;br /&gt;&lt;br /&gt;If you work on a team with developers, use Expression Web to do what you do best - design - and make it easier for developers to do what they do best. Hand the project over to Visual Studio developers, knowing that you design will stay intact while they extend the site's functionality.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.microsoft.com/expression/products/Web_Overview.aspx"&gt;Find out more about Expression Web here »&lt;br /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Expression Blend&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Expression Blend is the tool for interaction design on the Silverlight and .NET platforms and enables user experience concepts to be delivered with full fidelity, from the initial prototype to the completed project.&lt;br /&gt;&lt;br /&gt;Since its introduction Expression Blend has helped remove the barriers and bottlenecks that have traditionally existed during the design and development process and Blend 3 has evolved the workflow further, enhancing the designer’s productivity while enabling maximum creativity within the time constraints designers work under on a daily basis.&lt;br /&gt;&lt;br /&gt;Visual designers can continue using the efficient workflows that you’ve built around Adobe Photoshop and Adobe Illustrator, once imported your assets retain their full fidelity and editability. Rapidly turn static Photoshop graphics or visual elements drawn in Expression Blend into rich data bound controls such as a custom sliders, scrollbars and listboxes.&lt;br /&gt;&lt;br /&gt;The ability to quickly bring an application and static graphics to life is powerful. Complex interactions can be encapsulated into simple reusable elements called Behaviors that as a designer you can easily apply via drag and drop, without writing any code.&lt;br /&gt;&lt;br /&gt;Building great applications requires both great design and great development for the application to reach its full potential. The powerful design and development workflow between Expression Blend and Visual Studio allows you to share projects, code, assets and designs for higher productivity and quality. No conversion, no recreation of graphics in code is needed, simply a silky smooth two-way workflow from designer to developer and back again.&lt;br /&gt;&lt;br /&gt;Powerful tools and streamlined workflows are more important today than ever. Expression Blend delivers a solution where your concepts and ideas can live through the entire project, end to the end, helping reduce wasted time and resources and deliver applications that exceed your client’s expectations for design, interactivity and usability.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.microsoft.com/expression/products/Blend_Overview.aspx"&gt;Find out more about Expression Blend here »&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;SketchFlow&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Rapid prototyping and iteration of your ideas is now possible through SketchFlow. SketchFlow prototypes are fast, easy and inexpensive to build, making it possible to create, explore and compare multiple ideas before moving forward with a solution.&lt;br /&gt;&lt;br /&gt;Traditionally prototypes are generally redundant after the concept phase and discarded. SketchFlow enables you to leverage any of the previous conceptual work, every asset and component created is reusable in your production project – no asset need go to waste.&lt;br /&gt;&lt;br /&gt;You are able to rapidly evolve your prototypes utilizing the full functionality of Expression Blend 3 with no limit to the scope of a prototype. Mock-up functional, data-driven user interfaces with data binding and sample data. Apply rich interactivity with Behaviors, without writing code, using extensible libraries of packaged interactivity building blocks. The ability to integrate with existing workflows by importing Adobe Photoshop and Illustrator files at full fidelity; preserving layers, vectors and even most text formatting accelerates your workflow further.&lt;br /&gt;&lt;br /&gt;From simple prototypes that are wireframes featuring low fidelity visuals to prototypes that are high fidelity, fully interactive and data driven, SketchFlow gives you the flexibility to experiment, evolve and demonstrate your concepts and ideas to clients in the most effective way possible. You have total flexibility and total control from concept to completion.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.microsoft.com/expression/products/Sketchflow_Overview.aspx"&gt;Find out more about SketchFlow here »&lt;br /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Expression Design&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Expression Design is a professional design tool for creating graphics content that can be used within the authoring applications in Expression Studio: Expression Blend and Expression Web.&lt;br /&gt;&lt;br /&gt;Expression Design with its range of powerful importing, slicing and exporting capabilities is the perfect complementary product to Expression Blend and Expression Web. Target both WPF and Silverlight projects in Expression Blend, export individual or multiple graphics as well as complete layouts as XAML (Extensible Application Markup Language). Expression Web can utilize JPEG, GIF, PNG and Silverlight assets as well as full HTML compositions you exported from Expression Design.&lt;br /&gt;&lt;br /&gt;A fully featured professional design surface gives the user visual creativity and the assurance that the underlying code being created is clean and purposeful. Users have confidence that what they see in the export dialog is a direct reflection of the final output of the finished project.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.microsoft.com/expression/products/Design_Overview.aspx"&gt;Find out more about Expression Design here »&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Expression Encoder&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Expression Encoder 3 provides the power of industry leading encoding, in a simple approachable interface to make it easy to prepare video for use in a variety of ways, including Silverlight on the Web.&lt;br /&gt;&lt;br /&gt;Video in a wide range of formats can be imported, simple edits made and graphic overlays added before a simple set of controls allow you to choose the right setting for your needs. The resulting encoded video can then be housed in a range of customizable player skins ready for instant deployment to the Web or a range of devices.&lt;br /&gt;&lt;br /&gt;Finally, you can use the brand new Expression Encoder screen capture application to record from your screen with webcam and microphone support to produce demo and training materials, again encoded to meet your needs.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.microsoft.com/expression/products/Encoder_Overview.aspx"&gt;Find out more about Expression Encoder here »&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Here's a short description of Adobe CS4:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Productivity is the new killer feature&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Independent research shows that Adobe® Creative Suite® 4 delivers significant increases in productivity, resulting in a potential return on investment of several thousand dollars per workstation per year.&lt;br /&gt;&lt;br /&gt;Products included with Adobe CS4 are:&lt;br /&gt;&lt;br /&gt;    * InDesign CS4&lt;br /&gt;    * Photoshop CS4 Extended&lt;br /&gt;    * Illustrator CS4&lt;br /&gt;    * Flash CS4 Professional&lt;br /&gt;    * Dreamweaver CS4&lt;br /&gt;    * Fireworks CS4&lt;br /&gt;    * Acrobat 9 Pro&lt;br /&gt;    * Adobe Bridge CS4&lt;br /&gt;    * Adobe Device Central CS4&lt;br /&gt;    * Version Cue CS4&lt;br /&gt;&lt;br /&gt;Microsoft and Adobe Tools for designers and developers are both excellent products but if I have to choose between the two, I would rather choose the Microsoft Expression Studio due to the following reasons:&lt;br /&gt;&lt;br /&gt;1. Its product integration with Visual Studio .Net is very tight. You can open   source code of your project in both Visual Studio and Expression Web. &lt;br /&gt;2. Microsoft make it easy for developers to develop their project using their tools. One thing that is important for me is &lt;span style="font-weight:bold;"&gt;PRODUCTIVITY&lt;/span&gt; and this tool has lots of it.&lt;br /&gt;3. Support and tutorials for the product even if still new is already vast.    &lt;br /&gt;&lt;br /&gt;They are both good products indeed.&lt;br /&gt;&lt;br /&gt;I still use Adobe products from time to time though particularly &lt;span style="font-weight:bold;"&gt;Photoshop&lt;/span&gt;. :-)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/94644964849764651-5658504279265961485?l=vpdejesus.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vpdejesus.blogspot.com/feeds/5658504279265961485/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://vpdejesus.blogspot.com/2009/09/what-is-your-designer-tool-microsoft.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/94644964849764651/posts/default/5658504279265961485'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/94644964849764651/posts/default/5658504279265961485'/><link rel='alternate' type='text/html' href='http://vpdejesus.blogspot.com/2009/09/what-is-your-designer-tool-microsoft.html' title='What is your Designer Tool? Microsoft Expression Studio 3 or Adobe CS4 Products?'/><author><name>Vincent Paul de Jesus</name><uri>http://www.blogger.com/profile/17390332765792775907</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://3.bp.blogspot.com/_QDHj8MjF_LI/SickN6SGOiI/AAAAAAAAAAM/euNq1B9omeg/S220/VPDJ.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-94644964849764651.post-1473289484498796891</id><published>2009-08-30T08:29:00.000-07:00</published><updated>2009-08-30T08:37:30.579-07:00</updated><title type='text'>Another CMS For ASP.Net</title><content type='html'>This article is a followup on my last article about CMS for ASP.Net. &lt;br /&gt;&lt;br /&gt;These two are of the many promising CMS for the Microsoft ASP.Net platform today. One is a CMS for enterprise and the other one is using Microsoft's latest technology called Silverlight. Check the following below:&lt;br /&gt;&lt;br /&gt;1. AxCMS (&lt;a href="http://www.axcms.net/en_axcms_home.AxCMS?ActiveID=5790"&gt;Enterprise Content Management&lt;/a&gt;)&lt;br /&gt;&lt;br /&gt;The AxCMS.net is a cost free Enterprise Content Management System. By integrating numerous modules the system offers a comprehensive list of features for creating and managing Inter-, Extra- and Intranet-presentations.&lt;br /&gt;&lt;br /&gt;2. Media Courtyard (&lt;a href="http://www.mediacourtyard.com/"&gt;ASP.Net CMS&lt;/a&gt;)&lt;br /&gt;&lt;br /&gt;The CMS package offered by Media Courtyard is one of the most advanced solutions available.  Utilizing the latest Silverlight technology to provide a simple but powerful and easy to use interface that makes everyday web content creation/management an easy and enjoyable task.&lt;br /&gt;&lt;br /&gt;Our CMS is based on .NET 3.5 and SQL Server database technology ensuring web pages are delivered to your visitors quickly and reliably.  The built-in membership system allows users to register to your website and contribute using the built-in commenting module.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/94644964849764651-1473289484498796891?l=vpdejesus.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vpdejesus.blogspot.com/feeds/1473289484498796891/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://vpdejesus.blogspot.com/2009/08/another-cms-for-aspnet.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/94644964849764651/posts/default/1473289484498796891'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/94644964849764651/posts/default/1473289484498796891'/><link rel='alternate' type='text/html' href='http://vpdejesus.blogspot.com/2009/08/another-cms-for-aspnet.html' title='Another CMS For ASP.Net'/><author><name>Vincent Paul de Jesus</name><uri>http://www.blogger.com/profile/17390332765792775907</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://3.bp.blogspot.com/_QDHj8MjF_LI/SickN6SGOiI/AAAAAAAAAAM/euNq1B9omeg/S220/VPDJ.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-94644964849764651.post-923389793065492790</id><published>2009-08-30T08:17:00.000-07:00</published><updated>2009-08-30T08:29:28.848-07:00</updated><title type='text'>Microsoft's Ad Agency has been sued...</title><content type='html'>Microsoft's Ad agency JWT and its parent WPP has been sued by a Delaware firm called Denizen which claims to have patented a particular program "The Philantropist" which Microsoft incorporated its Bing (their new search engine) Ad.&lt;br /&gt;&lt;br /&gt;Watch the video &lt;a href="http://www.youtube.com/watch?v=nt2r0ibNmJU&amp;eurl=http%3A%2F%2Fwww%2Ewebpronews%2Ecom%2Ftopnews%2F2009%2F08%2F28%2Fbing%2Dcommercials%2Dinfringe%2Don%2Dpatent&amp;feature=player_embedded"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Read the whole news article by Chris Crum &lt;a href="http://www.webpronews.com/topnews/2009/08/28/bing-commercials-infringe-on-patent"&gt;here&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/94644964849764651-923389793065492790?l=vpdejesus.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vpdejesus.blogspot.com/feeds/923389793065492790/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://vpdejesus.blogspot.com/2009/08/microsofts-ad-agency-has-been-sued.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/94644964849764651/posts/default/923389793065492790'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/94644964849764651/posts/default/923389793065492790'/><link rel='alternate' type='text/html' href='http://vpdejesus.blogspot.com/2009/08/microsofts-ad-agency-has-been-sued.html' title='Microsoft&apos;s Ad Agency has been sued...'/><author><name>Vincent Paul de Jesus</name><uri>http://www.blogger.com/profile/17390332765792775907</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://3.bp.blogspot.com/_QDHj8MjF_LI/SickN6SGOiI/AAAAAAAAAAM/euNq1B9omeg/S220/VPDJ.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-94644964849764651.post-6738599032129969799</id><published>2009-08-25T08:46:00.000-07:00</published><updated>2009-08-25T09:15:00.582-07:00</updated><title type='text'>Opensource And Commercial ASP.Net CMS</title><content type='html'>I've been googling around lately where to find an opensource CMS (Content Management System)on ASP.Net platform. There are a number of very mature and stable CMS for .Net that I've found. Below are the links and description.&lt;br /&gt;&lt;br /&gt;Opensource ASP.Net CMS&lt;br /&gt;&lt;br /&gt;1. Umbraco CMS (http://umbraco.org)&lt;br /&gt;&lt;br /&gt;Umbraco CMS has been around lately and it is a CMS that can support any browser and that even allows editing by using Microsoft Word.&lt;br /&gt;&lt;br /&gt;2. Dave's ASP.Net CMS (http://www.davidpirek.com/cms/)&lt;br /&gt;&lt;br /&gt;Dave's ASP.NET SEO Friendly CMS was created as a response to identifying need of many small business owners for a compact easy to use content management system. This CMS was inspired by Wordpress as a simple ASP.NET alternative for those who do not have option of Linux hosting. Currently Dave’s ASP.NET CMS includes a simple blogging functionality and a zone based editing as well as a simple lead form.&lt;br /&gt;&lt;br /&gt;3. DotNetNuke CMS (http://www.dotnetnuke.com/)&lt;br /&gt;&lt;br /&gt;DotNetNuke CMS comes in two versions namely the free Community Edition that runs hundreds of thousands of production websites and the new Professional Edition 5.1 that includes unique features designed for business critical websites.&lt;br /&gt;&lt;br /&gt;The DotNetNuke web content management system (CMS) and application development framework was developed as an open source, community-driven project. It continues to thrive and benefit from an established and active group of users, developers, system integrators, module vendors, skin vendors, and hosting providers. &lt;br /&gt;&lt;br /&gt;In addition to creating and maintaining the DotNetNuke framework, DotNetNuke Corp. also leads the DotNetNuke ecosystem through which DotNetNuke users and customers gain access to a wide variety of complementary technologies, services, and hosting alternatives.  &lt;br /&gt;&lt;br /&gt;Commercial ASP.Net CMS&lt;br /&gt;&lt;br /&gt;1. Graffiti CMS (http://graffiticms.com/)&lt;br /&gt;&lt;br /&gt;Graffiti is built for everyday people. You don't even have to know how to program your DVR to use it! &lt;br /&gt;&lt;br /&gt;Now we did realize that designers would want to customize how Graffiti looks. So we decided to introduce a neutral programming concept we call Chalk. Chalk is a simple templating language that gives both designers and developers the ability to customize how content is shown without requiring them to read a 500 lb. book on programming.&lt;br /&gt;&lt;br /&gt;Yes, Graffiti is built on .NET. And truth be told, any good developer can make either PHP or ASP.NET code perform. However, we think there are better tools and more long-term advantages in Microsoft's platform. So for developers familiar with ASP.NET, Graffiti's full power and capability are readily available to you.&lt;br /&gt;&lt;br /&gt;Graffiti CMS comes with a free edition.&lt;br /&gt;&lt;br /&gt;2.  Kentico CMS (http://www.kentico.com/)&lt;br /&gt;&lt;br /&gt;Why should I develop web sites with Kentico CMS?&lt;br /&gt;&lt;br /&gt;With Kentico CMS, you can achieve better results with less effort and in shorter time than with traditional development by leveraging:&lt;br /&gt;&lt;br /&gt;fast, browser-based development with minimum coding&lt;br /&gt;tons of ready-to-use web parts and modules&lt;br /&gt;high flexibility and full control over rendered HTML code&lt;br /&gt;open and extensible architecture&lt;br /&gt;Rapid web site development &lt;br /&gt;&lt;br /&gt;Let's face it: traditional web site development with tedious coding using basic ASP.NET infrastructure is too complex, repetitive and expensive. You can hardly justify the costs of such development in the era of content management systems that provide ready-to-use frameworks oriented on storing, updating and publishing content.&lt;br /&gt;&lt;br /&gt;Kentico CMS provides a flexible, content-oriented framework based on ASP.NET platform that allows you to cut the development time from hours to minutes. What used to require writing ADO.NET code, SQL queries and using databound controls, can be done with a few mouse-clicks in Kentico CMS.&lt;br /&gt;&lt;br /&gt;Kentico CMS comes with a free edition.&lt;br /&gt;&lt;br /&gt;3. Sitefinity CMS (http://www.sitefinity.com/)&lt;br /&gt;&lt;br /&gt;Meet the web content management system that requires no additional learning. Engineered for extensibility and customization, Sitefinity can help you deliver compelling web applications in a much shorter time than you would ever expect.&lt;br /&gt;&lt;br /&gt;Sitefinity CMS is brought to you by Telerik, the company who designed nice 3rd party controls for .Net.&lt;br /&gt;&lt;br /&gt;So far ASP.Net has been competing with PHP in terms of CMS tools. And now, there are a lot of CMS tools for us to choose from. I hope you guys found your ideal CMS tool to build your next project. &lt;br /&gt;&lt;br /&gt;Goodluck!!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/94644964849764651-6738599032129969799?l=vpdejesus.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vpdejesus.blogspot.com/feeds/6738599032129969799/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://vpdejesus.blogspot.com/2009/08/opensource-and-commercial-aspnet-cms.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/94644964849764651/posts/default/6738599032129969799'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/94644964849764651/posts/default/6738599032129969799'/><link rel='alternate' type='text/html' href='http://vpdejesus.blogspot.com/2009/08/opensource-and-commercial-aspnet-cms.html' title='Opensource And Commercial ASP.Net CMS'/><author><name>Vincent Paul de Jesus</name><uri>http://www.blogger.com/profile/17390332765792775907</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://3.bp.blogspot.com/_QDHj8MjF_LI/SickN6SGOiI/AAAAAAAAAAM/euNq1B9omeg/S220/VPDJ.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-94644964849764651.post-2954201640906612537</id><published>2009-08-21T00:25:00.000-07:00</published><updated>2009-08-21T00:51:39.374-07:00</updated><title type='text'>Utility for Microsoft.Net Developers</title><content type='html'>Developing DAL (Data Access Layer) like LINQToSQL, Entity Framework, etc. would be time consuming for someone especially if you want to concentrate more on the other stuff of your project. Now here comes a utility called &lt;span style="font-weight:bold;"&gt;Subsonic&lt;/span&gt; - is A Super High-fidelity Batman Utility Belt that works up your Data Access (using Linq in 3.0), throws in some much-needed utility functions, and generally speeds along your development cycle.&lt;br /&gt;&lt;br /&gt;It is an opensource project developed by Rob Connery and other .Net Developers. It simplifies the development of your .Net projects in areas of Data Access, etc. &lt;br /&gt;&lt;br /&gt;Give it a shot. Here's the link - http://subsonicproject.com/&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/94644964849764651-2954201640906612537?l=vpdejesus.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vpdejesus.blogspot.com/feeds/2954201640906612537/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://vpdejesus.blogspot.com/2009/08/utility-for-microsoftnet-developers.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/94644964849764651/posts/default/2954201640906612537'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/94644964849764651/posts/default/2954201640906612537'/><link rel='alternate' type='text/html' href='http://vpdejesus.blogspot.com/2009/08/utility-for-microsoftnet-developers.html' title='Utility for Microsoft.Net Developers'/><author><name>Vincent Paul de Jesus</name><uri>http://www.blogger.com/profile/17390332765792775907</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://3.bp.blogspot.com/_QDHj8MjF_LI/SickN6SGOiI/AAAAAAAAAAM/euNq1B9omeg/S220/VPDJ.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-94644964849764651.post-4130904235955612668</id><published>2009-08-19T23:56:00.000-07:00</published><updated>2009-08-19T23:57:53.413-07:00</updated><title type='text'>Future cloud apps won't need humans (From ZDNet Australia)</title><content type='html'>Lew Tucker, vice president and chief technology officer of cloud computing at Sun Microsystems, foresees applications that are entirely self-sufficient.&lt;br /&gt;&lt;br /&gt;&lt;object width="400" height="330"&gt;&lt;param name="movie" value="http://www.zdnet.com.au/video/embed/22484026"&gt;&lt;/param&gt;&lt;/param&gt;&lt;param name="allowfullscreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.zdnet.com.au/video/embed/22484026" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="400" height="330"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/94644964849764651-4130904235955612668?l=vpdejesus.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vpdejesus.blogspot.com/feeds/4130904235955612668/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://vpdejesus.blogspot.com/2009/08/future-cloud-apps-wont-need-humans-from.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/94644964849764651/posts/default/4130904235955612668'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/94644964849764651/posts/default/4130904235955612668'/><link rel='alternate' type='text/html' href='http://vpdejesus.blogspot.com/2009/08/future-cloud-apps-wont-need-humans-from.html' title='Future cloud apps won&apos;t need humans (From ZDNet Australia)'/><author><name>Vincent Paul de Jesus</name><uri>http://www.blogger.com/profile/17390332765792775907</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://3.bp.blogspot.com/_QDHj8MjF_LI/SickN6SGOiI/AAAAAAAAAAM/euNq1B9omeg/S220/VPDJ.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-94644964849764651.post-7309567063859518382</id><published>2009-08-19T07:51:00.000-07:00</published><updated>2009-08-19T08:08:09.365-07:00</updated><title type='text'>How to Use FileUpload Control in ASP.Net 3.5</title><content type='html'>The File Upload Control is designed for applications that let you upload files to the website. This might be photos, documents and other files. This control displays a text box that lets the user enter the path for the file to be uploaded, plus a Browse button that displays a dialog box that lets the user locate and select the file.&lt;br /&gt;&lt;br /&gt;To upload a selected file, you must also provide a separate control that results in a postback, like the Upload Button in the figure below. When the user clicks this button, the page is posted and the file selected by the user is sent to the server along with the HTTP request.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_QDHj8MjF_LI/SowSiVMZRAI/AAAAAAAAADw/N7ZlaaadjP4/s1600-h/File+Upload.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 127px;" src="http://1.bp.blogspot.com/_QDHj8MjF_LI/SowSiVMZRAI/AAAAAAAAADw/N7ZlaaadjP4/s320/File+Upload.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5371688836560143362" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The ASPX code used to implement this example:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_QDHj8MjF_LI/SowVP1LVKEI/AAAAAAAAAD4/KN6FugTVylU/s1600-h/ASPX.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 45px;" src="http://3.bp.blogspot.com/_QDHj8MjF_LI/SowVP1LVKEI/AAAAAAAAAD4/KN6FugTVylU/s320/ASPX.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5371691817262983234" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The Click event procedure of the Upload button:&lt;br /&gt;&lt;br /&gt;Protected Sub btnUpload_Click(ByVal sender As Object, _&lt;br /&gt;  ByVal e As System.EventArgs) Handles btnUpload.Click&lt;br /&gt;&lt;br /&gt; Dim sizeLimit As Integer = 150000 'Size limit of uploaded file is only 15KB&lt;br /&gt; If fuCustList.HasFile Then&lt;br /&gt;  If fuCustList.PostedFile.ContentLength &lt;= sizeLimit Then&lt;br /&gt;   Dim path As String = “C:\Uploads\” &amp; fuCustList.FileName&lt;br /&gt;   fuCustList.SaveAs(path)&lt;br /&gt;   lblMessage.Text = “File uploaded to “ &amp; path&lt;br /&gt;  Else&lt;br /&gt;   lblMessage.Text = “File exceeds size limit.”&lt;br /&gt;  End If&lt;br /&gt; End If&lt;br /&gt;End Sub&lt;br /&gt;&lt;br /&gt;The example in the figure above shows the aspx code that declares the file upload control named “fuCustList”, Upload button named “btnUpload” and the Label control named “lblMessage”. Note here that the file upload control doesn’t include an attribute that specifies where the file should be saved on the server. That’s because the file upload control doesn’t automatically save the uploaded file. Instead, you must write code that calls the SaveAs method of this control. The second example in the above figure shows how to write this code.&lt;br /&gt;&lt;br /&gt;Before you call the SaveAs method, you should test the HasFile property if indeed there is a selected file by the user. If the user selected a valid file and it was successfully uploaded to the server, the HasFile property will be true.  Then, you can use the FileName property to get the name of the selected file, and you can combine the file name with the path where you want the file saved. In this example, the file is stored in C:\Uploads directory.&lt;br /&gt;&lt;br /&gt;To show the use of PostedFile.ContentLength property, the event procedure in this figure uses this property to determine the size of the uploaded file. Then, if the value exceeds the limit set by the sizeLimit variable, this file isn’t saved. Instead, an error message is displayed by the Label control in this example.&lt;br /&gt;&lt;br /&gt;Properties and Methods of the FileUpload Class&lt;br /&gt;&lt;br /&gt;Property &amp; Description&lt;br /&gt;&lt;br /&gt;HasFile  - If Tue, the user has selected a file to upload&lt;br /&gt;FileName - The name of the file to be uploaded&lt;br /&gt;PostedFile - The HTTPPostedFile object that represents the file that was posted. You can use this object’s ContentLength property to determine the size of the file.&lt;br /&gt;&lt;br /&gt;Method &amp; Description&lt;br /&gt;&lt;br /&gt;SaveAs(string) - Saves the posted file to the specified path&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/94644964849764651-7309567063859518382?l=vpdejesus.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vpdejesus.blogspot.com/feeds/7309567063859518382/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://vpdejesus.blogspot.com/2009/08/file-upload-control-is-designed-for.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/94644964849764651/posts/default/7309567063859518382'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/94644964849764651/posts/default/7309567063859518382'/><link rel='alternate' type='text/html' href='http://vpdejesus.blogspot.com/2009/08/file-upload-control-is-designed-for.html' title='How to Use FileUpload Control in ASP.Net 3.5'/><author><name>Vincent Paul de Jesus</name><uri>http://www.blogger.com/profile/17390332765792775907</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://3.bp.blogspot.com/_QDHj8MjF_LI/SickN6SGOiI/AAAAAAAAAAM/euNq1B9omeg/S220/VPDJ.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_QDHj8MjF_LI/SowSiVMZRAI/AAAAAAAAADw/N7ZlaaadjP4/s72-c/File+Upload.jpg' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-94644964849764651.post-5589115792733988073</id><published>2009-08-13T09:17:00.000-07:00</published><updated>2009-08-13T09:18:09.714-07:00</updated><title type='text'>Saving an Image in a SQL Server Database</title><content type='html'>Most of the web applications have a lot of images used in it. These images are usually stored in a web server folder and they are accessed by giving the relative path to the file with respect to the root folder of the website. &lt;br /&gt;.Net being the platform for distributed application now, ASP.Net can be used to store images that are small to be stored in a database like SQL Server 2000 and later versions. For this purpose the SQL Server database provides a data type called “image” which is used to store images in the database.&lt;br /&gt;To access these images stored in the database we will be using the ADO.Net classes. To find out how to insert and retrieve an image in to the SQL Server database, you can create a .aspx page which can have a HTMLInputFile control which is used to select the image file that is to be saved in the database. &lt;br /&gt;You can also create a textbox control in which you can add the image name or some comment or an image id for the image saved. Use a button control to upload the image to the database. Namespaces like System.Data.SqlClient, System.Drawing, System.Data, System.IO, and System.Drawing.Imaging are used in this task.&lt;br /&gt;In the OnClick property of the button you can write the following code to upload an image to the database.&lt;br /&gt;&lt;br /&gt;// create a byte[] for the image file that is uploaded&lt;br /&gt;int imagelen = Upload.PostedFile.ContentLength;&lt;br /&gt;byte[] picbyte = new byte[imagelen];&lt;br /&gt;Upload.PostedFile.InputStream.Read (picbyte, 0, imagelen);&lt;br /&gt;// Insert the image and image id into the database&lt;br /&gt;SqlConnection conn = new SqlConnection (@"give the connection string here...");&lt;br /&gt;try&lt;br /&gt;{&lt;br /&gt;conn.Open ();&lt;br /&gt;SqlCommand cmd = new SqlCommand ("insert into ImageTable " &lt;br /&gt;+ "(ImageField, ImageID) values (@pic, @imageid)", conn);&lt;br /&gt;cmd.Parameters.Add ("@pic", picbyte);&lt;br /&gt;cmd.Parameters.Add ("@imageid", lblImageID.Text);&lt;br /&gt;cmd.ExecuteNonQuery ();&lt;br /&gt;}&lt;br /&gt;finally &lt;br /&gt;{&lt;br /&gt;conn.Close ();&lt;br /&gt;}&lt;br /&gt;You can also write the above code in a function and call that function in the OnClick event of the upload button. The code given above performs the following steps in the process of inserting an image into the database.&lt;br /&gt;1. Get the content length of the image that is to be uploaded&lt;br /&gt;2. Create a byte[] to store the image&lt;br /&gt;3. Read the input stream of the posted file&lt;br /&gt;4. Create a connection object&lt;br /&gt;5. Open the connection object&lt;br /&gt;6. Create a command object&lt;br /&gt;7. Add parameters to the command object&lt;br /&gt;8. Execute the sql command using the ExecuteNonQuery method of the command object&lt;br /&gt;9. Close the connection object&lt;br /&gt;To retrieve the image from the SQL Database you can perform the following steps.&lt;br /&gt;1. Create a MemoryStream object. The code can be something like,&lt;br /&gt;MemoryStream mstream = new MemoryStream ();&lt;br /&gt;2. Create a Connection object&lt;br /&gt;3. Open the connection to the database&lt;br /&gt;4. Create a command object to execute the command to retrieve the image&lt;br /&gt;5. Use the command object’s ExecuteScalar method to retrieve the image&lt;br /&gt;6. Cast the output of the ExecuteScalar method to that of byte[]&lt;br /&gt;byte[] image = (byte[]) command.ExecuteScalar ();&lt;br /&gt;7. Write the stream&lt;br /&gt;mstream.Write (image, 0, image.Length);&lt;br /&gt;8. Create a bitmap object to hold the stream&lt;br /&gt;Bitmap bitmap = new Bitmap (stream);&lt;br /&gt;9. Set the content type to “image/gif”&lt;br /&gt;Response.ContentType = "image/gif";&lt;br /&gt;10. Use the Save method of the bitmap object to output the image to the OutputStream.&lt;br /&gt;bitmap.Save (Response.OutputStream, ImageFormat.Gif);&lt;br /&gt;11. Close the connection&lt;br /&gt;12. Close the stream&lt;br /&gt;mstream.Close();&lt;br /&gt;Using the above steps you can retrieve and display the image from the database to the web page.&lt;br /&gt;You can use these algorithms and take advantage of the “image” data type available in the SQLServer 2000 database to store small images that correspond to a particular record in the table of the database. This method of storing avoids the tedious task of tracking the path of the web folder if the images are stored in a web folder.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/94644964849764651-5589115792733988073?l=vpdejesus.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vpdejesus.blogspot.com/feeds/5589115792733988073/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://vpdejesus.blogspot.com/2009/08/saving-image-in-sql-server-database.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/94644964849764651/posts/default/5589115792733988073'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/94644964849764651/posts/default/5589115792733988073'/><link rel='alternate' type='text/html' href='http://vpdejesus.blogspot.com/2009/08/saving-image-in-sql-server-database.html' title='Saving an Image in a SQL Server Database'/><author><name>Vincent Paul de Jesus</name><uri>http://www.blogger.com/profile/17390332765792775907</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://3.bp.blogspot.com/_QDHj8MjF_LI/SickN6SGOiI/AAAAAAAAAAM/euNq1B9omeg/S220/VPDJ.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-94644964849764651.post-6031614686669327826</id><published>2009-08-09T01:25:00.000-07:00</published><updated>2009-08-09T01:35:30.466-07:00</updated><title type='text'>A Website for IT Professionals</title><content type='html'>I just had a membership in this site http://www.insidetech.com (A Monster Company). In this site you can setup your profile, join groups, read news about IT, search jobs and more. This is a good site and at the same time a good resources for IT Professionals indeed.&lt;br /&gt;&lt;br /&gt;Be a member and I'll meet you there.. :-)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/94644964849764651-6031614686669327826?l=vpdejesus.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vpdejesus.blogspot.com/feeds/6031614686669327826/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://vpdejesus.blogspot.com/2009/08/website-for-it-professionals.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/94644964849764651/posts/default/6031614686669327826'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/94644964849764651/posts/default/6031614686669327826'/><link rel='alternate' type='text/html' href='http://vpdejesus.blogspot.com/2009/08/website-for-it-professionals.html' title='A Website for IT Professionals'/><author><name>Vincent Paul de Jesus</name><uri>http://www.blogger.com/profile/17390332765792775907</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://3.bp.blogspot.com/_QDHj8MjF_LI/SickN6SGOiI/AAAAAAAAAAM/euNq1B9omeg/S220/VPDJ.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-94644964849764651.post-6413379375648589989</id><published>2009-08-05T23:35:00.000-07:00</published><updated>2009-08-05T23:37:02.340-07:00</updated><title type='text'>How to File Copy, Move, and Delete Files in VB.Net Using Windows Functionality</title><content type='html'>&lt;meta equiv="Content-Type" content="text/html; charset=utf-8"&gt;&lt;meta name="ProgId" content="Word.Document"&gt;&lt;meta name="Generator" content="Microsoft Word 11"&gt;&lt;meta name="Originator" content="Microsoft Word 11"&gt;&lt;link rel="File-List" href="file:///C:%5CUsers%5CCynthia%5CAppData%5CLocal%5CTemp%5Cmsohtml1%5C03%5Cclip_filelist.xml"&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;  &lt;w:worddocument&gt;   &lt;w:view&gt;Normal&lt;/w:View&gt;   &lt;w:zoom&gt;0&lt;/w:Zoom&gt;   &lt;w:punctuationkerning/&gt;   &lt;w:validateagainstschemas/&gt;   &lt;w:saveifxmlinvalid&gt;false&lt;/w:SaveIfXMLInvalid&gt;   &lt;w:ignoremixedcontent&gt;false&lt;/w:IgnoreMixedContent&gt;   &lt;w:alwaysshowplaceholdertext&gt;false&lt;/w:AlwaysShowPlaceholderText&gt;   &lt;w:compatibility&gt;    &lt;w:breakwrappedtables/&gt;    &lt;w:snaptogridincell/&gt;    &lt;w:wraptextwithpunct/&gt;    &lt;w:useasianbreakrules/&gt;    &lt;w:dontgrowautofit/&gt;   &lt;/w:Compatibility&gt;   &lt;w:browserlevel&gt;MicrosoftInternetExplorer4&lt;/w:BrowserLevel&gt;  &lt;/w:WordDocument&gt; &lt;/xml&gt;&lt;![endif]--&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;  &lt;w:latentstyles deflockedstate="false" latentstylecount="156"&gt;  &lt;/w:LatentStyles&gt; &lt;/xml&gt;&lt;![endif]--&gt;&lt;style&gt; &lt;!--  /* Style Definitions */  p.MsoNormal, li.MsoNormal, div.MsoNormal 	{mso-style-parent:""; 	margin:0in; 	margin-bottom:.0001pt; 	mso-pagination:widow-orphan; 	font-size:12.0pt; 	font-family:"Times New Roman"; 	mso-fareast-font-family:"Times New Roman";} @page Section1 	{size:8.5in 11.0in; 	margin:1.0in 1.25in 1.0in 1.25in; 	mso-header-margin:.5in; 	mso-footer-margin:.5in; 	mso-paper-source:0;} div.Section1 	{page:Section1;} --&gt; &lt;/style&gt;&lt;!--[if gte mso 10]&gt; &lt;style&gt;  /* Style Definitions */  table.MsoNormalTable 	{mso-style-name:"Table Normal"; 	mso-tstyle-rowband-size:0; 	mso-tstyle-colband-size:0; 	mso-style-noshow:yes; 	mso-style-parent:""; 	mso-padding-alt:0in 5.4pt 0in 5.4pt; 	mso-para-margin:0in; 	mso-para-margin-bottom:.0001pt; 	mso-pagination:widow-orphan; 	font-size:10.0pt; 	font-family:"Times New Roman"; 	mso-ansi-language:#0400; 	mso-fareast-language:#0400; 	mso-bidi-language:#0400;} &lt;/style&gt; &lt;![endif]--&gt;  &lt;p class="MsoNormal" style="text-align: justify;"&gt;Ever wonder how to copy, move and delete files in VB.Net? Well, in this article I will show you how to do it.&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: justify;"&gt;Before, in VB6, we have the FileCopy and Kill statements. FileCopy simply locks up your program until the copy is performed, which makes it pretty difficult to give the user feedback as to what your program is doing. Likewise, the Kill statement banishes a file to a Black Hole with no chance of revival.&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: justify;"&gt;Now, in VB.Net, due to the object-oriented methodology, you can easily construct a little class that handles these functions for you. Thus, the EnhancedFileOps class will handle this for you.&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;b style=""&gt;Using the EnhancedFileOps Class&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: justify;"&gt;The most logical method of designing the EnhancedFileOps class would have been to inherit a new class from the existing File class. Unfortunately, this isn’t possible because the File class is marked as NonInheritable, which means that you cannot create a new class under it. Instead, you should create a base class (which inherits right from System.Object) that does the work.&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: justify;"&gt;The API (Application Programming Interface) call that handles both file copying (with Progress Dialog) and moving files to Recycle Bin is called SHFileOperation. It takes as its lone parameter a structure called SHFileOpStruct. The declaration for the function and the structure are shown here:&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: justify;"&gt;Private Declare Function SHFileOperation_&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: justify;"&gt;Lib “Shell32.dll” Alias “SHFileOperationA” (ByRef _&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: justify;"&gt;lpFileOp As SHFILEOPSTRUCT) As Integer&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: justify;"&gt;Structure SHFILEOPSTRUCT&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style=""&gt;            &lt;/span&gt;Public hwnd As Integer&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style=""&gt;            &lt;/span&gt;Public wFunc As Integer&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style=""&gt;            &lt;/span&gt;Public pFrom As String&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style=""&gt;            &lt;/span&gt;Public pTo As String&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style=""&gt;            &lt;/span&gt;Public fFlags As Integer&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style=""&gt;            &lt;/span&gt;Public fAnyOperationsAborted As Integer&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style=""&gt;            &lt;/span&gt;Public hNameMappings As Integer&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style=""&gt;            &lt;/span&gt;Public lpszProgressTitle As Integer&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: justify;"&gt;End Structure&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: justify;"&gt;There are also a fair amount of private constants declared in the class, which represent constants placed into various fields of the SHFileOpStruct.&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;b style=""&gt;Sending a File to the Recycle Bin&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: justify;"&gt;To send a file to Recycle Bin, you make the API call with the wFunc parameter set to FO_DELETE, and the fFlags parameter set to FOF_ALLOWUNDO, as shown here:&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style=""&gt;            &lt;/span&gt;Public Function SendToRecycleBin() As Boolean&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style=""&gt;                        &lt;/span&gt;Dim sOP As New SHFILEOPSTRUCT()&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style=""&gt;                        &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style=""&gt;                        &lt;/span&gt;With sOP&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style=""&gt;                                    &lt;/span&gt;.hwnd = FhWnd.ToInt32&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style=""&gt;                                    &lt;/span&gt;.wFunc = FO_DELETE&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style=""&gt;                                    &lt;/span&gt;.pFrom = FFilename &amp;amp; Chr(0) &amp;amp; Chr(0)&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style=""&gt;                                    &lt;/span&gt;.fFlags = FOF_ALLOWUNDO&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style=""&gt;                        &lt;/span&gt;End With&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style=""&gt;                        &lt;/span&gt;Return(SHFileOperation(sOP) = 0)&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style=""&gt;            &lt;/span&gt;End Function&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: justify;"&gt;Note that the pFrom parameter requires termination in two nulls, written as chr(0) in VB-speak. The reason for this is that the SHFileOperation API call can actually work on more than one file at a time. To process multiple files, you fill the pFrom parameter with each filename separated by single nulls, and then you end the whole file list with two nulls. My example class does not take advantage of the multiple file functionality, but it would be easy enough to add in.&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: justify;"&gt;Take special note of the last line in the function, as there are a few different little tricks going on there. The first is that VB.Net functions can return their value by using the special keyword Return. Older versions of VB required assigning a value to a variable whose name was the function name (this was a big pain when you decided to change the function name but forgot to change the result assignment at the bottom).&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: justify;"&gt;The second little trick is a programmer’s preference that we can use to compress the code into fewer lines. The last line of code is exactly equivalent to the following statement block:&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style=""&gt;            &lt;/span&gt;iResult = SHFileOperation(sOP)&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style=""&gt;            &lt;/span&gt;If iResult = 0 Then&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style=""&gt;                        &lt;/span&gt;Return True&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style=""&gt;            &lt;/span&gt;Else&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style=""&gt;            &lt;/span&gt;&lt;span style=""&gt;            &lt;/span&gt;Return False&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style=""&gt;            &lt;/span&gt;End If&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: justify;"&gt;This block is a bit easier to read, perhaps, but it takes six lines of code, whereas the replacement takes a single line. The trick here is to note that (SHFileOperation(sOP) = 0) is itself a Boolean expression---that is, it has a value of True or False. If the SHFileOperation API call returns 0, then the expression is true. If the API call returns non-zero, then the expression is false. Instead of writing all that out, we find it easier to compress it on one line.&lt;span style=""&gt;  &lt;/span&gt;We call the function, compare the result to 0, and return the result of that comparison as the result of my SendToRecycleBin function.&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;b style=""&gt;Copying or Moving a File&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;Copying (or moving) a file using the API call is equally simple. In addition to the pFrom parameter that specifies the source, you must also fill in the pTo parameter, which gives the destination. This is usually a folder name, as shown here:&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style=""&gt;            &lt;/span&gt;Private Function InternalCopy(ByVal cDestination _&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style=""&gt;            &lt;/span&gt;As String, ByVal bMove As Boolean) As Boolean&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style=""&gt;                        &lt;/span&gt;Dim sOP As New SHFILEOPSTRUCT()&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style=""&gt;                        &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style=""&gt;                        &lt;/span&gt;With sOP&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style=""&gt;                                    &lt;/span&gt;.hwnd = FhWnd.ToInt32&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style=""&gt;                                    &lt;/span&gt;If bMove Then&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style=""&gt;                                                &lt;/span&gt;.wFunc = FO_MOVE&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style=""&gt;                                    &lt;/span&gt;Else&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style=""&gt;                                                &lt;/span&gt;.wFunc = FO_COPY&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style=""&gt;                                    &lt;/span&gt;End If&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style=""&gt;                                    &lt;/span&gt;.pFrom = FFilename &amp;amp; Chr(0) &amp;amp; Chr(0)&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style=""&gt;                                    &lt;/span&gt;.pTo = cDestination &amp;amp; Chr(0) &amp;amp; Chr(0)&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style=""&gt;                                    &lt;/span&gt;.fFlags = FOF_SIMPLEPROGRESS Or _&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style=""&gt;                                    &lt;/span&gt;FOF_FILESONLY Or FOF_NOCONFIRMMKDIR&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style=""&gt;                        &lt;/span&gt;End With&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style=""&gt;                        &lt;/span&gt;Return (SHFileOperation(sOP) = 0)&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style=""&gt;            &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style=""&gt;            &lt;/span&gt;End Function&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: justify;"&gt;We made this function a private function because it handles both the moving and copying of large files, based on the second function parameter. We then created easy-to-read methods named CopyWithProgress and MoveWithProgress that in turn call this private function.&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: justify;"&gt;The function itself simply sets up the API structure and makes the call. Note the FOF_SIMPLEPROGRESS constant as part of the fFlags parameter---that’s what displays the progress dialog when large files are copied.&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: justify;"&gt;The example application allows you to pick a file, which it copies to hard coded folder C:\tempvb when a button is clicked. Select a large file (100MB files are pretty commonplace these days on many hard drives) to make sure you see the progress dialog in action. The second button on the form deletes this newly copied file by placing it in the Recycle Bin.&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: justify;"&gt;I want to give thanks to &lt;b style=""&gt;Matt Tagliaferri&lt;/b&gt; for the explanation and samples.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/94644964849764651-6413379375648589989?l=vpdejesus.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vpdejesus.blogspot.com/feeds/6413379375648589989/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://vpdejesus.blogspot.com/2009/08/how-to-file-copy-move-and-delete-files.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/94644964849764651/posts/default/6413379375648589989'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/94644964849764651/posts/default/6413379375648589989'/><link rel='alternate' type='text/html' href='http://vpdejesus.blogspot.com/2009/08/how-to-file-copy-move-and-delete-files.html' title='How to File Copy, Move, and Delete Files in VB.Net Using Windows Functionality'/><author><name>Vincent Paul de Jesus</name><uri>http://www.blogger.com/profile/17390332765792775907</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://3.bp.blogspot.com/_QDHj8MjF_LI/SickN6SGOiI/AAAAAAAAAAM/euNq1B9omeg/S220/VPDJ.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-94644964849764651.post-1486051736893994019</id><published>2009-07-30T07:04:00.000-07:00</published><updated>2009-07-30T07:05:33.872-07:00</updated><title type='text'>Production Program</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_QDHj8MjF_LI/SnGoobV-RiI/AAAAAAAAADA/JdK9r2F9nOA/s1600-h/Production.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 400px; height: 240px;" src="http://3.bp.blogspot.com/_QDHj8MjF_LI/SnGoobV-RiI/AAAAAAAAADA/JdK9r2F9nOA/s400/Production.jpg" alt="" id="BLOGGER_PHOTO_ID_5364254043663124002" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;I remember before I used to work in this Agricultural Company, I developed a simple application with their Inventory on Packaging Materials. Here's the screenshot of the program.&lt;br /&gt;&lt;br /&gt;It was designed using a 3-tier application design. The report was done using Business Objects Crystal Report designer. This is with Login and Logout system.&lt;br /&gt;&lt;br /&gt;If you want to download the source code in both VB.Net and C# follow this link - http://www.planet-source-code.com/vb/scripts/showcode.asp?txtCodeId=7381&amp;amp;lngWid=10&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/94644964849764651-1486051736893994019?l=vpdejesus.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vpdejesus.blogspot.com/feeds/1486051736893994019/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://vpdejesus.blogspot.com/2009/07/production-program.html#comment-form' title='26 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/94644964849764651/posts/default/1486051736893994019'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/94644964849764651/posts/default/1486051736893994019'/><link rel='alternate' type='text/html' href='http://vpdejesus.blogspot.com/2009/07/production-program.html' title='Production Program'/><author><name>Vincent Paul de Jesus</name><uri>http://www.blogger.com/profile/17390332765792775907</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://3.bp.blogspot.com/_QDHj8MjF_LI/SickN6SGOiI/AAAAAAAAAAM/euNq1B9omeg/S220/VPDJ.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_QDHj8MjF_LI/SnGoobV-RiI/AAAAAAAAADA/JdK9r2F9nOA/s72-c/Production.jpg' height='72' width='72'/><thr:total>26</thr:total></entry><entry><id>tag:blogger.com,1999:blog-94644964849764651.post-6551062591700772713</id><published>2009-07-29T21:43:00.000-07:00</published><updated>2009-07-29T22:00:37.425-07:00</updated><title type='text'>What is LINQ?</title><content type='html'>LINQ, or Language-Integrated Query, lets you query data using Visual Basic Language.&lt;br /&gt;&lt;br /&gt;Some of the Visual Basic keywords for working with LINQ:&lt;br /&gt;&lt;br /&gt;Keyword - &lt;span style="font-weight: bold;"&gt;From&lt;/span&gt; which identifies the source of data for the query, &lt;span style="font-weight: bold;"&gt;Where&lt;/span&gt; which provides a condition that specifies which elements are retrieved from the datasource, &lt;span style="font-weight: bold;"&gt;Order By &lt;/span&gt;which indicates how the elements that are returned by the query are sorted, &lt;span style="font-weight: bold;"&gt;Select&lt;/span&gt; which specifies the content of the returned elements, &lt;span style="font-weight: bold;"&gt;Group By&lt;/span&gt; which groups the elements by one or more data items and lets you perform aggregate functions on the groups, and &lt;span style="font-weight: bold;"&gt;Join&lt;/span&gt; which combines data from two data soures.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;A LINQ query that retrieves key values from a sorted list&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;The employee sales sorted list&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Dim employeeSales As New SortedList(Of String, Decimal)&lt;br /&gt;employeeSales.Add("Gabriel", 1286.45D)&lt;br /&gt;employeeSales.Add("de Jesus", 2433.49D)&lt;br /&gt;employeeSales.Add("Quirit", 2893.85D)&lt;br /&gt;employeeSales.Add("Velasco", 2094.53D)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;A query expression that selects the employee names from the list&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;Dim employeeList = From sales In employeeSales_&lt;br /&gt;                                     Where sales.Value &gt; 2000 _&lt;br /&gt;                                     Order By sales.Value Descending _&lt;br /&gt;                                     Select sales.Key&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Code that excutes the query&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;/span&gt;Dim employeeDisplay As String = ""&lt;br /&gt;For Each employee In employeeList&lt;br /&gt;       employeeDisplay &amp;amp;= employee &amp;amp; vbCrLf&lt;br /&gt;Next&lt;br /&gt;MessageBox.Show(employeeDisplay, "Sorted Employees With Sales Over $2000")&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;The output would be:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Quirit&lt;br /&gt;de Jesus&lt;br /&gt;Velasco&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/94644964849764651-6551062591700772713?l=vpdejesus.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vpdejesus.blogspot.com/feeds/6551062591700772713/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://vpdejesus.blogspot.com/2009/07/what-is-linq.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/94644964849764651/posts/default/6551062591700772713'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/94644964849764651/posts/default/6551062591700772713'/><link rel='alternate' type='text/html' href='http://vpdejesus.blogspot.com/2009/07/what-is-linq.html' title='What is LINQ?'/><author><name>Vincent Paul de Jesus</name><uri>http://www.blogger.com/profile/17390332765792775907</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://3.bp.blogspot.com/_QDHj8MjF_LI/SickN6SGOiI/AAAAAAAAAAM/euNq1B9omeg/S220/VPDJ.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-94644964849764651.post-3734348998507495950</id><published>2009-07-26T06:54:00.000-07:00</published><updated>2009-07-26T06:58:03.187-07:00</updated><title type='text'>Develop Software For Symbian OS</title><content type='html'>For software developers out there, if you want to develop applications for Symbian OS using your existing skills in Microsoft .Net, try Net60 of www.redfivelabs.com. With this, you can design application in .Net and run it in Symbian OS like Nokia Cellphones, etc.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/94644964849764651-3734348998507495950?l=vpdejesus.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vpdejesus.blogspot.com/feeds/3734348998507495950/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://vpdejesus.blogspot.com/2009/07/develop-software-for-symbian-os.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/94644964849764651/posts/default/3734348998507495950'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/94644964849764651/posts/default/3734348998507495950'/><link rel='alternate' type='text/html' href='http://vpdejesus.blogspot.com/2009/07/develop-software-for-symbian-os.html' title='Develop Software For Symbian OS'/><author><name>Vincent Paul de Jesus</name><uri>http://www.blogger.com/profile/17390332765792775907</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://3.bp.blogspot.com/_QDHj8MjF_LI/SickN6SGOiI/AAAAAAAAAAM/euNq1B9omeg/S220/VPDJ.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-94644964849764651.post-7338197893341404343</id><published>2009-07-25T02:09:00.000-07:00</published><updated>2009-07-25T02:22:06.871-07:00</updated><title type='text'>.Net For Linux</title><content type='html'>I've been waiting for this time for the release of MonoDevelop on Windows. MonoDevelop has been stable for a while now in the Linux OS.&lt;br /&gt;&lt;br /&gt;For visitors not familiar with MonoDevelop, it is an IDE for developing desktop and web application using C#, VB.Net and other programming language. It runs on top of its own .Net opensource framework called Mono. Check this link for the IDE - http://www.monodevelop.com and the framework here - http://www.mono-project.com.&lt;br /&gt;&lt;br /&gt;This is good news for us Microsoft .Net Developers since we are accustomed to our preferred language in .Net and we don't have to start from scratch when we migrate our software development skills in Linux or Mac since we already have Mono and MonoDevelop on our side. This is backed by a company called Novell, the company behind Suse Linux.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/94644964849764651-7338197893341404343?l=vpdejesus.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vpdejesus.blogspot.com/feeds/7338197893341404343/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://vpdejesus.blogspot.com/2009/07/net-for-linux.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/94644964849764651/posts/default/7338197893341404343'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/94644964849764651/posts/default/7338197893341404343'/><link rel='alternate' type='text/html' href='http://vpdejesus.blogspot.com/2009/07/net-for-linux.html' title='.Net For Linux'/><author><name>Vincent Paul de Jesus</name><uri>http://www.blogger.com/profile/17390332765792775907</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://3.bp.blogspot.com/_QDHj8MjF_LI/SickN6SGOiI/AAAAAAAAAAM/euNq1B9omeg/S220/VPDJ.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-94644964849764651.post-6588333259945150925</id><published>2009-07-20T01:39:00.000-07:00</published><updated>2009-07-20T01:49:24.426-07:00</updated><title type='text'>Problem with my ASP.Net Image Control</title><content type='html'>If anyone can help, please advice. I have an image control in ASP.Net and a File Upload Control. After Uploading the file successfully, the image control won't display the uploaded photo. Below is the code for the Upload Button:&lt;br /&gt;&lt;br /&gt;Protected Sub btnUpload_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnUpload.Click&lt;br /&gt;        Dim dbAccess As DataAccess = New DataAccess&lt;br /&gt;        Dim con As SqlConnection = New SqlConnection(dbAccess.ConnectionString)&lt;br /&gt;        Dim sizeLimit As Integer = 150000 'Size limit of Photo is only 15KB&lt;br /&gt;        Dim saveDir As String = "Images\JobSeeker_Photos\"&lt;br /&gt;        Dim appPath As String = Request.PhysicalApplicationPath&lt;br /&gt;        Dim path As String = appPath + saveDir + fuPhoto.FileName&lt;br /&gt;        If fuPhoto.HasFile Then&lt;br /&gt;            If fuPhoto.PostedFile.ContentLength &lt;= sizeLimit Then&lt;br /&gt;                fuPhoto.SaveAs(path)&lt;br /&gt;                lblUpload.Text = "File uploaded successfully!"&lt;br /&gt;                imgPhoto.ImageUrl = path&lt;br /&gt;            Else&lt;br /&gt;                lblUpload.Text = "File exceeds file limit! Photo size limit is up to 15KB only. Please edit the size of your photo."&lt;br /&gt;            End If&lt;br /&gt;        End If&lt;br /&gt;    End Sub&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/94644964849764651-6588333259945150925?l=vpdejesus.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vpdejesus.blogspot.com/feeds/6588333259945150925/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://vpdejesus.blogspot.com/2009/07/problem-with-my-aspnet-image-control.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/94644964849764651/posts/default/6588333259945150925'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/94644964849764651/posts/default/6588333259945150925'/><link rel='alternate' type='text/html' href='http://vpdejesus.blogspot.com/2009/07/problem-with-my-aspnet-image-control.html' title='Problem with my ASP.Net Image Control'/><author><name>Vincent Paul de Jesus</name><uri>http://www.blogger.com/profile/17390332765792775907</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://3.bp.blogspot.com/_QDHj8MjF_LI/SickN6SGOiI/AAAAAAAAAAM/euNq1B9omeg/S220/VPDJ.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-94644964849764651.post-6894803667355581109</id><published>2009-07-09T06:26:00.000-07:00</published><updated>2009-07-09T07:02:18.132-07:00</updated><title type='text'>Link of The Sales Program Database</title><content type='html'>Here is the link of the Sales Monitoring System Database. You can attached the database to your SQL Server 2000 and change the connection string from the app.config file in the Visual Studio Project to connect to the database. Change the SERVER NAME to the name of your server in the app.config of the SalesProgram project.&lt;br /&gt;&lt;br /&gt;Good luck!!&lt;br /&gt;&lt;br /&gt;Link: - http://www.mediafire.com/?tszjewjuvul&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/94644964849764651-6894803667355581109?l=vpdejesus.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vpdejesus.blogspot.com/feeds/6894803667355581109/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://vpdejesus.blogspot.com/2009/07/link-of-sales-program-database.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/94644964849764651/posts/default/6894803667355581109'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/94644964849764651/posts/default/6894803667355581109'/><link rel='alternate' type='text/html' href='http://vpdejesus.blogspot.com/2009/07/link-of-sales-program-database.html' title='Link of The Sales Program Database'/><author><name>Vincent Paul de Jesus</name><uri>http://www.blogger.com/profile/17390332765792775907</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://3.bp.blogspot.com/_QDHj8MjF_LI/SickN6SGOiI/AAAAAAAAAAM/euNq1B9omeg/S220/VPDJ.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-94644964849764651.post-974567236495655193</id><published>2009-07-06T22:47:00.000-07:00</published><updated>2009-08-02T03:30:07.435-07:00</updated><title type='text'>My Sales Program in C#</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_QDHj8MjF_LI/SlLmSkbPtdI/AAAAAAAAACY/5jk0DgkT3g4/s1600-h/SP+Code.jpg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 400px; height: 240px;" src="http://2.bp.blogspot.com/_QDHj8MjF_LI/SlLmSkbPtdI/AAAAAAAAACY/5jk0DgkT3g4/s400/SP+Code.jpg" alt="" id="BLOGGER_PHOTO_ID_5355596113586927058" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;This is the converted version of my Sales Program in C# language. This was designed in VS.Net 2005 with SQL Server 2000 as backend. Source code is available upon request. You can email me at vincepogs@yahoo.com. Or you can download directly on this link http://www.planet-source-code.com/vb/scripts/ShowCode.asp?txtCodeId=7347&amp;amp;lngWId=10&amp;amp;txtForceRefresh=8220096291192185&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/94644964849764651-974567236495655193?l=vpdejesus.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vpdejesus.blogspot.com/feeds/974567236495655193/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://vpdejesus.blogspot.com/2009/07/my-sales-program-in-c.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/94644964849764651/posts/default/974567236495655193'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/94644964849764651/posts/default/974567236495655193'/><link rel='alternate' type='text/html' href='http://vpdejesus.blogspot.com/2009/07/my-sales-program-in-c.html' title='My Sales Program in C#'/><author><name>Vincent Paul de Jesus</name><uri>http://www.blogger.com/profile/17390332765792775907</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://3.bp.blogspot.com/_QDHj8MjF_LI/SickN6SGOiI/AAAAAAAAAAM/euNq1B9omeg/S220/VPDJ.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_QDHj8MjF_LI/SlLmSkbPtdI/AAAAAAAAACY/5jk0DgkT3g4/s72-c/SP+Code.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-94644964849764651.post-6399187722585821085</id><published>2009-06-03T20:51:00.000-07:00</published><updated>2009-08-13T09:15:59.825-07:00</updated><title type='text'>A Master/Detail Design in VB.Net</title><content type='html'>Here is a link of an article and a source code on how to implement a Master/Detail Form in .Net - &lt;a href="http://vpdejesus.tech.officelive.com/SourceCode.aspx"&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I included a complete documentation on how to design the application. I used a 3rd party control for the project which can be downloaded on this link - &lt;a href="http://www.codeproject.com/KB/architecture/MultiColumnFlatCombo.aspx"&gt;http://www.codeproject.com/KB/architecture/MultiColumnFlatCombo.aspx&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I hope you can get a grasp with this application for you to make a Master/Detail design on your project in the future.&lt;br /&gt;&lt;br /&gt;Happy coding .Net Developers!!!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/94644964849764651-6399187722585821085?l=vpdejesus.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vpdejesus.blogspot.com/feeds/6399187722585821085/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://vpdejesus.blogspot.com/2009/06/masterdetail-design-in-vbnet.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/94644964849764651/posts/default/6399187722585821085'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/94644964849764651/posts/default/6399187722585821085'/><link rel='alternate' type='text/html' href='http://vpdejesus.blogspot.com/2009/06/masterdetail-design-in-vbnet.html' title='A Master/Detail Design in VB.Net'/><author><name>Vincent Paul de Jesus</name><uri>http://www.blogger.com/profile/17390332765792775907</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://3.bp.blogspot.com/_QDHj8MjF_LI/SickN6SGOiI/AAAAAAAAAAM/euNq1B9omeg/S220/VPDJ.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-94644964849764651.post-95200645374331645</id><published>2009-06-03T18:49:00.000-07:00</published><updated>2009-06-03T19:28:21.914-07:00</updated><title type='text'>A project that I developed for a company I previously worked in Dubai, U.A.E.</title><content type='html'>&lt;a href="http://2.bp.blogspot.com/_QDHj8MjF_LI/SicrpD1oZYI/AAAAAAAAABI/2N1Xt7hvkDE/s1600-h/SP4.jpg"&gt;&lt;img style="MARGIN: 0px 10px 10px 0px; WIDTH: 320px; FLOAT: left; HEIGHT: 192px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5343287467303265666" border="0" alt="" src="http://2.bp.blogspot.com/_QDHj8MjF_LI/SicrpD1oZYI/AAAAAAAAABI/2N1Xt7hvkDE/s320/SP4.jpg" /&gt;&lt;/a&gt; &lt;a href="http://1.bp.blogspot.com/_QDHj8MjF_LI/Sicro-AAp9I/AAAAAAAAABA/UKnRjgs8Sz0/s1600-h/SP3.jpg"&gt;&lt;img style="MARGIN: 0px 10px 10px 0px; WIDTH: 320px; FLOAT: left; HEIGHT: 192px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5343287465736185810" border="0" alt="" src="http://1.bp.blogspot.com/_QDHj8MjF_LI/Sicro-AAp9I/AAAAAAAAABA/UKnRjgs8Sz0/s320/SP3.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;a href="http://2.bp.blogspot.com/_QDHj8MjF_LI/SicroouOxqI/AAAAAAAAAA4/8XNKQf0iOo0/s1600-h/SP2.jpg"&gt;&lt;img style="MARGIN: 0px 10px 10px 0px; WIDTH: 320px; FLOAT: left; HEIGHT: 192px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5343287460024469154" border="0" alt="" src="http://2.bp.blogspot.com/_QDHj8MjF_LI/SicroouOxqI/AAAAAAAAAA4/8XNKQf0iOo0/s320/SP2.jpg" /&gt;&lt;/a&gt; &lt;a href="http://1.bp.blogspot.com/_QDHj8MjF_LI/Sicq09ek5JI/AAAAAAAAAAw/9pNncMkQCkI/s1600-h/SP1.jpg"&gt;&lt;img style="MARGIN: 0px 10px 10px 0px; WIDTH: 320px; FLOAT: left; HEIGHT: 192px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5343286572242756754" border="0" alt="" src="http://1.bp.blogspot.com/_QDHj8MjF_LI/Sicq09ek5JI/AAAAAAAAAAw/9pNncMkQCkI/s320/SP1.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Here is a project that I developed for a retail company I used to work in Dubai, U.A.E. The project requires a report to consolidate sales from the different retail shop across U.A.E. and other Gulf Countries. I desgined this application in VB.Net as front-end and SQL Server as back-end. Business Objects Crystal Report Designer was used to design the reports. The application involves a sales report by providing details on Daily Sales, MTD, YTD, and a chart and other summary details. It is very complex though but I was still able to design it. I included in the application some charting reports for business analysis. Some of the screenshot of the project is shown above.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;The application was designed using 3-tier or n-tier application design that is separating the presention layer or user interface, business logic and data access layer, and the database management layer.&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The Advantages/Disadvantages of N-tier Design&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The advantages of N-Tier system design are multifold. The list below shows some of the advantages.&lt;br /&gt;&lt;/div&gt;&lt;div&gt;1. You can modify the business logic without making changes to either the user interface or the database.&lt;br /&gt;2. If built correctly, the business logic object can be used by multiple user interfaces&lt;br /&gt;3. Isolates the knowledge required in any given tier to that tier&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Some of the disadvantages are;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;1. The system design is more complex with increase in the line of codes&lt;br /&gt;2. Memory footprint of the application is increased&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/94644964849764651-95200645374331645?l=vpdejesus.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vpdejesus.blogspot.com/feeds/95200645374331645/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://vpdejesus.blogspot.com/2009/06/project-that-i-developed-for-company-i.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/94644964849764651/posts/default/95200645374331645'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/94644964849764651/posts/default/95200645374331645'/><link rel='alternate' type='text/html' href='http://vpdejesus.blogspot.com/2009/06/project-that-i-developed-for-company-i.html' title='A project that I developed for a company I previously worked in Dubai, U.A.E.'/><author><name>Vincent Paul de Jesus</name><uri>http://www.blogger.com/profile/17390332765792775907</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://3.bp.blogspot.com/_QDHj8MjF_LI/SickN6SGOiI/AAAAAAAAAAM/euNq1B9omeg/S220/VPDJ.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_QDHj8MjF_LI/SicrpD1oZYI/AAAAAAAAABI/2N1Xt7hvkDE/s72-c/SP4.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-94644964849764651.post-8144416480095123003</id><published>2009-06-03T18:20:00.000-07:00</published><updated>2009-06-03T18:26:45.264-07:00</updated><title type='text'>Davao City....</title><content type='html'>Davao City, Philippines is one of the coolest and calmest city in the Philippines to live. If you want to live and stay in this city, here is a link of my friend's real estate site of Davao - &lt;a href="http://www.davao-real-estate.com/"&gt;www.davao-real-estate.com&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/94644964849764651-8144416480095123003?l=vpdejesus.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vpdejesus.blogspot.com/feeds/8144416480095123003/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://vpdejesus.blogspot.com/2009/06/davao-city.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/94644964849764651/posts/default/8144416480095123003'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/94644964849764651/posts/default/8144416480095123003'/><link rel='alternate' type='text/html' href='http://vpdejesus.blogspot.com/2009/06/davao-city.html' title='Davao City....'/><author><name>Vincent Paul de Jesus</name><uri>http://www.blogger.com/profile/17390332765792775907</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://3.bp.blogspot.com/_QDHj8MjF_LI/SickN6SGOiI/AAAAAAAAAAM/euNq1B9omeg/S220/VPDJ.jpg'/></author><thr:total>0</thr:total></entry></feed>
