﻿<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:blogChannel="http://backend.userland.com/blogChannelModule" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:pingback="http://madskills.com/public/xml/rss/module/pingback/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:betag="http://dotnetblogengine.net/schemas/tags">
  <channel>
    <title>My I.T. Side</title>
    <description>It's all about web [ASP.NET MVC]</description>
    <link>http://blog.myitside.com/</link>
    <docs>http://www.rssboard.org/rss-specification</docs>
    <generator>BlogEngine.NET 3.1.1.0</generator>
    <language>en-US</language>
    <blogChannel:blogRoll>http://blog.myitside.com/opml.axd</blogChannel:blogRoll>
    <blogChannel:blink>http://www.dotnetblogengine.net/syndication.axd</blogChannel:blink>
    <dc:creator>John Alfred Dafielmoto</dc:creator>
    <dc:title>My I.T. Side</dc:title>
    <geo:lat>0.000000</geo:lat>
    <geo:long>0.000000</geo:long>
    <item>
      <title>Azure SQL Manager</title>
      <description>Azure SQL Manager is a simple management portal for the remote developers to add their own IP address to Azure SQL Server. No need to ask them what is their IP address let them assign it!&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-weight: bold;"&gt;How Do You Use It?&lt;/span&gt;&lt;br&gt;1. First create an account for your users or developers using ASP.NET MVC Identity.&amp;nbsp;&lt;/div&gt;&lt;div&gt;2. Create a certificate&amp;nbsp;and upload the certificate in azure subscriptions and also put it to your App_Data folder. There are two files if you create the certificate, .cer and .pfx&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;span style="font-weight: bold;"&gt;Code Please!&lt;br&gt;&lt;br&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;in /Infrastructure/AzureSqlManagerRepository.cs&lt;br&gt;&lt;br&gt;&lt;pre&gt;private SubscriptionCloudCredentials getCredentials(string subscriptionId, string path){
     var cert = new X509Certificate2(path, "CERTIFICATE_PASSWORD_HERE", X509KeyStorageFlags.MachineKeySet);
     return new CertificateCloudCredentials(subscriptionId, cert);
}&lt;/pre&gt;change the&amp;nbsp;&lt;span style="font-family: Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 13px; line-height: 1.42857143; background-color: rgb(245, 245, 245);"&gt;CERTIFICATE_PASSWORD_HERE to your certificate password.&lt;br&gt;&lt;br&gt;and in&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 13px; line-height: 18.5714282989502px;"&gt;ServersController.cs&lt;br&gt;&lt;/span&gt;&lt;br&gt;&lt;pre&gt;private string BuildPath(){
    return Server.MapPath("~/App_Data/your_certificate_name.pfx");
}

private static string _subscriptionId = "azure_subscription_id_here";&lt;/pre&gt;Assign the path, point it to your certificate and change the value in _subscriptionId to your Azure Subscription ID&lt;br&gt;&lt;br&gt;&lt;span style="font-weight: bold;"&gt;Preview&lt;/span&gt;&lt;br&gt;&lt;br&gt;Azure SQL Server List&lt;br&gt;&lt;span style="font-weight: bold; width: 826px;"&gt;&lt;img src="https://lh3.googleusercontent.com/ByzlFyBJM6NpccoGOX4-jhgPe-DQMIAKdMbAiCRQN4A=w1365-h507-no" style="width: 826px;"&gt;&lt;br&gt;&lt;/span&gt;&lt;br&gt;SQL Server Firewall&amp;nbsp;&lt;br&gt;&lt;img src="https://lh3.googleusercontent.com/3brZgUJOD8o2ELOVFBiWnq2FYAMbU1b2DjnjfyD_J5k=w1365-h621-no" style="width: 826px;"&gt;&lt;br&gt;&lt;br&gt;&lt;span style="font-weight: bold;"&gt;Source&lt;br&gt;&lt;/span&gt;&lt;a href="https://github.com/comfreakph/azuresqlmanager.mvc" target="_blank"&gt;Download it in GitHub&lt;/a&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;/div&gt;

