mayvelous

Me, Myself and Mayvelous

Archive for the ‘Development’ Category

Source code for .Net Framework Libraries are available for download with the next release of VS 2008 and .Net 3.5 next year.
ScottGu explains more
.

Have been said, it’s way too advance for me to dig through those source code as I’m still struggling to learn the efficient use of the libraries itself. But hey, it’s all good that you get the source too. Cool!

Licenses.licx and VSS

In our current project, we have to work with WinForms using VS 2005 and VSS as the project source control. There are two solid developers and one developer/Product Manager involved in the coding of this project. Our Product Manager suggests and prefers we use VSS rather than SVN for better source management (check in/out). As for us, developers (me and my bro), we had a great time using SVN in the last project and prefer to use SVN; nevertheless both of us are flexible and agreed to work with VSS after a few discussion. Things are fine when I focus on designing forms and my bro working on code behinds. But the problem arises when we start testing on a few forms, which need both of us to work on design view.

In VS2005 WinForm IDE, it adds or writes to the licenses.licx file whenever you use custom controls/third party controls such as Infragistic in your form. Though I’m not so sure, I observe that the licenses.licx file is not needed if you work entirely with normal winform controls, but with third party controls, it acts as a config file storing the references of the controls.

Once you add a project to VSS DB, the licenses.licx file is always binded since it’s part of the project property. You can check out the code just fine but when you work with the form design, you’re forced to check out the licenses file. If you don’t/can’t check it out, you can’t do anything to the form design. With VSS, it’s really a pain if one developer checked out the licenses file exclusively, others can’t do any design work on any of the forms. To solve the exclusive checkout on licenses file, we tried to exclude the licenses.licx from the project and let it stay in local folder. Unfortunately, the file itself is part of project property and once it’s excluded, it loses the references as well. For that little experiment, I’ve lost two of my form designs and have to start all over; thank god, they were just small forms. With that failed experiment and out of ideas, we searched for the solution on the web. Found out that it was a known issue for VS2005 IDE and the fix would only available with the next release of Visual Studio. The only work around they suggest so far is to use VSS multiple check out mode.

We don’t want to use Multiple check out mode in our VSS DB for:

  1. VSS doesn’t provide individual file multiple check out mode but for the whole DB,
  2. There are a few careful steps to take before checking back in the multiple check out file. (You cannot check in directly. You must get latest on that file to ensure you get different versions from other developers to merge the file then only you can successfully check it back in.)
  3. VSS merge is a real pain and should I would never trust it. Unless ofcos’ you don’t care about losing some of your codes or have a separate backup, go a head and try it out.
  4. There is the need of source control administrator for merging files.
  5. And again, don’t trust VSS Merge and can’t rely on it.

But untill the next VS release, it’s the only possible way so we don’t have a choice but to use that method. Don’t have time to dig up properly either. So gonna stuck with this problem for the whole project. It’s just making my life miserable. *sign*

Readings: MS Feedback | Forum Q&A

Guess what, there is a new feature on Google Reader. It’s going offline. You now have an option to read your feeds in offline or online mode.

We’ve used the newly released Google Gears, a browser plugin that enables offline web applications. Once you’ve installed Google Gears, you can download your latest 2,000 items so they’re available even when you don’t have an internet connection. To get started, simply click the “Offline” link in the top right of Google Reader.

You’ll need to download the Google Gears Setup file (188kb) which then download and install the plugin directly. This would take a while if your connection is slow.

Google Gears Installation

Google Gears (Beta) is an open source browser extension that enables web applications to provide offline functionality using following JavaScript APIs:
# Store and server application resources locally
# Store data locally in a fully-searchable relational database
# Run asynchronous Javascript to improve application responsiveness

Once it’s done, you need to restart your browser and allow the plugin on the site. You then have the option to download your feeds and save them for offline reading.

Allow Google Gears Plugin
Enabling the Google Gears plugin for the site

Offline Google Reader Option Offline Google Reader Download Feeds
Downloading Feeds for offline reading

Online and Offline modes can be easily switched through by clicking on the tiny button at the top. The reader will synchronize the feeds accordingly.

Offline Mode
Reader in Offline mode

More Info Links:
# Developer Site
# Developer Knowledge Base

Isn’t just sweet? ;)

I’m wondering – asp.net 2.0

