Tuesday, July 10, 2012

Бързо и лесно чат приложение - html5, jquery,PubNub

Създаването на чат в web се оказа доста лесна задача.Благодарение на една облачна услуга "PubNub" - http://www.pubnub.com/ 

Може бързо и лесно да си направите, чат приложение във вашата web страница.


Ето и разработено чат приложение от мен http://secretcom.apphb.com/Chat.aspx


Изисквания:
Познания с html5, jquery

Не забравяйте, да добавите следния код в body на html файла,
където pub-key и sub-key са задължителни.
След влизане в сайта вашия pub-key и sub-key ще ги намерите на :

My Account  ???

Api Keys ???



 <div pub-key="???" sub-key="???"
        ssl="on" origin="pubsub.pubnub.com" id="pubnub">
 </div>
 <script src="http://cdn.pubnub.com/pubnub-3.1.min.js" type="text/javascript"></script>

пример:
https://pubnub-prod.appspot.com/account-javascript-api-include
JavaScript Push API Reference:
https://pubnub-prod.appspot.com/tutorial/javascript-push-api

С  помощта  на Telerik - http://academy.telerik.com/


Tuesday, June 26, 2012

Практически проект - задание Secret Communicator (cloud development)

Здравейте, дойде времето в което трябва да разработим практически проект
Secret Communicator (cloud development)


Тук ще се опитам да обяснявам начина по който ще създавам проекта за да може ви бъде интересно и забавно ето и заданието.


Overview

Design and develop a cloud-based communication system for encrypted exchange of resources such
as messages, links and files. The communication is performed in channels. Each channel has name and
password. Users can enter existing channels and register new channels. When a channel is loaded, users
can see / download the content posted inside (messages, links and files) and post new content.


Architecture

Use the following classical multi-tier cloud architecture:
Front-End: HTML5-based client
Middle-tier: REST-based services
Back-End: NoSQL database + cloud storage



Създаване на проект - asp.net web application


И така първото което трябва да направим е да си създадем проект в Visual Studio
като изберем File - New - Asp.net web application


След това ще създам една папка LIB в която ще имам всички библиотеки които ще ползвам  за качване на файлове в DroobBox https://www.dropbox.com/


Добавете към вашия проект - References - Add References - Browse - Lib
Маркирайте всички и изберете ОК


Тези библиотеки са:

Common.Logging
Divan.dll
Newtonsoft.Json.dll
nunit.framework.dll
Spring.Rest.dll
Spring.Social.Core.dll
Spring.Social.Dropbox.dll







Оказа се че целия процес ще отнеме доста време и ще стане доста скучно да описвам всичко стъпка по стъпа затова пусам линк към приложението където може да следите как се гради малко по малко  - http://secretcom.apphb.com






Saturday, June 23, 2012

Изграждане на цялостно cloud приложение - Photo Sharer

Изграждане на цялостно cloud приложение - демонстрация (архитектура, изграждане на back-end частта, изграждане на бизнес логика в cloud среда, REST услуги, постраяване на HTML5 клиент)


В курса Cloud developmnt имах задача да се разработи cloud приложение.