&lt;script async="" src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"&gt;&lt;/script&gt;
&lt;!-- content small --&gt;
&lt;ins class="adsbygoogle" style="display:inline-block;width:320px;height:100px" data-ad-client="ca-pub-7431073196356640" data-ad-slot="2033030392" data-adsbygoogle-status="done"&gt;&lt;ins id="aswift_0_expand" style="display:inline-table;border:none;height:100px;margin:0;padding:0;position:relative;visibility:visible;width:320px;background-color:transparent"&gt;&lt;ins id="aswift_0_anchor" style="display:block;border:none;height:100px;margin:0;padding:0;position:relative;visibility:visible;width:320px;background-color:transparent"&gt;&lt;iframe width="320" height="100" frameborder="0" marginwidth="0" marginheight="0" vspace="0" hspace="0" allowtransparency="true" scrolling="no" allowfullscreen="true" onload="var i=this.id,s=window.google_iframe_oncopy,H=s&amp;amp;&amp;amp;s.handlers,h=H&amp;amp;&amp;amp;H[i],w=this.contentWindow,d;try{d=w.document}catch(e){}if(h&amp;amp;&amp;amp;d&amp;amp;&amp;amp;(!d.body||!d.body.firstChild)){if(h.call){setTimeout(h,0)}else if(h.match){try{h=s.upd(h,i)}catch(e){}w.location.replace(h)}}" id="aswift_0" name="aswift_0" style="left:0;position:absolute;top:0;"&gt;&lt;/iframe&gt;&lt;/ins&gt;&lt;/ins&gt;&lt;/ins&gt;
&lt;script&gt;
(adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;</description>
      <link>http://blog.myitside.com/post/azure-sql-manager</link>
      <author>comfreakph@gmail.com</author>
      <comments>http://blog.myitside.com/post/azure-sql-manager#comment</comments>
      <guid>http://blog.myitside.com/post.aspx?id=5d7db0a3-71c7-4111-a87f-927fab8c184d</guid>
      <pubDate>Mon, 01 Jun 2015 10:10:00 +0000</pubDate>
      <category>ASP.NET MVC</category>
      <category>Opensource</category>
      <betag:tag>ASP.NET MVC</betag:tag>
      <betag:tag>Azure SQL</betag:tag>
      <dc:publisher>Admin</dc:publisher>
      <pingback:server>http://blog.myitside.com/pingback.axd</pingback:server>
      <pingback:target>http://blog.myitside.com/post.aspx?id=5d7db0a3-71c7-4111-a87f-927fab8c184d</pingback:target>
      <slash:comments>1</slash:comments>
      <trackback:ping>http://blog.myitside.com/trackback.axd?id=5d7db0a3-71c7-4111-a87f-927fab8c184d</trackback:ping>
      <wfw:comment>http://blog.myitside.com/post/azure-sql-manager#comment</wfw:comment>
      <wfw:commentRss>http://blog.myitside.com/syndication.axd?post=5d7db0a3-71c7-4111-a87f-927fab8c184d</wfw:commentRss>
    </item>
    <item>
      <title>How to create components in knockoutjs</title>
      <description>&lt;p&gt;Make your UI code into reusable component. using &lt;a href="http://knockoutjs.com/documentation/component-overview.html" target="_blank"&gt;KnockoutJS Components&lt;/a&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Below is the complete sample code for create components in knockoutJS&lt;br&gt;&lt;/p&gt;
&lt;iframe width="100%" height="300" src="//jsfiddle.net/comfreakph/e02neg7m/4/embedded/" allowfullscreen="allowfullscreen" frameborder="0"&gt;&lt;/iframe&gt;

&lt;script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"&gt;&lt;/script&gt;
&lt;!-- content small --&gt;
&lt;ins class="adsbygoogle"
     style="display:inline-block;width:320px;height:100px"
     data-ad-client="ca-pub-7431073196356640"
     data-ad-slot="2033030392"&gt;&lt;/ins&gt;
&lt;script&gt;
(adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;</description>
      <link>http://blog.myitside.com/post/how-to-create-components-in-knockoutjs</link>
      <author>comfreakph@gmail.com</author>
      <comments>http://blog.myitside.com/post/how-to-create-components-in-knockoutjs#comment</comments>
      <guid>http://blog.myitside.com/post.aspx?id=745b6546-f5fd-4d9a-bbc9-29adc252bcc2</guid>
      <pubDate>Wed, 22 Apr 2015 21:09:00 +0000</pubDate>
      <category>Knockoutjs</category>
      <dc:publisher>Admin</dc:publisher>
      <pingback:server>http://blog.myitside.com/pingback.axd</pingback:server>
      <pingback:target>http://blog.myitside.com/post.aspx?id=745b6546-f5fd-4d9a-bbc9-29adc252bcc2</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://blog.myitside.com/trackback.axd?id=745b6546-f5fd-4d9a-bbc9-29adc252bcc2</trackback:ping>
      <wfw:comment>http://blog.myitside.com/post/how-to-create-components-in-knockoutjs#comment</wfw:comment>
      <wfw:commentRss>http://blog.myitside.com/syndication.axd?post=745b6546-f5fd-4d9a-bbc9-29adc252bcc2</wfw:commentRss>
    </item>
    <item>
      <title>Knockoutjs CRUD</title>
      <description>&lt;p&gt;A friend ask me to create a sample CRUD in knockoutjs, so I decided to put it in my blog and share it.&lt;/p&gt;&lt;p&gt;First Step:&amp;nbsp;&lt;br&gt;Add knockoutJS to your project you can download it to &lt;a href="http://knockoutjs.com/downloads/index.html" target="_blank"&gt;knockoutjs website&lt;/a&gt;&amp;nbsp;then start with view model script.&lt;br&gt;&lt;br&gt;
&lt;/p&gt;
&lt;pre&gt;var viewModel = function(){
    var self = this;

};

$(document).ready(function(){
    var model = new viewModel();

    ko.applyBindings(model);
});
&lt;/pre&gt;
&lt;p&gt;&lt;br&gt;Next the letter C in CRUD, Create. Let's add a html view for our create.&lt;/p&gt;
&lt;pre&gt;&amp;lt;form data-bind="submit:Create"&amp;gt;
    &amp;lt;label&amp;gt;Description&amp;lt;/label&amp;gt;
    &amp;lt;input type="hidden" data-bind="value:id"&amp;gt;
    &amp;lt;input type="text" data-bind="value:description"&amp;gt;
    &amp;lt;input type="submit" value="submit"&amp;gt;
&amp;lt;/form&amp;gt;
&lt;/pre&gt;
&lt;p&gt;for our create knockoutjs script, Add id and description property as observables. Then function for saving the data into array that is observableArray.&lt;/p&gt;
&lt;pre&gt;self.list = ko.observableArray([]);
self.id = ko.observable("");
self.description = ko.observable("");
self.action = ko.observable("add");

self.Create = function(){
    if(self.action() == "add"){
        var id = (self.list().length) + 1;
        self.list.push({
           ID:id,
           Description: ko.observable(self.description())
        });
    }
};&lt;/pre&gt;
&lt;p&gt;Next is Read, and let's add static data in observableArray and read function:&lt;br&gt;&lt;/p&gt;
&lt;pre&gt;self.data = ko.observableArray([
   {"ID":1, "Description":"Tops"},
   {"ID":2, "Description":"Dresses"},
   {"ID":3, "Description":"Tees"},
   {"ID":4, "Description":"Blouses"},
   {"ID":5, "Description":"Shorts"},
   {"ID":6, "Description":"Pants"},
   {"ID":7, "Description":"Denim"},
   {"ID":8, "Description":"Bags"},
   {"ID":9, "Description":"Jackets"},
   {"ID":10, "Description":"Skirts"},
   {"ID":11, "Description":"Accessories"}]
);

self.Read = function(){
   self.list([]);
   self.list(ko.utils.arrayMap(self.data(),function(item){
      return{
         ID:item.ID,
         Description: ko.observable(item.Description)
      }
   }));
};&lt;/pre&gt;
&lt;p&gt;Let's add &amp;lt;table&amp;gt; html tag to display our data&lt;br&gt;&lt;/p&gt;
&lt;pre&gt;&amp;lt;table&amp;gt;
    &amp;lt;thead&amp;gt;
    &amp;lt;th&amp;gt;ID&amp;lt;/th&amp;gt;
    &amp;lt;th&amp;gt;Description&amp;lt;/th&amp;gt;
    &amp;lt;th&amp;gt;Action&amp;lt;/th&amp;gt;
    &amp;lt;/thead&amp;gt;
    &amp;lt;tbody data-bind="foreach:list"&amp;gt;
    &amp;lt;tr&amp;gt;
        &amp;lt;td data-bind="text:ID"&amp;gt;&amp;lt;/td&amp;gt;
        &amp;lt;td data-bind="text:Description"&amp;gt;&amp;lt;/td&amp;gt;
        &amp;lt;td&amp;gt;
            &amp;lt;a href="#" data-bind="click:$root.Delete"&amp;gt;Delete&amp;lt;/a&amp;gt; | 
            &amp;lt;a href="#" data-bind="click:$root.Edit"&amp;gt;Edit&amp;lt;/a&amp;gt;
         &amp;lt;/td&amp;gt;
    &amp;lt;/tr&amp;gt;
    &amp;lt;/tbody&amp;gt;
&amp;lt;/table&amp;gt;&lt;/pre&gt;
&lt;p&gt;Now we have a data, let's do an U in CRUD as Update:&lt;/p&gt;
&lt;pre&gt;self.Edit = function(data){
   self.action("edit");

   self.description(data.Description());
   self.id(data.ID);
};
&lt;/pre&gt;
&lt;p&gt;Then the D as Delete&lt;/p&gt;
&lt;pre&gt;self.Delete = function(data){
   if(confirm("Are you sure you want to delete this data?")){
      self.list.remove(data);
   }
};&lt;/pre&gt;
&lt;p&gt;Overall this is what it looks like in fiddle&lt;/p&gt;
&lt;iframe width="100%" height="300" src="//jsfiddle.net/7nmtrv9j/9/embedded/" allowfullscreen="allowfullscreen" frameborder="0"&gt;&lt;/iframe&gt;
&lt;p&gt;Overall a simple approach for CRUD in KnockoutJS&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;/p&gt;
&lt;script async="" src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"&gt;&lt;/script&gt;
&lt;!-- content small --&gt;
&lt;ins class="adsbygoogle" style="display:inline-block;width:320px;height:100px" data-ad-client="ca-pub-7431073196356640" data-ad-slot="2033030392"&gt;&lt;/ins&gt;
&lt;script&gt;
(adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&lt;p&gt;Happy Coding!&lt;/p&gt;</description>
      <link>http://blog.myitside.com/post/knockoutjs-crud</link>
      <author>comfreakph@gmail.com</author>
      <comments>http://blog.myitside.com/post/knockoutjs-crud#comment</comments>
      <guid>http://blog.myitside.com/post.aspx?id=e93d9a89-e446-499d-8c54-e2922d252cc3</guid>
      <pubDate>Wed, 08 Apr 2015 00:06:00 +0000</pubDate>
      <category>Knockoutjs</category>
      <betag:tag>knockoutjs</betag:tag>
      <betag:tag>knockoutjs crud</betag:tag>
      <dc:publisher>Admin</dc:publisher>
      <pingback:server>http://blog.myitside.com/pingback.axd</pingback:server>
      <pingback:target>http://blog.myitside.com/post.aspx?id=e93d9a89-e446-499d-8c54-e2922d252cc3</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://blog.myitside.com/trackback.axd?id=e93d9a89-e446-499d-8c54-e2922d252cc3</trackback:ping>
      <wfw:comment>http://blog.myitside.com/post/knockoutjs-crud#comment</wfw:comment>
      <wfw:commentRss>http://blog.myitside.com/syndication.axd?post=e93d9a89-e446-499d-8c54-e2922d252cc3</wfw:commentRss>
    </item>
  </channel>
</rss>