I’m wondering…

  • I’m wondering, asp.net 2.0 website project does not create project file and .dll file and where all those code-behinds compiled into?
  • I’m wondering, if we are to deploy it, do we only deploy .aspx and .ascx (front-end) files or have to include code-behind files as well?
  • I’m wondering, why .pdb files are also included when you add project references to the website project.
  • I’m wondering, why some referenced .dll creates .xml files as well.
  • I’m wondering, do we need to add those .pdb and .xml along with referenced .dll in the deployment.
  • I’m wondering, the main difference between asp.net 2.0 web application project and web site project.

And I’m still wondering…

Versioning Models

The core mission of a version control system is to enable collaborative editing and sharing of data. Different systems use different strategies to achieve this. There are two main versioning models namely “Lock-Modify-Unlock” and “Copy-Modify-Merge“.

Lock-modify-unlock

In this model, the repository allows only one person to change a file at a time. This exclusively policy is managed using locks. VSS and old style source controls use this approach where only one person at a time can modify a file. Lock the file, edit, then check in and release the lock. This model is only suitable for a small teams. For a bigger team with many developers, it would be inefficient to use this model as locking isolates a file to only one developer which delays the work among other team members who want to work on the file.

Lock-modify-unlock
The lock-modify-unlock model (Ref #)

The problem with the lock-modify-unlock model is that it’s a bit restrictive, and often becomes a roadblock for users:

  • Locking may cause administrative problems.
    if one developer forgot to unlock a file before he take a leave would cause others to delay working on the file unless an administrator to release the lock.
  • Locking may cause unnecessary serialization
    if developers are to edit different part of the file, it’s is unnecessary to unlock and edit. It should be edited together then merge the file.
  • Locking may create a false sense of security

(Ref: pp. 4)

Copy-modify-merge

In this model, each user’s client contacts the project repository and creates a personal working copy – a local reflection of the repository’s files and directories. Users then work simultaneously and independently, modifying their private copies. Subversion, CVS and a number of other version control systems uses this model as an alternative to locking. Early version of Subversion did not support locking at all, but this is no longer the case. You can now lock files, query files to see who has locked then, and even mark files as requiring locks before edits. This make sense for binary files where merging is impossible. (Ref: pp 5)

Copy-modify-mergeCopy-modify-merge
Copy-Modify-Merge model (Ref #)

NB: TortoiseSVN provides a good built-in diff tool; you can also install WinMerge (http://winmerge.org), which integrate itself into TortoiseSVN.

When Locking is Necessary

While the lock-modify-unlock model is considered generally harmful to collaboration, there are still times when locking is appropriate.

The copy-modify-merge model is based on assumption that files are contextually mergeable: ie. that the majority of the files in the repository are line-based text files(such as program source code). But for files with bonary formats, such as artwork or sound, it’s ofter impossible to merge conflicting changes. In these situations, it really is necessary to users to take strict turns when changing the file. Without serialized access, somebody ends up wasting time on changes that are ultimately discarded.

While Subversion is still primarily a copy-modify-merge system, it still recognizes the need to lock an occasional file and provide mechanisms for this. (Ref: pp 7)

Ref:
#Don’t Use Microsoft Visual SourceSafe!,
# subversion documentation | Online version

CrazyEgg Visitor Stats Tracking

crazyegg stats tracking serviceCrazy Egg is yet another web statistic tracking service. It displays in 3 formats:

  • Overlay – % clicks, referal links
  • List – view a full summary of raw clicks
  • Heat Map – shows the most click areas on the page.

There are 3 paid plans and a free plan. A free account is ideal for a small personal site such as blog to track the visitor stats. Ofcos, there is a limit of 5,000 visit/month, 4 pages and 4 screenshots archive for the free plan. Very neat interfaces so you can consider using it for your blog stats tracking.

  • Comments Off
  • Filed under: Aside Notes, Blogging, General, News, Site Reviews, Technology, Tools, Web
  • Source Control Resources

    Here are some of the readings on Subversion and VSS that I came across. Whoever interested in Source Control and its available tools should go through these links first to get to know the technologies out there. I’m just concentrating on SVN and VSS, but there are a lot more to look at. Depending on your choice of technology, google would be your best reference.

    Documentations:

    Good Reference Articles

    No to Visual SourceSafe? Bad Toad! Bad Toad!

    I’ll be adding more later and if you find some good readings/articles, do let me know too.

    Flickr Photos

    Downloads

    Twitter Status


    Goodie Links


    Mayvelous Friends


    WidgetBucks
    FlashDen
    AudioJungle
    VideoHive

    I'm an Author for Global Voices

    Archives