Идеята беше за Frond-End да се ползва Html5, JQuery, Ajax
За база данни  - Back-End  NoqSq и DrobBox(https://www.dropbox.com/)
Бизнес логика на WCF Rest Service



ето сега и кода:


Upload на снимка локално




Резултат:
http://halachevphotosharer.apphb.com/

Sunday, June 17, 2012


Разработване на Custom Server Control - XGridView 1.0


Ето, че е време да представя  и един от най новите ми проекти XGridView 1.0

Разработването на custom server control в dot.net е наистина едно интересно и вълнуващо предизвикателство.

Един ден докато си разработвах един сайт ми се наложи да визуализирам данните от базата в html таблица, но забелязах, че винаги ми се налага след това да манипулирам данните
Например: редакция, изтриване, сортиране, странициране, търсене и др.

И всичко това ме хвърли в размисъл, че ще е хубаво това нещо да се изнесе като контрола за да може и в други проекти лесно да се ползва.

Ето и и сайта където може да видите и демо: http://xgridview.apphb.com/




Как да използваме XGridView

XGridView e лесен за използване единственото, което трябва да направите е да свалите
Xsoft.Web.UI.dll файла и да го добавите във вашия проект.

<%@ Register Assembly="Xsoft.Web.UI" Namespace="Xsoft.Web.UI" TagPrefix="xsoft" %>
<script src="Scripts/jquery-1.4.1.js" type="text/javascript"></script>

<form id="form1" runat="server">
<asp:ScriptManager ID="ScriptManager1" runat="server" />
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<asp:Label runat="server" ID="lblResult"></asp:Label>
<xsoft:XGridView ID="XGridView1" runat="server" AllowSorting="true" AutoGenerateColumns="false"
ShowAdditionalPanel="true" DataKeyNames="ID" OnRowClicked="OnRowClicked_RowClicked">
<Columns>
<asp:BoundField DataField="Name" HeaderText="Name" SortExpression="Name"></asp:BoundField>

<asp:BoundField DataField="Age" HeaderText="Age" SortExpression="Age"></asp:BoundField>

<asp:BoundField DataField="Sex" HeaderText="Sex" SortExpression="Sex"></asp:BoundField>

<asp:BoundField DataField="Email" HeaderText="Email" SortExpression="Email"></asp:BoundField>

<asp:BoundField DataField="Phone" HeaderText="Phone" SortExpression="Phone"></asp:BoundField>
                    </Columns>
                    </xsoft:XGridView>
</ContentTemplate>
</asp:UpdatePanel>
</form>


code behind


       
        using System;
        using System.Collections.Generic;
        using System.Linq;
        using System.Web;
        using System.Web.UI;
        using System.Web.UI.WebControls;
        using System.Data;

        namespace TestControl
        {
            public partial class ExampleGridView : System.Web.UI.Page
            {
                private IList Getcontacts()
                {
                    var path = HttpContext.Current.
Server.MapPath(@"contacts.xml");
                    var data = new DataSet();
                    data.ReadXml(path);
                    var contacts = new List();
                    foreach (DataRow row in data.Tables[0].Rows)
                    {
                        contacts.Add(new Contact
                        {
                            ID = Convert.ToInt32(row["ID"]),
                            Name = Convert.ToString(row["Name"]),
                            Age = Convert.ToInt32(row["Age"]),
                            Sex = Convert.ToString(row["Sex"]),
                            Email = Convert.ToString(row["Email"]),
                            Phone = Convert.ToString(row["Phone"]),                   
                        });
                    }
                    return contacts;

                }

                protected override void OnPreRender(EventArgs e)
                {
                    var contacts = Getcontacts();
                    XGridView1.DataSource = contacts;

                    foreach (var item in contacts)
                    {
                        if (item.ID == XGridView1.SelectedDocumentID)
                        {
                            txtbox.Text = item.Name;
                            break;
                        }
                    }

                }

                public class Contact
                {
                    public int ID { get; set; }
                    public string Name { get; set; }
                    public int Age { get; set; }
                    public string Sex { get; set; }
                    public string Email { get; set; }
                    public string Phone { get; set; }           
                }
            }
        }
       


Thursday, June 7, 2012


Излезе първа версия на мобилното приложение 

Supplier.Net (Cloud computing)

Може да изтеглите продукта от тук: http://supplier.nh.zonebg.com/SupplierNet.rar


Supplier.Net е приложение написано с технологиите "JQuery Mobile"
Html, Jquery (Rest Service) с бизнес логика на C# (WCF Application)
Ползва облачни услуги на App Harbor и MSSQl База данни.
Supplier.Net Ви дава възможност да добавяте обекти, артикули и категории.
Да правите заявки и да следите състоянието на всеки обект, артикул  количество и др.

В началото трябва да се регистрирате, за да може да създавате и добавяте обекти, артикули и категории от меню "Settings"

От Mеню "Requests" може да правите заявки към различни обекти да следите и проверявате, всяка една ваша заявка да редактирате, изтривате и др.



Поздрави Мехмедов!

Thursday, March 22, 2012

Няколко истини за MongoDB


През последната година MongoDB става все по-популярна база данни и колегите започва да я използват все повече. Факт е, че има сериозни преимущества пред релационните си събратя.
Заедно с добре подготвените и компетентни презентации и документации започнаха да се появяват и много подвеждащи такива. Което е в реда на нещата – нещо става модерно и веднага се появяват купчина специалисти, които дори не са си направили труда да прочетат документацията (а тя е доста интересна и полезна).
 Днес ми попадна една презентация, направена от хора, които взимат пари за да обучават по темата. Похвално, че си правят труда да образоват хората! Въпреки, че курса им е платен младежите от SoftAcad не са дочели документацита, а явно личи и че никога не са ползвали MongoDB в production environment.
От Screen-а в ляво можете да видите нещо доста интересно “Cons: no atomic operations, no validation”. След което хвърлете око на този документ.
MongoDB притежава едни от най-мощните и оптимизирани atomic операции!
Явно от SoftAcad са пропуснали, че в MongoDB е НЕ релационна база данни (което включва и липсата на релация между самите документ в една колекция) – много ме озадачава, че едно от основните преимущества на MongoDB е в графата “Const”!
От презентацията личи си, че младежите от SoftAcad са хора с опит в релационни бази данни, но без опит с не релационните - направили са си труда да направят презентация и да правят обучения, за които взимат пари, но за съжаление не са си направили труда да прочетат документацията.
Презентация е пълна с неточности, които могат да объркат представите на хората за MongoDB и като цяло за noSQL.
От презентацията става ясно, че “mongodb няма никакви сторед процедури”, е тукедин линк е повече от достатъчен.

Мразя да хейтвам, но не понасям такива некадърни неща!